PKYDDMZ celery-2.1-archived/links.html Interesting Links — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Previous topic

Change history

This Page

PKYDDpP"celery-2.1-archived/searchindex.jsSearch.setIndex({envversion:42,terms:{create_exception_cl:45,presult:83,nceleryd:21,urlencod:8,"_log":26,init_queu:82,myrout:56,yellow:[27,26],four:[51,26],"54086c5e":56,prefix:[75,5,57,51,60],sleep:[83,51,26,47,107,113,66,81,57,101],ronach:26,"6pm":35,oldest:36,make_request:8,max_retri:[83,26,34,5,114,107],typeerror:26,time_start:[21,26],"_decor":5,jasonmbak:65,sorri:26,pprint:30,umask:[26,1],costanza:[107,25,8,51],get_bucket_for_typ:50,b913:26,scheduleentri:101,swap:26,under:[67,24,26],spec:111,"39a2":38,digit:113,everi:[2,42,19,109,47,26,12,56,107,34,35,5,48,29,30,72,80,83,113,112],rel:[],event_dispatch:15,reload_task_result:[100,114,26],upstream:42,affect:[42,24,26],execute_using_pool:[81,21],workertasktrac:21,display_command_help:111,metaclass:34,cmd:[75,111],rabbitmq:[],silencerep:12,rabbitmqctl:[30,19,22],clear_task:16,readthedoc:75,overview:[],"9pm":35,create_us:5,"10m":26,max_cached_result:57,naiv:19,direct:[],maxtasksperchild:[71,76,68,24,26],consequ:42,second:[32,2,34,5,36,35,71,73,100,47,107,50,108,51,24,83,25,109,26,28,30,60,57,113],nthe:21,"0x73785a8":106,urlpattern:29,even:[83,42,2,29,47,26,100,19,56,93,34,35,5,114,22,30,72,51,57,24],supervis:[72,26],hide:[59,56],eventlet:26,worsen:26,neg:[34,42,83,73,24],introspect:[107,26],pingtask:[62,26,7],rerais:28,allowscriptaccess:65,tppm:65,broker_connection_max_retri:57,celery_cache_backend:[],net:[2,65,22],ever:[5,26],metadata:[83,38,26,90,56,28,78,34,104,5],ongo:30,abov:[109,19,56,99],shortinfo:21,henrik:26,here:[],prettify_list:106,met:[81,15,26],parselin:111,path:[38,75,26,71,1,93,5,46,21,22,107,51,61],interpret:[42,5,109],purge_messag:82,get_result:[100,26],get_opt:[71,102,46],task_id:[],prognam:1,anymor:[26,12,19,2,1],everyon:[42,19],precis:[30,74,51,109,26],datetim:[83,25,0,26,2,73,34,107,29,112,35,85,109],keymap:52,taskset_id:[83,40,28,114,66,100,31],mysqld:19,tweet:5,providing_arg:74,theori:19,wikipedia:36,"0x5f751b8":[],timedelta_second:[34,83,73,26],"0x7f7039be5c40":113,celerybeat:[],total:[83,26,28,66,5,30,50,51,57,101],unit:[5,72,2,113,26],highli:[67,19,78],fun_takes_kwarg:107,describ:[25,19,56,65,42,5,21,36,30,51],would:[94,26,19,56,42,35,5,29,30,113],"4bfb":[66,83],parse_uid:1,completenam:111,call:[32,72,2,76,34,5,68,38,40,70,12,15,74,18,19,47,105,20,48,21,22,107,23,80,83,25,109,26,56,28,29,30,59,61,112],comcast:22,typo:26,recommend:[2,19,109,72,56,5],revoke_select:52,type:[],until:[2,34,68,38,51,95,72,73,15,76,44,19,47,107,50,81,83,25,26,56,28,29,30],messages_for_url:29,relat:[],notic:15,warn:[47,26,71,2,46,15,51,57,112],aiwoh:26,warm:26,isatti:12,relai:[42,89],redirect_stdouts_to_logg:[12,82,26],desper:30,hold:[38,26,13,15,74,82],must:[62,42,38,47,109,26,71,19,56,111,34,83,5,21,107,74,51,15],ert:22,celeryd_daemon_log_format:26,join:[83,26,76,28,48,29,66,67,68],disable_error_email:[83,26],err:5,restor:[45,28],setup:[72,19,12,26],work:[],worth:5,wors:[24,26],yuku_t:65,track_start:[34,83,5,57,26],selected_posit:52,post_statu:[34,83],root:[],overrid:[83,109,26,19,56,34,5,113,24],timelimitexceed:[39,26],give:[83,38,25,39,47,26,19,34,5,22,107,76,51,68,57,24,109],autodetect:43,eventpublish:40,"__sse4848163":65,raw_respons:8,want:[],"425px":65,run_tim:57,plist:26,running_nod:22,end:[38,20,26,73,35,5,22,30,80,100],always_eag:57,feed_url:[66,83,105],quot:75,interval_step:107,classifi:[5,26],how:[],hot:26,timer2:[],env:75,answer:[32,19],verifi:[42,99,15,22,1],perspect:5,connect_timeout:[83,32,25,40,109,28,34],updat:[83,25,36,26,97,19,34,5,15,29,101,16,8,53],f100aa80273a:26,timedelta:[83,85,109,26,2,73,34,29,35,51,113,112],initial_valu:[15,36],after:[32,2,93,34,5,7,35,38,70,72,73,19,47,105,114,22,107,23,51,24,83,25,109,26,55,56,30,57,61],superus:30,befor:[2,34,5,36,71,42,15,99,19,107,23,80,51,24,83,25,109,26,28,30,57,61],router:[],"49c8":[66,83],parallel:[38,19,72,5,76,81],averag:26,kozera:26,timezon:109,attempt:[74,5],event_queu:57,third:42,classmethod:[83,47,70,45,98,28,34,53,21,88,18],celery_db_reuse_max:26,send_error_email:[83,26,34,5,21,51],greet:52,foord:5,timedfunctionfail:0,alias:[107,26],type_:[21,18],maintain:[30,42,19,109,26],environ:[30,38,13,26],reloc:89,enter:[81,15,0,26],exclus:[40,56],worst:[19,5],first:[],order:[53,72,26,47,56,28,111,42,5,48,50,76,51,68,109],mark_as_start:100,on_listener_readi:82,freeze_whil:[16,26],broker_password:[],feedback:8,celery_amqp_task_result_expir:[],"0x5952140":[],over:[109,26,45,27,28,107,48,61,22,35,50,81,24],becaus:[38,19,70,26,12,28,5,15,22,30,24],fifo:53,tyrant_port:95,privileg:1,appar:26,nonconform:26,vari:24,digest:105,evcam:4,uuid:[26,72,56,28,107,21,7,30,16,80,52],fit:[94,109],update_statu:5,"__class__":[45,26],better:[],imp:61,offic:[35,113],drawback:5,persist:[],mydb:[51,99],easier:[30,26],split:[107,5,26],them:[83,94,2,109,26,19,56,73,93,34,5,48,15,29,30,67,24],thei:[],celery_default_amqp_exchange_typ:63,safe:[],as_dict:36,"break":26,promis:107,do_exit:111,blink:27,verify_exist:[5,29],choic:[51,106,109,26],da0b:112,terminateprocess:[76,68],get_object_or_404:5,changelog:[2,26],taskbucket:[50,81],unpickl:[45,26],"0x4ef8a10":[],celeryd_soft_task_time_limit:[24,26],kwarg1:[109,26],timeout:[],each:[2,32,19,72,26,12,109,107,5,15,29,50,30,23,51,24,75],debug:[],exchange_nam:56,crunchi:26,oblig:42,side:26,"0x6d7f578":[98,88],mean:[83,42,94,10,26,113,2,56,34,35,5,48,15,36,30,51,57,24],clickmunch:29,"0x6d7f488":[98,88],resum:26,discard_al:[83,32,19,26],saturdai:113,urlfield:[5,29],mongobackend:104,forgot:26,set_process_statu:[82,58],extract:[8,21],celerymon:[],msgpack:[109,7],unbound:56,network:[67,72,2,109,24],goe:[70,26],jump:27,positiveintegerfield:29,remaining_estim:[34,83,113,26],content:[37,19,56,21],reader:29,got:[23,19,26],amqp_connection_max_retri:26,cachebackend:85,rail:[],situat:[94,26],start_schedul:87,free:[42,50,19,5],standard:[83,42,2,109,26,12,56,34,5,21],introduccio:65,md5:105,convent:[42,38],s3cr3t:51,traceback:[83,42,38,26,72,28,34,5,21,36,30,80,100,31,52,114],analag:[76,68],teardown:26,iso:[26,2,7],prefetch:[],regress:26,confus:[25,56],prompt_fmt:111,semaphor:[19,26],rang:[113,75,36,26],render:[20,65,26],busi:5,cursesmon:[],loginerror:5,independ:19,from_iter:[50,53],cancel_consum:[32,26,11,98,106,88],capac:[50,36],datastructur:[],alreadi:[2,94,25,109,26,86,19,56,28,42,30,105,39,99,1,72,74,51],wrapper:[34,83,82,13,111],wasn:19,installed_app:[5,99,26],maybe_iso8601:107,primari:[5,109,29,1],hood:24,coverage3:26,rewritten:26,attach:5,execute_from_commandlin:[102,106,75],top:[67,65,26],underlin:[27,65],master:[20,51,26],too:[26,47,5,36,30,50],amqp_us:26,euro:109,listen:[],"0x4ef8610":[],consol:26,tasks_by_timestamp:16,namespac:5,tool:[],log_level:57,took:[30,80,2],init_with_registri:50,auth_permiss:30,os_mon:22,"0x73783f8":106,somewhat:19,technic:[42,5],target:[70,26,76,103,21,68],keyword:[],provid:[32,38,40,70,89,26,56,34,5,7,107,23,113,109],expr:113,tree:[20,51,26],rate:[],on_failur:[34,83,21,26],tref:0,project:[26,2,93,42,5,29,30],matter:26,database_password:99,minut:[83,2,109,26,19,56,108,34,35,105,5,113,29,60,30,80,51,57,24],queue_wakeup_aft:26,recheck:51,"0x65cb5d0":111,set_process_titl:[87,1],iblu:27,max_:113,runner:26,"8998d0f4":112,modern:109,add_queu:79,upset:26,raw:8,get_or_create_task:16,get_schedul:[101,87],pylon:[42,72,26],increment:[19,36,15,29,26],"__main__":30,thaw:26,pool_cl:[82,13],seek:26,dozen:26,replypublish:88,strength:22,recreat:26,my_taskmeta_collect:51,latter:[81,51,26],safe_apply_callback:76,stripped_titl:65,snow:22,with_connect:40,get_engin:54,client:[99,26,19,56,5,61,36,59,23,85,24,109],transmit:19,eagerli:[51,48,26],sig_ign:1,blue:[27,26],copi:[19,5,53,26],though:[26,19,42,15,30,74,57],usernam:[83,1,34,5,30,51,57],store_errors_even_if_ignor:[34,83,5,57,26],object:[62,2,33,65,111,34,5,8,68,38,81,70,12,76,74,19,45,47,105,53,48,0,107,50,51,83,25,109,110,26,56,28,29,30,113,112],regular:[83,47,109,26,64,86,2,56,34,35,5,30,50,67,112],install_sync_handl:87,bsd:67,"0x5f74e60":[],prematur:[39,26],gmane:65,tradit:29,"7am":35,excus:42,don:[],click_count:29,doc:[2,75,26,19,65,42,99,30,109],flow:[76,68],dog:27,doe:[],declar:[111,25,40,56,26],wildcard:[42,56],issue10037:26,apply_at:0,dow:113,dot:[107,56,109],alreadyexecutederror:21,"__str__":107,random:22,restore_taskset:[100,114],syntax:[35,19,5,26],protocol:[],celeri:[],absolut:[25,51,26],exactli:[5,109],"373550e8":[83,19],setup_load:110,explain:29,configur:[],override_backend:61,theme:26,latenc:[30,94,109,24,26],rich:65,"__call__":26,current_domain:5,"2a14":20,nasti:15,stop:[],regular_task:56,popitem:53,report:[],pri0:26,is_abort:47,basedictbackend:100,lock_id:105,bar:[83,70,26,71,72,5,66,8,75],httpdispatchtask:[8,83,5,20,24],emb:[2,65,26],init_load:[87,82],dump_act:[11,88,98,26],baz:[75,26],error_callback:[76,68],patch:[],cleanli:26,"44b8":26,signal_nam:1,format_task_ev:49,ignore_sign:1,amqpadmin:111,respond:[74,111,26],on_onlin:16,mark_as_don:100,human:[19,111,60],fair:[113,26],increment_bi:29,mysql:[],"0x5f74bd8":[],mandatori:[83,25,109,26,19,34,5],nowfun:113,respons:[20,47,26,19,111,42,5,15,30,74,8,113],fail:[],padlist:107,best:[],subject:[61,17],awar:[83,42,47,109,26,19,34,5,51,24],hopefulli:[107,19],sigint:[87,26],with_detacher_default_opt:75,discoveri:26,figur:59,languag:[72,19,2,20,109],myview:47,"0x5952668":[],awai:[5,26],irc:[],approach:[35,5,56,70],celerybeat_pid_fil:26,attribut:[83,25,36,26,86,56,28,34,5,51,29,107,74,8,109,70],accord:111,never:[83,72,26,55,19,34,105,5,22,7,51,24],extend:[],gen_unique_id:[107,26],vorushin:65,xrang:47,weak:[74,70],extens:[71,46,24,99],lazi:[101,27,87,26],cut:24,list_of_return_valu:[66,83],functool:[],toler:[19,78],article_id:5,protect:19,accident:26,task_kwarg:[12,8,40],hashabl:74,fault:78,howev:[83,42,94,109,26,19,56,34,5,114,1,51],against:[47,19,24],refresh_fe:112,run_celeryev:58,"0x5f75368":[],com:[],database_engin:99,compromis:[94,26],asctim:[12,51,26],kwd:[23,76,53,68],taskregistri:[86,26],"889143a6":38,handle_success:[21,18],height:65,wider:26,celeryd_task_time_limit:[],guid:[],assum:[19,70,26],redis_timeout:[44,26],recur:72,mydatabas:[51,26],modifi:[35,81,75,26],fri:[35,113,26],divers:42,three:[109,26,56,111,35,50,113,75],been:[],"0x7f703cf9d150":106,trigger:[35,23,26],interest:[],subscrib:[72,26],my_vhost:30,disengag:42,"__doc__":26,nodenam:75,fill_rat:[50,36],lifo:53,xxx:[42,26],worker:[],setup_log:[87,26],ani:[72,2,34,5,35,67,94,8,70,12,42,15,74,100,19,20,48,107,23,51,83,25,109,26,55,56,28,29,30,57,113,112],ae68:26,task_accept:97,child:[],"catch":[26,21,107,74,51,24],store_result:[100,114,26],consume_messag:15,default_backend:[33,26],import_task_modul:61,ident:[76,68,70],forum:42,expand_destin:79,servic:[],properti:[19,56,26],celery_create_missing_queu:[],aim:59,calcul:[73,48,70,29],occas:42,gave:8,opt:[93,21,75,26],"0x4efecf8":[],systemexit:55,kwarg:[32,79,1,76,27,34,66,5,7,35,8,68,114,39,40,112,71,11,12,106,82,16,43,100,101,18,62,47,90,19,103,104,105,53,48,21,0,111,107,23,80,78,24,83,25,109,26,54,86,56,28,29,58,30,46,85,87,88],conf:[],coni:89,"3cf815672b0e":26,dumper:[],conn:[111,26],success_msg:21,iyellow:27,node_al:75,incorrectli:26,perform:[],suggest:67,make:[],transpar:42,polaroid:[30,4,26],default_rate_limit:57,complex:[26,19,56,5,48,59],"42a0":26,initial_prefetch_count:15,cassandra:[],jerri:26,complet:[83,38,25,26,76,56,28,111,66,5,48,30,113],mongodb_port:104,abortableasyncresult:47,evid:[24,26],install_worker_int_handl:82,hand:[],delight:19,fairli:[51,109],rais:[2,78,34,5,36,68,38,39,15,74,100,44,18,76,19,48,21,107,50,51,24,83,25,109,26,86,28,57],refil:[50,36],einfo:[34,83,26],parse_pag:5,butter:26,kept:[15,70],scenario:[],opalfe:26,cjson:109,thu:[35,51,26],dmap_async:[83,62,26],inherit:[100,38,5,94,26],weakli:70,get_traceback:100,thi:[32,72,62,2,3,65,93,34,66,5,36,7,35,8,68,38,39,70,67,71,12,42,76,15,99,43,100,101,47,50,19,94,105,20,48,21,22,111,107,23,80,51,74,24,83,25,109,26,55,56,28,81,113,29,30,57,61,114],everyth:[42,72,19,56],left:[],identifi:[25,26,55,72,28,76,5,22,74,51,68,57],just:[],sigusr1:26,laptop:72,setup_logging_subsystem:12,mongodb_password:104,list_queu:[30,19],yet:[83,38,2,109,26,19,34,5,48,30,76,68],"04t10":26,previous:[100,114,28,26],"0x5952230":[],easi:[20,26,72,56,65,5,48,29,99],"0x6d7f6e0":[98,88],consumer_tag:26,had:[5,40,15,65,26],is_valid:5,receive_messag:[15,88],els:[30,5,56,29],save:[22,26,97,72,28,5,21,29,87],bnf:113,get_key_for_taskset:100,"3px":65,celeryd:[],ends_in:73,supervisord:[],mayb:[56,29,26],preserv:[59,5,26],broker_vhost:[],shutdown_nod:75,celeryq:[19,29,26],euid:26,background:[],eta_schedul:[],command_nam:111,database_nam:[99,26],httprespons:[20,26],everymondaymorningtask:[34,83],daemon:[],specif:[],arbitrari:[26,83,76,62,19,34,5,68],manual:[],create_pidlock:1,noth:[107,2,29,1],commit_manu:5,even_time_distribut:26,process_short_opt:75,bunch:104,tcp_nodelai:51,djangofe:[66,83,105],uppercas:5,result_backend:57,celeryd_multi:[],tombston:[72,5,57,51],www:[19,8,65,26],right:[38,26,19,105,5,29],old:[5,26],deal:42,negat:26,interv:[],eas:[19,109],somehow:39,dead:24,intern:[],sure:[83,42,2,109,45,26,19,34,107,5,61,30,81,51,24],thinkingcactu:65,bore:2,successfulli:[83,26,56,28,34,5,48,21,30,80,100,24,18],myperiodictask:19,twitterpoststatustask:[34,83],tyrantbackend:95,init_screen:52,txt:26,djangoproject:[30,99],get_nowait:50,fox:27,subclass:[83,10,36,47,26,2,34,5,48,29,74,8,20],taskdaemon:26,cnf:19,extract_respons:8,cnn:[66,83,56],condit:[5,42,2,26],fileconfig:26,foo:[83,51,70,26,71,107,66,8,75],localhost:[38,26,19,56,44,104,22,99,51,57,17],authkei:[76,68],core:[70,26,42,105,5,51,57],plu:26,sensibl:[56,26],soft_timeout:[76,68],bold:27,promot:2,repositori:[72,22,26],post:[83,20,56,65,5,22,8],davidfisch:65,long_descript:26,error_msg:21,plug:[30,99,56,89,26],send_celery_task_error_email:26,postgresql:[51,26],embed_clockservic:[82,13],chronolog:36,curri:26,choke:15,surround:42,deprecated_set:44,commit:[19,5],"0x7378248":106,boundmethodweakref:70,produc:[],pool_putlock:[82,13],mycustom:26,on_task_init:61,"float":[30,5,109,26],encod:[20,109,26,56,48,8],bound:[59,111,70,56,26],down:[],slurp:26,iwhit:27,contrib:[],working_directori:1,bool:111,deletion_method:70,accordingli:[94,47,24],git:[72,22],wai:[29,26,19,56,111,42,5,22,30,81,109,24,70],frustrat:42,support:[],remove_if_stal:1,happi:[2,65,26],avail:[],stuck:[24,26],setdefault:53,wordpress:[5,65],overhead:5,"0x6d7f398":[98,88],max_tasks_per_child:[82,13],tediou:2,fork:[76,26],map_async:[26,62,76,5,68,24],form:[5,20,113,60],ianschenck:42,forc:[76,26,55,19,93,24],redis_connect_timeout:44,ace01fa4f91d:[83,19],"49661b9a":24,after_return:[34,83,26],justinvoss:65,renam:26,"true":[65,27,34,66,5,73,36,35,38,40,12,13,76,82,15,16,74,100,18,47,75,19,94,105,53,48,21,111,107,50,51,24,83,25,26,55,56,28,29,57,113,114],freenod:[67,2,89,29],reset:[26,27,24,1],attr:[107,5],caution:26,install_worker_int_again_handl:82,process_cleanup:[95,26,78,104,100,44],tell:[83,42,26,2,93,34,5],celery_broker_connection_retri:26,unrel:25,emit:26,enable_ev:[32,26,11,98,106,30,24,88],later:[39,109,26,19,28,29,30,72],socket_timeout:87,"abstract":[5,34,2,83,26],selection_rate_limit:52,diagnost:5,exist:[2,42,25,1,19,56,34,83,105,5,99,35,74,26],extend_with_default_kwarg:21,ship:[30,35],trip:26,spend:51,password:[83,40,1,19,34,5,30,51,57,17],interg:1,catchabl:19,celery_amqp_routing_kei:26,formatexcept:12,excel:[5,48,56,29,26],refactor:26,tim:65,"14px":65,pythonpap:65,celeryd_eta_schedul:[],test:[83,38,26,19,56,42,36],pymongo:51,roll:[5,26],node:[],taskconsum:[34,83,40],http_header:8,intend:[35,83,8],max_tasks_in_memori:16,felt:26,urllib2:26,exceptioninfo:[34,83,36,26],queri:[72,22,26,47,29,8],consid:[83,109,26,2,56,34,36,30,80,57,113],sql:[35,72,19,29,99],execpt:100,apply_aft:0,outdat:26,bitbucket:[42,26],receiv:[],faster:[57,26],home:[35,5,75,22],clickmanag:29,redirect_stdout:[87,82],increment_file_count:19,mongodb_taskmeta_collect:104,exce:[42,5],ignor:[],time:[],reply_to:88,schedule_control:[82,13],celeryd_eta_scheduler_precis:[],ready_callback:[82,13],osx:[42,22],result_exchang:57,concept:[2,99],d80d33efb22d:38,chain:[50,53],skip:[45,26],consum:[],focus:[72,2],is_act:111,"1a7980ea":24,celery_ignore_result:[],per:[],primer:[],izip_longest:42,millisecond:[51,109],decid:[109,26,2,56,5,51,113],middl:[83,94,19,34,5,29],depend:[],flask:[42,72,26],pop_valu:36,flash:65,intermedi:47,dump_schedul:[11,88,98,26],countdown:[],certainli:26,mathemat:65,join_exited_work:[76,68],decis:42,celery_concurr:38,do_something_expens:47,myperiod:19,sourc:[],string:[26,32,25,109,1,62,12,111,73,60,5,113,51,7,107,74,8,57,24],"3am":35,"7aa33db0f577":30,seteuid:1,dump_task:[11,98,88],cyan:27,exact:[72,56,109],flatten_repli:32,seemingli:16,cool:26,"0x73781b8":106,valuabl:42,administr:[72,51,56,89,26],level:[83,19,72,26,71,12,53,93,34,5,46,59,51,57,24],tear:26,die:[15,82,26],iter:[45,26,12,28,53,48,15,36,107,50,76,68,101],execute_remot:[83,5,24,62],item:[83,53,0,26,64,56,111,34,113,29,107,50,8,36,109],lock_expir:105,"0x4ef8890":[],tokenbucket:[42,36,26],div:65,round:[35,59,19,73,26],prevent:19,slower:[76,68,109],upload_fil:5,pickleabl:[62,45,21,26],"0x5f75170":[],sign:5,"06de8510aca2":26,add_file_metadata_to_db:19,taskqueu:[76,68],worker_initi:61,relocat:22,port:[20,40,95,26,19,44,78,99,51,57,17],setup_logg:12,on_task:15,establish_connect:[83,40,26,34,29,30],lazili:[50,53,26],repli:[32,26,24,51,52,88],get_logg:[83,47,26,19,34,105,5,112],pobox:111,taskrequest:[83,26,97,34,15,50,43,81,21],uniform:8,current:[],celeryinit:26,set_mp_process_titl:1,celery_eager_propagates_except:[],display_width:52,deriv:42,daemoncontext:1,gener:[],celery_broker_connection_max_retri:[],unauthor:19,agreement:42,shape:2,slow:[105,24],modif:26,task_nam:[83,32,25,40,47,26,11,12,28,34,5,106,21,66,50,51,24,18],address:[30,51,5,57,22],"0x5952488":[],pyweb:65,along:26,wait:[],box:26,cronjob:112,celeryd_concurr:[],mysit:[29,26],checksum:105,parse_opt:[102,111,58],identchar:111,extract_msg_opt:40,queue:[],oebfar:[89,65],prefetch_count:15,throughput:94,behav:[34,83,26],overriden:[34,83,26],pub_dat:5,email_bodi:21,camqpadm:26,ourselv:55,semant:26,taskset:[83,109,62,63,26,28,48,114,66,23,100,31],extra:[83,26,93,34,5,66,16,112],tweak:[94,82],modul:[],prefer:26,firstmethod:107,visibl:26,instal:[],eventconsum:40,celery_http_gatewai:20,tasklist:82,"0px":65,infinitum:94,memori:[],sake:109,"super":45,baseexcept:45,univers:72,visit:[30,26],database_us:99,live:[70,26],handler:[83,38,26,55,1,34,21,30,23,80,51,87],carrot_backend:[19,99,26],softtimelimitexceed:[39,26,76,51,68,24],msg:[4,12,75,82,53],black:27,prev:15,checkout:75,unsaf:[36,26],dbab76798756:56,djangoapp:26,fridai:35,peopl:42,finit:36,worker_ev:16,visual:80,on_ack:21,templat:[30,5],obj:107,effort:42,easiest:[5,22],content_typ:7,task_sent_handl:23,install_signal_handl:1,dburi:[54,90],freq_max:26,tokyo:[],prepar:[100,79,26],pretend:109,uniqu:[83,72,19,56,28,34,5,21,29,7,107,74,24],sleeptask:[24,26],descriptor:[12,70,26],argspec:[107,5],can:[],cam:30,celery_always_eag:[],email_subject:21,create_miss:79,retry_delai:114,purpos:113,nearest:[35,45,73,26],f2cc8efc:20,mongo:51,stream:[65,26],slightli:81,load_set:[110,26],levelnam:[12,51,26],topic:[],"7pm":35,abort:[],libmemcach:26,disadvantag:109,occur:[26,42,5,113,74,51,101],exc_arg:45,alwai:[83,42,19,47,26,12,65,34,5,51,57],sundai:[35,113,73,26],chroot:26,multipl:[70,26,2,59,51,57,24],update_st:[34,83,5,26],charset:17,ping:[],modulenam:107,abbrtask:107,write:[],anyon:[72,2,26],pure:26,nyc:107,mark_as_failur:[100,26],celery_result_engine_opt:[],resultsess:[54,90],map:[75,26,76,56,111,5,79,21,36,99,107,74,51,68,57],product:[38,2,26,19,56,42,72],on_start:16,get_publish:[34,83,109],max:[],mystdoutslogg:26,broadcastconsum:40,myworker1:26,usabl:2,myworker2:26,mac:[65,93,22,26],pending_xref:26,date:[],drastic:24,data:[],grow:26,ensure_process_aware_logg:92,taskhandl:[76,68],task_ev:16,regularli:[47,26],gethostnam:55,practic:[],explicit:[83,95,56,34,51,44],shawnrid:65,predic:107,waitexec:75,inform:[],"switch":26,preced:[10,61,26],combin:[2,94,19,26,72,30],offend:26,talk:65,celerybeat_schedul:[],taskprocessqueu:26,tty:26,celeryproject:[72,2,26],restart_heartbeat:15,create_missing_queu:26,default_routing_kei:57,elain:26,equip:89,cold:26,still:[],mainli:94,dynam:[45,113,26],entiti:[5,99,56,28,26],execute_and_trac:21,group:[2,1,76,93,68,113],monitor:[],celeryd_empty_msg_emit_everi:26,amqplib:[111,5,15,51,109],"0x4ef83d0":[],norwai:56,platform:[],window:[],safe_ref:[74,70],mail:[],main:[75,26,71,55,106,111,13,46,36,58,30,59,43,81,82],email_host_password:51,non:[83,38,40,26,47,56,111,34,107,30,57],usa:56,process_long_opt:75,fileno:12,reset_broker_connect:26,pogorzelski:65,initi:[94,76,26,12,56,13,5,15,50,43,51,68,24],workercommand:71,nov:65,now:[83,42,38,2,29,26,113,19,56,65,34,107,5,48,73,22,30,72,36,109],discuss:[42,67],introduct:[],term:[],workload:[72,109],create_pars:[102,106],name:[],ineffici:5,selected_task:52,config:[30,39,93,26],drop:[5,56,26],revert:[5,2,26],akismet_kei:5,separ:[38,2,109,26,71,19,56,107,76,68,101],miracle2k:26,hijack:26,polit:42,attributeerror:[107,26],errback:[107,76,103],compil:26,domain:5,replai:26,replac:[25,26,63,71,72,5,29,81,51,24],arg2:[20,109,26],arg3:20,continu:[69,2,29,22],contributor:[42,26],backport:26,verify_kei:5,happen:[83,42,17,45,26,19,38,34,105,5,15,30,72,67,24,61],broker_port:[],shown:[26,7],accomplish:[105,19,24,26],reload_taskset_result:[100,114,26],referenc:[74,70],"3rd":26,space:26,schedule_filenam:[87,82,13,101],profil:[22,26],fetch_pag:5,internet:42,cx_freez:26,modelform:5,correct:42,t_soft:[76,68],earlier:[38,29],calculate_kei:70,workerlosterror:[39,26],million:[72,2,29],getcwd:5,argv:[102,106,75,1],ajax:72,orm:26,mime:[26,7],process_task:[82,13],org:[2,22,26,19,109,65,42,107,29,30,72,51,36,75],close_connect:15,card:109,care:[42,5,51],reusabl:[5,70],find_posit:52,couldn:26,frequenc:[],synchron:[],format_opt:75,turn:[2,26,19,42,5,15],fledg:2,charfield:5,makerecord:26,star:[34,83],think:[29,26],lambda:[83,105,62],origin:[83,42,45,70,26,2,73,34,5,15,36,21],directli:[],template_nam:5,onc:[],celery_amqp_consumer_routing_kei:[63,26],mediatask:56,yourself:5,celery_amqp_exchang:[63,26],djangounicodedecodeerror:26,fast:[50,109,70,26],deleteexpiredtaskmetatask:[62,100,26],open:[2,95,26,97,55,12,42,106,1,72,44],tomorrow:109,size:[107,50,65,26],given:[42,50,5,107],silent:[5,2,111],workaround:[5,82,26],width:65,help_titl:52,caught:26,consumerset:40,citi:107,necessarili:[19,56,24,109],white:[5,27,51,26],conveni:[109,26,5,48,35,24],everymorningtask:[34,83],routing_kei:[83,32,25,40,109,26,11,56,34,5,29,35],friend:26,feed_task:56,unfil:36,namespacedoptionpars:75,especi:[19,22],"32666e9b":24,"public":[42,2,26],comment_id:5,specifi:[],broadcast:[],github:[2,26,67,19,65,42,20,22,30,72,51,82],hup:24,trixx:89,mostli:[],incred:[19,26],pendingdeprecationwarn:2,than:[],serv:47,wide:21,waitforslot:[76,68],"0x4efe7d0":[],every_monday_morn:[19,26],expens:[],viewfil:65,posix:19,balanc:47,were:[42,48,26],posit:[83,25,109,26,62,73,34,66,107,21,36,35,23],handle_failur:[21,18],no_ack:[40,114],transport:51,pre:[76,15,26],sai:[94,75,26,56,111,5,106,29,50],san:65,ntask:21,celery_result_dburi:[],argument:[],dash:22,"5ae0c80afbbf":24,celeryd_log_color:26,deliv:[72,5,56],notimplementederror:[34,83],alert_remote_control_repli:52,sat:26,engin:[54,5,99,51,26],techniqu:3,recompil:19,kwlist:107,commit_on_success:5,altogeth:5,ideal:19,from_except:45,take:[34,5,70,42,100,19,105,53,48,107,50,24,83,25,109,26,28,29,30,59,57,113],green:27,unittest2:26,channel:[26,111,56,15,29,67],infinit:[107,15,24,26],begin:42,run_clockservic:82,bitkick:65,incorpor:26,trace:[],normal:[83,38,70,26,34,5,29,74,51],multipli:[94,20,51,26],compress:[50,109,56,26],unknowntaskerror:21,add_consum:[32,26,11,98,106,88],pair:[74,53,70],celeryd_medi:[],homepag:[5,2,26],misconfigur:19,"8eff":[66,83],synonym:26,on_process_cleanup:61,adopt:[29,26],tasks_by_typ:16,serif:65,pyinstal:26,tasktrac:18,use_color:12,"0x7378680":106,sqlalchemi:[],runtim:[],put_nowait:50,djangotwitt:26,gracefulli:[69,76,47,108,24],send_task:[25,109,26,19,56,101],recipi:51,heap:81,show:[20,75,26,19,56,93,5,30,60],imap_unord:[76,68],"9ee8031d219d":24,delta:[34,83,73],bright:27,concurr:[],permiss:30,ground:94,slot:[50,36],is_lock:1,onli:[],explicitli:[83,2,26,19,34,5],commerci:5,tokenbucketqueu:50,favor:26,transact:[],activ:[32,2,26,97,19,106,15,30,76,68,24],state:[],"short":[],dict:[83,25,79,26,55,56,107,34,66,5,48,51,36,35,50,8,101],databaseschedul:[35,26],sighup:26,copy_file_to_destin:19,variou:111,get:[],hungryblank:65,repr:26,ssl:[19,40,51],cannot:[25,109,26,42,5,15],requir:[83,20,70,26,55,19,56,34,5,51,36,7,30,43,8,57],emergency_error:12,reveal:93,yield:[107,57,36,26],read_configur:64,to_dict:31,mediat:[],loggingproxi:12,where:[],"0x5f74ef0":[],kernel:[19,22],"__module__":45,celery_rate_limit:26,burst:[72,2,26],update_record:25,onecmd:111,pytyr:[51,95],exception_to_python:100,celeryd_listen:[],maximum:[83,26,71,113,72,34,5,101,36,107,50,51,57,24],fanout:[51,40,56,57],deadlin:[109,15,24,26],"0x59522a8":[],reserv:[],arglist:111,if_unus:[56,111],rate_limit_queue_typ:26,can_consum:36,detect:[2,15,110,26],rupi:65,format_row:52,enumer:5,mongodb_us:104,cassandra_opt:78,enough:[94,5],pyredi:[],between:[25,109,47,26,71,19,107,5,46,113,35,72,108,51,57,101],periodicworkcontrol:26,receriverkei:74,across:[56,15],freeze_support:26,celerycam:[30,26],parent:45,tup:8,comp:65,screen:[30,26],"91d2":24,maybe_utf8:8,broker_host:[],mypars:5,come:[67,22,26,56,42,5,29,51],tue:26,encode_result:100,lockfail:1,email_host_us:51,dispatch_from_messag:88,booleanfield:5,somic:22,quiet:[106,93],get_pickled_except:45,tutori:[],mani:[83,38,2,72,26,19,56,73,94,42,5,66,59,51,24,109],scope:70,evict:[51,57],proft:65,color:[12,106,27,26],windows_main:71,unittest:26,"0b74f3844c4d":24,pop:[86,53,56,26],ab86:[66,83],homebrew:22,cancel:[],constant:57,get_consum:[34,83],refreshfeedtask:[66,83],install_hup_not_supported_handl:82,processclickstask:29,mark:[83,109,26,19,34,5,100],"0x5f74f80":[],"0x59520c8":[],parser:[102,113],wakari:65,engine_opt:90,thousand:26,resolut:73,tiger:[51,26],wake:[30,26],unpickleableexcept:45,celery_max_cached_result:[],"__eq__":26,former:26,those:[42,2,93,24,26],"case":[94,47,70,26,19,42,105,5],exchange_typ:[83,32,25,40,26,11,56,34,114,29],default_exchang:57,plugin:30,ready_queu:[],"413e":24,trick:[15,24],cast:26,invok:[47,48],invoc:[83,72,19,34,5,48,7,66],"0x5952578":[],cronspec:113,on_revok:16,trove:26,add_com:5,advantag:[59,105,70,109],ctrl:26,worri:[2,26],destin:[],cluster:[],myapp:[26,19,56,5,30,51,24],exc_cls_nam:45,ascii:17,"__init__":26,develop:[],cpickl:26,helmer:26,media:[56,26],econom:5,same:[],check:[38,47,26,113,19,56,42,5,15,30,51,57,101],binari:[51,109],is_eag:5,html:[2,109,26,19,65,5,29],pad:[107,65],get_interval_from_databas:19,pai:5,eventu:[19,26],week:[35,113,26],celery_broker_connection_timeout:26,finish:[],screenshot:[30,26],driver:51,someon:[30,56,26],jirka:26,render_to_respons:5,capabl:[19,5],celeryd_pidfil:26,improv:[],extern:[65,26],processed_arg:111,iterqueu:29,sendmailwarn:17,parse_docu:5,appropri:[42,50,38,55,109],pycassa:78,everythirtysecondstask:[34,83],pep8:42,"6cf8":26,cleanup_sign:4,"0x5f75128":[],task_is_eag:[34,83],maybe_promis:107,model:[],celery_acks_l:[],mattrgett:107,redisbackend:44,store_pag:5,execut:[],mypassword:[38,22,26],tip:[],celeryd_max_tasks_per_child:[],mainprocess:20,rest:[63,19,75,26],kill:[75,26,19,22,51,24],touch:30,abil:[30,59,72,24,26],maxrat:[30,4,58,26],insight:89,selection_info:52,miscellan:[],inc_count:111,except:[],littl:[15,26],tensixtyon:65,blog:[],yaml:[25,109,19,5,7,72,51,57],"0x4ef8b10":[],exercis:29,retry_msg:21,task_result_expir:57,disrupt:42,event_exchang:57,real:[2,26,19,56,5,29,72],task_sent:[23,26],fkwarg:62,get_backend_cl:33,read:[38,2,26,64,19,56,93,114,22,99,30,50,61],startup_info:[87,82],default_retry_delai:[34,83,5],period:[],dump_revok:[11,98,88],traffic:[72,2,29],dispatch:[],default_delivery_mod:57,get_default_logg:12,world:[42,19,5,21],celery_task_meta:26,reap:[24,26],setup_task_logg:[34,83,12],process_initi:[43,13],howsthedotcom:19,integ:[83,109,26,1,34,5,35,113],server:[],shutter:[],from_dict:40,either:[83,38,25,70,26,19,34,107,5,81,15,36,66,72,74,51,24,109],helvetica:65,django_settings_modul:[93,26],output:[20,26,93,111,5,30,51],manag:[],schedulingerror:101,exitcod:[76,68,82],semver:26,deduct:5,"4e196aa4":30,bewar:113,signal_nod:75,unrecover:[71,19],messages_readi:30,workcontrol:[43,82,13,26],needs_reconnect:111,optmerg:75,freez:26,poll:[76,26,72,56,19,114,68],celery_default_exchange_typ:[],easili:[42,72,5,20,26],noon:35,notconfigur:39,definit:[63,26],prepare_valu:100,moon:20,noop:[55,13,15,107,82,21],format_queu:60,format_declare_queu:111,notabl:[19,109],knife:26,refer:[],from_messag:21,httpresponseredirect:[5,29],"60d9":26,kwarg2:[109,26],asap:7,celerybeat_opt:93,inspect:[],broker:[],on_accept:21,broken:[109,26],move_selection_up:52,"__name__":[30,45,26],"throw":[],send_twitter_statu:5,post_async:8,central:[72,26,2,42,35,24],greatli:42,ack:[26,111,56,15,29,51],merge_rul:16,celerycrq:[40,26],"419e46eb":26,luci:26,"0779f5d6a3cb":[66,83],degre:[30,19,113,26],wold:5,act:[47,26],tsigularov:19,unready_st:[],baseload:61,road:42,subsystem:[5,26],get_nam:111,activest:36,get_cls_by_nam:107,bbc:[66,83],do_work:[51,103,24],robertpogorzelski:65,terminolog:26,surviv:[72,56,29,26],strip:26,your:[],"0x67fecf8":[98,88],on_fail:16,log:[],shallow:53,celery_send_task_error_email:[],get_loader_cl:110,overwrit:19,argmerg:66,start:[],interfac:[26,19,35,29,30,50,24],low:59,lot:[],failwhal:[34,83],timelin:[],programmat:30,tupl:[83,25,70,26,111,34,107,51,36,35,16,74,8,57,113],regard:[48,29,26],jun:65,cabinet:95,updatestatusestask:26,sidnam:[51,26],isenabledfor:26,longer:[2,26,19,28,15,100],iterkei:53,"4e73":26,callabl:[34,83,112,70,62],on_heartbeat:16,"0b2":26,"default":[],picki:29,bucket:[],day_of_week:[83,26,19,34,35,113],valueerror:26,acks_lat:[],stacktrac:26,commonli:2,embed:[101,82,13,26],deadlock:[],comment_author_email:5,mongodb_host:104,redis_password:[],uid:[26,1],creat:[],on_offlin:16,taskpool:[],include_builtin:82,"47ed":26,file:[],on_retri:[34,16,83,21,26],amqresultwarn:114,crontab_pars:113,create_articl:5,fill:[30,36],incorrect:26,interval_start:107,idangazit:65,collid:[5,26],googl:[8,2,29,22],celeryd_group:93,clean_up_in_a_hurri:24,prepend:[19,48],field:[],cleanup:[90,26,78,104,4,100],chain_from_iter:[42,50,53],you:[],architectur:72,poor:42,celery_task:30,createusertask:5,registri:[],sequenc:[30,12,70,51],"0x65cb110":111,docstr:[42,5,26],celeryd_us:93,celery_broadcast_persist:26,track:[83,38,66,5,35,57],"2010_10_10_archiv":65,pool:[],assert:[5,56],get_consumer_set:40,lookup_rout:79,cpo:22,directori:[38,26,93,5,22,35,67,61],celery_backend:26,descript:42,backend_cleanup:[62,51,87,26],hello:26,daili:35,potenti:[2,24,26],"__ss_2089054":65,cpu:[71,51,57,24,26],represent:[],all:[],forget:[100,28,26],feedimport:105,format_broker_info:60,crucial:2,alreadyregist:39,improperli:39,deprecationwarn:[2,26],tahoma:65,follow:[63,93,34,5,7,72,42,19,48,22,50,51,83,20,109,26,56,28,61,29,30,113],disk:[30,29,22,26],children:24,prog_nam:[102,106,58],repl:[83,62],flexibl:[35,59,56],move_selection_down:52,"__cmp__":107,mktime:26,init:[],program:[109,26,19,93,30,1,24],"0x7378440":106,"0x4ef8250":[],celerydb:[51,26],introduc:[5,2,26,7],liter:113,testkei:56,"1pm":35,"39c530dcde25":[66,83],faq:[2,19,26,64,56,51],offlin:[30,80,26],next_time_to_run:[34,83,113],util:[],mechan:[109,70,26],"0x49aa950":[83,28],failur:[],badrpcnodedown:22,abortabletask:47,ticket:40,client_0_8:111,user_build:75,max_interv:[87,0,101],celeryd2:[75,26],celeryd3:[75,26],celeryd1:[75,26],list:[],celeryd4:[75,26],celeryd5:[75,26],emul:[51,26],adjust:24,"809c":24,stderr:[26,71,12,13,46,51,57,82],small:[107,5],format_signatur:111,"94fwdd":26,ten:35,rate_limit:[83,32,26,11,98,34,5,24,88],periodictask:[83,2,26,19,34,5,113,29,101],sync:[97,99,101,87,26],numspec:113,past:[34,83],uuid4:107,design:[30,42,5,56,26],pass:[83,72,20,70,26,2,107,34,81,5,48,15,66,25,74,8,21],further:29,excit:26,what:[],sub:[76,72,68,26],clock:[],sun:[35,73,26],section:[26,65,42,35,5,30,67],repeatlast:107,abl:[2,94,25,72,26,19,42,48,30,50,74,24,109],overload:[107,72],screen_delai:[52,26],delet:[32,90,78,36,1,95,71,72,100,44,19,104,105,114,111,51,83,26,56,29,30,85],abbrevi:[5,75],version:[],resultconsum:114,method:[111,34,5,8,68,38,10,70,42,98,15,74,76,47,20,21,107,51,83,25,26,56,113,29,57,61,88],hasn:42,full:[38,26,2,93,94,5,21,36,107,50,67,24],chunksiz:[76,68],dict_:101,caqmadm:[],behaviour:[34,83,5,51,26],shouldn:[19,5,70],"598d2d18":[66,83],strong:[],celeryd_logfil:26,valu:[65,111,34,35,5,36,66,8,68,38,70,95,72,73,15,99,100,44,101,75,76,94,103,48,21,79,107,23,51,83,53,26,56,28,30,85,57,113,114],celerybeat_max_loop_interv:[],search:[42,37,5,65],"0x65cb150":111,sender:[23,74,51,17,26],djceleri:[35,20,26],memcach:[],boundnondescriptormethodweakref:70,amount:[30,5,26],nosetest:26,pick:[42,15],action:[109,26,12,59,30,23,100],djangosnippet:26,celery_result_backend:[],via:[2,26,55,72,20,51],requestcontext:5,attributedict:36,transit:5,celeryd_pid_fil:[93,26],"85ad":20,task_name_or_cl:48,young:109,filenam:[109,26,71,19,5,46,97,51,57],href:65,famili:65,decrement:[15,36,26],establish:[83,32,25,40,109,26,34,15,51,57],handle_error:0,select:[83,109,72,34,15,43,51,52],column_famili:78,earliest:109,handle_keypress:52,clockservic:43,stdout:[30,12,106,51,26],regist:[],two:[83,38,72,36,75,26,19,56,94,34,105,5,29,107,59,81,51,109,113,70],coverag:26,textind:60,splash:75,morn:[35,19,26],no_color:[106,27],taken:[64,109,26,1,56,42,36,35],kick:35,handle_after_return:18,minor:[19,2],more:[32,2,65,34,5,35,38,40,72,42,74,19,47,94,105,21,22,80,51,24,83,109,26,56,28,30,59,113],stop_consum:15,desir:[47,109,26],tester:26,hundr:[30,34,5,83],"0x4ef8450":[],worker_readi:23,sharedcount:36,"17t12":7,broke:26,particular:[35,50,74,19,1],known:[30,19,26],max_length:5,original_lin:111,none:[32,79,1,85,76,78,34,102,4,5,73,36,50,66,8,68,114,38,69,40,70,95,71,11,12,106,13,98,82,15,16,74,100,44,17,18,62,101,47,90,75,45,19,103,104,48,21,0,111,107,23,108,51,52,83,53,26,54,113,55,56,28,87,58,30,46,60,57,61,88],getargspec:[107,5,26],"_all_inst":70,hour:[83,2,26,19,73,34,35,5,60,30,51,113],eta:[],enter_aft:0,schedulecontrol:[],aeb9:[66,83],dev:30,option_list:[102,106],remain:[73,24,26],amqp_:26,userguid:[19,26],sentri:26,delivery_tag:56,def:[34,5,38,70,72,42,19,47,105,48,107,23,51,24,83,20,109,26,56,29,30,112,88],mail_admin:[61,17,26],explod:19,passiv:56,omit:30,prompt:[56,111],brown:27,"final":[38,36,26,56,105,5,15,22,51,57,109],challeng:5,registr:26,share:[5,2,15,26],task_typ:16,accept:[83,76,26,97,113,19,34,5,48,21,23,74,68,24],margin:65,worker_process_init:[23,26],minimum:26,magenta:[27,26],filter:[23,5],pickledobject:26,cours:[47,19,5,24],goal:42,secur:[],rather:[5,56,22,26],anoth:[],divis:[35,113],basebackend:100,task_count:[30,16],reject:[21,26],"gr\u00e9goir":26,total_second:26,simpl:[],whatupderek:65,isn:[],install_worker_restart_handl:82,camqadm:[],matclayton:65,nose_verbos:26,not_empti:26,sneak:26,active_request:97,reflect:26,serfun:62,buffer:[12,26],unlink:26,associ:[83,19],"0x59525f0":[],loggeradapt:26,stabil:26,"0x65cb6d0":111,on_ev:49,roundtrip:94,loud:2,"0x73782d8":106,celery_amqp_connection_max_retri:26,hashcompat:105,caus:[109,26,47,42,5,24],callback:[],store_page_info:5,egg:26,queue_delet:111,feed:[26,56,105,99,50,112],tt_port:[],improperlyconfigur:[44,5,78,39,26],mainthread:15,soon:[57,19,15,36,26],held:19,paper:5,through:[26,47,56,42,5,59,74],reconnect:26,brokerconnect:26,pidlock:26,paramet:[32,62,76,111,34,73,36,66,8,70,11,12,13,15,74,101,18,45,47,21,0,107,50,108,82,83,25,55,56,28,86,88],style:[],arial:65,celeryresult:[51,57,114,26],itervalu:53,psycopg2:26,relev:[42,111],late:[51,26],pend:[],getpid:75,exchang:[],auxww:[19,24],might:[36,26,19,56,42,5,21,29],alter:26,"0x73785f0":106,recip:[3,36],good:[94,47,29,26,19,42,5,36,51,109],"return":[32,72,62,76,111,34,5,36,50,66,8,68,53,38,10,70,12,73,16,74,100,101,18,47,45,19,103,105,20,48,21,107,23,51,24,83,25,109,110,26,55,56,28,29,30,112,86,113,114],truncate_text:107,timestamp:[26,36,49,30,16,80,52],"422f":26,wast:5,framework:[105,20,26],subtask:[],cet:26,pong:[83,62,24,26],detach:[26,22,1],oper:[83,39,72,26,55,2,56,28,107,34,35,48,36,30,50,100],multi_arg:75,clear_aft:4,anyjson:[20,26],troubleshoot:[],userid:40,authent:[19,51,26],mysteri:26,did:[48,28,26],token:[],innodb:19,"1am":35,found:[42,39,26],intervent:19,backtrac:5,truncat:[107,26],launchd:[],exhaust:[107,5,51],get_async:[8,20],michael:[5,56],hard:[70,26,71,56,51,24],idea:[42,2,26],crontab:[],realli:[42,19,5,26],heavi:109,on_worker_init:[64,61],embeddedservic:101,expect:[26,19,42,48,36,50],mongodb_databas:104,hart:15,todo:26,scribd:65,agre:42,update_from_dict:101,robert:65,set_effective_us:1,publish:[83,42,40,109,26,55,56,111,34,5,114,29,66,51,57,101],payload:15,print:[109,26,19,27,5,30,23,24],mutableurl:8,shockwav:65,"4px":65,foreground:[38,52,24],max_iter:12,proxi:26,advanc:[],thursdai:35,update_bucket_for_typ:50,pleasant:42,reason:[19,109,26,12,56,5,15,67,20,113],base:[],redis_connect_retri:[51,44,26],ask:[],tasks_by_work:16,recv:30,interval_max:107,basi:2,task_arg:40,thread:[],launch:[],delivery_info:[83,26,56,34,5,21],celeryev:[],retriv:50,perman:22,circuit:70,heartbeat:[],lifetim:5,assign:26,t_hard:[76,68],celery_amqp_connection_retri:26,obviou:42,set_loglevel:[11,88,98,26],feel:[42,19],articl:[19,5,65],misc:109,number:[32,34,66,5,36,7,35,38,71,72,13,82,99,101,76,19,94,48,107,50,51,24,83,25,109,26,56,28,29,30,57,113],done:[83,42,38,20,109,26,19,94,34,22],reentrant:19,stdlib:22,mylongrunningtask:47,control_dispatch:15,stabl:[],miss:[109,26,65,42,107,81],"0x4ef8990":[],vandelai:51,differ:[72,109,26,19,56,42,30,59],guest:[51,56,26],script:[],get_broker_info:60,interact:[42,26],dispatcherkeyerror:74,construct:[42,21],auth_group_permiss:30,spam_filt:5,broadcastpublish:40,compress_video:56,myuser:[38,99,22,26],illeg:22,gid:[26,1],scheme:[26,72,19,20,7],disagr:42,celeryd_prefetch_multipli:[],schema:99,adher:10,mikedizon:26,option:[],auto_delet:[40,56,114,26],get_absolute_url:5,event_routing_kei:57,part:[38,109,26,65,42,66,105,5,99,30,23],pars:[102,75,26,1,111,73,58,30,113],word:[56,109],evdump:49,unknownstatuserror:8,"8b4f":[66,83],grace:[82,13],ensure_start:0,albeit:29,kind:[],lowpri:109,grep:[19,24],tyrant_host:95,whenev:[83,38,34,5,30,59],remov:[],event_count:[30,16],increment_click:29,stall:26,store:[83,100,38,72,70,95,26,19,56,33,34,35,5,21,22,30,51,44,57,24,114],str:[83,10,26,27,111,34,107,8],stale:[19,26],typic:56,exception_st:[],comput:[19,5],write_pid:1,luckili:19,unboundlocalerror:26,packag:[19,26,72,42,22,51],expir:[],"0x73784d0":106,dedic:[5,2,109],"null":26,imagin:[19,5],built:[],equival:[76,12,68,26],remote_addr:5,replyto:40,stepsandnumb:65,handle_retri:[21,18],also:[2,93,5,23,35,67,38,71,72,42,15,75,19,94,48,21,22,107,50,51,24,25,109,26,56,29,30],without:[70,26,63,72,93,28,15,29,35,50,24,21],worker_init:[23,82],build:[],auto_declar:[40,56],jacobian:65,fastqueu:50,on_tick:0,distribut:[],settingsdict:64,previou:[83,26,2,34,5,36,35],reach:[107,2],most:[94,72,29,26,19,56,42,36,59,109,70],plai:[],jerzi:26,"0x65cb850":111,eceleryd:2,user_ag:8,testproj:26,appear:30,exc:[83,39,45,100,34,5,15,112,107,76,18,21],"0x5f75248":[],clear:[53,0,26,15,36,50,16],cover:[42,26],celery_amqp_connection_timeout:26,image_task:56,clean:[39,26,76,56,29,51,68,24],amqp_host:26,eagerresult:[83,25,26,28,34,51],optionpars:102,awesom:[2,65],wsgi:26,maxretriesexceed:5,colorformatt:12,consult:[],name_change_request:26,nasdaq:109,session:[],particularli:109,broker_us:[],sqla:26,is_iter:107,font:65,fine:[19,5,45],find:[],"0x5f74fc8":[],"0x7f6df1a17150":[],impact:42,coerc:[48,111],pretti:113,process_upload:19,solut:[19,5,26],"3pm":35,task_registri:50,eventdispatch:[55,15,26],februari:[91,77,41,14,96,6],factor:24,persistentschedul:[71,13,46,87,101,35,51,82],hit:[19,56,47,26],screen_width:52,date_don:31,ericholsch:65,express:[35,109,113,26],"__ss_4848163":65,resent:15,blank:[30,5],nativ:109,celerybeat_group:93,tasksetresult:[66,83,48,28,26],emailfield:5,trespam:65,turnkeylinux:65,poolwork:26,restart:[],timeout_callback:[76,68],uncomfort:42,pingback:76,celery_task_st:30,positionqueu:36,"0x67fe7d0":[98,88],emfil:26,common:[39,70,26,19,3,42,72,109],mediator_cl:[82,13],timbul:65,slidesharecdn:65,seamlessli:19,wrote:[29,26],set:[],art:5,dump:[],expected_tim:[50,36],startup:[],"802e93e9":26,atexit:26,see:[32,64,2,93,34,5,36,35,67,38,10,40,11,72,13,82,15,76,101,19,45,94,21,22,111,107,50,51,24,83,109,26,56,28,113,29,30,61],sec:60,seb:65,arg:[32,79,62,76,111,34,66,5,7,35,68,39,40,112,71,106,102,42,82,16,43,100,101,18,45,75,19,103,104,53,48,21,0,107,23,80,24,83,25,109,26,86,56,28,30,46,85,87,88],close:[26,83,19,109,95,1,97,55,12,56,34,5,15,29,101,76,51,68,44,24,114],dateutil:26,slideshar:65,freq:[30,4,26],someth:[],particip:[42,67],save_taskset:[100,114],reus:[],md5_constructor:105,cleanup_in_a_hurri:51,subscript:26,experi:[42,94,19,24],altern:[47,26,19,42,5,35,50,53],signatur:[5,40],task_statu:26,appreci:42,add_us:22,decrement_eventu:15,isol:19,abruptli:26,incident:26,succeed:[30,80,21,26],frozenset:[100,44],"0x7378488":106,xuzzi:[75,26],classnam:107,add_bucket_for_typ:50,both:[94,2,70,26,19,56,42,15,30],arglin:111,last:[53,56,35,107,36,30,51,101],queue_nam:[56,26],celery_amqp_exchange_typ:[63,26],hint:93,alon:65,event:[],rotat:109,"8am":35,context:[19,5,21,26],forgotten:[5,26],"0x5f75200":[],pdf:65,whole:[42,5,26],"7a7c44e39344789f11b5346e9cc8340f5fe4846c":26,simpli:[26,56,5,15,35,81,24],undefin:19,point:[],instanti:[107,86,70],schedul:[],ret_valu:[76,21,28,103],ubuntu:[],arbitrarili:72,"0x4082b00":53,total_run_count:101,carrotlisten:[],param:[8,20,65],shutdown:[],linux:42,throughout:26,xkcd:[66,83],sever:[83,72,26,59,56,66,5,48,15,7,30,23],get_default_backend_cl:33,stamp:26,help:[],due:[30,47,101,26],empti:[32,36,26,19,42,0,7,30,50],implicit:26,"0x4ef8c10":[],whom:56,secret:99,"9hom6t":26,newlin:75,threaten:42,huge:30,"0x3184320":[],heartbeat_max:16,messages_unacknowledg:30,taskpublish:[83,40,26,34,21,66,101],mind:[2,113],imag:[75,26,71,56,22,109],great:65,ecosystem:42,func:[76,68,26],fail_sil:[61,21,17],botland:[89,65],imap:[76,68],dequ:42,weekdai:[113,73],stolen:36,fur:65,look:[38,20,109,26,5,107],get_bound_method_weakref:70,frozen:26,celeryd_log_fil:[],utf8dict:8,import_fe:[105,56,26],histor:56,durat:94,autoregist:[34,83,2,26],"while":[72,109,26,19,56,107,5,101,29,59,30,50,17],smart:26,behavior:[],error:[],email_port:51,broker_:26,leland:65,loos:65,loop:[26,47,13,82,15,74,24],manner:[42,5,109],propag:[83,10,26,12,28,34,5,74,18],celery_amqp_publisher_routing_kei:[63,26],ordereddict:53,max_client:36,hartbeat:15,readi:[2,5,66,68,38,10,97,72,13,15,16,76,103,48,23,81,82,83,25,26,28,30],readm:26,itself:[70,26,93,28,56,48,99,24],honza:19,seen:16,osx_proxy_detection_workaround:82,robin:[59,19],addhandl:26,around:[66,19,5,48,109],issue4978:107,weakref:[74,70],decor:[],mytask:[20,26,19,5,51,24],minim:42,celeryd_task_log_format:[],get_statu:100,get_typ:66,hexdigest:105,decod:[109,40,15,26],event_exchange_typ:57,prettify_dict_ok_error:106,sqlite3:30,mod_wsgi:26,conflict:26,higher:[10,26,19,30,51,24],run_from_argv:106,optim:[],strargv:1,leopard:22,alert:[89,52,109],eta_scheduler_cl:[82,13],moment:[51,26],applic:[83,94,20,109,26,56,65,34,5,29,7,24],broadcast_exchange_typ:57,robust:72,stack:[],recent:26,log_result:19,bpm:108,travers:[56,26],a6e1c5ad:26,unicod:[107,109,26],discourag:29,older:[19,36,26],entri:[],celery_amqp_consumer_queu:[63,26],amqp_port:26,pickl:[],person:[42,5],cleanup_freq:4,"5am":35,exit_aft:0,dump_reserv:[11,88,98,26],"0x6d7f1b8":[98,88],mon:[19,113,73,26],periodic_task:[19,2,112,26],install_platform_tweak:82,itemgett:107,verbose_nam:[5,29],petersson:[19,65],scheduler_cl:[87,82,13,101],amq:56,read_pid:1,"0x300d950":[],listener_cl:[82,13],controlreplypublish:[40,88],get_taskset_meta:100,send_robust:74,init_work:61,site:[86,5,29],task:[],snappi:19,liu:65,sinist:19,shortcut:[83,38,20,109,26,34,5,48,66],eager:26,armin:26,win:52,input:111,subsequ:[107,26],bin:[],"0x6d7f140":[98,88],celeryd_opt:[93,26],"0x5952398":[],big:[36,26],defaultbackend:[33,28],insert:[53,29],bit:[19,109,65,26],characterist:109,outright:2,lost:[83,72,26,19,34,15,51,57,24],worker1:[24,26],signal:[],worker2:[24,26],resolv:[42,22],setegid:1,collect:[83,51,40,70,19,103,42,50,76,8,24,109],"boolean":109,subtask_id:[66,83,26],popular:[59,24],send_increment_click:29,celerybeat_logfil:93,encount:26,tmpfile:19,often:[83,94,26,47,34,5,30],import_default_modul:61,babii:26,acknowledg:[83,26,19,56,34,5,21,29,30,43,51,57,15],creation:70,some:[],back:[51,26,42,5,22,74,8],global:[83,2,109,110,26,97,19,34,5,72,51],urgent:26,"30a":26,celeryd_hijack_root_logg:26,virtualenv:[],info_str:52,mailserv:[51,26],statedb:[97,51,24,26],exec:[93,26],pep:42,benefit:5,celery_taskmeta:[104,51,26],auto_add_now:5,retri:[],larg:[],humanize_typ:49,prog:58,pylibmc:[51,26],reproduc:42,djangoceleri:65,machin:[72,5,51,24,109],resultpublish:114,stompi:19,run:[],"41fa":24,multitool:75,vitali:26,timeutil:[],sacrif:26,initarg:[76,68],step:[],on_error:0,remoteexecuteerror:8,meantim:5,feb:65,outqueu:[76,68],binding_kei:56,"0x7378368":106,strtb:[21,18],constraint:109,materi:56,c053480b:26,shini:[22,26],delivery_mod:[34,83,40,114,26],import_modul:61,maxlen:[107,21,36],celery_redirect_stdouts_level:[],allowfullscreen:65,"0x6d7f410":[98,88],install_worker_term_handl:82,unfilledposit:36,exc_info:[0,26,13,21,36,82,18],"442b7124132c":26,block:[83,25,47,26,19,65,34,5,50,76,51,24],to_i:20,"1e1b72063514":[66,83],"__repr__":[107,26],pythonpath:26,within:[42,28,56,24,26],celery_task_error_whitelist:[],"0x6d7f320":[98,88],ellipsi:107,ensur:[],announc:[2,26],durabl:[40,56,114,26],inclus:26,"0x65cbe10":111,maybe_du:101,e470:26,spam:5,errno:26,submit:[42,65],custom:[],aspn:36,cf6a:26,includ:[38,72,70,26,63,71,19,42,15,30,43,51,82,109],suit:26,forward:[12,5,29,50],"0x65cb910":111,properli:[26,19,5,15,8,21],picklefield:26,amqpbackend:[83,114,33,28,26],pwd:26,link:[],translat:[42,5,29],newer:107,atom:[105,26],line:[],role:29,info:[],"0x5c25cb0":[],utf:[8,26],consist:[26,72,56,105,59,50,81],munin:[],task_seri:57,format_arg:111,caller:[26,5,18],issue4607:26,planet:107,asynchronousmaptask:[62,26],on_cleanup:4,execute_saf:21,sum:[30,5,109],readlin:52,similar:[20,109],icyan:27,"40cd":20,addtask:5,supervisor:[76,68,26],curs:[],"4e52":38,flush:[55,12,26],chan:111,on_timeout:21,doesn:[],repres:[76,47,68,56,113],"char":26,proper:[42,26],incomplet:19,hatena:65,chat:[42,67],guarante:[47,5,109,29],running_appl:22,baseasyncresult:[19,28,26],amqp:[],grp:26,titl:[5,106,65,52],invalid:[20,70,26,5,15,8,21],nodedown:22,nap:52,bitbybit:65,kombu:42,"0x6d7f230":[98,88],nice:[],deseri:109,draw:52,update_page_info:5,mongodb:[],delete_expired_task_meta:[5,24,26],evtop:52,taskset_result:[66,83],weak_func:70,amqp_serv:26,mro:45,is_du:[83,26,19,34,101,113],broker_connect:60,algorithm:[50,2,72,36,26],mimetyp:20,evenli:26,taskcontrol:26,tandem:29,"8b24":26,far:[30,19,5,56,26],loggerwrapp:26,"0x65cb290":111,aa22:24,myhttplib:5,code:[],partial:[33,26],"9e39363125a4":26,create_daemon_context:1,"0x5f753f8":[],get_pickleable_except:45,maybe_expir:21,"0x5f74b48":[],pydispatch:70,privat:[42,26],send_ev:[57,82,15,13,21],base64:109,celeryd_chdir:93,friendli:111,send:[],nose:26,granular:[],lower:[10,57,113,26],pcount:15,becam:26,sens:5,fatal:[71,46,26],whitelist:21,sent:[83,38,109,26,19,56,34,5,21,29,30,23,80,51,57,15],dobavlyaem:65,rollback:[5,26],whichev:22,"88d0":26,comment_cont:5,webhook:[],unacknowledg:[30,94],speedup:109,event_seri:57,on_receiv:16,selection_traceback:52,"0x5952320":[],celerybeat_pidfil:93,oknodo:93,stackoverflow:65,dbname:51,tri:[94,19,15,26],d959:[66,83],magic:[],for_url:29,button:5,grammar:113,limitedset:36,"45ca":[66,83],fewer:94,"try":[83,42,45,109,26,19,93,34,105,5,22,107,51,57,24,112],race:[5,2,26],task_readi:97,maxsiz:50,dealt:47,zero:[94,56,26],django_project_dir:26,process_click:29,get_amqp_api_command:111,pleas:[83,2,36,26,67,71,19,93,65,34,5,29,30,51,109],encapsul:5,impli:[5,56,26],smaller:[5,109],"0x5952410":[],purg:[71,111,19,56,26],natur:[],contructor:[50,53],crop:109,cron:[],video:[109,26,71,56,50,75],earth:107,download:[],"0x4741320":[107,82,15,13,21],odd:26,click:[],append:[19,75,71,47,5,46,29,30,51,57,109],uer:1,compat:[],index:[],celerystat:26,taskmeta_collect:51,f1af57789758:26,compar:10,total_count:97,anton:19,executewrapp:26,"8d30a464edf":26,"0x6d7f0c8":[98,88],access:[38,25,36,26,19,56,107,105,5,22,35,24,109],wanted_module_item:64,"0x7378320":106,garbag:70,celery_rout:[],set_permiss:[22,26],timeouterror:[39,100,28,26],run_everi:[83,26,19,34,113,29,101,112],iteritem:53,wait_for:[100,114],len:5,bodi:[83,26,76,56,34,5,106,61,29,68,17],celeryd_pool:[],let:[38,109,26,19,56,42,5,48,21,29,30,24],add_vhost:22,parse_gid:1,myhost:[75,22,26],becom:[70,26,19,56,48,36],sinc:[20,109,26,19,35,5,30,76,24],acquir:1,convert:[83,81,26,100,73,111,34,5,15,8],convers:26,larger:[42,109],accept_callback:[76,68,103,26],beatcommand:46,dispatch_uid:74,earli:[15,26],setup_result:54,"0x6d7f668":[98,88],honor:[47,26],chanc:[19,26,76,42,39,107,68],shovel:89,email_timeout:[51,26],danger:15,revok:[],appli:[],app:[],create_sess:54,feed_url_hexdigest:105,api:[],redi:[],testqueu:56,celery_redirect_stdout:[],move_select:52,usd:109,from:[],zip:26,commun:[],ser_cal:62,next:[83,26,113,19,111,34,15,0,107,50,101],websit:[42,22],few:[19,5],camera:[],usr:[97,101],"0x6d7f2a8":[98,88],length:[30,109,36],expiri:[34,83,109,26],result_expir:90,cosmo:51,on_readi:[76,103],exit:[39,26,76,111,1,68],on_delet:70,comparison:10,igreen:27,appropi:[50,70,18],impress:[19,2],sbin:22,ugettext_lazi:[5,29],"transient":[51,70],rabbit:[19,56,22,26],mark_as_revok:100,rare:19,findsig:75,socket:[55,112,26],annoy:67,taproot:99,account:[83,42,72,2,73,34],chdir:93,retriev:[69,26,72,56,28,50],apply_entri:0,alia:[83,102,40,110,62,26,33,28,101,66,8,87,88],resetscreen:52,when:[],if_empti:56,annoi:[2,111],carrot:[],meet:42,fetch:[100,38,5,114,26],aliv:[83,32,70,26,76,16,68,24],sqlite:[51,26],malform:[15,26],tar:72,process:[],lock:[],"0x4d42e68":33,sudo:[19,22],high:[72,19,109,24],"8eac":26,celery_default_delivery_mod:[],tab:[56,65,111],onlin:[30,80,52,26],serial:[],apply_eta_task:15,unus:0,delai:[],"95b45760":26,prepare_except:100,georg:[107,25,8,51,26],sig:75,memoiz:107,default_queu:57,instead:[2,83,25,70,45,26,62,19,56,34,63,5,107,15,29,66,50,51,101],stock:109,b4996460:[66,83],farg:62,overridden:[83,26,76,34,5,51,68],watch:19,release_lock:105,differenti:70,reset_connect:[15,24,26],scutil:22,eager_propagates_except:57,physic:59,alloc:30,get_or_create_work:16,essenti:19,loglevel:[83,38,75,26,71,11,12,13,34,107,4,5,46,21,87,58,82,51,24],bind:[109,26,19,56,111,29,30,59,51],counter:[],correspond:[42,111,26],setproctitl:[26,2,1],element:[107,16],issu:[],prettifi:106,allow:[75,26,42,5,22,57],ignore_result:[83,26,19,34,5,51,57],celeryconfig:[38,64,26,19,93,30,51],retval:[83,38,20,76,111,34,21,23,68,18],least:[42,59,93,29,109],movi:65,everyquarterpastthehourtask:[34,83],move:[69,26,56,5,15,81],verify_exclus:40,qsize:50,comma:[71,38,26],"0x7f6dee62dc40":[],tyrant:[],consume_queu:36,warren:56,perfect:[42,29],consensu:42,keyspac:78,celery_config_modul:[38,93,26],holidai:26,testfoo:111,infrastructur:42,maprout:[79,26],test_task:26,resend:[5,15,26],bridgen:56,invalidresponseerror:8,dad:72,crash:[],greater:[38,26],"__getitem__":26,handl:[61,70,26,76,56,21,43,109,15,18],auto:[56,26],spell:42,dai:[],auth:[30,5],devel:26,billiard:26,parallelizm:65,front:26,tasktyp:[34,5],unregist:86,kwmerg:66,"0x73783b0":106,multiprocess:[],anyth:[],edit:[8,5,101],slide:65,weather:56,mode:[83,12,93,56,34,106,111,57],playingwithwir:[19,65],kosmo:51,email_host:51,subset:74,redeliv:56,b9a0:[83,19],bump:[29,26],chunk:107,"0x5f753b0":[],src:65,"static":65,comment_author:5,celery_task_result_expir:[],disable_ev:[32,26,11,98,106,30,24,88],our:[38,109,26,56,42,48,67],meth:[34,83],special:[55,70,26],out:[2,39,26,19,106,109,28,5,79,15,36,112,72,100,70],variabl:[38,26],reload:[100,93,22,114],defend:24,bad:5,ret:111,on_shutt:4,cest:26,disappear:26,run_work:82,dhcp:22,ref:[30,70,99],ready_st:[],red:[27,26],statist:[30,26],fun:[83,10,40,26,76,106,15,0,107,16,18],shut:[],retrytaskerror:[34,83,5,21,39],insid:[5,19,2,109,26],circular:26,mark_as_read:26,httpdispatch:8,"94b7":24,dmap:[83,26],njust:21,dictionari:[53,70,26,55,56,36,7,74,51,109],latest:72,releas:[],ab8bc59:26,notdot:65,indent:[30,60,106],could:[38,20,26,19,56,42,5,29,50],on_control:15,put:[29,26,76,36,50,68],membership:[5,36],timer:[26,47,13,15,0,82],keep:[],datetimefield:5,queuenotfound:39,mxcl:22,"0x5f750e0":[],outsid:[],transfer:[5,109],merge_inplac:101,celeryd_log_level:[],on_succeed:16,refresh:[50,112,26],suffix:[107,51,75,26],"0x3951e68":[],qualiti:[15,26],init_callback:15,echo:[51,26],mai:[83,42,94,25,109,47,26,113,19,56,34,5,15,30,74,51,57,24],expand_abbrevi:5,"837b":38,lol:22,lib:[97,101],facil:51,"long":[83,94,2,47,26,19,28,34,107,5,30,51],retry_over_tim:107,utc:26,prioriti:[],ancient:5,token_bucket:36,strict:19,unknown:[8,5,26],licens:[],system:[],messag:[],celery_default_routing_kei:[],attack:42,buildout:26,akismet:5,termin:[],underli:[50,47,70,26],is_spam:5,humanize_second:60,misunderstood:94,clicks_for_url:29,shell:[],"0x7378290":106,viktor:[19,65],gotcha:5,freq_min:26,message_data:[88,15,21],sort:[42,97,81,26],celeryd_redirect_stdouts_level:26,cassandrabackend:78,accompani:47,celeryd_task_soft_time_limit:[],rst:26,shelv:[35,97,101,26],textfield:5,nobodi:42,haven:[30,99,26],rss:[66,83,105,56,112],dummycli:85,amqp_connection_retri:26,structur:[],charact:[107,56,26],str_args_to_python:111,on_worker_error:76,subclass_except:45,signifi:56,stricter:26,sooner:94,celery_import:[],deliveri:[83,25,109,56,34,5,21,29,30,57],kwdict:107,"0x5f75320":[],viewer:[],mycorp:5,msec:0,myproject:[47,93],format_respons:111,have:[],tabl:[],need:[63,2,93,34,5,36,35,38,42,15,99,74,19,47,22,51,24,83,20,109,26,55,56,29,30,59,113],revoke_expir:97,featur:[],idan:65,autodiscov:26,"_detect_wait_method":15,"9am":35,maxretriesexceedederror:[34,83,39],unexpect:105,itersubtask:28,rout:[],expos:[20,26],mid:[19,26],contact:[19,56,65,26],builtin:[],which:[62,2,76,34,5,35,68,38,70,72,73,15,74,19,47,94,48,22,107,23,51,24,83,53,109,26,56,29,30,57,113],jail:[21,26],on_success:[34,83,21,26],singl:[2,34,66,5,35,38,70,75,19,94,105,48,107,50,51,24,83,53,109,26,56,28,29,30,59],"0x6d7f500":[98,88],d5owmr:26,model_object:5,unless:[83,26,55,19,34,51,24],writelin:12,"0x7378638":106,who:[],oracl:[51,26],last_run_at:[34,83,113,101],every_morn:26,celery_store_errors_even_if_ignor:[],awk:[19,24],xarg:[19,24],pyc:[97,101,26],mark_as_retri:100,why:[],inconveni:19,url:[],amqp_vhost:26,gather:[48,29,28,109],request:[83,42,19,109,47,26,97,12,34,5,15,29,50,25,43,8,20,24,21],inde:19,pidfil:[26,93,82,1],snapshot:[],determin:42,brew:22,redirect_stdouts_level:[87,82],f1c77c94beeb:20,indi:65,fact:[72,47],gazit:65,text:[8,67,26,111,65,29,107,60],verbos:[51,93,26],celery_queu:[],connect:[],anywai:[5,26],alive_work:16,redirect:[12,51,26],"5pm":35,locat:[83,67,26,5,22,99,35,8,61],worker3:24,much:[76,29,26,19,36,107,68,24,109],forev:[26,15,107,51,57,24],should:[],jan:26,mahendra:65,won:[],"5px":65,local:[],shawnmilo:65,celeryctl:[],displaythread:52,contribut:[],amqshel:111,disable_rate_limit:[82,57,13],beat:[],midnight:[35,113],simplest:56,pypi:[72,2,51,26],get_full_cls_nam:107,filter_typ:86,format_except:36,abbr:107,maybe_conn_error:15,increas:[30,107,51,29,26],feed_url_digest:105,tests_requir:26,"0x59521b8":[],enabl:[],twice:[34,83,5,26],possibl:[2,83,10,29,26,19,56,28,42,105,5,15,22,66,74,57,109],"8e93":24,grai:5,stuff:29,blogspot:65,integr:[72,26],insist:40,contain:[83,38,2,26,19,3,56,28,93,34,66,5,107,15,29,30,43,51,21],cachet:26,"11am":35,celeryd_daemon_log_level:26,view:[],do_help:111,conform:26,broadcast_queu:57,unrout:26,frame:26,task_soft_time_limit:[82,13],displai:[30,2,65,52,111],temporarili:[72,24],get_task_meta:[100,114],apply_interv:0,email_address:[5,57,51],"0x6d7f5f0":[98,88],closer:109,avelino:65,statu:[83,100,20,26,47,33,28,93,34,51,5,106,21,22,30,72,8,31,114,18],correctli:26,pattern:[19,113,29],picklabl:83,to_timestamp:0,task_postrun:[23,26],phpapp01:65,hostag:19,written:[19,75,26,72,65,5,29,109],phpapp02:65,progress:[30,42,5,72,26],"58fb":26,email:[42,26],celery_load:[63,26],setup_schedul:101,kei:[],"2px":65,run_celerybeat:87,itertool:[76,68,111],job:[],entir:[30,2],disconnect:[30,74,80,26],task_prerun:[23,26],addit:[83,109,26,71,19,56,93,34,5,21,66,51,24],revers:27,current_load:[110,26],rtype:[34,83,45],admin:[],celeryd_log_format:[],equal:[35,53,70],reply_ticket:40,etc:[32,109,26,19,93,42,5,22,43,51],instanc:[2,33,34,66,38,69,70,95,71,12,13,82,15,74,44,101,47,45,19,48,21,107,81,24,83,25,109,26,86,28,114],grain:5,sigterm:[76,68,87,26],heart:[108,15],comment:[42,5],jim:5,notregist:[25,86,5,39,26],author:[5,24],guidelin:42,ssplayer2:65,arriv:[109,26,28,24,7],wrap:[83,38,45,34,5,48,21,36,66,8],solv:[],cxc:22,weak_self:70,database_:[99,26],commentform:5,on_decode_error:[40,15],respect:[],find_nearest_pickleable_except:45,rpm:26,get_or_cr:29,quit:[26,2,5,30,74,52],tt_host:[],celery_track_start:[],multipleobjectsreturn:26,ts_re:26,compon:[],colleagu:42,json:[83,25,40,109,26,19,57,34,5,48,51,7,30,72,8,20],embedded_process:[101,87],treat:42,certain:59,maybe_schedul:113,immedi:[83,32,25,109,47,26,19,13,34,5,15,36,50,76,81,82],ghettoq:[],nonfunct:2,"0x5952500":[],testexchang:56,bo9rsw:19,bulk:26,decim:109,mywork:26,togeth:[5,70,26],bull:65,iamseb:65,multi:[],therefor:47,asyncresult:[83,38,25,47,26,19,28,34,5,48,51,112],plain:[50,29],align:[20,65],harder:26,defin:[],replica:2,exc_modul:45,wild:109,amqp_password:26,malformedinputerror:26,apply_async:[83,38,25,109,26,63,19,56,28,103,34,66,48,35,76,51,68,101],almost:5,taskmeta:26,"__reduce__":26,traceinfo:18,d2c9b261:[66,83],ba03:112,sequence_of_str:12,registered_task:[30,32,106,24,26],default_valu:111,max_workers_in_memori:16,"0x65cbb50":111,clone:[72,22],async_result:47,selection_result:52,myvhost:[38,19,22],error_whitelist:[34,83,5,26],welcom:[67,20,26],parti:[42,26],refetch:26,selected_str:52,opal:93,cross:[72,109],member:[42,36],python:[],failwhaleerror:5,wakeup:[55,26],"27f4":26,dumpcam:30,competit:26,workdir:26,http:[],hostnam:[1,78,5,40,95,71,13,98,15,16,44,75,19,24,21,22,49,80,51,82,26,55,56,30,57,88],again:[38,26,19,56,107,15,30],localcach:36,taskrevokederror:[39,109,26],effect:[26,5,57,113,1],handi:38,message_count:56,keyvaluestorebackend:100,databasebackend:90,resulthandl:[76,68],logfil:[26,83,1,71,12,13,34,4,5,46,21,87,58,107,51,82],php:65,expand:[113,5,56,79,75],fromkei:53,off:[26,56,42,35,29,30,51,24],keyboardinterrupt:55,well:[94,2,26,19,56,42,5,29,30,72],thought:65,weblog:5,exampl:[],achiev:19,choos:[71,5,46,22,26],format:[],unpickleableexceptionwrapp:45,usual:[83,51,26,19,56,5,74,8,24],load:[110,24,26],newest:65,paus:[15,26],kramer:[51,26],putlock:[76,68],mnesia:22,casper:26,heavili:42,get_key_for_task:100,import_from_cwd:61,simultan:[76,51,82,15,13],djcelerymon:[30,26],"30am":[34,83],parse_ns_rang:75,keyalia:52,priorit:19,add:[2,66,5,36,23,35,38,72,99,101,19,105,48,22,50,24,83,109,26,56,30,113],valid:[86,15],is_al:[76,68],polici:42,lookup:111,logger:[89,65,34,4,5,8,69,12,13,98,15,76,101,47,19,24,103,105,21,51,43,82,83,53,26,112,87,88],quarter:113,match:[19,5,56,109],"0x59526e0":[],jython:70,unprivileg:19,pformat:30,create_ev:55,agnost:2,"26px":65,"86a8":26,five:26,know:[38,109,26,19,28,42,105,5,48,21,30,24],delta_resolut:[73,26],loader:[],recurs:109,python2:[97,101],loss:26,"__stderr__":26,like:[2,34,5,35,67,68,38,71,72,42,76,19,94,21,79,107,80,51,24,83,109,26,56,29,30,59,57,113],success:[],header:[109,19,56,7],corpor:5,"11pm":35,broadcast_exchang:57,necessari:[75,47,56,5,15,59],on_timer_tick:[82,13],lose:26,async:[76,5,68,112],resiz:26,soft:[39,26,71,76,21,51,68,24],page:[37,20,26,19,3,5],"11px":65,context_inst:5,bdist_rpm:26,exceed:[83,39,26,76,34,5,7,107,50,51,68],didn:[38,24,26],"12px":65,acquire_lock:105,captur:[26,71,55,72,13,4,30,57,82],task_retri:[34,83,5,21],twitter:[34,83,5],suppli:[83,25,8],log_with_extra:53,self:[83,42,47,70,26,19,56,34,107,105,5,29,30],tumblr:65,reset_sign:1,contin:5,"export":[93,22,26],celery_default_exchang:[],"0x706fbd8":111,syncdb:[99,26],is_don:26,librari:[20,109,26,19,42,5,99,51],trust:5,every_hour:26,lead:[19,5,26],d5ab5ac6ad5d:112,leak:[24,26],avoid:[],thank:[19,65,26],tooltip:111,"8b19":24,executeremotetask:[62,26],estim:[26,109,24,7],leav:[30,42,56,26],something_raising_unpickleable_exc:45,swartz:65,eventreceiv:[30,55,26],hoever:15,shutter_sign:4,preload:[19,5],encourag:[42,67,19,26],investig:[72,5,26],slight:109,importerror:26,saferef:[],imaginari:105,simplifi:[76,68],usag:[],celerybeat_us:93,vhost:26,host:[],although:26,repr_result:21,timeouthandl:[76,68,26],slug:5,panel:[11,88,98,24,26],about:[2,109,26,67,19,56,28,42,5,65,22,30,23,51,24],pypars:26,actual:[83,29,26,55,19,93,34,5,48,15,22,30,74,8,24],pika:26,cpubound:26,"6am":35,column:[42,26],online_str:52,cursesmonitor:52,scott:[51,26],verbose_name_plur:[5,29],constructor:26,fals:[32,79,111,34,4,5,73,66,68,38,10,40,11,12,13,15,74,17,18,76,75,47,106,21,0,107,50,51,82,83,53,26,113,55,56,28,87,29,58,101,57,61,114],discard:[],vejrazka:26,refresh_feed_slic:26,disabl:[],kral:19,own:[],processnam:[12,51,26],additionl:[75,26],tag:56,easy_instal:[30,72,51,26],automat:[],djangocelery1:65,guard:26,setup_set:64,pitfal:19,swf:65,hang:[],merg:[16,97,79,26],user_ip:5,pictur:26,timc3:65,get_task_logg:12,completed_count:[48,28],intellig:109,get_curr:5,return_valu:21,arg1:[20,109,26],"var":[35,19,93,26],b816:26,individu:[94,29,24,109],"function":[],mailer:[17,26],simplejson:[109,26],basic:[],keyerror:[107,26],wed:26,celerymon_pid_fil:26,controldispatch:[15,24,88],gain:[5,109,26],oauth:5,invalidtaskerror:21,overflow:[],highest:[34,83,5,109],bc61:[83,19],count:[94,26,97,19,111,28,5,15,29,57,101],basicconfig:26,made:[42,72,109,26],task_time_limit:[82,13],"0x2c529e0":[],whether:[20,47,56,76,5,74,51,68],wish:42,writeabl:30,app2:26,app1:26,pageinfo:5,record:[16,12,25,26],below:[113,45,56,24,26],meta:[83,100,26,34,5,21,29,51],limit:[],indefinit:24,virtual_host:40,otherwis:[35,81,76,15,70],problem:[],strategi:[],removehandl:26,evalu:[53,47,21,107,50,51],"int":[25,26,5,36,7,20],dure:[26,47,42,5,35,51,113],pid:[75,26,76,93,5,68,24],twist:26,default_exchange_typ:57,implement:[10,70,47,26,19,56,42,72,29,59,113,109],"0x7378200":106,pip:[2,19,26,72,99,30,51],imagenta:27,probabl:[62,38,72,109,26,19,93,42,29,24],tick:101,get_fdmax:1,comment_check:5,detail:[70,26,2,42,5,30,109],virtual:[26,19,22,30,59,51],book:5,"4ce8":26,futur:[83,25,109,26,19,34,5,30,67],rememb:[42,81,53,26],route_for_task:[56,79,26],on_timer_error:[82,13],controlreplyconsum:40,xvfz:72,get_best_memcach:85,stat:[32,26,11,98,106,30,88],repeat:19,mpromis:107,retcod:75,py2ex:26,"61a68756":26,"class":[],backend_cl:40,mondai:[34,35,19,83,26],dump_messag:111,ratelimitexceed:50,debian:[],stai:93,mitemgett:107,colliss:107,sphinx:26,eof:111,messages_unacknowlg:30,add_opt:75,reliabl:[19,70,36,26],collis:26,snippet:26,delay_task:[25,40,26],rule:[10,56],yadayada:26,emerg:12,sasl:22,worker_shutdown:23,cookbook:[],ipython:62,getlogg:26},objtypes:{"0":"std:option","1":"std:setting","2":"std:control","3":"std:state","4":"py:module","5":"py:data","6":"py:method","7":"py:attribute","8":"py:function","9":"py:exception","10":"py:class","11":"py:classmethod"},objnames:{"0":["std","option","option"],"1":["std","setting","setting"],"2":["std","control","control"],"3":["std","state","state"],"4":["py","module","Python module"],"5":["py","data","Python data"],"6":["py","method","Python method"],"7":["py","attribute","Python attribute"],"8":["py","function","Python function"],"9":["py","exception","Python exception"],"10":["py","class","Python class"],"11":["py","classmethod","Python class method"]},filenames:["internals/reference/celery.utils.timer2","internals/reference/celery.platforms","releases/1.0/announcement","cookbook/index","internals/reference/celery.events.snapshot","userguide/tasks","internals/index","internals/protocol","reference/celery.task.http","internals/reference/celery.utils.functional","reference/celery.states","internals/reference/celery.worker.control.builtins","internals/reference/celery.log","internals/reference/celery.worker","reference/index","internals/reference/celery.worker.listener","reference/celery.events.state","internals/reference/celery.utils.mail","internals/reference/celery.execute.trace","faq","userguide/remote-tasks","internals/reference/celery.worker.job","getting-started/broker-installation","reference/celery.signals","userguide/workers","reference/celery.execute","changelog","internals/reference/celery.utils.term","reference/celery.result","tutorials/clickcounter","userguide/monitoring","internals/reference/celery.db.models","reference/celery.task.control","internals/reference/celery.backends","reference/celery.task.base","userguide/periodic-tasks","internals/reference/celery.datastructures","index","getting-started/first-steps-with-celery","reference/celery.exceptions","reference/celery.messaging","tutorials/index","contributing","internals/moduleindex","internals/reference/celery.backends.pyredis","internals/reference/celery.serialization","reference/celery.bin.celerybeat","reference/celery.contrib.abortable","userguide/tasksets","internals/reference/celery.events.dumper","internals/reference/celery.worker.buckets","configuration","internals/reference/celery.events.cursesmon","internals/reference/celery.utils.compat","internals/reference/celery.db.session","reference/celery.events","userguide/routing","reference/celery.conf","reference/celery.bin.celeryev","userguide/overview","internals/reference/celery.utils.info","reference/celery.loaders.base","reference/celery.task.builtins","internals/deprecation","reference/celery.loaders.default","community","reference/celery.task.sets","getting-started/resources","internals/reference/celery.concurrency.processes.pool","internals/reference/celery.worker.controllers","internals/reference/celery.utils.dispatch.saferef","reference/celery.bin.celeryd","getting-started/introduction","internals/reference/celery.utils.timeutils","internals/reference/celery.utils.dispatch.signal","reference/celery.bin.celeryd_multi","internals/reference/celery.concurrency.processes","userguide/index","internals/reference/celery.backends.cassandra","internals/reference/celery.routes","internals/events","internals/worker","reference/celery.apps.worker","reference/celery.task","internals/reference/celery.utils.dispatch","internals/reference/celery.backends.cache","reference/celery.registry","reference/celery.apps.beat","internals/reference/celery.worker.control","links","internals/reference/celery.backends.database","internals/reference/index","internals/reference/celery.utils.patch","cookbook/daemonizing","userguide/optimizing","internals/reference/celery.backends.tyrant","getting-started/index","internals/reference/celery.worker.state","internals/reference/celery.worker.control.registry","tutorials/otherqueues","internals/reference/celery.backends.base","internals/reference/celery.beat","reference/celery.bin.base","internals/reference/celery.concurrency.threads","internals/reference/celery.backends.mongodb","cookbook/tasks","reference/celery.bin.celeryctl","internals/reference/celery.utils","internals/reference/celery.worker.heartbeat","userguide/executing","reference/celery.loaders","reference/celery.bin.camqadm","reference/celery.decorators","reference/celery.schedules","internals/reference/celery.backends.amqp"],titles:["timer2 - celery.utils.timer2","Platform Specific - celery.platforms","Celery 1.0 has been released!","Cookbook","Event Snapshots - celery.events.snapshot","Tasks","Internals","Task Message Protocol","HTTP Callback Tasks - celery.task.http","functools compat - celery.utils.functional","Task States - celery.states","Built-in Remote Control Commands - celery.worker.control.builtins","Logging - celery.log","Multiprocessing Worker - celery.worker","API Reference","Worker Message Listener - celery.worker.listener","In-memory Representation of Cluster State - celery.events.state","Sending E-mail - celery.utils.mail","Tracing Execution - celery.execute.trace","Frequently Asked Questions","HTTP Callback Tasks (Webhooks)","Executable Jobs - celery.worker.job","Broker Installation","Signals - celery.signals","Workers Guide","Executing Tasks - celery.execute","Change history","Terminal Utilities - celery.utils.term","Task Result - celery.result","Tutorial: Creating a click counter using carrot and celery","Monitoring Guide","SQLAlchemy Models - celery.db.models","Remote Management of Workers - celery.task.control","Backends - celery.backends","Defining Tasks - celery.task.base","Periodic Tasks","Datastructures - celery.datastructures","Celery - Distributed Task Queue","First steps with Celery","Exceptions - celery.exceptions","Messaging - celery.messaging","Tutorials","Contributing","Module Index","Backend: Redis - celery.backends.pyredis","Serialization Tools - celery.serialization","Celery Periodic Task Server - celery.bin.celerybeat","Contrib: Abortable tasks - celery.contrib.abortable","Sets of tasks, Subtasks and Callbacks","Event Dumper Tool - celery.events.dumper","Token Bucket (rate limiting) - celery.worker.buckets","Configuration and defaults","Curses Monitor - celery.events.cursesmon","Python Compatibility - celery.utils.compat","SQLAlchemy Session - celery.db.session","Events - celery.events","Routing Tasks","Configuration - celery.conf","celeryev: Curses Event Viewer - celery.bin.celeryev","Overview","Debugging Info - celery.utils.info","Loader Base Classes - celery.loaders.base","Built-in Task Classes - celery.task.builtins","Celery Deprecation Timeline","Default Loader - celery.loaders.default","Community Resources","Task Sets, Subtasks and Callbacks - celery.task.sets","Resources","extended multiprocessing.pool - celery.concurrency.processes.pool","Worker Controller Threads - celery.worker.controllers","Signals: Safe References - celery.utils.dispatch.saferef","celeryd - celery.bin.celeryd","Introduction","Time and Date Utilities - celery.utils.timeutils","Signals: Dispatcher - celery.utils.dispatch.signal","Celeryd Multi Tool - celery.bin.celeryd_multi","Multiprocessing Pool Support - celery.concurrency.processes","User Guide","Backend: Cassandra - celery.backends.cassandra","Message Routers - celery.routes","List of Worker Events","Internals: The worker","App: Worker Node - celery.apps.worker","Task Information and Utilities - celery.task","Signal Dispatch - celery.utils.dispatch","Backend: Memcache - celery.backends.cache","Task Registry - celery.registry","App: Periodic Task Scheduler - celery.apps.beat","Worker Control - celery.worker.control","Interesting Links","Backend: SQLAlchemy Database - celery.backends.database","Internal Module Reference","Compatibility Patches - celery.utils.patch","Running celeryd as a daemon","Optimizing","Backend: Tokyo Tyrant - celery.backends.tyrant","Getting Started","Worker State - celery.worker.state","Remote Control Command Registry - celery.worker.control.registry","Using Celery with Redis/Database as the messaging queue.","Backend: Base - celery.backends.base","Clock Service - celery.beat","Base Command - celery.bin.base","Thread Pool Support EXPERIMENTAL - celery.concurrency.threads","Backend: MongoDB - celery.backends.mongodb","Creating Tasks","celeryctl - celery.bin.celeryctl","Utilities - celery.utils","Worker Heartbeats - celery.worker.heartbeat","Executing Tasks","Loaders - celery.loaders","caqmadm: AMQP API Command-line Shell - celery.bin.camqadm","Task Decorators - celery.decorators","Periodic Task Schedule Behaviors - celery.schedules","Backend: AMQP - celery.backends.amqp"],objects:{"":{"-E":[71,0,1,"cmdoption-celeryd-E"],CELERY_AMQP_TASK_RESULT_EXPIRES:[51,1,1,"std:setting-CELERY_AMQP_TASK_RESULT_EXPIRES"],BROKER_USE_SSL:[51,1,1,"std:setting-BROKER_USE_SSL"],"-B":[71,0,1,"cmdoption-celeryd-B"],CELERY_BROKER_CONNECTION_RETRY:[51,1,1,"std:setting-CELERY_BROKER_CONNECTION_RETRY"],"-I":[71,0,1,"cmdoption-celeryd-I"],CELERY_REDIRECT_STDOUTS_LEVEL:[51,1,1,"std:setting-CELERY_REDIRECT_STDOUTS_LEVEL"],CELERY_CREATE_MISSING_QUEUES:[51,1,1,"std:setting-CELERY_CREATE_MISSING_QUEUES"],CELERY_DEFAULT_QUEUE:[51,1,1,"std:setting-CELERY_DEFAULT_QUEUE"],"-S":[46,0,1,"cmdoption-celerybeat-S"],CELERYD_TASK_TIME_LIMIT:[51,1,1,"std:setting-CELERYD_TASK_TIME_LIMIT"],UNREADY_STATES:[10,3,1,"std:state-UNREADY_STATES"],CELERY_DEFAULT_EXCHANGE_TYPE:[51,1,1,"std:setting-CELERY_DEFAULT_EXCHANGE_TYPE"],"-c":[71,0,1,"cmdoption-celeryd-c"],CELERYBEAT_SCHEDULER:[51,1,1,"std:setting-CELERYBEAT_SCHEDULER"],"-l":[46,0,1,"cmdoption-celerybeat-l"],"-n":[71,0,1,"cmdoption-celeryd-n"],CELERY_MAX_CACHED_RESULTS:[51,1,1,"std:setting-CELERY_MAX_CACHED_RESULTS"],CELERYD_STATE_DB:[51,1,1,"std:setting-CELERYD_STATE_DB"],CELERY_BROADCAST_QUEUE:[51,1,1,"std:setting-CELERY_BROADCAST_QUEUE"],CELERY_RESULT_PERSISTENT:[51,1,1,"std:setting-CELERY_RESULT_PERSISTENT"],CELERYD_POOL:[51,1,1,"std:setting-CELERYD_POOL"],"-s":[46,0,1,"cmdoption-celerybeat-s"],CELERY_CACHE_BACKEND_OPTIONS:[51,1,1,"std:setting-CELERY_CACHE_BACKEND_OPTIONS"],CELERY_RESULT_ENGINE_OPTIONS:[51,1,1,"std:setting-CELERY_RESULT_ENGINE_OPTIONS"],CELERY_RESULT_SERIALIZER:[51,1,1,"std:setting-CELERY_RESULT_SERIALIZER"],CELERYBEAT_SCHEDULE_FILENAME:[51,1,1,"std:setting-CELERYBEAT_SCHEDULE_FILENAME"],CELERY_IMPORTS:[51,1,1,"std:setting-CELERY_IMPORTS"],CELERY_STORE_ERRORS_EVEN_IF_IGNORED:[51,1,1,"std:setting-CELERY_STORE_ERRORS_EVEN_IF_IGNORED"],"--purge":[71,0,1,"cmdoption-celeryd--purge"],SERVER_EMAIL:[51,1,1,"std:setting-SERVER_EMAIL"],enable_events:[24,2,1,"std:control-enable_events"],CELERYD_TASK_LOG_FORMAT:[51,1,1,"std:setting-CELERYD_TASK_LOG_FORMAT"],PROPAGATE_STATES:[10,3,1,"std:state-PROPAGATE_STATES"],CELERY_RESULT_EXCHANGE:[51,1,1,"std:setting-CELERY_RESULT_EXCHANGE"],"-Q":[71,0,1,"cmdoption-celeryd-Q"],CELERY_TRACK_STARTED:[51,1,1,"std:setting-CELERY_TRACK_STARTED"],BROKER_USER:[51,1,1,"std:setting-BROKER_USER"],CELERY_TASK_ERROR_WHITELIST:[51,1,1,"std:setting-CELERY_TASK_ERROR_WHITELIST"],CELERY_EVENT_EXCHANGE_TYPE:[51,1,1,"std:setting-CELERY_EVENT_EXCHANGE_TYPE"],CELERY_CACHE_BACKEND:[51,1,1,"std:setting-CELERY_CACHE_BACKEND"],"--scheduler":[71,0,1,"cmdoption-celeryd--scheduler"],CELERY_RESULT_EXCHANGE_TYPE:[51,1,1,"std:setting-CELERY_RESULT_EXCHANGE_TYPE"],PENDING:[5,3,1,"std:state-PENDING"],"--soft-time-limit":[71,0,1,"cmdoption-celeryd--soft-time-limit"],CELERYMON_LOG_FILE:[51,1,1,"std:setting-CELERYMON_LOG_FILE"],FAILURE:[5,3,1,"std:state-FAILURE"],STARTED:[5,3,1,"std:state-STARTED"],ADMINS:[51,1,1,"std:setting-ADMINS"],BROKER_VHOST:[51,1,1,"std:setting-BROKER_VHOST"],MAIL_HOST:[51,1,1,"std:setting-MAIL_HOST"],CELERY_DEFAULT_EXCHANGE:[51,1,1,"std:setting-CELERY_DEFAULT_EXCHANGE"],CELERY_EVENT_EXCHANGE:[51,1,1,"std:setting-CELERY_EVENT_EXCHANGE"],CELERY_DEFAULT_ROUTING_KEY:[51,1,1,"std:setting-CELERY_DEFAULT_ROUTING_KEY"],CELERY_ALWAYS_EAGER:[51,1,1,"std:setting-CELERY_ALWAYS_EAGER"],REDIS_HOST:[51,1,1,"std:setting-REDIS_HOST"],CELERY_EVENT_QUEUE:[51,1,1,"std:setting-CELERY_EVENT_QUEUE"],"-f":[46,0,1,"cmdoption-celerybeat-f"],BROKER_BACKEND:[51,1,1,"std:setting-BROKER_BACKEND"],CELERY_BROADCASTS_EXCHANGE:[51,1,1,"std:setting-CELERY_BROADCASTS_EXCHANGE"],CELERYD_TASK_SOFT_TIME_LIMIT:[51,1,1,"std:setting-CELERYD_TASK_SOFT_TIME_LIMIT"],CELERYMON_LOG_LEVEL:[51,1,1,"std:setting-CELERYMON_LOG_LEVEL"],BROKER_PORT:[51,1,1,"std:setting-BROKER_PORT"],BROKER_CONNECTION_TIMEOUT:[51,1,1,"std:setting-BROKER_CONNECTION_TIMEOUT"],CELERY_EVENT_SERIALIZER:[51,1,1,"std:setting-CELERY_EVENT_SERIALIZER"],READY_STATES:[10,3,1,"std:state-READY_STATES"],CELERY_EVENT_ROUTING_KEY:[51,1,1,"std:setting-CELERY_EVENT_ROUTING_KEY"],MAIL_PORT:[51,1,1,"std:setting-MAIL_PORT"],CELERYD_PREFETCH_MULTIPLIER:[51,1,1,"std:setting-CELERYD_PREFETCH_MULTIPLIER"],MAIL_HOST_PASSWORD:[51,1,1,"std:setting-MAIL_HOST_PASSWORD"],BROKER_PASSWORD:[51,1,1,"std:setting-BROKER_PASSWORD"],CELERY_MONGODB_BACKEND_SETTINGS:[51,1,1,"std:setting-CELERY_MONGODB_BACKEND_SETTINGS"],CELERYD_SEND_TASK_ERROR_EMAILS:[51,1,1,"std:setting-CELERYD_SEND_TASK_ERROR_EMAILS"],CELERY_EAGER_PROPAGATES_EXCEPTIONS:[51,1,1,"std:setting-CELERY_EAGER_PROPAGATES_EXCEPTIONS"],CELERY_IGNORE_RESULT:[51,1,1,"std:setting-CELERY_IGNORE_RESULT"],cancel_consumer:[26,6,1,""],RETRY:[5,3,1,"std:state-RETRY"],shutdown:[24,2,1,"std:control-shutdown"],CELERYD_ETA_SCHEDULER:[51,1,1,"std:setting-CELERYD_ETA_SCHEDULER"],ALL_STATES:[10,3,1,"std:state-ALL_STATES"],TT_HOST:[51,1,1,"std:setting-TT_HOST"],CELERY_DISABLE_RATE_LIMITS:[51,1,1,"std:setting-CELERY_DISABLE_RATE_LIMITS"],CELERY_BROADCAST_EXCHANGE_TYPE:[51,1,1,"std:setting-CELERY_BROADCAST_EXCHANGE_TYPE"],CELERYD_ETA_SCHEDULER_PRECISION:[51,1,1,"std:setting-CELERYD_ETA_SCHEDULER_PRECISION"],CELERY_TASK_SERIALIZER:[51,1,1,"std:setting-CELERY_TASK_SERIALIZER"],EXCEPTION_STATES:[10,3,1,"std:state-EXCEPTION_STATES"],REVOKED:[5,3,1,"std:state-REVOKED"],SUCCESS:[5,3,1,"std:state-SUCCESS"],CELERY_SEND_EVENTS:[51,1,1,"std:setting-CELERY_SEND_EVENTS"],REDIS_PORT:[51,1,1,"std:setting-REDIS_PORT"],CELERYD_LOG_FILE:[51,1,1,"std:setting-CELERYD_LOG_FILE"],REDIS_PASSWORD:[51,1,1,"std:setting-REDIS_PASSWORD"],rate_limit:[24,2,1,"std:control-rate_limit"],CELERYD_CONCURRENCY:[51,1,1,"std:setting-CELERYD_CONCURRENCY"],CELERY_ROUTES:[51,1,1,"std:setting-CELERY_ROUTES"],"--time-limit":[71,0,1,"cmdoption-celeryd--time-limit"],CELERY_DEFAULT_RATE_LIMIT:[51,1,1,"std:setting-CELERY_DEFAULT_RATE_LIMIT"],MAIL_HOST_USER:[51,1,1,"std:setting-MAIL_HOST_USER"],CELERY_BROKER_CONNECTION_MAX_RETRIES:[51,1,1,"std:setting-CELERY_BROKER_CONNECTION_MAX_RETRIES"],CELERYBEAT_MAX_LOOP_INTERVAL:[51,1,1,"std:setting-CELERYBEAT_MAX_LOOP_INTERVAL"],CELERYD_LOG_LEVEL:[51,1,1,"std:setting-CELERYD_LOG_LEVEL"],CELERY_REDIRECT_STDOUTS:[51,1,1,"std:setting-CELERY_REDIRECT_STDOUTS"],CELERYD_MAX_TASKS_PER_CHILD:[51,1,1,"std:setting-CELERYD_MAX_TASKS_PER_CHILD"],CELERYD_LOG_FORMAT:[51,1,1,"std:setting-CELERYD_LOG_FORMAT"],ping:[24,2,1,"std:control-ping"],CELERYD_LISTENER:[51,1,1,"std:setting-CELERYD_LISTENER"],disable_events:[24,2,1,"std:control-disable_events"],CELERY_QUEUES:[51,1,1,"std:setting-CELERY_QUEUES"],CELERY_ACKS_LATE:[51,1,1,"std:setting-CELERY_ACKS_LATE"],TT_PORT:[51,1,1,"std:setting-TT_PORT"],CELERY_TASK_RESULT_EXPIRES:[51,1,1,"std:setting-CELERY_TASK_RESULT_EXPIRES"],REDIS_DB:[51,1,1,"std:setting-REDIS_DB"],BROKER_HOST:[51,1,1,"std:setting-BROKER_HOST"],CELERY_RESULT_BACKEND:[51,1,1,"std:setting-CELERY_RESULT_BACKEND"],CELERYBEAT_LOG_FILE:[51,1,1,"std:setting-CELERYBEAT_LOG_FILE"],CELERYBEAT_SCHEDULE:[51,1,1,"std:setting-CELERYBEAT_SCHEDULE"],CELERYD_MEDIATOR:[51,1,1,"std:setting-CELERYD_MEDIATOR"],CELERY_RESULT_DBURI:[51,1,1,"std:setting-CELERY_RESULT_DBURI"],CELERY_DEFAULT_DELIVERY_MODE:[51,1,1,"std:setting-CELERY_DEFAULT_DELIVERY_MODE"],CELERYBEAT_LOG_LEVEL:[51,1,1,"std:setting-CELERYBEAT_LOG_LEVEL"],"--maxtasksperchild":[71,0,1,"cmdoption-celeryd--maxtasksperchild"]},"celery.concurrency.processes.pool.Pool.ResultHandler":{body:[68,6,1,""]},"celery.utils.timer2":{Entry:[0,10,1,""],to_timestamp:[0,8,1,""],TimedFunctionFailed:[0,9,1,""],Timer:[0,10,1,""],Schedule:[0,10,1,""]},"celery.utils.timeutils":{timedelta_seconds:[73,8,1,""],rate:[73,8,1,""],delta_resolution:[73,8,1,""],remaining:[73,8,1,""],weekday:[73,8,1,""]},"celery.backends.pyredis":{RedisBackend:[44,10,1,""]},"celery.log.LoggingProxy":{fileno:[12,6,1,""],isatty:[12,6,1,""],name:[12,7,1,""],loglevel:[12,7,1,""],write:[12,6,1,""],mode:[12,7,1,""],closed:[12,7,1,""],flush:[12,6,1,""],close:[12,6,1,""],writelines:[12,6,1,""]},"celery.concurrency":{processes:[76,4,0,"-"],threads:[103,4,0,"-"]},"celery.backends.pyredis.RedisBackend":{redis_timeout:[44,7,1,""],redis_password:[44,7,1,""],set:[44,6,1,""],get:[44,6,1,""],expires:[44,7,1,""],process_cleanup:[44,6,1,""],redis_connect_retry:[44,7,1,""],redis_host:[44,7,1,""],redis_db:[44,7,1,""],redis_port:[44,7,1,""],close:[44,6,1,""],open:[44,6,1,""],deprecated_settings:[44,7,1,""],"delete":[44,6,1,""]},"celery.messaging.BroadcastConsumer":{consume:[40,6,1,""],exchange:[40,7,1,""],auto_delete:[40,7,1,""],durable:[40,7,1,""],exchange_type:[40,7,1,""],queue:[40,7,1,""],verify_exclusive:[40,6,1,""],no_ack:[40,7,1,""]},"celery.signals":{task_sent:[23,5,1,""],task_postrun:[23,5,1,""],worker_shutdown:[23,5,1,""],worker_ready:[23,5,1,""],worker_process_init:[23,5,1,""],worker_init:[23,5,1,""],task_prerun:[23,5,1,""]},"celery.datastructures.ExceptionInfo":{exception:[36,7,1,""],traceback:[36,7,1,""]},"celery.bin.celerybeat":{main:[46,8,1,""],BeatCommand:[46,10,1,""]},"celery.bin":{celeryctl:[106,4,0,"-"],celeryd:[71,4,0,"-"],camqadm:[111,4,0,"-"],celeryev:[58,4,0,"-"],base:[102,4,0,"-"],celerybeat:[46,4,0,"-"],celeryd_multi:[75,4,0,"-"]},"celery.result.AsyncResult":{task_id:[28,7,1,""],backend:[28,7,1,""]},"celery.backends.tyrant":{TyrantBackend:[95,10,1,""]},exchange:{"delete":[56,6,1,""]},"celery.result.TaskSetResult":{restore:[28,11,1,""],total:[28,7,1,""],subtasks:[28,7,1,""],forget:[28,6,1,""],successful:[28,6,1,""],taskset_id:[28,7,1,""],completed_count:[28,6,1,""],failed:[28,6,1,""],waiting:[28,6,1,""],itersubtasks:[28,6,1,""],iterate:[28,6,1,""],ready:[28,6,1,""],join:[28,6,1,""],save:[28,6,1,""],revoke:[28,6,1,""]},"celery.utils.patch":{ensure_process_aware_logger:[92,8,1,""]},"celery.result.EagerResult":{status:[28,7,1,""],revoke:[28,6,1,""],TimeoutError:[28,9,1,""],successful:[28,6,1,""],traceback:[28,7,1,""],state:[28,7,1,""],result:[28,7,1,""],ready:[28,6,1,""],wait:[28,6,1,""]},"celery.utils.timer2.Entry":{cancel:[0,6,1,""],cancelled:[0,7,1,""]},"celery.apps.worker.Worker":{tasklist:[82,6,1,""],run:[82,6,1,""],init_queues:[82,6,1,""],die:[82,6,1,""],startup_info:[82,6,1,""],purge_messages:[82,6,1,""],on_listener_ready:[82,6,1,""],redirect_stdouts_to_logger:[82,6,1,""],osx_proxy_detection_workaround:[82,6,1,""],worker_init:[82,6,1,""],init_loader:[82,6,1,""],install_platform_tweaks:[82,6,1,""],set_process_status:[82,6,1,""],run_worker:[82,6,1,""],WorkController:[82,10,1,""]},celery:{datastructures:[36,4,0,"-"],execute:[25,4,0,"-"],task:[83,4,0,"-"],log:[12,4,0,"-"],platforms:[1,4,0,"-"],beat:[101,4,0,"-"],utils:[107,4,0,"-"],schedules:[113,4,0,"-"],worker:[13,4,0,"-"],loaders:[110,4,0,"-"],states:[10,4,0,"-"],routes:[79,4,0,"-"],backends:[33,4,0,"-"],registry:[86,4,0,"-"],serialization:[45,4,0,"-"],exceptions:[39,4,0,"-"],messaging:[40,4,0,"-"],decorators:[112,4,0,"-"],events:[55,4,0,"-"],result:[28,4,0,"-"]},"celery.backends.cassandra":{CassandraBackend:[78,10,1,""]},"celery.bin.celeryd.WorkerCommand":{get_options:[71,6,1,""],run:[71,6,1,""]},"celery.concurrency.processes.pool.Pool":{map:[68,6,1,""],apply_async:[68,6,1,""],join:[68,6,1,""],map_async:[68,6,1,""],ResultHandler:[68,10,1,""],TimeoutHandler:[68,10,1,""],SoftTimeLimitExceeded:[68,9,1,""],terminate:[68,6,1,""],Process:[68,10,1,""],imap_unordered:[68,6,1,""],apply:[68,6,1,""],close:[68,6,1,""],Supervisor:[68,10,1,""],TaskHandler:[68,10,1,""],imap:[68,6,1,""]},"celery.utils.timer2.Timer":{exit_after:[0,6,1,""],on_tick:[0,7,1,""],run:[0,6,1,""],apply_at:[0,6,1,""],clear:[0,6,1,""],stop:[0,6,1,""],ensure_started:[0,6,1,""],next:[0,6,1,""],queue:[0,7,1,""],running:[0,7,1,""],apply_entry:[0,6,1,""],enter:[0,6,1,""],cancel:[0,6,1,""],Entry:[0,10,1,""],enter_after:[0,6,1,""],apply_after:[0,6,1,""],apply_interval:[0,6,1,""],empty:[0,6,1,""]},"celery.concurrency.processes.pool.Pool.TimeoutHandler":{body:[68,6,1,""]},"celery.apps":{beat:[87,4,0,"-"],worker:[82,4,0,"-"]},"celery.platforms.DaemonContext":{close:[1,6,1,""],detach:[1,6,1,""],open:[1,6,1,""]},"celery.worker.controllers.Mediator":{callback:[69,7,1,""],run:[69,6,1,""],move:[69,6,1,""],stop:[69,6,1,""],ready_queue:[69,7,1,""]},Task:{queue:[5,7,1,""],error_whitelist:[5,7,1,""],mandatory:[5,7,1,""],name:[5,7,1,""],exchange:[5,7,1,""],"abstract":[5,7,1,""],default_retry_delay:[5,7,1,""],rate_limit:[5,7,1,""],routing_key:[5,7,1,""],immediate:[5,7,1,""],priority:[5,7,1,""],max_retries:[5,7,1,""],send_error_emails:[5,7,1,""],ignore_result:[5,7,1,""],store_errors_even_if_ignored:[5,7,1,""],acks_late:[5,7,1,""],track_started:[5,7,1,""],serializer:[5,7,1,""],backend:[5,7,1,""]},"celery.utils.timer2.Timer.Entry":{cancelled:[0,7,1,""],cancel:[0,6,1,""]},"celery.messaging.BroadcastPublisher":{exchange:[40,7,1,""],ReplyTo:[40,7,1,""],auto_delete:[40,7,1,""],send:[40,6,1,""],exchange_type:[40,7,1,""],durable:[40,7,1,""]},"celery.routes":{merge:[79,8,1,""],MapRoute:[79,10,1,""],prepare:[79,8,1,""],Router:[79,10,1,""]},"celery.task.http":{UnknownStatusError:[8,9,1,""],HttpDispatchTask:[8,10,1,""],URL:[8,10,1,""],HttpDispatch:[8,10,1,""],extract_response:[8,8,1,""],utf8dict:[8,8,1,""],maybe_utf8:[8,8,1,""],RemoteExecuteError:[8,9,1,""],MutableURL:[8,10,1,""],InvalidResponseError:[8,9,1,""]},"celery.beat.Scheduler":{info:[101,7,1,""],Publisher:[101,7,1,""],apply_async:[101,6,1,""],schedule:[101,7,1,""],merge_inplace:[101,6,1,""],max_interval:[101,7,1,""],reserve:[101,6,1,""],sync:[101,6,1,""],setup_schedule:[101,6,1,""],update_from_dict:[101,6,1,""],maybe_due:[101,6,1,""],add:[101,6,1,""],get_schedule:[101,6,1,""],Entry:[101,7,1,""],close:[101,6,1,""],logger:[101,7,1,""],tick:[101,6,1,""],send_task:[101,6,1,""]},"celery.loaders":{load_settings:[110,8,1,""],"default":[64,4,0,"-"],current_loader:[110,8,1,""],get_loader_cls:[110,8,1,""],base:[61,4,0,"-"],setup_loader:[110,8,1,""]},"celery.execute.trace.TaskTrace":{handle_retry:[18,6,1,""],execute:[18,6,1,""],handle_success:[18,6,1,""],handle_after_return:[18,6,1,""],handle_failure:[18,6,1,""]},"celery.loaders.default":{wanted_module_item:[64,8,1,""],Loader:[64,10,1,""]},"celery.concurrency.threads.TaskPool":{start:[103,6,1,""],apply_async:[103,6,1,""],on_ready:[103,6,1,""],stop:[103,6,1,""]},"celery.messaging.ConsumerSet":{on_decode_error:[40,7,1,""]},"celery.backends.amqp.AMQPBackend":{poll:[114,6,1,""],reload_taskset_result:[114,6,1,""],consume:[114,6,1,""],restore_taskset:[114,6,1,""],reload_task_result:[114,6,1,""],connection:[114,7,1,""],get_task_meta:[114,6,1,""],close:[114,6,1,""],wait_for:[114,6,1,""],store_result:[114,6,1,""],save_taskset:[114,6,1,""]},"celery.events.cursesmon.CursesMonitor":{tasks:[52,7,1,""],revoke_selection:[52,6,1,""],win:[52,7,1,""],workers:[52,7,1,""],alert_remote_control_reply:[52,6,1,""],selection_rate_limit:[52,6,1,""],selection_result:[52,6,1,""],help:[52,7,1,""],screen_delay:[52,7,1,""],init_screen:[52,6,1,""],selection_info:[52,6,1,""],handle_keypress:[52,6,1,""],find_position:[52,6,1,""],format_row:[52,6,1,""],online_str:[52,7,1,""],move_selection_down:[52,6,1,""],move_selection:[52,6,1,""],nap:[52,6,1,""],selected_position:[52,7,1,""],display_width:[52,7,1,""],foreground:[52,7,1,""],draw:[52,6,1,""],screen_width:[52,7,1,""],help_title:[52,7,1,""],alert:[52,6,1,""],selection_traceback:[52,6,1,""],background:[52,7,1,""],info_str:[52,7,1,""],readline:[52,6,1,""],selected_task:[52,7,1,""],resetscreen:[52,6,1,""],greet:[52,7,1,""],keymap:[52,7,1,""],limit:[52,7,1,""],move_selection_up:[52,6,1,""],keyalias:[52,7,1,""],selected_str:[52,7,1,""]},"celery.backends.base.BaseDictBackend":{get_result:[100,6,1,""],reload_taskset_result:[100,6,1,""],forget:[100,6,1,""],restore_taskset:[100,6,1,""],reload_task_result:[100,6,1,""],get_status:[100,6,1,""],get_task_meta:[100,6,1,""],get_taskset_meta:[100,6,1,""],save_taskset:[100,6,1,""],store_result:[100,6,1,""],get_traceback:[100,6,1,""]},"celery.execute.trace.TraceInfo":{trace:[18,11,1,""]},"celery.events.EventDispatcher":{close:[55,6,1,""],enable:[55,6,1,""],disable:[55,6,1,""],send:[55,6,1,""],flush:[55,6,1,""]},"celery.routes.MapRoute":{route_for_task:[79,6,1,""]},"celery.task.TaskSet":{Publisher:[83,7,1,""],apply_async:[83,6,1,""],task:[83,7,1,""],tasks:[83,7,1,""],task_name:[83,7,1,""],apply:[83,6,1,""],total:[83,7,1,""]},"celery.worker.job.TaskRequest":{executed:[21,7,1,""],on_retry:[21,6,1,""],retry_msg:[21,7,1,""],on_accepted:[21,6,1,""],on_timeout:[21,6,1,""],message:[21,7,1,""],on_failure:[21,6,1,""],send_event:[21,6,1,""],time_start:[21,7,1,""],maybe_expire:[21,6,1,""],acknowledge:[21,6,1,""],acknowledged:[21,7,1,""],kwargs:[21,7,1,""],on_success:[21,6,1,""],extend_with_default_kwargs:[21,6,1,""],success_msg:[21,7,1,""],from_message:[21,11,1,""],args:[21,7,1,""],repr_result:[21,6,1,""],on_ack:[21,7,1,""],error_msg:[21,7,1,""],execute_using_pool:[21,6,1,""],info:[21,6,1,""],execute:[21,6,1,""],revoked:[21,6,1,""],task_id:[21,7,1,""],delivery_info:[21,7,1,""],send_error_email:[21,6,1,""],email_body:[21,7,1,""],task_name:[21,7,1,""],shortinfo:[21,6,1,""],email_subject:[21,7,1,""]},"celery.events.state.Worker":{heartbeat_max:[16,7,1,""],on_online:[16,6,1,""],on_heartbeat:[16,6,1,""],on_offline:[16,6,1,""],alive:[16,7,1,""]},"celery.backends.cassandra.CassandraBackend":{column_family:[78,7,1,""],i:[78,7,1,""],process_cleanup:[78,6,1,""],servers:[78,7,1,""],keyspace:[78,7,1,""],cleanup:[78,6,1,""]},"celery.conf":{MAIL_HOST_PASSWORD:[57,5,1,""],TASK_SERIALIZER:[57,5,1,""],DEFAULT_QUEUE:[57,5,1,""],MAIL_HOST_USER:[57,5,1,""],EAGER_PROPAGATES_EXCEPTIONS:[57,5,1,""],CELERY_CACHE_BACKEND:[57,5,1,""],RESULT_EXCHANGE:[57,5,1,""],BROADCAST_EXCHANGE_TYPE:[57,5,1,""],EVENT_ROUTING_KEY:[57,5,1,""],TASK_RESULT_EXPIRES:[57,5,1,""],CELERYBEAT_MAX_LOOP_INTERVAL:[57,5,1,""],CELERYD_LOG_LEVEL:[57,5,1,""],RESULT_BACKEND:[57,5,1,""],TRACK_STARTED:[57,5,1,""],LOG_LEVELS:[57,5,1,""],DEFAULT_RATE_LIMIT:[57,5,1,""],SEND_EVENTS:[57,5,1,""],CELERYMON_LOG_FILE:[57,5,1,""],CELERYD_ETA_SCHEDULER:[57,5,1,""],QUEUES:[57,5,1,""],CELERYD_LOG_FORMAT:[57,5,1,""],CELERYD_LISTENER:[57,5,1,""],CELERYD_POOL:[57,5,1,""],EVENT_EXCHANGE:[57,5,1,""],MAIL_HOST:[57,5,1,""],CELERY_SEND_TASK_ERROR_EMAILS:[57,5,1,""],CELERYD_MEDIATOR:[57,5,1,""],ACKS_LATE:[57,5,1,""],DEFAULT_EXCHANGE_TYPE:[57,5,1,""],CELERYBEAT_SCHEDULE_FILENAME:[57,5,1,""],STORE_ERRORS_EVEN_IF_IGNORED:[57,5,1,""],BROADCAST_QUEUE:[57,5,1,""],BROADCAST_EXCHANGE:[57,5,1,""],BROKER_CONNECTION_TIMEOUT:[57,5,1,""],BROKER_CONNECTION_RETRY:[57,5,1,""],BROKER_CONNECTION_MAX_RETRIES:[57,5,1,""],DEFAULT_DELIVERY_MODE:[57,5,1,""],CELERYD_LOG_FILE:[57,5,1,""],CELERYMON_LOG_LEVEL:[57,5,1,""],SERVER_EMAIL:[57,5,1,""],CELERYBEAT_LOG_FILE:[57,5,1,""],EVENT_QUEUE:[57,5,1,""],EVENT_EXCHANGE_TYPE:[57,5,1,""],ALWAYS_EAGER:[57,5,1,""],DEFAULT_ROUTING_KEY:[57,5,1,""],MAX_CACHED_RESULTS:[57,5,1,""],DEFAULT_EXCHANGE:[57,5,1,""],CELERYD_CONCURRENCY:[57,5,1,""],ADMINS:[57,5,1,""],EVENT_SERIALIZER:[57,5,1,""],CELERYBEAT_LOG_LEVEL:[57,5,1,""],IGNORE_RESULT:[57,5,1,""],MAIL_PORT:[57,5,1,""],CELERYD_PREFETCH_MULTIPLIER:[57,5,1,""],DISABLE_RATE_LIMITS:[57,5,1,""],CELERYD_TASK_LOG_FORMAT:[57,5,1,""]},"celery.beat":{EmbeddedService:[101,8,1,""],Service:[101,10,1,""],Scheduler:[101,10,1,""],ScheduleEntry:[101,10,1,""],PersistentScheduler:[101,10,1,""],SchedulingError:[101,9,1,""]},"celery.utils.dispatch.saferef":{get_bound_method_weakref:[70,8,1,""],BoundNonDescriptorMethodWeakref:[70,10,1,""],BoundMethodWeakref:[70,10,1,""],safe_ref:[70,8,1,""]},"celery.worker.controllers":{Mediator:[69,10,1,""]},"celery.states":{state:[10,10,1,""],precedence:[10,8,1,""]},"celery.backends.mongodb":{MongoBackend:[104,10,1,""],Bunch:[104,10,1,""]},"celery.task.http.URL":{get_async:[8,6,1,""],post_async:[8,6,1,""],dispatcher:[8,7,1,""]},"celery.datastructures.TokenBucket":{timestamp:[36,7,1,""],expected_time:[36,6,1,""],capacity:[36,7,1,""],can_consume:[36,6,1,""],fill_rate:[36,7,1,""]},"celery.events.dumper.Dumper":{on_event:[49,6,1,""],format_task_event:[49,6,1,""]},"celery.log":{SilenceRepeated:[12,10,1,""],ColorFormatter:[12,10,1,""],LoggingProxy:[12,10,1,""],setup_logging_subsystem:[12,8,1,""],redirect_stdouts_to_logger:[12,8,1,""],setup_logger:[12,8,1,""],get_default_logger:[12,8,1,""],get_task_logger:[12,8,1,""],setup_task_logger:[12,8,1,""],emergency_error:[12,8,1,""]},"celery.utils.promise":{evaluate:[107,6,1,""]},"celery.datastructures.SharedCounter":{decrement:[36,6,1,""],increment:[36,6,1,""]},"celery.backends.database.DatabaseBackend":{cleanup:[90,6,1,""],ResultSession:[90,6,1,""]},State:{freeze:[26,6,1,""],thaw:[26,6,1,""],freeze_while:[26,6,1,""]},"celery.utils.mail":{SendmailWarning:[17,9,1,""],Mailer:[17,10,1,""],Message:[17,10,1,""],mail_admins:[17,8,1,""]},"celery.bin.celeryctl.celeryctl":{execute_from_commandline:[106,6,1,""],commands:[106,7,1,""],execute:[106,6,1,""]},"celery.schedules.schedule":{relative:[113,7,1,""],is_due:[113,6,1,""],remaining_estimate:[113,6,1,""]},"celery.bin.celeryd":{WorkerCommand:[71,10,1,""],windows_main:[71,8,1,""],main:[71,8,1,""]},"celery.utils.term.colored":{yellow:[27,6,1,""],blink:[27,6,1,""],bright:[27,6,1,""],iwhite:[27,6,1,""],underline:[27,6,1,""],imagenta:[27,6,1,""],blue:[27,6,1,""],iyellow:[27,6,1,""],black:[27,6,1,""],no_color:[27,6,1,""],white:[27,6,1,""],red:[27,6,1,""],node:[27,6,1,""],iblue:[27,6,1,""],bold:[27,6,1,""],igreen:[27,6,1,""],cyan:[27,6,1,""],ired:[27,6,1,""],reset:[27,6,1,""],magenta:[27,6,1,""],reverse:[27,6,1,""],green:[27,6,1,""],icyan:[27,6,1,""]},"celery.bin.camqadm.AMQShell":{do_help:[111,6,1,""],prompt_fmt:[111,7,1,""],needs_reconnect:[111,7,1,""],prompt:[111,7,1,""],onecmd:[111,6,1,""],chan:[111,7,1,""],dispatch:[111,6,1,""],say:[111,6,1,""],conn:[111,7,1,""],builtins:[111,7,1,""],amqp:[111,7,1,""],respond:[111,6,1,""],get_names:[111,6,1,""],do_exit:[111,6,1,""],inc_counter:[111,7,1,""],identchars:[111,7,1,""],display_command_help:[111,6,1,""],"default":[111,6,1,""],counter:[111,7,1,""],parseline:[111,6,1,""],completenames:[111,6,1,""],get_amqp_api_command:[111,6,1,""]},"celery.task.builtins":{AsynchronousMapTask:[62,10,1,""],ExecuteRemoteTask:[62,10,1,""],DeleteExpiredTaskMetaTask:[62,7,1,""],backend_cleanup:[62,10,1,""],PingTask:[62,10,1,""]},"celery.utils.dispatch.signal":{Signal:[74,10,1,""]},"celery.worker.state.Persistent":{storage:[97,7,1,""],db:[97,7,1,""],sync:[97,6,1,""],merge:[97,6,1,""],close:[97,6,1,""],save:[97,6,1,""],open:[97,6,1,""]},"celery.messaging.TaskPublisher":{routing_key:[40,7,1,""],exchange:[40,7,1,""],delay_task:[40,6,1,""],exchange_type:[40,7,1,""],auto_declare:[40,7,1,""],declare:[40,6,1,""],serializer:[40,7,1,""]},"celery.backends.base.BaseBackend":{forget:[100,6,1,""],prepare_exception:[100,6,1,""],restore_taskset:[100,6,1,""],prepare_value:[100,6,1,""],get_status:[100,6,1,""],wait_for:[100,6,1,""],mark_as_started:[100,6,1,""],reload_taskset_result:[100,6,1,""],UNREADY_STATES:[100,7,1,""],save_taskset:[100,6,1,""],cleanup:[100,6,1,""],EXCEPTION_STATES:[100,7,1,""],TimeoutError:[100,9,1,""],mark_as_retry:[100,6,1,""],reload_task_result:[100,6,1,""],exception_to_python:[100,6,1,""],store_result:[100,6,1,""],encode_result:[100,6,1,""],get_result:[100,6,1,""],mark_as_revoked:[100,6,1,""],process_cleanup:[100,6,1,""],mark_as_done:[100,6,1,""],READY_STATES:[100,7,1,""],mark_as_failure:[100,6,1,""],get_traceback:[100,6,1,""]},"celery.backends.cache.CacheBackend":{"delete":[85,6,1,""],client:[85,7,1,""],set:[85,6,1,""],get:[85,6,1,""]},"celery.worker.WorkController":{ready_queue:[13,7,1,""],mediator:[13,7,1,""],loglevel:[13,7,1,""],stop:[13,6,1,""],embed_clockservice:[13,7,1,""],terminate:[13,6,1,""],listener:[13,7,1,""],schedule_controller:[13,7,1,""],on_timer_tick:[13,6,1,""],concurrency:[13,7,1,""],on_timer_error:[13,6,1,""],send_events:[13,7,1,""],logger:[13,7,1,""],logfile:[13,7,1,""],start:[13,6,1,""],pool:[13,7,1,""],process_task:[13,6,1,""]},"celery.backends.database":{DatabaseBackend:[90,10,1,""]},"celery.db.models":{Task:[31,10,1,""],TaskSet:[31,10,1,""]},"celery.utils":{kwdict:[107,8,1,""],functional:[9,4,0,"-"],dispatch:[84,4,0,"-"],noop:[107,8,1,""],promise:[107,10,1,""],mitemgetter:[107,8,1,""],chunks:[107,8,1,""],patch:[92,4,0,"-"],maybe_iso8601:[107,8,1,""],compat:[53,4,0,"-"],fun_takes_kwargs:[107,8,1,""],padlist:[107,8,1,""],is_iterable:[107,8,1,""],abbrtask:[107,8,1,""],get_full_cls_name:[107,8,1,""],timer2:[0,4,0,"-"],gen_unique_id:[107,8,1,""],truncate_text:[107,8,1,""],abbr:[107,8,1,""],mail:[17,4,0,"-"],retry_over_time:[107,8,1,""],mattrgetter:[107,8,1,""],info:[60,4,0,"-"],term:[27,4,0,"-"],mpromise:[107,10,1,""],instantiate:[107,8,1,""],timeutils:[73,4,0,"-"],maybe_promise:[107,8,1,""],get_cls_by_name:[107,8,1,""],firstmethod:[107,8,1,""],first:[107,8,1,""],repeatlast:[107,8,1,""]},"celery.bin.celeryctl.help":{usage:[106,6,1,""],run:[106,6,1,""]},"celery.backends.tyrant.TyrantBackend":{set:[95,6,1,""],tyrant_host:[95,7,1,""],get:[95,6,1,""],process_cleanup:[95,6,1,""],tyrant_port:[95,7,1,""],close:[95,6,1,""],open:[95,6,1,""],"delete":[95,6,1,""]},"celery.worker.job.WorkerTaskTrace":{execute:[21,6,1,""],execute_safe:[21,6,1,""],handle_success:[21,6,1,""],handle_retry:[21,6,1,""],handle_failure:[21,6,1,""]},"celery.datastructures.PositionQueue":{UnfilledPosition:[36,10,1,""],length:[36,7,1,""],full:[36,6,1,""],filled:[36,7,1,""]},"celery.worker.buckets":{chain_from_iterable:[50,8,1,""],RateLimitExceeded:[50,9,1,""],FastQueue:[50,10,1,""],TokenBucketQueue:[50,10,1,""],TaskBucket:[50,10,1,""]},"celery.worker.listener":{CarrotListener:[15,10,1,""],QoS:[15,10,1,""]},"celery.decorators":{periodic_task:[112,8,1,""],task:[112,8,1,""]},"celery.backends.cache":{DummyClient:[85,10,1,""],get_best_memcache:[85,8,1,""],CacheBackend:[85,10,1,""]},"celery.bin.celeryd_multi.NamespacedOptionParser":{parse:[75,6,1,""],optmerge:[75,6,1,""],add_option:[75,6,1,""],process_long_opt:[75,6,1,""],process_short_opt:[75,6,1,""]},"celery.task.http.HttpDispatch":{timeout:[8,7,1,""],make_request:[8,6,1,""],user_agent:[8,7,1,""],dispatch:[8,6,1,""],http_headers:[8,7,1,""]},"celery.backends.base.KeyValueStoreBackend":{get_key_for_taskset:[100,6,1,""],set:[100,6,1,""],get_key_for_task:[100,6,1,""],"delete":[100,6,1,""],get:[100,6,1,""]},"celery.routes.Router":{add_queue:[79,6,1,""],route:[79,6,1,""],lookup_route:[79,6,1,""],expand_destination:[79,6,1,""]},"celery.task.base.Task":{autoregister:[34,7,1,""],mandatory:[34,7,1,""],store_errors_even_if_ignored:[34,7,1,""],on_retry:[34,6,1,""],"abstract":[34,7,1,""],delivery_mode:[34,7,1,""],establish_connection:[34,11,1,""],apply_async:[34,11,1,""],send_error_emails:[34,7,1,""],apply:[34,11,1,""],on_failure:[34,6,1,""],track_started:[34,7,1,""],backend:[34,7,1,""],retry:[34,11,1,""],MaxRetriesExceededError:[34,9,1,""],default_retry_delay:[34,7,1,""],routing_key:[34,7,1,""],delay:[34,11,1,""],get_logger:[34,11,1,""],update_state:[34,6,1,""],type:[34,7,1,""],on_success:[34,6,1,""],error_whitelist:[34,7,1,""],run:[34,6,1,""],exchange:[34,7,1,""],expires:[34,7,1,""],subtask:[34,11,1,""],after_return:[34,6,1,""],AsyncResult:[34,11,1,""],acks_late:[34,7,1,""],execute:[34,6,1,""],name:[34,7,1,""],get_publisher:[34,11,1,""],get_consumer:[34,11,1,""],rate_limit:[34,7,1,""],max_retries:[34,7,1,""],exchange_type:[34,7,1,""],queue:[34,7,1,""],ignore_result:[34,7,1,""],serializer:[34,7,1,""]},"celery.bin.celeryd_multi.MultiTool":{execute_from_commandline:[75,6,1,""],node_alive:[75,6,1,""],help:[75,6,1,""],show:[75,6,1,""],shutdown_nodes:[75,6,1,""],kill:[75,6,1,""],names:[75,6,1,""],retcode:[75,7,1,""],getpids:[75,6,1,""],note:[75,6,1,""],start:[75,6,1,""],splash:[75,6,1,""],expand:[75,6,1,""],usage:[75,6,1,""],with_detacher_default_options:[75,6,1,""],get:[75,6,1,""],stop:[75,6,1,""],signal_node:[75,6,1,""],restart:[75,6,1,""],info:[75,6,1,""],waitexec:[75,6,1,""],error:[75,6,1,""]},"celery.apps.worker.Worker.WorkController":{mediator:[82,7,1,""],ready_queue:[82,7,1,""],start:[82,6,1,""],loglevel:[82,7,1,""],terminate:[82,6,1,""],embed_clockservice:[82,7,1,""],stop:[82,6,1,""],listener:[82,7,1,""],schedule_controller:[82,7,1,""],on_timer_tick:[82,6,1,""],concurrency:[82,7,1,""],on_timer_error:[82,6,1,""],send_events:[82,7,1,""],logger:[82,7,1,""],logfile:[82,7,1,""],pool:[82,7,1,""],process_task:[82,6,1,""]},"celery.task.sets":{subtask:[66,10,1,""],TaskSet:[66,10,1,""]},"celery.datastructures.LimitedSet":{chronologically:[36,7,1,""],clear:[36,6,1,""],as_dict:[36,6,1,""],update:[36,6,1,""],add:[36,6,1,""],pop_value:[36,6,1,""],first:[36,7,1,""]},"celery.log.ColorFormatter":{formatException:[12,6,1,""],format:[12,6,1,""]},"celery.task.base.PeriodicTask":{timedelta_seconds:[34,6,1,""],relative:[34,7,1,""],remaining_estimate:[34,6,1,""],run_every:[34,7,1,""],is_due:[34,6,1,""]},"celery.concurrency.processes.TaskPool.Pool.TaskHandler":{body:[76,6,1,""]},"celery.messaging.EventPublisher":{exchange:[40,7,1,""],durable:[40,7,1,""],delivery_mode:[40,7,1,""],routing_key:[40,7,1,""],exchange_type:[40,7,1,""],auto_delete:[40,7,1,""],serializer:[40,7,1,""]},"celery.bin.base.Command":{execute_from_commandline:[102,6,1,""],get_options:[102,6,1,""],args:[102,7,1,""],run:[102,6,1,""],create_parser:[102,6,1,""],Parser:[102,7,1,""],option_list:[102,7,1,""],version:[102,7,1,""],parse_options:[102,6,1,""],usage:[102,6,1,""]},"celery.utils.compat.OrderedDict":{fromkeys:[53,11,1,""],setdefault:[53,6,1,""],keys:[53,6,1,""],items:[53,6,1,""],clear:[53,6,1,""],iteritems:[53,6,1,""],update:[53,6,1,""],pop:[53,6,1,""],values:[53,6,1,""],itervalues:[53,6,1,""],popitem:[53,6,1,""],copy:[53,6,1,""],iterkeys:[53,6,1,""]},"celery.worker.job":{execute_and_trace:[21,8,1,""],WorkerTaskTrace:[21,10,1,""],InvalidTaskError:[21,9,1,""],TaskRequest:[21,10,1,""],AlreadyExecutedError:[21,9,1,""]},"celery.worker.listener.QoS":{set:[15,6,1,""],decrement_eventually:[15,6,1,""],update:[15,6,1,""],next:[15,7,1,""],increment:[15,6,1,""],decrement:[15,6,1,""],prev:[15,7,1,""]},"celery.schedules":{crontab_parser:[113,10,1,""],crontab:[113,10,1,""],maybe_schedule:[113,8,1,""],schedule:[113,10,1,""]},"celery.bin.celeryctl":{celeryctl:[106,10,1,""],status:[106,10,1,""],Command:[106,10,1,""],indent:[106,8,1,""],help:[106,10,1,""],inspect:[106,10,1,""],command:[106,8,1,""],result:[106,10,1,""],Error:[106,9,1,""],apply:[106,10,1,""],main:[106,8,1,""]},"celery.utils.info":{get_broker_info:[60,8,1,""],format_broker_info:[60,8,1,""],humanize_seconds:[60,8,1,""],textindent:[60,8,1,""],format_queues:[60,8,1,""]},queue:{bind:[56,6,1,""],declare:[56,6,1,""],"delete":[56,6,1,""]},"celery.bin.celeryd_multi":{main:[75,8,1,""],findsig:[75,8,1,""],MultiTool:[75,10,1,""],multi_args:[75,8,1,""],quote:[75,8,1,""],abbreviations:[75,8,1,""],say:[75,8,1,""],parse_ns_range:[75,8,1,""],NamespacedOptionParser:[75,10,1,""],format_opt:[75,8,1,""]},"celery.result":{EagerResult:[28,10,1,""],TaskSetResult:[28,10,1,""],AsyncResult:[28,10,1,""],BaseAsyncResult:[28,10,1,""]},"celery.contrib.abortable":{AbortableTask:[47,10,1,""],AbortableAsyncResult:[47,10,1,""]},"celery.contrib.abortable.AbortableTask":{is_aborted:[47,6,1,""],AsyncResult:[47,11,1,""],name:[47,7,1,""]},"celery.apps.beat.Beat.Service":{get_scheduler:[87,6,1,""],stop:[87,6,1,""],sync:[87,6,1,""],start:[87,6,1,""],scheduler:[87,7,1,""],scheduler_cls:[87,7,1,""]},"celery.task.builtins.AsynchronousMapTask":{run:[62,6,1,""],name:[62,7,1,""]},"celery.task.builtins.PingTask":{run:[62,6,1,""],name:[62,7,1,""]},"celery.worker.control.ControlDispatch":{reply:[88,6,1,""],execute:[88,6,1,""],dispatch_from_message:[88,6,1,""],ReplyPublisher:[88,7,1,""],Panel:[88,10,1,""]},"celery.concurrency.processes.TaskPool.Pool.TimeoutHandler":{body:[76,6,1,""]},"celery.messaging.ControlReplyConsumer":{exclusive:[40,7,1,""],exchange:[40,7,1,""],auto_delete:[40,7,1,""],durable:[40,7,1,""],exchange_type:[40,7,1,""],collect:[40,6,1,""],no_ack:[40,7,1,""]},"celery.execute":{apply:[25,8,1,""],apply_async:[25,8,1,""],delay_task:[25,8,1,""],trace:[18,4,0,"-"],send_task:[25,8,1,""]},"celery.messaging.EventConsumer":{no_ack:[40,7,1,""],auto_delete:[40,7,1,""],exchange:[40,7,1,""],routing_key:[40,7,1,""],exchange_type:[40,7,1,""],queue:[40,7,1,""],durable:[40,7,1,""]},"celery.utils.dispatch.signal.Signal":{receivers:[74,7,1,""],disconnect:[74,6,1,""],send_robust:[74,6,1,""],send:[74,6,1,""],connect:[74,6,1,""]},"celery.task.PeriodicTask":{timedelta_seconds:[83,6,1,""],relative:[83,7,1,""],is_due:[83,6,1,""],remaining_estimate:[83,6,1,""],run_every:[83,7,1,""],ignore_result:[83,7,1,""],type:[83,7,1,""]},"celery.concurrency.processes.pool":{Pool:[68,10,1,""]},"celery.contrib.abortable.AbortableAsyncResult":{is_aborted:[47,6,1,""],abort:[47,6,1,""]},"celery.bin.celeryctl.result":{option_list:[106,7,1,""],args:[106,7,1,""],run:[106,6,1,""]},"celery.execute.trace":{TraceInfo:[18,10,1,""],TaskTrace:[18,10,1,""]},"celery.apps.beat":{Beat:[87,10,1,""],run_celerybeat:[87,8,1,""]},"celery.worker.listener.CarrotListener":{init_callback:[15,7,1,""],reset_connection:[15,6,1,""],on_decode_error:[15,6,1,""],hart:[15,7,1,""],apply_eta_task:[15,6,1,""],on_task:[15,6,1,""],ready_queue:[15,7,1,""],on_control:[15,6,1,""],hostname:[15,7,1,""],restart_heartbeat:[15,6,1,""],start:[15,6,1,""],event_dispatcher:[15,7,1,""],stop_consumers:[15,6,1,""],initial_prefetch_count:[15,7,1,""],send_events:[15,7,1,""],logger:[15,7,1,""],receive_message:[15,6,1,""],stop:[15,6,1,""],eta_schedule:[15,7,1,""],maybe_conn_error:[15,6,1,""],info:[15,7,1,""],consume_messages:[15,6,1,""],control_dispatch:[15,7,1,""],close_connection:[15,6,1,""]},"celery.events":{EventDispatcher:[55,10,1,""],create_event:[55,8,1,""],cursesmon:[52,4,0,"-"],EventReceiver:[55,10,1,""],Event:[55,8,1,""],state:[16,4,0,"-"],snapshot:[4,4,0,"-"],dumper:[49,4,0,"-"]},"celery.bin.camqadm":{camqadm:[111,8,1,""],AMQShell:[111,10,1,""],say:[111,8,1,""],format_declare_queue:[111,8,1,""],parse_options:[111,8,1,""],dump_message:[111,8,1,""],main:[111,8,1,""],Spec:[111,10,1,""],AMQPAdmin:[111,10,1,""]},"celery.concurrency.processes.pool.Pool.Process":{daemon:[68,7,1,""],ident:[68,7,1,""],join:[68,6,1,""],name:[68,7,1,""],pid:[68,7,1,""],terminate:[68,6,1,""],authkey:[68,7,1,""],start:[68,6,1,""],run:[68,6,1,""],is_alive:[68,6,1,""],exitcode:[68,7,1,""]},"celery.db.session":{setup_results:[54,8,1,""],get_engine:[54,8,1,""],ResultSession:[54,8,1,""],create_session:[54,8,1,""]},"celery.utils.dispatch.saferef.BoundMethodWeakref":{"_all_instances":[70,7,1,""],weak_func:[70,7,1,""],deletion_methods:[70,7,1,""],key:[70,7,1,""],weak_self:[70,7,1,""],calculate_key:[70,11,1,""]},"celery.backends.base":{KeyValueStoreBackend:[100,10,1,""],BaseDictBackend:[100,10,1,""],BaseBackend:[100,10,1,""]},"celery.concurrency.threads":{TaskPool:[103,10,1,""],do_work:[103,8,1,""]},"celery.events.dumper":{evdump:[49,8,1,""],humanize_type:[49,8,1,""],Dumper:[49,10,1,""]},"celery.backends.amqp.ResultPublisher":{exchange:[114,7,1,""],auto_delete:[114,7,1,""],delivery_mode:[114,7,1,""],exchange_type:[114,7,1,""],durable:[114,7,1,""],serializer:[114,7,1,""]},"celery.serialization.UnpickleableExceptionWrapper":{restore:[45,6,1,""],exc_module:[45,7,1,""],from_exception:[45,11,1,""],exc_args:[45,7,1,""],exc_cls_name:[45,7,1,""]},"celery.states.state":{compare:[10,6,1,""]},"celery.task.sets.TaskSet":{Publisher:[66,7,1,""],apply_async:[66,6,1,""],tasks:[66,7,1,""],task:[66,7,1,""],task_name:[66,7,1,""],apply:[66,6,1,""],total:[66,7,1,""]},"celery.backends":{default_backend:[33,5,1,""],amqp:[114,4,0,"-"],database:[90,4,0,"-"],mongodb:[104,4,0,"-"],cache:[85,4,0,"-"],pyredis:[44,4,0,"-"],base:[100,4,0,"-"],tyrant:[95,4,0,"-"],get_backend_cls:[33,8,1,""],get_default_backend_cls:[33,5,1,""],DefaultBackend:[33,7,1,""],cassandra:[78,4,0,"-"]},"celery.task.control":{flatten_reply:[32,8,1,""],revoke:[32,8,1,""],ping:[32,8,1,""],inspect:[32,10,1,""],rate_limit:[32,8,1,""],broadcast:[32,8,1,""],discard_all:[32,8,1,""]},"celery.loaders.base":{BaseLoader:[61,10,1,""]},"celery.worker":{control:[88,4,0,"-"],controllers:[69,4,0,"-"],buckets:[50,4,0,"-"],state:[97,4,0,"-"],process_initializer:[13,8,1,""],listener:[15,4,0,"-"],job:[21,4,0,"-"],heartbeat:[108,4,0,"-"],WorkController:[13,10,1,""]},"celery.utils.term":{colored:[27,10,1,""],fg:[27,8,1,""]},"celery.bin.celeryctl.inspect":{usage:[106,6,1,""],option_list:[106,7,1,""],say:[106,6,1,""],run:[106,6,1,""],choices:[106,7,1,""]},"celery.messaging":{get_consumer_set:[40,8,1,""],ConsumerSet:[40,10,1,""],TaskPublisher:[40,10,1,""],extract_msg_options:[40,8,1,""],establish_connection:[40,8,1,""],BroadcastPublisher:[40,10,1,""],EventPublisher:[40,10,1,""],TaskConsumer:[40,10,1,""],ControlReplyConsumer:[40,10,1,""],ControlReplyPublisher:[40,10,1,""],with_connection:[40,8,1,""],BroadcastConsumer:[40,10,1,""],EventConsumer:[40,10,1,""]},"celery.bin.camqadm.AMQPAdmin":{say:[111,6,1,""],run:[111,6,1,""],connect:[111,6,1,""]},"celery.schedules.crontab":{is_due:[113,6,1,""],remaining_estimate:[113,6,1,""],minute:[113,7,1,""],day_of_week:[113,7,1,""],hour:[113,7,1,""]},"celery.worker.heartbeat.Heart":{stop:[108,6,1,""],run:[108,6,1,""],bpm:[108,7,1,""]},"celery.exceptions":{NotRegistered:[39,9,1,""],TaskRevokedError:[39,9,1,""],MaxRetriesExceededError:[39,9,1,""],TimeoutError:[39,9,1,""],NotConfigured:[39,9,1,""],QueueNotFound:[39,9,1,""],WorkerLostError:[39,9,1,""],SoftTimeLimitExceeded:[39,9,1,""],RetryTaskError:[39,9,1,""],ImproperlyConfigured:[39,9,1,""],AlreadyRegistered:[39,9,1,""],TimeLimitExceeded:[39,9,1,""]},"celery.worker.buckets.TaskBucket":{qsize:[50,6,1,""],get:[50,6,1,""],items:[50,7,1,""],clear:[50,6,1,""],get_nowait:[50,6,1,""],add_bucket_for_type:[50,6,1,""],refresh:[50,6,1,""],put_nowait:[50,6,1,""],put:[50,6,1,""],get_bucket_for_type:[50,6,1,""],update_bucket_for_type:[50,6,1,""],empty:[50,6,1,""],init_with_registry:[50,6,1,""]},"celery.backends.amqp.ResultConsumer":{auto_delete:[114,7,1,""],exchange:[114,7,1,""],no_ack:[114,7,1,""],durable:[114,7,1,""],exchange_type:[114,7,1,""]},"celery.worker.control":{builtins:[11,4,0,"-"],registry:[98,4,0,"-"],ControlDispatch:[88,10,1,""]},"celery.utils.mail.Mailer":{send:[17,6,1,""]},"celery.registry.TaskRegistry":{NotRegistered:[86,9,1,""],unregister:[86,6,1,""],register:[86,6,1,""],pop:[86,6,1,""],filter_types:[86,6,1,""],periodic:[86,6,1,""],regular:[86,6,1,""]},"celery.utils.dispatch":{saferef:[70,4,0,"-"],signal:[74,4,0,"-"]},"celery.schedules.crontab_parser":{parse:[113,6,1,""]},"celery.bin.celeryctl.apply":{option_list:[106,7,1,""],args:[106,7,1,""],run:[106,6,1,""]},"celery.bin.base":{Command:[102,10,1,""]},"celery.beat.Service":{scheduler_cls:[101,7,1,""],stop:[101,6,1,""],sync:[101,6,1,""],start:[101,6,1,""],scheduler:[101,7,1,""],get_scheduler:[101,6,1,""]},"celery.events.state.State":{get_or_create_task:[16,6,1,""],task_event:[16,6,1,""],tasks_by_timestamp:[16,6,1,""],worker_event:[16,6,1,""],tasks_by_worker:[16,6,1,""],alive_workers:[16,6,1,""],task_types:[16,6,1,""],clear:[16,6,1,""],clear_tasks:[16,6,1,""],tasks_by_type:[16,6,1,""],task_count:[16,7,1,""],freeze_while:[16,6,1,""],get_or_create_worker:[16,6,1,""],event:[16,6,1,""],event_count:[16,7,1,""]},"celery.platforms.PIDFile":{remove_if_stale:[1,6,1,""],write_pid:[1,6,1,""],is_locked:[1,6,1,""],acquire:[1,6,1,""],remove:[1,6,1,""],read_pid:[1,6,1,""],release:[1,6,1,""]},"celery.worker.control.builtins":{dump_tasks:[11,8,1,""],stats:[11,8,1,""],enable_events:[11,8,1,""],set_loglevel:[11,8,1,""],dump_revoked:[11,8,1,""],dump_schedule:[11,8,1,""],dump_active:[11,8,1,""],disable_events:[11,8,1,""],cancel_consumer:[11,8,1,""],dump_reserved:[11,8,1,""],add_consumer:[11,8,1,""],shutdown:[11,8,1,""],heartbeat:[11,8,1,""],ping:[11,8,1,""],rate_limit:[11,8,1,""],revoke:[11,8,1,""]},"celery.worker.state":{revoked:[97,5,1,""],task_accepted:[97,8,1,""],total_count:[97,5,1,""],Persistent:[97,10,1,""],task_ready:[97,8,1,""],REVOKE_EXPIRES:[97,5,1,""],active_requests:[97,5,1,""]},"celery.contrib":{abortable:[47,4,0,"-"]},"celery.backends.mongodb.MongoBackend":{mongodb_port:[104,7,1,""],mongodb_taskmeta_collection:[104,7,1,""],process_cleanup:[104,6,1,""],mongodb_password:[104,7,1,""],cleanup:[104,6,1,""],mongodb_user:[104,7,1,""],mongodb_database:[104,7,1,""],mongodb_host:[104,7,1,""]},"celery.task.builtins.backend_cleanup":{run:[62,6,1,""],name:[62,7,1,""]},"celery.events.EventReceiver":{process:[55,6,1,""],capture:[55,6,1,""],consumer:[55,6,1,""],handlers:[55,7,1,""]},"celery.db.models.Task":{status:[31,7,1,""],task_id:[31,7,1,""],date_done:[31,7,1,""],traceback:[31,7,1,""],to_dict:[31,6,1,""],id:[31,7,1,""],result:[31,7,1,""]},"celery.task.control.inspect":{scheduled:[32,6,1,""],stats:[32,6,1,""],revoked:[32,6,1,""],enable_events:[32,6,1,""],reserved:[32,6,1,""],ping:[32,6,1,""],disable_events:[32,6,1,""],cancel_consumer:[32,6,1,""],registered_tasks:[32,6,1,""],active:[32,6,1,""],add_consumer:[32,6,1,""]},"celery.concurrency.processes.pool.Pool.TaskHandler":{body:[68,6,1,""]},"celery.concurrency.processes.TaskPool":{info:[76,7,1,""],on_worker_error:[76,6,1,""],apply_async:[76,6,1,""],safe_apply_callback:[76,6,1,""],terminate:[76,6,1,""],on_ready:[76,6,1,""],stop:[76,6,1,""],start:[76,6,1,""],limit:[76,7,1,""],logger:[76,7,1,""],Pool:[76,10,1,""]},"celery.registry":{TaskRegistry:[86,10,1,""]},"celery.utils.mpromise":{evaluate:[107,6,1,""],evaluated:[107,7,1,""]},"celery.beat.PersistentScheduler":{info:[101,7,1,""],close:[101,6,1,""],sync:[101,6,1,""],persistence:[101,7,1,""],setup_schedule:[101,6,1,""]},"celery.worker.control.registry":{Panel:[98,10,1,""]},"celery.task.builtins.ExecuteRemoteTask":{run:[62,6,1,""],name:[62,7,1,""]},"celery.utils.timer2.Schedule":{info:[0,6,1,""],clear:[0,6,1,""],queue:[0,7,1,""],on_error:[0,7,1,""],enter:[0,6,1,""],handle_error:[0,6,1,""],empty:[0,6,1,""]},"celery.concurrency.processes":{TaskPool:[76,10,1,""],pool:[68,4,0,"-"],pingback:[76,8,1,""]},"celery.events.snapshot":{evcam:[4,8,1,""],Polaroid:[4,10,1,""]},"celery.events.snapshot.Polaroid":{capture:[4,6,1,""],on_shutter:[4,6,1,""],clear_after:[4,7,1,""],shutter:[4,6,1,""],debug:[4,6,1,""],cleanup:[4,6,1,""],on_cleanup:[4,6,1,""],install:[4,6,1,""],cancel:[4,6,1,""],cleanup_signal:[4,7,1,""],shutter_signal:[4,7,1,""]},"celery.apps.beat.Beat":{run:[87,6,1,""],start_scheduler:[87,6,1,""],Service:[87,10,1,""],setup_logging:[87,6,1,""],startup_info:[87,6,1,""],set_process_title:[87,6,1,""],init_loader:[87,6,1,""],install_sync_handler:[87,6,1,""]},"celery.db":{models:[31,4,0,"-"],session:[54,4,0,"-"]},"celery.concurrency.processes.TaskPool.Pool.Process":{daemon:[76,7,1,""],ident:[76,7,1,""],run:[76,6,1,""],name:[76,7,1,""],terminate:[76,6,1,""],pid:[76,7,1,""],authkey:[76,7,1,""],start:[76,6,1,""],join:[76,6,1,""],is_alive:[76,6,1,""],exitcode:[76,7,1,""]},"celery.worker.control.ControlDispatch.Panel":{register:[88,11,1,""],data:[88,7,1,""]},"celery.platforms":{reset_signal:[1,8,1,""],set_effective_user:[1,8,1,""],ignore_signal:[1,8,1,""],DaemonContext:[1,10,1,""],create_daemon_context:[1,8,1,""],strargv:[1,8,1,""],create_pidlock:[1,8,1,""],parse_uid:[1,8,1,""],setegid:[1,8,1,""],set_mp_process_title:[1,8,1,""],get_fdmax:[1,8,1,""],set_process_title:[1,8,1,""],seteuid:[1,8,1,""],parse_gid:[1,8,1,""],install_signal_handler:[1,8,1,""],LockFailed:[1,9,1,""],PIDFile:[1,10,1,""]},"celery.backends.cache.DummyClient":{get:[85,6,1,""],set:[85,6,1,""],"delete":[85,6,1,""]},"celery.task.http.MutableURL":{query:[8,7,1,""]},"celery.bin.celeryctl.Command":{prettify:[106,6,1,""],run:[106,6,1,""],help:[106,7,1,""],run_from_argv:[106,6,1,""],create_parser:[106,6,1,""],args:[106,7,1,""],prettify_list:[106,6,1,""],option_list:[106,7,1,""],version:[106,7,1,""],prettify_dict_ok_error:[106,6,1,""],error:[106,6,1,""],usage:[106,6,1,""],out:[106,6,1,""]},"celery.task.HttpDispatchTask":{url:[83,7,1,""],run:[83,6,1,""],method:[83,7,1,""],name:[83,7,1,""]},"celery.bin.celeryctl.status":{option_list:[106,7,1,""],run:[106,6,1,""]},"celery.worker.buckets.TokenBucketQueue":{RateLimitExceeded:[50,9,1,""],qsize:[50,6,1,""],get:[50,6,1,""],items:[50,7,1,""],clear:[50,6,1,""],get_nowait:[50,6,1,""],put_nowait:[50,6,1,""],expected_time:[50,6,1,""],put:[50,6,1,""],empty:[50,6,1,""],wait:[50,6,1,""]},"celery.events.state":{State:[16,10,1,""],Task:[16,10,1,""],Worker:[16,10,1,""],Element:[16,10,1,""]},"celery.events.state.Task":{info:[16,6,1,""],on_retried:[16,6,1,""],on_failed:[16,6,1,""],update:[16,6,1,""],on_revoked:[16,6,1,""],merge:[16,6,1,""],on_started:[16,6,1,""],on_received:[16,6,1,""],merge_rules:[16,7,1,""],ready:[16,7,1,""],on_succeeded:[16,6,1,""]},"celery.db.models.TaskSet":{id:[31,7,1,""],taskset_id:[31,7,1,""],result:[31,7,1,""],date_done:[31,7,1,""],to_dict:[31,6,1,""]},"celery.result.BaseAsyncResult":{info:[28,7,1,""],status:[28,7,1,""],revoke:[28,6,1,""],forget:[28,6,1,""],task_id:[28,7,1,""],get:[28,6,1,""],successful:[28,6,1,""],traceback:[28,7,1,""],failed:[28,6,1,""],state:[28,7,1,""],result:[28,7,1,""],TimeoutError:[28,9,1,""],ready:[28,6,1,""],wait:[28,6,1,""],backend:[28,7,1,""]},"celery.datastructures":{SharedCounter:[36,10,1,""],PositionQueue:[36,10,1,""],LimitedSet:[36,10,1,""],ExceptionInfo:[36,10,1,""],consume_queue:[36,8,1,""],TokenBucket:[36,10,1,""],AttributeDict:[36,10,1,""],LocalCache:[36,10,1,""]},"celery.backends.amqp":{AMQPBackend:[114,10,1,""],ResultConsumer:[114,10,1,""],AMQResultWarning:[114,9,1,""],ResultPublisher:[114,10,1,""]},"celery.loaders.default.Loader":{on_worker_init:[64,6,1,""],read_configuration:[64,6,1,""],setup_settings:[64,6,1,""]},"celery.beat.ScheduleEntry":{name:[101,7,1,""],schedule:[101,7,1,""],last_run_at:[101,7,1,""],args:[101,7,1,""],update:[101,6,1,""],next:[101,6,1,""],is_due:[101,6,1,""],total_run_count:[101,7,1,""],kwargs:[101,7,1,""]},"celery.events.cursesmon":{evtop:[52,8,1,""],DisplayThread:[52,10,1,""],CursesMonitor:[52,10,1,""]},"celery.concurrency.processes.TaskPool.Pool":{map:[76,6,1,""],apply_async:[76,6,1,""],join:[76,6,1,""],map_async:[76,6,1,""],ResultHandler:[76,10,1,""],TimeoutHandler:[76,10,1,""],SoftTimeLimitExceeded:[76,9,1,""],terminate:[76,6,1,""],Process:[76,10,1,""],Supervisor:[76,10,1,""],imap_unordered:[76,6,1,""],close:[76,6,1,""],apply:[76,6,1,""],TaskHandler:[76,10,1,""],imap:[76,6,1,""]},"celery.task.http.HttpDispatchTask":{url:[8,7,1,""],run:[8,6,1,""],method:[8,7,1,""],name:[8,7,1,""]},"celery.loaders.base.BaseLoader":{on_process_cleanup:[61,6,1,""],mail_admins:[61,6,1,""],configured:[61,7,1,""],init_worker:[61,6,1,""],import_task_module:[61,6,1,""],worker_initialized:[61,7,1,""],import_default_modules:[61,6,1,""],on_worker_init:[61,6,1,""],override_backends:[61,7,1,""],conf:[61,7,1,""],import_from_cwd:[61,6,1,""],import_module:[61,6,1,""],on_task_init:[61,6,1,""]},"celery.apps.worker":{install_worker_int_handler:[82,8,1,""],install_worker_restart_handler:[82,8,1,""],run_worker:[82,8,1,""],Worker:[82,10,1,""],install_HUP_not_supported_handler:[82,8,1,""],install_worker_term_handler:[82,8,1,""],install_worker_int_again_handler:[82,8,1,""]},"celery.task.sets.subtask":{delay:[66,6,1,""],apply:[66,6,1,""],apply_async:[66,6,1,""],get_type:[66,6,1,""]},"celery.task.Task":{autoregister:[83,7,1,""],mandatory:[83,7,1,""],disable_error_emails:[83,7,1,""],store_errors_even_if_ignored:[83,7,1,""],on_retry:[83,6,1,""],"abstract":[83,7,1,""],delivery_mode:[83,7,1,""],establish_connection:[83,11,1,""],apply_async:[83,11,1,""],send_error_emails:[83,7,1,""],apply:[83,11,1,""],on_failure:[83,6,1,""],track_started:[83,7,1,""],backend:[83,7,1,""],delay:[83,11,1,""],retry:[83,11,1,""],AsyncResult:[83,11,1,""],default_retry_delay:[83,7,1,""],routing_key:[83,7,1,""],priority:[83,7,1,""],get_logger:[83,11,1,""],update_state:[83,6,1,""],type:[83,7,1,""],on_success:[83,6,1,""],error_whitelist:[83,7,1,""],run:[83,6,1,""],exchange:[83,7,1,""],expires:[83,7,1,""],immediate:[83,7,1,""],max_retries:[83,7,1,""],after_return:[83,6,1,""],MaxRetriesExceededError:[83,9,1,""],acks_late:[83,7,1,""],execute:[83,6,1,""],name:[83,7,1,""],get_publisher:[83,11,1,""],get_consumer:[83,11,1,""],rate_limit:[83,7,1,""],subtask:[83,11,1,""],exchange_type:[83,7,1,""],queue:[83,7,1,""],ignore_result:[83,7,1,""],serializer:[83,7,1,""]},"celery.concurrency.processes.pool.Pool.Supervisor":{body:[68,6,1,""]},"celery.task":{control:[32,4,0,"-"],Task:[83,10,1,""],http:[20,4,0,"-"],HttpDispatchTask:[83,10,1,""],ping:[83,8,1,""],dmap_async:[83,8,1,""],PeriodicTask:[83,10,1,""],dmap:[83,8,1,""],base:[34,4,0,"-"],discard_all:[83,8,1,""],TaskSet:[83,10,1,""],sets:[66,4,0,"-"],builtins:[62,4,0,"-"],execute_remote:[83,8,1,""]},"celery.task.base":{Task:[34,10,1,""],PeriodicTask:[34,10,1,""],TaskType:[34,10,1,""]},"celery.messaging.ControlReplyPublisher":{auto_delete:[40,7,1,""],delivery_mode:[40,7,1,""],exchange_type:[40,7,1,""],durable:[40,7,1,""],exchange:[40,7,1,""]},"celery.serialization":{get_pickleable_exception:[45,8,1,""],get_pickled_exception:[45,8,1,""],UnpickleableExceptionWrapper:[45,9,1,""],subclass_exception:[45,8,1,""],create_exception_cls:[45,8,1,""],find_nearest_pickleable_exception:[45,8,1,""]},"celery.events.cursesmon.DisplayThread":{run:[52,6,1,""]},"celery.worker.buckets.FastQueue":{expected_time:[50,6,1,""],clear:[50,6,1,""],items:[50,7,1,""],wait:[50,6,1,""]},"celery.messaging.TaskConsumer":{queue:[40,7,1,""],exchange:[40,7,1,""],routing_key:[40,7,1,""],exchange_type:[40,7,1,""]},"celery.concurrency.processes.TaskPool.Pool.Supervisor":{body:[76,6,1,""]},"celery.bin.camqadm.Spec":{str_args_to_python:[111,6,1,""],coerce:[111,6,1,""],format_arg:[111,6,1,""],format_signature:[111,6,1,""],format_response:[111,6,1,""]},"celery.concurrency.processes.TaskPool.Pool.ResultHandler":{body:[76,6,1,""]},"celery.bin.celerybeat.BeatCommand":{get_options:[46,6,1,""],run:[46,6,1,""]},"celery.worker.heartbeat":{Heart:[108,10,1,""]},"celery.bin.celeryev":{set_process_status:[58,8,1,""],main:[58,8,1,""],run_celeryev:[58,8,1,""],parse_options:[58,8,1,""]},"celery.worker.control.registry.Panel":{register:[98,11,1,""],data:[98,7,1,""]},"celery.utils.compat":{chain_from_iterable:[53,8,1,""],OrderedDict:[53,10,1,""],log_with_extra:[53,8,1,""]}},titleterms:{represent:16,all:19,broker_connection_timeout:51,consider:42,consum:56,celery_ignore_result:51,code:42,primer:56,depend:19,send:[65,19,29,17,57],countdown:109,init:93,"\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c":65,broker_backend:51,sourc:72,celery_mongodb_backend_set:51,webhook:20,util:[83,9,53,70,27,73,84,107,92,0,30,43,60,74,17],failur:5,veri:26,celery_result_exchange_typ:51,magic:65,eta:[109,24],list:[80,67,65],rabbitmq:[30,89,19,65,22],session:54,quick:65,servic:101,natur:19,direct:[51,56],chef:65,rate:[50,5,24],download:72,click:29,compat:[9,53,43,92],index:43,what:[19,2,65],clock:101,current:[19,24],redis_db:51,version:[63,72],kaninchen:65,conduct:42,celery_cache_backend:51,"new":[2,65,26],except:[43,39],celery_rout:51,usag:47,gener:[19,5],celery_broker_connection_max_retri:51,caqmadm:111,here:38,celeryd_pool:51,ubuntu:93,strong:103,celerybeat_max_loop_interv:51,task_id:19,pre1:26,memcach:85,queue:[37,19,56,65,99,30,57],celery_result_persist:51,propagate_st:10,chang:[19,56,26],celery_result_backend:51,love:65,revok:[43,5,24],appli:19,app:[87,82,65],celerybeat_schedule_filenam:51,ask:[42,19],api:[14,2,56,65,111],celerybeat:[93,46,35,43,51,57],instal:[72,22,99],redi:[51,44,99],celery_redirect_stdout:51,granular:5,from:[38,72],commun:[42,65],regist:24,upgrad:26,celerybeat_log_fil:51,massag:65,camera:30,type:56,"\u043e":65,relat:56,line:111,cach:[85,51,26],tokyo:[51,95],work:[19,5,65],histori:26,abort:47,can:19,celery_always_eag:51,root:19,pre3:26,pre2:26,control:[32,69,26,11,19,98,43,24,88],defer:65,quickstart:65,process:[76,19,68,65],lock:65,integrityerror:19,india:65,indic:37,topic:56,critic:26,carrot:[65,29],poni:65,celery_default_delivery_mod:51,want:5,serial:[45,109,7],contribut:[42,67],delai:[19,5,65],secur:19,anoth:19,ping:24,write:24,how:[19,5,56,65],misconcept:19,simpl:[38,65],celery_result_engine_opt:51,prefetch:94,resourc:[67,2,65],camqadm:111,disagre:42,router:[56,79],date:73,data:[81,5],"short":94,practic:5,counter:29,favorit:65,django:[20,26,19,93,65,30],issu:42,inform:83,freebsd:[19,65],celery_store_errors_even_if_ignor:51,make:65,broker_password:51,tt_port:51,celery_amqp_task_result_expir:51,tyrant:[51,95],still:19,style:42,monitor:[30,59,51,52],fix:26,better:65,celery_track_start:51,window:19,pend:5,exchang:56,mail:[67,65,51,57,17],timer2:0,anim:65,crash:19,"introducci\u00f3":65,python:[53,65],safe:[19,70],dai:65,subtask:[66,5,48],introduct:[94,72,65,35,29,30,81],multiprocess:[76,68,13],name:[19,5,56,22],anyth:19,troubleshoot:[19,93],token:50,timeout:109,debug:60,"\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c":65,launchd:93,timelin:63,crontab:35,contrib:47,connect:[19,109],celery_task_result_expir:51,broker_port:51,event:[55,58,4,52,49,30,16,43,51,80,24],celerymon:[30,51,57],rel:5,max:24,ready_st:10,shut:19,advanc:51,rail:20,base:[102,65,34,43,100,61],releas:2,thread:[69,103],launch:5,frequenc:30,celeryev:[30,58],synchron:5,keep:19,thing:19,isn:19,outsid:30,heartbeat:[43,108],celeryd_log_level:51,frequent:19,first:38,mail_host_password:51,softwar:65,directli:65,cursesmon:52,onc:19,"\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435":65,datastructur:[43,36],stabl:2,"f\u00fcr":65,djugl:65,prioriti:19,celery_event_exchang:51,script:93,licens:67,system:22,messag:[99,40,79,19,56,65,5,15,29,7,43,51],celery_default_routing_kei:51,mail_port:51,termin:27,celeryd_prefetch_multipli:51,listen:[43,15],shell:111,option:[19,5,93,109],nur:65,tool:[45,75,65,49],specifi:[30,19,56],broadcast:[51,24],mostli:65,consult:42,than:65,cron:65,kind:19,keyword:5,remot:[32,26,11,19,98,24],remov:63,structur:81,"\u0437\u0430\u0434\u0430\u0447":65,reus:19,celery_import:51,exception_st:10,viewer:58,celery_result_dburi:51,argument:5,expir:109,have:19,tabl:37,incompat:26,cassandra:78,dentro:65,celery_default_queu:51,built:[11,5,62],callback:[66,8,48,20],rout:[109,56,5,79,59,51],note:[99,26],celery_cache_backend_opt:51,build:65,"\u043e\u0447\u0435\u0440\u0435\u0434\u0438":65,server_email:51,distribut:[37,65],trace:[43,18],unsur:42,who:65,celery_result_seri:51,plai:65,celeryd_medi:51,why:19,don:5,url:29,doe:19,snapshot:[30,4],runtim:19,multilingu:19,celery_event_exchange_typ:51,german:65,celeryd_task_soft_time_limit:51,celery_queu:51,concurr:[76,51,68,103,24],broker_us:51,find:19,help:[42,67],celeri:[1,2,4,8,9,10,11,12,13,15,16,17,18,19,114,0,23,25,27,28,29,31,32,33,34,36,37,38,39,40,43,44,45,47,46,49,50,52,53,54,86,57,58,60,61,62,63,64,65,66,68,69,70,71,73,74,75,76,79,82,83,84,85,55,87,88,89,90,92,78,95,97,98,99,100,101,102,103,104,106,107,108,110,111,112,113,21],onli:[105,19],just:19,transact:5,configur:[38,93,22,99,43,51,57],should:19,experiment:[103,26],queu:65,local:5,celeryctl:[30,106],"\u043d\u0430":65,get:[67,96,19,65],beat:[43,19,101,87],stomp:19,stop:[65,24,22,93],celery_eager_propagates_except:51,celery_send_ev:51,report:42,restart:24,enabl:24,celerybeat_schedul:51,patch:[43,92],redis_host:51,munin:30,mediat:81,where:38,celery_task_seri:51,view:[5,29],wiki:[67,65],set:[94,10,19,48,22,66,51,24],dump:24,startup:19,celeryd_listen:51,result:[26,19,28,5,48,43,51],fail:5,reserv:24,best:5,concern:19,acks_lat:19,error:[19,51],kei:[19,56],databas:[90,26,5,99,43,51],someth:5,portuges:65,"\u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435":65,state:[10,43,5,97,16],won:19,pyredi:44,"import":[5,99,26],irc:[67,65],celerymon_log_fil:51,extend:68,job:[43,21,65],celery_event_seri:51,broker_host:51,solv:65,admin:[30,51],celeryd_log_format:51,nicht:65,improv:65,com:65,celeryd_state_db:51,point:19,schedul:[19,24,87,35,43,113],period:[19,46,113,29,35,51,87],dispatch:[74,70,84],loader:[43,64,110,61],functool:9,carrotlisten:81,shutdown:24,cancel:19,celeryd_task_time_limit:51,guid:[30,77,24],pycon:65,duplic:19,tt_host:51,platform:[43,19,1],been:2,compon:[81,51],interest:89,basic:[23,5,20,56,109],wait:19,ghettoq:19,strategi:5,persist:24,worker:[32,51,23,108,38,69,97,11,13,98,15,43,19,24,94,21,50,80,81,82,30,59,88],child:24,celery_max_cached_result:51,present:65,multi:75,celeryd_log_fil:51,celery_create_missing_queu:51,defin:[34,56],behavior:113,mail_host:51,celerymon_log_level:51,ein:65,spawn:19,destin:[30,56],cluster:16,archiv:65,conf:[43,57],celeryd_concurr:51,dumper:49,foreword:26,decor:[19,5,43,112],disabl:[5,24],develop:72,thei:5,japanes:65,perform:5,celeryd_task_log_format:51,same:19,tutori:[29,41],document:[72,26],broker_connection_retri:51,finish:[19,29],http:[43,8,20],optim:94,hang:19,hand:56,user:[77,65,26],all_stat:10,stack:65,task:[32,62,65,34,66,5,7,35,8,37,38,10,43,19,47,94,105,20,46,59,23,80,51,24,83,25,109,86,56,28,113,29,30,48,87,112],scenario:94,entri:35,pickl:19,mail_host_us:51,exampl:[20,75,47,93,5,7,72,51],command:[102,26,11,19,56,111,98,30,51,24],expens:94,model:[5,31,29],celery_acks_l:51,left:19,celery_redirect_stdouts_level:51,protocol:7,execut:[38,25,109,19,65,105,20,21,43,51,57,24,18],less:65,tip:[5,65],celeryd_max_tasks_per_child:51,collabor:42,mysql:19,celery_default_exchang:51,web:[30,65],death:65,miscellan:43,builtin:[11,43,62],blog:5,overview:[59,47,72],modul:[91,43],bin:[102,75,71,111,106,58,46],celeryd:[75,71,19,93,65,51,57],supervisord:93,format:7,term:27,broker_vhost:51,catalan:65,background:[19,65],eta_schedul:81,historio:65,daemon:93,success:5,specif:[19,1],deprec:[63,26],signal:[23,74,70,84],manual:56,server:[38,19,65,46,22,51],shutter:30,celerybeat_log_level:51,celeryd_multi:75,interv:19,broker_use_ssl:51,intern:[91,81,6],learn:65,respect:42,virtualenv:65,celery_default_exchange_typ:51,avoid:5,per:24,backward:26,retri:[19,5],larg:65,mongodb:[104,51],backend:[100,85,95,26,90,33,65,78,104,114,43,51,44],refer:[30,14,91,70],run:[38,19,93],celery_default_rate_limit:51,saferef:70,inspect:[30,24],celery_result_exchang:51,broker:[51,19,56,22,57],timeutil:73,host:22,"throw":19,memori:16,manag:[30,32],discard:19,unready_st:10,produc:56,own:24,celery_event_routing_kei:51,celery_task_error_whitelist:51,automat:[5,56],down:[42,19],ensur:105,storag:65,your:[65,24],log:[12,43,5,65,51],celery_send_task_error_email:51,aren:19,support:[76,19,103],question:[19,65],custom:[30,35,19,5,51],avail:[35,93],start:[96,93,65,35,5,22,30,24],"\u0432":65,tracker:[42,67],lot:94,"function":[9,24],some:19,celery_broadcast_exchange_typ:51,sqlalchemi:[54,31,90],link:89,russian:65,celery_broadcast_exchang:51,overflow:65,activemq:19,bug:[42,67,26],info:[43,60],"default":[64,43,5,56,51],bucket:[50,43],celery_disable_rate_limit:51,asynchron:65,limit:[50,94,5,24],step:[42,38],problem:65,deadlock:19,redis_password:51,featur:[72,19,2],curs:[30,52,58],creat:[38,105,29],taskpool:81,doesn:19,ready_queu:81,file:51,encrypt:19,amqp:[109,89,19,56,111,114,43,51],when:[42,19],field:35,other:[42,26],celeryd_eta_schedul:51,you:[42,5,65],nice:65,node:[30,82],registri:[43,98,86],rubi:[20,65],"class":[35,43,51,61,62],redis_port:51,djangocon:65,"rabbitmq\u3068celery\u3092\u4f7f\u3063\u3066django\u3067\u30b8\u30e7\u30d6\u30ad\u30e5\u30fc\u3057\u3066\u307f\u308b":65,debian:93,pool:[43,76,68,103],receiv:19,schlangen:65,celery_event_queu:51,ignor:5,celery_broadcast_queu:51,time:[105,19,73,24],cookbook:3,schedulecontrol:81,celeryd_eta_scheduler_precis:51}})PKYDDw=ۅ|[|[$celery-2.1-archived/py-modindex.html Python Module Index — Celery 2.1.4 documentation

Python Module Index

c
 
c
celery
    celery.apps.beat
    celery.apps.worker
    celery.backends
    celery.backends.amqp
    celery.backends.base
    celery.backends.cache
    celery.backends.cassandra
    celery.backends.database
    celery.backends.mongodb
    celery.backends.pyredis
    celery.backends.tyrant
    celery.beat
    celery.bin.base
    celery.bin.camqadm
    celery.bin.celerybeat
    celery.bin.celeryctl
    celery.bin.celeryd
    celery.bin.celeryd_multi
    celery.bin.celeryev
    celery.concurrency.processes
    celery.concurrency.processes.pool
    celery.concurrency.threads
    celery.contrib.abortable
    celery.datastructures
    celery.db.models
    celery.db.session
    celery.decorators
    celery.events
    celery.events.cursesmon
    celery.events.dumper
    celery.events.snapshot
    celery.events.state
    celery.exceptions
    celery.execute
    celery.execute.trace
    celery.loaders
    celery.loaders.base
    celery.loaders.default
    celery.log
    celery.messaging
    celery.platforms
    celery.registry
    celery.result
    celery.routes
    celery.schedules
    celery.serialization
    celery.states
    celery.task
    celery.task.base
    celery.task.builtins
    celery.task.control
    celery.task.http
    celery.task.sets
    celery.utils
    celery.utils.compat
    celery.utils.dispatch
    celery.utils.dispatch.saferef
    celery.utils.dispatch.signal
    celery.utils.functional
    celery.utils.info
    celery.utils.mail
    celery.utils.patch
    celery.utils.term
    celery.utils.timer2
    celery.utils.timeutils
    celery.worker
    celery.worker.buckets
    celery.worker.control
    celery.worker.control.builtins
    celery.worker.control.registry
    celery.worker.controllers
    celery.worker.heartbeat
    celery.worker.job
    celery.worker.listener
    celery.worker.state
PKYDDrOjjcelery-2.1-archived/search.html Search — Celery 2.1.4 documentation

Search

Please activate JavaScript to enable the search functionality.

From here you can search these documents. Enter your search words into the box below and click "search". Note that the search function will automatically search for all of the words. Pages containing fewer words won't appear in the result list.

PKYDDuP"celery-2.1-archived/community.html Community Resources — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Community Resources

This is a list of external blog posts, tutorials and slides related to Celery. If you have a link that’s missing from this list, please contact the mailing-list or submit a patch.

News

How to get celeryd to work on FreeBSD

Installing multiprocessing on FreeBSD isn’t that easy, but thanks to Viktor Petersson we now have a step-to-step guide: http://www.playingwithwire.com/2009/10/how-to-get-celeryd-to-work-on-freebsd/

Web-based 3D animation software

Indy Chang Liu at ThinkingCactus uses Celery to render animations asynchronously (PDF): http://ojs.pythonpapers.org/index.php/tppm/article/viewFile/105/122

Previous topic

Running celeryd as a daemon

Next topic

Contributing

This Page

PKYDDkcelery-2.1-archived/.buildinfo# Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. config: 82b88894f5e2945106c99f212ee7d10a tags: efa25262f700e02b1777eb79ee109f5c PKYDD0l((&celery-2.1-archived/configuration.html Configuration and defaults — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Configuration and defaults

This document describes the configuration options available.

If you’re using the default loader, you must create the celeryconfig.py module and make sure it is available on the Python path.

Example configuration file

This is an example configuration file to get you started. It should contain all you need to run a basic Celery set-up.

# List of modules to import when celery starts.
CELERY_IMPORTS = ("myapp.tasks", )

## Result store settings.
CELERY_RESULT_BACKEND = "database"
CELERY_RESULT_DBURI = "sqlite:///mydatabase.db"

## Broker settings.
BROKER_HOST = "localhost"
BROKER_PORT = 5672
BROKER_VHOST = "/"
BROKER_USER = "guest"
BROKER_PASSWORD = "guest"

## Worker settings
## If you're doing mostly I/O you can have more processes,
## but if mostly spending CPU, try to keep it close to the
## number of CPUs on your machine. If not set, the number of CPUs/cores
## available will be used.
CELERYD_CONCURRENCY = 10
# CELERYD_LOG_FILE = "celeryd.log"
# CELERYD_LOG_LEVEL = "INFO"

Configuration Directives

Concurrency settings

CELERYD_CONCURRENCY

The number of concurrent worker processes, executing tasks simultaneously.

Defaults to the number of CPUs/cores available.

CELERYD_PREFETCH_MULTIPLIER

How many messages to prefetch at a time multiplied by the number of concurrent processes. The default is 4 (four messages for each process). The default setting is usually a good choice, however – if you have very long running tasks waiting in the queue and you have to start the workers, note that the first worker to start will receive four times the number of messages initially. Thus the tasks may not be fairly distributed to the workers.

Task result backend settings

CELERY_RESULT_BACKEND

The backend used to store task results (tombstones). Can be one of the following:

Database backend settings

CELERY_RESULT_DBURI

Please see Supported Databases for a table of supported databases. To use this backend you need to configure it with an Connection String, some examples include:

# sqlite (filename)
CELERY_RESULT_DBURI = "sqlite:///celerydb.sqlite"

# mysql
CELERY_RESULT_DBURI = "mysql://scott:tiger@localhost/foo"

# postgresql
CELERY_RESULT_DBURI = "postgresql://scott:tiger@localhost/mydatabase"

# oracle
CELERY_RESULT_DBURI = "oracle://scott:tiger@127.0.0.1:1521/sidname"

See Connection String for more information about connection strings.

CELERY_RESULT_ENGINE_OPTIONS

To specify additional SQLAlchemy database engine options you can use the CELERY_RESULT_ENGINE_OPTIONS setting:

# echo enables verbose logging from SQLAlchemy.
CELERY_RESULT_ENGINE_OPTIONS = {"echo": True}

Example configuration

CELERY_RESULT_BACKEND = "database"
CELERY_RESULT_DBURI = "mysql://user:password@host/dbname"

AMQP backend settings

CELERY_AMQP_TASK_RESULT_EXPIRES

The time in seconds of which the task result queues should expire.

Note

AMQP result expiration requires RabbitMQ versions 2.1.0 and higher.

CELERY_RESULT_EXCHANGE

Name of the exchange to publish results in. Default is "celeryresults".

CELERY_RESULT_EXCHANGE_TYPE

The exchange type of the result exchange. Default is to use a direct exchange.

CELERY_RESULT_SERIALIZER

Result message serialization format. Default is "pickle". See Serializers.

CELERY_RESULT_PERSISTENT

If set to True, result messages will be persistent. This means the messages will not be lost after a broker restart. The default is for the results to be transient.

Example configuration

CELERY_RESULT_BACKEND = "amqp"
CELERY_AMQP_TASK_RESULT_EXPIRES = 18000  # 5 hours.

Cache backend settings

Note

The cache backend supports the pylibmc and python-memcached libraries. The latter is used only if pylibmc is not installed.

CELERY_CACHE_BACKEND

Using a single memcached server:

CELERY_CACHE_BACKEND = 'memcached://127.0.0.1:11211/'

Using multiple memcached servers:

CELERY_RESULT_BACKEND = "cache"
CELERY_CACHE_BACKEND = 'memcached://172.19.26.240:11211;172.19.26.242:11211/'

CELERY_CACHE_BACKEND_OPTIONS

You can set pylibmc options using the CELERY_CACHE_BACKEND_OPTIONS setting:

CELERY_CACHE_BACKEND_OPTIONS = {"binary": True,
                                "behaviors": {"tcp_nodelay": True}}

Tokyo Tyrant backend settings

Note

The Tokyo Tyrant backend requires the pytyrant library: http://pypi.python.org/pypi/pytyrant/

This backend requires the following configuration directives to be set:

TT_HOST

Host name of the Tokyo Tyrant server.

TT_PORT

The port the Tokyo Tyrant server is listening to.

Example configuration

CELERY_RESULT_BACKEND = "tyrant"
TT_HOST = "localhost"
TT_PORT = 1978

Redis backend settings

Note

The Redis backend requires the redis library: http://pypi.python.org/pypi/redis/0.5.5

To install the redis package use pip or easy_install:

$ pip install redis

This backend requires the following configuration directives to be set.

REDIS_HOST

Host name of the Redis database server. e.g. “localhost”.

REDIS_PORT

Port to the Redis database server. e.g. 6379.

REDIS_DB

Database number to use. Default is 0

REDIS_PASSWORD

Password used to connect to the database.

Example configuration

CELERY_RESULT_BACKEND = "redis"
REDIS_HOST = "localhost"
REDIS_PORT = 6379
REDIS_DB = 0
REDIS_CONNECT_RETRY = True

MongoDB backend settings

Note

The MongoDB backend requires the pymongo library: http://github.com/mongodb/mongo-python-driver/tree/master

CELERY_MONGODB_BACKEND_SETTINGS

This is a dict supporting the following keys:

  • host

    Host name of the MongoDB server. Defaults to “localhost”.

  • port

    The port the MongoDB server is listening to. Defaults to 27017.

  • user

    User name to authenticate to the MongoDB server as (optional).

  • password

    Password to authenticate to the MongoDB server (optional).

  • database

    The database name to connect to. Defaults to “celery”.

  • taskmeta_collection

    The collection name to store task meta data. Defaults to “celery_taskmeta”.

Example configuration

CELERY_RESULT_BACKEND = "mongodb"
CELERY_MONGODB_BACKEND_SETTINGS = {
    "host": "192.168.1.100",
    "port": 30000,
    "database": "mydb",
    "taskmeta_collection": "my_taskmeta_collection",
}

Message Routing

CELERY_QUEUES

The mapping of queues the worker consumes from. This is a dictionary of queue name/options. See Routing Tasks for more information.

The default is a queue/exchange/binding key of "celery", with exchange type direct.

You don’t have to care about this unless you want custom routing facilities.

CELERY_ROUTES

A list of routers, or a single router used to route tasks to queues. When deciding the final destination of a task the routers are consulted in order. See Routers for more information.

CELERY_CREATE_MISSING_QUEUES

If enabled (default), any queues specified that is not defined in CELERY_QUEUES will be automatically created. See Automatic routing.

CELERY_DEFAULT_QUEUE

The queue used by default, if no custom queue is specified. This queue must be listed in CELERY_QUEUES. The default is: celery.

CELERY_DEFAULT_EXCHANGE

Name of the default exchange to use when no custom exchange is specified. The default is: celery.

CELERY_DEFAULT_EXCHANGE_TYPE

Default exchange type used when no custom exchange is specified. The default is: direct.

CELERY_DEFAULT_ROUTING_KEY

The default routing key used when sending tasks. The default is: celery.

CELERY_DEFAULT_DELIVERY_MODE

Can be transient or persistent. The default is to send persistent messages.

Broker Settings

BROKER_BACKEND

The messaging backend to use. Default is "amqplib".

BROKER_HOST

Hostname of the broker.

BROKER_PORT

Custom port of the broker. Default is to use the default port for the selected backend.

BROKER_USER

Username to connect as.

BROKER_PASSWORD

Password to connect with.

BROKER_VHOST

Virtual host. Default is "/".

BROKER_USE_SSL

Use SSL to connect to the broker. Off by default. This may not be supported by all transports.

BROKER_CONNECTION_TIMEOUT

The default timeout in seconds before we give up establishing a connection to the AMQP server. Default is 4 seconds.

BROKER_CONNECTION_RETRY

Automatically try to re-establish the connection to the AMQP broker if lost.

The time between retries is increased for each retry, and is not exhausted before CELERY_BROKER_CONNECTION_MAX_RETRIES is exceeded.

This behavior is on by default.

CELERY_BROKER_CONNECTION_MAX_RETRIES

Maximum number of retries before we give up re-establishing a connection to the AMQP broker.

If this is set to 0 or None, we will retry forever.

Default is 100 retries.

Task execution settings

CELERY_ALWAYS_EAGER

If this is True, all tasks will be executed locally by blocking until it is finished. apply_async and Task.delay will return a EagerResult which emulates the behavior of AsyncResult, except the result has already been evaluated.

Tasks will never be sent to the queue, but executed locally instead.

CELERY_EAGER_PROPAGATES_EXCEPTIONS

If this is True, eagerly executed tasks (using .apply, or with CELERY_ALWAYS_EAGER on), will raise exceptions.

It’s the same as always running apply with throw=True.

CELERY_IGNORE_RESULT

Whether to store the task return values or not (tombstones). If you still want to store errors, just not successful return values, you can set CELERY_STORE_ERRORS_EVEN_IF_IGNORED.

CELERY_TASK_RESULT_EXPIRES

Time (in seconds, or a timedelta object) for when after stored task tombstones will be deleted.

A built-in periodic task will delete the results after this time (celery.task.builtins.backend_cleanup).

Note

For the moment this only works with the database, cache, redis and MongoDB backends. For the AMQP backend see CELERY_AMQP_TASK_RESULT_EXPIRES.

When using the database or MongoDB backends, celerybeat must be running for the results to be expired.

CELERY_MAX_CACHED_RESULTS

Total number of results to store before results are evicted from the result cache. The default is 5000.

CELERY_TRACK_STARTED

If True the task will report its status as “started” when the task is executed by a worker. The default value is False as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a “started” state can be useful for when there are long running tasks and there is a need to report which task is currently running.

CELERY_TASK_SERIALIZER

A string identifying the default serialization method to use. Can be pickle (default), json, yaml, or any custom serialization methods that have been registered with carrot.serialization.registry.

See also

Serializers.

CELERY_DEFAULT_RATE_LIMIT

The global default rate limit for tasks.

This value is used for tasks that does not have a custom rate limit The default is no rate limit.

CELERY_DISABLE_RATE_LIMITS

Disable all rate limits, even if tasks has explicit rate limits set.

CELERY_ACKS_LATE

Late ack means the task messages will be acknowledged after the task has been executed, not just before, which is the default behavior.

Worker: celeryd

CELERY_IMPORTS

A sequence of modules to import when the celery daemon starts.

This is used to specify the task modules to import, but also to import signal handlers and additional remote control commands, etc.

CELERYD_MAX_TASKS_PER_CHILD

Maximum number of tasks a pool worker process can execute before it’s replaced with a new one. Default is no limit.

CELERYD_TASK_TIME_LIMIT

Task hard time limit in seconds. The worker processing the task will be killed and replaced with a new one when this is exceeded.

CELERYD_TASK_SOFT_TIME_LIMIT

Task soft time limit in seconds.

The SoftTimeLimitExceeded exception will be raised when this is exceeded. The task can catch this to e.g. clean up before the hard time limit comes.

Example:

from celery.decorators import task
from celery.exceptions import SoftTimeLimitExceeded

@task()
def mytask():
    try:
        return do_work()
    except SoftTimeLimitExceeded:
        cleanup_in_a_hurry()

CELERY_STORE_ERRORS_EVEN_IF_IGNORED

If set, the worker stores all task errors in the result store even if Task.ignore_result is on.

CELERYD_STATE_DB

Name of the file used to stores persistent worker state (like revoked tasks). Can be a relative or absolute path, but be aware that the suffix .db may be appended to the file name (depending on Python version).

Can also be set via the --statedb argument to celeryd.

Not enabled by default.

CELERYD_ETA_SCHEDULER_PRECISION

Set the maximum time in seconds that the ETA scheduler can sleep between rechecking the schedule. Default is 1 second.

Setting this value to 1 second means the schedulers precision will be 1 second. If you need near millisecond precision you can set this to 0.1.

Error E-Mails

CELERY_SEND_TASK_ERROR_EMAILS

The default value for the Task.send_error_emails attribute, which if set to True means errors occurring during task execution will be sent to ADMINS by e-mail.

CELERY_TASK_ERROR_WHITELIST

A white list of exceptions to send error e-mails for.

ADMINS

List of (name, email_address) tuples for the administrators that should receive error e-mails.

SERVER_EMAIL

The e-mail address this worker sends e-mails from. Default is celery@localhost.

MAIL_HOST

The mail server to use. Default is "localhost".

MAIL_HOST_USER

User name (if required) to log on to the mail server with.

MAIL_HOST_PASSWORD

Password (if required) to log on to the mail server with.

MAIL_PORT

The port the mail server is listening on. Default is 25.

Example E-Mail configuration

This configuration enables the sending of error e-mails to george@vandelay.com and kramer@vandelay.com:

# Enables error e-mails.
CELERY_SEND_TASK_ERROR_EMAILS = True

# Name and e-mail addresses of recipients
ADMINS = (
    ("George Costanza", "george@vandelay.com"),
    ("Cosmo Kramer", "kosmo@vandelay.com"),
)

# E-mail address used as sender (From field).
SERVER_EMAIL = "no-reply@vandelay.com"

# Mailserver configuration
EMAIL_HOST = "mail.vandelay.com"
EMAIL_PORT = 25
# EMAIL_HOST_USER = "servers"
# EMAIL_HOST_PASSWORD = "s3cr3t"

EMAIL_TIMEOUT = 2   # two seconds is the default

Events

CELERY_SEND_EVENTS

Send events so the worker can be monitored by tools like celerymon.

CELERY_EVENT_QUEUE

Name of the queue to consume event messages from. Default is "celeryevent".

CELERY_EVENT_EXCHANGE

Name of the exchange to send event messages to. Default is "celeryevent".

CELERY_EVENT_EXCHANGE_TYPE

The exchange type of the event exchange. Default is to use a "direct" exchange.

CELERY_EVENT_ROUTING_KEY

Routing key used when sending event messages. Default is "celeryevent".

CELERY_EVENT_SERIALIZER

Message serialization format used when sending event messages. Default is "json". See Serializers.

Broadcast Commands

CELERY_BROADCAST_QUEUE

Name prefix for the queue used when listening for broadcast messages. The workers host name will be appended to the prefix to create the final queue name.

Default is "celeryctl".

CELERY_BROADCAST_EXCHANGE

Name of the exchange used for broadcast messages.

Default is "celeryctl".

CELERY_BROADCAST_EXCHANGE_TYPE

Exchange type used for broadcast messages. Default is "fanout".

Logging

CELERYD_LOG_FILE

The default file name the worker daemon logs messages to. Can be overridden using the --logfile option to celeryd.

The default is None (stderr)

CELERYD_LOG_LEVEL

Worker log level, can be one of DEBUG, INFO, WARNING, ERROR or CRITICAL.

Can also be set via the --loglevel argument to celeryd.

See the logging module for more information.

CELERYD_LOG_FORMAT

The format to use for log messages.

Default is [%(asctime)s: %(levelname)s/%(processName)s] %(message)s

See the Python logging module for more information about log formats.

CELERYD_TASK_LOG_FORMAT

The format to use for log messages logged in tasks. Can be overridden using the --loglevel option to celeryd.

Default is:

[%(asctime)s: %(levelname)s/%(processName)s]
    [%(task_name)s(%(task_id)s)] %(message)s

See the Python logging module for more information about log formats.

CELERY_REDIRECT_STDOUTS

If enabled stdout and stderr will be redirected to the current logger.

Enabled by default. Used by celeryd and celerybeat.

CELERY_REDIRECT_STDOUTS_LEVEL

The log level output to stdout and stderr is logged as. Can be one of DEBUG, INFO, WARNING, ERROR or CRITICAL.

Default is WARNING.

Custom Component Classes (advanced)

CELERYD_POOL

Name of the task pool class used by the worker. Default is celery.concurrency.processes.TaskPool.

CELERYD_LISTENER

Name of the listener class used by the worker. Default is celery.worker.listener.CarrotListener.

CELERYD_MEDIATOR

Name of the mediator class used by the worker. Default is celery.worker.controllers.Mediator.

CELERYD_ETA_SCHEDULER

Name of the ETA scheduler class used by the worker. Default is celery.worker.controllers.ScheduleController.

Periodic Task Server: celerybeat

CELERYBEAT_SCHEDULE

The periodic task schedule used by celerybeat. See Entries.

CELERYBEAT_SCHEDULER

The default scheduler class. Default is "celery.beat.PersistentScheduler".

Can also be set via the -S argument to celerybeat.

CELERYBEAT_SCHEDULE_FILENAME

Name of the file used by PersistentScheduler to store the last run times of periodic tasks. Can be a relative or absolute path, but be aware that the suffix .db may be appended to the file name (depending on Python version).

Can also be set via the --schedule argument to celerybeat.

CELERYBEAT_MAX_LOOP_INTERVAL

The maximum number of seconds celerybeat can sleep between checking the schedule. Default is 300 seconds (5 minutes).

CELERYBEAT_LOG_FILE

The default file name to log messages to. Can be overridden using the –logfile` option to celerybeat.

The default is None (stderr).

CELERYBEAT_LOG_LEVEL

Logging level. Can be any of DEBUG, INFO, WARNING, ERROR, or CRITICAL.

Can also be set via the --loglevel argument to celerybeat.

See the logging module for more information.

Monitor Server: celerymon

CELERYMON_LOG_FILE

The default file name to log messages to. Can be overridden using the --logfile argument to celerymon.

The default is None (stderr)

CELERYMON_LOG_LEVEL

Logging level. Can be any of DEBUG, INFO, WARNING, ERROR, or CRITICAL.

See the logging module for more information.

Previous topic

Optimizing

Next topic

Cookbook

This Page

PKYDDn8DRDR%celery-2.1-archived/contributing.html Contributing — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Contributing

Community Code of Conduct

The goal is to maintain a diverse community that is pleasant for everyone. That is why we would greatly appreciate it if everyone contributing to and interacting with the community also followed this Code of Conduct.

The Code of Conduct covers our behavior as members of the community, in any forum, mailing list, wiki, website, Internet relay chat (IRC), public meeting or private correspondence.

The Code of Conduct is heavily based on the Ubuntu Code of Conduct, and the Pylons Code of Conduct.

Be considerate.

Your work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and we expect you to take those consequences into account when making decisions. Even if it’s not obvious at the time, our contributions to Ubuntu will impact the work of others. For example, changes to code, infrastructure, policy, documentation and translations during a release may negatively impact others work.

Be respectful.

The Celery community and its members treat one another with respect. Everyone can make a valuable contribution to Celery. We may not always agree, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important to remember that a community where people feel uncomfortable or threatened is not a productive one. We expect members of the Celery community to be respectful when dealing with other contributors as well as with people outside the Celery project and with users of Celery.

Be collaborative.

Collaboration is central to Celery and to the larger free software community. We should always be open to collaboration. Your work should be done transparently and patches from Celery should be given back to the community when they are made, not just when the distribution releases. If you wish to work on new code for existing upstream projects, at least keep those projects informed of your ideas and progress. It many not be possible to get consensus from upstream, or even from your colleagues about the correct implementation for an idea, so don’t feel obliged to have that agreement before you begin, but at least keep the outside world informed of your work, and publish your work in a way that allows outsiders to test, discuss and contribute to your efforts.

When you disagree, consult others.

Disagreements, both political and technical, happen all the time and the Celery community is no exception. It is important that we resolve disagreements and differing views constructively and with the help of the community and community process. If you really want to go a different way, then we encourage you to make a derivative distribution or alternate set of packages that still build on the work we’ve done to utilize as common of a core as possible.

When you are unsure, ask for help.

Nobody knows everything, and nobody is expected to be perfect. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.

Step down considerately.

Developers on every project come and go and Celery is no different. When you leave or disengage from the project, in whole or in part, we ask that you do so in a way that minimizes disruption to the project. This means you should tell people you are leaving and take the proper steps to ensure that others can pick up where you leave off.

Reporting a Bug

Bugs can always be described to the Mailing list, but the best way to report an issue and to ensure a timely response is to use the issue tracker.

  1. Create a GitHub account.

You need to create a GitHub account to be able to create new issues and participate in the discussion.

  1. Determine if your bug is really a bug.

You should not file a bug if you are requesting support. For that you can use the Mailing list, or IRC.

  1. Make sure your bug hasn’t already been reported.

Search through the appropriate Issue tracker. If a bug like yours was found, check if you have new information that could be reported to help the developers fix the bug.

  1. Collect information about the bug.

To have the best chance of having a bug fixed, we need to be able to easily reproduce the conditions that caused it. Most of the time this information will be from a Python traceback message, though some bugs might be in design, spelling or other errors on the website/docs/code.

If the error is from a Python traceback, include it in the bug report.

We also need to know what platform you’re running (Windows, OSX, Linux, etc), the version of your Python interpreter, and the version of Celery, and related packages that you were running when the bug occurred.

  1. Submit the bug.

By default GitHub will email you to let you know when new comments have been made on your bug. In the event you’ve turned this feature off, you should check back on occasion to ensure you don’t miss any questions a developer trying to fix the bug might ask.

Issue Trackers

Bugs for a package in the Celery ecosystem should be reported to the relevant issue tracker.

If you are unsure of the origin of the bug you can ask the Mailing list, or just use the Celery issue tracker.

Coding Style

You should probably be able to pick up the coding style from surrounding code, but it is a good idea to be aware of the following conventions.

  • All Python code must follow the PEP-8 guidelines.

pep8.py is an utility you can use to verify that your code is following the conventions.

  • Docstrings must follow the PEP-257 conventions, and use the following style.

    Do this:

    def method(self, arg):
        """Short description.
    
        More details.
    
        """
    

    or:

    def method(self, arg):
        """Short description."""
    

    but not this:

    def method(self, arg):
        """
        Short description.
        """
    
  • Lines should not exceed 78 columns.

  • Import order

    • Python standard library (import xxx)
    • Python standard library (‘from xxx import`)
    • Third party packages.
    • Other modules from the current package.

    or in case of code using Django:

    • Python standard library (import xxx)
    • Python standard library (‘from xxx import`)
    • Third party packages.
    • Django packages.
    • Other modules from the current package.

    Within these sections imports should be sorted by name.

    Example:

    import threading
    import time
    
    from collections import deque
    from Queue import Queue, Empty
    
    from celery.datastructures import TokenBucket
    from celery.utils import timeutils
    from celery.utils.compat import all, izip_longest, chain_from_iterable
    
  • Wildcard imports must not be used (from xxx import *).

Previous topic

Community Resources

Next topic

Tutorials

This Page

PKYDD  "celery-2.1-archived/changelog.html Change history — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Change history

2.1.5

  • In 2.2 remote control commands are not persistent anymore. There is now a new setting you can use to disable persistence in 2.1 as well: the CELERY_BROADCAST_PERSISTENT setting.

    This setting will not have any effect in 2.2.

2.1.4

release-date:2010-12-03 12:00 PM CEST
  • Celery programs now hijacks the root logger by default (Issue #250).

    In 2.1 logging behavior was changed to not configure logging if it was already configured. The problem is that some libraries does not play nice and hijack the root logger, or use logging.basicConfig – resulting in users not getting any output or logs.

    So instead we now always hijack the root logger, but if you want the previous behavior you can disable the CELERYD_HIJACK_ROOT_LOGGER setting:

    CELERYD_HIJACK_ROOT_LOGGER = False
    

Fixes

  • Execution options to apply_async now takes precedence over options returned by active routers. This was a regression introduced recently (Issue #244).
  • celeryev curses monitor: Long arguments are now truncated so curses doesn’t crash with out of bounds errors. (Issue #235).
  • celeryd: Channel errors occurring while handling control commands no longer crash the worker but are instead logged with severity error.
  • SQLAlchemy database backend: Fixed a race condition occurring when the client wrote the pending state. Just like the Django database backend, it does no longer save the pending state (Issue #261 + Issue #262).
  • task.apply: propagate=True now raises exceptions from the original frame, keeping the same stacktrace (Issue #256).
  • Error email body now uses repr(exception) instead of str(exception), as the latter could result in Unicode decode errors (Issue #245).
  • Error e-mail timeout value is now configurable by using the EMAIL_TIMEOUT setting.
  • celeryev: Now works on Windows (but the curses monitor won’t work without having curses).
  • Unit test output no longer emits non-standard characters.
  • celeryd: The broadcast consumer is now closed if the connection is reset.
  • celeryd: Now properly handles errors occurring while trying to acknowledge the message.
  • Happy holidays :)

Documentation

  • Adding Contributing.
  • Added Optimizing.
  • Added Security section to the FAQ.
  • Periodic Task User Guide: Fixed typo in crontab example table (Issue #239).

2.1.3

release-date:2010-11-09 17:00 PM CEST
  • Fixed deadlocks in timer2 which could lead to djcelerymon/celeryev -c hanging.

  • EventReceiver: now sends heartbeat request to find workers.

    This means celeryev and friends finds workers immediately at startup.

  • celeryev cursesmon: Set screen_delay to 10ms, so the screen refreshes more often.

  • Fixed pickling errors when pickling AsyncResult on older Python versions.

  • celeryd: prefetch count was decremented by eta tasks even if there were no active prefetch limits.

2.1.2

release-date:2010-10-29 15:00 PM CEST

Fixes

  • AMQP result backend: Delete result queue after having successfully polled the result.

  • task.queue attribute and queue argument to apply_async was not working.

  • Fixed bug with task log messages being output twice when logging to stderr.

    • Default logfile is now sys.__stderr__ instead of sys.stderr, so the messages are not being redirected back to the stderr logger.
    • In addition task loggers now disable propagate by default. You can re-enable this by using the propagate argument to task.get_logger.
  • A 2 second timeout for sending error e-mails has been added.

    The mail server used should have as little latency as possible, as the sending of error e-mails is currently blocking the worker. Preferably the mailserver should be local.

  • celeryd: Now sends the task-retried event for retried tasks.

    This means retried tasks will show as RETRY in the event monitors.

  • Logging should now handle utf-8 correctly.

  • celeryd: Added exc_info error logging messages.

    This is used by tools like django-sentry to provide more context.

  • The time_start for a task is now set when the task is acknowledged, not when it is sent to the pool.

    See Issue #233.

  • Fixed Sunday issue with the crontab scheduler.

  • Fixed a race condition where Timer.enter is called twice before the thread actually runs.

  • The mail_admins method is now in the loader, so it can be overriden. (django-celery now uses the Django mail admins mechanism)).

  • celeryd: Added –scheduler option to be used in combination with -B.

    See Issue #229.

  • Tasks Userguide: Added section about decorating tasks (Issue #224).

  • Now links to celery-pylons on PyPI instead of on Bitbucket.

  • celeryd: Now honors ignore result for WorkerLostError and timeout errors.

  • celerybeat: Fixed UnboundLocalError in celerybeat logging when using logging setup signals.

  • celeryd: All log messages now includes exc_info.

  • ETA scheduler now uses a not_empty condition to wait for new tasks instead of a sleep polling loop

  • celeryd now shows the total runtime for a task in the task succeeded log message.

2.1.1

release-date:2010-10-14 14:00 PM CEST

Fixes

  • Now working on Windows again.

    Removed dependency on the pwd/grp modules.

  • snapshots: Fixed race condition leading to loss of events.

  • celeryd: Reject tasks with an eta that cannot be converted to a time stamp.

    See issue #209

  • concurrency.processes.pool: The semaphore was released twice for each task (both at ACK and result ready).

    This has been fixed, and it is now released only once per task.

  • docs/configuration: Fixed typo CELERYD_SOFT_TASK_TIME_LIMIT -> CELERYD_TASK_SOFT_TIME_LIMIT.

    See issue #214

  • control command dump_scheduled: was using old .info attribute

  • celeryd-multi: Fixed set changed size during iteration bug

    occurring in the restart command.

  • celeryd: Accidentally tried to use additional command line arguments.

    This would lead to an error like:

    got multiple values for keyword argument 'concurrency'.

    Additional command line arguments are now ignored, and does not produce this error. However – we do reserve the right to use positional arguments in the future, so please do not depend on this behavior.

  • celerybeat: Now respects routers and task execution options again.

  • celerybeat: Now reuses the publisher instead of the connection.

  • Cache result backend: Using float as the expires argument to cache.set is deprecated by the memcached libraries, so we now automatically cast to int.

  • unit tests: No longer emits logging and warnings in test output.

News

  • Now depends on carrot version 0.10.7.

  • Added CELERY_REDIRECT_STDOUTS, and CELERYD_REDIRECT_STDOUTS_LEVEL settings.

    CELERY_REDIRECT_STDOUTS is used by celeryd and celerybeat. All output to stdout and stderr will be redirected to the current logger if enabled.

    CELERY_REDIRECT_STDOUTS_LEVEL decides the log level used and is WARNING by default.

  • Added CELERYBEAT_SCHEDULER setting.

    This setting is used to define the default for the -S option to celerybeat.

    Example:

    CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
    
  • Added Task.expires: Used to set default expiry time for tasks.

  • New remote control commands: add_consumer and cancel_consumer.

    add_consumer(queue, exchange, exchange_type, routing_key,
    **options)

    Tells the worker to declare and consume from the specified declaration.

    cancel_consumer(queue_name)

    Tells the worker to stop consuming from queue (by queue name).

    Commands also added to celeryctl and inspect.

    Example using celeryctl to start consuming from queue “queue”, in exchange “exchange”, of type “direct” using binding key “key”:

    $ celeryctl inspect add_consumer queue exchange direct key
    $ celeryctl inspect cancel_consumer queue

    See celeryctl: Management Utility for more information about the celeryctl program.

    Another example using inspect:

    >>> from celery.task.control import inspect
    >>> inspect.add_consumer(queue="queue", exchange="exchange",
    ...                      exchange_type="direct",
    ...                      routing_key="key",
    ...                      durable=False,
    ...                      auto_delete=True)
    
    >>> inspect.cancel_consumer("queue")
    
  • celerybeat: Now logs the traceback if a message can’t be sent.

  • celerybeat: Now enables a default socket timeout of 30 seconds.

  • README/introduction/homepage: Added link to Flask-Celery.

2.1.0

release-date:2010-10-08 12:00 PM CEST

Important Notes

  • Celery is now following the versioning semantics defined by semver.

    This means we are no longer allowed to use odd/even versioning semantics By our previous versioning scheme this stable release should have been version 2.2.

  • Now depends on Carrot 0.10.7.

  • No longer depends on SQLAlchemy, this needs to be installed separately if the database result backend is used.

  • django-celery now comes with a monitor for the Django Admin interface. This can also be used if you’re not a Django user. See Django Admin Monitor and Using outside of Django for more information.

  • If you get an error after upgrading saying: AttributeError: 'module' object has no attribute 'system',

    Then this is because the celery.platform module has been renamed to celery.platforms to not collide with the built-in platform module.

    You have to remove the old platform.py (and maybe platform.pyc) file from your previous Celery installation.

    To do this use python to find the location of this module:

    $ python
    >>> import celery.platform
    >>> celery.platform
    <module 'celery.platform' from '/opt/devel/celery/celery/platform.pyc'>

    Here the compiled module is in /opt/devel/celery/celery/, to remove the offending files do:

    $ rm -f /opt/devel/celery/celery/platform.py*

News

  • Added support for expiration of AMQP results (requires RabbitMQ 2.1.0)

    The new configuration option CELERY_AMQP_TASK_RESULT_EXPIRES sets the expiry time in seconds (can be int or float):

    CELERY_AMQP_TASK_RESULT_EXPIRES = 30 * 60  # 30 minutes.
    CELERY_AMQP_TASK_RESULT_EXPIRES = 0.80     # 800 ms.
    
  • celeryev: Event Snapshots

    If enabled, celeryd sends messages about what the worker is doing. These messages are called “events”. The events are used by real-time monitors to show what the cluster is doing, but they are not very useful for monitoring over a longer period of time. Snapshots lets you take “pictures” of the clusters state at regular intervals. This can then be stored in a database to generate statistics with, or even monitoring over longer time periods.

    django-celery now comes with a Celery monitor for the Django Admin interface. To use this you need to run the django-celery snapshot camera, which stores snapshots to the database at configurable intervals. See Using outside of Django for information about using this monitor if you’re not using Django.

    To use the Django admin monitor you need to do the following:

    1. Create the new database tables.

      $ python manage.py syncdb

    2. Start the django-celery snapshot camera:

      $ python manage.py celerycam
    3. Open up the django admin to monitor your cluster.

    The admin interface shows tasks, worker nodes, and even lets you perform some actions, like revoking and rate limiting tasks, and shutting down worker nodes.

    There’s also a Debian init.d script for celeryev available, see Running celeryd as a daemon for more information.

    New command line arguments to celeryev:

    • -c|--camera: Snapshot camera class to use.
    • --logfile|-f: Log file
    • --loglevel|-l: Log level
    • --maxrate|-r: Shutter rate limit.
    • --freq|-F: Shutter frequency

    The --camera argument is the name of a class used to take snapshots with. It must support the interface defined by celery.events.snapshot.Polaroid.

    Shutter frequency controls how often the camera thread wakes up, while the rate limit controls how often it will actually take a snapshot. The rate limit can be an integer (snapshots/s), or a rate limit string which has the same syntax as the task rate limit strings ("200/m", "10/s", "1/h", etc).

    For the Django camera case, this rate limit can be used to control how often the snapshots are written to the database, and the frequency used to control how often the thread wakes up to check if there’s anything new.

    The rate limit is off by default, which means it will take a snapshot for every --frequency seconds.

  • broadcast(): Added callback argument, this can be used to process replies immediately as they arrive.

  • celeryctl: New command-line utility to manage and inspect worker nodes, apply tasks and inspect the results of tasks.

    See also

    The celeryctl: Management Utility section in the User Guide.

    Some examples:

    $ celeryctl apply tasks.add -a '[2, 2]' --countdown=10
    
    $ celeryctl inspect active
    $ celeryctl inspect registered_tasks
    $ celeryctl inspect scheduled
    $ celeryctl inspect --help
    $ celeryctl apply --help
  • Added the ability to set an expiry date and time for tasks.

    Example:

    >>> # Task expires after one minute from now.
    >>> task.apply_async(args, kwargs, expires=60)
    >>> # Also supports datetime
    >>> task.apply_async(args, kwargs,
    ...                  expires=datetime.now() + timedelta(days=1)
    

    When a worker receives a task that has been expired it will be marked as revoked (celery.exceptions.TaskRevokedError).

  • Changed the way logging is configured.

    We now configure the root logger instead of only configuring our custom logger. In addition we don’t hijack the multiprocessing logger anymore, but instead use a custom logger name for different applications:

    Application Logger Name
    celeryd “celery”
    celerybeat “celery.beat”
    celeryev “celery.ev”

    This means that the loglevel and logfile arguments will affect all registered loggers (even those from 3rd party libraries). Unless you configure the loggers manually as shown below, that is.

    Users can choose to configure logging by subscribing to the :data:`~celery.signals.setup_logging` signal:

    from logging.config import fileConfig
    from celery import signals
    
    def setup_logging(**kwargs):
        fileConfig("logging.conf")
    signals.setup_logging.connect(setup_logging)
    

    If there are no receivers for this signal, the logging subsystem will be configured using the --loglevel/--logfile argument, this will be used for all defined loggers.

    Remember that celeryd also redirects stdout and stderr to the celery logger, if manually configure logging you also need to redirect the stdouts manually:

     from logging.config import fileConfig
     from celery import log
    
    def setup_logging(**kwargs):
         import logging
         fileConfig("logging.conf")
         stdouts = logging.getLogger("mystdoutslogger")
         log.redirect_stdouts_to_logger(stdouts, loglevel=logging.WARNING)
    
  • celeryd: Added command-line option -I/--include:

    A comma separated list of (task) modules to be imported.

    Example:

    $ celeryd -I app1.tasks,app2.tasks
  • celeryd: now emits a warning if running as the root user (euid is 0).

  • celery.messaging.establish_connection(): Ability to override defaults used using keyword argument “defaults”.

  • celeryd: Now uses multiprocessing.freeze_support() so that it should work with py2exe, PyInstaller, cx_Freeze, etc.

  • celeryd: Now includes more metadata for the STARTED state: PID and host name of the worker that started the task.

    See issue #181

  • subtask: Merge additional keyword arguments to subtask() into task keyword arguments.

    e.g.:

    >>> s = subtask((1, 2), {"foo": "bar"}, baz=1)
    >>> s.args
    (1, 2)
    >>> s.kwargs
    {"foo": "bar", "baz": 1}
    

    See issue #182.

  • celeryd: Now emits a warning if there is already a worker node using the same name running on the same virtual host.

  • AMQP result backend: Sending of results are now retried if the connection is down.

  • AMQP result backend: result.get(): Wait for next state if state is not

    in READY_STATES.

  • TaskSetResult now supports subscription.

    >>> res = TaskSet(tasks).apply_async()
    >>> res[0].get()
    
  • Added Task.send_error_emails + Task.error_whitelist, so these can be configured per task instead of just by the global setting.

  • Added Task.store_errors_even_if_ignored, so it can be changed per Task, not just by the global setting.

  • The crontab scheduler no longer wakes up every second, but implements remaining_estimate (Optimization).

  • celeryd: Store FAILURE result if the

    WorkerLostError exception occurs (worker process disappeared).

  • celeryd: Store FAILURE result if one of the *TimeLimitExceeded exceptions occurs.

  • Refactored the periodic task responsible for cleaning up results.

    • The backend cleanup task is now only added to the schedule if

      CELERY_TASK_RESULT_EXPIRES is set.

    • If the schedule already contains a periodic task named “celery.backend_cleanup” it won’t change it, so the behavior of the backend cleanup task can be easily changed.

    • The task is now run every day at 4:00 AM, rather than every day since the first time it was run (using crontab schedule instead of run_every)

    • Renamed celery.task.builtins.DeleteExpiredTaskMetaTask

      -> celery.task.builtins.backend_cleanup

    • The task itself has been renamed from “celery.delete_expired_task_meta” to “celery.backend_cleanup”

    See issue #134.

  • Implemented AsyncResult.forget for sqla/cache/redis/tyrant backends. (Forget and remove task result).

    See issue #184.

  • TaskSetResult.join: Added ‘propagate=True’ argument.

    When set to False exceptions occurring in subtasks will not be re-raised.

  • Added Task.update_state(task_id, state, meta) as a shortcut to task.backend.store_result(task_id, meta, state).

    The backend interface is “private” and the terminology outdated, so better to move this to Task so it can be used.

  • timer2: Set self.running=False in stop() so it won’t try to join again on subsequent calls to stop().

  • Log colors are now disabled by default on Windows.

  • celery.platform renamed to celery.platforms, so it doesn’t collide with the built-in platform module.

  • Exceptions occurring in Mediator+Pool callbacks are now caught and logged instead of taking down the worker.

  • Redis result backend: Now supports result expiration using the Redis EXPIRE command.

  • unit tests: Don’t leave threads running at tear down.

  • celeryd: Task results shown in logs are now truncated to 46 chars.

  • Task.__name__ is now an alias to self.__class__.__name__.

    This way tasks introspects more like regular functions.

  • Task.retry: Now raises TypeError if kwargs argument is empty.

    See issue #164.

  • timedelta_seconds: Use timedelta.total_seconds if running on Python 2.7

  • TokenBucket: Generic Token Bucket algorithm

  • celery.events.state: Recording of cluster state can now be paused and resumed, including support for buffering.

    State.freeze(buffer=True)

    Pauses recording of the stream.

    If buffer is true, events received while being frozen will be buffered, and may be replayed later.

    State.thaw(replay=True)

    Resumes recording of the stream.

    If replay is true, then the recorded buffer will be applied.

    State.freeze_while(fun)

    With a function to apply, freezes the stream before, and replays the buffer after the function returns.

  • EventReceiver.capture Now supports a timeout keyword argument.

  • celeryd: The mediator thread is now disabled if CELERY_RATE_LIMITS is enabled, and tasks are directly sent to the pool without going through the ready queue (Optimization).

Fixes

  • Pool: Process timed out by TimeoutHandler must be joined by the Supervisor, so don’t remove it from the internal process list.

    See issue #192.

  • TaskPublisher.delay_task now supports exchange argument, so exchange can be overridden when sending tasks in bulk using the same publisher

    See issue #187.

  • celeryd no longer marks tasks as revoked if CELERY_IGNORE_RESULT is enabled.

    See issue #207.

  • AMQP Result backend: Fixed bug with result.get() if CELERY_TRACK_STARTED enabled.

    result.get() would stop consuming after receiving the STARTED state.

  • Fixed bug where new processes created by the pool supervisor becomes stuck while reading from the task Queue.

  • Fixed timing issue when declaring the remote control command reply queue

    This issue could result in replies being lost, but have now been fixed.

  • Backward compatible LoggerAdapter implementation: Now works for Python 2.4.

    Also added support for several new methods: fatal, makeRecord, _log, log, isEnabledFor, addHandler, removeHandler.

Experimental

  • celeryd-multi: Added daemonization support.

    celeryd-multi can now be used to start, stop and restart worker nodes.

    $ celeryd-multi start jerry elaine george kramer

    This also creates PID files and log files (celeryd@jerry.pid, ..., celeryd@jerry.log. To specify a location for these files use the --pidfile and --logfile arguments with the %n format:

    $ celeryd-multi start jerry elaine george kramer \
                    --logfile=/var/log/celeryd@%n.log \
                    --pidfile=/var/run/celeryd@%n.pid

    Stopping:

    $ celeryd-multi stop jerry elaine george kramer

    Restarting. The nodes will be restarted one by one as the old ones are shutdown:

    $ celeryd-multi restart jerry elaine george kramer

    Killing the nodes (WARNING: Will discard currently executing tasks):

    $ celeryd-multi kill jerry elaine george kramer

    See celeryd-multi help for help.

  • celeryd-multi: start command renamed to show.

    celeryd-multi start will now actually start and detach worker nodes. To just generate the commands you have to use celeryd-multi show.

  • celeryd: Added --pidfile argument.

    The worker will write its pid when it starts. The worker will not be started if this file exists and the pid contained is still alive.

  • Added generic init.d script using celeryd-multi

Documentation

  • Added User guide section: Monitoring

  • Added user guide section: Periodic Tasks

    Moved from getting-started/periodic-tasks and updated.

  • tutorials/external moved to new section: “community”.

  • References has been added to all sections in the documentation.

    This makes it easier to link between documents.

2.0.3

release-date:2010-08-27 12:00 P.M CEST

Fixes

  • celeryd: Properly handle connection errors happening while closing consumers.

  • celeryd: Events are now buffered if the connection is down, then sent when the connection is re-established.

  • No longer depends on the mailer package.

    This package had a name space collision with django-mailer, so its functionality was replaced.

  • Redis result backend: Documentation typos: Redis doesn’t have database names, but database numbers. The default database is now 0.

  • inspect: registered_tasks was requesting an invalid command because of a typo.

    See issue #170.

  • CELERY_ROUTES: Values defined in the route should now have precedence over values defined in CELERY_QUEUES when merging the two.

    With the follow settings:

    CELERY_QUEUES = {"cpubound": {"exchange": "cpubound",
                                  "routing_key": "cpubound"}}
    
    CELERY_ROUTES = {"tasks.add": {"queue": "cpubound",
                                   "routing_key": "tasks.add",
                                   "serializer": "json"}}
    

    The final routing options for tasks.add will become:

    {"exchange": "cpubound",
     "routing_key": "tasks.add",
     "serializer": "json"}
    

    This was not the case before: the values in CELERY_QUEUES would take precedence.

  • Worker crashed if the value of CELERY_TASK_ERROR_WHITELIST was not an iterable

  • apply(): Make sure kwargs["task_id"] is always set.

  • AsyncResult.traceback: Now returns None, instead of raising KeyError if traceback is missing.

  • inspect: Replies did not work correctly if no destination was specified.

  • Can now store result/metadata for custom states.

  • celeryd: A warning is now emitted if the sending of task error e-mails fails.

  • celeryev: Curses monitor no longer crashes if the terminal window is resized.

    See issue #160.

  • celeryd: On OS X it is not possible to run os.exec* in a process that is threaded.

    This breaks the SIGHUP restart handler, and is now disabled on OS X, emitting a warning instead.

    See issue #152.

  • celery.execute.trace: Properly handle raise(str), which is still allowed in Python 2.4.

    See issue #175.

  • Using urllib2 in a periodic task on OS X crashed because of the proxy auto detection used in OS X.

    This is now fixed by using a workaround. See issue #143.

  • Debian init scripts: Commands should not run in a sub shell

    See issue #163.

  • Debian init scripts: Use the absolute path of celeryd to allow stat

    See issue #162.

Documentation

  • getting-started/broker-installation: Fixed typo

    set_permissions "" -> set_permissions ".*".

  • Tasks User Guide: Added section on database transactions.

    See issue #169.

  • Routing User Guide: Fixed typo “feed”: -> {“queue”: “feeds”}.

    See issue #169.

  • Documented the default values for the CELERYD_CONCURRENCY and CELERYD_PREFETCH_MULTIPLIER settings.

  • Tasks User Guide: Fixed typos in the subtask example

  • celery.signals: Documented worker_process_init.

  • Daemonization cookbook: Need to export DJANGO_SETTINGS_MODULE in /etc/default/celeryd.

  • Added some more FAQs from stack overflow

  • Daemonization cookbook: Fixed typo CELERYD_LOGFILE/CELERYD_PIDFILE

    to CELERYD_LOG_FILE / CELERYD_PID_FILE

    Also added troubleshooting section for the init scripts.

2.0.2

release-date:2010-07-22 11:31 A.M CEST
  • Routes: When using the dict route syntax, the exchange for a task could disappear making the task unroutable.

    See issue #158.

  • Test suite now passing on Python 2.4

  • No longer have to type PYTHONPATH=. to use celeryconfig in the current directory.

    This is accomplished by the default loader ensuring that the current directory is in sys.path when loading the config module. sys.path is reset to its original state after loading.

    Adding the current working directory to sys.path without the user knowing may be a security issue, as this means someone can drop a Python module in the users directory that executes arbitrary commands. This was the original reason not to do this, but if done only when loading the config module, this means that the behavior will only apply to the modules imported in the config module, which I think is a good compromise (certainly better than just explicitly setting PYTHONPATH=. anyway)

  • Experimental Cassandra backend added.

  • celeryd: SIGHUP handler accidentally propagated to worker pool processes.

    In combination with 7a7c44e39344789f11b5346e9cc8340f5fe4846c this would make each child process start a new celeryd when the terminal window was closed :/

  • celeryd: Do not install SIGHUP handler if running from a terminal.

    This fixes the problem where celeryd is launched in the background when closing the terminal.

  • celeryd: Now joins threads at shutdown.

    See issue #152.

  • Test tear down: Don’t use atexit but nose’s teardown() functionality instead.

    See issue #154.

  • Debian init script for celeryd: Stop now works correctly.

  • Task logger: warn method added (synonym for warning)

  • Can now define a white list of errors to send error e-mails for.

    Example:

    CELERY_TASK_ERROR_WHITELIST = ('myapp.MalformedInputError')
    

    See issue #153.

  • celeryd: Now handles overflow exceptions in time.mktime while parsing the ETA field.

  • LoggerWrapper: Try to detect loggers logging back to stderr/stdout making an infinite loop.

  • Added celery.task.control.inspect: Inspects a running worker.

    Examples:

    # Inspect a single worker
    >>> i = inspect("myworker.example.com")
    
    # Inspect several workers
    >>> i = inspect(["myworker.example.com", "myworker2.example.com"])
    
    # Inspect all workers consuming on this vhost.
    >>> i = inspect()
    
    ### Methods
    
    # Get currently executing tasks
    >>> i.active()
    
    # Get currently reserved tasks
    >>> i.reserved()
    
    # Get the current eta schedule
    >>> i.scheduled()
    
    # Worker statistics and info
    >>> i.stats()
    
    # List of currently revoked tasks
    >>> i.revoked()
    
    # List of registered tasks
    >>> i.registered_tasks()
  • Remote control commands dump_active/dump_reserved/dump_schedule now replies with detailed task requests.

    Containing the original arguments and fields of the task requested.

    In addition the remote control command set_loglevel has been added, this only changes the log level for the main process.

  • Worker control command execution now catches errors and returns their string representation in the reply.

  • Functional test suite added

    celery.tests.functional.case contains utilities to start and stop an embedded celeryd process, for use in functional testing.

2.0.1

release-date:2010-07-09 03:02 P.M CEST
  • multiprocessing.pool: Now handles encoding errors, so that pickling errors doesn’t crash the worker processes.

  • The remote control command replies was not working with RabbitMQ 1.8.0’s stricter equivalence checks.

    If you’ve already hit this problem you may have to delete the declaration:

    $ camqadm exchange.delete celerycrq

    or:

    $ python manage.py camqadm exchange.delete celerycrq
  • A bug sneaked in the ETA scheduler that made it only able to execute one task per second(!)

    The scheduler sleeps between iterations so it doesn’t consume too much CPU. It keeps a list of the scheduled items sorted by time, at each iteration it sleeps for the remaining time of the item with the nearest deadline. If there are no eta tasks it will sleep for a minimum amount of time, one second by default.

    A bug sneaked in here, making it sleep for one second for every task that was scheduled. This has been fixed, so now it should move tasks like hot knife through butter.

    In addition a new setting has been added to control the minimum sleep interval; CELERYD_ETA_SCHEDULER_PRECISION. A good value for this would be a float between 0 and 1, depending on the needed precision. A value of 0.8 means that when the ETA of a task is met, it will take at most 0.8 seconds for the task to be moved to the ready queue.

  • Pool: Supervisor did not release the semaphore.

    This would lead to a deadlock if all workers terminated prematurely.

  • Added Python version trove classifiers: 2.4, 2.5, 2.6 and 2.7

  • Tests now passing on Python 2.7.

  • Task.__reduce__: Tasks created using the task decorator can now be pickled.

  • setup.py: nose added to tests_require.

  • Pickle should now work with SQLAlchemy 0.5.x

  • New homepage design by Jan Henrik Helmers: http://celeryproject.org

  • New Sphinx theme by Armin Ronacher: http://docs.celeryproject.org/

  • Fixed “pending_xref” errors shown in the HTML rendering of the documentation. Apparently this was caused by new changes in Sphinx 1.0b2.

  • Router classes in CELERY_ROUTES are now imported lazily.

    Importing a router class in a module that also loads the Celery environment would cause a circular dependency. This is solved by importing it when needed after the environment is set up.

  • CELERY_ROUTES was broken if set to a single dict.

    This example in the docs should now work again:

    CELERY_ROUTES = {"feed.tasks.import_feed": "feeds"}
    
  • CREATE_MISSING_QUEUES was not honored by apply_async.

  • New remote control command: stats

    Dumps information about the worker, like pool process ids, and total number of tasks executed by type.

    Example reply:

    [{'worker.local':
         'total': {'tasks.sleeptask': 6},
         'pool': {'timeouts': [None, None],
                  'processes': [60376, 60377],
                  'max-concurrency': 2,
                  'max-tasks-per-child': None,
                  'put-guarded-by-semaphore': True}}]
  • New remote control command: dump_active

    Gives a list of tasks currently being executed by the worker. By default arguments are passed through repr in case there are arguments that is not JSON encodable. If you know the arguments are JSON safe, you can pass the argument safe=True.

    Example reply:

    >>> broadcast("dump_active", arguments={"safe": False}, reply=True)
    [{'worker.local': [
        {'args': '(1,)',
         'time_start': 1278580542.6300001,
         'name': 'tasks.sleeptask',
         'delivery_info': {
             'consumer_tag': '30',
             'routing_key': 'celery',
             'exchange': 'celery'},
         'hostname': 'casper.local',
         'acknowledged': True,
         'kwargs': '{}',
         'id': '802e93e9-e470-47ed-b913-06de8510aca2',
        }
    ]}]
    
  • Added experimental support for persistent revokes.

    Use the -S|--statedb argument to celeryd to enable it:

    $ celeryd --statedb=/var/run/celeryd

    This will use the file: /var/run/celeryd.db, as the shelve module automatically adds the .db suffix.

2.0.0

release-date:2010-07-02 02:30 P.M CEST

Foreword

Celery 2.0 contains backward incompatible changes, the most important being that the Django dependency has been removed so Celery no longer supports Django out of the box, but instead as an add-on package called django-celery.

We’re very sorry for breaking backwards compatibility, but there’s also many new and exciting features to make up for the time you lose upgrading, so be sure to read the News section.

Quite a lot of potential users have been upset about the Django dependency, so maybe this is a chance to get wider adoption by the Python community as well.

Big thanks to all contributors, testers and users!

Upgrading for Django-users

Django integration has been moved to a separate package: django-celery.

  • To upgrade you need to install the django-celery module and change:

    INSTALLED_APPS = "celery"
    

    to:

    INSTALLED_APPS = "djcelery"
    
  • If you use mod_wsgi you need to add the following line to your .wsgi file:

    import os
    os.environ["CELERY_LOADER"] = "django"
    
  • The following modules has been moved to django-celery:

    Module name Replace with
    celery.models djcelery.models
    celery.managers djcelery.managers
    celery.views djcelery.views
    celery.urls djcelery.urls
    celery.management djcelery.management
    celery.loaders.djangoapp djcelery.loaders
    celery.backends.database djcelery.backends.database
    celery.backends.cache djcelery.backends.cache

Importing djcelery will automatically setup Celery to use Django loader. loader. It does this by setting the CELERY_LOADER environment variable to "django" (it won’t change it if a loader is already set.)

When the Django loader is used, the “database” and “cache” result backend aliases will point to the djcelery backends instead of the built-in backends, and configuration will be read from the Django settings.

Upgrading for others

Database result backend

The database result backend is now using SQLAlchemy instead of the Django ORM, see Supported Databases for a table of supported databases.

The DATABASE_* settings has been replaced by a single setting: CELERY_RESULT_DBURI. The value here should be an SQLAlchemy Connection String, some examples include:

# sqlite (filename)
CELERY_RESULT_DBURI = "sqlite:///celerydb.sqlite"

# mysql
CELERY_RESULT_DBURI = "mysql://scott:tiger@localhost/foo"

# postgresql
CELERY_RESULT_DBURI = "postgresql://scott:tiger@localhost/mydatabase"

# oracle
CELERY_RESULT_DBURI = "oracle://scott:tiger@127.0.0.1:1521/sidname"

See SQLAlchemy Connection Strings for more information about connection strings.

To specify additional SQLAlchemy database engine options you can use the CELERY_RESULT_ENGINE_OPTIONS setting:

# echo enables verbose logging from SQLAlchemy.
CELERY_RESULT_ENGINE_OPTIONS = {"echo": True}

Cache result backend

The cache result backend is no longer using the Django cache framework, but it supports mostly the same configuration syntax:

CELERY_CACHE_BACKEND = "memcached://A.example.com:11211;B.example.com"

To use the cache backend you must either have the pylibmc or python-memcached library installed, of which the former is regarded as the best choice.

The support backend types are memcached:// and memory://, we haven’t felt the need to support any of the other backends provided by Django.

Backward incompatible changes

  • Default (python) loader now prints warning on missing celeryconfig.py instead of raising ImportError.

    celeryd raises ImproperlyConfigured if the configuration is not set up. This makes it possible to use –help etc., without having a working configuration.

    Also this makes it possible to use the client side of celery without being configured:

    >>> from carrot.connection import BrokerConnection
    >>> conn = BrokerConnection("localhost", "guest", "guest", "/")
    >>> from celery.execute import send_task
    >>> r = send_task("celery.ping", args=(), kwargs={}, connection=conn)
    >>> from celery.backends.amqp import AMQPBackend
    >>> r.backend = AMQPBackend(connection=conn)
    >>> r.get()
    'pong'
    
  • The following deprecated settings has been removed (as scheduled by the deprecation timeline):

    Setting name Replace with
    CELERY_AMQP_CONSUMER_QUEUES CELERY_QUEUES
    CELERY_AMQP_EXCHANGE CELERY_DEFAULT_EXCHANGE
    CELERY_AMQP_EXCHANGE_TYPE CELERY_DEFAULT_EXCHANGE_TYPE
    CELERY_AMQP_CONSUMER_ROUTING_KEY CELERY_QUEUES
    CELERY_AMQP_PUBLISHER_ROUTING_KEY CELERY_DEFAULT_ROUTING_KEY
  • The celery.task.rest module has been removed, use celery.task.http instead (as scheduled by the deprecation timeline).

  • It’s no longer allowed to skip the class name in loader names. (as scheduled by the deprecation timeline):

    Assuming the implicit Loader class name is no longer supported, if you use e.g.:

    CELERY_LOADER = "myapp.loaders"
    

    You need to include the loader class name, like this:

    CELERY_LOADER = "myapp.loaders.Loader"
    
  • CELERY_TASK_RESULT_EXPIRES now defaults to 1 day.

    Previous default setting was to expire in 5 days.

  • AMQP backend: Don’t use different values for auto_delete.

    This bug became visible with RabbitMQ 1.8.0, which no longer allows conflicting declarations for the auto_delete and durable settings.

    If you’ve already used celery with this backend chances are you have to delete the previous declaration:

    $ camqadm exchange.delete celeryresults
  • Now uses pickle instead of cPickle on Python versions <= 2.5

    cPickle is broken in Python <= 2.5.

    It unsafely and incorrectly uses relative instead of absolute imports, so e.g.:

    exceptions.KeyError
    

    becomes:

    celery.exceptions.KeyError
    

    Your best choice is to upgrade to Python 2.6, as while the pure pickle version has worse performance, it is the only safe option for older Python versions.

News

  • celeryev: Curses Celery Monitor and Event Viewer.

    This is a simple monitor allowing you to see what tasks are executing in real-time and investigate tracebacks and results of ready tasks. It also enables you to set new rate limits and revoke tasks.

    Screenshot:

    _images/celeryevshotsm.jpg

    If you run celeryev with the -d switch it will act as an event dumper, simply dumping the events it receives to standard out:

    $ celeryev -d
    -> celeryev: starting capture...
    casper.local [2010-06-04 10:42:07.020000] heartbeat
    casper.local [2010-06-04 10:42:14.750000] task received:
        tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={}
        eta=2010-06-04T10:42:16.669290, retries=0
    casper.local [2010-06-04 10:42:17.230000] task started
        tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={}
    casper.local [2010-06-04 10:42:17.960000] task succeeded:
        tasks.add(61a68756-27f4-4879-b816-3cf815672b0e)
        args=[2, 2] kwargs={} result=4, runtime=0.782663106918
    
    The fields here are, in order: *sender hostname*, *timestamp*, *event type* and
    *additional event fields*.
  • AMQP result backend: Now supports .ready(), .successful(), .result, .status, and even responds to changes in task state

  • New user guides:

  • celeryd: Standard out/error is now being redirected to the log file.

  • billiard has been moved back to the celery repository.

    Module name celery equivalent
    billiard.pool celery.concurrency.processes.pool
    billiard.serialization celery.serialization
    billiard.utils.functional celery.utils.functional

    The billiard distribution may be maintained, depending on interest.

  • now depends on carrot >= 0.10.5

  • now depends on pyparsing

  • celeryd: Added --purge as an alias to --discard.

  • celeryd: Ctrl+C (SIGINT) once does warm shutdown, hitting Ctrl+C twice forces termination.

  • Added support for using complex crontab-expressions in periodic tasks. For example, you can now use:

    >>> crontab(minute="*/15")
    

    or even:

    >>> crontab(minute="*/30", hour="8-17,1-2", day_of_week="thu-fri")
    

    See Periodic Tasks.

  • celeryd: Now waits for available pool processes before applying new tasks to the pool.

    This means it doesn’t have to wait for dozens of tasks to finish at shutdown because it has applied prefetched tasks without having any pool processes available to immediately accept them.

    See issue #122.

  • New built-in way to do task callbacks using subtask.

    See Sets of tasks, Subtasks and Callbacks for more information.

  • TaskSets can now contain several types of tasks.

    TaskSet has been refactored to use a new syntax, please see Sets of tasks, Subtasks and Callbacks for more information.

    The previous syntax is still supported, but will be deprecated in version 1.4.

  • TaskSet failed() result was incorrect.

    See issue #132.

  • Now creates different loggers per task class.

    See issue #129.

  • Missing queue definitions are now created automatically.

    You can disable this using the CELERY_CREATE_MISSING_QUEUES setting.

    The missing queues are created with the following options:

    CELERY_QUEUES[name] = {"exchange": name,
                           "exchange_type": "direct",
                           "routing_key": "name}

    This feature is added for easily setting up routing using the -Q option to celeryd:

    $ celeryd -Q video, image

    See the new routing section of the User Guide for more information: Routing Tasks.

  • New Task option: Task.queue

    If set, message options will be taken from the corresponding entry in CELERY_QUEUES. exchange, exchange_type and routing_key will be ignored

  • Added support for task soft and hard time limits.

    New settings added:

    • CELERYD_TASK_TIME_LIMIT

      Hard time limit. The worker processing the task will be killed and replaced with a new one when this is exceeded.

    • CELERYD_SOFT_TASK_TIME_LIMIT

      Soft time limit. The celery.exceptions.SoftTimeLimitExceeded exception will be raised when this is exceeded. The task can catch this to e.g. clean up before the hard time limit comes.

    New command line arguments to celeryd added: --time-limit and --soft-time-limit.

    What’s left?

    This won’t work on platforms not supporting signals (and specifically the SIGUSR1 signal) yet. So an alternative the ability to disable the feature all together on nonconforming platforms must be implemented.

    Also when the hard time limit is exceeded, the task result should be a TimeLimitExceeded exception.

  • Test suite is now passing without a running broker, using the carrot in-memory backend.

  • Log output is now available in colors.

    Log level Color
    DEBUG Blue
    WARNING Yellow
    CRITICAL Magenta
    ERROR Red

    This is only enabled when the log output is a tty. You can explicitly enable/disable this feature using the CELERYD_LOG_COLOR setting.

  • Added support for task router classes (like the django multi-db routers)

    This is a single, or a list of routers to traverse when sending tasks. Dictionaries in this list converts to a celery.routes.MapRoute instance.

    Examples:

    >>> CELERY_ROUTES = {"celery.ping": "default",
                         "mytasks.add": "cpu-bound",
                         "video.encode": {
                             "queue": "video",
                             "exchange": "media"
                             "routing_key": "media.video.encode"}}
    
    >>> CELERY_ROUTES = ("myapp.tasks.Router",
                         {"celery.ping": "default})
    

    Where myapp.tasks.Router could be:

    class Router(object):
    
        def route_for_task(self, task, args=None, kwargs=None):
            if task == "celery.ping":
                return "default"
    

    route_for_task may return a string or a dict. A string then means it’s a queue name in CELERY_QUEUES, a dict means it’s a custom route.

    When sending tasks, the routers are consulted in order. The first router that doesn’t return None is the route to use. The message options is then merged with the found route settings, where the routers settings have priority.

    Example if apply_async() has these arguments:

    >>> Task.apply_async(immediate=False, exchange="video",
    ...                  routing_key="video.compress")
    

    and a router returns:

    {"immediate": True,
     "exchange": "urgent"}
    

    the final message options will be:

    immediate=True, exchange="urgent", routing_key="video.compress"
    

    (and any default message options defined in the Task class)

  • New Task handler called after the task returns: after_return().

  • ExceptionInfo now passed to

    on_retry()/ on_failure() as einfo keyword argument.

  • celeryd: Added CELERYD_MAX_TASKS_PER_CHILD / --maxtasksperchild

    Defines the maximum number of tasks a pool worker can process before the process is terminated and replaced by a new one.

  • Revoked tasks now marked with state REVOKED, and result.get() will now raise TaskRevokedError.

  • celery.task.control.ping() now works as expected.

  • apply(throw=True) / CELERY_EAGER_PROPAGATES_EXCEPTIONS: Makes eager execution re-raise task errors.

  • New signal: worker_process_init: Sent inside the pool worker process at init.

  • celeryd -Q option: Ability to specify list of queues to use, disabling other configured queues.

    For example, if CELERY_QUEUES defines four queues: image, video, data and default, the following command would make celeryd only consume from the image and video queues:

    $ celeryd -Q image,video
  • celeryd: New return value for the revoke control command:

    Now returns:

    {"ok": "task $id revoked"}
    

    instead of True.

  • celeryd: Can now enable/disable events using remote control

    Example usage:

    >>> from celery.task.control import broadcast
    >>> broadcast("enable_events")
    >>> broadcast("disable_events")
    
  • Removed top-level tests directory. Test config now in celery.tests.config

    This means running the unit tests doesn’t require any special setup. celery/tests/__init__ now configures the CELERY_CONFIG_MODULE and CELERY_LOADER environment variables, so when nosetests imports that, the unit test environment is all set up.

    Before you run the tests you need to install the test requirements:

    $ pip install -r contrib/requirements/test.txt

    Running all tests:

    $ nosetests

    Specifying the tests to run:

    $ nosetests celery.tests.test_task

    Producing HTML coverage:

    $ nosetests --with-coverage3

    The coverage output is then located in celery/tests/cover/index.html.

  • celeryd: New option --version: Dump version info and exit.

  • celeryd-multi: Tool for shell scripts to start multiple workers.

Some examples:

# Advanced example with 10 workers:
#   * Three of the workers processes the images and video queue
#   * Two of the workers processes the data queue with loglevel DEBUG
#   * the rest processes the default' queue.
$ celeryd-multi start 10 -l INFO -Q:1-3 images,video -Q:4,5:data
    -Q default -L:4,5 DEBUG

# get commands to start 10 workers, with 3 processes each
$ celeryd-multi start 3 -c 3
celeryd -n celeryd1.myhost -c 3
celeryd -n celeryd2.myhost -c 3
celeryd- n celeryd3.myhost -c 3

# start 3 named workers
$ celeryd-multi start image video data -c 3
celeryd -n image.myhost -c 3
celeryd -n video.myhost -c 3
celeryd -n data.myhost -c 3

# specify custom hostname
$ celeryd-multi start 2 -n worker.example.com -c 3
celeryd -n celeryd1.worker.example.com -c 3
celeryd -n celeryd2.worker.example.com -c 3

# Additionl options are added to each celeryd',
# but you can also modify the options for ranges of or single workers

# 3 workers: Two with 3 processes, and one with 10 processes.
$ celeryd-multi start 3 -c 3 -c:1 10
celeryd -n celeryd1.myhost -c 10
celeryd -n celeryd2.myhost -c 3
celeryd -n celeryd3.myhost -c 3

# can also specify options for named workers
$ celeryd-multi start image video data -c 3 -c:image 10
celeryd -n image.myhost -c 10
celeryd -n video.myhost -c 3
celeryd -n data.myhost -c 3

# ranges and lists of workers in options is also allowed:
# (-c:1-3 can also be written as -c:1,2,3)
$ celeryd-multi start 5 -c 3  -c:1-3 10
celeryd-multi -n celeryd1.myhost -c 10
celeryd-multi -n celeryd2.myhost -c 10
celeryd-multi -n celeryd3.myhost -c 10
celeryd-multi -n celeryd4.myhost -c 3
celeryd-multi -n celeryd5.myhost -c 3

# lists also works with named workers
$ celeryd-multi start foo bar baz xuzzy -c 3 -c:foo,bar,baz 10
celeryd-multi -n foo.myhost -c 10
celeryd-multi -n bar.myhost -c 10
celeryd-multi -n baz.myhost -c 10
celeryd-multi -n xuzzy.myhost -c 3
  • The worker now calls the result backends process_cleanup method after task execution instead of before.
  • AMQP result backend now supports Pika.

1.0.6

release-date:2010-06-30 09:57 A.M CEST
  • RabbitMQ 1.8.0 has extended their exchange equivalence tests to include auto_delete and durable. This broke the AMQP backend.

    If you’ve already used the AMQP backend this means you have to delete the previous definitions:

    $ camqadm exchange.delete celeryresults

    or:

    $ python manage.py camqadm exchange.delete celeryresults

1.0.5

release-date:2010-06-01 02:36 P.M CEST

Critical

  • SIGINT/Ctrl+C killed the pool, abruptly terminating the currently executing tasks.

    Fixed by making the pool worker processes ignore SIGINT.

  • Should not close the consumers before the pool is terminated, just cancel the consumers.

    See issue #122.

  • Now depends on billiard >= 0.3.1

  • celeryd: Previously exceptions raised by worker components could stall startup, now it correctly logs the exceptions and shuts down.

  • celeryd: Prefetch counts was set too late. QoS is now set as early as possible, so celeryd can’t slurp in all the messages at start-up.

Changes

  • celery.contrib.abortable: Abortable tasks.

    Tasks that defines steps of execution, the task can then be aborted after each step has completed.

  • EventDispatcher: No longer creates AMQP channel if events are disabled

  • Added required RPM package names under [bdist_rpm] section, to support building RPMs from the sources using setup.py

  • Running unit tests: NOSE_VERBOSE environment var now enables verbose output from Nose.

  • celery.execute.apply(): Pass log file/log level arguments as task kwargs.

    See issue #110.

  • celery.execute.apply: Should return exception, not ExceptionInfo on error.

    See issue #111.

  • Added new entries to the FAQs:

    • Should I use retry or acks_late?
    • Can I execute a task by name?

1.0.4

release-date:2010-05-31 09:54 A.M CEST
  • Changelog merged with 1.0.5 as the release was never announced.

1.0.3

release-date:2010-05-15 03:00 P.M CEST

Important notes

  • Messages are now acknowledged just before the task function is executed.

    This is the behavior we’ve wanted all along, but couldn’t have because of limitations in the multiprocessing module. The previous behavior was not good, and the situation worsened with the release of 1.0.1, so this change will definitely improve reliability, performance and operations in general.

    For more information please see http://bit.ly/9hom6T

  • Database result backend: result now explicitly sets null=True as django-picklefield version 0.1.5 changed the default behavior right under our noses :(

    See: http://bit.ly/d5OwMr

    This means those who created their celery tables (via syncdb or celeryinit) with picklefield versions >= 0.1.5 has to alter their tables to allow the result field to be NULL manually.

    MySQL:

    ALTER TABLE celery_taskmeta MODIFY result TEXT NULL

    PostgreSQL:

    ALTER TABLE celery_taskmeta ALTER COLUMN result DROP NOT NULL
  • Removed Task.rate_limit_queue_type, as it was not really useful and made it harder to refactor some parts.

  • Now depends on carrot >= 0.10.4

  • Now depends on billiard >= 0.3.0

News

  • AMQP backend: Added timeout support for result.get() / result.wait().

  • New task option: Task.acks_late (default: CELERY_ACKS_LATE)

    Late ack means the task messages will be acknowledged after the task has been executed, not just before, which is the default behavior.

    Note

    This means the tasks may be executed twice if the worker crashes in mid-execution. Not acceptable for most applications, but desirable for others.

  • Added crontab-like scheduling to periodic tasks.

    Like a cron job, you can specify units of time of when you would like the task to execute. While not a full implementation of cron’s features, it should provide a fair degree of common scheduling needs.

    You can specify a minute (0-59), an hour (0-23), and/or a day of the week (0-6 where 0 is Sunday, or by names: sun, mon, tue, wed, thu, fri, sat).

    Examples:

    from celery.task.schedules import crontab
    from celery.decorators import periodic_task
    
    @periodic_task(run_every=crontab(hour=7, minute=30))
    def every_morning():
        print("Runs every morning at 7:30a.m")
    
    @periodic_task(run_every=crontab(hour=7, minute=30, day_of_week="mon"))
    def every_monday_morning():
        print("Run every monday morning at 7:30a.m")
    
    @periodic_task(run_every=crontab(minutes=30))
    def every_hour():
        print("Runs every hour on the clock. e.g. 1:30, 2:30, 3:30 etc.")
    

    Note

    This a late addition. While we have unittests, due to the nature of this feature we haven’t been able to completely test this in practice, so consider this experimental.

  • TaskPool.apply_async: Now supports the accept_callback argument.

  • apply_async: Now raises ValueError if task args is not a list, or kwargs is not a tuple (Issue #95).

  • Task.max_retries can now be None, which means it will retry forever.

  • Celerybeat: Now reuses the same connection when publishing large sets of tasks.

  • Modified the task locking example in the documentation to use cache.add for atomic locking.

  • Added experimental support for a started status on tasks.

    If Task.track_started is enabled the task will report its status as “started” when the task is executed by a worker.

    The default value is False as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a “started” status can be useful for when there are long running tasks and there is a need to report which task is currently running.

    The global default can be overridden by the CELERY_TRACK_STARTED setting.

  • User Guide: New section Tips and Best Practices.

    Contributions welcome!

Remote control commands

  • Remote control commands can now send replies back to the caller.

    Existing commands has been improved to send replies, and the client interface in celery.task.control has new keyword arguments: reply, timeout and limit. Where reply means it will wait for replies, timeout is the time in seconds to stop waiting for replies, and limit is the maximum number of replies to get.

    By default, it will wait for as many replies as possible for one second.

    • rate_limit(task_name, destination=all, reply=False, timeout=1, limit=0)

      Worker returns {"ok": message} on success, or {"failure": message} on failure.

      >>> from celery.task.control import rate_limit
      >>> rate_limit("tasks.add", "10/s", reply=True)
      [{'worker1': {'ok': 'new rate limit set successfully'}},
       {'worker2': {'ok': 'new rate limit set successfully'}}]
      
    • ping(destination=all, reply=False, timeout=1, limit=0)

      Worker returns the simple message "pong".

      >>> from celery.task.control import ping
      >>> ping(reply=True)
      [{'worker1': 'pong'},
       {'worker2': 'pong'},
      
    • revoke(destination=all, reply=False, timeout=1, limit=0)

      Worker simply returns True.

      >>> from celery.task.control import revoke
      >>> revoke("419e46eb-cf6a-4271-86a8-442b7124132c", reply=True)
      [{'worker1': True},
       {'worker2'; True}]
      
  • You can now add your own remote control commands!

    Remote control commands are functions registered in the command registry. Registering a command is done using celery.worker.control.Panel.register():

    from celery.task.control import Panel
    
    @Panel.register
    def reset_broker_connection(panel, **kwargs):
        panel.listener.reset_connection()
        return {"ok": "connection re-established"}
    

    With this module imported in the worker, you can launch the command using celery.task.control.broadcast:

    >>> from celery.task.control import broadcast
    >>> broadcast("reset_broker_connection", reply=True)
    [{'worker1': {'ok': 'connection re-established'},
     {'worker2': {'ok': 'connection re-established'}}]
    

    TIP You can choose the worker(s) to receive the command by using the destination argument:

    >>> broadcast("reset_broker_connection", destination=["worker1"])
    [{'worker1': {'ok': 'connection re-established'}]
    
  • New remote control command: dump_reserved

    Dumps tasks reserved by the worker, waiting to be executed:

    >>> from celery.task.control import broadcast
    >>> broadcast("dump_reserved", reply=True)
    [{'myworker1': [<TaskRequest ....>]}]
    
  • New remote control command: dump_schedule

    Dumps the workers currently registered ETA schedule. These are tasks with an eta (or countdown) argument waiting to be executed by the worker.

    >>> from celery.task.control import broadcast
    >>> broadcast("dump_schedule", reply=True)
    [{'w1': []},
     {'w3': []},
     {'w2': ['0. 2010-05-12 11:06:00 pri0 <TaskRequest
                {name:"opalfeeds.tasks.refresh_feed_slice",
                 id:"95b45760-4e73-4ce8-8eac-f100aa80273a",
                 args:"(<Feeds freq_max:3600 freq_min:60
                               start:2184.0 stop:3276.0>,)",
                 kwargs:"{'page': 2}"}>']},
     {'w4': ['0. 2010-05-12 11:00:00 pri0 <TaskRequest
                {name:"opalfeeds.tasks.refresh_feed_slice",
                 id:"c053480b-58fb-422f-ae68-8d30a464edfe",
                 args:"(<Feeds freq_max:3600 freq_min:60
                               start:1092.0 stop:2184.0>,)",
                 kwargs:"{\'page\': 1}"}>',
            '1. 2010-05-12 11:12:00 pri0 <TaskRequest
                {name:"opalfeeds.tasks.refresh_feed_slice",
                 id:"ab8bc59e-6cf8-44b8-88d0-f1af57789758",
                 args:"(<Feeds freq_max:3600 freq_min:60
                               start:3276.0 stop:4365>,)",
                 kwargs:"{\'page\': 3}"}>']}]
    

Fixes

  • Mediator thread no longer blocks for more than 1 second.

    With rate limits enabled and when there was a lot of remaining time, the mediator thread could block shutdown (and potentially block other jobs from coming in).

  • Remote rate limits was not properly applied (Issue #98).

  • Now handles exceptions with Unicode messages correctly in TaskRequest.on_failure.

  • Database backend: TaskMeta.result: default value should be None not empty string.

1.0.2

release-date:2010-03-31 12:50 P.M CET
  • Deprecated: CELERY_BACKEND, please use CELERY_RESULT_BACKEND instead.

  • We now use a custom logger in tasks. This logger supports task magic keyword arguments in formats.

    The default format for tasks (CELERYD_TASK_LOG_FORMAT) now includes the id and the name of tasks so the origin of task log messages can easily be traced.

    Example output::
    [2010-03-25 13:11:20,317: INFO/PoolWorker-1]

    [tasks.add(a6e1c5ad-60d9-42a0-8b24-9e39363125a4)] Hello from add

    To revert to the previous behavior you can set:

    CELERYD_TASK_LOG_FORMAT = """
        [%(asctime)s: %(levelname)s/%(processName)s] %(message)s
    """.strip()
    
  • Unit tests: Don’t disable the django test database tear down, instead fixed the underlying issue which was caused by modifications to the DATABASE_NAME setting (Issue #82).

  • Django Loader: New config CELERY_DB_REUSE_MAX (max number of tasks to reuse the same database connection)

    The default is to use a new connection for every task. We would very much like to reuse the connection, but a safe number of reuses is not known, and we don’t have any way to handle the errors that might happen, which may even be database dependent.

    See: http://bit.ly/94fwdd

  • celeryd: The worker components are now configurable: CELERYD_POOL, CELERYD_LISTENER, CELERYD_MEDIATOR, and CELERYD_ETA_SCHEDULER.

    The default configuration is as follows:

    CELERYD_POOL = "celery.concurrency.processes.TaskPool"
    CELERYD_MEDIATOR = "celery.worker.controllers.Mediator"
    CELERYD_ETA_SCHEDULER = "celery.worker.controllers.ScheduleController"
    CELERYD_LISTENER = "celery.worker.listener.CarrotListener"
    

    The CELERYD_POOL setting makes it easy to swap out the multiprocessing pool with a threaded pool, or how about a twisted/eventlet pool?

    Consider the competition for the first pool plug-in started!

  • Debian init scripts: Use -a not && (Issue #82).

  • Debian init scripts: Now always preserves $CELERYD_OPTS from the /etc/default/celeryd and /etc/default/celerybeat.

  • celery.beat.Scheduler: Fixed a bug where the schedule was not properly flushed to disk if the schedule had not been properly initialized.

  • celerybeat: Now syncs the schedule to disk when receiving the SIGTERM and SIGINT signals.

  • Control commands: Make sure keywords arguments are not in Unicode.

  • ETA scheduler: Was missing a logger object, so the scheduler crashed when trying to log that a task had been revoked.

  • management.commands.camqadm: Fixed typo camqpadm -> camqadm (Issue #83).

  • PeriodicTask.delta_resolution: Was not working for days and hours, now fixed by rounding to the nearest day/hour.

  • Fixed a potential infinite loop in BaseAsyncResult.__eq__, although there is no evidence that it has ever been triggered.

  • celeryd: Now handles messages with encoding problems by acking them and emitting an error message.

1.0.1

release-date:2010-02-24 07:05 P.M CET
  • Tasks are now acknowledged early instead of late.

    This is done because messages can only be acknowledged within the same connection channel, so if the connection is lost we would have to refetch the message again to acknowledge it.

    This might or might not affect you, but mostly those running tasks with a really long execution time are affected, as all tasks that has made it all the way into the pool needs to be executed before the worker can safely terminate (this is at most the number of pool workers, multiplied by the CELERYD_PREFETCH_MULTIPLIER setting.)

    We multiply the prefetch count by default to increase the performance at times with bursts of tasks with a short execution time. If this doesn’t apply to your use case, you should be able to set the prefetch multiplier to zero, without sacrificing performance.

    Note

    A patch to multiprocessing is currently being worked on, this patch would enable us to use a better solution, and is scheduled for inclusion in the 2.0.0 release.

  • celeryd now shutdowns cleanly when receiving the SIGTERM signal.

  • celeryd now does a cold shutdown if the SIGINT signal is received (Ctrl+C), this means it tries to terminate as soon as possible.

  • Caching of results now moved to the base backend classes, so no need to implement this functionality in the base classes.

  • Caches are now also limited in size, so their memory usage doesn’t grow out of control.

    You can set the maximum number of results the cache can hold using the CELERY_MAX_CACHED_RESULTS setting (the default is five thousand results). In addition, you can refetch already retrieved results using backend.reload_task_result + backend.reload_taskset_result (that’s for those who want to send results incrementally).

  • celeryd now works on Windows again.

    Warning

    If you’re using Celery with Django, you can’t use project.settings as the settings module name, but the following should work:

    $ python manage.py celeryd --settings=settings
  • Execution: .messaging.TaskPublisher.send_task now incorporates all the functionality apply_async previously did.

    Like converting countdowns to eta, so celery.execute.apply_async() is now simply a convenient front-end to celery.messaging.TaskPublisher.send_task(), using the task classes default options.

    Also celery.execute.send_task() has been introduced, which can apply tasks using just the task name (useful if the client does not have the destination task in its task registry).

    Example:

    >>> from celery.execute import send_task
    >>> result = send_task("celery.ping", args=[], kwargs={})
    >>> result.get()
    'pong'
    
  • camqadm: This is a new utility for command line access to the AMQP API.

    Excellent for deleting queues/bindings/exchanges, experimentation and testing:

    $ camqadm
    1> help

    Gives an interactive shell, type help for a list of commands.

    When using Django, use the management command instead:

    $ python manage.py camqadm
    1> help
  • Redis result backend: To conform to recent Redis API changes, the following settings has been deprecated:

    • REDIS_TIMEOUT
    • REDIS_CONNECT_RETRY

    These will emit a DeprecationWarning if used.

    A REDIS_PASSWORD setting has been added, so you can use the new simple authentication mechanism in Redis.

  • The redis result backend no longer calls SAVE when disconnecting, as this is apparently better handled by Redis itself.

  • If settings.DEBUG is on, celeryd now warns about the possible memory leak it can result in.

  • The ETA scheduler now sleeps at most two seconds between iterations.

  • The ETA scheduler now deletes any revoked tasks it might encounter.

    As revokes are not yet persistent, this is done to make sure the task is revoked even though it’s currently being hold because its eta is e.g. a week into the future.

  • The task_id argument is now respected even if the task is executed eagerly (either using apply, or CELERY_ALWAYS_EAGER).

  • The internal queues are now cleared if the connection is reset.

  • New magic keyword argument: delivery_info.

    Used by retry() to resend the task to its original destination using the same exchange/routing_key.

  • Events: Fields was not passed by .send() (fixes the UUID key errors in celerymon)

  • Added --schedule/-s option to celeryd, so it is possible to specify a custom schedule filename when using an embedded celerybeat server (the -B/--beat) option.

  • Better Python 2.4 compatibility. The test suite now passes.

  • task decorators: Now preserve docstring as cls.__doc__, (was previously copied to cls.run.__doc__)

  • The testproj directory has been renamed to tests and we’re now using nose + django-nose for test discovery, and unittest2 for test cases.

  • New pip requirements files available in contrib/requirements.

  • TaskPublisher: Declarations are now done once (per process).

  • Added Task.delivery_mode and the CELERY_DEFAULT_DELIVERY_MODE setting.

    These can be used to mark messages non-persistent (i.e. so they are lost if the broker is restarted).

  • Now have our own ImproperlyConfigured exception, instead of using the Django one.

  • Improvements to the Debian init scripts: Shows an error if the program is not executable. Does not modify CELERYD when using django with virtualenv.

1.0.0

release-date:2010-02-10 04:00 P.M CET

Backward incompatible changes

  • Celery does not support detaching anymore, so you have to use the tools available on your platform, or something like Supervisord to make celeryd/celerybeat/celerymon into background processes.

    We’ve had too many problems with celeryd daemonizing itself, so it was decided it has to be removed. Example startup scripts has been added to contrib/:

    • Debian, Ubuntu, (start-stop-daemon)

      contrib/debian/init.d/celeryd contrib/debian/init.d/celerybeat

    • Mac OS X launchd

      contrib/mac/org.celeryq.celeryd.plist contrib/mac/org.celeryq.celerybeat.plist contrib/mac/org.celeryq.celerymon.plist

    • Supervisord (http://supervisord.org)

      contrib/supervisord/supervisord.conf

    In addition to --detach, the following program arguments has been removed: --uid, --gid, --workdir, --chroot, --pidfile, --umask. All good daemonization tools should support equivalent functionality, so don’t worry.

    Also the following configuration keys has been removed: CELERYD_PID_FILE, CELERYBEAT_PID_FILE, CELERYMON_PID_FILE.

  • Default celeryd loglevel is now WARN, to enable the previous log level start celeryd with --loglevel=INFO.

  • Tasks are automatically registered.

    This means you no longer have to register your tasks manually. You don’t have to change your old code right away, as it doesn’t matter if a task is registered twice.

    If you don’t want your task to be automatically registered you can set the abstract attribute

    class MyTask(Task):
        abstract = True
    

    By using abstract only tasks subclassing this task will be automatically registered (this works like the Django ORM).

    If you don’t want subclasses to be registered either, you can set the autoregister attribute to False.

    Incidentally, this change also fixes the problems with automatic name assignment and relative imports. So you also don’t have to specify a task name anymore if you use relative imports.

  • You can no longer use regular functions as tasks.

    This change was added because it makes the internals a lot more clean and simple. However, you can now turn functions into tasks by using the @task decorator:

    from celery.decorators import task
    
    @task
    def add(x, y):
        return x + y
    

    See also

    Tasks for more information about the task decorators.

  • The periodic task system has been rewritten to a centralized solution.

    This means celeryd no longer schedules periodic tasks by default, but a new daemon has been introduced: celerybeat.

    To launch the periodic task scheduler you have to run celerybeat:

    $ celerybeat

    Make sure this is running on one server only, if you run it twice, all periodic tasks will also be executed twice.

    If you only have one worker server you can embed it into celeryd like this:

    $ celeryd --beat # Embed celerybeat in celeryd.
  • The supervisor has been removed.

    This means the -S and --supervised options to celeryd is no longer supported. Please use something like http://supervisord.org instead.

  • TaskSet.join has been removed, use TaskSetResult.join instead.

  • The task status "DONE" has been renamed to “SUCCESS”.

  • AsyncResult.is_done has been removed, use AsyncResult.successful instead.

  • The worker no longer stores errors if Task.ignore_result is set, to revert to the previous behaviour set CELERY_STORE_ERRORS_EVEN_IF_IGNORED to True.

  • The statistics functionality has been removed in favor of events, so the -S and –statistics` switches has been removed.

  • The module celery.task.strategy has been removed.

  • celery.discovery has been removed, and it’s autodiscover function is now in celery.loaders.djangoapp. Reason: Internal API.

  • The CELERY_LOADER environment variable now needs loader class name in addition to module name,

    E.g. where you previously had: “celery.loaders.default”, you now need “celery.loaders.default.Loader”, using the previous syntax will result in a DeprecationWarning.

  • Detecting the loader is now lazy, and so is not done when importing celery.loaders.

    To make this happen celery.loaders.settings has been renamed to load_settings and is now a function returning the settings object. celery.loaders.current_loader is now also a function, returning the current loader.

    So:

    loader = current_loader
    

    needs to be changed to:

    loader = current_loader()
    

Deprecations

  • The following configuration variables has been renamed and will be deprecated in v2.0:

    • CELERYD_DAEMON_LOG_FORMAT -> CELERYD_LOG_FORMAT
    • CELERYD_DAEMON_LOG_LEVEL -> CELERYD_LOG_LEVEL
    • CELERY_AMQP_CONNECTION_TIMEOUT -> CELERY_BROKER_CONNECTION_TIMEOUT
    • CELERY_AMQP_CONNECTION_RETRY -> CELERY_BROKER_CONNECTION_RETRY
    • CELERY_AMQP_CONNECTION_MAX_RETRIES -> CELERY_BROKER_CONNECTION_MAX_RETRIES
    • SEND_CELERY_TASK_ERROR_EMAILS -> CELERY_SEND_TASK_ERROR_EMAILS
  • The public API names in celery.conf has also changed to a consistent naming scheme.

  • We now support consuming from an arbitrary number of queues.

    To do this we had to rename the configuration syntax. If you use any of the custom AMQP routing options (queue/exchange/routing_key, etc.), you should read the new FAQ entry: http://bit.ly/aiWoH.

    The previous syntax is deprecated and scheduled for removal in v2.0.

  • TaskSet.run has been renamed to TaskSet.apply_async.

    TaskSet.run has now been deprecated, and is scheduled for removal in v2.0.

News

  • Rate limiting support (per task type, or globally).

  • New periodic task system.

  • Automatic registration.

  • New cool task decorator syntax.

  • celeryd now sends events if enabled with the -E argument.

    Excellent for monitoring tools, one is already in the making (http://github.com/ask/celerymon).

    Current events include: worker-heartbeat, task-[received/succeeded/failed/retried], worker-online, worker-offline.

  • You can now delete (revoke) tasks that has already been applied.

  • You can now set the hostname celeryd identifies as using the --hostname argument.

  • Cache backend now respects the CELERY_TASK_RESULT_EXPIRES setting.

  • Message format has been standardized and now uses ISO-8601 format for dates instead of datetime.

  • celeryd now responds to the SIGHUP signal by restarting itself.

  • Periodic tasks are now scheduled on the clock.

    I.e. timedelta(hours=1) means every hour at :00 minutes, not every hour from the server starts. To revert to the previous behaviour you can set PeriodicTask.relative = True.

  • Now supports passing execute options to a TaskSets list of args, e.g.:

    >>> ts = TaskSet(add, [([2, 2], {}, {"countdown": 1}),
    ...                   ([4, 4], {}, {"countdown": 2}),
    ...                   ([8, 8], {}, {"countdown": 3})])
    >>> ts.run()
    
  • Got a 3x performance gain by setting the prefetch count to four times the concurrency, (from an average task round-trip of 0.1s to 0.03s!).

    A new setting has been added: CELERYD_PREFETCH_MULTIPLIER, which is set to 4 by default.

  • Improved support for webhook tasks.

    celery.task.rest is now deprecated, replaced with the new and shiny celery.task.http. With more reflective names, sensible interface, and it’s possible to override the methods used to perform HTTP requests.

  • The results of task sets are now cached by storing it in the result backend.

Changes

  • Now depends on carrot >= 0.8.1

  • New dependencies: billiard, python-dateutil, django-picklefield

  • No longer depends on python-daemon

  • The uuid distribution is added as a dependency when running Python 2.4.

  • Now remembers the previously detected loader by keeping it in the CELERY_LOADER environment variable.

    This may help on windows where fork emulation is used.

  • ETA no longer sends datetime objects, but uses ISO 8601 date format in a string for better compatibility with other platforms.

  • No longer sends error mails for retried tasks.

  • Task can now override the backend used to store results.

  • Refactored the ExecuteWrapper, apply and CELERY_ALWAYS_EAGER now also executes the task callbacks and signals.

  • Now using a proper scheduler for the tasks with an ETA.

    This means waiting eta tasks are sorted by time, so we don’t have to poll the whole list all the time.

  • Now also imports modules listed in CELERY_IMPORTS when running with django (as documented).

  • Log level for stdout/stderr changed from INFO to ERROR

  • ImportErrors are now properly propagated when autodiscovering tasks.

  • You can now use celery.messaging.establish_connection to establish a connection to the broker.

  • When running as a separate service the periodic task scheduler does some smart moves to not poll too regularly.

    If you need faster poll times you can lower the value of CELERYBEAT_MAX_LOOP_INTERVAL.

  • You can now change periodic task intervals at runtime, by making run_every a property, or subclassing PeriodicTask.is_due.

  • The worker now supports control commands enabled through the use of a broadcast queue, you can remotely revoke tasks or set the rate limit for a task type. See celery.task.control.

  • The services now sets informative process names (as shown in ps listings) if the setproctitle module is installed.

  • celery.exceptions.NotRegistered now inherits from KeyError, and TaskRegistry.__getitem__``+``pop raises NotRegistered instead

  • You can set the loader via the CELERY_LOADER environment variable.

  • You can now set CELERY_IGNORE_RESULT to ignore task results by default (if enabled, tasks doesn’t save results or errors to the backend used).

  • celeryd now correctly handles malformed messages by throwing away and acknowledging the message, instead of crashing.

Bugs

  • Fixed a race condition that could happen while storing task results in the database.

Documentation

  • Reference now split into two sections; API reference and internal module reference.

0.8.4

release-date:2010-02-05 01:52 P.M CEST
  • Now emits a warning if the –detach argument is used. –detach should not be used anymore, as it has several not easily fixed bugs related to it. Instead, use something like start-stop-daemon, Supervisord or launchd (os x).
  • Make sure logger class is process aware, even if running Python >= 2.6.
  • Error e-mails are not sent anymore when the task is retried.

0.8.3

release-date:2009-12-22 09:43 A.M CEST
  • Fixed a possible race condition that could happen when storing/querying task results using the database backend.
  • Now has console script entry points in the setup.py file, so tools like Buildout will correctly install the programs celeryd and celeryinit.

0.8.2

release-date:2009-11-20 03:40 P.M CEST
  • QOS Prefetch count was not applied properly, as it was set for every message received (which apparently behaves like, “receive one more”), instead of only set when our wanted value changed.

0.8.1

release-date:2009-11-16 05:21 P.M CEST

Very important note

This release (with carrot 0.8.0) enables AMQP QoS (quality of service), which means the workers will only receive as many messages as it can handle at a time. As with any release, you should test this version upgrade on your development servers before rolling it out to production!

Important changes

  • If you’re using Python < 2.6 and you use the multiprocessing backport, then multiprocessing version 2.6.2.1 is required.

  • All AMQP_* settings has been renamed to BROKER_*, and in addition AMQP_SERVER has been renamed to BROKER_HOST, so before where you had:

    AMQP_SERVER = "localhost"
    AMQP_PORT = 5678
    AMQP_USER = "myuser"
    AMQP_PASSWORD = "mypassword"
    AMQP_VHOST = "celery"
    

    You need to change that to:

    BROKER_HOST = "localhost"
    BROKER_PORT = 5678
    BROKER_USER = "myuser"
    BROKER_PASSWORD = "mypassword"
    BROKER_VHOST = "celery"
    
  • Custom carrot backends now need to include the backend class name, so before where you had:

    CARROT_BACKEND = "mycustom.backend.module"
    

    you need to change it to:

    CARROT_BACKEND = "mycustom.backend.module.Backend"
    

    where Backend is the class name. This is probably "Backend", as that was the previously implied name.

  • New version requirement for carrot: 0.8.0

Changes

  • Incorporated the multiprocessing backport patch that fixes the processName error.
  • Ignore the result of PeriodicTask’s by default.
  • Added a Redis result store backend
  • Allow /etc/default/celeryd to define additional options for the celeryd init script.
  • MongoDB periodic tasks issue when using different time than UTC fixed.
  • Windows specific: Negate test for available os.fork (thanks miracle2k)
  • Now tried to handle broken PID files.
  • Added a Django test runner to contrib that sets CELERY_ALWAYS_EAGER = True for testing with the database backend.
  • Added a CELERY_CACHE_BACKEND setting for using something other than the django-global cache backend.
  • Use custom implementation of functools.partial (curry) for Python 2.4 support (Probably still problems with running on 2.4, but it will eventually be supported)
  • Prepare exception to pickle when saving RETRY status for all backends.
  • SQLite no concurrency limit should only be effective if the database backend is used.

0.8.0

release-date:2009-09-22 03:06 P.M CEST

Backward incompatible changes

  • Add traceback to result value on failure.

    Note

    If you use the database backend you have to re-create the database table celery_taskmeta.

    Contact the Mailing list or IRC channel for help doing this.

  • Database tables are now only created if the database backend is used, so if you change back to the database backend at some point, be sure to initialize tables (django: syncdb, python: celeryinit).

    Note

    This is only applies if using Django version 1.1 or higher.

  • Now depends on carrot version 0.6.0.

  • Now depends on python-daemon 1.4.8

Important changes

  • Celery can now be used in pure Python (outside of a Django project).

    This means celery is no longer Django specific.

    For more information see the FAQ entry Is Celery for Django only?.

  • Celery now supports task retries.

    See Cookbook: Retrying Tasks for more information.

  • We now have an AMQP result store backend.

    It uses messages to publish task return value and status. And it’s incredibly fast!

    See issue #6 for more info!

  • AMQP QoS (prefetch count) implemented:

    This to not receive more messages than we can handle.

  • Now redirects stdout/stderr to the celeryd log file when detached

  • Now uses inspect.getargspec to only pass default arguments

    the task supports.

  • Add Task.on_success, .on_retry, .on_failure handlers
    See celery.task.base.Task.on_success(),

    celery.task.base.Task.on_retry(), celery.task.base.Task.on_failure(),

  • celery.utils.gen_unique_id: Workaround for

    http://bugs.python.org/issue4607

  • You can now customize what happens at worker start, at process init, etc.,

    by creating your own loaders. (see celery.loaders.default, celery.loaders.djangoapp, celery.loaders.)

  • Support for multiple AMQP exchanges and queues.

    This feature misses documentation and tests, so anyone interested is encouraged to improve this situation.

  • celeryd now survives a restart of the AMQP server!

    Automatically re-establish AMQP broker connection if it’s lost.

    New settings:

    • AMQP_CONNECTION_RETRY

      Set to True to enable connection retries.

    • AMQP_CONNECTION_MAX_RETRIES.

      Maximum number of restarts before we give up. Default: 100.

News

  • Fix an incompatibility between python-daemon and multiprocessing,

    which resulted in the [Errno 10] No child processes problem when detaching.

  • Fixed a possible DjangoUnicodeDecodeError being raised when saving pickled

    data to Django`s memcached cache backend.

  • Better Windows compatibility.

  • New version of the pickled field (taken from

    http://www.djangosnippets.org/snippets/513/)

  • New signals introduced: task_sent, task_prerun and

    task_postrun, see celery.signals for more information.

  • TaskSetResult.join caused TypeError when timeout=None.

    Thanks Jerzy Kozera. Closes #31

  • views.apply should return HttpResponse instance.

    Thanks to Jerzy Kozera. Closes #32

  • PeriodicTask: Save conversion of run_every from int

    to timedelta to the class attribute instead of on the instance.

  • Exceptions has been moved to celery.exceptions, but are still

    available in the previous module.

  • Try to rollback transaction and retry saving result if an error happens

    while setting task status with the database backend.

  • jail() refactored into celery.execute.ExecuteWrapper.

  • views.apply now correctly sets mime-type to “application/json”

  • views.task_status now returns exception if state is RETRY

  • views.task_status now returns traceback if state is FAILURE

    or RETRY

  • Documented default task arguments.

  • Add a sensible __repr__ to ExceptionInfo for easier debugging

  • Fix documentation typo .. import map -> .. import dmap.

    Thanks to mikedizon

0.6.0

release-date:2009-08-07 06:54 A.M CET

Important changes

  • Fixed a bug where tasks raising unpickleable exceptions crashed pool

    workers. So if you’ve had pool workers mysteriously disappearing, or problems with celeryd stopping working, this has been fixed in this version.

  • Fixed a race condition with periodic tasks.

  • The task pool is now supervised, so if a pool worker crashes,

    goes away or stops responding, it is automatically replaced with a new one.

  • Task.name is now automatically generated out of class module+name, e.g.

    "djangotwitter.tasks.UpdateStatusesTask". Very convenient. No idea why we didn’t do this before. Some documentation is updated to not manually specify a task name.

News

  • Tested with Django 1.1

  • New Tutorial: Creating a click counter using carrot and celery

  • Database entries for periodic tasks are now created at celeryd

    startup instead of for each check (which has been a forgotten TODO/XXX in the code for a long time)

  • New settings variable: CELERY_TASK_RESULT_EXPIRES

    Time (in seconds, or a datetime.timedelta object) for when after stored task results are deleted. For the moment this only works for the database backend.

  • celeryd now emits a debug log message for which periodic tasks

    has been launched.

  • The periodic task table is now locked for reading while getting

    periodic task status. (MySQL only so far, seeking patches for other engines)

  • A lot more debugging information is now available by turning on the

    DEBUG log level (–loglevel=DEBUG).

  • Functions/methods with a timeout argument now works correctly.

  • New: celery.strategy.even_time_distribution:

    With an iterator yielding task args, kwargs tuples, evenly distribute the processing of its tasks throughout the time window available.

  • Log message Unknown task ignored... now has log level ERROR

  • Log message "Got task from broker" is now emitted for all tasks, even if

    the task has an ETA (estimated time of arrival). Also the message now includes the ETA for the task (if any).

  • Acknowledgement now happens in the pool callback. Can’t do ack in the job

    target, as it’s not pickleable (can’t share AMQP connection, etc.)).

  • Added note about .delay hanging in README

  • Tests now passing in Django 1.1

  • Fixed discovery to make sure app is in INSTALLED_APPS

  • Previously overridden pool behavior (process reap, wait until pool worker

    available, etc.) is now handled by multiprocessing.Pool itself.

  • Convert statistics data to Unicode for use as kwargs. Thanks Lucy!

0.4.1

release-date:2009-07-02 01:42 P.M CET
  • Fixed a bug with parsing the message options (mandatory, routing_key, priority, immediate)

0.4.0

release-date:2009-07-01 07:29 P.M CET
  • Adds eager execution. celery.execute.apply`|`Task.apply executes the function blocking until the task is done, for API compatibility it returns an celery.result.EagerResult instance. You can configure celery to always run tasks locally by setting the CELERY_ALWAYS_EAGER setting to True.
  • Now depends on anyjson.
  • 99% coverage using python coverage 3.0.

0.3.20

release-date:2009-06-25 08:42 P.M CET
  • New arguments to apply_async (the advanced version of delay_task), countdown and eta;

    >>> # Run 10 seconds into the future.
    >>> res = apply_async(MyTask, countdown=10);
    
    >>> # Run 1 day from now
    >>> res = apply_async(MyTask,
    ...                   eta=datetime.now() + timedelta(days=1))
    
  • Now unlinks stale PID files

  • Lots of more tests.

  • Now compatible with carrot >= 0.5.0.

  • IMPORTANT The subtask_ids attribute on the TaskSetResult instance has been removed. To get this information instead use:

    >>> subtask_ids = [subtask.task_id for subtask in ts_res.subtasks]
    
  • Taskset.run() now respects extra message options from the task class.

  • Task: Add attribute ignore_result: Don’t store the status and return value. This means you can’t use the celery.result.AsyncResult to check if the task is done, or get its return value. Only use if you need the performance and is able live without these features. Any exceptions raised will store the return value/status as usual.

  • Task: Add attribute disable_error_emails to disable sending error emails for that task.

  • Should now work on Windows (although running in the background won’t work, so using the --detach argument results in an exception being raised.)

  • Added support for statistics for profiling and monitoring. To start sending statistics start celeryd with the --statistics option. Then after a while you can dump the results by running python manage.py celerystats. See celery.monitoring for more information.

  • The celery daemon can now be supervised (i.e. it is automatically restarted if it crashes). To use this start celeryd with the --supervised option (or alternatively -S).

  • views.apply: View applying a task. Example

    http://e.com/celery/apply/task_name/arg1/arg2//?kwarg1=a&kwarg2=b

    Warning

    Use with caution! Do not expose this URL to the public without first ensuring that your code is safe!

  • Refactored celery.task. It’s now split into three modules:

    • celery.task

      Contains apply_async, delay_task, discard_all, and task shortcuts, plus imports objects from celery.task.base and celery.task.builtins

    • celery.task.base

      Contains task base classes: Task, PeriodicTask, TaskSet, AsynchronousMapTask, ExecuteRemoteTask.

    • celery.task.builtins

      Built-in tasks: PingTask, DeleteExpiredTaskMetaTask.

0.3.7

release-date:2008-06-16 11:41 P.M CET
  • IMPORTANT Now uses AMQP`s basic.consume instead of basic.get. This means we’re no longer polling the broker for new messages.

  • IMPORTANT Default concurrency limit is now set to the number of CPUs available on the system.

  • IMPORTANT tasks.register: Renamed task_name argument to name, so

    >>> tasks.register(func, task_name="mytask")
    

    has to be replaced with:

    >>> tasks.register(func, name="mytask")
    
  • The daemon now correctly runs if the pidlock is stale.

  • Now compatible with carrot 0.4.5

  • Default AMQP connection timeout is now 4 seconds.

  • AsyncResult.read() was always returning True.

  • Only use README as long_description if the file exists so easy_install doesn’t break.

  • celery.view: JSON responses now properly set its mime-type.

  • apply_async now has a connection keyword argument so you can re-use the same AMQP connection if you want to execute more than one task.

  • Handle failures in task_status view such that it won’t throw 500s.

  • Fixed typo AMQP_SERVER in documentation to AMQP_HOST.

  • Worker exception e-mails sent to administrators now works properly.

  • No longer depends on django, so installing celery won’t affect the preferred Django version installed.

  • Now works with PostgreSQL (psycopg2) again by registering the PickledObject field.

  • celeryd: Added --detach option as an alias to --daemon, and it’s the term used in the documentation from now on.

  • Make sure the pool and periodic task worker thread is terminated properly at exit. (So Ctrl-C works again).

  • Now depends on python-daemon.

  • Removed dependency to simplejson

  • Cache Backend: Re-establishes connection for every task process if the Django cache backend is memcached/libmemcached.

  • Tyrant Backend: Now re-establishes the connection for every task executed.

0.3.3

release-date:2009-06-08 01:07 P.M CET
  • The PeriodicWorkController now sleeps for 1 second between checking for periodic tasks to execute.

0.3.2

release-date:2009-06-08 01:07 P.M CET
  • celeryd: Added option --discard: Discard (delete!) all waiting messages in the queue.
  • celeryd: The --wakeup-after option was not handled as a float.

0.3.1

release-date:2009-06-08 01:07 P.M CET
  • The PeriodicTask` worker is now running in its own thread instead of blocking the TaskController loop.
  • Default QUEUE_WAKEUP_AFTER has been lowered to 0.1 (was 0.3)

0.3.0

release-date:2009-06-08 12:41 P.M CET

Warning

This is a development version, for the stable release, please see versions 0.2.x.

VERY IMPORTANT: Pickle is now the encoder used for serializing task arguments, so be sure to flush your task queue before you upgrade.

  • IMPORTANT TaskSet.run() now returns a celery.result.TaskSetResult instance, which lets you inspect the status and return values of a taskset as it was a single entity.

  • IMPORTANT Celery now depends on carrot >= 0.4.1.

  • The celery daemon now sends task errors to the registered admin e-mails. To turn off this feature, set SEND_CELERY_TASK_ERROR_EMAILS to False in your settings.py. Thanks to Grégoire Cachet.

  • You can now run the celery daemon by using manage.py:

    $ python manage.py celeryd

    Thanks to Grégoire Cachet.

  • Added support for message priorities, topic exchanges, custom routing keys for tasks. This means we have introduced celery.task.apply_async, a new way of executing tasks.

    You can use celery.task.delay and celery.Task.delay like usual, but if you want greater control over the message sent, you want celery.task.apply_async and celery.Task.apply_async.

    This also means the AMQP configuration has changed. Some settings has been renamed, while others are new:

    CELERY_AMQP_EXCHANGE
    CELERY_AMQP_PUBLISHER_ROUTING_KEY
    CELERY_AMQP_CONSUMER_ROUTING_KEY
    CELERY_AMQP_CONSUMER_QUEUE
    CELERY_AMQP_EXCHANGE_TYPE
    

    See the entry Can I send some tasks to only some servers? in the FAQ for more information.

  • Task errors are now logged using log level ERROR instead of INFO, and stacktraces are dumped. Thanks to Grégoire Cachet.
  • Make every new worker process re-establish it’s Django DB connection, this solving the “MySQL connection died?” exceptions. Thanks to Vitaly Babiy and Jirka Vejrazka.
  • IMPORTANT Now using pickle to encode task arguments. This means you now can pass complex python objects to tasks as arguments.
  • Removed dependency to yadayada.
  • Added a FAQ, see docs/faq.rst.
  • Now converts any Unicode keys in task kwargs to regular strings. Thanks Vitaly Babiy.
  • Renamed the TaskDaemon to WorkController.
  • celery.datastructures.TaskProcessQueue is now renamed to celery.pool.TaskPool.
  • The pool algorithm has been refactored for greater performance and stability.

0.2.0

release-date:2009-05-20 05:14 P.M CET
  • Final release of 0.2.0
  • Compatible with carrot version 0.4.0.
  • Fixes some syntax errors related to fetching results from the database backend.

0.2.0-pre3

release-date:2009-05-20 05:14 P.M CET
  • Internal release. Improved handling of unpickleable exceptions, get_result now tries to recreate something looking like the original exception.

0.2.0-pre2

release-date:2009-05-20 01:56 P.M CET
  • Now handles unpickleable exceptions (like the dynamically generated subclasses of django.core.exception.MultipleObjectsReturned).

0.2.0-pre1

release-date:2009-05-20 12:33 P.M CET
  • It’s getting quite stable, with a lot of new features, so bump version to 0.2. This is a pre-release.
  • celery.task.mark_as_read() and celery.task.mark_as_failure() has been removed. Use celery.backends.default_backend.mark_as_read(), and celery.backends.default_backend.mark_as_failure() instead.

0.1.15

release-date:2009-05-19 04:13 P.M CET
  • The celery daemon was leaking AMQP connections, this should be fixed, if you have any problems with too many files open (like emfile errors in rabbit.log, please contact us!

0.1.14

release-date:2009-05-19 01:08 P.M CET
  • Fixed a syntax error in the TaskSet class. (No such variable TimeOutError).

0.1.13

release-date:2009-05-19 12:36 P.M CET
  • Forgot to add yadayada to install requirements.

  • Now deletes all expired task results, not just those marked as done.

  • Able to load the Tokyo Tyrant backend class without django configuration, can specify tyrant settings directly in the class constructor.

  • Improved API documentation

  • Now using the Sphinx documentation system, you can build the html documentation by doing

    $ cd docs
    $ make html

    and the result will be in docs/.build/html.

0.1.12

release-date:2009-05-18 04:38 P.M CET
  • delay_task() etc. now returns celery.task.AsyncResult object, which lets you check the result and any failure that might have happened. It kind of works like the multiprocessing.AsyncResult class returned by multiprocessing.Pool.map_async.

  • Added dmap() and dmap_async(). This works like the multiprocessing.Pool versions except they are tasks distributed to the celery server. Example:

    >>> from celery.task import dmap
    >>> import operator
    >>> dmap(operator.add, [[2, 2], [4, 4], [8, 8]])
    >>> [4, 8, 16]
    
    >>> from celery.task import dmap_async
    >>> import operator
    >>> result = dmap_async(operator.add, [[2, 2], [4, 4], [8, 8]])
    >>> result.ready()
    False
    >>> time.sleep(1)
    >>> result.ready()
    True
    >>> result.result
    [4, 8, 16]
    
  • Refactored the task metadata cache and database backends, and added a new backend for Tokyo Tyrant. You can set the backend in your django settings file. E.g.:

    CELERY_RESULT_BACKEND = "database"; # Uses the database
    CELERY_RESULT_BACKEND = "cache"; # Uses the django cache framework
    CELERY_RESULT_BACKEND = "tyrant"; # Uses Tokyo Tyrant
    TT_HOST = "localhost"; # Hostname for the Tokyo Tyrant server.
    TT_PORT = 6657; # Port of the Tokyo Tyrant server.
    

0.1.11

release-date:2009-05-12 02:08 P.M CET
  • The logging system was leaking file descriptors, resulting in servers stopping with the EMFILES (too many open files) error. (fixed)

0.1.10

release-date:2009-05-11 12:46 P.M CET
  • Tasks now supports both positional arguments and keyword arguments.
  • Requires carrot 0.3.8.
  • The daemon now tries to reconnect if the connection is lost.

0.1.8

release-date:2009-05-07 12:27 P.M CET
  • Better test coverage
  • More documentation
  • celeryd doesn’t emit Queue is empty message if settings.CELERYD_EMPTY_MSG_EMIT_EVERY is 0.

0.1.7

release-date:2009-04-30 1:50 P.M CET
  • Added some unit tests
  • Can now use the database for task metadata (like if the task has been executed or not). Set settings.CELERY_TASK_META
  • Can now run python setup.py test to run the unit tests from within the tests project.
  • Can set the AMQP exchange/routing key/queue using settings.CELERY_AMQP_EXCHANGE, settings.CELERY_AMQP_ROUTING_KEY, and settings.CELERY_AMQP_CONSUMER_QUEUE.

0.1.6

release-date:2009-04-28 2:13 P.M CET
  • Introducing TaskSet. A set of subtasks is executed and you can find out how many, or if all them, are done (excellent for progress bars and such)

  • Now catches all exceptions when running Task.__call__, so the daemon doesn’t die. This doesn’t happen for pure functions yet, only Task classes.

  • autodiscover() now works with zipped eggs.

  • celeryd: Now adds current working directory to sys.path for convenience.

  • The run_every attribute of PeriodicTask classes can now be a datetime.timedelta() object.

  • celeryd: You can now set the DJANGO_PROJECT_DIR variable for celeryd and it will add that to sys.path for easy launching.

  • Can now check if a task has been executed or not via HTTP.

  • You can do this by including the celery urls.py into your project,

    >>> url(r'^celery/$', include("celery.urls"))
    

    then visiting the following url,:

    http://mysite/celery/$task_id/done/

    this will return a JSON dictionary like e.g:

    >>> {"task": {"id": $task_id, "executed": true}}
  • delay_task now returns string id, not uuid.UUID instance.

  • Now has PeriodicTasks, to have cron like functionality.

  • Project changed name from crunchy to celery. The details of the name change request is in docs/name_change_request.txt.

0.1.0

release-date:2009-04-24 11:28 A.M CET
  • Initial release

Previous topic

Platform Specific - celery.platforms

Next topic

Interesting Links

This Page

PKYDD,..!celery-2.1-archived/genindex.html Index — Celery 2.1.4 documentation

Index

Symbols | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | Y

Symbols

--maxtasksperchild
celeryd command line option
--purge, --discard
celeryd command line option
--scheduler
celeryd command line option
--soft-time-limit
celeryd command line option
--time-limit
celeryd command line option
-B, --beat
celeryd command line option
-c, --concurrency
celeryd command line option
-E, --events
celeryd command line option
-f, --logfile
celerybeat command line option
celeryd command line option
-I, --include
celeryd command line option
-l, --loglevel
celerybeat command line option
celeryd command line option
-n, --hostname
celeryd command line option
-Q, --queues
celeryd command line option
-s, --schedule
celerybeat command line option
celeryd command line option
-S, --scheduler
celerybeat command line option

_

_all_instances (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)

A

abbr() (in module celery.utils)
abbreviations() (in module celery.bin.celeryd_multi)
abbrtask() (in module celery.utils)
abort() (celery.contrib.abortable.AbortableAsyncResult method)
AbortableAsyncResult (class in celery.contrib.abortable)
AbortableTask (class in celery.contrib.abortable)
abstract (celery.task.base.Task attribute)
(Task attribute)
(celery.task.Task attribute)
acknowledge() (celery.worker.job.TaskRequest method)
acknowledged (celery.worker.job.TaskRequest attribute), [1]
acks_late (celery.task.base.Task attribute)
(celery.task.Task attribute), [1]
ACKS_LATE (in module celery.conf)
acks_late (Task attribute)
acquire() (celery.platforms.PIDFile method)
active() (celery.task.control.inspect method)
active_requests (in module celery.worker.state)
add() (celery.beat.Scheduler method)
(celery.datastructures.LimitedSet method)
add_bucket_for_type() (celery.worker.buckets.TaskBucket method)
add_consumer() (celery.task.control.inspect method)
(in module celery.worker.control.builtins)
add_option() (celery.bin.celeryd_multi.NamespacedOptionParser method)
add_queue() (celery.routes.Router method)
ADMINS
setting
ADMINS (in module celery.conf)
after_return() (celery.task.base.Task method)
(celery.task.Task method)
alert() (celery.events.cursesmon.CursesMonitor method)
alert_remote_control_reply() (celery.events.cursesmon.CursesMonitor method)
alive (celery.events.state.Worker attribute)
alive_workers() (celery.events.state.State method)
ALL_STATES
state
AlreadyExecutedError
AlreadyRegistered
ALWAYS_EAGER (in module celery.conf)
amqp (celery.bin.camqadm.AMQShell attribute), [1]
AMQPAdmin (class in celery.bin.camqadm)
AMQPBackend (class in celery.backends.amqp)
AMQResultWarning
AMQShell (class in celery.bin.camqadm)
apply (class in celery.bin.celeryctl)
apply() (celery.concurrency.processes.pool.Pool method)
(celery.concurrency.processes.TaskPool.Pool method)
(celery.task.Task class method)
(celery.task.TaskSet method)
(celery.task.base.Task class method)
(celery.task.sets.TaskSet method)
(celery.task.sets.subtask method)
(in module celery.execute)
apply_after() (celery.utils.timer2.Timer method)
apply_async() (celery.beat.Scheduler method)
(celery.concurrency.processes.TaskPool method)
(celery.concurrency.processes.TaskPool.Pool method)
(celery.concurrency.processes.pool.Pool method)
(celery.concurrency.threads.TaskPool method)
(celery.task.Task class method)
(celery.task.TaskSet method)
(celery.task.base.Task class method)
(celery.task.sets.TaskSet method)
(celery.task.sets.subtask method)
(in module celery.execute)
apply_at() (celery.utils.timer2.Timer method)
apply_entry() (celery.utils.timer2.Timer method)
apply_eta_task() (celery.worker.listener.CarrotListener method)
apply_interval() (celery.utils.timer2.Timer method)
args (celery.beat.ScheduleEntry attribute)
(celery.bin.base.Command attribute)
(celery.bin.celeryctl.Command attribute)
(celery.bin.celeryctl.apply attribute)
(celery.bin.celeryctl.result attribute)
(celery.worker.job.TaskRequest attribute)
as_dict() (celery.datastructures.LimitedSet method)
AsynchronousMapTask (class in celery.task.builtins)
AsyncResult (class in celery.result)
AsyncResult() (celery.contrib.abortable.AbortableTask class method)
(celery.task.Task class method)
(celery.task.base.Task class method)
AttributeDict (class in celery.datastructures)
authkey (celery.concurrency.processes.pool.Pool.Process attribute)
(celery.concurrency.processes.TaskPool.Pool.Process attribute)
auto_declare (celery.messaging.TaskPublisher attribute)
auto_delete (celery.backends.amqp.ResultConsumer attribute)
(celery.backends.amqp.ResultPublisher attribute)
(celery.messaging.BroadcastConsumer attribute)
(celery.messaging.BroadcastPublisher attribute)
(celery.messaging.ControlReplyConsumer attribute)
(celery.messaging.ControlReplyPublisher attribute)
(celery.messaging.EventConsumer attribute)
(celery.messaging.EventPublisher attribute)
autoregister (celery.task.base.Task attribute)
(celery.task.Task attribute), [1]

B

backend (celery.result.AsyncResult attribute)
(Task attribute)
(celery.result.BaseAsyncResult attribute)
(celery.task.Task attribute), [1]
(celery.task.base.Task attribute)
backend_cleanup (class in celery.task.builtins)
background (celery.events.cursesmon.CursesMonitor attribute)
BaseAsyncResult (class in celery.result)
BaseAsyncResult.TimeoutError
BaseBackend (class in celery.backends.base)
BaseBackend.TimeoutError
BaseDictBackend (class in celery.backends.base)
BaseLoader (class in celery.loaders.base)
Beat (class in celery.apps.beat)
Beat.Service (class in celery.apps.beat)
BeatCommand (class in celery.bin.celerybeat)
bind() (queue method)
black() (celery.utils.term.colored method)
blink() (celery.utils.term.colored method)
blue() (celery.utils.term.colored method)
body() (celery.concurrency.processes.pool.Pool.ResultHandler method)
(celery.concurrency.processes.TaskPool.Pool.ResultHandler method)
(celery.concurrency.processes.TaskPool.Pool.Supervisor method)
(celery.concurrency.processes.TaskPool.Pool.TaskHandler method)
(celery.concurrency.processes.TaskPool.Pool.TimeoutHandler method)
(celery.concurrency.processes.pool.Pool.Supervisor method)
(celery.concurrency.processes.pool.Pool.TaskHandler method)
(celery.concurrency.processes.pool.Pool.TimeoutHandler method)
bold() (celery.utils.term.colored method)
BoundMethodWeakref (class in celery.utils.dispatch.saferef)
BoundNonDescriptorMethodWeakref (class in celery.utils.dispatch.saferef)
bpm (celery.worker.heartbeat.Heart attribute), [1]
bright() (celery.utils.term.colored method)
broadcast() (in module celery.task.control)
BROADCAST_EXCHANGE (in module celery.conf)
BROADCAST_EXCHANGE_TYPE (in module celery.conf)
BROADCAST_QUEUE (in module celery.conf)
BroadcastConsumer (class in celery.messaging)
BroadcastPublisher (class in celery.messaging)
BROKER_BACKEND
setting
BROKER_CONNECTION_MAX_RETRIES (in module celery.conf)
BROKER_CONNECTION_RETRY (in module celery.conf)
BROKER_CONNECTION_TIMEOUT
setting
BROKER_CONNECTION_TIMEOUT (in module celery.conf)
BROKER_HOST
setting
BROKER_PASSWORD
setting
BROKER_PORT
setting
BROKER_USE_SSL
setting
BROKER_USER
setting
BROKER_VHOST
setting
builtins (celery.bin.camqadm.AMQShell attribute)
Bunch (class in celery.backends.mongodb)

C

CacheBackend (class in celery.backends.cache)
calculate_key() (celery.utils.dispatch.saferef.BoundMethodWeakref class method)
callback (celery.worker.controllers.Mediator attribute)
camqadm() (in module celery.bin.camqadm)
can_consume() (celery.datastructures.TokenBucket method)
cancel() (celery.events.snapshot.Polaroid method)
(celery.utils.timer2.Entry method)
(celery.utils.timer2.Timer method)
(celery.utils.timer2.Timer.Entry method)
cancel_consumer()
(celery.task.control.inspect method)
(in module celery.worker.control.builtins)
cancelled (celery.utils.timer2.Entry attribute)
(celery.utils.timer2.Timer.Entry attribute)
capacity (celery.datastructures.TokenBucket attribute)
capture() (celery.events.EventReceiver method)
(celery.events.snapshot.Polaroid method)
CarrotListener (class in celery.worker.listener)
CassandraBackend (class in celery.backends.cassandra)
celery.apps.beat (module)
celery.apps.worker (module)
celery.backends (module)
celery.backends.amqp (module)
celery.backends.base (module)
celery.backends.cache (module)
celery.backends.cassandra (module)
celery.backends.database (module)
celery.backends.mongodb (module)
celery.backends.pyredis (module)
celery.backends.tyrant (module)
celery.beat (module)
celery.bin.base (module)
celery.bin.camqadm (module)
celery.bin.celerybeat (module)
celery.bin.celeryctl (module)
celery.bin.celeryd (module)
celery.bin.celeryd_multi (module)
celery.bin.celeryev (module)
celery.concurrency.processes (module)
celery.concurrency.processes.pool (module)
celery.concurrency.threads (module)
celery.contrib.abortable (module)
celery.datastructures (module)
celery.db.models (module)
celery.db.session (module)
celery.decorators (module)
celery.events (module)
celery.events.cursesmon (module)
celery.events.dumper (module)
celery.events.snapshot (module)
celery.events.state (module)
celery.exceptions (module)
celery.execute (module)
celery.execute.trace (module)
celery.loaders (module)
celery.loaders.base (module)
celery.loaders.default (module)
celery.log (module)
celery.messaging (module)
celery.platforms (module)
celery.registry (module)
celery.result (module)
celery.routes (module)
celery.schedules (module)
celery.serialization (module)
celery.states (module)
celery.task (module)
celery.task.base (module), [1]
celery.task.builtins (module)
celery.task.control (module)
celery.task.http (module), [1]
celery.task.sets (module)
celery.utils (module)
celery.utils.compat (module)
celery.utils.dispatch (module)
celery.utils.dispatch.saferef (module)
celery.utils.dispatch.signal (module)
celery.utils.functional (module)
celery.utils.info (module)
celery.utils.mail (module)
celery.utils.patch (module)
celery.utils.term (module)
celery.utils.timer2 (module)
celery.utils.timeutils (module)
celery.worker (module)
celery.worker.buckets (module)
celery.worker.control (module)
celery.worker.control.builtins (module)
celery.worker.control.registry (module)
celery.worker.controllers (module)
celery.worker.heartbeat (module)
celery.worker.job (module)
celery.worker.listener (module)
celery.worker.state (module)
CELERY_ACKS_LATE
setting
CELERY_ALWAYS_EAGER
setting
CELERY_AMQP_TASK_RESULT_EXPIRES
setting
CELERY_BROADCAST_EXCHANGE_TYPE
setting
CELERY_BROADCAST_QUEUE
setting
CELERY_BROADCASTS_EXCHANGE
setting
CELERY_BROKER_CONNECTION_MAX_RETRIES
setting
CELERY_BROKER_CONNECTION_RETRY
setting
CELERY_CACHE_BACKEND
setting
CELERY_CACHE_BACKEND (in module celery.conf)
CELERY_CACHE_BACKEND_OPTIONS
setting
CELERY_CONFIG_MODULE, [1]
CELERY_CREATE_MISSING_QUEUES
setting
CELERY_DEFAULT_DELIVERY_MODE
setting
CELERY_DEFAULT_EXCHANGE
setting
CELERY_DEFAULT_EXCHANGE_TYPE
setting
CELERY_DEFAULT_QUEUE
setting
CELERY_DEFAULT_RATE_LIMIT
setting
CELERY_DEFAULT_ROUTING_KEY
setting
CELERY_DISABLE_RATE_LIMITS
setting
CELERY_EAGER_PROPAGATES_EXCEPTIONS
setting
CELERY_EVENT_EXCHANGE
setting
CELERY_EVENT_EXCHANGE_TYPE
setting
CELERY_EVENT_QUEUE
setting
CELERY_EVENT_ROUTING_KEY
setting
CELERY_EVENT_SERIALIZER
setting
CELERY_IGNORE_RESULT
setting
CELERY_IMPORTS
setting
CELERY_LOADER, [1], [2], [3], [4], [5]
CELERY_MAX_CACHED_RESULTS
setting
CELERY_MONGODB_BACKEND_SETTINGS
setting
CELERY_QUEUES
setting
CELERY_REDIRECT_STDOUTS
setting
CELERY_REDIRECT_STDOUTS_LEVEL
setting
CELERY_RESULT_BACKEND
setting
CELERY_RESULT_DBURI
setting
CELERY_RESULT_ENGINE_OPTIONS
setting
CELERY_RESULT_EXCHANGE
setting
CELERY_RESULT_EXCHANGE_TYPE
setting
CELERY_RESULT_PERSISTENT
setting
CELERY_RESULT_SERIALIZER
setting
CELERY_ROUTES
setting
CELERY_SEND_EVENTS
setting
CELERY_SEND_TASK_ERROR_EMAILS (in module celery.conf)
CELERY_STORE_ERRORS_EVEN_IF_IGNORED
setting
CELERY_TASK_ERROR_WHITELIST
setting
CELERY_TASK_RESULT_EXPIRES
setting
CELERY_TASK_SERIALIZER
setting
CELERY_TRACK_STARTED
setting
celerybeat command line option
-S, --scheduler
-f, --logfile
-l, --loglevel
-s, --schedule
CELERYBEAT_LOG_FILE
setting
CELERYBEAT_LOG_FILE (in module celery.conf)
CELERYBEAT_LOG_LEVEL
setting
CELERYBEAT_LOG_LEVEL (in module celery.conf)
CELERYBEAT_MAX_LOOP_INTERVAL
setting
CELERYBEAT_MAX_LOOP_INTERVAL (in module celery.conf)
CELERYBEAT_SCHEDULE
setting
CELERYBEAT_SCHEDULE_FILENAME
setting
CELERYBEAT_SCHEDULE_FILENAME (in module celery.conf)
CELERYBEAT_SCHEDULER
setting
celeryctl (class in celery.bin.celeryctl)
celeryd command line option
--maxtasksperchild
--purge, --discard
--scheduler
--soft-time-limit
--time-limit
-B, --beat
-E, --events
-I, --include
-Q, --queues
-c, --concurrency
-f, --logfile
-l, --loglevel
-n, --hostname
-s, --schedule
CELERYD_CONCURRENCY
setting
CELERYD_CONCURRENCY (in module celery.conf)
CELERYD_ETA_SCHEDULER
setting
CELERYD_ETA_SCHEDULER (in module celery.conf)
CELERYD_ETA_SCHEDULER_PRECISION
setting
CELERYD_LISTENER
setting
CELERYD_LISTENER (in module celery.conf)
CELERYD_LOG_FILE
setting
CELERYD_LOG_FILE (in module celery.conf)
CELERYD_LOG_FORMAT
setting
CELERYD_LOG_FORMAT (in module celery.conf)
CELERYD_LOG_LEVEL
setting
CELERYD_LOG_LEVEL (in module celery.conf)
CELERYD_MAX_TASKS_PER_CHILD
setting
CELERYD_MEDIATOR
setting
CELERYD_MEDIATOR (in module celery.conf)
CELERYD_POOL
setting
CELERYD_POOL (in module celery.conf)
CELERYD_PREFETCH_MULTIPLIER
setting
CELERYD_PREFETCH_MULTIPLIER (in module celery.conf)
CELERYD_SEND_TASK_ERROR_EMAILS
setting
CELERYD_STATE_DB
setting
CELERYD_TASK_LOG_FORMAT
setting
CELERYD_TASK_LOG_FORMAT (in module celery.conf)
CELERYD_TASK_SOFT_TIME_LIMIT
setting
CELERYD_TASK_TIME_LIMIT
setting
CELERYMON_LOG_FILE
setting
CELERYMON_LOG_FILE (in module celery.conf)
CELERYMON_LOG_LEVEL
setting
CELERYMON_LOG_LEVEL (in module celery.conf)
chain_from_iterable() (in module celery.utils.compat)
(in module celery.worker.buckets)
chan (celery.bin.camqadm.AMQShell attribute)
choices (celery.bin.celeryctl.inspect attribute)
chronologically (celery.datastructures.LimitedSet attribute)
chunks() (in module celery.utils)
cleanup() (celery.backends.base.BaseBackend method)
(celery.backends.cassandra.CassandraBackend method)
(celery.backends.database.DatabaseBackend method)
(celery.backends.mongodb.MongoBackend method)
(celery.events.snapshot.Polaroid method)
cleanup_signal (celery.events.snapshot.Polaroid attribute)
clear() (celery.datastructures.LimitedSet method)
(celery.events.state.State method)
(celery.utils.compat.OrderedDict method)
(celery.utils.timer2.Schedule method)
(celery.utils.timer2.Timer method)
(celery.worker.buckets.FastQueue method)
(celery.worker.buckets.TaskBucket method)
(celery.worker.buckets.TokenBucketQueue method)
clear_after (celery.events.snapshot.Polaroid attribute)
clear_tasks() (celery.events.state.State method)
client (celery.backends.cache.CacheBackend attribute)
close() (celery.backends.amqp.AMQPBackend method)
(celery.backends.pyredis.RedisBackend method)
(celery.backends.tyrant.TyrantBackend method)
(celery.beat.PersistentScheduler method)
(celery.beat.Scheduler method)
(celery.concurrency.processes.TaskPool.Pool method)
(celery.concurrency.processes.pool.Pool method)
(celery.events.EventDispatcher method)
(celery.log.LoggingProxy method)
(celery.platforms.DaemonContext method)
(celery.worker.state.Persistent method)
close_connection() (celery.worker.listener.CarrotListener method)
closed (celery.log.LoggingProxy attribute)
coerce() (celery.bin.camqadm.Spec method)
collect() (celery.messaging.ControlReplyConsumer method)
colored (class in celery.utils.term)
ColorFormatter (class in celery.log)
column_family (celery.backends.cassandra.CassandraBackend attribute)
Command (class in celery.bin.base)
(class in celery.bin.celeryctl)
command() (in module celery.bin.celeryctl)
commands (celery.bin.celeryctl.celeryctl attribute)
compare() (celery.states.state method)
completed_count() (celery.result.TaskSetResult method)
completenames() (celery.bin.camqadm.AMQShell method)
concurrency (celery.apps.worker.Worker.WorkController attribute), [1]
(celery.worker.WorkController attribute), [1]
conf (celery.loaders.base.BaseLoader attribute)
configured (celery.loaders.base.BaseLoader attribute)
conn (celery.bin.camqadm.AMQShell attribute)
connect() (celery.bin.camqadm.AMQPAdmin method)
(celery.utils.dispatch.signal.Signal method)
connection (celery.backends.amqp.AMQPBackend attribute)
consume() (celery.backends.amqp.AMQPBackend method)
(celery.messaging.BroadcastConsumer method)
consume_messages() (celery.worker.listener.CarrotListener method)
consume_queue() (in module celery.datastructures)
consumer() (celery.events.EventReceiver method)
ConsumerSet (class in celery.messaging)
control
disable_events
enable_events
ping
rate_limit
shutdown
control_dispatch (celery.worker.listener.CarrotListener attribute)
ControlDispatch (class in celery.worker.control)
ControlDispatch.Panel (class in celery.worker.control)
ControlReplyConsumer (class in celery.messaging)
ControlReplyPublisher (class in celery.messaging)
copy() (celery.utils.compat.OrderedDict method)
counter (celery.bin.camqadm.AMQShell attribute)
create_daemon_context() (in module celery.platforms)
create_event() (in module celery.events)
create_exception_cls() (in module celery.serialization)
create_parser() (celery.bin.base.Command method)
(celery.bin.celeryctl.Command method)
create_pidlock() (in module celery.platforms)
create_session() (in module celery.db.session)
crontab (class in celery.schedules)
crontab_parser (class in celery.schedules)
current_loader() (in module celery.loaders)
CursesMonitor (class in celery.events.cursesmon)
cyan() (celery.utils.term.colored method)

D

daemon (celery.concurrency.processes.pool.Pool.Process attribute)
(celery.concurrency.processes.TaskPool.Pool.Process attribute)
DaemonContext (class in celery.platforms)
data (celery.worker.control.ControlDispatch.Panel attribute)
(celery.worker.control.registry.Panel attribute)
DatabaseBackend (class in celery.backends.database)
date_done (celery.db.models.Task attribute)
(celery.db.models.TaskSet attribute)
day_of_week (celery.schedules.crontab attribute)
db (celery.worker.state.Persistent attribute)
debug() (celery.events.snapshot.Polaroid method)
declare() (celery.messaging.TaskPublisher method)
(queue method)
decrement() (celery.datastructures.SharedCounter method)
(celery.worker.listener.QoS method)
decrement_eventually() (celery.worker.listener.QoS method)
default() (celery.bin.camqadm.AMQShell method)
default_backend (in module celery.backends)
DEFAULT_DELIVERY_MODE (in module celery.conf)
DEFAULT_EXCHANGE (in module celery.conf)
DEFAULT_EXCHANGE_TYPE (in module celery.conf)
DEFAULT_QUEUE (in module celery.conf)
DEFAULT_RATE_LIMIT (in module celery.conf)
default_retry_delay (celery.task.base.Task attribute)
(Task attribute)
(celery.task.Task attribute), [1]
DEFAULT_ROUTING_KEY (in module celery.conf)
DefaultBackend (class in celery.backends)
(in module celery.backends)
delay() (celery.task.base.Task class method)
(celery.task.Task class method)
(celery.task.sets.subtask method)
delay_task() (celery.messaging.TaskPublisher method)
(in module celery.execute)
delete() (celery.backends.base.KeyValueStoreBackend method)
(celery.backends.cache.CacheBackend method)
(celery.backends.cache.DummyClient method)
(celery.backends.pyredis.RedisBackend method)
(celery.backends.tyrant.TyrantBackend method)
(exchange method)
(queue method)
DeleteExpiredTaskMetaTask (in module celery.task.builtins)
deletion_methods (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)
delivery_info (celery.worker.job.TaskRequest attribute)
delivery_mode (celery.backends.amqp.ResultPublisher attribute)
(celery.messaging.ControlReplyPublisher attribute)
(celery.messaging.EventPublisher attribute)
(celery.task.Task attribute), [1]
(celery.task.base.Task attribute)
delta_resolution() (in module celery.utils.timeutils)
deprecated_settings (celery.backends.pyredis.RedisBackend attribute)
detach() (celery.platforms.DaemonContext method)
die() (celery.apps.worker.Worker method)
disable() (celery.events.EventDispatcher method)
disable_error_emails (celery.task.Task attribute)
disable_events
control
disable_events() (celery.task.control.inspect method)
(in module celery.worker.control.builtins)
DISABLE_RATE_LIMITS (in module celery.conf)
discard_all() (in module celery.task)
(in module celery.task.control)
disconnect() (celery.utils.dispatch.signal.Signal method)
dispatch() (celery.bin.camqadm.AMQShell method)
(celery.task.http.HttpDispatch method)
dispatch_from_message() (celery.worker.control.ControlDispatch method)
dispatcher (celery.task.http.URL attribute)
display_command_help() (celery.bin.camqadm.AMQShell method)
display_width (celery.events.cursesmon.CursesMonitor attribute)
DisplayThread (class in celery.events.cursesmon)
dmap() (in module celery.task)
dmap_async() (in module celery.task)
do_exit() (celery.bin.camqadm.AMQShell method)
do_help() (celery.bin.camqadm.AMQShell method)
do_work() (in module celery.concurrency.threads)
draw() (celery.events.cursesmon.CursesMonitor method)
DummyClient (class in celery.backends.cache)
dump_active() (in module celery.worker.control.builtins)
dump_message() (in module celery.bin.camqadm)
dump_reserved() (in module celery.worker.control.builtins)
dump_revoked() (in module celery.worker.control.builtins)
dump_schedule() (in module celery.worker.control.builtins)
dump_tasks() (in module celery.worker.control.builtins)
Dumper (class in celery.events.dumper)
durable (celery.backends.amqp.ResultConsumer attribute)
(celery.backends.amqp.ResultPublisher attribute)
(celery.messaging.BroadcastConsumer attribute)
(celery.messaging.BroadcastPublisher attribute)
(celery.messaging.ControlReplyConsumer attribute)
(celery.messaging.ControlReplyPublisher attribute)
(celery.messaging.EventConsumer attribute)
(celery.messaging.EventPublisher attribute)

E

EAGER_PROPAGATES_EXCEPTIONS (in module celery.conf)
EagerResult (class in celery.result)
EagerResult.TimeoutError
Element (class in celery.events.state)
email_body (celery.worker.job.TaskRequest attribute)
email_subject (celery.worker.job.TaskRequest attribute)
embed_clockservice (celery.apps.worker.Worker.WorkController attribute)
(celery.worker.WorkController attribute)
EmbeddedService() (in module celery.beat)
emergency_error() (in module celery.log)
empty() (celery.utils.timer2.Schedule method)
(celery.utils.timer2.Timer method)
(celery.worker.buckets.TaskBucket method)
(celery.worker.buckets.TokenBucketQueue method)
enable() (celery.events.EventDispatcher method)
enable_events
control
enable_events() (celery.task.control.inspect method)
(in module celery.worker.control.builtins)
encode_result() (celery.backends.base.BaseBackend method)
ensure_process_aware_logger() (in module celery.utils.patch)
ensure_started() (celery.utils.timer2.Timer method)
enter() (celery.utils.timer2.Schedule method)
(celery.utils.timer2.Timer method)
enter_after() (celery.utils.timer2.Timer method)
Entry (celery.beat.Scheduler attribute)
(class in celery.utils.timer2)
environment variable
CELERY_CONFIG_MODULE, [1]
CELERY_LOADER, [1], [2], [3], [4], [5]
NOSE_VERBOSE
PATH
Error
error() (celery.bin.celeryctl.Command method)
(celery.bin.celeryd_multi.MultiTool method)
error_msg (celery.worker.job.TaskRequest attribute)
error_whitelist (celery.task.base.Task attribute)
(Task attribute)
(celery.task.Task attribute), [1]
establish_connection() (celery.task.base.Task class method)
(celery.task.Task class method)
(in module celery.messaging)
eta_schedule (celery.worker.listener.CarrotListener attribute)
evaluate() (celery.utils.mpromise method)
(celery.utils.promise method)
evaluated (celery.utils.mpromise attribute), [1]
evcam() (in module celery.events.snapshot)
evdump() (in module celery.events.dumper)
event() (celery.events.state.State method)
Event() (in module celery.events)
event_count (celery.events.state.State attribute)
event_dispatcher (celery.worker.listener.CarrotListener attribute)
EVENT_EXCHANGE (in module celery.conf)
EVENT_EXCHANGE_TYPE (in module celery.conf)
EVENT_QUEUE (in module celery.conf)
EVENT_ROUTING_KEY (in module celery.conf)
EVENT_SERIALIZER (in module celery.conf)
EventConsumer (class in celery.messaging)
EventDispatcher (class in celery.events)
EventPublisher (class in celery.messaging)
EventReceiver (class in celery.events)
evtop() (in module celery.events.cursesmon)
exc_args (celery.serialization.UnpickleableExceptionWrapper attribute)
exc_cls_name (celery.serialization.UnpickleableExceptionWrapper attribute)
exc_module (celery.serialization.UnpickleableExceptionWrapper attribute)
exception (celery.datastructures.ExceptionInfo attribute)
EXCEPTION_STATES
state
EXCEPTION_STATES (celery.backends.base.BaseBackend attribute)
exception_to_python() (celery.backends.base.BaseBackend method)
ExceptionInfo (class in celery.datastructures)
exchange (celery.backends.amqp.ResultConsumer attribute)
(Task attribute)
(celery.backends.amqp.ResultPublisher attribute)
(celery.messaging.BroadcastConsumer attribute)
(celery.messaging.BroadcastPublisher attribute)
(celery.messaging.ControlReplyConsumer attribute)
(celery.messaging.ControlReplyPublisher attribute)
(celery.messaging.EventConsumer attribute)
(celery.messaging.EventPublisher attribute)
(celery.messaging.TaskConsumer attribute)
(celery.messaging.TaskPublisher attribute)
(celery.task.Task attribute), [1]
(celery.task.base.Task attribute)
exchange_type (celery.backends.amqp.ResultConsumer attribute)
(celery.backends.amqp.ResultPublisher attribute)
(celery.messaging.BroadcastConsumer attribute)
(celery.messaging.BroadcastPublisher attribute)
(celery.messaging.ControlReplyConsumer attribute)
(celery.messaging.ControlReplyPublisher attribute)
(celery.messaging.EventConsumer attribute)
(celery.messaging.EventPublisher attribute)
(celery.messaging.TaskConsumer attribute)
(celery.messaging.TaskPublisher attribute)
(celery.task.Task attribute), [1]
(celery.task.base.Task attribute)
exclusive (celery.messaging.ControlReplyConsumer attribute)
execute() (celery.bin.celeryctl.celeryctl method)
(celery.execute.trace.TaskTrace method)
(celery.task.Task method)
(celery.task.base.Task method)
(celery.worker.control.ControlDispatch method)
(celery.worker.job.TaskRequest method)
(celery.worker.job.WorkerTaskTrace method)
execute_and_trace() (in module celery.worker.job)
execute_from_commandline() (celery.bin.base.Command method)
(celery.bin.celeryctl.celeryctl method)
(celery.bin.celeryd_multi.MultiTool method)
execute_remote() (in module celery.task)
execute_safe() (celery.worker.job.WorkerTaskTrace method)
execute_using_pool() (celery.worker.job.TaskRequest method)
executed (celery.worker.job.TaskRequest attribute), [1]
ExecuteRemoteTask (class in celery.task.builtins)
exit_after() (celery.utils.timer2.Timer method)
exitcode (celery.concurrency.processes.pool.Pool.Process attribute)
(celery.concurrency.processes.TaskPool.Pool.Process attribute)
expand() (celery.bin.celeryd_multi.MultiTool method)
expand_destination() (celery.routes.Router method)
expected_time() (celery.datastructures.TokenBucket method)
(celery.worker.buckets.FastQueue method)
(celery.worker.buckets.TokenBucketQueue method)
expires (celery.backends.pyredis.RedisBackend attribute)
(celery.task.Task attribute), [1]
(celery.task.base.Task attribute)
extend_with_default_kwargs() (celery.worker.job.TaskRequest method)
extract_msg_options() (in module celery.messaging)
extract_response() (in module celery.task.http)

F

failed() (celery.result.BaseAsyncResult method)
(celery.result.TaskSetResult method)
FAILURE
state
FastQueue (class in celery.worker.buckets)
fg() (in module celery.utils.term)
fileno() (celery.log.LoggingProxy method)
fill_rate (celery.datastructures.TokenBucket attribute)
filled (celery.datastructures.PositionQueue attribute)
filter_types() (celery.registry.TaskRegistry method)
find_nearest_pickleable_exception() (in module celery.serialization)
find_position() (celery.events.cursesmon.CursesMonitor method)
findsig() (in module celery.bin.celeryd_multi)
first (celery.datastructures.LimitedSet attribute)
first() (in module celery.utils)
firstmethod() (in module celery.utils)
flatten_reply() (in module celery.task.control)
flush() (celery.events.EventDispatcher method)
(celery.log.LoggingProxy method)
foreground (celery.events.cursesmon.CursesMonitor attribute)
forget() (celery.backends.base.BaseBackend method)
(celery.backends.base.BaseDictBackend method)
(celery.result.BaseAsyncResult method)
(celery.result.TaskSetResult method)
format() (celery.log.ColorFormatter method)
format_arg() (celery.bin.camqadm.Spec method)
format_broker_info() (in module celery.utils.info)
format_declare_queue() (in module celery.bin.camqadm)
format_opt() (in module celery.bin.celeryd_multi)
format_queues() (in module celery.utils.info)
format_response() (celery.bin.camqadm.Spec method)
format_row() (celery.events.cursesmon.CursesMonitor method)
format_signature() (celery.bin.camqadm.Spec method)
format_task_event() (celery.events.dumper.Dumper method)
formatException() (celery.log.ColorFormatter method)
freeze() (State method)
freeze_while() (celery.events.state.State method)
(State method)
from_exception() (celery.serialization.UnpickleableExceptionWrapper class method)
from_message() (celery.worker.job.TaskRequest class method)
fromkeys() (celery.utils.compat.OrderedDict class method)
full() (celery.datastructures.PositionQueue method)
fun_takes_kwargs() (in module celery.utils)

G

gen_unique_id() (in module celery.utils)
get() (celery.backends.base.KeyValueStoreBackend method)
(celery.backends.cache.CacheBackend method)
(celery.backends.cache.DummyClient method)
(celery.backends.pyredis.RedisBackend method)
(celery.backends.tyrant.TyrantBackend method)
(celery.bin.celeryd_multi.MultiTool method)
(celery.result.BaseAsyncResult method)
(celery.worker.buckets.TaskBucket method)
(celery.worker.buckets.TokenBucketQueue method)
get_amqp_api_command() (celery.bin.camqadm.AMQShell method)
get_async() (celery.task.http.URL method)
get_backend_cls() (in module celery.backends)
get_best_memcache() (in module celery.backends.cache)
get_bound_method_weakref() (in module celery.utils.dispatch.saferef)
get_broker_info() (in module celery.utils.info)
get_bucket_for_type() (celery.worker.buckets.TaskBucket method)
get_cls_by_name() (in module celery.utils)
get_consumer() (celery.task.base.Task class method)
(celery.task.Task class method)
get_consumer_set() (in module celery.messaging)
get_default_backend_cls (in module celery.backends)
get_default_logger() (in module celery.log)
get_engine() (in module celery.db.session)
get_fdmax() (in module celery.platforms)
get_full_cls_name() (in module celery.utils)
get_key_for_task() (celery.backends.base.KeyValueStoreBackend method)
get_key_for_taskset() (celery.backends.base.KeyValueStoreBackend method)
get_loader_cls() (in module celery.loaders)
get_logger() (celery.task.base.Task class method)
(celery.task.Task class method)
get_names() (celery.bin.camqadm.AMQShell method)
get_nowait() (celery.worker.buckets.TaskBucket method)
(celery.worker.buckets.TokenBucketQueue method)
get_options() (celery.bin.base.Command method)
(celery.bin.celerybeat.BeatCommand method)
(celery.bin.celeryd.WorkerCommand method)
get_or_create_task() (celery.events.state.State method)
get_or_create_worker() (celery.events.state.State method)
get_pickleable_exception() (in module celery.serialization)
get_pickled_exception() (in module celery.serialization)
get_publisher() (celery.task.base.Task class method)
(celery.task.Task class method)
get_result() (celery.backends.base.BaseBackend method)
(celery.backends.base.BaseDictBackend method)
get_schedule() (celery.beat.Scheduler method)
get_scheduler() (celery.apps.beat.Beat.Service method)
(celery.beat.Service method)
get_status() (celery.backends.base.BaseBackend method)
(celery.backends.base.BaseDictBackend method)
get_task_logger() (in module celery.log)
get_task_meta() (celery.backends.amqp.AMQPBackend method)
(celery.backends.base.BaseDictBackend method)
get_taskset_meta() (celery.backends.base.BaseDictBackend method)
get_traceback() (celery.backends.base.BaseBackend method)
(celery.backends.base.BaseDictBackend method)
get_type() (celery.task.sets.subtask method)
getpids() (celery.bin.celeryd_multi.MultiTool method)
green() (celery.utils.term.colored method)
greet (celery.events.cursesmon.CursesMonitor attribute)

H

handle_after_return() (celery.execute.trace.TaskTrace method)
handle_error() (celery.utils.timer2.Schedule method)
handle_failure() (celery.execute.trace.TaskTrace method)
(celery.worker.job.WorkerTaskTrace method)
handle_keypress() (celery.events.cursesmon.CursesMonitor method)
handle_retry() (celery.execute.trace.TaskTrace method)
(celery.worker.job.WorkerTaskTrace method)
handle_success() (celery.execute.trace.TaskTrace method)
(celery.worker.job.WorkerTaskTrace method)
handlers (celery.events.EventReceiver attribute)
hart (celery.worker.listener.CarrotListener attribute)
Heart (class in celery.worker.heartbeat)
heartbeat() (in module celery.worker.control.builtins)
heartbeat_max (celery.events.state.Worker attribute)
help (celery.bin.celeryctl.Command attribute)
(celery.events.cursesmon.CursesMonitor attribute)
(class in celery.bin.celeryctl)
help() (celery.bin.celeryd_multi.MultiTool method)
help_title (celery.events.cursesmon.CursesMonitor attribute)
hostname (celery.worker.listener.CarrotListener attribute)
hour (celery.schedules.crontab attribute)
http_headers (celery.task.http.HttpDispatch attribute)
HttpDispatch (class in celery.task.http)
HttpDispatchTask (class in celery.task)
(class in celery.task.http)
humanize_seconds() (in module celery.utils.info)
humanize_type() (in module celery.events.dumper)

I

i (celery.backends.cassandra.CassandraBackend attribute)
iblue() (celery.utils.term.colored method)
icyan() (celery.utils.term.colored method)
id (celery.db.models.Task attribute)
(celery.db.models.TaskSet attribute)
ident (celery.concurrency.processes.pool.Pool.Process attribute)
(celery.concurrency.processes.TaskPool.Pool.Process attribute)
identchars (celery.bin.camqadm.AMQShell attribute)
ignore_result (celery.task.base.Task attribute)
(celery.task.PeriodicTask attribute)
(celery.task.Task attribute), [1]
IGNORE_RESULT (in module celery.conf)
ignore_result (Task attribute)
ignore_signal() (in module celery.platforms)
igreen() (celery.utils.term.colored method)
imagenta() (celery.utils.term.colored method)
imap() (celery.concurrency.processes.pool.Pool method)
(celery.concurrency.processes.TaskPool.Pool method)
imap_unordered() (celery.concurrency.processes.pool.Pool method)
(celery.concurrency.processes.TaskPool.Pool method)
immediate (celery.task.Task attribute)
(Task attribute)
import_default_modules() (celery.loaders.base.BaseLoader method)
import_from_cwd() (celery.loaders.base.BaseLoader method)
import_module() (celery.loaders.base.BaseLoader method)
import_task_module() (celery.loaders.base.BaseLoader method)
ImproperlyConfigured
inc_counter (celery.bin.camqadm.AMQShell attribute)
increment() (celery.datastructures.SharedCounter method)
(celery.worker.listener.QoS method)
indent() (in module celery.bin.celeryctl)
info (celery.beat.PersistentScheduler attribute)
(celery.beat.Scheduler attribute)
(celery.concurrency.processes.TaskPool attribute)
(celery.result.BaseAsyncResult attribute)
(celery.worker.listener.CarrotListener attribute)
info() (celery.bin.celeryd_multi.MultiTool method)
(celery.events.state.Task method)
(celery.utils.timer2.Schedule method)
(celery.worker.job.TaskRequest method)
info_str (celery.events.cursesmon.CursesMonitor attribute)
init_callback (celery.worker.listener.CarrotListener attribute)
init_loader() (celery.apps.beat.Beat method)
(celery.apps.worker.Worker method)
init_queues() (celery.apps.worker.Worker method)
init_screen() (celery.events.cursesmon.CursesMonitor method)
init_with_registry() (celery.worker.buckets.TaskBucket method)
init_worker() (celery.loaders.base.BaseLoader method)
initial_prefetch_count (celery.worker.listener.CarrotListener attribute)
inspect (class in celery.bin.celeryctl)
(class in celery.task.control)
install() (celery.events.snapshot.Polaroid method)
install_HUP_not_supported_handler() (in module celery.apps.worker)
install_platform_tweaks() (celery.apps.worker.Worker method)
install_signal_handler() (in module celery.platforms)
install_sync_handler() (celery.apps.beat.Beat method)
install_worker_int_again_handler() (in module celery.apps.worker)
install_worker_int_handler() (in module celery.apps.worker)
install_worker_restart_handler() (in module celery.apps.worker)
install_worker_term_handler() (in module celery.apps.worker)
instantiate() (in module celery.utils)
InvalidResponseError
InvalidTaskError
ired() (celery.utils.term.colored method)
is_aborted() (celery.contrib.abortable.AbortableAsyncResult method)
(celery.contrib.abortable.AbortableTask method)
is_alive() (celery.concurrency.processes.pool.Pool.Process method)
(celery.concurrency.processes.TaskPool.Pool.Process method)
is_due() (celery.beat.ScheduleEntry method)
(celery.schedules.crontab method)
(celery.schedules.schedule method)
(celery.task.PeriodicTask method)
(celery.task.base.PeriodicTask method)
is_iterable() (in module celery.utils)
is_locked() (celery.platforms.PIDFile method)
isatty() (celery.log.LoggingProxy method)
items (celery.worker.buckets.FastQueue attribute)
(celery.worker.buckets.TaskBucket attribute)
(celery.worker.buckets.TokenBucketQueue attribute)
items() (celery.utils.compat.OrderedDict method)
iterate() (celery.result.TaskSetResult method)
iteritems() (celery.utils.compat.OrderedDict method)
iterkeys() (celery.utils.compat.OrderedDict method)
itersubtasks() (celery.result.TaskSetResult method)
itervalues() (celery.utils.compat.OrderedDict method)
iwhite() (celery.utils.term.colored method)
iyellow() (celery.utils.term.colored method)

J

join() (celery.concurrency.processes.pool.Pool method)
(celery.concurrency.processes.TaskPool.Pool method)
(celery.concurrency.processes.TaskPool.Pool.Process method)
(celery.concurrency.processes.pool.Pool.Process method)
(celery.result.TaskSetResult method)

K

key (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)
keyalias (celery.events.cursesmon.CursesMonitor attribute)
keymap (celery.events.cursesmon.CursesMonitor attribute)
keys() (celery.utils.compat.OrderedDict method)
keyspace (celery.backends.cassandra.CassandraBackend attribute)
KeyValueStoreBackend (class in celery.backends.base)
kill() (celery.bin.celeryd_multi.MultiTool method)
kwargs (celery.beat.ScheduleEntry attribute)
(celery.worker.job.TaskRequest attribute)
kwdict() (in module celery.utils)

L

last_run_at (celery.beat.ScheduleEntry attribute)
length (celery.datastructures.PositionQueue attribute)
limit (celery.concurrency.processes.TaskPool attribute)
(celery.events.cursesmon.CursesMonitor attribute)
LimitedSet (class in celery.datastructures)
listener (celery.apps.worker.Worker.WorkController attribute)
(celery.worker.WorkController attribute)
load_settings() (in module celery.loaders)
Loader (class in celery.loaders.default)
LocalCache (class in celery.datastructures)
LockFailed
LOG_LEVELS (in module celery.conf)
log_with_extra() (in module celery.utils.compat)
logfile (celery.apps.worker.Worker.WorkController attribute), [1]
(celery.worker.WorkController attribute), [1]
logger (celery.apps.worker.Worker.WorkController attribute)
(celery.beat.Scheduler attribute)
(celery.concurrency.processes.TaskPool attribute)
(celery.worker.WorkController attribute)
(celery.worker.listener.CarrotListener attribute)
LoggingProxy (class in celery.log)
loglevel (celery.apps.worker.Worker.WorkController attribute), [1]
(celery.log.LoggingProxy attribute)
(celery.worker.WorkController attribute), [1]
lookup_route() (celery.routes.Router method)

M

magenta() (celery.utils.term.colored method)
mail_admins() (celery.loaders.base.BaseLoader method)
(in module celery.utils.mail)
MAIL_HOST
setting
MAIL_HOST (in module celery.conf)
MAIL_HOST_PASSWORD
setting
MAIL_HOST_PASSWORD (in module celery.conf)
MAIL_HOST_USER
setting
MAIL_HOST_USER (in module celery.conf)
MAIL_PORT
setting
MAIL_PORT (in module celery.conf)
Mailer (class in celery.utils.mail)
main() (in module celery.bin.camqadm)
(in module celery.bin.celerybeat)
(in module celery.bin.celeryctl)
(in module celery.bin.celeryd)
(in module celery.bin.celeryd_multi)
(in module celery.bin.celeryev)
make_request() (celery.task.http.HttpDispatch method)
mandatory (celery.task.base.Task attribute)
(Task attribute)
(celery.task.Task attribute), [1]
map() (celery.concurrency.processes.pool.Pool method)
(celery.concurrency.processes.TaskPool.Pool method)
map_async() (celery.concurrency.processes.pool.Pool method)
(celery.concurrency.processes.TaskPool.Pool method)
MapRoute (class in celery.routes)
mark_as_done() (celery.backends.base.BaseBackend method)
mark_as_failure() (celery.backends.base.BaseBackend method)
mark_as_retry() (celery.backends.base.BaseBackend method)
mark_as_revoked() (celery.backends.base.BaseBackend method)
mark_as_started() (celery.backends.base.BaseBackend method)
mattrgetter() (in module celery.utils)
MAX_CACHED_RESULTS (in module celery.conf)
max_interval (celery.beat.Scheduler attribute)
max_retries (celery.task.base.Task attribute)
(Task attribute)
(celery.task.Task attribute), [1]
MaxRetriesExceededError
maybe_conn_error() (celery.worker.listener.CarrotListener method)
maybe_due() (celery.beat.Scheduler method)
maybe_expire() (celery.worker.job.TaskRequest method)
maybe_iso8601() (in module celery.utils)
maybe_promise() (in module celery.utils)
maybe_schedule() (in module celery.schedules)
maybe_utf8() (in module celery.task.http)
mediator (celery.apps.worker.Worker.WorkController attribute)
(celery.worker.WorkController attribute)
Mediator (class in celery.worker.controllers)
merge() (celery.events.state.Task method)
(celery.worker.state.Persistent method)
(in module celery.routes)
merge_inplace() (celery.beat.Scheduler method)
merge_rules (celery.events.state.Task attribute)
message (celery.worker.job.TaskRequest attribute)
Message (class in celery.utils.mail)
method (celery.task.http.HttpDispatchTask attribute), [1]
(celery.task.HttpDispatchTask attribute), [1]
minute (celery.schedules.crontab attribute)
mitemgetter() (in module celery.utils)
mode (celery.log.LoggingProxy attribute)
MongoBackend (class in celery.backends.mongodb)
mongodb_database (celery.backends.mongodb.MongoBackend attribute)
mongodb_host (celery.backends.mongodb.MongoBackend attribute)
mongodb_password (celery.backends.mongodb.MongoBackend attribute)
mongodb_port (celery.backends.mongodb.MongoBackend attribute)
mongodb_taskmeta_collection (celery.backends.mongodb.MongoBackend attribute)
mongodb_user (celery.backends.mongodb.MongoBackend attribute)
move() (celery.worker.controllers.Mediator method)
move_selection() (celery.events.cursesmon.CursesMonitor method)
move_selection_down() (celery.events.cursesmon.CursesMonitor method)
move_selection_up() (celery.events.cursesmon.CursesMonitor method)
mpromise (class in celery.utils)
multi_args() (in module celery.bin.celeryd_multi)
MultiTool (class in celery.bin.celeryd_multi)
MutableURL (class in celery.task.http)

N

name (celery.beat.ScheduleEntry attribute)
(Task attribute)
(celery.concurrency.processes.TaskPool.Pool.Process attribute)
(celery.concurrency.processes.pool.Pool.Process attribute)
(celery.contrib.abortable.AbortableTask attribute)
(celery.log.LoggingProxy attribute)
(celery.task.HttpDispatchTask attribute)
(celery.task.Task attribute), [1]
(celery.task.base.Task attribute)
(celery.task.builtins.AsynchronousMapTask attribute)
(celery.task.builtins.ExecuteRemoteTask attribute)
(celery.task.builtins.PingTask attribute)
(celery.task.builtins.backend_cleanup attribute)
(celery.task.http.HttpDispatchTask attribute)
names() (celery.bin.celeryd_multi.MultiTool method)
NamespacedOptionParser (class in celery.bin.celeryd_multi)
nap() (celery.events.cursesmon.CursesMonitor method)
needs_reconnect (celery.bin.camqadm.AMQShell attribute)
next (celery.worker.listener.QoS attribute)
next() (celery.beat.ScheduleEntry method)
(celery.utils.timer2.Timer method)
no_ack (celery.backends.amqp.ResultConsumer attribute)
(celery.messaging.BroadcastConsumer attribute)
(celery.messaging.ControlReplyConsumer attribute)
(celery.messaging.EventConsumer attribute)
no_color() (celery.utils.term.colored method)
node() (celery.utils.term.colored method)
node_alive() (celery.bin.celeryd_multi.MultiTool method)
noop() (in module celery.utils)
NOSE_VERBOSE
NotConfigured
note() (celery.bin.celeryd_multi.MultiTool method)
NotRegistered

O

on_accepted() (celery.worker.job.TaskRequest method)
on_ack (celery.worker.job.TaskRequest attribute)
on_cleanup() (celery.events.snapshot.Polaroid method)
on_control() (celery.worker.listener.CarrotListener method)
on_decode_error (celery.messaging.ConsumerSet attribute), [1]
on_decode_error() (celery.worker.listener.CarrotListener method)
on_error (celery.utils.timer2.Schedule attribute)
on_event() (celery.events.dumper.Dumper method)
on_failed() (celery.events.state.Task method)
on_failure() (celery.task.base.Task method)
(celery.task.Task method)
(celery.worker.job.TaskRequest method)
on_heartbeat() (celery.events.state.Worker method)
on_listener_ready() (celery.apps.worker.Worker method)
on_offline() (celery.events.state.Worker method)
on_online() (celery.events.state.Worker method)
on_process_cleanup() (celery.loaders.base.BaseLoader method)
on_ready() (celery.concurrency.processes.TaskPool method)
(celery.concurrency.threads.TaskPool method)
on_received() (celery.events.state.Task method)
on_retried() (celery.events.state.Task method)
on_retry() (celery.task.base.Task method)
(celery.task.Task method)
(celery.worker.job.TaskRequest method)
on_revoked() (celery.events.state.Task method)
on_shutter() (celery.events.snapshot.Polaroid method)
on_started() (celery.events.state.Task method)
on_succeeded() (celery.events.state.Task method)
on_success() (celery.task.base.Task method)
(celery.task.Task method)
(celery.worker.job.TaskRequest method)
on_task() (celery.worker.listener.CarrotListener method)
on_task_init() (celery.loaders.base.BaseLoader method)
on_tick (celery.utils.timer2.Timer attribute)
on_timeout() (celery.worker.job.TaskRequest method)
on_timer_error() (celery.apps.worker.Worker.WorkController method)
(celery.worker.WorkController method)
on_timer_tick() (celery.apps.worker.Worker.WorkController method)
(celery.worker.WorkController method)
on_worker_error() (celery.concurrency.processes.TaskPool method)
on_worker_init() (celery.loaders.base.BaseLoader method)
(celery.loaders.default.Loader method)
onecmd() (celery.bin.camqadm.AMQShell method)
online_str (celery.events.cursesmon.CursesMonitor attribute)
open() (celery.backends.pyredis.RedisBackend method)
(celery.backends.tyrant.TyrantBackend method)
(celery.platforms.DaemonContext method)
(celery.worker.state.Persistent method)
option_list (celery.bin.base.Command attribute)
(celery.bin.celeryctl.Command attribute)
(celery.bin.celeryctl.apply attribute)
(celery.bin.celeryctl.inspect attribute)
(celery.bin.celeryctl.result attribute)
(celery.bin.celeryctl.status attribute)
optmerge() (celery.bin.celeryd_multi.NamespacedOptionParser method)
OrderedDict (class in celery.utils.compat)
osx_proxy_detection_workaround() (celery.apps.worker.Worker method)
out() (celery.bin.celeryctl.Command method)
override_backends (celery.loaders.base.BaseLoader attribute)

P

padlist() (in module celery.utils)
Panel (class in celery.worker.control.registry)
parse() (celery.bin.celeryd_multi.NamespacedOptionParser method)
(celery.schedules.crontab_parser method)
parse_gid() (in module celery.platforms)
parse_ns_range() (in module celery.bin.celeryd_multi)
parse_options() (celery.bin.base.Command method)
(in module celery.bin.camqadm)
(in module celery.bin.celeryev)
parse_uid() (in module celery.platforms)
parseline() (celery.bin.camqadm.AMQShell method)
Parser (celery.bin.base.Command attribute)
PATH
PENDING
state
periodic() (celery.registry.TaskRegistry method)
periodic_task() (in module celery.decorators)
PeriodicTask (class in celery.task)
(class in celery.task.base)
persistence (celery.beat.PersistentScheduler attribute)
Persistent (class in celery.worker.state)
PersistentScheduler (class in celery.beat)
pid (celery.concurrency.processes.pool.Pool.Process attribute)
(celery.concurrency.processes.TaskPool.Pool.Process attribute)
PIDFile (class in celery.platforms)
ping
control
ping() (celery.task.control.inspect method)
(in module celery.task)
(in module celery.task.control)
(in module celery.worker.control.builtins)
pingback() (in module celery.concurrency.processes)
PingTask (class in celery.task.builtins)
Polaroid (class in celery.events.snapshot)
poll() (celery.backends.amqp.AMQPBackend method)
pool (celery.apps.worker.Worker.WorkController attribute)
(celery.worker.WorkController attribute)
Pool (class in celery.concurrency.processes.pool)
Pool.Process (class in celery.concurrency.processes.pool)
Pool.ResultHandler (class in celery.concurrency.processes.pool)
Pool.SoftTimeLimitExceeded
Pool.Supervisor (class in celery.concurrency.processes.pool)
Pool.TaskHandler (class in celery.concurrency.processes.pool)
Pool.TimeoutHandler (class in celery.concurrency.processes.pool)
pop() (celery.registry.TaskRegistry method)
(celery.utils.compat.OrderedDict method)
pop_value() (celery.datastructures.LimitedSet method)
popitem() (celery.utils.compat.OrderedDict method)
PositionQueue (class in celery.datastructures)
PositionQueue.UnfilledPosition (class in celery.datastructures)
post_async() (celery.task.http.URL method)
precedence() (in module celery.states)
prepare() (in module celery.routes)
prepare_exception() (celery.backends.base.BaseBackend method)
prepare_value() (celery.backends.base.BaseBackend method)
prettify() (celery.bin.celeryctl.Command method)
prettify_dict_ok_error() (celery.bin.celeryctl.Command method)
prettify_list() (celery.bin.celeryctl.Command method)
prev (celery.worker.listener.QoS attribute)
priority (celery.task.Task attribute)
(Task attribute)
process() (celery.events.EventReceiver method)
process_cleanup() (celery.backends.base.BaseBackend method)
(celery.backends.cassandra.CassandraBackend method)
(celery.backends.mongodb.MongoBackend method)
(celery.backends.pyredis.RedisBackend method)
(celery.backends.tyrant.TyrantBackend method)
process_initializer() (in module celery.worker)
process_long_opt() (celery.bin.celeryd_multi.NamespacedOptionParser method)
process_short_opt() (celery.bin.celeryd_multi.NamespacedOptionParser method)
process_task() (celery.apps.worker.Worker.WorkController method)
(celery.worker.WorkController method)
promise (class in celery.utils)
prompt (celery.bin.camqadm.AMQShell attribute)
prompt_fmt (celery.bin.camqadm.AMQShell attribute)
PROPAGATE_STATES
state
Publisher (celery.beat.Scheduler attribute)
(celery.task.TaskSet attribute)
(celery.task.sets.TaskSet attribute)
purge_messages() (celery.apps.worker.Worker method)
put() (celery.worker.buckets.TaskBucket method)
(celery.worker.buckets.TokenBucketQueue method)
put_nowait() (celery.worker.buckets.TaskBucket method)
(celery.worker.buckets.TokenBucketQueue method)

Q

QoS (class in celery.worker.listener)
qsize() (celery.worker.buckets.TaskBucket method)
(celery.worker.buckets.TokenBucketQueue method)
query (celery.task.http.MutableURL attribute)
queue (celery.messaging.BroadcastConsumer attribute)
(Task attribute)
(celery.messaging.EventConsumer attribute)
(celery.messaging.TaskConsumer attribute)
(celery.task.Task attribute), [1]
(celery.task.base.Task attribute)
(celery.utils.timer2.Schedule attribute)
(celery.utils.timer2.Timer attribute)
QueueNotFound
QUEUES (in module celery.conf)
quote() (in module celery.bin.celeryd_multi)

R

rate() (in module celery.utils.timeutils)
rate_limit
control
rate_limit (celery.task.base.Task attribute)
(Task attribute)
(celery.task.Task attribute), [1]
rate_limit() (in module celery.task.control)
(in module celery.worker.control.builtins)
RateLimitExceeded
read_configuration() (celery.loaders.default.Loader method)
read_pid() (celery.platforms.PIDFile method)
readline() (celery.events.cursesmon.CursesMonitor method)
ready (celery.events.state.Task attribute)
ready() (celery.result.BaseAsyncResult method)
(celery.result.EagerResult method)
(celery.result.TaskSetResult method)
ready_queue (celery.apps.worker.Worker.WorkController attribute)
(celery.worker.WorkController attribute)
(celery.worker.controllers.Mediator attribute)
(celery.worker.listener.CarrotListener attribute)
READY_STATES
state
READY_STATES (celery.backends.base.BaseBackend attribute)
receive_message() (celery.worker.listener.CarrotListener method)
receivers (celery.utils.dispatch.signal.Signal attribute)
red() (celery.utils.term.colored method)
redirect_stdouts_to_logger() (celery.apps.worker.Worker method)
(in module celery.log)
redis_connect_retry (celery.backends.pyredis.RedisBackend attribute)
REDIS_DB
setting
redis_db (celery.backends.pyredis.RedisBackend attribute)
REDIS_HOST
setting
redis_host (celery.backends.pyredis.RedisBackend attribute), [1]
REDIS_PASSWORD
setting
redis_password (celery.backends.pyredis.RedisBackend attribute)
REDIS_PORT
setting
redis_port (celery.backends.pyredis.RedisBackend attribute), [1]
redis_timeout (celery.backends.pyredis.RedisBackend attribute)
RedisBackend (class in celery.backends.pyredis)
refresh() (celery.worker.buckets.TaskBucket method)
register() (celery.registry.TaskRegistry method)
(celery.worker.control.ControlDispatch.Panel class method)
(celery.worker.control.registry.Panel class method)
registered_tasks() (celery.task.control.inspect method)
regular() (celery.registry.TaskRegistry method)
relative (celery.schedules.schedule attribute)
(celery.task.PeriodicTask attribute), [1]
(celery.task.base.PeriodicTask attribute)
release() (celery.platforms.PIDFile method)
reload_task_result() (celery.backends.amqp.AMQPBackend method)
(celery.backends.base.BaseBackend method)
(celery.backends.base.BaseDictBackend method)
reload_taskset_result() (celery.backends.amqp.AMQPBackend method)
(celery.backends.base.BaseBackend method)
(celery.backends.base.BaseDictBackend method)
remaining() (in module celery.utils.timeutils)
remaining_estimate() (celery.schedules.crontab method)
(celery.schedules.schedule method)
(celery.task.PeriodicTask method)
(celery.task.base.PeriodicTask method)
RemoteExecuteError
remove() (celery.platforms.PIDFile method)
remove_if_stale() (celery.platforms.PIDFile method)
repeatlast() (in module celery.utils)
reply() (celery.worker.control.ControlDispatch method)
ReplyPublisher (celery.worker.control.ControlDispatch attribute)
ReplyTo (celery.messaging.BroadcastPublisher attribute)
repr_result() (celery.worker.job.TaskRequest method)
reserve() (celery.beat.Scheduler method)
reserved() (celery.task.control.inspect method)
reset() (celery.utils.term.colored method)
reset_connection() (celery.worker.listener.CarrotListener method)
reset_signal() (in module celery.platforms)
resetscreen() (celery.events.cursesmon.CursesMonitor method)
respond() (celery.bin.camqadm.AMQShell method)
restart() (celery.bin.celeryd_multi.MultiTool method)
restart_heartbeat() (celery.worker.listener.CarrotListener method)
restore() (celery.result.TaskSetResult class method)
(celery.serialization.UnpickleableExceptionWrapper method)
restore_taskset() (celery.backends.amqp.AMQPBackend method)
(celery.backends.base.BaseBackend method)
(celery.backends.base.BaseDictBackend method)
result (celery.db.models.Task attribute)
(celery.db.models.TaskSet attribute)
(celery.result.BaseAsyncResult attribute)
(celery.result.EagerResult attribute)
(class in celery.bin.celeryctl)
RESULT_BACKEND (in module celery.conf)
RESULT_EXCHANGE (in module celery.conf)
ResultConsumer (class in celery.backends.amqp)
ResultPublisher (class in celery.backends.amqp)
ResultSession() (celery.backends.database.DatabaseBackend method)
(in module celery.db.session)
retcode (celery.bin.celeryd_multi.MultiTool attribute)
RETRY
state
retry() (celery.task.base.Task class method)
(celery.task.Task class method)
retry_msg (celery.worker.job.TaskRequest attribute)
retry_over_time() (in module celery.utils)
RetryTaskError
reverse() (celery.utils.term.colored method)
revoke() (celery.result.BaseAsyncResult method)
(celery.result.EagerResult method)
(celery.result.TaskSetResult method)
(in module celery.task.control)
(in module celery.worker.control.builtins)
REVOKE_EXPIRES (in module celery.worker.state)
revoke_selection() (celery.events.cursesmon.CursesMonitor method)
REVOKED
state
revoked (in module celery.worker.state)
revoked() (celery.task.control.inspect method)
(celery.worker.job.TaskRequest method)
route() (celery.routes.Router method)
route_for_task() (celery.routes.MapRoute method)
Router (class in celery.routes)
routing_key (celery.messaging.EventConsumer attribute)
(Task attribute)
(celery.messaging.EventPublisher attribute)
(celery.messaging.TaskConsumer attribute)
(celery.messaging.TaskPublisher attribute)
(celery.task.Task attribute), [1]
(celery.task.base.Task attribute)
run() (celery.apps.beat.Beat method)
(celery.apps.worker.Worker method)
(celery.bin.base.Command method)
(celery.bin.camqadm.AMQPAdmin method)
(celery.bin.celerybeat.BeatCommand method)
(celery.bin.celeryctl.Command method)
(celery.bin.celeryctl.apply method)
(celery.bin.celeryctl.help method)
(celery.bin.celeryctl.inspect method)
(celery.bin.celeryctl.result method)
(celery.bin.celeryctl.status method)
(celery.bin.celeryd.WorkerCommand method)
(celery.concurrency.processes.TaskPool.Pool.Process method)
(celery.concurrency.processes.pool.Pool.Process method)
(celery.events.cursesmon.DisplayThread method)
(celery.task.HttpDispatchTask method)
(celery.task.Task method)
(celery.task.base.Task method)
(celery.task.builtins.AsynchronousMapTask method)
(celery.task.builtins.ExecuteRemoteTask method)
(celery.task.builtins.PingTask method)
(celery.task.builtins.backend_cleanup method)
(celery.task.http.HttpDispatchTask method)
(celery.utils.timer2.Timer method)
(celery.worker.controllers.Mediator method)
(celery.worker.heartbeat.Heart method)
run_celerybeat() (in module celery.apps.beat)
run_celeryev() (in module celery.bin.celeryev)
run_every (celery.task.base.PeriodicTask attribute)
(celery.task.PeriodicTask attribute)
run_from_argv() (celery.bin.celeryctl.Command method)
run_worker() (celery.apps.worker.Worker method)
(in module celery.apps.worker)
running (celery.utils.timer2.Timer attribute)

S

safe_apply_callback() (celery.concurrency.processes.TaskPool method)
safe_ref() (in module celery.utils.dispatch.saferef)
save() (celery.result.TaskSetResult method)
(celery.worker.state.Persistent method)
save_taskset() (celery.backends.amqp.AMQPBackend method)
(celery.backends.base.BaseBackend method)
(celery.backends.base.BaseDictBackend method)
say() (celery.bin.camqadm.AMQPAdmin method)
(celery.bin.camqadm.AMQShell method)
(celery.bin.celeryctl.inspect method)
(in module celery.bin.camqadm)
(in module celery.bin.celeryd_multi)
schedule (celery.beat.ScheduleEntry attribute)
(celery.beat.Scheduler attribute), [1]
(class in celery.schedules)
Schedule (class in celery.utils.timer2)
schedule_controller (celery.apps.worker.Worker.WorkController attribute)
(celery.worker.WorkController attribute)
scheduled() (celery.task.control.inspect method)
ScheduleEntry (class in celery.beat)
scheduler (celery.apps.beat.Beat.Service attribute)
(celery.beat.Service attribute)
Scheduler (class in celery.beat)
scheduler_cls (celery.apps.beat.Beat.Service attribute)
(celery.beat.Service attribute)
SchedulingError
screen_delay (celery.events.cursesmon.CursesMonitor attribute)
screen_width (celery.events.cursesmon.CursesMonitor attribute)
selected_position (celery.events.cursesmon.CursesMonitor attribute)
selected_str (celery.events.cursesmon.CursesMonitor attribute)
selected_task (celery.events.cursesmon.CursesMonitor attribute)
selection_info() (celery.events.cursesmon.CursesMonitor method)
selection_rate_limit() (celery.events.cursesmon.CursesMonitor method)
selection_result() (celery.events.cursesmon.CursesMonitor method)
selection_traceback() (celery.events.cursesmon.CursesMonitor method)
send() (celery.events.EventDispatcher method)
(celery.messaging.BroadcastPublisher method)
(celery.utils.dispatch.signal.Signal method)
(celery.utils.mail.Mailer method)
send_error_email() (celery.worker.job.TaskRequest method)
send_error_emails (celery.task.base.Task attribute)
(Task attribute)
(celery.task.Task attribute), [1]
send_event() (celery.worker.job.TaskRequest method)
send_events (celery.apps.worker.Worker.WorkController attribute)
(celery.worker.WorkController attribute)
(celery.worker.listener.CarrotListener attribute)
SEND_EVENTS (in module celery.conf)
send_robust() (celery.utils.dispatch.signal.Signal method)
send_task() (celery.beat.Scheduler method)
(in module celery.execute)
SendmailWarning
serializer (celery.backends.amqp.ResultPublisher attribute)
(Task attribute)
(celery.messaging.EventPublisher attribute)
(celery.messaging.TaskPublisher attribute)
(celery.task.Task attribute), [1]
(celery.task.base.Task attribute)
SERVER_EMAIL
setting
SERVER_EMAIL (in module celery.conf)
servers (celery.backends.cassandra.CassandraBackend attribute), [1]
Service (class in celery.beat)
set() (celery.backends.base.KeyValueStoreBackend method)
(celery.backends.cache.CacheBackend method)
(celery.backends.cache.DummyClient method)
(celery.backends.pyredis.RedisBackend method)
(celery.backends.tyrant.TyrantBackend method)
(celery.worker.listener.QoS method)
set_effective_user() (in module celery.platforms)
set_loglevel() (in module celery.worker.control.builtins)
set_mp_process_title() (in module celery.platforms)
set_process_status() (celery.apps.worker.Worker method)
(in module celery.bin.celeryev)
set_process_title() (celery.apps.beat.Beat method)
(in module celery.platforms)
setdefault() (celery.utils.compat.OrderedDict method)
setegid() (in module celery.platforms)
seteuid() (in module celery.platforms)
setting
ADMINS
BROKER_BACKEND
BROKER_CONNECTION_TIMEOUT
BROKER_HOST
BROKER_PASSWORD
BROKER_PORT
BROKER_USER
BROKER_USE_SSL
BROKER_VHOST
CELERYBEAT_LOG_FILE
CELERYBEAT_LOG_LEVEL
CELERYBEAT_MAX_LOOP_INTERVAL
CELERYBEAT_SCHEDULE
CELERYBEAT_SCHEDULER
CELERYBEAT_SCHEDULE_FILENAME
CELERYD_CONCURRENCY
CELERYD_ETA_SCHEDULER
CELERYD_ETA_SCHEDULER_PRECISION
CELERYD_LISTENER
CELERYD_LOG_FILE
CELERYD_LOG_FORMAT
CELERYD_LOG_LEVEL
CELERYD_MAX_TASKS_PER_CHILD
CELERYD_MEDIATOR
CELERYD_POOL
CELERYD_PREFETCH_MULTIPLIER
CELERYD_SEND_TASK_ERROR_EMAILS
CELERYD_STATE_DB
CELERYD_TASK_LOG_FORMAT
CELERYD_TASK_SOFT_TIME_LIMIT
CELERYD_TASK_TIME_LIMIT
CELERYMON_LOG_FILE
CELERYMON_LOG_LEVEL
CELERY_ACKS_LATE
CELERY_ALWAYS_EAGER
CELERY_AMQP_TASK_RESULT_EXPIRES
CELERY_BROADCASTS_EXCHANGE
CELERY_BROADCAST_EXCHANGE_TYPE
CELERY_BROADCAST_QUEUE
CELERY_BROKER_CONNECTION_MAX_RETRIES
CELERY_BROKER_CONNECTION_RETRY
CELERY_CACHE_BACKEND
CELERY_CACHE_BACKEND_OPTIONS
CELERY_CREATE_MISSING_QUEUES
CELERY_DEFAULT_DELIVERY_MODE
CELERY_DEFAULT_EXCHANGE
CELERY_DEFAULT_EXCHANGE_TYPE
CELERY_DEFAULT_QUEUE
CELERY_DEFAULT_RATE_LIMIT
CELERY_DEFAULT_ROUTING_KEY
CELERY_DISABLE_RATE_LIMITS
CELERY_EAGER_PROPAGATES_EXCEPTIONS
CELERY_EVENT_EXCHANGE
CELERY_EVENT_EXCHANGE_TYPE
CELERY_EVENT_QUEUE
CELERY_EVENT_ROUTING_KEY
CELERY_EVENT_SERIALIZER
CELERY_IGNORE_RESULT
CELERY_IMPORTS
CELERY_MAX_CACHED_RESULTS
CELERY_MONGODB_BACKEND_SETTINGS
CELERY_QUEUES
CELERY_REDIRECT_STDOUTS
CELERY_REDIRECT_STDOUTS_LEVEL
CELERY_RESULT_BACKEND
CELERY_RESULT_DBURI
CELERY_RESULT_ENGINE_OPTIONS
CELERY_RESULT_EXCHANGE
CELERY_RESULT_EXCHANGE_TYPE
CELERY_RESULT_PERSISTENT
CELERY_RESULT_SERIALIZER
CELERY_ROUTES
CELERY_SEND_EVENTS
CELERY_STORE_ERRORS_EVEN_IF_IGNORED
CELERY_TASK_ERROR_WHITELIST
CELERY_TASK_RESULT_EXPIRES
CELERY_TASK_SERIALIZER
CELERY_TRACK_STARTED
MAIL_HOST
MAIL_HOST_PASSWORD
MAIL_HOST_USER
MAIL_PORT
REDIS_DB
REDIS_HOST
REDIS_PASSWORD
REDIS_PORT
SERVER_EMAIL
TT_HOST
TT_PORT
setup_loader() (in module celery.loaders)
setup_logger() (in module celery.log)
setup_logging() (celery.apps.beat.Beat method)
setup_logging_subsystem() (in module celery.log)
setup_results() (in module celery.db.session)
setup_schedule() (celery.beat.PersistentScheduler method)
(celery.beat.Scheduler method)
setup_settings() (celery.loaders.default.Loader method)
setup_task_logger() (in module celery.log)
SharedCounter (class in celery.datastructures)
shortinfo() (celery.worker.job.TaskRequest method)
show() (celery.bin.celeryd_multi.MultiTool method)
shutdown
control
shutdown() (in module celery.worker.control.builtins)
shutdown_nodes() (celery.bin.celeryd_multi.MultiTool method)
shutter() (celery.events.snapshot.Polaroid method)
shutter_signal (celery.events.snapshot.Polaroid attribute)
Signal (class in celery.utils.dispatch.signal)
signal_node() (celery.bin.celeryd_multi.MultiTool method)
SilenceRepeated (class in celery.log)
SoftTimeLimitExceeded
Spec (class in celery.bin.camqadm)
splash() (celery.bin.celeryd_multi.MultiTool method)
start() (celery.apps.beat.Beat.Service method)
(celery.apps.worker.Worker.WorkController method)
(celery.beat.Service method)
(celery.bin.celeryd_multi.MultiTool method)
(celery.concurrency.processes.TaskPool method)
(celery.concurrency.processes.TaskPool.Pool.Process method)
(celery.concurrency.processes.pool.Pool.Process method)
(celery.concurrency.threads.TaskPool method)
(celery.worker.WorkController method)
(celery.worker.listener.CarrotListener method)
start_scheduler() (celery.apps.beat.Beat method)
STARTED
state
startup_info() (celery.apps.beat.Beat method)
(celery.apps.worker.Worker method)
state
ALL_STATES
EXCEPTION_STATES
FAILURE
PENDING
PROPAGATE_STATES
READY_STATES
RETRY
REVOKED
STARTED
SUCCESS
UNREADY_STATES
state (celery.result.BaseAsyncResult attribute)
(celery.result.EagerResult attribute)
State (class in celery.events.state)
state (class in celery.states)
stats() (celery.task.control.inspect method)
(in module celery.worker.control.builtins)
status (celery.db.models.Task attribute)
(celery.result.BaseAsyncResult attribute)
(celery.result.EagerResult attribute)
(class in celery.bin.celeryctl)
stop() (celery.apps.beat.Beat.Service method)
(celery.apps.worker.Worker.WorkController method)
(celery.beat.Service method)
(celery.bin.celeryd_multi.MultiTool method)
(celery.concurrency.processes.TaskPool method)
(celery.concurrency.threads.TaskPool method)
(celery.utils.timer2.Timer method)
(celery.worker.WorkController method)
(celery.worker.controllers.Mediator method)
(celery.worker.heartbeat.Heart method)
(celery.worker.listener.CarrotListener method)
stop_consumers() (celery.worker.listener.CarrotListener method)
storage (celery.worker.state.Persistent attribute)
store_errors_even_if_ignored (celery.task.base.Task attribute)
(celery.task.Task attribute), [1]
STORE_ERRORS_EVEN_IF_IGNORED (in module celery.conf)
store_errors_even_if_ignored (Task attribute)
store_result() (celery.backends.amqp.AMQPBackend method)
(celery.backends.base.BaseBackend method)
(celery.backends.base.BaseDictBackend method)
str_args_to_python() (celery.bin.camqadm.Spec method)
strargv() (in module celery.platforms)
subclass_exception() (in module celery.serialization)
subtask (class in celery.task.sets)
subtask() (celery.task.base.Task class method)
(celery.task.Task class method)
subtasks (celery.result.TaskSetResult attribute)
SUCCESS
state
success_msg (celery.worker.job.TaskRequest attribute)
successful() (celery.result.BaseAsyncResult method)
(celery.result.EagerResult method)
(celery.result.TaskSetResult method)
sync() (celery.apps.beat.Beat.Service method)
(celery.beat.PersistentScheduler method)
(celery.beat.Scheduler method)
(celery.beat.Service method)
(celery.worker.state.Persistent method)

T

task (celery.task.sets.TaskSet attribute)
(celery.task.TaskSet attribute)
Task (class in celery.db.models)
(class in celery.events.state)
(class in celery.task)
(class in celery.task.base)
task() (in module celery.decorators)
Task.MaxRetriesExceededError, [1]
task_accepted() (in module celery.worker.state)
task_count (celery.events.state.State attribute)
task_event() (celery.events.state.State method)
task_id (celery.db.models.Task attribute)
(celery.result.AsyncResult attribute)
(celery.result.BaseAsyncResult attribute)
(celery.worker.job.TaskRequest attribute)
task_name (celery.task.sets.TaskSet attribute)
(celery.task.TaskSet attribute)
(celery.worker.job.TaskRequest attribute)
task_postrun (in module celery.signals)
task_prerun (in module celery.signals)
task_ready() (in module celery.worker.state)
TASK_RESULT_EXPIRES (in module celery.conf)
task_sent (in module celery.signals)
TASK_SERIALIZER (in module celery.conf)
task_types() (celery.events.state.State method)
TaskBucket (class in celery.worker.buckets)
TaskConsumer (class in celery.messaging)
tasklist() (celery.apps.worker.Worker method)
TaskPool (class in celery.concurrency.processes)
(class in celery.concurrency.threads)
TaskPool.Pool (class in celery.concurrency.processes)
TaskPool.Pool.Process (class in celery.concurrency.processes)
TaskPool.Pool.ResultHandler (class in celery.concurrency.processes)
TaskPool.Pool.SoftTimeLimitExceeded
TaskPool.Pool.Supervisor (class in celery.concurrency.processes)
TaskPool.Pool.TaskHandler (class in celery.concurrency.processes)
TaskPool.Pool.TimeoutHandler (class in celery.concurrency.processes)
TaskPublisher (class in celery.messaging)
TaskRegistry (class in celery.registry)
TaskRegistry.NotRegistered
TaskRequest (class in celery.worker.job)
TaskRevokedError
tasks (celery.events.cursesmon.CursesMonitor attribute)
(celery.task.TaskSet attribute)
(celery.task.sets.TaskSet attribute)
tasks_by_timestamp() (celery.events.state.State method)
tasks_by_type() (celery.events.state.State method)
tasks_by_worker() (celery.events.state.State method)
TaskSet (class in celery.db.models)
(class in celery.task)
(class in celery.task.sets)
taskset_id (celery.db.models.TaskSet attribute)
(celery.result.TaskSetResult attribute)
TaskSetResult (class in celery.result)
TaskTrace (class in celery.execute.trace)
TaskType (class in celery.task.base)
terminate() (celery.apps.worker.Worker.WorkController method)
(celery.concurrency.processes.TaskPool method)
(celery.concurrency.processes.TaskPool.Pool method)
(celery.concurrency.processes.TaskPool.Pool.Process method)
(celery.concurrency.processes.pool.Pool method)
(celery.concurrency.processes.pool.Pool.Process method)
(celery.worker.WorkController method)
textindent() (in module celery.utils.info)
thaw() (State method)
tick() (celery.beat.Scheduler method)
time_start (celery.worker.job.TaskRequest attribute)
timedelta_seconds() (celery.task.base.PeriodicTask method)
(celery.task.PeriodicTask method)
(in module celery.utils.timeutils)
TimedFunctionFailed
TimeLimitExceeded
timeout (celery.task.http.HttpDispatch attribute)
TimeoutError
Timer (class in celery.utils.timer2)
Timer.Entry (class in celery.utils.timer2)
timestamp (celery.datastructures.TokenBucket attribute)
to_dict() (celery.db.models.Task method)
(celery.db.models.TaskSet method)
to_timestamp() (in module celery.utils.timer2)
TokenBucket (class in celery.datastructures)
TokenBucketQueue (class in celery.worker.buckets)
TokenBucketQueue.RateLimitExceeded
total (celery.result.TaskSetResult attribute)
(celery.task.TaskSet attribute)
(celery.task.sets.TaskSet attribute)
total_count (in module celery.worker.state)
total_run_count (celery.beat.ScheduleEntry attribute)
trace() (celery.execute.trace.TraceInfo class method)
traceback (celery.datastructures.ExceptionInfo attribute)
(celery.db.models.Task attribute)
(celery.result.BaseAsyncResult attribute)
(celery.result.EagerResult attribute)
TraceInfo (class in celery.execute.trace)
track_started (celery.task.base.Task attribute)
(celery.task.Task attribute), [1]
TRACK_STARTED (in module celery.conf)
track_started (Task attribute)
truncate_text() (in module celery.utils)
TT_HOST
setting
TT_PORT
setting
type (celery.task.base.Task attribute)
(celery.task.PeriodicTask attribute)
(celery.task.Task attribute), [1]
tyrant_host (celery.backends.tyrant.TyrantBackend attribute), [1]
tyrant_port (celery.backends.tyrant.TyrantBackend attribute), [1]
TyrantBackend (class in celery.backends.tyrant)

U

underline() (celery.utils.term.colored method)
UnknownStatusError
UnpickleableExceptionWrapper
UNREADY_STATES
state
UNREADY_STATES (celery.backends.base.BaseBackend attribute)
unregister() (celery.registry.TaskRegistry method)
update() (celery.beat.ScheduleEntry method)
(celery.datastructures.LimitedSet method)
(celery.events.state.Task method)
(celery.utils.compat.OrderedDict method)
(celery.worker.listener.QoS method)
update_bucket_for_type() (celery.worker.buckets.TaskBucket method)
update_from_dict() (celery.beat.Scheduler method)
update_state() (celery.task.base.Task method)
(celery.task.Task method)
url (celery.task.http.HttpDispatchTask attribute), [1]
(celery.task.HttpDispatchTask attribute), [1]
URL (class in celery.task.http)
usage() (celery.bin.base.Command method)
(celery.bin.celeryctl.Command method)
(celery.bin.celeryctl.help method)
(celery.bin.celeryctl.inspect method)
(celery.bin.celeryd_multi.MultiTool method)
user_agent (celery.task.http.HttpDispatch attribute)
utf8dict() (in module celery.task.http)

V

values() (celery.utils.compat.OrderedDict method)
verify_exclusive() (celery.messaging.BroadcastConsumer method)
version (celery.bin.base.Command attribute)
(celery.bin.celeryctl.Command attribute)

W

wait() (celery.result.BaseAsyncResult method)
(celery.result.EagerResult method)
(celery.worker.buckets.FastQueue method)
(celery.worker.buckets.TokenBucketQueue method)
wait_for() (celery.backends.amqp.AMQPBackend method)
(celery.backends.base.BaseBackend method)
waitexec() (celery.bin.celeryd_multi.MultiTool method)
waiting() (celery.result.TaskSetResult method)
wanted_module_item() (in module celery.loaders.default)
weak_func (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)
weak_self (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)
weekday() (in module celery.utils.timeutils)
white() (celery.utils.term.colored method)
win (celery.events.cursesmon.CursesMonitor attribute)
windows_main() (in module celery.bin.celeryd)
with_connection() (in module celery.messaging)
with_detacher_default_options() (celery.bin.celeryd_multi.MultiTool method)
WorkController (class in celery.worker)
Worker (class in celery.apps.worker)
(class in celery.events.state)
Worker.WorkController (class in celery.apps.worker)
worker_event() (celery.events.state.State method)
worker_init (in module celery.signals)
worker_init() (celery.apps.worker.Worker method)
worker_initialized (celery.loaders.base.BaseLoader attribute)
worker_process_init (in module celery.signals)
worker_ready (in module celery.signals)
worker_shutdown (in module celery.signals)
WorkerCommand (class in celery.bin.celeryd)
WorkerLostError
workers (celery.events.cursesmon.CursesMonitor attribute)
WorkerTaskTrace (class in celery.worker.job)
write() (celery.log.LoggingProxy method)
write_pid() (celery.platforms.PIDFile method)
writelines() (celery.log.LoggingProxy method)

Y

yellow() (celery.utils.term.colored method)
PKYDDYb$$celery-2.1-archived/faq.html Frequently Asked Questions — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Frequently Asked Questions

General

What kinds of things should I use Celery for?

Answer: Queue everything and delight everyone is a good article describing why you would use a queue in a web context.

These are some common use cases:

  • Running something in the background. For example, to finish the web request as soon as possible, then update the users page incrementally. This gives the user the impression of good performance and “snappiness”, even though the real work might actually take some time.
  • Running something after the web request has finished.
  • Making sure something is done, by executing it asynchronously and using retries.
  • Scheduling periodic work.

And to some degree:

  • Distributed computing.
  • Parallel execution.

Misconceptions

Is Celery dependent on pickle?

Answer: No.

Celery can support any serialization scheme and has support for JSON/YAML and Pickle by default. You can even send one task using pickle, and another one with JSON seamlessly, this is because every task is associated with a content-type. The default serialization scheme is pickle because it’s the most used, and it has support for sending complex objects as task arguments.

You can set a global default serializer, the default serializer for a particular Task, or even what serializer to use when sending a single task instance.

Is Celery for Django only?

Answer: No.

Celery does not depend on Django anymore. To use Celery with Django you have to use the django-celery package.

Do I have to use AMQP/RabbitMQ?

Answer: No.

You can also use Redis or an SQL database, see Using other queues.

Redis or a database won’t perform as well as an AMQP broker. If you have strict reliability requirements you are encouraged to use RabbitMQ or another AMQP broker. Redis/database also use polling, so they are likely to consume more resources. However, if you for some reason are not able to use AMQP, feel free to use these alternatives. They will probably work fine for most use cases, and note that the above points are not specific to Celery; If using Redis/database as a queue worked fine for you before, it probably will now. You can always upgrade later if you need to.

Is Celery multilingual?

Answer: Yes.

celeryd is an implementation of Celery in python. If the language has an AMQP client, there shouldn’t be much work to create a worker in your language. A Celery worker is just a program connecting to the broker to process messages.

Also, there’s another way to be language independent, and that is to use REST tasks, instead of your tasks being functions, they’re URLs. With this information you can even create simple web servers that enable preloading of code. See: User Guide: Remote Tasks.

Troubleshooting

MySQL is throwing deadlock errors, what can I do?

Answer: MySQL has default isolation level set to REPEATABLE-READ, if you don’t really need that, set it to READ-COMMITTED. You can do that by adding the following to your my.cnf:

[mysqld]
transaction-isolation = READ-COMMITTED

For more information about InnoDB`s transaction model see MySQL - The InnoDB Transaction Model and Locking in the MySQL user manual.

(Thanks to Honza Kral and Anton Tsigularov for this solution)

Why is Task.delay/apply*/celeryd just hanging?

Answer: There is a bug in some AMQP clients that will make it hang if it’s not able to authenticate the current user, the password doesn’t match or the user does not have access to the virtual host specified. Be sure to check your broker logs (for RabbitMQ that is /var/log/rabbitmq/rabbit.log on most systems), it usually contains a message describing the reason.

Why won’t celeryd run on FreeBSD?

Answer: multiprocessing.Pool requires a working POSIX semaphore implementation which isn’t enabled in FreeBSD by default. You have to enable POSIX semaphores in the kernel and manually recompile multiprocessing.

Luckily, Viktor Petersson has written a tutorial to get you started with Celery on FreeBSD here: http://www.playingwithwire.com/2009/10/how-to-get-celeryd-to-work-on-freebsd/

Why aren’t my tasks processed?

Answer: With RabbitMQ you can see how many consumers are currently receiving tasks by running the following command:

$ rabbitmqctl list_queues -p <myvhost> name messages consumers
Listing queues ...
celery     2891    2

This shows that there’s 2891 messages waiting to be processed in the task queue, and there are two consumers processing them.

One reason that the queue is never emptied could be that you have a stale worker process taking the messages hostage. This could happen if celeryd wasn’t properly shut down.

When a message is received by a worker the broker waits for it to be acknowledged before marking the message as processed. The broker will not re-send that message to another consumer until the consumer is shut down properly.

If you hit this problem you have to kill all workers manually and restart them:

ps auxww | grep celeryd | awk '{print $2}' | xargs kill

You might have to wait a while until all workers have finished the work they’re doing. If it’s still hanging after a long time you can kill them by force with:

ps auxww | grep celeryd | awk '{print $2}' | xargs kill -9

Why won’t my Task run?

Answer: There might be syntax errors preventing the tasks module being imported.

You can find out if Celery is able to run the task by executing the task manually:

>>> from myapp.tasks import MyPeriodicTask
>>> MyPeriodicTask.delay()

Watch celeryd`s log file to see if it’s able to find the task, or if some other error is happening.

How do I discard all waiting tasks?

Answer: Use discard_all(), like this:

>>> from celery.task.control import discard_all
>>> discard_all()
1753

The number 1753 is the number of messages deleted.

You can also start celeryd with the --discard argument which will accomplish the same thing.

I’ve discarded messages, but there are still messages left in the queue?

Answer: Tasks are acknowledged (removed from the queue) as soon as they are actually executed. After the worker has received a task, it will take some time until it is actually executed, especially if there are a lot of tasks already waiting for execution. Messages that are not acknowledged are held on to by the worker until it closes the connection to the broker (AMQP server). When that connection is closed (e.g. because the worker was stopped) the tasks will be re-sent by the broker to the next available worker (or the same worker when it has been restarted), so to properly purge the queue of waiting tasks you have to stop all the workers, and then discard the tasks using discard_all().

Results

How do I get the result of a task if I have the ID that points there?

Answer: Use Task.AsyncResult:

>>> result = MyTask.AsyncResult(task_id)
>>> result.get()

This will give you a BaseAsyncResult instance using the tasks current result backend.

If you need to specify a custom result backend you should use celery.result.BaseAsyncResult directly:

>>> from celery.result import BaseAsyncResult
>>> result = BaseAsyncResult(task_id, backend=...)
>>> result.get()

Security

Isn’t using pickle a security concern?

Answer: Yes, indeed it is.

You are right to have a security concern, as this can indeed be a real issue. It is essential that you protect against unauthorized access to your broker, databases and other services transmitting pickled data.

For the task messages you can set the CELERY_TASK_SERIALIZER setting to “json” or “yaml” instead of pickle. There is currently no alternative solution for task results (but writing a custom result backend using JSON is a simple task)

Note that this is not just something you should be aware of with Celery, for example also Django uses pickle for its cache client.

Can messages be encrypted?

Answer: Some AMQP brokers supports using SSL (including RabbitMQ). You can enable this using the BROKER_USE_SSL setting.

It is also possible to add additional encryption and security to messages, if you have a need for this then you should contact the Mailing list.

Is it safe to run celeryd as root?

Answer: No!

We’re not currently aware of any security issues, but it would be incredibly naive to assume that they don’t exist, so running the Celery services (celeryd, celerybeat, celeryev, etc) as an unprivileged user is recommended.

Brokers

Why is RabbitMQ crashing?

Answer: RabbitMQ will crash if it runs out of memory. This will be fixed in a future release of RabbitMQ. please refer to the RabbitMQ FAQ: http://www.rabbitmq.com/faq.html#node-runs-out-of-memory

Note

This is no longer the case, RabbitMQ versions 2.0 and above includes a new persister, that is tolerant to out of memory errors. RabbitMQ 2.1 or higher is recommended for Celery.

If you’re still running an older version of RabbitMQ and experience crashes, then please upgrade!

Misconfiguration of Celery can eventually lead to a crash on older version of RabbitMQ. Even if it doesn’t crash, this can still consume a lot of resources, so it is very important that you are aware of the common pitfalls.

  • Events.

Running celeryd with the -E/--events option will send messages for events happening inside of the worker.

Events should only be enabled if you have an active monitor consuming them, or if you purge the event queue periodically.

  • AMQP backend results.

When running with the AMQP result backend, every task result will be sent as a message. If you don’t collect these results, they will build up and RabbitMQ will eventually run out of memory.

If you don’t use the results for a task, make sure you set the ignore_result option:

Results can also be disabled globally using the CELERY_IGNORE_RESULT setting.

Note

Celery version 2.1 added support for automatic expiration of AMQP result backend results.

To use this you need to run RabbitMQ 2.1 or higher and enable the CELERY_AMQP_TASK_RESULT_EXPIRES setting.

Can I use Celery with ActiveMQ/STOMP?

Answer: Yes, but this is somewhat experimental for now. It is working ok in a test configuration, but it has not been tested in production. If you have any problems using STOMP with Celery, please report an issue here:

http://github.com/ask/celery/issues/

The STOMP carrot backend requires the stompy library:

$ pip install stompy
$ cd python-stomp
$ sudo python setup.py install
$ cd ..

In this example we will use a queue called celery which we created in the ActiveMQ web admin interface.

Note: When using ActiveMQ the queue name needs to have "/queue/" prepended to it. i.e. the queue celery becomes /queue/celery.

Since STOMP doesn’t have exchanges and the routing capabilities of AMQP, you need to set exchange name to the same as the queue name. This is a minor inconvenience since carrot needs to maintain the same interface for both AMQP and STOMP.

Use the following settings in your celeryconfig.py/ django settings.py:

# Use the stomp carrot backend.
CARROT_BACKEND = "stomp"

# STOMP hostname and port settings.
BROKER_HOST = "localhost"
BROKER_PORT = 61613

# The queue name to use (the exchange *must* be set to the
# same as the queue name when using STOMP)
CELERY_DEFAULT_QUEUE = "/queue/celery"
CELERY_DEFAULT_EXCHANGE = "/queue/celery"

CELERY_QUEUES = {
    "/queue/celery": {"exchange": "/queue/celery"}
}

What features are not supported when using ghettoq/STOMP?

This is a (possible incomplete) list of features not available when using the STOMP backend:

  • routing keys
  • exchange types (direct, topic, headers, etc)
  • immediate
  • mandatory

Tasks

Can I execute a task by name?

Answer: Yes. Use celery.execute.send_task(). You can also execute a task by name from any language that has an AMQP client.

>>> from celery.execute import send_task
>>> send_task("tasks.add", args=[2, 2], kwargs={})
<AsyncResult: 373550e8-b9a0-4666-bc61-ace01fa4f91d>

How can I get the task id of the current task?

Answer: Celery does set some default keyword arguments if the task accepts them (you can accept them by either using **kwargs, or list them specifically):

@task
def mytask(task_id=None):
    cache.set(task_id, "Running")

The default keyword arguments are documented here: http://celeryq.org/docs/userguide/tasks.html#default-keyword-arguments

Can I specify a custom task_id?

Answer: Yes. Use the task_id argument to apply_async():

>>> task.apply_async(args, kwargs, task_id="...")

Can I use decorators with tasks?

Answer: Yes. But please see note at Decorating tasks.

Can I use natural task ids?

Answer: Yes, but make sure it is unique, as the behavior for two tasks existing with the same id is undefined.

The world will probably not explode, but at the worst they can overwrite each others results.

How can I run a task once another task has finished?

Answer: You can safely launch a task inside a task. Also, a common pattern is to use callback tasks:

@task()
def add(x, y, callback=None):
    result = x + y
    if callback:
        subtask(callback).delay(result)
    return result


@task(ignore_result=True)
def log_result(result, **kwargs):
    logger = log_result.get_logger(**kwargs)
    logger.info("log_result got: %s" % (result, ))

Invocation:

>>> add.delay(2, 2, callback=log_result.subtask())

See Sets of tasks, Subtasks and Callbacks for more information.

Can I cancel the execution of a task?

Answer: Yes. Use result.revoke:

>>> result = add.apply_async(args=[2, 2], countdown=120)
>>> result.revoke()

or if you only have the task id:

>>> from celery.task.control import revoke
>>> revoke(task_id)

Why aren’t my remote control commands received by all workers?

Answer: To receive broadcast remote control commands, every worker node uses its host name to create a unique queue name to listen to, so if you have more than one worker with the same host name, the control commands will be received in round-robin between them.

To work around this you can explicitly set the host name for every worker using the --hostname argument to celeryd:

$ celeryd --hostname=$(hostname).1
$ celeryd --hostname=$(hostname).2

etc., etc...

Can I send some tasks to only some servers?

Answer: Yes. You can route tasks to an arbitrary server using AMQP, and a worker can bind to as many queues as it wants.

See Routing Tasks for more information.

Can I change the interval of a periodic task at runtime?

Answer: Yes. You can override PeriodicTask.is_due or turn PeriodicTask.run_every into a property:

class MyPeriodic(PeriodicTask):

    def run(self):
        # ...

    @property
    def run_every(self):
        return get_interval_from_database(...)

Does celery support task priorities?

Answer: No. In theory, yes, as AMQP supports priorities. However RabbitMQ doesn’t implement them yet.

The usual way to prioritize work in Celery, is to route high priority tasks to different servers. In the real world this may actually work better than per message priorities. You can use this in combination with rate limiting to achieve a highly responsive system.

Should I use retry or acks_late?

Answer: Depends. It’s not necessarily one or the other, you may want to use both.

Task.retry is used to retry tasks, notably for expected errors that is catchable with the try: block. The AMQP transaction is not used for these errors: if the task raises an exception it is still acknowledged!.

The acks_late setting would be used when you need the task to be executed again if the worker (for some reason) crashes mid-execution. It’s important to note that the worker is not known to crash, and if it does it is usually an unrecoverable error that requires human intervention (bug in the worker, or task code).

In an ideal world you could safely retry any task that has failed, but this is rarely the case. Imagine the following task:

@task()
def process_upload(filename, tmpfile):
    # Increment a file count stored in a database
    increment_file_counter()
    add_file_metadata_to_db(filename, tmpfile)
    copy_file_to_destination(filename, tmpfile)

If this crashed in the middle of copying the file to its destination the world would contain incomplete state. This is not a critical scenario of course, but you can probably imagine something far more sinister. So for ease of programming we have less reliability; It’s a good default, users who require it and know what they are doing can still enable acks_late (and in the future hopefully use manual acknowledgement)

In addition Task.retry has features not available in AMQP transactions: delay between retries, max retries, etc.

So use retry for Python errors, and if your task is reentrant combine that with acks_late if that level of reliability is required.

Can I schedule tasks to execute at a specific time?

Answer: Yes. You can use the eta argument of Task.apply_async().

Or to schedule a periodic task at a specific time, use the celery.task.schedules.crontab schedule behavior:

from celery.task.schedules import crontab
from celery.decorators import periodic_task

@periodic_task(run_every=crontab(hours=7, minute=30, day_of_week="mon"))
def every_monday_morning():
    print("This is run every Monday morning at 7:30")

How do I shut down celeryd safely?

Answer: Use the TERM signal, and the worker will finish all currently executing jobs and shut down as soon as possible. No tasks should be lost.

You should never stop celeryd with the KILL signal (-9), unless you’ve tried TERM a few times and waited a few minutes to let it get a chance to shut down. As if you do tasks may be terminated mid-execution, and they will not be re-run unless you have the acks_late option set (Task.acks_late / CELERY_ACKS_LATE).

Windows

celeryd keeps spawning processes at startup

Answer: This is a known issue on Windows. You have to start celeryd with the command:

$ python -m celeryd.bin.celeryd

Any additional arguments can be appended to this command.

See http://bit.ly/bo9RSw

The -B / --beat option to celeryd doesn’t work?

Answer: That’s right. Run celerybeat and celeryd as separate services instead.

django-celery can’t find settings?

Answer: You need to specify the --settings argument to manage.py:

$ python manage.py celeryd start --settings=settings

See http://bit.ly/bo9RSw

Previous topic

Tutorial: Creating a click counter using carrot and celery

Next topic

API Reference

This Page

PKYDD B_[_[celery-2.1-archived/objects.inv# Sphinx inventory version 2 # Project: Celery # Version: 2.1 # The remainder of this file is compressed using zlib. xڽ}YF~##nL.Ivw_T$ewb"U"'O.XsϬ~vD&DY~RyQy6y;)(ۡv>fdXkwLS_&7?==kL lrii:L3v(9wqT=$дofC+N 3e{Lki6Wry\noȴ4{l>Y:Ln?GWߖSD/~uSʇS^ U;]ۛϷr]|8?/uty{sܮnor~>6zz3m z>7}~t~OWheV竫f7okw7 't`רB zgoRmXNJVrxm歮oы~YDl Ymi[ Z]d~]o~ϵntuͷ e9.T~T=$ɼ$>jwxr7=Q0 Hv}=rn{jKdxMr=].׿ͯܕg=j|y ˫o:Z,]u a]9Z v~;n?ݚnF|qXFfsnVq(ϫetK"O<}3DR.=o"yX >*Zߘox/\g^]~]7"3ˀ \oѷ/-Z!7ؑ~rpl<'æe] tfgڕ & "mB.Γ1& ]]37a?l뭫 G|5v#sLjy+wC9Z}]/nw?Wl E+Xi/?-_khǽtpAvj'w k?F ݋?št傺I}_]"zD؍MDu%*AK[c7/S^P~!nsiy%x j8ڌ}U ,1Kق*'BrC$Ji9~b.!GtпLVu79>o0MPS՟_^7^MjR? 3Ae'/q=d5Iovyt7qv7ȮZ,T~3 v%_h yyty\MKTgs7ƛrB?I3#1Th.W(K&U~D Gx%v4w#>kߢ{-'X<[=~.߳E<UU4= B'o :fGƓ[{%_)=StGI)̥ŷ98a2ױ<^G; Ur:s~߿9YZæɿ 89a˛@FMd5MțfҬFe: #5:B+xJ1N{FN{ߧi^}߇`=0邿/iu4@?7&_v3 T aSA>lV2%gf(yx}iu*IJL$b^OgΠFkc ].4?G}q;6X㷺OJF?5ovLrMs;?=L5Uܵw0a#[a/>Vi xT# K",.zOc,Q Yrn5z _빧 _u$)/ү7xFP/ErO+=5~ŏṞ>l7CQx)LAg XhW֠g3IW`ʄ;C;7l%OGd Ϣ?|ί8/Zz@nIsp "\ˋtgxZ>.6,˚&-wS-C9V7LWN/f<͕M9OXΟE{g{~o<=7x}x[2-=Xbv̀v87p)RDXf5~nfr32=- Y_ՓuW>K(Ŋ^miY_qZ?3MD$݊WSU)׆g,6MTbêF7lk>3)=Zt|_68#5lAbWE35i_5>8dZOԅS_1)W#V)'[&Tot/ \WSC:mLcgMIwfhѓft~9a{r*::V{G|\A{T;[o4bqtk ^bt vP ҧ@S55.N|{> v7&w0wI3HOcnO7C~|Cvp^6AiIK>=? ֕x_O7iUaG)[-񕉃 0L/(*wT? _ČM_ZRJK$LM$ i/zX /KaZ/`d)a9-g꤉Mr,0`GM=1~Fk"OAKE@-bQ3Y,~.$~F*1K !̺ce1imbk1UBFimo10!mtQ^ny ~ <&`4>۸X(QoMLo3q><zВ-al0b)X9^Jh6 9bYjLoY+k l /Փ뜨|$tGe̟񮄴Y/z-xE0u#%|cQɕm:f?Nf ڰ HMbl69cd61#^@S6ZiدdCI&mw8m.߂AMGЇض`baC"} >'si":¿?SlfN`p!v=2#q< 7'??Fh `z읩~,Al}APh|*"+$^ѿ;#OT)VmZ xGQa#ElYe3M.@ a,C q=j|n2WNȥMNs8T9XfKs}% s ;wsٓͽ%D[:cxUz$G9TClY&O~ԟ5}n N,%9t`'ta3#A{d(,<_Й!.g`~ѳm=lqgg dԦ6Z@?pI`ư=a|B : ~)hGu20R(H Ml4H@҉@<<6% h ćc3Ҫ\\ӡsee8hHEX6Cنtn6nv0B їgVVݠZ7AB4BXgqQ𣴫-'Ȕ&Xv<6īeOd@/uvyD'od9)"*,@]SV~?o=4OM q::GM⨗tv Ғ)`|4!̤&0!_%" <2eLNwfxSg,?l )[tn 4S53@=Japl$'Cz|޼U.pkh Npp9E`uѻG?9b?e IZ*Cx|D0U_PY`6h:H,n*A.`aӐB/P~<=PMDթUEMy^hs$O`d\}& Sѻ?S;i>/B;y;>Y[?aһ쌁`.B3uvyצE{9Zm]b3JC Eu2tOpCnv F&@w)u)Tjtu%dI=95s̬E ;b9B(-]U˓7RꝭO\fPLuI䢈988G`g2UcR?SZ fJޭYu-:seQIx^nvpSn.oG'{o7vM9yU2YyNV٭xG2AP3S$BwfC>"}{zFv^܏ƶЏg hlH0|}׮,Tf%\,YtZ 2W@׽HW5PΎ)B&:,HǐyyD$.ù9Sq3a8qHw(vEGzbCCK#:3[T*AEgf >.7mr#NnHF,'Y f $a Zi&" q͒:W&wV`#2S$5:a+4]yk&^~^!a1DTƺQۓl^S_pM @@#޽.\ʫC!o(SV}J~ MJمŐ4.EgFs]3=G3)7i**v˜[Ibagͅ/_! ǼDc~,l4jT/]xYg<""1>⻦BL QPj@xTvҭ*Zzk[jb*XĤXVZ|'2F~S2Ql$L\sa]1£- yrg"ί@l9"C58)Hs36N,l#!,"'t_ OhLnpܪ#5Z˧C#*9s=/R9iNRuzEnpx&}Id0wo C^hLiσ\cL{<۴c{SV, IK^?~ M}d"9?r9zQЍ7ZhX h,Y^ȄNՔ=?'4I+Ka@n5f*rfnP.?!5c-$"Nl4ﴋK|2)~ ՅO{ V:uEfu͜a^hs0,S=Gm-xI ,$ѝn-+6Bl gPN% \M=m*|{PDt@( >DsQpC,/Κ fsX}n|5'&[wZ=O]P+Vp.BػI55FVᗓ`7݊xzʏ_wK褎͓94aI}]@IEzAȂCɳK+\3$<'$&}xě%;z4$V.J$tK(]'.H2뢗̺0N(]E/ta̺ , )`y ֯|7)?|}7) ͭ{ lh#;+fDfq" 5\{Mɰ?DQ3@kyx:zZ̒x G} fiy$WWi+ky si0L=Qzi&MZ5N3<Ӧ"` @~MZCS)zFc%>#rF(s,/s7IF4nÌt86rhW$fኊ}V2iZE5a#zdGR~ȧ}-n5' h %W4rq (+z)W '˻&lGy\i:c3B[=*ܫ{ >^œ7K'`T!a/ nD{B_.uG _i3FI놙-D(^Ҥ~ ) ;^QG #{;|}=I*JT%<ojed<:%!o\q啵)F7NY Eib;Tyӄ|{+ƎR$SEU rk õ\nJ;$O3#T 3+($39ݨ9liJ3Ls;3t { ݉_<MleIDRސQnW g1,VCę~ lA  1x` :bN2;$DDJ(57Ab5w1ܒ BD e.T EIE8+YzF 5aVSn_Gl|3P[%GN`꣗"N)}˭li. 잪j(ڢ(GIAb! +V~W)ӚuVD^? zXlsĖ-[J X<9YGsl4W.t#h"Ȃvfn.d嬋'l>rFGQ;;Q*+FR*Rϛ֋DOl&Cpf@q4XR^"8M{?"g!>hRЛ7?GpLWSx ۇouS~/&j?VƍȌ2_:" I ?c/1;#A>}mTPu>GeQaoĠ]o,w5 k@yS /yR[G3]Olcoc8ok_ssE n`xXVhJ]<uq':BjBfA@ԅ:S/PTɦ^K=[0lOiBJ҉~\η.Zl.;D]sU"ZqGW;QCӢ^YWڨmjCPdUC_4!r2?ՃGEdn @4Uvpa~Kjc:%tgZ#f~pRx.jTڧQGU'sA NJ66MVPbR{Y1hdZؔ-K8#'o[ |z<8{Ê>CC}}E89O}8|a{ݓI' nalήD7BRT\SÈ5bPv2U!g ̜K-4U˯5։2\QBIh4hd $#'Qs󱺩>ی cצ>7y͙6OE;[wהʳ5O{,6K^dnl$ַ4aExD`>q*Xcf`2$]$(e_wbr NQ!٤;?*x BhRuد+d)X!X|2ÂU6+B;(Dܯ,KbS#8'OlOZS' @e{7zcnوc;}H63xM>tP >rHMgv`W ]PhENM)Ap-QPdh*cP,"Β Ivz-[DO tam@|m@KbSJm-SOأӐc q2)Į Պsv1Ò|aP (yO[DVVhء&O Qr "Y?lh xp^q{o*z1#Iev*7M<kqYdS$GzJkno-ZZmp[$5>ЭfV7H;okC)y=8&TDwjX|ZK{A7v#kg C. V ǧBY<_yT(?Aݰq]xXIiJmM=0l᲌@@uEi<}Xb!tUKݬm* RGkiܡ;0T8L1l8;I@ː":e9^!g>dJ׫u͙J|[1~HThGH !IG-IGuX]ee-`>.C8c4r55jVV#CnJ:$ $Hc@#4"b 滧Z^S/ꔽfbk ʃ{61~m-0,~ _ lqמHGٱ!GVҮb@y0ױbO\{րt\H;7 d{63Kg+3OďrF/o>#~e+Xۦ8q)0e eIQ'̞b9=_LCN5~ǷgC r Xp:*KtébR1ۂ+WlkMmp#v` k~mW{A34Vgj;W[A5H%K22Ut:ܔ =W`waDj)J!9Gv'Ð16j-!Ez'iAuT(}L%( aitph}j%}ky&&hs 1E1}sQǬ? utި嵗4 i"Լ9"0 1j71#{|͊tt@^rη[É zRm]7:xl+T\-+w'F64f2c0'C`ڄncRzUi1Q,#yrj^D{\KBHF* 92;QDU٬腢gmA''~ir"hR{6k2 }YL\nuf:RFF@ye L8c0a5&F,( XmC?fv@aG85.c8fL?ˇ*H~F|_{IE&=%F!NfÖŰ/[usܢ#눭co~\^[tWDl-6I2lyOڢ,p_c=!wjqα|]!1wH4C /Z"ֆWmC,Uק6$MoSe9CrvMH#[# gKϙEl4GkèmK"̤t(NB'u{3 3k C6}ޚVz@O*Jg |j>TA<"L1Z ]M12#3pe.oon$P#!h3OIqK A+foܶ\?Qb@Fm)j, Cx[&b|Q@p7fsgXՓp+~oͩ@ϠZ#5SN2*ٛ{J)*H/*8L-CMX~SEF?Yݴ!W[ŕiڙ}SQJ@=vU F8 ӽ%HjÕiZu%\&,W;#?x/{z\`֓h6/S+] ;+@ud,ɕ$g.+(8EKszeeq+߷˶,^7 o,)ȅ~ TB∎$#d~uH>ʷZҼoVșiiVQr (5#lzoUbIcXr2Pg*!7ynFB gY -; L5DWg³shQCUi@ľ!oR ak'8tEy @l:,F=[&iNLo!zZCC 2/ \xA<9 Dz_70l\z,?{HZ+YJm"/m{ cHI1.,uX >vG{:GOU̦9n6j~XQUBlu7^ڶ{A|B/}niOIl6ooK ]B:FPȶ?c P.h{K2vura* =]JmɰC(T܀t(f#_qG5/8:$UImҹl>LcPחAY IY +aEG1'kx^4/v? :ZKuDՑ.VVPk܋NOZ1lA~ ${ n<-=u)*נHwC%މ/m7QNܰCFQ=iR͍U9c>̙CnwwEu Al¿7We[q#*|73ql P׆Lv/Xx1VnUYHC+@.Uti-t,C 5z$k-DkAa z򀎃lFpr LUyu~-W3U5c%?}lZ1NY!}RϤ]`[YhYH]C<OgZd@kceY]o[ g?du =Cǐ4kYxޖz% J&o|X+ԉ4 lc_M!sC¤G|u'SW5FޑKXEiX4juZP"SgZ{%\ \j׊1S20b-2<̢-\%Ch C2T))PU!շQ_#/PfL*u;7y dWGsw> tn_>өȇ,+z% (0A#:)t(Z*6 T4VޭRlczi#2D,"=*?.zW1QMC(%=4L pNpc" 4Y|ÖIÒ@%Avtm,r޻eȋ=7IgS:[7b^I^29̠8ay$.}1@ah(! ظt3X^yiɺLNXtSpqVLHîdgn䤥f jAC>|3QKVuԋ!X_H|J_'WKҚ}^MtENɥI(<2, [mĥ&#nG?2P=8N/fDo5p :uP^EI"cJ[mϱ?a-lgJ(֩yCAbjsjaPlPPւE!^%@Uvϐq ŵvrrȶ 6۝kaj[Hc< L(C͖)~KIXY~AO55Fʸ)M^MsEBq;Y g_G)tʝM\u>58:/ix?Yޣb^,V-D׷Q:c =e[`U\Xm?ai)M@kZ4CY,9͐.1 u}e /OA=V euc0x#ʹ nD] x{JiyZX}-../mnUGA1.Ϣ <*5`ʡ5KA%8n}mGP9}\xEт$LVFH. Pg2? w+^ U?$3ei+UPgji#{(ys.n "gpl汤?Ic0~r4eM܆EfLibWnaߨժpjc_| 4,ϫ 5!zBg[Za9 'w~iR^ S؆Ւp̯Bô3^m4ijQttq%Bu`a`M-+UV4I8N]hZ3<^peju04$b!EP `dZD .Uۛ4YoY1eh,zMr ;ȚJHan 5!ʵ#iђ=eK!V$*CBP,ASlm/oo.˛?< +ߔJAC;m8BE S#LF֗ U / fp@ 5-rqbpaƞk P}En˯b^c4Sw-]+BRP-B^hkDhv}$PKGP̑8 XyBaV3:1t~қȠ3אwv@54EXL EiƯlCTCn579%NJ@J`POVX#T=l5݆\fGa„BڟA:czb/?fТt[GN{?t<L?.(cb]}10?HPe. llnM1ǣb: Mam;(ø@ kb.ѪtʰA:􍊲H38MꏑNUAS ?{UEr<ې 2 KLm&LIѾ̏YJhjΌVH #EXD\ CBe&C';:]S>B8\vX[cJ63'(J4ixIkOVI)Z5 3!'xm vS|&2I)ڞ8Ɋ H׻D|bz\uJפv-vo3!lC$ϋ= n6Nh CRmyY lEA׮NJ@hƯ21xvwF^1﷊`0gwp$ ^%/Af-yWqΏa-!} KoHQkFqt# vZT6ڷMjV>Oyw(7Vjv]WCC2;zBgY0z & !qj6'iT{3e1Q4yAF CkqDuN Ac!g%U T "/8s.Oe9HBC#'B gc䒦 ugcҜ45HhJs6EP`W W,/a!=LJ ĿŒ-{kG%zs H%߈1ۈX-YS8>0j#^6˛Emyݸr)!/TX9??z? mZū*(UV%LiR֒h<F#R}HJ&8@ǨЫFTEPi_wf$DWT0JkK( f _iSwQc0e cGdGs,Ka:no5= ~Щ); U t{*3Wp$|o mlcfTIO*s$# 7Dv-!q9Eۯ:s@ڄ-EڢˋheSEhArbqYstL+dzm?B&5t̝)宰5(ePK fI:sX J*W'Cn޴3(lH@I20O{$}oQ?3!JQFMp@<_Gl?^-|V+kH؏CЏ7r*Tް*I#@ܶQ'ǃIG]~8_1*2`:XN]lgxut"}"҄&>aRX"d) -O z4 S9h-:<62 e\ AR,ջ۵#~lT @XK[wa``8m RZ4-y-\\-r%Ð~䈣~TNJLsTJȕqCA.?+ . "iXD7z۠4jqUi::e9}OmIN~vK-z&-8윖D_MȤYř|[ | C^^6;AҸTlXi4*#V6ۡO,l8.;c?SWH!u{G9a1#֏i/XLxF}ͷ: nȁq3!+i"7a)dH2.}JM{$:Dy;ZGA\CS_~|^F?){A0zHn^35tDT%$ 1Q`S"F/4Zu=BN\ėE/{h$1S e`ltՄa5z{ߠ1j^:NN/D󭣓dXf 4׷<=va%M^7a4rbO4ue䍽C3ͦf.h G9Gz4VA~hC%cT}x3嚤9&[Ě 6LĎ"L;YPa_ޡJU:wy#4`VT~إ! (a-#(tu_`u |@qd FGb@}0 {IV=fk=tua<$v=%l>"D]|_CuMa=5A )oRQ55 rAXVp-JT%؟"17ő kE MZU!MAin85+)%E&o8CtV]vqQ٩euUZLr*j$C@}>< c)vSe~jI`R:Y))nv Zim!sx\֗ JT?/(mb15˘Ã&zP~"!Tqfq{3b@kg2 tc5+'o=*hmp[689ocW6|+TR."N؈_Va}L%0aś.v*veticp_gfsvHt?$'яyz=m([`5tU$s6VߏkvwiXOST{oC]_Z~}" @ Wa}z밡-2 U$|8 Te!!`!}ʪ9V&:*ŇKH Qe>'-(𞺐=OU`Ug:x=c\jeVQ4eB#3˒f!itmЃ];C2H phl)Ԉ`YmʀWLsUmWM55-LE$aAvYc@1]ݯ8#(WjkTΝ$:!X&12l݋r ahĎ!ܳ5QѤ Z޲FBO|znIΘqrެ$CV85-]>GpGŮSi= G2DH!9d3^*t-%woJS\۔r:q#WiY56 61Ʒt ^(Ѧ rk81aܤDA'<`xk1j"JgNũn@ >J,fKN D WiLUÈDb0INԹ`CTt!^o[(Б V5m*i&4%wɡfpqTVi2 +gԶޏzWW2zz4_ONG7Q."k|IEcjI);eGMX{/nUgH" 58/Nz<8l0w؇p úZwۣDJ|֣Z sح{mt{e@Ԩe/`L#$@cAcz2*ddn>[S+_KTJ ?| XO,J&I]pa@ceпܒ̺^i}"U6iQ/|_ycUsR6#BOa6dT=e]}됸 I2b`pF;FBq%±{"0%݊vrĵ 1ar<{AzUt)wCkoӶ~ΛOli+&zTWha~1?e5]|؝jGk$艱e40P| 4R <#̶$O3"iyGIFN-dmø&L;^ JSފO؅(,Ԥhy :d98eypݧe]+vdF]%FAz. nE0i( WȰ|!|#`n Zx KK6qztc78+4g屾6@al `VWNoOP e35:t,pt,w!u ai$4{-&'NqmIJeaCHq{2Ͱ5SU3wc˽^.Vڭ}kh 8{G|q9߸Ҋ1.g`˘x`Wi.0fU)Vz!1ݎ~ܽ$%8yб Y+w׶[۴F;U3Ὑ7 lP*vPmy,,6QNݻɒ5 ͟!@<D1MĐgyҚi=Y.EJP?Զ…,|ve9O24 C^ 7$xo3F)=RBx@V HR=wDc ?e]ͷeieZ'hM-'d-9`Q$G(7h#8~AZҤy ͺ ›~xhj۳&?-8~Tiv,^ {7`.Kg}^zٜԁx: ]V!;=DC$bɎi٬A.;Sզʩ%@\:PB[vw-u]3t wt8UPKYDDT1TTcelery-2.1-archived/index.html Celery - Distributed Task Queue — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Celery - Distributed Task Queue

Contents:

Indices and tables

Celery

Celery is a Distributed Task Queue for Python.

This Page

PKYDDO>992celery-2.1-archived/_images/celery_favicon_128.pngPNG  IHDR>atEXtSoftwareAdobe ImageReadyqe<9RIDATx} Wy{nFҌeٲ-˖-sڲC, @!B@ɲلoȱ| fnplc|G6>%lYd蚑fF~o߫z^9l[_k߄1o}7MIo׻7H| ^ vDN yO(Q2 t7][_[Ai䏰]w͝/l)0 z1F L |yBqnoC~6ʈ/ԱCYfUA?U` yGBDVZO$%?OmxiVdhV >+8 &#Hكh氽'=3:0Ϳ! Tljv % _\u@ zG(\~|E8 P?+В;9,F,L__%R) ?>*K Uͮ2686aStÕ7ni;āhrS QdY?5P}!Lkd@D/EIl@Q~O R݇oCMtڋG++jH@KO] bT?S\ Q= 2"Vֈȣ1H%"̃FB$ >bWvfDf43".XP=/`B@RG2(? ,F:S;6A!.|w,G/X LYh\P~-xie3Dns3b9ҥ^P?r_o#@QG]q'}vR^ 0>&!@rL;tCіn8z Z{{˗χ+W-_B €x?0 #2.2Y|th&%8BPL|,- I?_*4!4g{^} O@*W ts;<~[7 ayض#(B$?^81&乼XYH lbJ!+ $̀7.37{6ÉvH(y+H9 _W2c FFᡇwHkeOB|{jD{/F ľم@>YD;MY3QJ<+C`!P]Koia2 :T A3gOI% x\]kF@PSeH4l|VWl5lؘ3#;yb eyRψBԔ/c練,X8]Ʀxp>\eon =0S~` hZz쥁KYUup 95WkհIN߱lF7J&&`>D#A2A/x2)g^7~Y#4Ł W* _k.pƄoUo)腓K2iMy=S9Qe fHQ ')lKP2|/9nS7md`3PQ6Y8 V_[h8 S!| nxB}cfsP寍*?hU~,Eآ D u W3Iҁz$7(!A+ʏ#"cs܎PG!Tؼٽ }x_hZM7|?IHTJP>!-`" 7{C{ iJ'%QK|;昂I o9~oi#ȑv8z|YV&ܺ/LR*( OBogF95XHʅjU#mˡa~ D\!C ^"1>d<ӴܢF Fc^OM?cI,# +(w,wuSO=@o0D& ^{6~M- [+XsrY\;rvU UURi6Jzcȍ$\kE-'t&E]N%'W\ص * ׈S6 @kd~ˣǡx{d6}y%~R$ҥCy TTН+¬0 9Do 2c]t ܿn]֯jj#@| D"Z xtJ #4@Y%r7$$'0}\!#>p0ݯ{ C.# N Ǘ[c8FF, #~"36_b/܃#ZEe+ȌӇ&/o=_P0I3R.)(>XCݼZ X^j*Rd \( XL1.M28T#; Ul_0o)\U=Ox*߆5̗1 vCaA{u(m퀯Ƀq`E:P) Adq}<8So!lvJ$1 @S?A; 5q l |tLhܳ::za֜ Ջpm`1h{o,6]lZ@?p߷ufmp[{;v'?R_g??g=3DH8;açnu Cz#% @$1L 2)iʵO~Z~B^JW҆G@'ҋx0~(( 8B;R 3桛0Aa%HX[>S賈8F䖏6;<vZ~'%pސu3k%Lxˈ<rx]w#?՗]}=\=|ּ\Q.ZɯMbP тgуEɣf0?`'`nCxm+gIXwZ8m?jąW\)ut^\@RXEA5?C?1}MA4|m?y&5I0;h#(Nx>|3T#F7{S=M|@zd_sl+~ {Z{qG"Y+E՚5w샎ummfP[-G"2Cy&yLLdX>+fy d*Yz+ܵUdr)#]qrZ?8 pqDN^Q-TYnd9Dve;SDH9? EI$E͐P * \VD _{P`FԯFMdf>0%[(J‰O~sa";(?# qDg`X\Φ4_ؾUiHL@_pps m1qBS4tQ9,Ә~J7r-q `ymzkgaV]Tr=0֏C9-w4v6T{,~`^C;*݄"zXn^Y4Wng"࿓͍D뉜?bYPoN 03Naxh\S,fWGnZ:9eO<`6ʌc~gP&; kL;n<>u0qs zf Qy Gm>ܔEM0<]O?| oiʧVx"m+i=$'~_jbAYHTc#0΂AYh 4zV2[&3 LLL@623Wϟϛs_xᨓmWx;̮ĨZ 4}Qa5m;1SM/\9gRXtɾ1W|_Y:]%3gŀϜSE㇈YR#*2TMuNrܷlH sR2kmwCs竖 |:Ps\S'ϸm/Xf$wpdOl +.-ghZYGjS78< @Pؽ:(/& ?oi?p|bM4&id77lHL%,cIƹi#ڻz \039m5"S^FTTCzT\ 27-?CK+u= {  !G/mPUU&0 %5i 0< P[zyon"JP=YX"NSdJK&O`~}1Tiy!NEOl9E@T+C 8 .#ql)?VnI/SGr+l޹ۛʹ;M/ˑW[9FBȪDЁv|!Fm50<6Q@c*<59[|q-}-{hXzw)녵tjb(N徛ѾRn!4VZl{,Fa8_p4 q{-}FQa$OE a_8 '`R0j۹ |OA@L_!y3ib7,g/GpZā̛)'zu5u=tZZ. Lx:F+V*ͭl>wGNDTbu†g< -#uTWx0mԧĝDm7&nޅ\D@*s U dhn*@Zԇ mQFoʖkV^͗vN5!w3a$hOg$ !=ܼ V_ql%kS(RF(g oi Z^Υ~spDJvU3I$k XP7) pTE bŊ  eZ)~?/,h)i6rCc Fۂ%ָ4~߉J% ۸a#,\8FMN/EAƊrE93%ɶA/&XJF&>m/[&KN& WS^WCsJXwQrOZ8|Ψ'\*$nLiT&Ή-\"fVtXQcP[=#,l N3·!h˅yVl m1˹17Pҥy?7U(1Xd.Z4gN`-qg1ۿdpu=6SˊmOfRt8hͿ@sA.k{uI7ux&Rw[ڛaNr֮x?RZnw# 'tR 4+uHjP^ q`6g X)R w`uLqyQrݹKV,^upB% ӏ(Π;$1OO@ 5j35m$hqţnvr4eqD.kkRW` EQbqx3Kj^3@H] 40ݟ-JE?qq>1M ]$gqb,20%Z5%E@§94gd$VO,\"K:0F&|ell~hq"lEE4a" ,Y NF,NS& 7@-ԔR]Bl/t2=>ߚt 'lB'rc;aG9oy5abQ4#033E8%OB9ԏnƂp@=@oL8T=ILsŠq 왼&H4b.7Pf*3Ï41mAYa$ h 2LֆuCHMjB& "no::af 9dnO9@,:<2 5:ƪiFK $]_FȎ-n:e+5ꚩ0&+lSCl[MStiz;d[j<b絩NKy}IeeZVRBe J;e&Mh4j#(F\;,qĞi,;S `>[9b]<+GDm@216fkعί>Db&s!|(pϟej99wj&vKt8ܼ4`zG^C'Ica u1"͡lO{w QӣV)+JTJ5L[V]'ۏ ) :uX3{dMx("6H2@S\QSVt44`f{q 8R.AdBE_︮z/=7j&?s1v OkH)O%.`䛎85N&u\h1ix=rӀ(s߉ZdciD1kq4EǬoTӂ׭d:5Xa/d1Q iqcvk)џMfLƼ}2աK! Nna7gC"J}CYӪ2QJ1-p)u0{br%;}iRpq6u;`Y+TՔ@!zphZtE .g 75:LV%2Cdʘec2xf=%ЉeIN"re1C;Vݰv[mLG_u uQ\PAԜ1\=S=s&Pً6jOK(gtT @\aRTTnQ$)9J,$'OVnpW \ZΟN(1T5C6u=VeB0ie>PD&*M云",b~wV_bfͮ:;:XVYٶd쎚`C{V>MAԋ*aH~*nനcsI!uHr_VZb;d(奈#N7{Wc ˗ף@%r郠Ndv%OIb.}RL IURtv;<Љ-H|§J0G@>% fؼ嘷]UӚ~yvgYAĴ\j􂼞BAhwL[dL?C:ƜvF*%Ml:f7C=mqш{x| H}u:PO9CŒPQW4pO?1䥭'`ϞdoXsRC (v 5bUB1%v2fUW ":r"@g2ΫW. Z3gvt*KQ(ķ945g!P˗AyU>tZ=+aTWV w[DkEy񆐸oP>/QX!kuѧrBU'?޲ BnU9xCyKq L*3gȌ)=A*/t }?}l /80J}pґty+BE>OZQ*hf>'V`M~)Gخ'7^ ^-=At eo3gzw^ nXN'ğKDty7r t3 b~¢`U5(?v8 =Ffq+y$@LI! k4P0#͓b M}pm7å=l2HPFB, lylq^auƝE.#ijh,^Po a@!ENn a;~kGs`MoP@j Xjۧ]sǦVkW=ӶLU 'Ds uXGᇏ<ɕqֈAHyF&8"^: W^̯ub&oxzr!E^]1X;N@>Yoڔ%S hR+8= w⡑q[$'~@)8__9 ׯYNv "-Ah5#a GÁCmBxɒ:XdGY0orR{phεCw0tuh&W\GX$¦|Бlkcn=#Sx/Mg퉳S}ɥIZFYIpx27VjLu;`Ӱl\6m=2SQ>g06`|8zW0&[mni]?g eSB/ lPEpk9y=`B~~-Výx+']K8Ť9!!ă nS&=HC+/#yx|ض8tX造q-u!b.߾WMU,Qږi33!etOZA/ݚ "Y9cq{́#ʈg!*.hau§n }@S\*.ZsEfrvŰ꒥pnGiou5UK9V(9'n1G&|NMԭ V#my6ݦݬTy? =s ŅqBju|jPgX|{5PQnH1 NHƘ[ۅ8t~r mlBjfX?Y*Иx8~RG6 7f9#R(҂5A#x*GYXһh&nha'L҆Kw0{m>J33ϕX^IsM؍grJn̆9k늠 Jޞ.RlZv٥Sw,`͟~t w^YM@̞b :%@-1^=BaDsof!97{3ٜQ߃=r/*6YxE4L\< 1x La^om몈"O(n,@pyQK!u  F"R|[,z~nmmظEe[ f)uKҖ0W rDL$KJ J~uĢYGEj1NOMזO!s N$QT 8<Ȟ!~h{M.VUUY:1;D/Yr2et<3?4VYK鳜ؤڕ*FZ^A ߝȎgw XS'y_ dP([/w}`d,30gneEY@hLm"+ R1i/+!&K1<"5y2HLpI3S(q3_d6}1˵IP-Kˁ%M p,:mdh]mummMuuEY*]Nxl}z&g޼v,6IaVE,G 4Jy>m;B^ ym\7E{\!d<D>9G0lo`xbBVz-I Qq '؃^'H0by% ,8vN^RNs9k!JOz n2๮2kw÷sPwC9# ^?0:s;?Wk]!rƷ1)6O}/FH I*gʱ|~@0!?+ϒ_q??r(?(ݐ{5ydSB+,Z]@r%G] d+@)/.sc#5;?IENDB`PKYDDI}}:celery-2.1-archived/_images/celery-broker-worker-nodes.jpgJFIFHHICC_PROFILEapplmntrRGB XYZ  + acspAPPL-appldescPbdscmBcprtwtptrXYZgXYZbXYZrTRC aarg $ vcgt DndinX>chad,mmod(bTRC gTRC aabg $ aagg $ descDisplaymluc nlNLdaDKplPLenUS,nbNO>frFRPptBRfptPT~zhCN esESjaJPruRU$svSEzhTWdeDEfiFIitIT"koKR 6Kleuren-LCDLCD-farveskrmKolor LCDColor LCDFarge-LCDLCD couleurLCD ColoridoLCD a Cores_ir LCDLCD color000 LCD&25B=>9 -48A?;59Frg-LCD_irmfvoy:VhFarb-LCDVri-LCDLCD colori LCDtextCopyright Apple, Inc., 2010XYZ RXYZ o19cXYZ `jXYZ &2ɗcurv #(-26;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmparaff Y vcgtJ*ntIGm|>  K\a !d"$N%'/()+I,-/C013 4B5s6789;<+=9>E?R@cAsBCDEFGHJK,LCM[NiOvPQRSTUVWXYZ[\]^_`abcdzeffQg;h$iijklmnpoSp7qqrstuvfwIx+y yz{|}~wqrz߇ >?@ABCDEFGHwIhJYKHL8M'NOOPQRSTUVsW^XIY3Z[[\]^_`oaTb4c cdeffgj?2?@AB]C*CDEF[G'GHIJVK!KLMNLOOPQsR;SSTUZV VWXuY;ZZ[\S]]^_]``ab]ccdeVffghEiijvk1klmbnnopNqqrzs3stu^vvwx?xyzi{ {|}T~~yf\Y[euƍՎ"0:CJQYboˠ%yЦ'~֪-ۮ1޲6߶3ܺ3 ?@@ABCDEoFXGBH/IJKKLMNOPQRSTV WX'Y9ZM[c\{]^_`bc3dYefghikl!m*n.o-p)q"rs stvwMxyz|E}~M4I㉇!@X=IwŞ/DYiv~Ā}vl`΋и!]ٟ1+G{fp.Qu 2[:`-Y <k1dL M%r  l # J +  "@mA-0HF !"s#F$$%&'()*+,-./01245:6c789;%<_=>@AdBCEEFGIJ7KbLMNOPRST*U@VYWsXYZ[]^=_f`abd#eXfghj4kilmop2q`rstvw7x`yz{}~I}#]؈Y-xƑo̕0 'ǡi Z_ðx/赧i-򼺾LŰ|JUz֋S&rS'>_Ap2f"R!X>z5vO;D  p L 7 B Y ~O>S LrA k!T"A#2$'%&'( )+*9+K,a-|./023<4r56859:<(=>@LAC+DF!GI)JLDMOpQ RT[V WYv[4\^`b^d6f gikIlnyoqtrtPuwxry{:|~ xX̅B4=ɎY~/><Lߤ*wŨfdp˴(QW+Õj@ʫshҬ#Wׂب+5:>@@>:71*"w5Y f\BU'^/dsf32 B&lmmodExifMM*V^(ifHH0C     C  0" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?I;/ hKwsw3J!DzOO: +.A-żѬa&K/`G\s rn48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>$>(u =\7ﮟLq 2C<n48p߾}2F<,Bpzrd=Q\>&>+k 5s%̚lnBp۟19Ə_I 7W2Z@dIY 8'@Q@Q@Q@Q@Q@r7Z̿/C -ot%s\!_L?*뫐NHeJ3idVSBh~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~TQJv~W YWltqA?~gҀ44 Q5hpz7KĈ=VabRkB,,&hՕ`q[QEQEQEQEWw'ěQom[\9fKe=*Fo59mkg,rOލޛh4ލޛh4\AJr۵aa@,qd1kDy$J s8֖ƷZ Cm+9]OCf2 wdV {Q4"}*71U$8s"fܟҥ4dY{ϾAͻ|MJ5 dheIȬ'hDT6oqc G{*HpE`׹?Kh4*V}wv"> j*ʒ9X3uODЉlPAVT̊rJ'ѓhUf>6wE4"}*71U$8s"fܟ҉PٽƠ!!#7^.O'Ъ[}m؊hDT6oqc G{*HpE`׹?B&ҡ{@CZ;RCG2+n*\SFOUۿC4"}*7D1U$8s"fܟ҉PٽƢ!!#7^6O'Ъ[}m.3B'ҡ{DCZ;RCG2+n(> j"*ʒ9X3uOSd2}M ս~VF5Rb`Rh.[=YXsѳе"NodK>]F28 032}MV[9[$Y@G #Q3WhK] UJU^[c=7 LST5+a{lGe,qyNRJ-RvDI-js,ܬ0㏝ypfxf#Ipɉ4dVmݽ^nvЎfxf#Ipɉ"[y阌%?&$ 'ѓi)5ktUz8"[y阌%?&$ mgKb0D *LSFOI[:]'#%9.\f QKo3&nwlfxf#IrɘD-tF14dUz8"[y阌%?&bD3%1"K~L 'ѓhRjW{mgKb0D/ AL`.^A3*LSFOI[:]'#%9.\f QKo3&nwlfxf#IrɘD-tFIh4)5kt^dpD3%1"K~LHAL`.A1 T>SBV@uO_6GKo3/>/]~[7k(t$-4{3% A]sº&VKQc w3n5FkkpqNTMw_z?Klurpu 0ۍfYOyB>^O_yG?\1Tu#n? M|y?8/kp>kiL%_i -kK%ʲ?#]q<t {m2%4\)!S4›QP 7 oG@݁񦣨0n6l:pt񖣨|ź # l =ykW ׉.]'zOٗuWiHy*;H+ܣo>V/o;\lmjt*MrWFPǽFbA%:? \N#M4?p-~iӜ6OW i~m-aN5Ձj8>Q'o.wJ؀k]͈[(R3T @|GL?HSmj~Y5Ν囯5,uV,L? ?X3hn545vP{3T; G+khiuuhetr$1O i?'w?۪ F6b/ nզk'խnZh.'R%#(pIlÏ,'ُoq}Zl>u[o;]8LBo]UfX0TN)Y+%i"854y)g-+2]iM+݄|y~?f>Ie'iK^d>gVlMکΡn}=tQ9^]f>ۯ'}㛿 &8U@Y+yF _lYp_jƿ?­VYmfKxsP(Pڢ&ctHDžW^?Vk D'VmsߞGp+]GJ-mn"h-"Y#a2_<^zJ\1鶤"+U\YQWB2)|uןQoH7O=\۹ e-SCID6iN:j*31T"j9/{sQͼڽ"x(p*7>A[֣yaKP)Pp*7>AiJ7V);ª^'ټ&$VUg_f$G3\6?b\Z _GuIi؏pp(+qw 7 OҏҀppWxƗ^ NҢ n\u! `O3WxTb{-N,c{* ¼)8A8?dOcŐIǫ#KjYKÜ=¾TW$,>c^ڤ3ʱ5cJ5{]4pqF[.wiE>()毩›W9?7t]:T[C(bYMcӡMԨwe\-\MUJ^KTR%FGR1;%^ mrY.UԵ9{T[i)(,pOhϹ?@Ϲ>曻Tn?q 9e%6}_Lj>3jzg~,xO",a~"\F n-ήN3=}idFY`@B  8Oj~Ty8?Z"M5;E3EX͟kѳq^if ~k[dK 5 ;DTMNQn_j?{ ިOuj[̲Fe9rMDRcvd7m#7'D{%5,y4{'<x;5X-42iLSJm$ #*<Cƣi\qea-Io _a746+ kQ p+S zpFO[VOo ԥ Ͽ~5M~uWg2OkvoV5|? x>Դo˧ݢ[gyuy[ ݰ ^9׃Zlcuxͳ[ MehN8Q 1V9 oq||y,nhNdē1xuoSѡ]sK{llFҫ Ju+^*W]%~j--39ɝ)*8nYWIٷg+feM?\ik*y_[ :Oמk*iLnO5,O>/o^4xoơm]BU?4ȉ^wŚ|;KZrH}E>Ac{K<2G=+ڞ"_}Ş1#VLzmH1_]Z2,dj.4#>5+N4kȌWOopn ^6gw<9|?q? Oge4HGR=E'*i\S8ܲ׬bi-G+/|:H)m>O_s-ΗYks<9u'>=5_;+]IMBC"7JM^8Қ7K(:F"E@/j.ܑyiZ哖pLWR[Lb+ `pp:+V_#hk%v>Ϲ v)VW7IxW3s>-2#2ѵ;Co$Lg 3"d܄BZ,?^~͇Ek]i8Q_ O)_̏Ӽ-3TPrwsP]]8D濞PHe h>Y<|'ii|T81]X20GK.3V+[b}taЂ9WNE:#|bu(vm4gmMSZ^ ]v=JB-s{p͢Ez1eW[ڥIh{vk6OUd5jZ&cp\WYK[3[l>Ͽ]:~8}p=*)d%VIB/ \K|}<#swkVr|缜z_{kk_Ff*ZQ{[^Zs*kt"S.cĒ@`ek>)6kss-۴S s`Ws+,y3[ WaWwY&[yb󶗢iEѮ|喙,,yhS>ti$ך/pwK m$v, zlAҔa-#BXDI9Skn,"T8JrfTgl݋]DC|ͣ@d̀˂AϨ?x[Ѵ-4hވnuI-\9c ޲:_a%(NnҴUuvkkYɭާYpʯ}|w]uNJ_]Ӳɨwh?ɯ"D?? uVrg!"coO7 u`ib tEI5Dž!Y|;d9eVf`I$\ݷMK[{$s 0s.nNʽѼ. 96IG?i$Nk6YЂk,EOe7\f좑bt1%TBSYl紻ku l6X 5^tOdžBm?Z-ԠHIaiz1G29xVծ<7h:\6'-1?x1,s^]|F}0yeN3ڌ;[Vk>8 -o#(Y@b+wU; Zڌ >谶M N+}i㟄O^(Լjz}iq5Ah\  H؜$iٌ0x/]}K[wQZA4 #o '6sQAВN]~ؼF5{{=z,>dJrS*gKiZ`T 454rk!|$U?t#izo'VdP6OP\9޺rVI셪 ߃t/rye+jC'|Rׄz7@bdI0^|'>sž.uX睠Q챁_̜]O6Wd\ :nNo+sG߅ 0O<1r[Ўᙽqо|+|K۟umw$)mkx3@`&Af1鈑kޠd+dzׂWo+}|k9F( 8uo|Hz޷,Y@a<Cnh)ڏ]c]!uygr--6@pVQ*ɹO 2Uϋ5;-S׈GH!,`6gUwږ/zT]3H#ĺj[YN^C9[411FT7Uea10ġR5T2!=1">z +К]E?Z?ZfG4d_!s13#2?ɢ8O|-+XciGk"71,قQ_GGC޾Xו ċ|_~WI1Ѽ5f?9Lgo|:Ӣk|03組_MjsW%q_TUOg_24o{YGE<;]^mk6V QX#; j浼%i_|={+[]*$O+˩*tO2i7}z{A5R &q{If HѬbK.7(87 C*eài)K! n8 3+ kKNE\L5MY\}9FM;I4;+ؾ 3eXlofru`:C^5$k~ KK^|R*GƸTbrr?T"9B:bުZtݫ%xؚ}K=Ȋ t&cG,s\k׆m % p~t' wݎqיNkS;}7i_7浾wO^w\x)siC(AM{WZi)ŧxk|υRNM{{GFU0<+FEG\'k?śֲFh*A5W|N{) B^lg/bQVXm$ $VQֱg|N/Lէs0`pq~J?kJj /I={Ú_=X:?BgfҰ囓wrIJʿ8[Vfuoh?{{|&7,/!/&GCJ*+Mk',GYX BKKy!-|շ/f\&CpѨi5tO;#EV(nӺβXA+:Uy?9_Jzf%Zvs}#SDq,1By\Hbb wKI,vcRNu0:V wB ގo\_(~j[< ᷖBA˙'=ĥ nz~𝖃Jgi֩oo" +_>wٷD=;O4+M/It2! 0 Q @Fn@A41aa"Y7Q ]EUn}VZ{ϧUnd&$G r}j~u1">qzV>H]OҢ'־<̗OҎ}?J'֌Z{d+߉VxR"p$U ;澯2>5oYGpyVhiYċV_r?tu_/.>IxG"zO| xW[U_s3xφ?gYnWMR='}??U ^tG 1g}EGD4CяD(OI^><;P?7_A+to_]T h7/.K='xG| =Έ Tvw8o?_]Th7/.P='xG| xw/{~R~Xo^xŸ/-q{KZeՌ60]diF, uY?OS}?J9*,Z2}ixZPe;Th`q[k}Cᗇ/RK dQVTqqoPEPEPEPEP^}r2HhAm[\9fK`{`T&Zԥeސ LIFr, MCڣrM#ҀڣrM#Ҁ8=^52[" ~ïjT塷rA l?\w=_OMsB.~KO{ \m_-bz?GU?0zʏ0zʯ٘s<ʼ̋ ?oȰ0zʰE`.lC,TEo:ѓХhR v?7?jC+*9#I6,ko?[ _0.)ɽ%z3囯5,yG55|uI?/&w_sOȱ\𭕼:;[BjjI##2Gm le#qd?x=uȴO G3#,-aO7g˻pf~"j :?&kbZfpaJR~{;}w: ?C߇tv67Ѭn2:܇L6 |\~'_.na1&Ꮠ1x*| uf15 |u'Q5Tq99s];][eW(OټDylՓiYZ)Z6]! eM>;׶fs~jbǛ?&.Z7{J{Olf.I澉?gOd,Hyy?ZqVXa7oY߱E>5f`1E¾޾3?x6  1ԞI'z_0zʿ ,D1YJٳ JT$c$~b{'Tgg1oOz hu;69 Hp1`?Mks:\C! Ϊϣ =ʄ$c7/UZ5f☑8pq#ҫFZ-#1_WV?ER.j&Wʌ//|W0_*2T||s+FWʏҏҎ`_z2//&Wތ/GG0r+KQQe}|s(_z2//&Wތ/GG0r+KQQe}|s(_z}bB$pF1$M})mI6(ԍr [&C۷U/UN{ :SfkKaVU1RTqEZ#Ҿvj7#ҌJ<-yo|1\vAl 4Jʃ`q[Ճk}Cᗇ/RK eQVT8ޠ(((([Ԧe֐bQmr Yn!S:wSOZCDorsieV3@;p7h Cz7Q@}=no¦>NvZނmA86\y}0yzZay.5) Qg{+0ucVwWkhMS3 ,b%ue&7,nѻU[+6KTe@edFY!; tgeZ7}j{;Efw*Bw=H[LVlr$'yԁC#iZ}8ѩ)EOʛm2Y]ʣ,R-%ܪ2 @ StߦAJ{;ȷ)Q[-%ܪ2 @ Qm2Y]ʣ,RWM6wo=(=+c_Σĭ#)_8y>CފsppO8an^uǁ<[x--IOMp˜9"$ߩ7?ڠ QѼΠ?ڣpj'}GF?:pjyϨ 7}~to>7?ڠ QѼΠ?ڣpj'}GF?:pjyϨ 7}~to>7?ڠ QѼΠ?ڣpj'}GF?:pjyϨ 7}~to>7?ڠ QѼΠ?ڣpj$R;dpgZ|BgA +`{e5pRkck.Hϓ?ݗ>q]gƮֹ˫̓p}II'L&Ej>Y19O!'ri'TiHlxNM5wNDn*[Hhc1Tld2'ڬhVw}kw\kq #JQ7@.,C Kx-i߾k5bܾb ,IEGnqRI־ֿiH~|C޳B3 /դt>I*{$5NI+1R:I:_X~#mE8o4ɢ5l+#؊Is_Io:I^kY4\2ZαbwϨ}GPnQ@QѼΠ?ڣpj'}GF?:pjyϨ 7)woWֶeks[ ()1 q[Ng-JuQRc@Һ ((((+aLLh[p\$9f[`{`W5=Fg% *}= v!Vpq'GUw{ڀ-yyWwQݨיGUw{ڀ-yyWwQݨיGUw{ڀ-yyWwQݨיGUw{ڀ-yyWwQݨיGUw{ڀ-yyWwQݨיGUw{ڀ-yyWwQݨיGUw{ڀ-yyWwQݨיGUw{ڀ-yyWwQݨיGUw{ڀ,;n=AGԼS K_ 7?~diG>>W>3j+?o'j&|^qOʏ}7}S_p6TS2土P ^t?Oʏ}7}S# kŵ%M-x鿆_ר[Toׯݿ}7}SMTda4\o? ql? ~>6nqkMT?*?p.P~4c̗#7o-@O=,I"=?*C?ʬiko%C+JYu rRKS MNI"0şU3ުj7{wkڍ@z !6cN1D@<8zq@Q@Q@Q@Q@VMd$gT<ۇN^׏X<֬ĚlCjXp+[|:Ւ^xMRhtwP;n8z^=b{oZ[ iW y`gmçCmVK{yM6yJ5C, t}x(jop/d$gT<ۇN^׏X<֬ĚlCjXp+[|:Ւ^xMRhtwP;n8z^=b{oZ[ iW y`gmçCmVK{yM6yJ5C, t}x(jop/d$gT<ۇN^׏X<֬ĚlCjXp+[|:Ւ^xMRhtwP;n8z^=b{oZ[ iW y`gmçCmVK{yM6yJ5C, t}x(jop/d$gT<ۇN^׏X<֬ĚlCjXp+[|:Ւ^xMRhtwP;n8z^=b{oZ[ iW y`gmçCmVK{yM6yJ5C, t}x(jop/d$gT<ۇN^׏X<֬ĚlCjXp+[|:Ւ^xMRhtwP;n8z^=b{oZ[ iW y`gmçCmVK{yM6yJ5C, t}x(jop/d$gT<ۇN^׏X<֬ĚlCjXp+[|:Ւ^xMRhtwP;n8z^=b{oZ[ iW y`gmçCmVK{yM6yJ5C, t}x(jop/d$gT<ۇN^׏X<֬ĚlCjXp+[|:Ւ^xMRhtwP;n8z^=b{oZ[ iW y`gmçCmVK{yM6yJ5C, t}x(jop/chad,mmod(bTRC gTRC aabg $ aagg $ descDisplaymluc nlNLdaDKplPLenUS,nbNO>frFRPptBRfptPT~zhCN esESjaJPruRU$svSEzhTWdeDEfiFIitIT"koKR 6Kleuren-LCDLCD-farveskrmKolor LCDColor LCDFarge-LCDLCD couleurLCD ColoridoLCD a Cores_ir LCDLCD color000 LCD&25B=>9 -48A?;59Frg-LCD_irmfvoy:VhFarb-LCDVri-LCDLCD colori LCDtextCopyright Apple, Inc., 2010XYZ RXYZ op9XYZ a.XYZ &8curv #(-26;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmparaff Y vcgtO5)8r!c? #   %=\;{it -!#$&,')E*,e-/1&24]5799:?AaCDFNGIKBLNOQPQS TMUVXYTZ[]^[_`b%cjdeg5hzikl)m1n6o;pAqFrJsNtRuVvXwYxZyZzZ{X|W}T~QMJFB=70*&"#'-39?EHIJLMOQRSSSSRQOMJGEB?@K^pʸܹ '4BN[gt{sgZM>/ йѠ҆jN0إsA ܤm5D~9fl\>?A*BsCDFG(HPIvJKLNO3PWQzRSTVW X@Y_Z}[\]^` abcd%e,f2g8h?@ABC|DtEmFfG_HZIUJPKKL{?@ABCDEFHI+JKKoLMNPQLRSTV$WJXqYZ[]$^X_`bc>deghRijl=mnp>qs$tv-wyGz|u~bdžF ڍʛ [M$ݶz¡KЈ[ߥNnI+D_|2Qp5Wz 0Vz4\-ZH{TB  K " m  X  b " MbD-+?tUIU !~"<"#$%\&-''()*+,r-f.]/V0O1K2H3G4H5J6O7V8^9h:u;<=>?@B C(DFEgFGHJK2LeMNPQXRSU5VwWXZ#[c\]_6`ac&d|eg/hikMlnozpr>stvdwy8z|}  *Bё1㖘O ʝQ{bN>56H[qJɽLОUל6d 9i!n%$;Vv;h1gR!W=z9{L*w  g  e  p A , $6Pr4j_8t7 !"^#.$$%&'a(?)&*!+,-".(/20>1N2a3x45679:J;y<=?L@BCeDF-GHJkKMLNP7QS-TV-WY>Z\Z]_abdPegi5jln2oqs-tvuxy{u}#~Ԁ?o/򌶎}3Ɠ[񖉘!X󞐠.ͣm QA谐%"xaEƶ(ɚ ~aIӿ4֪!ܑٚ#Fh-=INQMF:)m@tF(iNHHC   %# , #&')*)-0-(0%()(C   (((((((((((((((((((((((((((((((((((((((((((((((((((" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?m\ <ka D#1$=:>_cLSv٧|;ݽ[v~|GnjuO&[ěX3yN@'88l#džcq=3=S>ZK3 BArN.k[ě f=݇4UF<3;?0h4ƫocLSv_`3O_tP7=fbMtP5M32?S?MtP65_ &?Ǔ|GnjuO&_`3{9k9f>z8h31E?(k[ěX3yNS#&);]%jqǏ_i?IFch]-͝Wyxj7kuf-nJ!VlVOet@"qRN>€{/Yۈf {5DX Mzywۙ#b354 9iYZ}1 ?Lr*.+[|eduNm1n9Z먮br.}8&rZ~yP Sk,hU3y d s:ï4:\r5 9',F9\q]m_\VK[nț9.K - gVeurc &i:k\ E, $cyS;{?BO'+&V>="`C,NX2M6+g]j{!x0Af'U+mܫic2+b7EBp}ji!H8Ob9 -dY*)cTԮE''v X(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@a{EM'+PVakdMA8ܤ4u_ {3PmĮoqt|ߞ; Wו|0Fo 8eV*{ zH4**4K%ݻ(*F[/BmX-omy$`'9 u?NEѯE]ؕP4+1AB1ץi[ߝ-A{2ZS$Hq0L&N9M),$8ʺ0eaGZ񹴛t?~h `eFN9;ƻl~Ofv00 Hc٨JOŠ1F)QF(Q1@bPEQF(Q1@bPEQF(Q1@2ic'y(e*$④IT2+2#P;mWNIP#E:0L-su2LvĒHd> _ 3|2ÖZ[Yjzu+G删 @_Y^ൎk{5%DGGZjDZ{i#Ƒ[HX"Kw 4[D-ޕrz& @Ja!7~AEQF(Q1@bPm<*,aw#ޠ֦o/ݳv+]{Y,/<;UNO$W=JN/_Uκ\fٰ?#n_ PgAiTgu`\^_j]oIo$ (2A}kA|NZ&\m,L>jOr<9{XNoTJW({$pQ̬Pr*x5Anbӎ2JeRl27S h+h0Q@Q1@bP$|z&/Vӟb}HvԞxFFȯ<ҴEhe03J Ӿi64QPַסޢΖ vwnlNkŤn>FHClP!CFG YKz._K?BLtR|gک+Q1HaQ4VQ <Tzx&+Gxd(H> ўu4#b]sIci]>5w{d=][3!OF'޼Ct熭^Xv#<v$i^%>uI}+Mnɓ/ec_ьm ҋ.L[.Y'x[S#k _IX4ic/Ks(Lv˂0=<9 [`"x{Ohp{ҢQ(((((+')f}Y# } Cgt;Tֵs0FtѶ+65Kv8推OoD A\=L4Qi !o.ץ:MC]oXFK8¦ dwEsixL˼ L,c8#ַ R`H 8zpiu傂ڭL0RY_9N:cZ }pMYݟvsSആLԮ#OI|݉Wn\ZSm* +hINe;8Qo^%zzYK r0{c9;/.e̸DBx=CL=W x9f%G=O !}+,i &@곩9Nkd,[^<"l;Znt+{H'Rk/ڮt粸[ƽXmɰ V0xd=/_w3n’x9sE 33"VY+x$V/| ius,y'2$lY$ߓq?0\g@ys4dIyqaS@>*@4ou4bCαAp!prE2Y>}^"lI,:eS̫95[AHlFRJ* MN;0VB#pND 9fmV :[1Dc>ݶPs"- O3Kym_XVj鰾qpsz6 "ַ|n\iT1.m$:Ѐ,u]]"e ؛Y~sFl㎘HúDI45,osF?Z+}xR83M L1q<85s= 7o;kA.^†*ǗoHHG] CA< ةjKZjw2jb]B2c9J|mHM٦Isw.Žgi-۫ -Y'Q043gnqҵt'BQ(^]8=jKi|4h DXHAn+0p*֏oge}<{B ELmU cw' B{?[鲽)طlvv`\8V!զV[tũ]* +_R:iKu*+" ?.xߍNy\⠹^֗02, q`sqHft8#}@#ϵ^ܛ.䁌xLꫧ-gXe72U߿nJi>E٥eqicp1+RQW{8BHX#yzW#pg+D/AleFGA;ӥo Emo;M.Vl8}r=r;֕DžkMB7BXظv>e$`"MKYtk}7,_ݑHdZ|έwJ.;(Qfu8|m1r7?r𵥦.k4&ت#~9h`zOtj$/GUK˹Q 226X%N]sa$ȭmOGkF+[VFNЏSY2jlGț]#qAPh&n,I{Fe,Wv[ ..T:2ݐ[`.CwcE(L7R)V.FlN$av皔 N7sIM<)24eIgnWaOAj:W:l=,R@.6q֚nvO!z˩]/X)tZuv xbwo\5ˆ {|z<'|–`^BncӷjOa2o1aEeu=\Id.w0|.H n#& >)oH"a¶Fp@$}ᄼi俹Q:Bq[))EwP&N>_Z}=XJVeSztp-ą]9EV b,5\"Ը=iܽg\<#A`&֔ntAgmAqgi'?y'5=UQ@Q@Q@Q@c{ (|rNG^+'6ݮ%ʾe-Iz;ٞ}Eyk>^<+So{Jicz׍,dNkKG4eF# 0UaէĒiiumi$6{ZK9^m9TIYY3rMpc։hq']_oIci^+%iQ A;@J;zJiAj.EN `ČrBj>3֞UK@("ewgW[/4OPDO[/ςF 28n>;x ۏ g?fT DzC42NһK ഛ9'ԋ zlj<;sWBjNcnԏ 18bM}RvMܪ Ԁk[NMCD <=A5\do}A<ͽ?Ttx ^o}uILN60BI^Fp5q\u!D25d Ʈq׎PlLŴ*˰>K`猎sǝH4۝ Iy%h\$ISh]OS|AoYo"I.b?'|Ӛ=G51I*_`.IW'4#j[ 1|ϵM|aVX G[VifܤGR6_kiS<J+D !e*T'm6Ky;d`%A#vX=~i.ET #~_a𥱱囜K+t|Qis]|Oku,$w1G\M;X|lHV.(f`ǒ($ qzͶwq OY+F1qtv>&{? h544E4&VPw^k\/R6v @c/21lke#iX D?>,k9q38TIac 5C  )RノJuq<7D4w3/pp=c[~кp[vY`31=O}mOHEştΠd_61UK{n} EB6;qwpq iDϹҨœO!RD*LDDu {ch#޻Ziڴm>ΗSYf!aTqC[4n?#Xv,28 y~:UCa/$a?tK߉t˟^lv8' M=uGk>!񽎙c0dH!x2՜ݶxo {{a cVr{d7⛍>k eN1DV\m'V J:%g vrEs̍c_nvcbݰ 9U?n,,d1( |R$W'I$ z ƟAgqg-I3` %4KGYk:vy {@@mV;y Jw]N?עkdInLFjRXꭓ9KTM6}k$Kdgn?QګE3^\Z亶%b:C=Eoae4~Fqx'u-KF|<2]`'`"=A}Âz㏋\]|L,$߹]iV=Eou}JI [ kA`Hb {*w,L`C 0ߑ%㗋"F/!K.fsV%WpӴIdF13'[spk Kw]#63'd(QOw{hĵ-4!dkm\H\N*_;4g540Ry#rNq&]4,gxn% WnLzdM'>2x,VwCTy8DQxp:szd6Px-Yo@e\g"nk*ĻK+{:^-^ucTbXm<ۏ9y\ݽTUojviZuAngi篭gV܎F4G7*-̏Ͷ ,Y0O~ةK ݲ/v';x`z 5H,_̔Ĭ1Ӛw$2!~tkS}xPf_]?&Otm+sm(x3Ǧ}[&dtBHF|y{Ua_egYJ.3TK[ƆIBiZUc#!$/{ZK[[  .WCufYOy׌yxwOX6#Ð?k˿5O"Kou0~}v +E {Xg򕼶 5 ZY6i4زHQ!hosB/zuͫ[ï[elm4aJvQVVVue.V(Č׷ڕΡ<;&uM4_/%B8b6\J8>icb7S(H7ZV]޹ܴZǥav˓n֔![mYn纄ۘjm*rrGt-CW7W(2ĭ6fGp8/scޝ@|}S wz$k ˹>`W]xIJcNu[)Fb`8$7_,WP_ihV`c%eٸsp9H^k'K庅J2 ;~Ɩڟ1xZ.C}u{/̑(p?3dCz=̊A8$ 8}EzVw$ɩ[ڣ6Gx5}Jѭ7i C) pzt$Ѿydtcw;6xU%VuOH87oˑ 7}5jZR_- p*Fд^C;#v9WFN[?2y F$(;u+s▜\IaKk|Ca@Ǔs:ό-o m$ZP`- $;}!뷳z#X 7+|>S*B^8k]|H.x䷙"uW I]Hȣp{B:vcx2bWKiV~ ",*ڛ<ۦ'tX'k Z7O 7#{@`.tUӥ;{i"|˱°uR}1k|?ЧYe2(@@0V4ZNỻ :IKwLz9rJ02g#_PjxNk8f݄TncvxmOiRz.{cMuih-er0D^ZȊG^Ci?N_OxO% I9 +ҽOn5[Mt47ooelU!Wq`sUty Ҿ5:_44jlvEbHv^Zq*X'gH[;)(섒zsҬxkYt?% a3'یr}jO{c/Lʠ |oYf`W7_ʏ-?~|Wmx=+V|:}|w20>秽}#XԮ}]{%{{/nc3_&|GkWuHN61da 7c^qpcg; d=M}/ N}# K~2!G%MesQ&&Cȡԯ$wZC-sZU棡mi:l@cQd/FK6rqT>.M\]Y]̞tIAe#{gc57J7+to5ϗUl #P ヌVOR=!Tej3_\R|]m4"4Đ칸oY7qǧ}k_%W3-0^},I,cZq*AЕ N6yI6GI^H=k((((2/!m[[zeO+q | 3qשHm-4rF"=7dg=K -=il-ߗl~Oˑ. 1OLMvĪ[^"7vء#ڹ j[_y6#+~1 Rn 8g]x3W c,]ݛ[זma"0慸ߑE6x#cp%Xclw*Lh3ee6+aFS  ɭӕx fϻ$⩽C`bK뙥kv-ǵ?v4[*}$l?s8``qT,Zf5wSyAl|瓌ԧB!P5"U\&uM+Xltr$\а9V"t,+ XUĂB!>/S[gXvMmFa݌0r1 < gndNcJ :h@4ucVS"fGSY-rxwHmѬFCQ uP񵎧k mF5y%!Pnݵ@ bU*=CKGM{2KN!r֐΅ %죲}*ŭ#bRǩ 6m>pт*aN2q"MBC R\4xv`ۆJCfe[_2ܝ%1"1$pI$Rܗئݛ63t|>c)rA}Ix`݋EM*1kwNcvH.L'IOB7gڨ]SZuKi.Wʌ3f0ˁЂ$6wV˧^\\0BZ\C+6X qZ-|c>3=ӳ s! ċ&%J=T,/+V^SoΈ>28 N^gZ}@C`Vs궓=F!h0y2JqG#STC[3j"(Rܬɾ9`#:H h[mjO"8UQi\?[Ee/?1nOxzKNOL[y5(Y~C9]j~&YY ܂֍3*'f:)jػ\nc:>iGA."'xb9'zE#5N0׳];/V8 zK; I6YA*qwm#Nyfm>ե`s |Htm4\\:r&S1#kz&YmS`˅{p qRGb9^Cmn13f2W~=9۞I,ډxJK?=KJ|-7N!I,R& ;^#_éዸoaЭt)Gs60s yi#>[$RMQJjoAu+|X¦ $e@39$T(oml-]=\*caIfihihhS3cq´/M#E.zTky&CvwhfB7p}j'~] _VD{#G $))=Gt)||"3m灒7};U7h\G#_~cx۸M[ڔːVm#^q?S5*?ۧo^ t8 e!XA=3Jϧ+ VbQ;|*nݼ '˘#iz|]4  ey 1~+۠/_, yT89k߻nQzЭi:6ӺQEhlQEQEQEQEm"];4HljMI xO+Qg𢓓Q~Mou <>7FBY|HoqtQ-?A桧_iҧ.7Q,>g#T^O})~(b.çI#<5dS|< 3隢t nL  6`g 0|-v5im7bb s. |1sS_\E;ԝI #k2|6׽kAQH;Ycr;b8!2OȜ(֌i,XѤ2Npr QˈMԖUQ{U i|RBxC$A99pFFjFە1G3 vmgTW6{ yl\O m 65qZ*UHPkB/hZ!qݻ8s}ܴ mȒBl#>Ui4|h s(]} zCsŏxRlH첦ݻ1Wwwms}te:6T2gkyICBo|縍l䵕* q_/Gs-4q޿"cW0 `»IM;K D1[$pF{2;xfKyۈBoGV./uV eu>pgrJCgؤ~L71[{X̘"PyVE G|1 WE,RD!&Gg!@,|`·oam`Je.dK?1g$~ μS:e=<Ī]GcS`{js#!Pˌq:Kh\1#+fO֚ud'zJ͹vO]:NwAm" eHdfSO [ ZkFI i Sv8xdi&Ayo{_|,KhL 11 #p'+ZFҥ^W&XFd#k؜fz5"\R1*5̷ mVKn_BGzH]|g%u: rΓ@ۧ-rՁ2.zJKha6KԀ\]Ɵl#vi}%ڭ+X|<劦v$g `fWA:!k{ȡ˘0.Wr9ֹCCЭlI*q/,~QF4TPXz+ jb^%IXW(6NN=3+;JaX]fN9'?)T3@<)jz2O}i2 uHH9We $8m),쒅RZ"b͜ vp J;B9~Lrw3g/rNj#iͨ56_0Ki-\4"I/XnOLԸԭww"!;h7|Kw/& Vx,D[,AN khv2C2@'Xdi&bB/'+G2\9,6Y$ n\VmF bydتHHn mWQӭ- q~IDu Jw[ͱR'r$s͙4 MjN" RxwG@:p8_栳ȫ$H6keP0c $ul6sjqRQG&Rm=b }]_[uDX%@nS/\U4>{iuI&yvdl0z<ⵍ,WN&cw'ùKt9hƷk')d}I#ڎ~:[{9}++̾OoDAuos悠^{s^BZyt}=mDu:E4y0{d.߫Vdv6, eU3y֩eE.7n{Xh_di2FB'?_iдi{?YW=O(@) nīsoOy-sn 6]6 ':Fȶ.aV/y#K+.sm2+$ͪ.ؼQyHyH2#h%^?xR%4M6.&gO% R2dFӎF(#,F;6۲z\,Lyj$L Z~!_Iֈ BKyoG ܞ~jtizmխJJ5Hbo?08#Zmfj2X U6e*2U\:3I8mL5A:y&3nxF=p1WM'bbky%VA'J38h!lV)VY-ٮ&mڹ,0qVLe`ЍFdȩ``mS$c4-n\8v3\Ộ<^$-mdgcN㟭vi4.f"̥ r1޲t{j7vGt(sCzK|Wq#q.vD} %qߊ^/CmpMfQGx9`r=kbRIiVZ0^BnLǕiU#$yOzzZ-Bʷ!!bOQ׊=ŖZI5Ƨv \Y`#-?^3Oθu!Yd-ywo56ȹW̴Sp';Ysx RZ;J?099}~NO0Q-Ǜn+8v'8nH.Vy6%#c:+(FۑI;ZTq` w̪sv>{˛{KhK>ʾ9lB9t+ifuh|20p{ .)?,sg$y(24Lx >QG5miT].j nַq<$?0U (棿MgOѴ{] V(H d208&m֒+FH41pd'pD_SxRIi_9CA &`YUKTgmhUJg-8pF;؝⹶w5][6 +EvSzJFye)HGe 3jk}^C7p-xe# g@aC :hӮV%peT)$uZk%;u*6ˑްl]MaOq-+?5' .z15q*jY)c$ 8MRZ} vc 2nX`ˁ&_I"L%S{~W uV]K/c\b?Hd(\b#՝w ,QQ;p ('qOt9-X\H\0O2^pWJP;mJiϗt%FUcHUޟs=ԱgU,(28Z^oѰ?kM/>5,sq*ܷ*ݲp6uqɦP{ݣ.cW)a_{WO>cc!`"v ;w0\8*jkFY)U+wߥ!u@ ƨb2\ot_=:yAe'SX}VI-@ȍb@rF8tH;+E)&#$ZrxG w#Hbm*1qRnKl4'mx$wb m'ߍI!NNў=j&sM*5vϘGWCb ) *j6w) qY6i>2nI2GzY|Sok3O)mi2 vAZ[nGfQc|1s1{bMn1GeF]>Qc'Ʒ)_mat a ognq9jn595$ 20x-8Lxc]6iR $E BB)_[Qkex nmF@itc-X uQ4g .n_F@$uS%] I.^PQv6ó #mTxR;MZOpm_)^7$n AG\P8a>oITc Qt ʧ#!`y"ր ( x N;mI##w5)aӵKk>p;ي%(>4+'@Ryy+D/HԶֳ_GԟAaoc*60wՌx9kMgG6H2qd*.?EbRIZJ\pO➷H oKfZeۻ$9ϧA[ŀ}k{xǙn7KפSUcI)7z%Ƙ!&X0(pN:]>C}nr:v/qjfhTŠ$ubJ[~65ZX|r22@ޛo╟sD?+o)6zi[k9m\ܭk*͖l}~4tA4->K4ƸHqLyyYkpGV 5IWSjbX+lTmiXMB k{f<)>L0W~'R"Ě]1fK)PA'kNfE47 Wu*^岷eӯ5 i yzV%xnU2e^BFGbX]IiqhˁT+3I'T cCGQ-Bxo^_-٥3ن%+𥱎YK ;,0H[}3=k2.^:{e~.ɛ)!Av5)^[^MJՁPp8 fQH((((#hnnhO?J+ė.m/ PrNG^fq -b>{ {.ֽ._ ׫Ѐ?FHAGae<=OLg6LY;XC _p8uvk_xNDgyYg7+f2 m   Ui|o=Al汭Dӵb$k}UQvŎ@SXjv:nDcUa]uH }Zy\H64?,q1&ksj/$K,D"&һH;#܆AB$PN]tcG)mn̟meUv㓃Koa9FY'W8;UGONZe?8Cem&Ilk_JVIZG$`r33{m#xc1jq 2}1=HXK{yZ dFf3B mR7E#ޅ\; ;f #JJ>vtrZ Q|R<œ ';zŴկlkiNn5HK/%yf=?zcnGSb57>_V{dCvw4H8,F8o'; CPkq߭EhJi$CqHRjPѥV)n ôa[qBPZtgPׯm$5QPȲ ^x: H5hK)&VKDP`t84gn|?"wyĖȋB+PWn2pMorC^{Zc$ZI$]6Gʹ3}:H?)Rq -u;`t>lq8UT!RX  jsx2ɣzbƱ. ۹sAHXx:tSkC$)(Ԝ@qV.ԍ<(A;.n;%z>0{v>iW6mŸ́Jń#r{ xut)쬯#/8EE T TIrM7Vqk:3Lrg[VQiӿg21֦𣮳ss=a7q]CgPK|)sw1aѴѬ< c;1峃ߗu)ddi ЎFMg/퇈>q繐nx;irGm˧w5ȹwW,6vm*,j cyZe-8f7abT$ܩ>(*,daXt ( <5eiٔ"#(˷i^;pϥoĂ_\$wѳ̀99qҀ: 6qAqqP0`(,sk2I44UM<sO<5dW2I0JI!c8mP{yPyW8*Yj ,FK;Sy? ɣ귒IBE2nn=jحZ,HM0n2̾Z|Y]͔ȗqq+}R> UMfW`!vX0>8_մ}XZ-ڗ]Ȝ̼)݃Z#uv%Dy1_,&§סiu>''o L*ʣ@ H QuMB$fCc8;bkMux⍞&%"HNA8-}᲻ʈ̎_!d[F4ﴻMuus'<`38P{ej*.c;Ԍ(ێ+gWlˣ6l̸(7-@n-QH((((|Cike]с8AkZ¶|[=y?ڭ?xic{ץך|(^ioqyW/sV<;.m$VvF"_1T dUx#qjRZKaGMOsKۭ͜6Hʏm"RrXg=Ӽ5 vKwGȎ!xnsYΩgoHPI2Y }Н+qI!dSnu>l`׎vL{chZ>h[w\#D},-&ʄnݹ 9;3VUo=mfuIe*[$$qF ;¨I'Oa L`!rcH0Z8l) ^fUt=Z-Fl:IUBOڭɩ=[$<*ў DžUݎ QBH @8Jbx6)tS}"E#mqk)sGP:=/[Ńi)+crv7ֺ{na$$2\"-;Riuo2jq'Kve͐b `MF4*[tKΩW)w18f'/0~Fĺ7Yyoԣ1=95[OwwY}ci 0Yz./xRA"Yi"u {u g&]*y56+X.eԬ)Zu !d'P\2dfk6^>miFn6Yⴷ,r&GcE6#8#]UUl+זklΕS{z M*6mzKynn]oU+Y:qy}i%nֲEy 3ʌ0GCǥgoe+R;ˍ,:@lOhw0Gy6 YmMu[&`5}?7^/K[)zSO<0"BL\t%sw #C(\0V;UԬ^إ^IJ@_9Iv-EuWU<4Fr"[#*uΝ>k!sd.aVm aAx'ơiou ݼW3  )X}ln`]&]VZ_ ]j-uhtsK:\16~\ߧZH3q.n}sH1@ך1i_m-d!imB3ݜG=kmC{hgKyVY(Bbrzv6ͷ}QEZqD3NzzQZjiۮ!؂u-801Zػklz!9U+EiuV)f yeC뜅`s{ՍgT].;cie[nf*[Sޱm*]powr23ggM-v+nAr'up jg壘=:3P.ɆÐÌe\_5E` k&67|ɦNm-cS4#qC zqE[KtrP< eC6N ݂#ކл zD֕F2c.A!3> {b9 DE w ̗xbJf RlI sWGXѵIckNp {+ucJt o3f!FtV=Qn@{{iL3:  u:fb/D\,/e.7 gctz6qk5y{(HQ*UPI<>jQE((((+'7a]8MEO=kVOӄ}*{G`{3ȳ?zyy>{vK{"Pxg8Kx.ɝ# 3Gr>Ьp{{tr5>)"RY$?hyH#ߌQjZ~IǧXIP< NKGrEh$o1qڅ,.:e1\-庾husj{GI&Cz#'^Xٛ` csKO %bdK(U2FA S|5g[=Zumq?xsքyjodL[m0R>a&s_&j欷7io;9`M:O/6iguM)l5]H&0H;scK;^rn>+栵](*rx'':RBÚ4X]jO3O¡[8;2AKg]jF,k_5n41fJ2p.9 }u8ȵNōW;* b؊cBʽrv:|$-#F޻/ >=@[l ˀzFG Rj=+_Xځf$g pxxLZ11nuk45lѿEV- WikW^NT1#ީ|eUz8Y0.Z,P_%ˬĮr`C95+Đ7PA<֪%g 3קzDMpvk 1\rLo ߎVu! v5 [6j$NorGZb.7ju %w,!L|<׵R"H-nܪ#@=9'gϯhߵv4F9#fH>FAojHY[]%)⠾MPn9 7?J'V'%Rhky 1H ordv/j'AVPK8 so8m.R # fݏH}k>R SWIe1 8@V&ah/v,y}7c8ִ?PmB \B2<1Oq޿>KFʒ8ޘܬ@ҷ4_G K 8o%\|zӺ<1 %Vd#pX)\$a=V@ =)$÷ 뻉Ԍ2\G'w :(l vb^TZ 5&F6';APIEuj s,s2[F+1p~rN1{S4llI[;alqB хqi:>o tA4Xʜ'RZh浹(K2@w?`P%Wι3(빱8XP\I+O:ghVa8f9R89@s+Ԥ+ IKI)C0H*=@knPrB8\׆Yy4dZgRBU-3xp/^{vw:{wXQIK 6fVOаdV宕-:k cv1}Fg:ζa])GP8 x]?V2ϧa9'λ=hg0HdaX8789<՛Ng7@ȑpGB׭XKm"X8bP;qZ=1u_aM8B-&h7a>PBcvxpM;H7V3t|>c/g#ޜ v- Z$62z)!)񎧤:!ii!qxI#s]gg\\0B\C+6X qZkWV60ٴݮ1)E`TyqTť|Jp'ʳeƁe px]ey_n|~tJ׼@C`屓m`#[đo1F=ϩdkhzJ&C6}Jq/b kj[mo%iIg*R w<am:H2:J[iZj6#N>Q:Nn..hg]Ha]үr8i$?5[B(O# q*»Jլt ;OѬuU,VH؅ @\/P7DXQ*(Uz uQ@pƩ{^}Bf8"RF!ӾnӇ" ;[8_vFZ {{5EXרW-? ;9]b@p## zOw vZ@dyS=TWr_’j#W3!tI䀠d^#6T+c.@*ڄ ^=j%:mʹ=Јc(9r}(@ȏot]/n|J̕ǒYkkҴ_* e2}ʕagB%Ny# N[d qy,C#g(0x䓃$)Ҭn-"12qJ2e2aXt-pLDB(\0|fXxCW].+sskt|Ə>`  qɮY"%ͬ(o2LYc bn̶ͦVCY B_q! :-/F:ez¤0ĀČ=X_,cp0#/Xn98]iѬ&mnrKJjawZ\Mjpab$%,9ÓEAτ˝2c,^Ivx#Vb 14[ͥf(%,Ფ ghٓ^ՠѝ[ m&B m/(I A7SK3%@K-K/- & 0<4a=Q]i h5MF)nQI:[HA-,Zl,Ԛؒ!I1PqC <WY7, 7ڢ[4y&y-eD pB5)Լ/j-uIkxgǀQprqڧF_ҵ`-,f"FB3&6Vw|-}azLХ~D5ggr618zZ։iq[?%#Heg"#(ox{MJ?j%Ɵe6$rHA gT_ >1{c.wkU P OGjϗڤƟqqmms$3M.NV%H㜰-wsj,Ӵ SM!@7'mvP77fc-wTpNм%[i׺\׳ZI[B[X(v֯|7qgc{}q <Οaq i ( qT4GwkER9"8/#G ˀqWo;K^B}-pj4j10O=Lr惬MmJ5ma@:hDdn72=k&Zh !17PGBkO:jVwgЊyLy8o\M]K7$9d;z${I.bD{v70HrLr9N>)mGsx.`0Ϡz-gP4HfX@R@RG8h]xk}^K #vXY@9:i̓]k8k{Q%Eq]c'S[MG+ ת!dptq#ݘ`wytl[MP$d_8a)3L lZK0>$ھ^Ld-r ڹ#O9jkʽ[q*Tڈ˷y qUm|hhĎEFTQ֚h|YM2n$Fɜ;|͔+x$,`Z62#C#hFy!*>nteQYf5qP:r cXf@J[A =mMmۼbY]6XdG\}+v d6KԀ\>=nyxcTVZ4:e^TD ˷%0'#xgY7)'K6_F0+RŲ'lRȖ}C3`bsN|cfo4xcdIcF1q$ k] m/ڵs[gXLMmFa0v2`cu=A{vi~Ӻ8QpxI<9ӵ'9Li0GJc ՘zֳ"1|ē?%9ohW^6-bȄYe\nVqQ:Vi^$H[ْX$!(ːw7ֵG-ty-2ΡRȋx]9ۜdUcOn{FUeB}OK5i}>?3ʊKۿn¿& WvA6z7..>Aony :1$pI$h\|C ӭZ "G,-i9A<[n7*1$FwsFq<-%c'\ӴɑdDdR0RnϵgxGZÚuw@ cse.tWN4iiđ i`Vی9I* uea~wR<_# l$S#=}VY#iمbETwbT 0A粮_G(>im`ІbO9f c'𮢎r*Ѯ5VéZ$--ɇɐ"P@29:3Sە7$ c $ s ]d_Egmaurљ-.0q#<Umo2:9%Wq]KRxgSLMN'/2!7rGe4Afh+Vu$W+vc/{amܳKr۬.P| rzTs|A6I:6گ d',C+d.xFuGSkxfX%TNhZH 89G<({ ikHt"VK(#3G8i|W=՞-͔L1 T֥R4OQ`,LrCiZMp q.dX1[#@$piiaዛI/h78ՑBJwwYK#%sL&|Hڮu .F{{ȡ0p]]H9uǭ(OhZ敬ŧs]uj͂ 0P5!xLu{,V{kĶIv@rvvxw@t{{qom@ݼbrܿ=<ҩ _6!I,V^n,A6cbN+WzΧ$-ݽc]'`*T f]eRYPtD8.3M=oy,~mb?(w!QdHTe[7RCU">pF{Y-αC}\Ke drN^Gs^/mtV{u 8 ;4|~bګ-i$-#F,^_<ƿtYtĵx'yp#uYv$Ǔi Yk["\,AN jhv2A2'Xd۴c!GGD#ھa8iDV/凑e0oݏRE[Z4VAsϴ.PWnCe'8ϵV|KjW|H-Lqf+H^WPjUUnZֵkͳ QvFǕUgYNW#%厱?,FAs,NpޞkWu-wG8`L}wCĠ}j֧E;F (g2~_jWR=4dHc|͑pCiy'{3 AMZ]w___N#}P(`8njrhz.o<$M`+"!8~ WIuXm S…I\7${Qآ)QEQEQEQEV'-'M([Fd1j0LRr ۬/\MnG+jPFN7)'*}W~O[ŷ2[ߟK+_:K{ 'z kB!w1U)+v7)*FTd)E0MFH?,II.xQVG~(jN/I߽ӌ (!CNs<\xs ־/b/80,7mZ{4[I4VX4ڌւ[ .䈲$d=I#?0 sڶ[H-a7rJMIqeacs <GѽK%s\B×:|4uҦ-!.y-1cLr<ټBJyA9",9$ycڹ6ka3K%ٔs7T+>mj &[+y"iF8a6 ' "C^k2BQ$KAқ c< hkPO<:8o$]G '=yiz,kVdEM<27P7[n!XZdn\IQh[u3F16a1;0qI=2Oa4E9XǭyNì&w ~R )`zg!qWϰO2XYJn?}ĺIks}$1jJCܲ(Gb? ۭnvS+[rc=*4'Ɗ/ qg׽q+G̒j&loLO9\6RvzV!6Yf99w%a(Y%۸g_Zo|og=38i,Dn\#9 Ige(ha$BWo07|;nIG+#D~@q(SYOiCd񲥼{!{{]N3+|95h:&ƶQL֪ekW8ԉI A 뎀5{-#Pj~^?$zuZO/ ig߽Y٣%'h,8$ )5vMr-y1x)Qd km.,|6b822wU-=Ft&-~ pɄ<?ۜ`vqEº>,Z_eE3ǔ km#x8lOZf]y_IM. p$l$%2*ːzdc Ԩhث >=nbEMlb)2RPђHV I5'"N3y6ڬk~|?vrv >=RZ}"H$L!9MqB9隲_fÏ"jL%\a~񝔕U4uKo+#33 `H<8X4,8\;H!~z t?C_FXX3I2pG9Σm;V .1&Е̪ $$l KsZBH"#tA띬S;K fi>}o{ ԛ.a.=Xa0=*u{h9])ͽr*Uե|Qe^p@Pm_a=[ ڐ5oR 0M|3vҡqJ$ItVFHHrW}?ɟU0.7C'wn[˻kqO٢Ii$9Y|Póā$c-{KkI*ODm0`ˆp+j9|%e9|̯ڥswe<ٮv CJ|Aookt׌GhO Bz;7#iT֍K?YZAA e?Jt/(ݽvx;C@/N\FmZkst̫I7 caxoL [CfkȤ2 3N RTP3hIx`BAMȻ\ݴH⿷V'yto?.sA׏1%Yh-v%xcH +ir e\h2 nU0 A7(m_ ?6y' ַmE>#R& -pedG] .2Iu(`sc @ϕ;_ޫQiiۦ#vy?kR8/9&v$dakskIdDnkN z|`Y>pV Zהy9ݞ4=monnI*c/s{WIPd ēɯ>]Y|)uu!`wW;lpoJ1 :(t-F+[i7YI@ {cJhtdw1[mNcgs;@%gf7Z(fm[9|䓒sQ+G>!7{c&b g8>]8bxJI-!%ԚE_)<OKnb+Z}RoKywitA0l`#V1XB:]D Ӯ촩^KGV5Pr.vOLԸ\\`%qrMr>IDү$VYhlHsN޷u{v%ٌ61<ԏv(:/ER\Fc9A;KAp V}NHbKyQHO߬HA##$胹O-fo-#^frfQ5֍/p Gl=RGV>hZ}i5D,ceM8N yY~l rM~+gt^!0*z03C0Fxj}{y5#./ͪ0̏yk\gt `cXZoӵ dUO!xA{kJ״tՍu밢Bd`$ bD.P[1Ȳ'(s1<1[ZkdN$2Lx,\XOjmzK Q;`9m?9 +ncnK #o9OFq׌t)QEQEQEQEVOVɗNВD#˓n\#yFћnnh'$Qٜ›g-"` Wib6E2'w]$roqz˸8uK kPO6fA6Dkbha3\=9ȡQsr X[ΧoʢaAQ[Hjw_cn,Z۰;ZK}:->;f- {r^;`S*:[MqVm-M̥ r1޹7Ó1i~(c x,v +nWUseku[$S)Iֲ|3f s- |{|)j*]2%${t!Cy>\GxY+Xc#"ddFju IyHDWdnBrC3M)a\\[4/d^cn9 }pjʾ*񕞏èYcw^i ʌw n5.ki-F)aH @'~ b(Ζѡ/T9Xe#L>]$[E%YLr< *3 tPBA/&W,% d(! l<=pOM4>tbi«[:0uywz/bX KLh]@ڣ$1['+WI ӭ $˼Y%T'8)/0dg:g7,76+*\\jN{#)g~J+*)–+g8GY 1,(!ʗ^0}jK C.i/y2clc|:q@xRL͔WWm8>}Xv0p5Ʒml$33XĄ^ /팑H^b*h(fO ͮ&p/(Yjev.F #@?,~ymⶅbe|b^!y8V/YVwv$W\|,`stZmk=8^%x}_cAVoBI#ni21N(ld^+["9ͳ33U'f b[HmX ysr9%e=ԳMrsm"GGN:nho&C1@E@ }}hȃPﴴҚU fvFfw Z20U %pcR"b+7ZFsO{rѲ&͒2e$,@dV9G@s_-o7o=QK i}\bimwgo,qPp8| -6y,oH**M$A9e>/LX$NÐwܹ!H bMxOX{A42 $:־ZL#\KF0|#g`/?nm. e1+3AR7.HhI=󋆑UP.Ru' j}r b=-0V*3 .vgҫ[kFVYh!/bJ^;0:5=R{ڲq*NyP8UWvzuw#CuۂPgW㞦+Hy@v<ܘܡr2H#֜&Ψ,REzYv@ʦLmR.| YY[VQko -un⺆==Ĉ\RYsI5g]-Q0ki7>ӌےr: K/f2R5rmCsXm[P5hXxsWCdc?,myr<v#ئ$3KN γ{ʷP2#Gld~5Xde+d3ަ_-F<MofRȥE B Pp#Xǩ5IO_.~}ۘmԜHABJ pOogU#icEmytmJ&.Ee]@ʃ0UY˰8^(QE9u=b[X\B͌(=p]%bjմJhoY_eYv+b^&txodŻIr֛rHi8H`HUdz'bэ13[ C`>J.IJԱEPAyr.>4.=Cq( U_ '#dii"v4rqq4zinuH5kXl4Fo5U1 0 9*ޥks-V{[ɖ'˷>Rl'G-"oeFHɐssճV͊\$ʓ,zv)}Chg"xZmE[\ܭ*͹w6 ů6ΰGPN=[dj]-`s as64PtwY\K.!rl'&1trq=̞l͍p@4(@QEQEQEQEKWL6Ͽ 2جtp-eMс8Ahfy׽W4O|`O<][fF2m,~_z'IQ$]|1@F{nEDsKf2쑏NPlȖ]B6m '&6 å)y_IY@Mec{"!>Ys|EIei,Jй""sr?:fxz}RMKm:+sgU  X#+YZ }+eG E w'0C]í}j")v+GZM~ }R[+.m"uG"r0s :?ut Wvs'R%Z6.o`7)ڕucw}%Al)IL0cK[\im^ӭdt@AcTDsl;0*& PX/c6'hq vzd=Ms }6M)Vx%jIfaРN8[sG2Ioy$v0"dT2-@QߎꚔ3}k&YNP[i^I9=\i.nPeI$ҩ)9=h-/5"wcw)za>һ{ L9'=`}ywRh/ 09sVXoW^ZiൈPHީq\:\HP0$vlg-we]r]61w~]Kͤm>jzxF,,t&m#O5K#A*')Rq+,xNӤ9$)v@,N~cv4 ;q"wsu$e'nEgxO y.!YV8!C,jmpwkR+)-㺛i@w.rzUk c{32ʥ@ 6pR_x]F,);1l峷ߗIcۡOaEZ'f2^S|?:PϠu+6o-k꾥s)0KXa/^$F#͚W.OuX>s'W(#x=vk y6 ,uH߁5i}9 mBM6}uT#3DU5)/l-[YB _rOTmiw{d2B?xT@ BKfn%S ˜zM[wUuWJ7s:Խ[ƻ;آ`d{X>h õpx霞)x=R.;, a6F7<c\Vvp^[sputM]Z[SsnL3)u',mĖ abTm^^Fycӡ62BΤ f 8ֹ@Q@p:OxsĂ/gDdxd-3Kaa{t]-gSlj$rT(U:n5d72K0J;,HX=Ee|Q^XWƬ Rhzݦ%Fer2+dМgEk d²l2 c]kFtYAy$|"9!Fy8\O&wV.ǖCW8?qVz=F{eV[ Lm|1MjY]X\I<4!=77lt 8 ?nrrdʂ$aڱ;qa" @Flho^YsjXm. YU8vB:57kW_,gwS&~9{v7 hE+r3D^<<9qMs5Q?,TEn17?7~ jipbuoSLbywFuwܣZ6 'K}F+{ˋvQ-Lږww}qn k4!+)@ #rjMXĽo?',3-B;9ZDPSsؚ"T"{^Z-mi}ilx)m TMa2V 蹾cBV")&)n)o,Sjw/rn.J('!OR;YNK[ .d MH`1כ--:ˏ -DR^#41W`{xnA 6Η{܆2yNˁ8+V_<-o:oUdiυu umR'V/*I)a@[^֣7,).y\n` Dc ,x pGJ6vzsOX]5M2["X6&Y6?RsiGm-+M0EFdUnͰW+5^:kzMBT6S.?v'{ii3Gvb|݄Ax T?ҼKv-贼QrLFc'$(g'!n,Vn[ rwA"Ē5:lwQbT(A}jjcl!•)7n{'X;TY@ibW –'R%ړDXvڅPܛJ#+3泧=ֶqq\yr_5v3'Ї #W{o"JF02sU`k- j;9 lQY[srO9UNjE4O*܈2]$ jp@յ4(Rܭ{$a~䩬E4+i,- Uqlb^_t JVMFOVpwA@3[7vވmc0xb䦵uo-䈂Iw@b'+S[O\Cw$i,)(`x-v3Ko̥mWr,DN/Ϝ236Wn"wRH:F͜W9e_?yyf?x26/+<ǥTIԭFi'+ȋ '=`[-<'5=ޑ)Mű #e!}HzsݾiqjkޭExwJ6I`f'{fwxҥt7~КkcES#F8$ HR z7Ka[w0n3s q04W|&|ҡmfRw`$9 CGPmF5&X'8sKM&ntu(xeJ<8sꫥ^\Kr :I2TN#Iw4=;>W0vo \GAoDfKvr0tE-${؊UPI8u$y/Ji&hV(2˫sdth+IՂ(QEQEQEQE uӄ,6󌪓{Zhffr &Ox )2[yǕŸz]y»I똣-Ϛ.~f>1E>n s$OdҬ}$)^4kTA~=k wŌ vZ@d~jF%vu1+8xI@z,G.AsᣡV?~iK[pI2qHxZ5K+[+uX=GN0Edyj1X̐ݾ)CBppppk.]2(6^{5W0<WWtl qք3Mcf,^J:`OzɃTaEoqfӤ n& )ˌ ՓmkBkiZB n 0ٿTO9m Vحl \(;tMzp$E c*VEkVٍ֑T @? /]h0^]4Ȋ鼵R2FX(!r{ ꯭7#=Ȑ63d1Ҁ;eѴı{%l@2}Jڎi&?*=Ѭ cF-!v1ӵqm9%3\A$:TdX@Km9蚂xfQth2bBQA79u}락su47F'UBl2?:q3Sb7@m n`ڹ?[- M. s|`NFKgy|[4 w.8^,B{hbI+ŋ\4K܌@~>uŭm LZH!"`֤n%vU$zuaFA&[&k}:49MFT` J?ڵ؝`[T&b\F@]仓C Ik\qbKnbO!Q.st;QW-Aى]b`sTe52jAq k 4b )a ],u5V6*")12Cזls³m|5[~4".X`1#vy8UU%pA]Jjhe]60l.H%8'[_x_&;"1}gsܹlpsڋۯ KoyJm.@;HA8ƽ{m\[KR?yB )=3E}?EgC0H eP H 7e,ٍdn/*@Fs?@ү`Kmwٴ1E6I SbXxf?]jw>,pJH,|68=GW_ex.DYrS14tA￱Fc 68&ؼ!rrc\[i-bJ pn!X&ExR2##6Mt55瀶cv1}VgZyl/p_SvZ4Zn($F *'}\xrgH$xK6_qєuizoko$D:>b-6E;U` ġB}k<+ë;Gxαۤf`Cr1o 麞InmSs86JXP4 {}얖xj\4JdQk;EF>aV zVxT&ye"vV[GIֵ+v VR_Lrp!GB>jC:6tʹ$ j}BM}NQ{332*aN2p=넾^6ǻʊKcaSpA]~_\\}onQv Ia.0A<I'*䳲Ik%se|{ӛE!}2ŢD6}TcR/ i:݆i-ɑdWRpRnlV}߄5|9و`{i'tp8PقҿI ݩn.DP\BbYug l<;ZmZY"van Hj rĩR3V2e׼3}5 Vfc9A "XS-&e9'|8](~^>!>sS/[=BeC@@⾥xIdtS\RdI!m\ĞZF0Ҝ|jK ( ( ( ( ( ְc8{R,66HIk'-'M([Fd00L#E'&gycøc)m ^^il|nAx->̪>V1Vkf|&/0݌׊4[ a"]F4FNFeH$z76\]" 6vqqBg~Mu[a-qI(%.]a=ԲZ7|Ǒu5k &c`yd;3VE焴KXm(񪤮#̤pr3B(ջuE"\ȿ}v 8Zu4ۈىWB6w)sֆdik{sfYJ9' vd`3Y~"ӵY( KKeXq\<g+ cL#Hs1$&zm(pd7N8409mږjq}ih-9WP{HȎV 4DSZIkrtIY9Av$nl#g i"ۉqPa۾P8SM.wiSnW̸ۆ[r7fAu,䴕 k < 7dO%o-"SM{r{WssY7~h*ss)7X2FGbK_Z}Kͽ, J838:?") ڣHL, Oʄ9#f2+{- DR)T n.7Mk8]&*7LۊBySēyc}u ̷0$;H8i$UIm Lj -6H~yiđ3Ɗ=x=z赭Oք#Q0RW 29,f 2 TcĊmo5Y|D:E7١# %|#9\@=$VKƿLOr*`psifn \ƱJK*WF0I95.ZvgesfbrY$Ri ge )FX8I p ~:{]RA&&GYKD=mˠ- euW `@v &iC;X@^5Vwm)Vx!+Xkoe`iַ < 6ŕ[)h:tZinE1rc @R31qwPH#k G53Mr*'(0x[?gú ;q alG:S|:"oA6um6т63yib_/|;NF L§sR/ur^ m/&d =.6#$9C- 26|~fZ 0>cd00sNk wd,@89}irN,={;?Ř74[ oͷ4+LV)ruU^+8"̊|ÞKzjZM+H5>EUQ@Q@Q@Q@axyM#ȕ5(#}I>Vdltðu'h>h|nrQ-0 'zy«o-"p WX=MQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEVyFџnnʹg}~K}=™LrNG4u_ {3Qm ]$sAoqz˸8k>ȵ?z((((((((((((((((((((((((((((((((((((((|Ck-M8AkZ¶|[=O18˰ic{ץך|(>FAOwz]QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEbqXbϾ O=kVOl%Nk{yUIv<? ׫W|(?˙m<~cQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@s3'm|C= }K裏yrvGU8ovs1FZ {{5>]ŀz}yoŸIbz >2FG|WP((((((((((((((((((((((((((((((((((((((+s&-2y:>QIɭlG#ǿS6nRNAҎfr_ őOJ/قocu ⑼-EGdK{!sdT4-cR JZnzyE Vy:j+>$S?nF. Nm騮g{*C>$Ju?ۇMEsC@ NpOE7@5̟ ]t ]O%:?E_㿙bp?M騮dxbg*t/wJ1ϙ?:j+bv)ct/wNp騮g{u?ۇS7E_<AU:F. NӦ#CዲA_{_tW3UwO.t\$S?n{*CF. Nm.?T%ŻG#{ NGouۇG"xtQ\#{ NӦ'"{XU㇏@5̟ ]S<:?O%:Lc|?n:j+^ik27A S?n:j+O%:?^nJ揆.t ]O%:?E_SዽS|?n:j+S?nE V9!tQ\#{ NӦ ?TJ?ۇKS7E!|/wU:CݟJu#CዲGU:bq??WCD Nphhxb)n7Iݿk]騮dbp?vxb)n7@5/wJ1ϙS7@5KI-n-ܕ/@*QEQEQEQEeӿU#:˓nX/ISGnnʹ >u@g!x< X\wm,WקW|'_yn9᷸#w .9OcN[kKy>#!o  ;pX3ǩ'4dԭ˻!7XIrȻ m=x?۰,GR,kWP%V!+qXzw}L`{K10@5ڧ,FqBKZk$i[3ۅ%RH.fW1o01@s=jπt;V5-FJe u#ڕ|eٽYZB]Q9Y1 َ>\i+Q_B{O4eXoMDʁO<8'j+X&!|w(q\jQYNUsesH",i6zi'<)V {wAHu0(u)l-F}wp#*q+E'CE,\(t[-lML*^=ҩko끎kf) "b8#@[ei#(7;TxĹFpW#coqQM"+ai-*X+9K60#F4kk[RQJrH*rޫ+&tas8,V)E$f9=7k :nڮd-.'㎼;C6&3-~7 qtq}A{w^^T(PpRGQ:u l񼌛f Aڠc#ӽ $Oh=ByG>RH VWϊ9Vx$b;+2?ijhUTHxV,,?t{֫hJ!eXAIt67) ~l|So`<< I$r+VD[;+6KqD6H8P.<-a?L;XԀyq9 dAXu"WaK(tvY M8=6-F\@*Wl`A>^H B5xMwTcAo]O[+iHfM,' ( "SYi[GB鸯8Gati{ v%Z,XTc$@.20D`AT⢟vZ_ڽ鶻He;A\OPۆ8&%WnZ97RkpA*qaͤ_a$x%${˔ =szӴ i|2Cʣ;#\*n='"]vRm}R[@vn 8 16:AB!pDl _ #/f44,$1L7X z–6qgm%,"s@`ncI$F-?Tit{h 1l$1GCg8$t&iVE6<[G*p69⹅ݽŴ]w GxX p\dS:oukݬ24r/W=e-9-mX'2jU~];C/xN5tnnY5>x3FxY6>5M\[}1 asʌ =/OM]9$RI?dY?Jo.B<ܼ5LJ$`1X rN8MC<]{q۽VM?}s!V(Jn;a[PVlm rOFv0:T1[LNndaB?ZԸ{[,$,PܻN =\[ژDyYHSN3;@kKV1Œv9<ib-{{QyL0*{N5+קR-LA\q?mGjB;C"<( _7t~cwt=Tpk6Qw >+* "Ajm{0HDD$rssih׃P A gt f\U:|d̥`w0V GӢҬ@ً3$d',Wus!DxE6c,@CI!xJȐ #| źTk7Ъ۹o,Pc!rG>WĞ{iz]!&̓""ps!m/[0l !o˔ arIz\Fͳ41,hA"1ڳXԠzf.{1E@ܜ1''kdX,\HU00BCMMW*G=B&(+)t+AײE"HdȆE 8m\gi5l2;c8P2Md" "8=b‚;w.{ r)/R;p4c7Cm!N =Z͸?=iZ)n Iw>&{qv"ž唕E$@,y9>Z >gmxʐ\A+έ"X2K7@]<$ߝzzg3^厷<ykx 6 3;!AsUzSi7y}n?BaU%=Kgʲ[l1qLfg R\%R?eqzi>Ӵ."{y;n_'=I>|5}kWDq|.> 8Zwgk|abCm$ n IXG:4!ݎr4F-__ֹyi \)b< 5 Z\m,ry|,shmGP[Mk0M*:.lxۜykVӯQt,9FrA+r}+r ( ( ( ( ( ( ( -Œf`rNG5Y>!tst]R8Ahfy׽W4O| &[{6?/׽z]&o,+:p?"?Uk(Ҵ Y–/ddt'pzץ_X5M:[E*@\#5g-)u(+8u7Nh$gs&6y~)վ7 s4Ѭ:pmtN`$c=\4/sku/>$V  prݍw7-;U=)/伏J*<k48n5 ieo.9R`U8y9@r=/j",K-p15kZ3yQ*ZyPXHV݌eXdzס'ڨZZmꆵ-S/ J߮;S3zmmE7?jp>\z3#/K-med=;ףͭiKZӹ ҁ@ u5]F&UČ<(~xܲ]\p}8S>s 4f5$#h\.xWXxIba[ [88o 8d9q&WH1w9Ox{MCɂn'VX.EmK`玕xZMGH[#s#06?ǯCREjO=ݥda'*mV]^<[`)=TFw#SZYƱ E]bKcF3X%է֖'u;iE}E1 cW_si嶏5%m"Gr9ҥYӥ( ffuRޔ >-[kYE+*ᔓFz`jՇ AWLec`p29v}RkoEO&-ݜϷZ2xXu-*{ki\ L[4{RHVRhzUW}[۵a${G$Jك{^PHe?#@0:.~e{TWl-7v3]W-%17|aNr{=mVռ&/4v]i)EY99|;MMCjU3 7 cMy_Ր}]{[eIh؎0r km *ݺ d/ElC bZ4x5M\ˑ!ǖr={u5#3uC4 mp-VX*߻uO9VSNR/luL׼JMRJY{٤)z=j⛻X}[˛4Xc:rw鴁e}x\$o ޷EInlA$d~ӓZn= Qܛ4)$B ʜr?:>m]qpVJL קCZAEe ~\\~X@xZ;-n}ONdhH* $pOV-iu=\2DUq$/ay/XZ7pRa`1W:хGqr{$c..֎p:CM]K#xeI!߽ӑyҰbuu n(o-ww)8(֢Ŵgڻ2;*0cH}lvvq[Y &$]iFF$Xh7Y< r95?mnmKf n.sMqmqp^ 3;ؖŝ/_d)e,!Pgh1ܜj~XGT𬚁xAT*+îpATԭd\i\mie#f`G^:f=[P[QcM&,elǿ )̽/K{;e%yF-.Uqg_O&n&ɡ&2X1CUi{.Ad&ۤ2xU;Z@I8r:T+X,n&fRcp$لbF88šo"jW aBʼnR#sYwz \im-3|e=f#76:Wbo5x[.918z[?k"<QݛmRY $)F\3r:` 3Hgc}g1e ۭ\o^x)wkn2LZ2 g[hzOڥɲnC"yA8( kbeꋡ}SLIdhFxgag56*it6^J@IpͻP;sml.n\.;YFQ 1 t>gIԍ2gcF#h O8=:hZ.C]=<sWN378ɧGQ//u;) ǎ(tPӐ~Ҏ:j+Οwage(Ģ0 ^9,sǜbm[xX[bKa1)8f@W)q^Ve,LHG9e&o+s?K//l+B57F[h2r!q #Q\Uϊo?.- vi%VF@Cytfh5_CrmQ[A&RΣ QYԴx. [{d29<gFqTVԵ-NicIيYQwzo\Γ^\hW/V!q#6vt= Ep77Zs[Hzpyt۠#j|F$5,1Y4 ,웃bF(#_Rm ݌Ze! g bFA?_eO|>H&:PͅV_̱+dqU};FӦ{KXyI&7v,AnYc>O<R~4rXܤ8G?G~PdǶ06g=3|?_*H|2Tis%Y-ļI(C&4;x,Ƒ*Ԁпa| ̿U/!>_# 崷PB {vRKMG*, Ώx|g/'&_* ?e Ȭ,[xlV$J gO_$c>e?ҿa|̿Ulťi:}pKđ `4b=e?a|yX"&XxA^:qӌ wa"m-Hϥsp?a|?_*qbehiB[Ep6JQ0ND:}Q>BV Xxh_1/o/!>ݟq XM#R_!wldKW2Gm \JUp:eưe#/&_*7o,bm;MuϮbDH$Uh_L{W?Og/c>e#X}s{}kvh"6 جa(a8b;#PzVG?_GLUq?a|/@k)噌cy_qI%%#RE#Ұҿa|&^*S ~:PA[đD UQT͏|1?a|yv_2Tc3CpI4BOR ƭڹ_#e $_*5%t5HiGܻN>ڍ6[tHvA=/_eO|>H?a|y ,m% --[a (x \O$X=e?пa| c&^*ho_8|P<LUtW7G/&_*B|??a|/@%0 ?2Tx|PIEsv~?_*+eς|>H&/@O(kl+S_#eO_'e?Ϳa|̿UtW6|?_*H|2TQ\ /KO12TQ\G_OLU'!_I :Z+'12TLUtW6|QOg/c>eBdesc&_dscm'$mmod'((cprt'P$XYZ zR?_qXYZ YXYZ ""XYZ Rsf32 B&lcurv #(-27;@EJOTY^chmrw| %+18>EKRY`fmu| %.7@JS\fpy  +7BMYep|,9FTao| (7GVet$5EVgx'9L^p/BVj~ ! 6 K ` u " 9 O e |   4 K c { $ = V n  : T n  'B]x:Vr;Xv (Fd<[z9Yz>_)Km=`5Y}4Y}8^Cj-T|Cl7`0Z-X  0 [ ! !7!c!!!""B"p"""#%#S###$ $:$i$$$%$%T%%%&&B&r&&''4'e'''(*([((()")U)))**R***++R+++,",V,,,-)-^---.3.i../ /A/w//00R000101g1122H2223*3c3344H444505j5566U6677B7~77818m889#9`99::T::; ;K;;<>>~>>????@@A@@AAGAAB BNBBCCXCCD!DeDDE0EtEEF@FFGGSGGH#HiHHI;IIJJUJJK*KqKLLHLLM MhMMNBNNOOgOOPEPPQ$QnQRRORRS1S|STT`TTUFUUV,VzVWWbWWXLXXY8YYZ$ZtZ[[c[\\S\\]D]]^7^^_,_~_`"`t`aalabbebc c`cdd\deeZeffYfggZghh\hi i_ij jdjkkkkllslm#m|mn.nno:oopGppqVqr rfrssxst/ttuCuuvYvwwpwx+xxyEyzz`z{{}{|<||}[}~~|~=`#Ipӄ6`Æ'TL|H{H~MV(d͔7 uJ bΙ:~WĜ1 yUß1}[ˢ:jۥL.eةJ/oVˮ?(q]ӳI6$yiZҺKĻ>0$vmf_YSNJGECBABCDGJNSX^emuۈܓݞ$ު1߷>LZjz%8L`u,D\u7So9Yx)Kncurv #(-27;@EJOTY^chmrw| %+18>EKRY`fmu| %.7@JS\fpy  +7BMYep|,9FTao| (7GVet$5EVgx'9L^p/BVj~ ! 6 K ` u " 9 O e |   4 K c { $ = V n  : T n  'B]x:Vr;Xv (Fd<[z9Yz>_)Km=`5Y}4Y}8^Cj-T|Cl7`0Z-X  0 [ ! !7!c!!!""B"p"""#%#S###$ $:$i$$$%$%T%%%&&B&r&&''4'e'''(*([((()")U)))**R***++R+++,",V,,,-)-^---.3.i../ /A/w//00R000101g1122H2223*3c3344H444505j5566U6677B7~77818m889#9`99::T::; ;K;;<>>~>>????@@A@@AAGAAB BNBBCCXCCD!DeDDE0EtEEF@FFGGSGGH#HiHHI;IIJJUJJK*KqKLLHLLM MhMMNBNNOOgOOPEPPQ$QnQRRORRS1S|STT`TTUFUUV,VzVWWbWWXLXXY8YYZ$ZtZ[[c[\\S\\]D]]^7^^_,_~_`"`t`aalabbebc c`cdd\deeZeffYfggZghh\hi i_ij jdjkkkkllslm#m|mn.nno:oopGppqVqr rfrssxst/ttuCuuvYvwwpwx+xxyEyzz`z{{}{|<||}[}~~|~=`#Ipӄ6`Æ'TL|H{H~MV(d͔7 uJ bΙ:~WĜ1 yUß1}[ˢ:jۥL.eةJ/oVˮ?(q]ӳI6$yiZҺKĻ>0$vmf_YSNJGECBABCDGJNSX^emuۈܓݞ$ު1߷>LZjz%8L`u,D\u7So9Yx)Kncurv #(-27;@EJOTY^chmrw| %+18>EKRY`fmu| %.7@JS\fpy  +7BMYep|,9FTao| (7GVet$5EVgx'9L^p/BVj~ ! 6 K ` u " 9 O e |   4 K c { $ = V n  : T n  'B]x:Vr;Xv (Fd<[z9Yz>_)Km=`5Y}4Y}8^Cj-T|Cl7`0Z-X  0 [ ! !7!c!!!""B"p"""#%#S###$ $:$i$$$%$%T%%%&&B&r&&''4'e'''(*([((()")U)))**R***++R+++,",V,,,-)-^---.3.i../ /A/w//00R000101g1122H2223*3c3344H444505j5566U6677B7~77818m889#9`99::T::; ;K;;<>>~>>????@@A@@AAGAAB BNBBCCXCCD!DeDDE0EtEEF@FFGGSGGH#HiHHI;IIJJUJJK*KqKLLHLLM MhMMNBNNOOgOOPEPPQ$QnQRRORRS1S|STT`TTUFUUV,VzVWWbWWXLXXY8YYZ$ZtZ[[c[\\S\\]D]]^7^^_,_~_`"`t`aalabbebc c`cdd\deeZeffYfggZghh\hi i_ij jdjkkkkllslm#m|mn.nno:oopGppqVqr rfrssxst/ttuCuuvYvwwpwx+xxyEyzz`z{{}{|<||}[}~~|~=`#Ipӄ6`Æ'TL|H{H~MV(d͔7 uJ bΙ:~WĜ1 yUß1}[ˢ:jۥL.eةJ/oVˮ?(q]ӳI6$yiZҺKĻ>0$vmf_YSNJGECBABCDGJNSX^emuۈܓݞ$ު1߷>LZjz%8L`u,D\u7So9Yx)Knparaff Y paraff Y paraff Y vcgt%<Z~~ohl  k bMj!N"$&C')+B,.0F135368_9;m<>^?AABCE&FWGHIKL8McNOPQS T+UEV_W{XYZ[]^_=``abcdeghi.j>kMlYmfnto~pqrstuvwxyz{|}~ -B]z،"HnÓEnڛ4K`ræէ   ˔h>ФтcG-٬u6݉V%pCOFn5oRB;I[ u,c&c"8SuU!5 Z :Kbh[NJ "]#%{' (*2+-X.0l13q46Y79/:;==>?@BCD6EQFjG}HIJKLMNOPQRSTUVWYZ%[8\J]^^p_}`abcdefghijklmnopqrstuvw~xwyqzk{h|i}k~oxć҈'A\tҔ %7H[m}°бܲ %,/* ǯȟɏʀrdXMC;5*׵أٓڂo[D*_7U"x?@pAFBBCDEsFKG HHIJKLMzN`OFP+QQRSTUV|WiXUYBZ2[[\]^__0``abxcMd"defgh_i?j kklmn]o/ppqrsetAuuvwxyyJzz{|s}E~:751* Έs[B,   *$ϧѲ %8J\m}ċŗƟǥ"FfχЩ ,Lm؎٬O޴ BpO0"ndin6WJ)Q$3P T9z}p1Rn#8Mcx:Vr +Lm=b#Kt#PH~'c  b D C P  q <|]F5,(*.=UzH.~( !/!"#I$ $%&b'+'()*b+2,,-.s/E00123V4)4567w8O9#9:;<=j>L?1@AABCDEFGHIKLM%N8ORPrQRSUVPWXZ[\\^_S`ac*dqeghhik'lmo_pr@su)vxy{&|~g=މxA ϒ\2rˢ3Tzز\)aƇɩ ^5Z{$:Pf|)Fc&Jm%LtCn(Y+dV  g  [  m - b <! .@Rm+bKK Y! !"u#6$$%&|'Q()))*+,s-Q../ /0123f4I5/67789:;<~=i>V?G@;A/B#C!DEF%G.H=ILJVKhLwMNOPRS-T[UVWY=Z[]^e_`b8cxdfgJhikElmo[pr&stvfwyAz|L}-҄}'҉/ߎBV ՚[3 ħ{|ķ#VBťʗ&_׶G|ު&o.%Q`;e:Vs1U{Kw._,b I N+{ z A    ~:m RB/7[Y !q"9##$%&'()*+,-./0124506\789;<2=_>?A BNCDFVGIJ;KbLMNP"Q_RSUAVWYOZ\]~^`Kabd9efhHiklzmoKprstvXwy!z|*}w ńj =Ќ`{šG^ VHWϵd Y ^t*ˠ]Ңh4I9߰#ILp{aA_'q3desciMacmluc enUSiMacmmodkӑtextCopyright Apple, Inc., 2009ExifMM*V^(ifHH%C     C  %" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?6^%ƼE,{**&WlRzVBaeo11rO<1CUԆǧX?<-|5,Gڥ&G#('no > &7Nk~xZj9Y'UԆǧX?<-|5,G^]_/?~UԆǧX?<-|5,GCIӬZaz?I#Oc/.ۯv?~UԆǧX?<-|5,GCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?<-|5(GjCIӬZaz?I#Oc/.ۯv?~_VԆǧX?F{}WSLodsOo{yvht4W<4=6ɯkD(}WSLodsOo{yvht4W<4=6ɯkD(}WSLodsOo{yvht4W<4=6ɯkD(}WSLodsOo{yvht4W7?O,I!3 Nb遚HH] R)E]?ޖ"_uQYQ@Q@Q@Q@Q@sO^6-w+;HiD qg- 6LeǕv/nv_32mQnnugc`zѺX,`zѺX,`zѺX,`zџj\CE`zсKh4X,&>CE`zсKh4X,&>CE`zсKi2}(X0=hMy-W6FH4L)j7S4vז(,S+>*'kIk捞BV BfEeeb ,nh-n$QXV }Wi-vUlZ֪XL^ZH,L@DĊ24*%ڠMX`zX5 ;k[e)@hPFYbX^TUW^k֌Zcu3Gmykq"2 j7S4vז(,S+>ЫvjXj}6-`zсU`,nh-n$QXV } BfEeebzN֒mPK U^zoŬZ0=jĊ24AXL^ZH,L@BIZ a/MصFUPFYbX5 ;k[e)@hU;ZK]A,5U{龛=hj7S4vז(,S+>cu3Gmykq"2 'kIk%x7bV BfEeeb ,nh-n$QXV }Wi-vUlZ֪XL^ZH,L@DĊ24*%ڠMX`zX5 ;k[e)@hPFYbX^TUW^k֌Zcu3Gmykq"2 j7S4vז(,S+>ЫvjXj}6-cލZ ;ue)CYW FjwDN%f}F7UYf}F7Qfaލnuafjƃw5Z Xʍҫ:%ܗ/E"*-23 OkeOTweSv(O ( ( ( ( ( o.O01wUیvk82y*;yy^I]KKjgdG~crȣ'1sM"(a94ܟ("1sM"(a~4̚2}(32}(9ƏƙFO4~4̟J2}(f?dQ@s1 O<K8ۛY晎K®NjɦmbGv)QQru_-gBTttYYEH*"*;уkW0iǸ}ޞcQϽѨr=sG>jqF=Ͻ(cQqG>sFcQϽѨr=sG>jqF=Ͻ(cQqG>sFcQϽѨr=sG>jR`0} j%i#&edT}YQYcz$c -rs1paxUL$2UۖQE+k#xͺrN={Y?77a>CLhha>CLhha>hwr> (\©n5sBHkz"~`a#𫊼eOTve7 (((((b? 6qLeǕv/nzz .E Sscԣu-/ݪ~dsQSroʎSQM{Te*9@uܷF[QM{Te*9@~3F*<2}hLQ'֌Z9@b'֎P$}h 1F*7]4Ob#3Ǘ8%.9?oO~j?R&]Q'֌Z3$}h 1F*[$TahU\`\pW^_ ;LО?Tjd2}MGFO}_)Ih5O>r&O'y>d>WrZ)UmoDQ 1>O~Z ܷ#VDU[[d 1>O~q'n;oE}QEQEQEQEQEW-tPS Syqvkԯ7k'82U1_z16~dsR/Əƛh5Vg.>4|3u9.|SlD_̀r!SZ_ۻ2iN `"L*ڿcļg O B3^fdm˼F9!BsnI+vo xu>+Qp7_suXjÛuEsf8H`Xd r@8|^K䰔v]˼^qWzD|_ 7L8:/uk?jh.ӦH$rDͷ}O==+|AZl_^=!)#FUq_OGĜn)y;-%S;qdhcgO#du?qwSkGw$ѣxcλdxcW vݤA5?e5DMp-\YmMwqֽo{<<~Ί'gti`~[}ևO4 7M?Qưqu[}XB¾$g ɑl2mW9 cg^安6s[g]u"\Liqe+:oJÿ?TO1Lui7+7_?彲'A, eQ%>e0v:$Q̡n|2^_?d!$ʟ!c^uJ`~5:fk:%^j :Hd2;uMc_]\m&i^HmoHS<8(N)Y_O|%53\LUO+~'۴SwQB~'rAG:BxD [|n/]j~? h ?OΌ?:,IF~Sˤst?z;׫CmqwolCq+HP 8'8O SFA.UxeK#4ouuݳ^3qs:T$&# Vd{OKG7_n|6z\'7_nP^GG<2?_}]4sbkDK5.+OqHK4hϥwWXojv0Eu(iu"D,(-a-7Axç?Umב0uʼq<}}gQê9Ew[Mo_hQɣ<:tͩ2᳹b.Y+y{v(beOFN$tY߷`76 V B9ĺU!ԏi=._֖ƴֶwhwPh]c (h,.Ql۹$W<Ϳc>7UZA-H.akhΤh#eYXB/ ?u[}tNY޹FIReP7tx .?%f+"̿ _$?kicO_~Kijp:E\I%% 1.'ӭ~x K?qJ6x?Jo@fZ 5潝{[oC.l=_mk=3?OΌ?:lIF~h@5K5EсrN=/IEJ <0.IǸe/WCN5gO7y}:,Asw΍4ϯZ ԷHmz"'r? }:.R"^#?00?UrӧܿS+ (((((SR<82U1_竮OS< 6qMU1_ͥ_3̟wAh4VϞU3O?SW5!u_i΂D&GCс"0Ǘ9cץx7u77 vֺȗJkOm 񺒿 J⹓icgg7.\*qWW# eZoGB)ʾ 2A!A`VZ3862Wk?f~9xϠ!{^EU@GDO$n ij.v]F~|J?k+꨻;a릇|QZ Oᶩ=#}<躆xYе+WQM 7D bNkro"; lZC2--0کv_]#wB g񓕒n׳K[Gk4oSw^s!4 ɧn]KWʚ[Wv_&2n #)3u U.jJSv̰c(.fѭ'ب-@b/|{4BpH<5<|4Ep.fݏ\ǺZZ>KO'Q^YRDNFAGR,-`Q<#Ԩ[#tį]gEtt{?g⌏Όμ˙>sFGFGG0>sFGFGG0Ƈeشq W[³N0Ov~.񝗄-̖^ܹK{h ,T 5h#')}< r,G`Khq >ZY Go| ?HO|-\ğ(R]Rl׿mIQ7R##?|'>ѷdO3QJ̙kskUf̿(DyO_ Go| ?HO|-^pi{J5_[hĿ(Ae~?z_) υ(#?yy.G0ԗd?pZ6_!G_ Go| ?HO|-^Nj_j#V?Fc/x<(A~?{ÚMog WC An  _ߵN36ms2ķ^&c\R8zc&hYc*Îk8#2цeMM]]uhp9:RK7>sGq_7s9z8j._qG\M69WTahUrx`\pRIoT0H$.ON4'O}M>\SFO'ѓi(5.VDU[kdg'r? ̭?IpNmz"~`a#-:~˟E}QEQEQEQEQEW)^ot 82Uۏo/=۞MJ`gM{{ʸ;yy^aw-:}گc̟wW_֎}޷y<5F]:V̶15q|7W Ig)l~\{}%*ԠLvbOeQ|s_߉9_ ?\ =WUe=\{(ޖեmW[F>~B3}`~`_ZKj̛ąލ|Ǭa|?3O\Uaɟ?g ?4<>'gLj(9WOż_H^0d/\aɟ?g ?4~):Tt߈?Z!v[-$h\ȟ?]4di+7W/ ? %K$L]+MVAI5T_A_(YYNFV+_MG_{+o:.o;d`8q^YM > 5*T#(+-6CϯG>s^͏),M`Q< u*?XOȞldT~-Q_)i_^|Ε%WFG3z9*X~G}ދzёLގ}X`.n^Cm{C %jZ !XMx$_* yL_$㙿DMswXXM2IrsךJ|YaMvjUAb$Tr0zًGM7R㍮:: fÏ$I5bp)Ъz'y:zM˫^]Wԏ!څږVwQ_˰/9hǸ9Ro^+KN5ԷFt[UX1<ż<[Ŭ8DsAnD wfw#ZlֲjVor@p| g@rIcϔ ?'^m{~2&_] h۽KTf> `,8Jə"ryctv1</`MHycΕmpVGPF̭A;}& Z+ſuv_rߋQI_OsMVw5߃U{ppC}3G]H 3'{g,Kׯҿ#I\!D(RHY~Xk~Z@hiϽ0"ÿ?o>sEÿ?o>sEÿKxLF0.IǸ+RsKmT0QO q-Wӿ#'Ohz9sϽ`}Z9hގ}>i~[բVE 1>O~Ͻi~[բ2'\”KO˟QE}QEQEQEQEQEW%^o| 82nU1_筮GT<_- S7}*{sӆWrӧݪ<~|Z2}i0} >>|όWxI?w)O.mcƹAķ6R¤]V}2KMJ6*@# <ҾRbvo׷^[ʔye{_ߓ,Osךᶙ jPxfMoP:-^cX!eV ",<_,jO[n5];oy?'_ ;7uoJڧ}d9~'K )լon ox_Þ ҬdoWɡE ,f#KÚ5:&g[t?LY2 yD7:9R@8Q n5,/m 5Pwj<߽JNjӅ86(J}iߺi7~[?CFWѵ-múdZDaUv7)'~"L}cGկ&-H hTXQ͵2Nj<ͨ31#%%sUU4GSe}G RSWgU߲Gw[]g:w> գ/dv$G*0h.W{8rS_oִGiZơ(& &CM \ ZC P(͸٤Aq?g.mlFO,/+y[h3cԑ&i%FI噭$SUs6?ۤMl.+fT*eG 餭dw_?t|.N?_ w$c] I9k?|7gm[nW*Ӝ*\y>dQ_Z~U=Dc Rl fG-~'rAG|tWW_3?-~?!dz(*wFG2,FG2,<Ûx{pDuda`G Q_$]~17ox"<>/_Amn\M1(;Rk>4xb/*%IW0UޤRgntM?gO___o"<ܿ築i?Zd׿:_6o ?6o _U?>?'_/ᘼSC} h "4x{T!q/ٸ?f 4e[ƿ@7g _U3/*DN&C7>?>>(seKVA t[@w]=4D"U΢2mJ:QR^Z#֛h5\vGܟSFOwFG7'ѓh $ D8>hĥ D8G]jkɗO^42}h'֌J(oʌ^,< <`,":4-{y_g>L۞潞B4J[i=P췿Z=V)Um|xb|+";u%zNm{FG Oc5zr;tTQEpFQEQEQEQEQEj_-){{ʸ;yy^jbOa`g\*^z=8Xݽ/ݪ<~\џn>Uʏ";WU 9"־ xgY^{+vv9$\xml常b5,@k_VײGkxR[ qJ{$7|%eF׶nc,"#i_P> oʏP> oʹ<狿շYx):o?חKcVu/lE/ 'Y h?5ŷyeo|l?i~li~\iQY ;P>}G( >>?_~5ko?L?~6ko?Z.˞ؘ,Dž?  h?5x:o mt:o mE!},w z=Bd :PjWʉl52Ƥ؁ oRMMѾҬ;`y AuQReUrS[[#4do?*?V'ȞldT~':a{'}AGNձK+w/Ե_OǿNh$ 49$/tFw'5̑!dd1@=@ aˤ>C$Ri%Eo͟qi,Ž&`OrX 朳x~C |,rZ_]GY]$x8YzF09cu]Ao[CeUqz5~v 4[1Q}I|`Ųp?v=񟀵MVEh.]_Lkhyym\H9.yEaܢ}Z{*WéBGnmtl|cXkxQv6JzB|JWM֏}.]-qpY5|wKK {;m7G 2DM85^_^-SİjAxOl#IaR Vl,ar'5I_IVj,՞mnoaiSNpܯuo{Ny=?5w|n8-Zkzki=ȇm䏡w[Ʀu_ []K 'mEEz?&W>*iCaia*jJW_<7[54sE~P^cS:_ZI.nVwL*f$9+3(`pM'kiwkf.O(ʧbcd6KI_Sӹ%]NRمEU{~U? {Ww^V,א)qêO]ͼr NR"ArN?WøxЯM>Y+G,/[QhTM|{C'ѓikTxò} 4~4r>>,xj [Q[~n_q>]NdS{u=ޝ׉e]Gs2̨X) ޾қS Eeoجg%7f8$sJK{mw}OCz]}_÷R\E"[k*23 Oc~5˩.!btU[k*2'\¼ܴ[/GGEW}QEQEQEQEQEW^|V 6qLe ca\vxXyAL6qLe1^z=XUvj?2ߩSqjg?*?WQ|[LV˸W}PI~2+?‣s2$m_S܌dksU?8>:sS n.1kiG,ĞIߚ+F+C*T54KD{yn.q^| mƉE:\2d;,1G9k4Nm#vl=ŕw,,X_ǐXJoǗ'~x"_-@W.-K]L9/\fn2_͙/j5,,ng5Y`+)p&Yv#Fb>j7AmwejOu}mj 0Qt,  $d.n;R=>xntnMy{$#00Tu𾫥MzX ^ [ȓv gV*wc> ZnWNZh?> {5ԝᵯn2uol|Ki{Xdm\a2FO0$uV}Q A.}G~)uxRmu/29^?k A#%]KS1R.7(vU c Sj#5K./.dEO907}t_<10"xIɽ? wմ4Z`b0V9~xџعX¶8kF.&OG>\n_,=;V]>[u#}txτ=7<=CQaudx7!ss\^[@𯇴 SYԍcawM3 ]ZC|woz}~/noSQʼ;Rd~#.O>G@0|v=ݎ-ݘu1>@7۹r*+Kx.Z7]T<rTnl!1FW: НHo eY~> ݣ ES2]5 k&?&_Ga_?h?(+AH_LlƯv7E?O˃̙{BگɷWo!ZG|? ?V rk'o~U2}Q>? Y+AHG!ZG|`dOaF? 7_d+AHG!ZG|bD"xv?3Bd~#|鋓KSQʀWZ<= [tk{ީ5 1gC < 5#j_hzk$ѣvl7mg8\OMuM4Wi{!Ny4[[o4}M7dE7σneRK{]B+O!o#P'Ae㏖ktjwM*8ແ]N}V0Mn2;O$cڻx#jS\$U\.I?*x:S,,v{ͷ0c,[n$I'tFcQT~T~#ϗTn?3cxW h:\zes X&W`|>VVRNNo;a&1 Cd}U5^x+W$<@yz&RWEND];yI=m}q[>V'EU }a#?~Uứ. btU[k*2'r? +Ӗe(O ( ( ( ( ( {'pao7w1^z]|P87}*{sׄv̝x??6< #^Uś(`F9ȯϿ~͚Wv*=$l_tƎ6ȧ+IGF5ۚ*V93U❻37=u{M?gO]ZW/O"rɖ*O_ ?G]VSOT"++ȇy'GOY&RS#E/.?,S#)_a^C<ȇy'VmW\Q1,x/?U!I|C<]WeʿGA|Jz~I3O&V4y$j._e}ʫ3[{~` !k߃ a-!bD;?Ry{@ r#@~ PMS$S,&=5DZDZR>z53"yA T~'Kz51Dc R8j_^|ΨVNQEp( Q@\xBM}NS9>\Hnr-(#^+g$}?%ߋW,u,AezT+ݿ[qgcpJRK=_<8̗W|.}3Mnnk"II''5Er?q3ۥg/=e9D_|w:7?Y7$Uh:wmGV %)sb~~k_ ;ytIx7^ڧl <7' ۆ CS^MFnQE_ӯtžU?>$_,*&>$? +A>ijp6w,ꢒv?$>Z\'8)n [cjjokq>Vl<ְȸ&<<kz}RJ;SF~$dP'XlY Oxs-ѶtxUo25W27|/;=w1jS-ݫb8>FYvOmFK &?ExCs֫;Z>(?q./?KhߋE:CᬠbRp\n\`dwo#ӣ\dWơ!]ɞoLW~6pYTRTӺW?Mlxs8go#+cnQEp}kKVӢXgIwCN#Ee^+SpͯYaQT?΍+TAQI TtH5+KfW=.I?*) AO)l"8G] M8A;&m|V:%uZ.I:1:mDZDZQdG{s>6w?ǘ\m-*1]jHt{ºv ..-' TIel0dyօۉR0^_{mSrnv=[^x5X]Vʌ'r? í ]Iq_yQ@.G^}hZWGQEBQEQEQEQEQEa_%){{ʸ;yy^Uk_%){{ʸǷ^ ^OKj?2ߩJLњ E&hh-4X4fRf`Lњ,I3EZ)3FhoV&f(ldT~'B L͌R8gbW_3/+}ߦLњNI3EAhG)F/C.ah2`v';w,H5|xA$`_/\tP  6-aCX_WssY'*%k_o<5Q޽G?kG2?o~+P !D_rWquRT$*忋|Ma;e ]?3>Nq%L |$56Œ kڼ?79E9Ơ^g@*׊ atUr_>ˆz9M)AOwqF(Ϲ> z(4gp3qF(Ϲ>拆-jWM*O$4 ԧbhUsЂ~#C*ON-4=z~E&h}Վ1h-4X ]Iq_yQ@.GXY ]Iqo誶Td0?Vutvh ( ( ( ( ( '$ac&~qo/=۞Ҹj[agfス\c/n{0Jzt_ǟ?ԡF>&h= zϋF>gjRv<7\*b k{.c5AsJfYgk9Ռ7fp*ߕ\Q_ǿx_~>:_t9g}>_ʾ(o#K.^9Wo;k.>?7Tu~TcW J_T Ms u}:c}*1z i@O?)iZ?>_ʿ=||?j?$>OgW~Q_SþBL?#_h*OQa;kV1Z7 7 A\+FnəVT$z~>T]kĚlR\,tݶ'+JEʂ}CѽX < u*?M2/kc]ZA3T[D_*Vm]k3~zNTcRn׋ryE_ʓp4n(TcRnp3u]cLo# sbz(I>⯂Нڏ nyōLĭŹ+[Oga򋛾8CÜ.i^V;uL^!ʹ~+ '|]*F*MV*ɗ7}yXS\'+(-Oz>'K\RQ,kt:7+t]'u_j]N+4o"+b7dIy_Agi7z+e $" rw?n~9|4u۟|y|0ڐYMfT62Iֳ)>O~f)Be G#=GuC~ڧș<__)zieA\iu,umuj]iz} [ۡȈEy%]:U}L~ %'>>b VjRZ;>8mFs\]:}*17CFk~c_ʓp4n`_ʌ}*MѸz9\}*H"jSX$U\ '= $ RRsD$G(O֐?T^_ʓp4n_ʌ}*MѸz\}*17CFhq{72Om誶Td 1>O~zԗڬNm}FG Oe]^5Q^AAEPEPEPEPEP\Fxaao3wc_z0k82nQ{yvcy/ݪ<~v7S>oJ>oJO<̬狊薯5+[߁%q>qh:4l| viqo*S^n9ZHE%2KZdI/q-T#]9\_i:Ԡ /`;"3ohB893xKτ>).e+;unH6}$Kju Sk3  L,TXCEivThl f3P[>ͪk`X$fO>*E3'֌Z*|_EGc]`g|ד յkmKDũ9xn`Ǧ;B"C~/ӠѴG~/?7lONz27Njx[0㽵iuU,ŎI/''ΙxEyDt`7+qH!~?|<ޏQ׌<3 e[6y*%"㏿]"]wW6+rc;I'w+|tO`?*3g`GK+wµ:*'OoE6zXn\=5NWK{bdV}f,m,oa[ͻXcm\˼vyFydDg!V pǢsŦ>ʌ[O9G9)9uK/}OG_|z~-u[R-]πC}I8A^ZzKVʌ;V0e4*N+SʭZp8>3USொazgI* 3G._G7"ѓ6t+&T ?~rxo7ZCooKxYLpIcǯ~xSNm+֭*WnK8+!*,BI{쎢fO>}*E3'֌ZFOʇaIQRىEUB &O6FyKFG^MIcvTOQzQzW\?u77?u77?ut~TUm a#g2OeE"* Oa]{:(c肊(((((M~7Z a_3wc* ( r3o/>7lpfO;33џ֣~S K>H־og^&V,mԖ'n]:ÿ d Of.++?Smϐᙼ7@?S)?|5@;S+(>ϐ<3@;)?0zoG}R`N>=t],ۜI CDҏG}R`N˾?? ?[hc >O}ns wݤ6TG􏄼-k";kuTUq]up^sVl>j:+NS"+)ʯ8*?~B~B9Oj|Eoxh_Sȋ"VY>G?Jb"}[ƧU@6t_^8|IkOGS@nnVXySA+CHSC ~uZpJ2SWN-M֩32< ҕJ ;45z7ze?ppQ@==Pzl*QRhUsЂ?)#Bi f6W=-ʽl_KNKv=z~֌G)I֌r&}Z3tQkԗ:No}FG OrxRIR'EUЏ'r? G2;2QEBQEQEQEQEQEx7MrQ{ywx?MefスǷ2ޫӡ~NFL#ֽS{Ѹ{2=h9Gn̏Z2=hQ3#֌Z9C~FL#֎P{Ѹ{2=h9Gn̏Z2=hQ3#֌Z9C~FL#֎P! XAQ˱ZbW*bGp@Mϸ[뼿= ++l"]n}h|QdѓFKO>j̟')J9:F[יy㗝xJמ)䱊9`PHPcץ|sʶ0H_֞N+]^gsO2r94u煏ŗIgφԡ/,̿G-\Y:2Hu1G*4滍C,t=BER41U/bي(cd9e~;oxdLw8)26%vVVוZx[贷uzXuF^}p|>bSX4K,w3 [c*9rcG=7APu4._-Dši 3 2+ǦOCj.Fy89]~{}n>VM+Om{z~|ArM^Z]FRG<O/9<=$?xcn5YW|sn5GNiURՕtSTN8[~_D\E?'I }<]K5CʲwA5B,>Z*5Kc>W:,>($}g #~Ъ4潝{[?]^kt;n}h=OѹIwQ'֍Cu,Z2}h9IwSbWJ[m*z['3'ֈU3FG^@)iIc9EލޙFG~yz7zfGr(ލޙFG?pw2\ino} 1>O~dzY+'uHUVB?b|+KO(>(((((+|Kx?ab_3?{{1o/׽zy牮>P(3ZzNbuSppQ^==Qfz7zeYލޙE`?ppQE==Qfz7zeYލޙE`?ppQEݘ~ǙpIH%qUҩ WI+N0x5|YƵ֔oo_-tӱa}\jZk~_2`7>OyzQ ϓDf{^ϷkyP}sץi>tFonG2m?cS^ۧO2z*n|:#77z0'Έ<޽(_}|W׼;aoyH$/&i IݯtL3=wJ>|xһp٦"9m?{_n<OhOk޾|xҏn|:#77z?^߯o_ }w<??zL3=wJ>|xҏ?^߯o_ }w<??zL3=wJ>|xҏ?^߯o_ }w<??zL3=wJ>|xҏ?^߯o_ }w<?zL3=wJ>|xҏ?^߯o_!}^;E֍%VrZx#X*>|xҏn|:#77z,F:!ޤﭾ}|&tOEA ϓDf{^}sץss/>޾C5?}w'L3=wJ>|xҎe=O{_n<>|xҏn|:#77z~6cS^ۧO2zlj4FW=-ʠ@Z\pdR[C$^k',㢎 ԫX7蝭o]v3:RRѴuܹ{Ѹ{(Ҭ(~FL0{Ѹ{(xB8B 1>O~We'ҵ8UVB?|+0<uQE|EPEPEPEPEP\ GKnKFV=x]!Pk ]Qq}7ܟZ2}kӆ5rhfS'ǵ$~MMmGT"Ib=v,?dmSiQ&E`Bݾ?٦ӶM$g1yk ǻ}sGQr}h?٦ӶM$g1yk ǻ}sD~MMmGT"Ib=v?~ >Wѓ]~MMmGT"Ib=vfNڎ4D-{78}Fc'ֻhfNڎ4D-{7>56Rh$[9\ n=?p0^FOv>56Rh$[9\ n=#}jm;j:Hs@{4ha''֌Z}jm;j:Hs@{4G4vuI$l/-soh75{NO>G4vuI$l/-sohiDI"^Z!q\oj8Z2}kiDI"^Z!q\SiQ&E`BݾG߃q9>dmSiQ&E`Bݾ?٦ӶM$g1yk ǻ}sGQr}h?٦ӶM$g1yk ǻ}sD~MMmGT"Ib=v?~ >Wѓ]~MMmGT"Ib=vfNڎ4D-{78}Fc'ֻhfNڎ4D-{7>56Rh$[9\ n=?p0^FOv>56Rh$[9\ n=#}jm;j:Hs@{4ha''֌Z}jm;j:Hs@{4G4vuI$l/-soh75{NO>G4vuI$l/-sohiDI"^Z!q\oj8Z2}kiDI"^Z!q\SiQ&E`BݾG߃q9>dmSiQ&E`Bݾ?٦ӶM$g1yk ǻ}sGQr}h?٦ӶM$g1yk ǻ}sD~MMmGT"Ib=v?~ >Wѓ]~MMmGT"Ib=vfNڎ4D-{78}Fc'ֻhfNڎ4D-{7>56Rh$[9\ n=?p0^FOv>56Rh$[9\ n=#}jm;j:Hs@{4ha''֌Z}jm;j:Hs@{4G4vuI$l/-soh75{NO>G4vuI$l/-sohiDI"^Z!q\oj8Z2}kiDI"^Z!q\SiQ&E`BݾG߃q9>dmSiQ&E`Bݾ?٦ӶM$g1yk ǻ}sGQr}h?٦ӶM$g1yk ǻ}sD~MMmGT"Ib=v?~ >W"%YE Yy—3iE&.N|TϹs u:䆻kx<.y}EWzAEPEPEPEPEPH 1-٥ϋtnC,Ws)瓀28Vv95*nI\ܗw+o[؆KGiFzHhҮ> "7N{y ^ģ{7U"h%}w"Wu!FO~O!kXsOo> "7N{y ^ģ{7wX]J…v8 dWڇK"sp!2lH 20aV4ۤWS8 F2b5-Cu!FO~O!kXsOo> "7N{y ^ģ{_Cσum^xV1Pz{ "7N{y ^ģ{Ӑ_&?f:*FwKjɾ_3EVN6?o> "7N{y ^ģ{]HizuߓZ%,G:l,̓r4icdGy#ڴo̿K}4=:-zz?I#Gu!FO~O!kXsOo2F? OcŹ;ڬo̯S}4=:-zz?I#Gu!FO~O!kXsOoa2>a26x+{TMZBG#7u!FO~O!kXsOo> "7N{y ^ģ{xY)w {1_\x O$&gLq$L8daف=5݄0&ֽv|K/8 Mv߷}WRDodeG=$#꺐#x'',J9Y'qqez]7ȕ]HizuߓZ%,GCHӬB׬(d?-ƍƎe]7ȕ]HizuߓZ%,G}gQDupm'%]wZnFMM/?_n]-G4"T L]3,;Vk սKEHlUzn :mN*AxjYIaOro.游+18 J)s=mm52gJ)GwױPol#eS3h1t$ /0ϵK& ]R-:27L?>>"|3_|Fk8 z>UԆd{Y@ydj$u!EY=FP;Yھ3o::/a5CĞnLLZy 펏Gj"Ӭ#tz(O,}sD5uH'3޲ \W'G__r52Ntx"{VMZyI#)5]HjiOage'AMWRZudnYe}icdGԿ9?ICWTN{ =,w<ϵ|]?$j~|?ٖo%$]>0T} =++ +c(W5;5_G`燬vũ5]HjiOage'AMWRZudnYe},3+I*~y]7ȖMWRZudnYe}UԆd{Y@ydj>}w߂"Y5]HjiOage'AMWRZudnYe},7j9}w߂"Y5]HjiOage'AMWRZudnYe}-ƍƎe]7ȖMWRZudnYe}UԆd{Y@ydjqq*~yq/%UԆd{Y@ydj$u!EY=FP;Yڢhh_ʿAG~ du!EY=FP;Yډ5]HjiOage'A79}w߂"e']*m%Y`zL9A\V?,7"2i [*2G~朔e&;8ܢ+ ( ( ( ( ( /#?iǂ86xioOZu32y,Nɧ,O5Ŷʑb' $s ׇ5 uxU~=RIUG7\k=]1k{?\jַv*i@U;$i E<29*gXObMonkaeiX "߼m5?NxgKԼ]}z]<+#o"F28gƃwZmׇtB-.K9ܬ6وJ 3;`CJ IM9l/Gf޶]twzK UaNRN+Xz;]ٽtVto^2-Cxז]GJx( 8|2_5B[&as$fIvDq#H#㖴J xT /$Pl~ohɸU/Z+W~y]r+9KH帒aRѦ\cy\3^W~] m4Ϫ7Q]D~{՛nu?ViZ½+_ Eg7:lvQ#[,oq\Kp4E!ۆ8fiRj2mU ~k;Xs}DE6O/GxjsWDhj2M&O}) KѸY>dE^/e!i0}MOM:77a~Dwغ0H<ִ*ߑ^qg!$Pܴb7Du<}+>+{2(HYԱ"c3]eYz~z+m?;a`eMCn7mPlzSzkd~nڡs)jVfX|COچž\=u_"\\O5'V^/nBp>YV?g 6%x/6Eˈ=37kV4ą-7F}Fy|*12 dk7P_l~z[Y.`[IdA8%w&6Mw5{SxwGִѴ}rT P LY }k3x@l4;MLƩI3%g0ݻ»2|'*{ͦݲۻ BtMO^iF׻9yl+'z薓,zG9pN%+.@9R1 u0_ii_hmͱrUp>+M[-cF6Zb&[_47-*$4r3X_:Wbl%K"Ug?~/< Fϙڵi= 8nr~[mcF_ m/rŶ/nEe!F%2_, ~@U_S_ W_ @q2gUi#2o G*hA[-14{o:? FRXm%!gi|5qq~;xx76: դ6,SI cHj8<]wKCІ%TQOԥnwnE%~V᷍mnM9[4-)L)99=X,J[yoа\5{QkhxKll+FEfG1|pTǝ |޽ƟYOoj(x]O"0NYi.lxKt-%%և&maV1Rr+/knvXN&Vz ~x KrĹA_Ť-#@YtUQܖ r ,0|_}4yhT_K}hFO<룲}hFOrZ7nO9@qq}h w7'֌Z9@qq}h w7'֌Z9@q,Q.-lW~e'AhW̮p8=IZaRo6+2w堊4+W8s-#-z~˿(ϡ ( ( ( ( ( +dOz' $qD@) ׾?5W'Zx{8i%&Gyÿ^%a S K=Um~!GO:y{{?=jFύO ?O˒+>q x_2_3оV/=SEQ!kkt2Hf>t.6V 9 "]^5eSVg۴rq嫤I:b>Lo x؟_Q7n^oE}_üG,'ó{^W)pʄpђNou%mmuw{~3+{j"d?4mCnb[-Ze;X^#Tu[Gai7l]>'Q JȎB W"*&7Oo"8dY+/z3%ۊ՟5n#7_m#o5^frͦH"I92 ĞHR>/xZ|=KM9&&]䩙;Gd(;@  | TG+ۈJm?Ob# tҺz>gϺ곿ZïED xTxS2[; ]ث/|1\,KF2d|rKf v_7Hvzt}FGp%:}efs\gM֌iQ`|1xOJπ|EmNJ$?Ih /\&㴒pدkl5As;;˙5.5vJf skʬ+=߭3 O}?ϰ HIԱ"cuc{JS]SP4(j箧?ƿL_Oҥer OovgYSR4z?ƿM_Oҩ`0+a!ogIO['ᑯ[' U& mvydK4A=n__OҌ/VaV!+/c4Nz?ƿPp&~UJȥg痂?d]#vrH?5‘$g޾Ѵ-j`SmZъKVk-(`ST4dJ*,z3i(.}4Q`h;?Z3Ev~gMk築_k|Yτ ~ndSw9YܥYrlVχ4Kg1VM8F_!όh_]6@p Sj_ʎg |chCB(*{ʌF/RTs?h_G"GWMdz5p/G3>QT!ϔtFGQywTs?h_G"GWMdz5p/G6-YջomA cQ*|F#ѩ;JXvFL= .Vh?qqnnr:? qAk6'QX[&1 R>~d@ s#?m|i: NIq0B.FN9Ǡ5?|\f④kPͭMtbλz̳FH1 zWm=o9\_ 6$RᤙKL2&=gSϥv[q}&Hd K0,F0Șyڼ,S:YW =ӭ[O,l !߷\J*:?@2y!߷\U>$h~ +D.oMZYXRW=#,ogj\Kϧoh(jw+zfI_^QN$oe͋ғBXSjFR u8%vtu (wnWW im<)eML L2&8:}+(}ڳrjOA^m}A/kt~nڠgWי`llLiHnܒm>c-ajq$^(fxN! ߕ|=Iď9ԖW8#8#e5k){*g/5~S6y:-iFN;oI|[ɒil++]'kkI{yx־PT?KWkJJQ5Hx_Ŧn?NMi3E^퐣HA\T)15c7bHmKDK&cV/ܰV` `9uL6_*.R?ixg<]V%$GK8?u|(𮊺~qh娼 I~5 HWu?1я/նi顦s)לRͫz{.|QaYE%Ɲggewg ytu"Eb`cOOY+ڢZ e+(W ( @+dkS[oR'2%?ƻ#x,JReVNt$K>w2ןI `z|8&1rgV)yeHQՙ+_)0׷|gH|Yo4Il;#鞕ak!Q@⾓-ʾJPm?Jଂ_{NיFE7S;p"oGG(XvEaϭϭ7,;yyTTro>o>P־UhjtM+OW1[c}]Whb۔}Q}WGg9ngpEhz 2>÷n/kf;#:n:? ݽ]ϦA#j/if-4Łs~ u gKߙlG+9Rk>jڷ]STkJ@09F 1a$xS6=ߙlG+>l&qpH齿~GvPԥ.ߡQEJQEQEQEQEQEѧդ(rRGOҸj4񜗞pi%&T#Cu.]'=z~5S#֌Zp=*>|#֌Zp=*,#֌Zp=*,#֌Zp=*,#֌Zpp 2=hz7z|IFGG{Ѹ{dz{IFGG{Ѹ{dz{I_oǟM7Z 7!^J[YKd3H*}=5{r~6xOsoggo1@%fH W,A%Hӄ= OSDe(Y_AY?!"[LL2&=gSϥwUk[yaH%N8}+QW>)ӯ肼OebdMEn7mP3++-ebd2x-qjvU~i_3k_#p=*P$#֣==LZ2=j=ލގP$#֣==LZ2=j=ލގP$#֣==LZ2=j=ލގP$>5xg?F~k_5?CUidM(BVS.H={|AhE࿿e3'P~]=( `(((((]T (.!k 4k2EET#Cu.]O~ds(dFO5F^!hMM?;6O4dP4n4rۏF;n?Qn>P?QG hMn>CFE6ѸErۏF;n?Qn>P?QG hMn>CFE6ѸEr: v$RGo32#zdL{̧J:2 $Rga7D~fSϥz=yy~=̩~^ f7$[T Jz+scx-qVvoX?_&jƍƻ'Blh&hh ɣ'qq4&&jƍƎ@Л'7_֡hȣ4&}Z7_֡ȣq"@Лqh}Zq"9Bmqj7( _֍w(ȣ4&}Z7_֡ȣq"@Лqh}Zq"9Bmqj7( _֍w(ȣ4&}Z嵿/ڤw#A{B$ԴndTI N:d(ȪqwNi5f:ⷵ##@ `ں s, b̷]h# W8s#]o๋Kyا2[|ƅpz|sԚ+R~-Q^!!EPEPEPEPEP^};xƆV[(1c{#^\'Jn1{r1sڽ IVvGc*:- «$$J*rdzr 7 #֌Z9AFGb} #֎@>FPdzёG Xpp2=h,OQTdz'(* Z2=h nGr 7 #֌Z9AFGcWIig  Ib7D~fSϥzeyLJt|A( Yv,o=ٓ Wׅ:'C &BBf 2I^9a vQ0HmP3⽆Hky"CU+屏@ХY .֒18PSsH+ibFPdzё^!Xpp2=h,OQTdz'(* Z2=h nGr 7 #֌Z9AFGb} #֎@>FPdzёG Xpp2=h,OQTdz'(* Z2=h nGr 7 #֌Z9v~-"Y"nG̮p8=I20_6g =k|7]x/~u-r&?Ù56ˠkc+Ox((((() XR0AZ(O hot譭H[Vhn8(Ag"'@4O/?7ozqҷ讅߹*EOei}_7ny?\o\ݿJߢ+;߸}Z_D_fzfN:Q,7^t(}{RUy?\o\ݿJ??٦|޹YӎE\~j_ʾ} Y}o'k8G"'@4O/?7ozqҷ>KW`/d /M{rsvק(_D_fzfN:V}rթ*EOei}_7ny?\o\ݿJߢWwwp/_q,7^t} Y}o'k8[QV0??٦|޹Yӎ/d /M{rsvק+~>_}Կ}"'@4O/?7ozqҏEOei}_7noG+;߸}Z_D_fzfN:R h/ t%gfn嘒F{ӎQG+;߸}Z. VQj8Ptmvl^i;k cA=:U)rvbT9|-K-[N%RTcOzI<-K[\ T/&X@O9] b{1_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r9<-K[\ T/&X@O9D%A ,|z`>w_r2 4kmtphYF1zc5ENnw5#X((((((PKjHDDlsoPP/celery-2.1-archived/_images/celeryevshotsm1.jpgJFIFHHICC_PROFILEapplmntrRGB XYZ  9acspAPPL-appldescPbdscmBcprtwtptrXYZgXYZbXYZrTRC aarg $ vcgt DndinX>chad,mmod(bTRC gTRC aabg $ aagg $ descDisplaymluc nlNLdaDKplPLenUS,nbNO>frFRPptBRfptPT~zhCN esESjaJPruRU$svSEzhTWdeDEfiFIitIT"koKR 6Kleuren-LCDLCD-farveskrmKolor LCDColor LCDFarge-LCDLCD couleurLCD ColoridoLCD a Cores_ir LCDLCD color000 LCD&25B=>9 -48A?;59Frg-LCD_irmfvoy:VhFarb-LCDVri-LCDLCD colori LCDtextCopyright Apple, Inc., 2010XYZ RXYZ op9XYZ a.XYZ &8curv #(-26;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmparaff Y vcgtO5)8r!c? #   %=\;{it -!#$&,')E*,e-/1&24]5799:?AaCDFNGIKBLNOQPQS TMUVXYTZ[]^[_`b%cjdeg5hzikl)m1n6o;pAqFrJsNtRuVvXwYxZyZzZ{X|W}T~QMJFB=70*&"#'-39?EHIJLMOQRSSSSRQOMJGEB?@K^pʸܹ '4BN[gt{sgZM>/ йѠ҆jN0إsA ܤm5D~9fl\>?A*BsCDFG(HPIvJKLNO3PWQzRSTVW X@Y_Z}[\]^` abcd%e,f2g8h?@ABC|DtEmFfG_HZIUJPKKL{?@ABCDEFHI+JKKoLMNPQLRSTV$WJXqYZ[]$^X_`bc>deghRijl=mnp>qs$tv-wyGz|u~bdžF ڍʛ [M$ݶz¡KЈ[ߥNnI+D_|2Qp5Wz 0Vz4\-ZH{TB  K " m  X  b " MbD-+?tUIU !~"<"#$%\&-''()*+,r-f.]/V0O1K2H3G4H5J6O7V8^9h:u;<=>?@B C(DFEgFGHJK2LeMNPQXRSU5VwWXZ#[c\]_6`ac&d|eg/hikMlnozpr>stvdwy8z|}  *Bё1㖘O ʝQ{bN>56H[qJɽLОUל6d 9i!n%$;Vv;h1gR!W=z9{L*w  g  e  p A , $6Pr4j_8t7 !"^#.$$%&'a(?)&*!+,-".(/20>1N2a3x45679:J;y<=?L@BCeDF-GHJkKMLNP7QS-TV-WY>Z\Z]_abdPegi5jln2oqs-tvuxy{u}#~Ԁ?o/򌶎}3Ɠ[񖉘!X󞐠.ͣm QA谐%"xaEƶ(ɚ ~aIӿ4֪!ܑٚ#Fh-=INQMF:)m@tF(iNHHC   %# , #&')*)-0-(0%()(C   (((((((((((((((((((((((((((((((((((((((((((((((((((" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?m\ <ka D#1$=:>_cLSv٧|;ݽ[v~|GnjuO&[ěX3yN@'88l#džcq=3=S>ZK3 BArN.k[ě f=݇4UF<3;?0h4ƫocLSv_`3O_tP7=fbMtP5M32?S?MtP65_ &?Ǔ|GnjuO&_`3{9k9f>z8h31E?(k[ěX3yNS#&);]%jqǏ_i?IFch]-͝Wyxj7kuf-nJ!VlVOet@"qRN>€{/Yۈf {5DX Mzywۙ#b354 9iYZ}1 ?Lr*.+[|eduNm1n9Z먮br.}8&rZ~yP Sk,hU3y d s:ï4:\r5 9',F9\q]m_\VK[nț9.K - gVeurc &i:k\ E, $cyS;{?BO'+&V>="`C,NX2M6+g]j{!x0Af'U+mܫic2+b7EBp}ji!H8Ob9 -dY*)cTԮE''v X(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@a{EM'+PVakdMA8ܤ4u_ {3PmĮoqt|ߞ; Wו|0Fo 8eV*{ zH4**4K%ݻ(*F[/BmX-omy$`'9 u?NEѯE]ؕP4+1AB1ץi[ߝ-A{2ZS$Hq0L&N9M),$8ʺ0eaGZ񹴛t?~h `eFN9;ƻl~Ofv00 Hc٨JOŠ1F)QF(Q1@bPEQF(Q1@bPEQF(Q1@2ic'y(e*$④IT2+2#P;mWNIP#E:0L-su2LvĒHd> _ 3|2ÖZ[Yjzu+G删 @_Y^ൎk{5%DGGZjDZ{i#Ƒ[HX"Kw 4[D-ޕrz& @Ja!7~AEQF(Q1@bPm<*,aw#ޠ֦o/ݳv+]{Y,/<;UNO$W=JN/_Uκ\fٰ?#n_ PgAiTgu`\^_j]oIo$ (2A}kA|NZ&\m,L>jOr<9{XNoTJW({$pQ̬Pr*x5Anbӎ2JeRl27S h+h0Q@Q1@bP$|z&/Vӟb}HvԞxFFȯ<ҴEhe03J Ӿi64QPַסޢΖ vwnlNkŤn>FHClP!CFG YKz._K?BLtR|gک+Q1HaQ4VQ <Tzx&+Gxd(H> ўu4#b]sIci]>5w{d=][3!OF'޼Ct熭^Xv#<v$i^%>uI}+Mnɓ/ec_ьm ҋ.L[.Y'x[S#k _IX4ic/Ks(Lv˂0=<9 [`"x{Ohp{ҢQ(((((+')f}Y# } Cgt;Tֵs0FtѶ+65Kv8推OoD A\=L4Qi !o.ץ:MC]oXFK8¦ dwEsixL˼ L,c8#ַ R`H 8zpiu傂ڭL0RY_9N:cZ }pMYݟvsSആLԮ#OI|݉Wn\ZSm* +hINe;8Qo^%zzYK r0{c9;/.e̸DBx=CL=W x9f%G=O !}+,i &@곩9Nkd,[^<"l;Znt+{H'Rk/ڮt粸[ƽXmɰ V0xd=/_w3n’x9sE 33"VY+x$V/| ius,y'2$lY$ߓq?0\g@ys4dIyqaS@>*@4ou4bCαAp!prE2Y>}^"lI,:eS̫95[AHlFRJ* MN;0VB#pND 9fmV :[1Dc>ݶPs"- O3Kym_XVj鰾qpsz6 "ַ|n\iT1.m$:Ѐ,u]]"e ؛Y~sFl㎘HúDI45,osF?Z+}xR83M L1q<85s= 7o;kA.^†*ǗoHHG] CA< ةjKZjw2jb]B2c9J|mHM٦Isw.Žgi-۫ -Y'Q043gnqҵt'BQ(^]8=jKi|4h DXHAn+0p*֏oge}<{B ELmU cw' B{?[鲽)طlvv`\8V!զV[tũ]* +_R:iKu*+" ?.xߍNy\⠹^֗02, q`sqHft8#}@#ϵ^ܛ.䁌xLꫧ-gXe72U߿nJi>E٥eqicp1+RQW{8BHX#yzW#pg+D/AleFGA;ӥo Emo;M.Vl8}r=r;֕DžkMB7BXظv>e$`"MKYtk}7,_ݑHdZ|έwJ.;(Qfu8|m1r7?r𵥦.k4&ت#~9h`zOtj$/GUK˹Q 226X%N]sa$ȭmOGkF+[VFNЏSY2jlGț]#qAPh&n,I{Fe,Wv[ ..T:2ݐ[`.CwcE(L7R)V.FlN$av皔 N7sIM<)24eIgnWaOAj:W:l=,R@.6q֚nvO!z˩]/X)tZuv xbwo\5ˆ {|z<'|–`^BncӷjOa2o1aEeu=\Id.w0|.H n#& >)oH"a¶Fp@$}ᄼi俹Q:Bq[))EwP&N>_Z}=XJVeSztp-ą]9EV b,5\"Ը=iܽg\<#A`&֔ntAgmAqgi'?y'5=UQ@Q@Q@Q@c{ (|rNG^+'6ݮ%ʾe-Iz;ٞ}Eyk>^<+So{Jicz׍,dNkKG4eF# 0UaէĒiiumi$6{ZK9^m9TIYY3rMpc։hq']_oIci^+%iQ A;@J;zJiAj.EN `ČrBj>3֞UK@("ewgW[/4OPDO[/ςF 28n>;x ۏ g?fT DzC42NһK ഛ9'ԋ zlj<;sWBjNcnԏ 18bM}RvMܪ Ԁk[NMCD <=A5\do}A<ͽ?Ttx ^o}uILN60BI^Fp5q\u!D25d Ʈq׎PlLŴ*˰>K`猎sǝH4۝ Iy%h\$ISh]OS|AoYo"I.b?'|Ӛ=G51I*_`.IW'4#j[ 1|ϵM|aVX G[VifܤGR6_kiS<J+D !e*T'm6Ky;d`%A#vX=~i.ET #~_a𥱱囜K+t|Qis]|Oku,$w1G\M;X|lHV.(f`ǒ($ qzͶwq OY+F1qtv>&{? h544E4&VPw^k\/R6v @c/21lke#iX D?>,k9q38TIac 5C  )RノJuq<7D4w3/pp=c[~кp[vY`31=O}mOHEştΠd_61UK{n} EB6;qwpq iDϹҨœO!RD*LDDu {ch#޻Ziڴm>ΗSYf!aTqC[4n?#Xv,28 y~:UCa/$a?tK߉t˟^lv8' M=uGk>!񽎙c0dH!x2՜ݶxo {{a cVr{d7⛍>k eN1DV\m'V J:%g vrEs̍c_nvcbݰ 9U?n,,d1( |R$W'I$ z ƟAgqg-I3` %4KGYk:vy {@@mV;y Jw]N?עkdInLFjRXꭓ9KTM6}k$Kdgn?QګE3^\Z亶%b:C=Eoae4~Fqx'u-KF|<2]`'`"=A}Âz㏋\]|L,$߹]iV=Eou}JI [ kA`Hb {*w,L`C 0ߑ%㗋"F/!K.fsV%WpӴIdF13'[spk Kw]#63'd(QOw{hĵ-4!dkm\H\N*_;4g540Ry#rNq&]4,gxn% WnLzdM'>2x,VwCTy8DQxp:szd6Px-Yo@e\g"nk*ĻK+{:^-^ucTbXm<ۏ9y\ݽTUojviZuAngi篭gV܎F4G7*-̏Ͷ ,Y0O~ةK ݲ/v';x`z 5H,_̔Ĭ1Ӛw$2!~tkS}xPf_]?&Otm+sm(x3Ǧ}[&dtBHF|y{Ua_egYJ.3TK[ƆIBiZUc#!$/{ZK[[  .WCufYOy׌yxwOX6#Ð?k˿5O"Kou0~}v +E {Xg򕼶 5 ZY6i4زHQ!hosB/zuͫ[ï[elm4aJvQVVVue.V(Č׷ڕΡ<;&uM4_/%B8b6\J8>icb7S(H7ZV]޹ܴZǥav˓n֔![mYn纄ۘjm*rrGt-CW7W(2ĭ6fGp8/scޝ@|}S wz$k ˹>`W]xIJcNu[)Fb`8$7_,WP_ihV`c%eٸsp9H^k'K庅J2 ;~Ɩڟ1xZ.C}u{/̑(p?3dCz=̊A8$ 8}EzVw$ɩ[ڣ6Gx5}Jѭ7i C) pzt$Ѿydtcw;6xU%VuOH87oˑ 7}5jZR_- p*Fд^C;#v9WFN[?2y F$(;u+s▜\IaKk|Ca@Ǔs:ό-o m$ZP`- $;}!뷳z#X 7+|>S*B^8k]|H.x䷙"uW I]Hȣp{B:vcx2bWKiV~ ",*ڛ<ۦ'tX'k Z7O 7#{@`.tUӥ;{i"|˱°uR}1k|?ЧYe2(@@0V4ZNỻ :IKwLz9rJ02g#_PjxNk8f݄TncvxmOiRz.{cMuih-er0D^ZȊG^Ci?N_OxO% I9 +ҽOn5[Mt47ooelU!Wq`sUty Ҿ5:_44jlvEbHv^Zq*X'gH[;)(섒zsҬxkYt?% a3'یr}jO{c/Lʠ |oYf`W7_ʏ-?~|Wmx=+V|:}|w20>秽}#XԮ}]{%{{/nc3_&|GkWuHN61da 7c^qpcg; d=M}/ N}# K~2!G%MesQ&&Cȡԯ$wZC-sZU棡mi:l@cQd/FK6rqT>.M\]Y]̞tIAe#{gc57J7+to5ϗUl #P ヌVOR=!Tej3_\R|]m4"4Đ칸oY7qǧ}k_%W3-0^},I,cZq*AЕ N6yI6GI^H=k((((2/!m[[zeO+q | 3qשHm-4rF"=7dg=K -=il-ߗl~Oˑ. 1OLMvĪ[^"7vء#ڹ j[_y6#+~1 Rn 8g]x3W c,]ݛ[זma"0慸ߑE6x#cp%Xclw*Lh3ee6+aFS  ɭӕx fϻ$⩽C`bK뙥kv-ǵ?v4[*}$l?s8``qT,Zf5wSyAl|瓌ԧB!P5"U\&uM+Xltr$\а9V"t,+ XUĂB!>/S[gXvMmFa݌0r1 < gndNcJ :h@4ucVS"fGSY-rxwHmѬFCQ uP񵎧k mF5y%!Pnݵ@ bU*=CKGM{2KN!r֐΅ %죲}*ŭ#bRǩ 6m>pт*aN2q"MBC R\4xv`ۆJCfe[_2ܝ%1"1$pI$Rܗئݛ63t|>c)rA}Ix`݋EM*1kwNcvH.L'IOB7gڨ]SZuKi.Wʌ3f0ˁЂ$6wV˧^\\0BZ\C+6X qZ-|c>3=ӳ s! ċ&%J=T,/+V^SoΈ>28 N^gZ}@C`Vs궓=F!h0y2JqG#STC[3j"(Rܬɾ9`#:H h[mjO"8UQi\?[Ee/?1nOxzKNOL[y5(Y~C9]j~&YY ܂֍3*'f:)jػ\nc:>iGA."'xb9'zE#5N0׳];/V8 zK; I6YA*qwm#Nyfm>ե`s |Htm4\\:r&S1#kz&YmS`˅{p qRGb9^Cmn13f2W~=9۞I,ډxJK?=KJ|-7N!I,R& ;^#_éዸoaЭt)Gs60s yi#>[$RMQJjoAu+|X¦ $e@39$T(oml-]=\*caIfihihhS3cq´/M#E.zTky&CvwhfB7p}j'~] _VD{#G $))=Gt)||"3m灒7};U7h\G#_~cx۸M[ڔːVm#^q?S5*?ۧo^ t8 e!XA=3Jϧ+ VbQ;|*nݼ '˘#iz|]4  ey 1~+۠/_, yT89k߻nQzЭi:6ӺQEhlQEQEQEQEm"];4HljMI xO+Qg𢓓Q~Mou <>7FBY|HoqtQ-?A桧_iҧ.7Q,>g#T^O})~(b.çI#<5dS|< 3隢t nL  6`g 0|-v5im7bb s. |1sS_\E;ԝI #k2|6׽kAQH;Ycr;b8!2OȜ(֌i,XѤ2Npr QˈMԖUQ{U i|RBxC$A99pFFjFە1G3 vmgTW6{ yl\O m 65qZ*UHPkB/hZ!qݻ8s}ܴ mȒBl#>Ui4|h s(]} zCsŏxRlH첦ݻ1Wwwms}te:6T2gkyICBo|縍l䵕* q_/Gs-4q޿"cW0 `»IM;K D1[$pF{2;xfKyۈBoGV./uV eu>pgrJCgؤ~L71[{X̘"PyVE G|1 WE,RD!&Gg!@,|`·oam`Je.dK?1g$~ μS:e=<Ī]GcS`{js#!Pˌq:Kh\1#+fO֚ud'zJ͹vO]:NwAm" eHdfSO [ ZkFI i Sv8xdi&Ayo{_|,KhL 11 #p'+ZFҥ^W&XFd#k؜fz5"\R1*5̷ mVKn_BGzH]|g%u: rΓ@ۧ-rՁ2.zJKha6KԀ\]Ɵl#vi}%ڭ+X|<劦v$g `fWA:!k{ȡ˘0.Wr9ֹCCЭlI*q/,~QF4TPXz+ jb^%IXW(6NN=3+;JaX]fN9'?)T3@<)jz2O}i2 uHH9We $8m),쒅RZ"b͜ vp J;B9~Lrw3g/rNj#iͨ56_0Ki-\4"I/XnOLԸԭww"!;h7|Kw/& Vx,D[,AN khv2C2@'Xdi&bB/'+G2\9,6Y$ n\VmF bydتHHn mWQӭ- q~IDu Jw[ͱR'r$s͙4 MjN" RxwG@:p8_栳ȫ$H6keP0c $ul6sjqRQG&Rm=b }]_[uDX%@nS/\U4>{iuI&yvdl0z<ⵍ,WN&cw'ùKt9hƷk')d}I#ڎ~:[{9}++̾OoDAuos悠^{s^BZyt}=mDu:E4y0{d.߫Vdv6, eU3y֩eE.7n{Xh_di2FB'?_iдi{?YW=O(@) nīsoOy-sn 6]6 ':Fȶ.aV/y#K+.sm2+$ͪ.ؼQyHyH2#h%^?xR%4M6.&gO% R2dFӎF(#,F;6۲z\,Lyj$L Z~!_Iֈ BKyoG ܞ~jtizmխJJ5Hbo?08#Zmfj2X U6e*2U\:3I8mL5A:y&3nxF=p1WM'bbky%VA'J38h!lV)VY-ٮ&mڹ,0qVLe`ЍFdȩ``mS$c4-n\8v3\Ộ<^$-mdgcN㟭vi4.f"̥ r1޲t{j7vGt(sCzK|Wq#q.vD} %qߊ^/CmpMfQGx9`r=kbRIiVZ0^BnLǕiU#$yOzzZ-Bʷ!!bOQ׊=ŖZI5Ƨv \Y`#-?^3Oθu!Yd-ywo56ȹW̴Sp';Ysx RZ;J?099}~NO0Q-Ǜn+8v'8nH.Vy6%#c:+(FۑI;ZTq` w̪sv>{˛{KhK>ʾ9lB9t+ifuh|20p{ .)?,sg$y(24Lx >QG5miT].j nַq<$?0U (棿MgOѴ{] V(H d208&m֒+FH41pd'pD_SxRIi_9CA &`YUKTgmhUJg-8pF;؝⹶w5][6 +EvSzJFye)HGe 3jk}^C7p-xe# g@aC :hӮV%peT)$uZk%;u*6ˑްl]MaOq-+?5' .z15q*jY)c$ 8MRZ} vc 2nX`ˁ&_I"L%S{~W uV]K/c\b?Hd(\b#՝w ,QQ;p ('qOt9-X\H\0O2^pWJP;mJiϗt%FUcHUޟs=ԱgU,(28Z^oѰ?kM/>5,sq*ܷ*ݲp6uqɦP{ݣ.cW)a_{WO>cc!`"v ;w0\8*jkFY)U+wߥ!u@ ƨb2\ot_=:yAe'SX}VI-@ȍb@rF8tH;+E)&#$ZrxG w#Hbm*1qRnKl4'mx$wb m'ߍI!NNў=j&sM*5vϘGWCb ) *j6w) qY6i>2nI2GzY|Sok3O)mi2 vAZ[nGfQc|1s1{bMn1GeF]>Qc'Ʒ)_mat a ognq9jn595$ 20x-8Lxc]6iR $E BB)_[Qkex nmF@itc-X uQ4g .n_F@$uS%] I.^PQv6ó #mTxR;MZOpm_)^7$n AG\P8a>oITc Qt ʧ#!`y"ր ( x N;mI##w5)aӵKk>p;ي%(>4+'@Ryy+D/HԶֳ_GԟAaoc*60wՌx9kMgG6H2qd*.?EbRIZJ\pO➷H oKfZeۻ$9ϧA[ŀ}k{xǙn7KפSUcI)7z%Ƙ!&X0(pN:]>C}nr:v/qjfhTŠ$ubJ[~65ZX|r22@ޛo╟sD?+o)6zi[k9m\ܭk*͖l}~4tA4->K4ƸHqLyyYkpGV 5IWSjbX+lTmiXMB k{f<)>L0W~'R"Ě]1fK)PA'kNfE47 Wu*^岷eӯ5 i yzV%xnU2e^BFGbX]IiqhˁT+3I'T cCGQ-Bxo^_-٥3ن%+𥱎YK ;,0H[}3=k2.^:{e~.ɛ)!Av5)^[^MJՁPp8 fQH((((#hnnhO?J+ė.m/ PrNG^fq -b>{ {.ֽ._ ׫Ѐ?FHAGae<=OLg6LY;XC _p8uvk_xNDgyYg7+f2 m   Ui|o=Al汭Dӵb$k}UQvŎ@SXjv:nDcUa]uH }Zy\H64?,q1&ksj/$K,D"&һH;#܆AB$PN]tcG)mn̟meUv㓃Koa9FY'W8;UGONZe?8Cem&Ilk_JVIZG$`r33{m#xc1jq 2}1=HXK{yZ dFf3B mR7E#ޅ\; ;f #JJ>vtrZ Q|R<œ ';zŴկlkiNn5HK/%yf=?zcnGSb57>_V{dCvw4H8,F8o'; CPkq߭EhJi$CqHRjPѥV)n ôa[qBPZtgPׯm$5QPȲ ^x: H5hK)&VKDP`t84gn|?"wyĖȋB+PWn2pMorC^{Zc$ZI$]6Gʹ3}:H?)Rq -u;`t>lq8UT!RX  jsx2ɣzbƱ. ۹sAHXx:tSkC$)(Ԝ@qV.ԍ<(A;.n;%z>0{v>iW6mŸ́Jń#r{ xut)쬯#/8EE T TIrM7Vqk:3Lrg[VQiӿg21֦𣮳ss=a7q]CgPK|)sw1aѴѬ< c;1峃ߗu)ddi ЎFMg/퇈>q繐nx;irGm˧w5ȹwW,6vm*,j cyZe-8f7abT$ܩ>(*,daXt ( <5eiٔ"#(˷i^;pϥoĂ_\$wѳ̀99qҀ: 6qAqqP0`(,sk2I44UM<sO<5dW2I0JI!c8mP{yPyW8*Yj ,FK;Sy? ɣ귒IBE2nn=jحZ,HM0n2̾Z|Y]͔ȗqq+}R> UMfW`!vX0>8_մ}XZ-ڗ]Ȝ̼)݃Z#uv%Dy1_,&§סiu>''o L*ʣ@ H QuMB$fCc8;bkMux⍞&%"HNA8-}᲻ʈ̎_!d[F4ﴻMuus'<`38P{ej*.c;Ԍ(ێ+gWlˣ6l̸(7-@n-QH((((|Cike]с8AkZ¶|[=y?ڭ?xic{ץך|(^ioqyW/sV<;.m$VvF"_1T dUx#qjRZKaGMOsKۭ͜6Hʏm"RrXg=Ӽ5 vKwGȎ!xnsYΩgoHPI2Y }Н+qI!dSnu>l`׎vL{chZ>h[w\#D},-&ʄnݹ 9;3VUo=mfuIe*[$$qF ;¨I'Oa L`!rcH0Z8l) ^fUt=Z-Fl:IUBOڭɩ=[$<*ў DžUݎ QBH @8Jbx6)tS}"E#mqk)sGP:=/[Ńi)+crv7ֺ{na$$2\"-;Riuo2jq'Kve͐b `MF4*[tKΩW)w18f'/0~Fĺ7Yyoԣ1=95[OwwY}ci 0Yz./xRA"Yi"u {u g&]*y56+X.eԬ)Zu !d'P\2dfk6^>miFn6Yⴷ,r&GcE6#8#]UUl+זklΕS{z M*6mzKynn]oU+Y:qy}i%nֲEy 3ʌ0GCǥgoe+R;ˍ,:@lOhw0Gy6 YmMu[&`5}?7^/K[)zSO<0"BL\t%sw #C(\0V;UԬ^إ^IJ@_9Iv-EuWU<4Fr"[#*uΝ>k!sd.aVm aAx'ơiou ݼW3  )X}ln`]&]VZ_ ]j-uhtsK:\16~\ߧZH3q.n}sH1@ך1i_m-d!imB3ݜG=kmC{hgKyVY(Bbrzv6ͷ}QEZqD3NzzQZjiۮ!؂u-801Zػklz!9U+EiuV)f yeC뜅`s{ՍgT].;cie[nf*[Sޱm*]powr23ggM-v+nAr'up jg壘=:3P.ɆÐÌe\_5E` k&67|ɦNm-cS4#qC zqE[KtrP< eC6N ݂#ކл zD֕F2c.A!3> {b9 DE w ̗xbJf RlI sWGXѵIckNp {+ucJt o3f!FtV=Qn@{{iL3:  u:fb/D\,/e.7 gctz6qk5y{(HQ*UPI<>jQE((((+'7a]8MEO=kVOӄ}*{G`{3ȳ?zyy>{vK{"Pxg8Kx.ɝ# 3Gr>Ьp{{tr5>)"RY$?hyH#ߌQjZ~IǧXIP< NKGrEh$o1qڅ,.:e1\-庾husj{GI&Cz#'^Xٛ` csKO %bdK(U2FA S|5g[=Zumq?xsքyjodL[m0R>a&s_&j欷7io;9`M:O/6iguM)l5]H&0H;scK;^rn>+栵](*rx'':RBÚ4X]jO3O¡[8;2AKg]jF,k_5n41fJ2p.9 }u8ȵNōW;* b؊cBʽrv:|$-#F޻/ >=@[l ˀzFG Rj=+_Xځf$g pxxLZ11nuk45lѿEV- WikW^NT1#ީ|eUz8Y0.Z,P_%ˬĮr`C95+Đ7PA<֪%g 3קzDMpvk 1\rLo ߎVu! v5 [6j$NorGZb.7ju %w,!L|<׵R"H-nܪ#@=9'gϯhߵv4F9#fH>FAojHY[]%)⠾MPn9 7?J'V'%Rhky 1H ordv/j'AVPK8 so8m.R # fݏH}k>R SWIe1 8@V&ah/v,y}7c8ִ?PmB \B2<1Oq޿>KFʒ8ޘܬ@ҷ4_G K 8o%\|zӺ<1 %Vd#pX)\$a=V@ =)$÷ 뻉Ԍ2\G'w :(l vb^TZ 5&F6';APIEuj s,s2[F+1p~rN1{S4llI[;alqB хqi:>o tA4Xʜ'RZh浹(K2@w?`P%Wι3(빱8XP\I+O:ghVa8f9R89@s+Ԥ+ IKI)C0H*=@knPrB8\׆Yy4dZgRBU-3xp/^{vw:{wXQIK 6fVOаdV宕-:k cv1}Fg:ζa])GP8 x]?V2ϧa9'λ=hg0HdaX8789<՛Ng7@ȑpGB׭XKm"X8bP;qZ=1u_aM8B-&h7a>PBcvxpM;H7V3t|>c/g#ޜ v- Z$62z)!)񎧤:!ii!qxI#s]gg\\0B\C+6X qZkWV60ٴݮ1)E`TyqTť|Jp'ʳeƁe px]ey_n|~tJ׼@C`屓m`#[đo1F=ϩdkhzJ&C6}Jq/b kj[mo%iIg*R w<am:H2:J[iZj6#N>Q:Nn..hg]Ha]үr8i$?5[B(O# q*»Jլt ;OѬuU,VH؅ @\/P7DXQ*(Uz uQ@pƩ{^}Bf8"RF!ӾnӇ" ;[8_vFZ {{5EXרW-? ;9]b@p## zOw vZ@dyS=TWr_’j#W3!tI䀠d^#6T+c.@*ڄ ^=j%:mʹ=Јc(9r}(@ȏot]/n|J̕ǒYkkҴ_* e2}ʕagB%Ny# N[d qy,C#g(0x䓃$)Ҭn-"12qJ2e2aXt-pLDB(\0|fXxCW].+sskt|Ə>`  qɮY"%ͬ(o2LYc bn̶ͦVCY B_q! :-/F:ez¤0ĀČ=X_,cp0#/Xn98]iѬ&mnrKJjawZ\Mjpab$%,9ÓEAτ˝2c,^Ivx#Vb 14[ͥf(%,Ფ ghٓ^ՠѝ[ m&B m/(I A7SK3%@K-K/- & 0<4a=Q]i h5MF)nQI:[HA-,Zl,Ԛؒ!I1PqC <WY7, 7ڢ[4y&y-eD pB5)Լ/j-uIkxgǀQprqڧF_ҵ`-,f"FB3&6Vw|-}azLХ~D5ggr618zZ։iq[?%#Heg"#(ox{MJ?j%Ɵe6$rHA gT_ >1{c.wkU P OGjϗڤƟqqmms$3M.NV%H㜰-wsj,Ӵ SM!@7'mvP77fc-wTpNм%[i׺\׳ZI[B[X(v֯|7qgc{}q <Οaq i ( qT4GwkER9"8/#G ˀqWo;K^B}-pj4j10O=Lr惬MmJ5ma@:hDdn72=k&Zh !17PGBkO:jVwgЊyLy8o\M]K7$9d;z${I.bD{v70HrLr9N>)mGsx.`0Ϡz-gP4HfX@R@RG8h]xk}^K #vXY@9:i̓]k8k{Q%Eq]c'S[MG+ ת!dptq#ݘ`wytl[MP$d_8a)3L lZK0>$ھ^Ld-r ڹ#O9jkʽ[q*Tڈ˷y qUm|hhĎEFTQ֚h|YM2n$Fɜ;|͔+x$,`Z62#C#hFy!*>nteQYf5qP:r cXf@J[A =mMmۼbY]6XdG\}+v d6KԀ\>=nyxcTVZ4:e^TD ˷%0'#xgY7)'K6_F0+RŲ'lRȖ}C3`bsN|cfo4xcdIcF1q$ k] m/ڵs[gXLMmFa0v2`cu=A{vi~Ӻ8QpxI<9ӵ'9Li0GJc ՘zֳ"1|ē?%9ohW^6-bȄYe\nVqQ:Vi^$H[ْX$!(ːw7ֵG-ty-2ΡRȋx]9ۜdUcOn{FUeB}OK5i}>?3ʊKۿn¿& WvA6z7..>Aony :1$pI$h\|C ӭZ "G,-i9A<[n7*1$FwsFq<-%c'\ӴɑdDdR0RnϵgxGZÚuw@ cse.tWN4iiđ i`Vی9I* uea~wR<_# l$S#=}VY#iمbETwbT 0A粮_G(>im`ІbO9f c'𮢎r*Ѯ5VéZ$--ɇɐ"P@29:3Sە7$ c $ s ]d_Egmaurљ-.0q#<Umo2:9%Wq]KRxgSLMN'/2!7rGe4Afh+Vu$W+vc/{amܳKr۬.P| rzTs|A6I:6گ d',C+d.xFuGSkxfX%TNhZH 89G<({ ikHt"VK(#3G8i|W=՞-͔L1 T֥R4OQ`,LrCiZMp q.dX1[#@$piiaዛI/h78ՑBJwwYK#%sL&|Hڮu .F{{ȡ0p]]H9uǭ(OhZ敬ŧs]uj͂ 0P5!xLu{,V{kĶIv@rvvxw@t{{qom@ݼbrܿ=<ҩ _6!I,V^n,A6cbN+WzΧ$-ݽc]'`*T f]eRYPtD8.3M=oy,~mb?(w!QdHTe[7RCU">pF{Y-αC}\Ke drN^Gs^/mtV{u 8 ;4|~bګ-i$-#F,^_<ƿtYtĵx'yp#uYv$Ǔi Yk["\,AN jhv2A2'Xd۴c!GGD#ھa8iDV/凑e0oݏRE[Z4VAsϴ.PWnCe'8ϵV|KjW|H-Lqf+H^WPjUUnZֵkͳ QvFǕUgYNW#%厱?,FAs,NpޞkWu-wG8`L}wCĠ}j֧E;F (g2~_jWR=4dHc|͑pCiy'{3 AMZ]w___N#}P(`8njrhz.o<$M`+"!8~ WIuXm S…I\7${Qآ)QEQEQEQEV'-'M([Fd1j0LRr ۬/\MnG+jPFN7)'*}W~O[ŷ2[ߟK+_:K{ 'z kB!w1U)+v7)*FTd)E0MFH?,II.xQVG~(jN/I߽ӌ (!CNs<\xs ־/b/80,7mZ{4[I4VX4ڌւ[ .䈲$d=I#?0 sڶ[H-a7rJMIqeacs <GѽK%s\B×:|4uҦ-!.y-1cLr<ټBJyA9",9$ycڹ6ka3K%ٔs7T+>mj &[+y"iF8a6 ' "C^k2BQ$KAқ c< hkPO<:8o$]G '=yiz,kVdEM<27P7[n!XZdn\IQh[u3F16a1;0qI=2Oa4E9XǭyNì&w ~R )`zg!qWϰO2XYJn?}ĺIks}$1jJCܲ(Gb? ۭnvS+[rc=*4'Ɗ/ qg׽q+G̒j&loLO9\6RvzV!6Yf99w%a(Y%۸g_Zo|og=38i,Dn\#9 Ige(ha$BWo07|;nIG+#D~@q(SYOiCd񲥼{!{{]N3+|95h:&ƶQL֪ekW8ԉI A 뎀5{-#Pj~^?$zuZO/ ig߽Y٣%'h,8$ )5vMr-y1x)Qd km.,|6b822wU-=Ft&-~ pɄ<?ۜ`vqEº>,Z_eE3ǔ km#x8lOZf]y_IM. p$l$%2*ːzdc Ԩhث >=nbEMlb)2RPђHV I5'"N3y6ڬk~|?vrv >=RZ}"H$L!9MqB9隲_fÏ"jL%\a~񝔕U4uKo+#33 `H<8X4,8\;H!~z t?C_FXX3I2pG9Σm;V .1&Е̪ $$l KsZBH"#tA띬S;K fi>}o{ ԛ.a.=Xa0=*u{h9])ͽr*Uե|Qe^p@Pm_a=[ ڐ5oR 0M|3vҡqJ$ItVFHHrW}?ɟU0.7C'wn[˻kqO٢Ii$9Y|Póā$c-{KkI*ODm0`ˆp+j9|%e9|̯ڥswe<ٮv CJ|Aookt׌GhO Bz;7#iT֍K?YZAA e?Jt/(ݽvx;C@/N\FmZkst̫I7 caxoL [CfkȤ2 3N RTP3hIx`BAMȻ\ݴH⿷V'yto?.sA׏1%Yh-v%xcH +ir e\h2 nU0 A7(m_ ?6y' ַmE>#R& -pedG] .2Iu(`sc @ϕ;_ޫQiiۦ#vy?kR8/9&v$dakskIdDnkN z|`Y>pV Zהy9ݞ4=monnI*c/s{WIPd ēɯ>]Y|)uu!`wW;lpoJ1 :(t-F+[i7YI@ {cJhtdw1[mNcgs;@%gf7Z(fm[9|䓒sQ+G>!7{c&b g8>]8bxJI-!%ԚE_)<OKnb+Z}RoKywitA0l`#V1XB:]D Ӯ촩^KGV5Pr.vOLԸ\\`%qrMr>IDү$VYhlHsN޷u{v%ٌ61<ԏv(:/ER\Fc9A;KAp V}NHbKyQHO߬HA##$胹O-fo-#^frfQ5֍/p Gl=RGV>hZ}i5D,ceM8N yY~l rM~+gt^!0*z03C0Fxj}{y5#./ͪ0̏yk\gt `cXZoӵ dUO!xA{kJ״tՍu밢Bd`$ bD.P[1Ȳ'(s1<1[ZkdN$2Lx,\XOjmzK Q;`9m?9 +ncnK #o9OFq׌t)QEQEQEQEVOVɗNВD#˓n\#yFћnnh'$Qٜ›g-"` Wib6E2'w]$roqz˸8uK kPO6fA6Dkbha3\=9ȡQsr X[ΧoʢaAQ[Hjw_cn,Z۰;ZK}:->;f- {r^;`S*:[MqVm-M̥ r1޹7Ó1i~(c x,v +nWUseku[$S)Iֲ|3f s- |{|)j*]2%${t!Cy>\GxY+Xc#"ddFju IyHDWdnBrC3M)a\\[4/d^cn9 }pjʾ*񕞏èYcw^i ʌw n5.ki-F)aH @'~ b(Ζѡ/T9Xe#L>]$[E%YLr< *3 tPBA/&W,% d(! l<=pOM4>tbi«[:0uywz/bX KLh]@ڣ$1['+WI ӭ $˼Y%T'8)/0dg:g7,76+*\\jN{#)g~J+*)–+g8GY 1,(!ʗ^0}jK C.i/y2clc|:q@xRL͔WWm8>}Xv0p5Ʒml$33XĄ^ /팑H^b*h(fO ͮ&p/(Yjev.F #@?,~ymⶅbe|b^!y8V/YVwv$W\|,`stZmk=8^%x}_cAVoBI#ni21N(ld^+["9ͳ33U'f b[HmX ysr9%e=ԳMrsm"GGN:nho&C1@E@ }}hȃPﴴҚU fvFfw Z20U %pcR"b+7ZFsO{rѲ&͒2e$,@dV9G@s_-o7o=QK i}\bimwgo,qPp8| -6y,oH**M$A9e>/LX$NÐwܹ!H bMxOX{A42 $:־ZL#\KF0|#g`/?nm. e1+3AR7.HhI=󋆑UP.Ru' j}r b=-0V*3 .vgҫ[kFVYh!/bJ^;0:5=R{ڲq*NyP8UWvzuw#CuۂPgW㞦+Hy@v<ܘܡr2H#֜&Ψ,REzYv@ʦLmR.| YY[VQko -un⺆==Ĉ\RYsI5g]-Q0ki7>ӌےr: K/f2R5rmCsXm[P5hXxsWCdc?,myr<v#ئ$3KN γ{ʷP2#Gld~5Xde+d3ަ_-F<MofRȥE B Pp#Xǩ5IO_.~}ۘmԜHABJ pOogU#icEmytmJ&.Ee]@ʃ0UY˰8^(QE9u=b[X\B͌(=p]%bjմJhoY_eYv+b^&txodŻIr֛rHi8H`HUdz'bэ13[ C`>J.IJԱEPAyr.>4.=Cq( U_ '#dii"v4rqq4zinuH5kXl4Fo5U1 0 9*ޥks-V{[ɖ'˷>Rl'G-"oeFHɐssճV͊\$ʓ,zv)}Chg"xZmE[\ܭ*͹w6 ů6ΰGPN=[dj]-`s as64PtwY\K.!rl'&1trq=̞l͍p@4(@QEQEQEQEKWL6Ͽ 2جtp-eMс8Ahfy׽W4O|`O<][fF2m,~_z'IQ$]|1@F{nEDsKf2쑏NPlȖ]B6m '&6 å)y_IY@Mec{"!>Ys|EIei,Jй""sr?:fxz}RMKm:+sgU  X#+YZ }+eG E w'0C]í}j")v+GZM~ }R[+.m"uG"r0s :?ut Wvs'R%Z6.o`7)ڕucw}%Al)IL0cK[\im^ӭdt@AcTDsl;0*& PX/c6'hq vzd=Ms }6M)Vx%jIfaРN8[sG2Ioy$v0"dT2-@QߎꚔ3}k&YNP[i^I9=\i.nPeI$ҩ)9=h-/5"wcw)za>һ{ L9'=`}ywRh/ 09sVXoW^ZiൈPHީq\:\HP0$vlg-we]r]61w~]Kͤm>jzxF,,t&m#O5K#A*')Rq+,xNӤ9$)v@,N~cv4 ;q"wsu$e'nEgxO y.!YV8!C,jmpwkR+)-㺛i@w.rzUk c{32ʥ@ 6pR_x]F,);1l峷ߗIcۡOaEZ'f2^S|?:PϠu+6o-k꾥s)0KXa/^$F#͚W.OuX>s'W(#x=vk y6 ,uH߁5i}9 mBM6}uT#3DU5)/l-[YB _rOTmiw{d2B?xT@ BKfn%S ˜zM[wUuWJ7s:Խ[ƻ;آ`d{X>h õpx霞)x=R.;, a6F7<c\Vvp^[sputM]Z[SsnL3)u',mĖ abTm^^Fycӡ62BΤ f 8ֹ@Q@p:OxsĂ/gDdxd-3Kaa{t]-gSlj$rT(U:n5d72K0J;,HX=Ee|Q^XWƬ Rhzݦ%Fer2+dМgEk d²l2 c]kFtYAy$|"9!Fy8\O&wV.ǖCW8?qVz=F{eV[ Lm|1MjY]X\I<4!=77lt 8 ?nrrdʂ$aڱ;qa" @Flho^YsjXm. YU8vB:57kW_,gwS&~9{v7 hE+r3D^<<9qMs5Q?,TEn17?7~ jipbuoSLbywFuwܣZ6 'K}F+{ˋvQ-Lږww}qn k4!+)@ #rjMXĽo?',3-B;9ZDPSsؚ"T"{^Z-mi}ilx)m TMa2V 蹾cBV")&)n)o,Sjw/rn.J('!OR;YNK[ .d MH`1כ--:ˏ -DR^#41W`{xnA 6Η{܆2yNˁ8+V_<-o:oUdiυu umR'V/*I)a@[^֣7,).y\n` Dc ,x pGJ6vzsOX]5M2["X6&Y6?RsiGm-+M0EFdUnͰW+5^:kzMBT6S.?v'{ii3Gvb|݄Ax T?ҼKv-贼QrLFc'$(g'!n,Vn[ rwA"Ē5:lwQbT(A}jjcl!•)7n{'X;TY@ibW –'R%ړDXvڅPܛJ#+3泧=ֶqq\yr_5v3'Ї #W{o"JF02sU`k- j;9 lQY[srO9UNjE4O*܈2]$ jp@յ4(Rܭ{$a~䩬E4+i,- Uqlb^_t JVMFOVpwA@3[7vވmc0xb䦵uo-䈂Iw@b'+S[O\Cw$i,)(`x-v3Ko̥mWr,DN/Ϝ236Wn"wRH:F͜W9e_?yyf?x26/+<ǥTIԭFi'+ȋ '=`[-<'5=ޑ)Mű #e!}HzsݾiqjkޭExwJ6I`f'{fwxҥt7~КkcES#F8$ HR z7Ka[w0n3s q04W|&|ҡmfRw`$9 CGPmF5&X'8sKM&ntu(xeJ<8sꫥ^\Kr :I2TN#Iw4=;>W0vo \GAoDfKvr0tE-${؊UPI8u$y/Ji&hV(2˫sdth+IՂ(QEQEQEQE uӄ,6󌪓{Zhffr &Ox )2[yǕŸz]y»I똣-Ϛ.~f>1E>n s$OdҬ}$)^4kTA~=k wŌ vZ@d~jF%vu1+8xI@z,G.AsᣡV?~iK[pI2qHxZ5K+[+uX=GN0Edyj1X̐ݾ)CBppppk.]2(6^{5W0<WWtl qք3Mcf,^J:`OzɃTaEoqfӤ n& )ˌ ՓmkBkiZB n 0ٿTO9m Vحl \(;tMzp$E c*VEkVٍ֑T @? /]h0^]4Ȋ鼵R2FX(!r{ ꯭7#=Ȑ63d1Ҁ;eѴı{%l@2}Jڎi&?*=Ѭ cF-!v1ӵqm9%3\A$:TdX@Km9蚂xfQth2bBQA79u}락su47F'UBl2?:q3Sb7@m n`ڹ?[- M. s|`NFKgy|[4 w.8^,B{hbI+ŋ\4K܌@~>uŭm LZH!"`֤n%vU$zuaFA&[&k}:49MFT` J?ڵ؝`[T&b\F@]仓C Ik\qbKnbO!Q.st;QW-Aى]b`sTe52jAq k 4b )a ],u5V6*")12Cזls³m|5[~4".X`1#vy8UU%pA]Jjhe]60l.H%8'[_x_&;"1}gsܹlpsڋۯ KoyJm.@;HA8ƽ{m\[KR?yB )=3E}?EgC0H eP H 7e,ٍdn/*@Fs?@ү`Kmwٴ1E6I SbXxf?]jw>,pJH,|68=GW_ex.DYrS14tA￱Fc 68&ؼ!rrc\[i-bJ pn!X&ExR2##6Mt55瀶cv1}VgZyl/p_SvZ4Zn($F *'}\xrgH$xK6_qєuizoko$D:>b-6E;U` ġB}k<+ë;Gxαۤf`Cr1o 麞InmSs86JXP4 {}얖xj\4JdQk;EF>aV zVxT&ye"vV[GIֵ+v VR_Lrp!GB>jC:6tʹ$ j}BM}NQ{332*aN2p=넾^6ǻʊKcaSpA]~_\\}onQv Ia.0A<I'*䳲Ik%se|{ӛE!}2ŢD6}TcR/ i:݆i-ɑdWRpRnlV}߄5|9و`{i'tp8PقҿI ݩn.DP\BbYug l<;ZmZY"van Hj rĩR3V2e׼3}5 Vfc9A "XS-&e9'|8](~^>!>sS/[=BeC@@⾥xIdtS\RdI!m\ĞZF0Ҝ|jK ( ( ( ( ( ְc8{R,66HIk'-'M([Fd00L#E'&gycøc)m ^^il|nAx->̪>V1Vkf|&/0݌׊4[ a"]F4FNFeH$z76\]" 6vqqBg~Mu[a-qI(%.]a=ԲZ7|Ǒu5k &c`yd;3VE焴KXm(񪤮#̤pr3B(ջuE"\ȿ}v 8Zu4ۈىWB6w)sֆdik{sfYJ9' vd`3Y~"ӵY( KKeXq\<g+ cL#Hs1$&zm(pd7N8409mږjq}ih-9WP{HȎV 4DSZIkrtIY9Av$nl#g i"ۉqPa۾P8SM.wiSnW̸ۆ[r7fAu,䴕 k < 7dO%o-"SM{r{WssY7~h*ss)7X2FGbK_Z}Kͽ, J838:?") ڣHL, Oʄ9#f2+{- DR)T n.7Mk8]&*7LۊBySēyc}u ̷0$;H8i$UIm Lj -6H~yiđ3Ɗ=x=z赭Oք#Q0RW 29,f 2 TcĊmo5Y|D:E7١# %|#9\@=$VKƿLOr*`psifn \ƱJK*WF0I95.ZvgesfbrY$Ri ge )FX8I p ~:{]RA&&GYKD=mˠ- euW `@v &iC;X@^5Vwm)Vx!+Xkoe`iַ < 6ŕ[)h:tZinE1rc @R31qwPH#k G53Mr*'(0x[?gú ;q alG:S|:"oA6um6т63yib_/|;NF L§sR/ur^ m/&d =.6#$9C- 26|~fZ 0>cd00sNk wd,@89}irN,={;?Ř74[ oͷ4+LV)ruU^+8"̊|ÞKzjZM+H5>EUQ@Q@Q@Q@axyM#ȕ5(#}I>Vdltðu'h>h|nrQ-0 'zy«o-"p WX=MQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEVyFџnnʹg}~K}=™LrNG4u_ {3Qm ]$sAoqz˸8k>ȵ?z((((((((((((((((((((((((((((((((((((((|Ck-M8AkZ¶|[=O18˰ic{ץך|(>FAOwz]QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEbqXbϾ O=kVOl%Nk{yUIv<? ׫W|(?˙m<~cQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@s3'm|C= }K裏yrvGU8ovs1FZ {{5>]ŀz}yoŸIbz >2FG|WP((((((((((((((((((((((((((((((((((((((+s&-2y:>QIɭlG#ǿS6nRNAҎfr_ őOJ/قocu ⑼-EGdK{!sdT4-cR JZnzyE Vy:j+>$S?nF. Nm騮g{*C>$Ju?ۇMEsC@ NpOE7@5̟ ]t ]O%:?E_㿙bp?M騮dxbg*t/wJ1ϙ?:j+bv)ct/wNp騮g{u?ۇS7E_<AU:F. NӦ#CዲA_{_tW3UwO.t\$S?n{*CF. Nm.?T%ŻG#{ NGouۇG"xtQ\#{ NӦ'"{XU㇏@5̟ ]S<:?O%:Lc|?n:j+^ik27A S?n:j+O%:?^nJ揆.t ]O%:?E_SዽS|?n:j+S?nE V9!tQ\#{ NӦ ?TJ?ۇKS7E!|/wU:CݟJu#CዲGU:bq??WCD Nphhxb)n7Iݿk]騮dbp?vxb)n7@5/wJ1ϙS7@5KI-n-ܕ/@*QEQEQEQEeӿU#:˓nX/ISGnnʹ >u@g!x< X\wm,WקW|'_yn9᷸#w .9OcN[kKy>#!o  ;pX3ǩ'4dԭ˻!7XIrȻ m=x?۰,GR,kWP%V!+qXzw}L`{K10@5ڧ,FqBKZk$i[3ۅ%RH.fW1o01@s=jπt;V5-FJe u#ڕ|eٽYZB]Q9Y1 َ>\i+Q_B{O4eXoMDʁO<8'j+X&!|w(q\jQYNUsesH",i6zi'<)V {wAHu0(u)l-F}wp#*q+E'CE,\(t[-lML*^=ҩko끎kf) "b8#@[ei#(7;TxĹFpW#coqQM"+ai-*X+9K60#F4kk[RQJrH*rޫ+&tas8,V)E$f9=7k :nڮd-.'㎼;C6&3-~7 qtq}A{w^^T(PpRGQ:u l񼌛f Aڠc#ӽ $Oh=ByG>RH VWϊ9Vx$b;+2?ijhUTHxV,,?t{֫hJ!eXAIt67) ~l|So`<< I$r+VD[;+6KqD6H8P.<-a?L;XԀyq9 dAXu"WaK(tvY M8=6-F\@*Wl`A>^H B5xMwTcAo]O[+iHfM,' ( "SYi[GB鸯8Gati{ v%Z,XTc$@.20D`AT⢟vZ_ڽ鶻He;A\OPۆ8&%WnZ97RkpA*qaͤ_a$x%${˔ =szӴ i|2Cʣ;#\*n='"]vRm}R[@vn 8 16:AB!pDl _ #/f44,$1L7X z–6qgm%,"s@`ncI$F-?Tit{h 1l$1GCg8$t&iVE6<[G*p69⹅ݽŴ]w GxX p\dS:oukݬ24r/W=e-9-mX'2jU~];C/xN5tnnY5>x3FxY6>5M\[}1 asʌ =/OM]9$RI?dY?Jo.B<ܼ5LJ$`1X rN8MC<]{q۽VM?}s!V(Jn;a[PVlm rOFv0:T1[LNndaB?ZԸ{[,$,PܻN =\[ژDyYHSN3;@kKV1Œv9<ib-{{QyL0*{N5+קR-LA\q?mGjB;C"<( _7t~cwt=Tpk6Qw >+* "Ajm{0HDD$rssih׃P A gt f\U:|d̥`w0V GӢҬ@ً3$d',Wus!DxE6c,@CI!xJȐ #| źTk7Ъ۹o,Pc!rG>WĞ{iz]!&̓""ps!m/[0l !o˔ arIz\Fͳ41,hA"1ڳXԠzf.{1E@ܜ1''kdX,\HU00BCMMW*G=B&(+)t+AײE"HdȆE 8m\gi5l2;c8P2Md" "8=b‚;w.{ r)/R;p4c7Cm!N =Z͸?=iZ)n Iw>&{qv"ž唕E$@,y9>Z >gmxʐ\A+έ"X2K7@]<$ߝzzg3^厷<ykx 6 3;!AsUzSi7y}n?BaU%=Kgʲ[l1qLfg R\%R?eqzi>Ӵ."{y;n_'=I>|5}kWDq|.> 8Zwgk|abCm$ n IXG:4!ݎr4F-__ֹyi \)b< 5 Z\m,ry|,shmGP[Mk0M*:.lxۜykVӯQt,9FrA+r}+r ( ( ( ( ( ( ( -Œf`rNG5Y>!tst]R8Ahfy׽W4O| &[{6?/׽z]&o,+:p?"?Uk(Ҵ Y–/ddt'pzץ_X5M:[E*@\#5g-)u(+8u7Nh$gs&6y~)վ7 s4Ѭ:pmtN`$c=\4/sku/>$V  prݍw7-;U=)/伏J*<k48n5 ieo.9R`U8y9@r=/j",K-p15kZ3yQ*ZyPXHV݌eXdzס'ڨZZmꆵ-S/ J߮;S3zmmE7?jp>\z3#/K-med=;ףͭiKZӹ ҁ@ u5]F&UČ<(~xܲ]\p}8S>s 4f5$#h\.xWXxIba[ [88o 8d9q&WH1w9Ox{MCɂn'VX.EmK`玕xZMGH[#s#06?ǯCREjO=ݥda'*mV]^<[`)=TFw#SZYƱ E]bKcF3X%է֖'u;iE}E1 cW_si嶏5%m"Gr9ҥYӥ( ffuRޔ >-[kYE+*ᔓFz`jՇ AWLec`p29v}RkoEO&-ݜϷZ2xXu-*{ki\ L[4{RHVRhzUW}[۵a${G$Jك{^PHe?#@0:.~e{TWl-7v3]W-%17|aNr{=mVռ&/4v]i)EY99|;MMCjU3 7 cMy_Ր}]{[eIh؎0r km *ݺ d/ElC bZ4x5M\ˑ!ǖr={u5#3uC4 mp-VX*߻uO9VSNR/luL׼JMRJY{٤)z=j⛻X}[˛4Xc:rw鴁e}x\$o ޷EInlA$d~ӓZn= Qܛ4)$B ʜr?:>m]qpVJL קCZAEe ~\\~X@xZ;-n}ONdhH* $pOV-iu=\2DUq$/ay/XZ7pRa`1W:хGqr{$c..֎p:CM]K#xeI!߽ӑyҰbuu n(o-ww)8(֢Ŵgڻ2;*0cH}lvvq[Y &$]iFF$Xh7Y< r95?mnmKf n.sMqmqp^ 3;ؖŝ/_d)e,!Pgh1ܜj~XGT𬚁xAT*+îpATԭd\i\mie#f`G^:f=[P[QcM&,elǿ )̽/K{;e%yF-.Uqg_O&n&ɡ&2X1CUi{.Ad&ۤ2xU;Z@I8r:T+X,n&fRcp$لbF88šo"jW aBʼnR#sYwz \im-3|e=f#76:Wbo5x[.918z[?k"<QݛmRY $)F\3r:` 3Hgc}g1e ۭ\o^x)wkn2LZ2 g[hzOڥɲnC"yA8( kbeꋡ}SLIdhFxgag56*it6^J@IpͻP;sml.n\.;YFQ 1 t>gIԍ2gcF#h O8=:hZ.C]=<sWN378ɧGQ//u;) ǎ(tPӐ~Ҏ:j+Οwage(Ģ0 ^9,sǜbm[xX[bKa1)8f@W)q^Ve,LHG9e&o+s?K//l+B57F[h2r!q #Q\Uϊo?.- vi%VF@Cytfh5_CrmQ[A&RΣ QYԴx. [{d29<gFqTVԵ-NicIيYQwzo\Γ^\hW/V!q#6vt= Ep77Zs[Hzpyt۠#j|F$5,1Y4 ,웃bF(#_Rm ݌Ze! g bFA?_eO|>H&:PͅV_̱+dqU};FӦ{KXyI&7v,AnYc>O<R~4rXܤ8G?G~PdǶ06g=3|?_*H|2Tis%Y-ļI(C&4;x,Ƒ*Ԁпa| ̿U/!>_# 崷PB {vRKMG*, Ώx|g/'&_* ?e Ȭ,[xlV$J gO_$c>e?ҿa|̿Ulťi:}pKđ `4b=e?a|yX"&XxA^:qӌ wa"m-Hϥsp?a|?_*qbehiB[Ep6JQ0ND:}Q>BV Xxh_1/o/!>ݟq XM#R_!wldKW2Gm \JUp:eưe#/&_*7o,bm;MuϮbDH$Uh_L{W?Og/c>e#X}s{}kvh"6 جa(a8b;#PzVG?_GLUq?a|/@k)噌cy_qI%%#RE#Ұҿa|&^*S ~:PA[đD UQT͏|1?a|yv_2Tc3CpI4BOR ƭڹ_#e $_*5%t5HiGܻN>ڍ6[tHvA=/_eO|>H?a|y ,m% --[a (x \O$X=e?пa| c&^*ho_8|P<LUtW7G/&_*B|??a|/@%0 ?2Tx|PIEsv~?_*+eς|>H&/@O(kl+S_#eO_'e?Ϳa|̿UtW6|?_*H|2TQ\ /KO12TQ\G_OLU'!_I :Z+'12TLUtW6|QOg/c>eBchad,mmod(bTRC gTRC aabg $ aagg $ descDisplaymluc nlNLdaDKplPLenUS,nbNO>frFRPptBRfptPT~zhCN esESjaJPruRU$svSEzhTWdeDEfiFIitIT"koKR 6Kleuren-LCDLCD-farveskrmKolor LCDColor LCDFarge-LCDLCD couleurLCD ColoridoLCD a Cores_ir LCDLCD color000 LCD&25B=>9 -48A?;59Frg-LCD_irmfvoy:VhFarb-LCDVri-LCDLCD colori LCDtextCopyright Apple, Inc., 2010XYZ RXYZ o19cXYZ `jXYZ &2ɗcurv #(-26;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Kmparaff Y vcgtJ*ntIGm|>  K\a !d"$N%'/()+I,-/C013 4B5s6789;<+=9>E?R@cAsBCDEFGHJK,LCM[NiOvPQRSTUVWXYZ[\]^_`abcdzeffQg;h$iijklmnpoSp7qqrstuvfwIx+y yz{|}~wqrz߇ >?@ABCDEFGHwIhJYKHL8M'NOOPQRSTUVsW^XIY3Z[[\]^_`oaTb4c cdeffgj?2?@AB]C*CDEF[G'GHIJVK!KLMNLOOPQsR;SSTUZV VWXuY;ZZ[\S]]^_]``ab]ccdeVffghEiijvk1klmbnnopNqqrzs3stu^vvwx?xyzi{ {|}T~~yf\Y[euƍՎ"0:CJQYboˠ%yЦ'~֪-ۮ1޲6߶3ܺ3 ?@@ABCDEoFXGBH/IJKKLMNOPQRSTV WX'Y9ZM[c\{]^_`bc3dYefghikl!m*n.o-p)q"rs stvwMxyz|E}~M4I㉇!@X=IwŞ/DYiv~Ā}vl`΋и!]ٟ1+G{fp.Qu 2[:`-Y <k1dL M%r  l # J +  "@mA-0HF !"s#F$$%&'()*+,-./01245:6c789;%<_=>@AdBCEEFGIJ7KbLMNOPRST*U@VYWsXYZ[]^=_f`abd#eXfghj4kilmop2q`rstvw7x`yz{}~I}#]؈Y-xƑo̕0 'ǡi Z_ðx/赧i-򼺾LŰ|JUz֋S&rS'>_Ap2f"R!X>z5vO;D  p L 7 B Y ~O>S LrA k!T"A#2$'%&'( )+*9+K,a-|./023<4r56859:<(=>@LAC+DF!GI)JLDMOpQ RT[V WYv[4\^`b^d6f gikIlnyoqtrtPuwxry{:|~ xX̅B4=ɎY~/><Lߤ*wŨfdp˴(QW+Õj@ʫshҬ#Wׂب+5:>@@>:71*"w5Y f\BU'^/dsf32 B&lmmodExifMM*V^(ifHH1C     C  1" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((o"O "^^gej$K#`;@5W9 TZOQ6ż9S}ƅ{)I"1y,Ҭq(QTR w&];Dks qa¨ 0HֶGd@6^cwkh>mtna4`8U ,92N4}>vmei0p 95EPM/xLӴMO]0YGL0F*}MAxC5_( $~"I[7]+iIA3yqX],92N4}>vmei0p 94Yxseݮh}8a0T$sj%ZO5?*#},92N4}>vmei0p 94Yxseݮh}8a0T$sj%ZO5?*,Gs<̹e7vvKk(IÅP`ϩÞ,ntGm6QƓ  0#ST* Vg_nb?i%e/xLӴMO]0YGL0F*}M^cwkh>mtna4`8U  Vg_nJk?%t}K>O?c/.Yxseݮh}8a0T$sh];Dks qa¨ 0H?Jk?%tUsY-Xx? rÞ,ntGm6QƓ  0#SEUsY-' nRϷ0K˖^cwkh>mtna4`8U ,92N4}>vmei0p 95O' ni?Ku#}~_\];Dks qa¨ 0He7vvKk(IÅP`ϩi?KuI[7GԱ??2嗇/xLӴMO]0YGL0F*}MSI[7G%ZO5>oa,92N4}>vmei0p 94Yxseݮh}8a0T$sj%ZO5?*,Gs<̹e7vvKk(IÅP`ϩÞ,ntGm6QƓ  0#SY@) Ǚq\D̀G \=O6 =AYUZO] ͪsRkLβ];Dks qa¨ 0He7vvKk(IÅP`ϩl*wmtna4`8U U֬](e= ;b7\_굿e/xLӴMO]0YGL0F*}M?b7Gş/o&~Uc,92N4}>vmei0p 94Yxseݮh}8a0T$siܿ ?,4} ?#ose7vvKk(IÅP`ϩÞ,ntGm6QƓ  0#SOسMgok#/xLӴMO]0YGL0F*}M^cwkh>mtna4`8U ş/o&?_M_>[Yxseݮh}8a0T$sh];Dks qa¨ 0H,4lYr&h~GAZ2Þ,ntGm6QƓ  0#SEgb7G?zG1^cwkh>mtna4`8U ,92N4}>vmei0p 94?_Mܿ >}V?];Dks qa¨ 0He7vvKk(IÅP`ϩlYr&hسM7ރ굿e/xLӴMO]0YGL0F*}M?b7Gş/o&~Uc,92N4}>vmei0p 94Yxseݮh}8a0T$siܿ ?,4} ?#ose7vvKk(IÅP`ϩÞ,ntGm6QƓ  0#SCtISwwg@Jք\,4M] ֔Tj;Bi&3V Kϲ];Dks qa¨ 0He7vvKk(IÅP`ϩl("22,9im힙]KeFi jX<[>c;ql=hj#ֹjsP;kFqHC?%z8+٫/geKRQvv$tM+O-34Y?Ҵr=jFݩ9NNRwlXEB*1dzёP3M6G`I*ּ◂-n6XsL:!Sކv(9z+F5+Ԓ^ǣzё^R<{T]2g>2t۟7]/FGx|z\\ _p7O0_ W?/=#֌ZB|&|N?0_}<BKq#ּ(џ_ }G\??_?32=h?0pu~ 3[ 7O2y/F^'# %L`ƽMմcFt[Đ\A te#+b:ԥM~gFBE+viFFPprX6FPp ďVI[[Ί_r>@Zۇxg![kbj9-ԣ6z1z|G$Gǵ`ixkN"K7tխhN۶[Gq^yIFGGǵ{Pdz|{QǵIFGGǵ{Pdz|{QǵIFGGǵ{Pdz|{QǵIFGGǵ{Pdz|{QǵIFGGǵ{Pdz|{QǵIYN[[mg\ģ,,s}A=>OG%DVjͪ=%W^gC_XG>^$:t8M@x.5V`;$XlɯοZwSjڷ1Ƒ0+jšMd]i v#${_ծzYXݚEܨ,Uic$gg;m9W8o :yFSە2GYh߷{x<[ᶾOU'MYSO({rƞGdwQE"(((((jOADZ/V-v1gM\ljCkyZ-V-v1g\3*=n 3+v]lYnfCjz(Qc 9?dxUmoq5߂"R:m|n(DqEQ}9MmEPDgn#9}$U]?ҴMLtmi i]7-,2\dOHGMWy+PW^k_%ٮGזOux/zhRKfP^Xf\':W ,ܞkα~6ݴId7Bmh72#ݣnݘsد<Fgwku}- XuVqwʹ/;M>沦E4y<ק gR&97|Eww8iSCk{*Bjۓ_R͓־X:gψ> ZڪkY67}olb_(A|w+Ŀ5/jV+wwB M;khzVE*K.{kzLq ^$ ) %ŭkwBJs r?z}Ufϋ|7_F{_K(Hs+L?MAt^ ڭ?IˉzF}7WrgQqQuIqF}Gs&}7QgT{G0gQqQuIqF}Gs&}7QgT{G0gQqQuIqF}Gs&}S??cuS?5*g/u?~gAq_WKOڿ7JӧHV>jz̞9ifh4&RQl;s⼻ޗV K>7Z\GIKدmag}gomߕN Gk$hQ D1ۊ`+ܝ:Q'i>^w>)ԛ[E]y[ϵT[o׍z<Yn-aNf>׿3x#>TkL;q*#Bghxi#:|,ڏ-_p hTiG~"WW2fsM0"۟ ?R7_znGc NV~Y*KG%6ƚze5o .=]L{׮\XY6-ޑHD[pyCU\8k~ WWRK쵲Ϛ%^ l>V:~i~"6c_Ge%I{_?I^F>{_u=ŧMl+B8$&褹ZWYQ$x禝N<^4Mn nֱ^ޗM[K\U㵙.R[W_{ 8]C뗾&oA S[<?j^: .|<O9ZQ_s.Ǡ鿴f +R񥷂uɛlZO,Ԇ8ZC`zG5D=2hZ9{H$GX WRcFN> |l4lַ)#H5o[xSPh~48w y>ln O'zɟ}t~u$6#(ŒȯڳO7w>OM6Yy[Mi3G UpI[js1_Q?<%⎝Qo!t]~|[N-'>-|#$hH( r9 S/]R{7VMMBm-br"]F%`q3X[0UZ|LXD׹-$ooH5Y0K7\7_z$KPX9zxj?ϊ+T3E쮬on/ݧ żMrLRFRFOrC]|U/LtԹY *@;o1p%[q~F xZI]XQvyr/ֿjW!JmNucKPX^>3j ]{NM-{ta}#83+o3_h q[I_5c)UiQaLD?>Œ e 3)PMuoai[uc zQFv$m*麛>5i!H4jrq{Gп;yj)k-K|M3k^ -% 5課 ~K!jޯ2Z%f8BZ[TtW)4tӶ-[v9&n!vHc&6#<8q۽Axm}+Eu󶞪xo :yFSە2{uǦ/ wzē}pTx򌧷*9@GQEQEQEQEQEQEW-PVG]bycێ>{`5xT] FRbycێ>{`fʌT[p4.VCVޮp5هN5zW+;q|/ D:w: k@0YeWCs؊o ~Pxj9E`wXmی׃|io V[M4OCëuP4;ȪYXqy -koZ[jzŎm<M-4h ;m+1{A׿K}}|T_SIt~TdUߝǫ~uY{6%Պ|)qsj[̲e9>!ޭmjd!"B 't;G2Oseٙ$~u9hTMit~g)?avקM_RgdG%q-ך?Pox fHbt|sch\xMK( FA Poxzn`baڈᰭ k修OJV>H]СX!ehl92Fb pO]mKۿ kgvgM u(p{W=.ħKT úQVIy~&.RNݺ7g1AU_"yy" NIQ=_jO'E2O|+9[6ɦZ^}*3X:׈ R"Ley)w μџ 1%SJcz ΧjELݣ Kd{ߕx&?|CLJ>> n~9DmrZip7)]|tլao@a-ɻG,dt?g_#ܯo*{FOwMqs*cՙ׊OE|%5|Ew ZK[.k82 e}zVGXWŨ珞?mq^k|3mk V]HE)'zKIcU!.<*mݾ/iG {)rA=pd|QvMb>U]kA(7p50~ǟwOWO_i WϘ#~ ~% gM}Ok:- ;AŽڴ:Z=Z2J8:dޙ5_Qv<(դΞI>4/m Wkwv<(?i>js~}$>!NXGBih[]ۥߕ{SFksPzt3_M$W1;i:I7٧O<)ʎ{=MGixm{3u􍧨$f曖e;>h1][Wr7Ce_p<Ƨ;E;ihVkoRsppw-eG^__FYvyk}ߗgq8OZx֩A3Iy$Zlk6"J,Șa_uoh?f5c0[3Vør/Wc#>uJ_g_k}>u[KM40Gk$M2&&) Dw6O'iriƾ̕5R{a9~1ﭼ[26g4~moO&'<v??]fKؿQ,=C%_&oH?!ѾTkVIܙ_܎2Kd]~rfPp y:Wx*<*ՆcVP({EC=VֿWԗYkCa@QoAFy4o>)Dϩl'6c  <ե5_K#kO? z `=AwJ~O zɗshϹ) ` q4g׍)V6Re ~Pu8e #FFFAOþ(vzVWQ`{}5'߻=Q/ïS~?WVY4gߛ=QWoǨ`}sF}|i]TgXx[>_Jgџc_3ڗ㮇TMUG:'=Gԫ#3k>|]ןTGz`}WcF}qᯈ \.c$,.QA5>ߕsJ..gџcM}*7oʐϱ>ƛ~Tn>ߕ;>ƌnQ~TniPK7Vw{1cdO/9ݳ|[1ҽE>aѫ\<;}[ߍ:P/լ*4۾c=~CxO٢0կ% U*JN;N-{v}~o0)6ᦪy;%dF}4ܷ-+cg`M6Oxm;dm=GI&4㧔e=Lۦ'6ҴW1zy7٧O,{rҨ(((((+nt;_#ԍo<۱{=za>C|K쥷żn9S}ϵ@3\_I4~?/]fp"O^SO m߭Z׫|Z7~G.qnξ63s |}08'?uńSԸ$6}+ |Tʕn+e5>'?7𾿨èYC{NFʪg@y<pk2by-{Nl֦ T/*Z~\$SOYSOyZ<* &9y'^]L;>MN u$'}+xC/ xoZXob1_6o_?E6Q>O*_~/П'3/hRFj_7I|.u'?N?oCO)f~.﷧zbkzDM6OnZpKhdv@k7i?|G'?J?;7?F.Ivsgim>2xygA>6?Bgf1:ty2*d->̿8r{Jz=?ϯ3YX'+?g>/*,U /٧I|5#c c2a:};O)ї>'x7wG Fm#:?u %h~%gl*9<X Ù;׌ :4@!cOx'oثS^uA}Zl7Ij#gɘܑ ,j򏂿Mu-/ƗZϋy.X-u+װt9 tIT5Ppo1,NbK51>$I-gicÖ x+lBD׭$_z$%KLNAU^+%( U?/yasj#h--g\HU!`Y7e'obicێ>{`uT4[o'Ծ[v&>׮~0@8Gu^n,/zQH~op5܇f7Q*5? kޭB Ԑ,%` ҜTiTr4])W&$zdH")`5c7a$d؏3ԩ˦o?*3K{tl8}NJ=M`5sxඦ((((((+ަtFD:ًoǗ&wNc}k}s6 '+wC l<%? 0U6@!B)|h(RO>*_h>vQ7?VR j#z'l]jyS]pԒK͜S˰EoD{ }6o.hO}_x/މ>?7G#z'l]iSG/~a1Wst7Ͻ֟}Mi4ibx/މ>?7G#z'l]iSG/~a1Wst7Ͻ֟}Mi4ibx/މ>?7G#z'l]iSG/~a1Wst7Ͻ֟}Mi4ibx/މ>?7G#z'l]iSG/~a1Wst7Ͻ֟}Mi4ibx/މ>?7G#z'l]iSG/~a1W-}LO.Ӑ]J-[H8bADPҫySXW7+wmТۧI~E0T3$7l4}}=*4_|q4yQzj/4_|q4yQzj/4_|q4yQzj/4_|q4yQzj/4_|q4yQzj/4_|q4yQzj/4_|q4yQzj/4_|q4yQzj/4_|q4yQzj/4_=_Fub?.(F:W>4Җ'zpI$5iI˾`K>41.O?V;W`T2܁8i5H,uOd%Z01|r8zQ>!5Ҳ3l[{=h?ٮfόs8/\|9^Eyk=ODt6|czqZ|B%6kdfٴ3 '_zשQ@Zu,~!]+#6ͥp^?sև{c Ym-?W㞵TPDKlJͳilg9O'"XCfVFmKc>1|r8zQ>!5Ҳ3l[{=h?ٮfόs8/\|9^Eyk=ODt6|czqZ|B%6kdfٴ3 '_zשQ@Zu,~!]+#6ͥp^?sև{c Ym-?W㞵TPDKlJͳilg9O'"XCfVFmKc>1|r8zQ>!5Ҳ3l[{=h?ٮfόs8/\|9^Eyk=ODt6|czqZ|B%6kdfٴ3 '_zשQ@Zu,~!]+#6ͥp^?sև{c Ym-?W㞵TPDKlJͳilg9O'"XCfVFmKc>1|r8zQ>!5Ҳ3l[{=h?ٮfόs8/\|9^Eyk=ODt6|czqZ|B%6kdfٴ3 '_zשQ@Zu,~!]+#6ͥp^?sև{c Ym-?W㞵TPDKlJͳilg9O'"XCfVFmKc>1|r8zQ>!5Ҳ3l[{=h?ٮfόs8/\|9^Eyk=ODt6|czqZ|B%6kdfٴ3 '_zשQ@Zu,~!]+#6ͥp^?sև{c Ym-?W㞵TPDKlJͳilg9O'"XCfVFmKc>1|r8zQ>!5Ҳ3l[{=h?ٮfόs8/\|9^Eyk=ODt6|czqZ|B%6kdfٴ3 '_zשQ@Zu,~!]+#6ͥp^?sև{c Ym-?W㞵TPDKlJͳilg9O'"XCfVFmKc>1|r8zQ>!5Ҳ3l[{=h?ٮfόs8/\|9^Eyk=ODt6|czqZ|B%6kdfٴ3 '_zשQ@[ 8F]7 @{yZVcLٮZVPI<((((((PKYDD2celery-2.1-archived/_images/djangoceleryadmin2.jpgJFIFHHExifMM*V^(ifHHCC      C   C" }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?0x;'=T>UpŤbKk 湨]hs8]<-mWemޭ%g*RY;&W>oxP"ӯ-;5=7i"JIi*2qoZtS7~4vGsVރWvkZN-.22T0_ށ5=Ac`!I-$KT0{9tOFK&n`Rmv^zz4xX},/nˋd$c?;|qԁTo|37\Eڭt[wϖ&1}7)55{_~Ksr^3&_ x͊xoWk,. nppy:Ah8e]hMvٕ*[Fuj7Q fVyH%_XrzTچ0E>j1Om%~)`3Vڟ22s>IZ3袊А(((((((((((((((((((((((((((((((((((((({q " 7]z0Qڣ((i൚X4"X835 +&kvlp;CN(RO*x=2{f@TczsG:ץAEP ((((FgH$zއ }:((((sצ|'~=IHd(;$ךҕ/ H88nh&_i( i;X#5IƛIW4CUKMAY <1l2=Oj帹GW$ȥNbwnztIlq}6VG__y}w2w D` =9d 4M;QIY 1x 1|F ]9 N5]RYm$RwUKViNT!b 3yk^R(Ⱥ_NɯhH.JXͧ@kdSܒŷڡ^K8~ <{c $nCq!= xAk[WGZx+Ǝ) >~lOz񿎴w^ЬobKs\Wnnz Lb'b~ )^>sˤkk^Nsn޲~`=OPT>0f ?ygf3g;s~{ΗfȳټfN/S>7u9,63\B=V5{>S<)1mÌFSݽz_>^J+SwjJ FN'׮+Ķ_e"_. mǗGbkȠwmtto۰hP<֟o/ZWZ8qRKp8sZSӳNM]-6ɥԳJ]=45O¥˝HEAo7)$qE񧉮53j 1ciC#>5vsZǼr󟐓ҢWբkxP]$'?6rzj_QŴEwnɭ ysF]ukחrjw.y1`?]Cj7ZGƏ*tLpA~kSԛO s$6V1ǒʹ>}s[MbO*VrӦ9a89[O̹_>ҩV!f)YU%yZjIP4YcdӰfCWujZyF#q94ӆt,[a+yk&1.pջxXV׵(e[$3g,8}9pV咚KT4%ԕi_NniWC=jZlZIJ @{f|}+?^*՞ZiW[}y"5o:ב]{=eY.Al`J$ԟP׵.<'d>+?zRQ5Mgg~1uI?=')?xs]o+f exLRmB\oD3BV1Ç`v=p}++_4&]^O3}fx3'x7kf.Bol^ɅsxTr|EIEBQRMdM,0rNm/euwws1I?!5o@D ,n7 6Ҽ$ԟP׵.<'d>)4AHtmn9N]-dV=3q:dU(\/vh_u׮/>]?l!{~`? bIWğ>_qIqLpl1jڬw]$$UouҟLK땱įj%a83xN#NQz[BKw}ft%MQE}YQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Gx-}cz>,?m[gLfW>(OTԵ{Oi嵂$r*t{&vVe#p=+ǖU.iNJQeoroφ쯛BojotֲIJ/4$b+#xS\mދdxo!ԥ5L4,!n@qpV^Vo=OcH$R]\Z\/&+ ̻0r||5 7"mRKAoa3YB`P1;MrkUf\b7 Ҕ>Z_2oNvZ &+alҤL+9#8Zk'ty%{"jIkk;d_KW8{CiHa.qfyԒsU?uJ[u[/c:5S{om;J÷6lIlfq>uD! OqU#G6S˦BY항PyYۑ۞ |5pk {A†EܮA9{ifUrruk7a w]2I,+X'b 0;02v/~\^xBx5;8WFKi .ZGğ0}AnBC#HA#yZHW gӥ7&ԭ~ Ty/K}~gX2[VOy0_ͥ'kf ~N 4_ |5bRXm=zXwH c)2:pd'<6};ٯ{݇K'/qSKy ɿODUyb|'ۭ_H _4߶NS0n 69|/v8YCY)!#۝W?O ٯútC2[kxj}(iREEkg;en= $t5i~6ʑ.n3¿KdխOR5{SS{/,~U*/7z+e*4I|~'j^/\exnmKQ@ Rϵ:qN}]+^Q =/$B;++u#Ues&҅/cIQIі~fj4yB~;/GǡCwcg5 3ζH?{fb@9zW_CgxQ[(CoXWVfxFdW=\Z$%XX8DDPTVqf ą=))g?2}595ٯ];o*oSѵ>{<CʹR󑃃^t+}097i__?_~9?5d2ӡK luCoġJĶ@HRx,=VM5ż {g+".:` Fr'_??41fOcN F {߻_!'mV`ē b1]Mե]I<_ O@N8SxD>/qp3_f?w_ k7:} DN.[w+dNsҳtJ]Kk)^+)&cs"6rq98&!gak>=c|5?~9fk[jw6hgɷC)}˺PROPiMK>4%ѠPc/$}Nc{XS_?f?w_ kEݵYiԖKin!Ĩ,񴃸9G5xKnl-aE $~\9 1;sRX˰| k?sA 3_U[]Z]]Z&gp)# t#koM\]Oܹ@ή @?<ץgX?g81ff?w_iia\Z]kDD"߼;SW(9ase߉Em2,7VBX#,@WkN3?+^pΟ~9?5mwKiALLaP 7o<]ZO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1ff?w_֞OO+~9?5GG`y_3;qhc|5?}iQQX?| k?sA 3_Zy>y>hV?g%1f T ׅZZm! UtU(<*y? ZdѤMw{ 3Bc\qZOqFN;IaM=6mVK A-..bӑ' M#mZxCMOxc\]ŹqaNic? c? nڳzKЕN)#{Oa6YZfLQgg6[M펎LKϲIFH3 O}'v_?}'v_?”)Lqvx^TWt˽9&9lnDXVCojm-DI幾' N`e~(e~*ZQV_v'M7s?I:ȒXKvj?uXj{i:jW7F;$c!\U1߄ ?߄ =*qZX˲6vW:t̐G2=H49<ҫx{)~!!Y5HHIg}dp>@/G>@/K]wVn:}ivWp ,K3`aFOE SPϢZ\_^Hn[9E.A\r/>@/G>@/YVmZԗEnIKs;F+irrs4B[+kq%k8LPL$Lds\S﴿xk,QhZB4SC 2E4+cWz |Do RF/)~+ykf;؞vAf'G_Ef۟qkx$-`W ?''@Sy lz1ij6p~C57紴Ĺ5M&9!Ɇ+9Dr;く[oWyZ+;ysվizjqci_rin0]Gː@9_ |:hΓiGNR@>LuoN0Ks?+V/9Go_#μE?MbHHGf!q{zRoWyZ+/<˴U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G U/+V/9G W7k.d$cu?f?9煗Uk QB.͝s /?9煗U_j's /?9煗UU>O\':WxYQZs /?9煗UU>O\':WxY QZs /?9煗UU>O\':WxYQZs /?9煗UU>O\':WxY QZh+5-v )˻%IҺppvf*J2<)"^-k^<)"^-k^9֞ H|KyCUze yt{oþo3!dq99nF@QÑxU;eNJ:md>e4}gyeKǺ{ie3*| 04Q\[Gmﶌ~U[`ugC?OچjvP# h~ƺ`^>ŪɓI}3Ҳ:\ydǍ;?^xk]V *ERigBæ(}m;z>ںqRnm~-]ϣ{xQCLFAgBm̛縵Inf@I㩯qΥj~"44-*gT7Ů ڐn0)7d&HK(?[k_K(PJ/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z/0U<z<z9Ӭ[?чY:Dqx!61рHOiךՕGg>c`cD x|Lbhlyc>J|?e9WTžZ0|ZsCu4BR W6={zWSW?gŴnR=+_jOo\-Lc .61ux֟k s9ӛ6)ޏBW?? ?? =cWJk~szz`5z>W?? ?? =cWJk~szz`5z>W?? ?? =cWMOOsH^^_Gm.o6ynIF>ƽB\*=4\ai +2<)"^-k^<)"^-k^8]*fYJ=uKB3z o_UcXXiZ\3iZxl2ާ JimaDAګ0]*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆?筟o.*[ϪSz߆걖IY[-P>POaZ`UQ o_UsroQ`teAGG o_U`UP9'7G\?t`UQ o_UsroQ`uf#ӭg1Ʊ)c ⴾm>iտ[Ϫ**}G~o>m> i[*[Ϫ~}Vm>iտ[Ϫ**}G~o>m> i[*[Ϫ~}Vm>iտ[Ϫ**}G~o>m> i[*[Ϫ~}Vm>iտ[Ϫ**}G~o>m> i[*[Ϫ~}Vm>iտ[Ϫ**}G~o>m> i[*[Ϫ~}Vm>iտ[Ϫ**}G~o>m> i[*[Ϫ~}Vm>iտ[Ϫ**}G~o>m> i[*[Ϫ~}Vm>iտ[Ϫ**}G~o>m> i[*[Ϫ~}Vm>iտ[Ϫ**}G~o>m> i[*[Ϫ~}Vm>iտ[Ϫ*)'xj1?. cWԚY?7nQ_)|kwkck[A|V`A80<SM|eeuggak{ q 1@28 9=}Mt/$z U2bU}(OK C-'G$z UE<@GaQ C-'Qy'ҏ$2bTGaT^I>/$z U2bUJ?o^{FxOEҾxv\\ǧ[T9hЂʱ^ZKkg#U8cԲ/<1 $=ҸEps$?STv8Ŀ#P_kO~_*)xYuy-o.C8"y7؞Sl[Z' [EZjZZ1,̩W2  Ȉ#,9+_\:VM9_X x ¦Oxe yxbJoҴ_>(iJ:-H,bo'F&UCD.g}RUksqL#xPH56IS==.Ɛ=yyg^7$71K 6x6 SOM='73hRϡZܸ,Jce#fH]=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?J紟{I}U(z~yC X{I}Q紟]G=?JQgwyPf0q}%>ulȪOFSkoRM'ZH(nڂ3.<;]XXMbFlPc*AF5鳙h!'{7$95'w4o}8svQ0$/֡]A=O"ս,B2g=jlYxS4)a]}֓$4 L LZTӕy5m m&U̧ۖ\瑎+RDcU.\>REPEPEPEPEPEPE!?7Ɵ]EI] QEcxCqybol^=q[5OOkZKGzEd&n.ugk 7ە =5It )>Ec$#U϶˟ e%BOZc<?{vOZI kц28ya~n\Y Dc@PxN;ž)t3 P@fj@1Rҹs<q8<}\dr4vI+  Sx;SPΝsqkE Dg V_,( V_,(9NOE'tռ/L#u?|'kdgf1s$sZ?ؾjؾj?j$X=i|)B՗ ? ?Gj/?ZgaG/?Zga@?hݪؾjؾj\ݣ ڧOYQOYPo^y'xG[~ xvz5u[ /RR`cpo w!k?<9bJ4އ=//?Zga@ڦxO,yڎԁWA&tDivJ Xbi#'Kg#&E~XAdуկ˟jgߎtGbפA.i-dVw$-2kCDo~&ԣ}ݎ=֕\1ӥxEQ$\cs4}\.O&˟[HZ9Nd|0tebH2@㊱u>suȻ.fBRB l\.O&,QU.O&˟ U˟rh_rhl?ܹy?EWl?ܹy?>.O&,QU.O&˟ U˟rh_rhl?ܹy?EWl?ܹy?>.O&,QU.O&˟ U˟rhUo $ s4bs4}\:MyŐmGw_P3U '/} KXmp[X}sM N]6OevHK.F1Y_i'w4o}8svQ0$u=>-?PK"/6P8(>Swlnź bH17)v-Nl8%m;]烎s\ݞkZjY[߬$q&!YR$RAI*ߊm%3Iew=ȱ%Q<(]1_([|55='OMZϴifi2ae &֛uyAo@y6+ϴOgG햕i>" 웙22!Vu@m^_j:-Pr6P)vgr1w+m֟=q~mujھ6-oon^=f `nVcezb/?GdQˏc[?ڡXJs7>яlggɌY!ujψ|R,l<[1jVYk_z,zb=k⁧(PuXGޡ w+zakg:$MlTvwc}wÞ94=VRХ-MpHD崛c2,J=-oZΊt[x΃ΊLVI,ڈ7;|!A#*s;VZzēC4IJ |.9;p=k|h<)z{WFH.-YUH;}jk_ lnOyx\ZIޯKIR*IqMm;],)*U`H#iF:Es])\Nۤv85g}mKydUO;ޏ;ސydUO;ޏ;ހ-QU!N:ik9{@` ӵrѯEl^~Meu0!ӾjuAeWtFY+o0S)P>; /|)'W±j&-FY7nҼ8 C%ަ4{CĶY>_HmeSsa7E}`^)`Ɏ)b<s֯A_{Uo$iUS_>=y|%fӷwLKФ٬wZY\) 8uխR)dd%grğY:մ . rF.6}(BjY8֤ìjW&푞8`iP/UH3EWD ":Eb (*t--"Is+G#(BXGPzVWu[?Ǫj6s)k!@ܓW,p1SnPmNknjJXe\IO.%N׺U<Ƽ]oCgsgҲmP#G(95 k'JPnċYscpM9f_gEx1 B~oRQXDZߛ/5%rǰ]DZ[ޥIA]57]ޯaxw5Wǖ~ ŊxVŒ\~Iy֭K<Ƽs̟ĸt;K*a ckIk$f6󸪶 tjkYE?k+ty'eid2A*>'Ŷ;uz;rv[tkEǯ B~o^Y~=6,-$6V5%v_5$׳|cZ#֓LdvzuwþA<1S#'0|iټo^=7W^[<Ƽ3KGƋZ槨ճGKTJ6k*ߵ1#85,״ 讵jR[kVqZ9@|XTs1TIEFWk}յ].񱜔,wZZ}P^VԾB~oIV}֭i4Uu>"Դ ud) NyS.)~cmYo=__h}+ųjϪ]j6ᴶɻ8YQ#(niV|X}R|=Q6xՑerl@+d-{ojI۩>B~oGߛׅ|w5xKN]Boont{բƌglڝ~b2yw69MF2ZHN][=__h?Cx[WMV9$:k7e5āQ!7 x_E?<> IV9fkET9?!Ȉ985$OA$Oa<Ƴ|3?iOb}67B!%ڻ @$7`\yDD>g+=:{ןWԴM ÿRִKlڢ@ FVssQ a/onFRRם3ؼƏ!7|gV׾!6 wzKb#tk{J@ܣ2p+־0ǠM$e7זt6N)849 E4ݭ^wJL!7__k~ / Zq^Javc*Z_O<),7VX]X)FTd`fs%WW!7__jJ)ǰƏ!7(=__h9c.Ə!7(=*b?<}JK/4Otj,d%OebıfBhJ1Xm<ƸM[ƋcE9gD0ՙKHE%x}U~&jZj>_}!VrUnDJ5\*g Ei]]OD<Ƹ_RYh:u+*+ɌyVF3\Y|W{hzk6,K$SBZݲ2HwGBQ{/p!7__k{sV<4>=1Ť}&[hD^D 2-N]6'5"-{Wk"2 2ami3<Ə!7&?ky.- %յ n{ Tw`\vc9%i_5OEǠBu +Yyx!hIt,ؙNp~|oɻv= __h⯾&>6ԴO$Vsy=ػ?a2BB0.ΪA?t˛=;NEmQ.E;IK`!%m7!vz7ߛ/5:ŴeӼ=w0>Է2@$!Yde'`7}k[B?hptY5Hݯ hO'0}?|>|0AABQj 'c<Ƽ⾫XHڇ>5Poy7Gjd|x7#?-ϣH:tMU!tk3˷.7Q{zѼƏ!71- b`sҶ_*;B_I#_nwD;0+meG3E- 77د#I BH#8$-^{ߛ/5|U"DSCayme, mv XOm2_k^.lfk;Hu6p_!`8 t7E^o!7__jֳ<`٦} L3HM鳪U1&j.gܭm 8yE+Z__jvoܥl $O _Q^ u/_ȱ @a3@A$`Fc#<Ƥ,{ __h9c.Ə!7(=__h9c.Ə!7(=__h9c.Ə!7(=__h9c.Ə!7(=__h9c.Ə!7(=__j(!SV}A"B:ƦJ+[ 6 B~o^>&|+x5YD rLdtTpav~z\v:[_h7!V@L6ؤQ f7dr1$ooɣ|Ə!7.~0_^[k~&v6izӤ7 LUcxDFw^Glɴ2[.UdvCʬT%IU%H85lM٥m 8yE+Z__k{&ܽ喋u<7G"̬3 q{Vӓ÷z&.yaOu3,2 ReP@ (f=c__h~_|Ag}{a.."L@yrCV5Urԛ?!7__jJ(`* (yw_SNX7N qK/~G5_m;wtl5[&͡<1y$OUwY9PYpy#x=4w.$䑜o$F<"U]7ymG]?SZ闦m1ٲ $7VҬ5Y@+ H:Q.ivBU U}^K׾.lt݆Vi0\0`@9Sx7IӬʖi໒Eo99/]XT|syW_`Ak.T yK?N־xV}6|#t'1`^PݪO>Nmk.O]BsvZxw֋[Gm_M~;KokƲXn*;ּ_ [i8-srk׼h=̖?ba"6=w}#qlW}r]򮟖߇uM_mwmLx54r3s]%rJ.; (M?x'-eێE4 qlU'P nMk9B3MM] q%tqj+5֊cżvr9R6UTp*mcτuqu>{}Aa1ӯ']``WUEKRw-{dq }ivIn=sjBY)ɀxN^ o!%w !PD+s먣~Ue_r8~2 'Zj2M4fͪ,1n'i D7(?!+_þм+ֲK\qq-Ӹ䑙`d[tS pwR|ƨN*Pk~mڔ'W$@7!(AKZ%|m<υ^oOiЖv+OUUMkQo ]nk S(:]`kU.8OS.t{ ZԮ̢5ڳfX0-5*"z4x&Eg7S.v2*o 7`a Y'ݬqv < ֡s.-mJ yZn q)|/D-%%R5CBȡdf#]rZw{D^'Mh+΍-$~ԙ9NjixMumsGE9²>0, Һ(j[ض?}}KM5žyp1ɄβUQ8U nH=N{Z)n+8>]>Ӭ7: deIfϖTuZFghviCXFgczWh++ zQE0 ( ( ("RFzUdAk8s1p8XRF>(<uZM,M4}, 潲FVB#WۻD('du?hU"mJ u$um+%+:ƲG@`yIu6=9-ܝ*IfygI#3.K|&8~!xT +E) naRE.D}[`}W?粻a՟I;I*靡u7s:i< -opoz,S d I[%nI4O,o,']9#HP^c&5eGxv9>#^,ԖL47DaI`. ;9cvpyvw, vZfo.Bx6Ƅ>wUÏvHln2.Yi&?LT67 5;ZE>eY6q^du!Ko @UdYk/adIes7L8;A^KޞZ~6kSvR7xiQV#ȂfY9j4B 퍥MFF67!b,*@ NMַYr#FmcGy<ĠHP1b`O-]^ ׭t I'ĭkN^ of/3IoisD(䔲T2f H <{}{[/SMz7;bVl6v4I ~xE(ΣtLy3bM$${wVq{8K+di'Vj(88UմSqefS~c~n3=*[k;ǝ-.kYL3bJ6>az[cso,n#ҤS°C1mX ^=K"pXp6𝾞- TlUMZ\@ 0.{<[E+!ܯsksYG<4BU;21H}I|7M+[iD>*nWQZnj?aYx:=/_E#Y$΄ѴKFѲۘ7mʥQEQEQEQEQEQEQEQEQEQEQE Ʀԟc0' E bҙ٭ NXpP g[|)%z4of{5̫ 0F;:)] kmz.K,K$7F N z֮[hL:urCvԷRN%fv䞤tQBVFuaxN}Tϱm-̻t˕ FA^GDP㼷 S WՓGH$1#׵*Z 3B4 hL0oyX,s9,OiE1Q@Ki$E&SGRhc$vWfϲ4HRgt$Ͱg  rx$ZNY4v:tF|-O' O?GL{}4gRuQBұ*g';NE֍ =Yl.#$wˁmc.o 䐶gPvZEnD62y)܎2za~cֵmaѥRYʎ11қkRX]|Y 1W9oK}M}]= s)FvXʌ.V p=EEedo (oڝ-:XټF0`mmc溝8r&ns˚i~?᭩#?i#xZ༈C*.rH?zfJ63KhȮc)0uboeص,W؟FɺUUN.\UL*ͨ/_O*++C>XIH${hظA95\VvNBwAIg֖C ( ("t-RSZKŠ( (((O]-EVŠ( ((((((((((((+'?jhVޑcE+۳~͸ݷ3:WCEs2/xz42=^XObF8zRumJP4M:Omַ6$3WSu*( /+4B-rդ~r֌:^omgmoZEG*o(<f^1#tQƁx-5O`Ċ'U|F} 83ḵZ/imc΄(*!T`=jJ Ii !}n0>򬶆ISMy8 q΅m"ݍ1MĬK_rdgu%E-gkZORr]>ca׎i|*|9imHd؈ Z%pҴK!{m/}|Klt+SӦKLim$2 Ia߸`pWּ< mQI#G5Rc8\«-.(l^Xi#"u][~- 17.4-dzw):_^)gu[*[@%q}׎n+MP6NБK7 )qwݦl;"`JFNqr:Vh vص@XF\:JtR_?~շ߯ޏR񥾗>ݭȸ#=.A&7N q&MmĒT~Co#ˋ"Ať̬!II9 OQO4f͟$g2zn^qZG'˱K܊oCKQMk5԰)((AKQC?i!)((((((((((((IRF (((((((((((ʥʥ (((((((((((RFԟdQE1Q@Znj?KQZnj?KIl6QE1Q@KiHI/~G5J6sz\hl~P,A\0; mt5]U縒b2x;5~oEt1 QZyW%r`pOn2FHmKDI#Um ?C=i@?tZNlc$c5^Z=7V̯nBq#AD,UAE(((((("Ɵ]EI] scO (2<)"^-k^|!,sPZ_i:qLVD\)W(9F8O O\cОi.ʊa?a?di:l'$>ԺWD4GZgT[kbK jnss33jZ拣+6.H軈Q֯\wg?Gg?Z4Qe| g( g+F="1糜Ol 搁J37?g]z|U? N:&ڜ2Eg[Q{,$JxEy2fKo~fg?Gg?Xs|BeF+1Y$ 7,A9YrZgƑ WC}w Y*dydErI<JIۛe*boc g( g+h|Gsh~&V¿a2(eFTLJ>&\|@𕇄K{qQ{u V a:B 3)#iO+[]n۩}X3}X3|in~i2jC ːDV5Y ,x$]ui-}qSE!Xu$T0u1;Ssx Z_K}ZSiE{ ,OTa?Y?ZVt>/Ƽ%4iu9D[f JA56[>? >? k ^6^(n.g؝zT6P dUoeizL5Ѿլ֋ȯ*BVH Or$oX3}X3|II^w{;:)'BYYC*WC -MwKҮx)ޠE$ .yI`տ/«M [w)b%c%K;K[`]N10=I|1>y=&MKNC-ݒ^FfAZDrG$p]~? >? ˟/];B~X~&2 w0JzUGž., ռMK,&$Ao#sSXX3}X3 /wĚD61G#YGõ+dI:Lyl~l"5? >? lŝSVLco{6'|ZHG96G]^ aϠjI3]vxX|v1]Ez_:ª/MXiDU\[%FK$I˩ˑ\o6xc izNvlSTV"PFÖU}QҟpV}X3}X3V/F}NMZ$"/2]DA"H6]Hr0+;[='GޛjJcH@rXHj􆠛cQcU? xAfFcqp%դ71-HJq׊|3>"tҩ(TG}X⛜Ɍc%tKcQcUkxKKOMO-j3t1na9w=EW<} zui6ri=$~k~I9j?a?a?c[|Lww:~7^]{O}-uR\,+x/k8G|/52 fe@`69剥cQcW;|Lޅ.o׶HMQpBl  O?Wat%:Ȑ2O8l rM/i+^WjmX3}X3Oo L|]bo>ٷg|s1j^R-Y,YNnRFA$kg;@H9'j36__՚|[7'PQIʓoڌ!va s)*"ܳcQcV"3? >? Ѣk.Ȍ´h˸r#;33( g( g+F="3? >? Ѣk.Ȍ´h˸r#;33( g( g+F="3? >? Ѣk.Ȍ´h˸r#vӠ`cFdASX3cOMqOVut 񥵭2kfAb0Y(/K.TITr"g?Gg?Z4S g( g+F="3? >? Ѣk.Ȍ´h˸r#;33( g( g+F="3? >? Ѣk.Ȍ´h˸r#;33( g( g+F="3? >? Ѣk.Ȍ b $ϵlUk2#Rudl9_33[% RwϦn$H䕖e v9ܤps]|#?&'37 m?{?i0pK~? >? 2=GL7k}ARW݄aygyg_p]\$G"ÂE]Õvs5#$j3:νxKt}2K׆2HD\'?h7QxM,'eu+1_|RK}Ⱦg?Gg?\ԟ4?A?7|&b41.$w3-?~t՝!ޭ lIYHSG4'$a?a?hGq# !y_OnH~['JF ⳛrr~ {+Bm]eoo&fhKmKY0}8o Śddzǚy rl1޳-;P5ITXZ\(;O\8sែ|#-}}s%۱hбIUs>W_0~_e&%Ѭ<+6%ui$[%vWݐzI$ wZ m.=iv.N\T u4g]ծ/mGI}U(eʒ'${W7s[EֱKkkk*A<`I`Nُ yLz_>G|YѼGA໽BFvmۜt46JK}3͍g'9hjMy3ϙofߓv qQeN-HMq6̫%(Uh8wS턯Z[<7ZL&U;\`2A KY&.`:Hd3ߺ36/:ZUOH(C ( ( ( (/ iٿT=4*Jh(i+a+J!,cv2G8'ҺA% [JA6  <@5P~ xZ@6+3xCN񕅍ŭC%)"eJ1H#G^hOM-YRO|ߍCBԓRK[X2md#ֻ? H`!$H?(F=y~7eue}Q_q4LkQ>p1jNrsɦu/&~/,śl*x y>V~,AK[]#LoGYL;Kep=^sWP[[mo''V'ֺm.{90DQHeN@=kоKеn`'y窀`Q:ƻ cukmIβFĹQÌ=G~ &7.Ѭ4*$Gd9ݐF1JKJoW*YVrF4jɥ;Hl&ub -qF;ջ:G)$U\:egGXV%G+` {t~$e)o|3{c3-,%p 1SeHuō?L'-znu-fͮ*Qo:=I'TM'oNS׷IG.4v~}(ivzD˗%$ ]SߓGYxZ־%&g1h"i BFկ\-n(C+͟v?->.xWΙh7R{}=ΝqX(ؐ0 ]˒9C?[Պʵ(Տ$U`guG(0iz[M.RXeXh^eUG͂9Zg|o?zC4ngծ% aWG9+*ϫPRrMz{JQM鶻wi_zƁu8};XMa^MwIUXl6?J)R“N=_{`jktolޮR|aҾk7w7:6ӪȒǩ\;Pہ`?J[v-*t_~6zn\j hƙgwbuFFDk1(.w0 &[$WL~Ës\;-4}xܣqAj{~ ՇR_t~+j֥}DִVl sVsݷ1W>o ]B4{I4ƵZKu70S/Oc H7Qƚ|zFi\xJo *_m؛oݕV]b%獏| Kj6iծ,5I5[_FDF2w΃p\_@E1\͞ O3M^'kUH<*Bd`{2L)OxA֍ö: w3%/Q|~n3^EW3+aouGD|߁+ҵZ\x3چABvCTH(ǦeoڵL`GHߙ'tT(nMo{ghῈ"U,Ny-K3&$ݶBWq:=挶kxLf={ikkRP0fF6{wn\{OD%ee߇/x>;UWmh1˨btj8&FTNO՛ǼMx%xxd cgFޣv+/4D7>j Q4F;yu_NBG(ʂi㚎՝ޑh^(#P6.xԃEi=io+}ߢxYt̗A4oMf2Hb"v}qp|ou )ul^Nj!- rGQNK͓ʭ/|g~B/|7x<;wuRKGf2ہ_};(~>"}M.ZdfKKlBWˍRr:^E w[~_,ᦗͭcҥhqIrۇ]U>F*Ĝ>9.猼U]Z4+ Mh-)<$ܧk1+Ԩrzpxx_gGХ<2ELV7v2-:D 0ɨ4McK1x{"HRB!\q)'eeYm~KHş Ua[o⨵,lu+49s Mo<;3_m{V6[tт! ^E(__xk-MyrAAٓՂ6;9@fƫӴW~ERQEQEQEQEQEQEQEQEQEQE-EOn.-D~u2ʷb;1xwΑucsdd1_"X+)%u=Sxm>&*4v (Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@UQ0ڭU{/o/jM]XѾ 5nu[3XCix )mṄϘiRH]ɷ<5+?:?/c=kb_)Gb>i* |u-J}cc Y9#1;Ą1 (Ao F}>ῖUcH䜨$/6YC?gvC֯Me HEy!(3Ofi <3mV!>OZ5{cs#m<+k\SAbٮ_oCǚWeGKUf6SnmD6n>\g3u?Aj5WMo)fISw%* @+wm`) ,?ˁҷ4?b޽<[|wS펦{Wɾ~#.M(MŠ(((((((Cvo%t5E!?7(z'x[赭zz'x[赭zȽa^"-EAv =X!i/{HyפuDY.ῖ&Qo-J8 6F6v62 sҼķ!44{zzmDЇ$1'quy~74WouZ9%Rq.#o,dd1^*ii'or{Xm[[_sG{+I-bL.'S[vmcŽr-t= if՛Q]E!tD{UQ@8w|!%վKky6υ`88|6^iiyud׼A|JY<ԲJWj1p iVdoOmi="l~w1 \'ِb1 uzGၤVS^YI# BE;bd@S ZQY6ER^>loV*|cެPEPEPEP{oEXy]J@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ٿ봿1WfƫQEQEQEQEQEQEQEQEQEQEQE_OMqOU&*QEQEQEQEQEQEQEQEQEQEQE^=KU{/o/jEPEP}?A6?V* _QEQE4d2N~['J4K5vȥN='_r^L8,fidI#V̧-(nU>=N->Y$I!S0ɱMsN3/|7h 6MJ-aݚN~ZZoEU Gɖ6B7Gyaw};ceCN7[AR1[.]Z5m.Cf*T$۸Kkns$Hd;b@OX'.$O976~oy=߶j1:sڌ~k}vgh.="YgvR8q͍)+Gif %NQ ssdLSj: Y&l^ZQH<2G#ҷρm/D شo.](\DJ:ю+ȼe?kGkgxmcR+O{f˸m_#›Ib}o@'e|1/;Ny'~lV ILմkOE1Q4IdU߄^45]%a/,Z Rp8BZ䛊678ݕb͟v?-dhQEQEQEW?ZUm7贫QEQEQEQEQEQEQEQEQEQEQEQEQE^=KU{/o/j@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@EXm"PEPEPEPEPEPEPEPEPEPEPEPUٿ봿1WfƠ QEQEWk\SAb )@Q@Q@z~['JH$ 4ē@ɝ)SB1CeE Xg/ٚ'Pу{GOZt^%Y`_%YVwpp@ a_xOPzt61$"# ˒3a5n]\kQF6fX(l$q@j-했.mNCe2(\c qz[Pj(nGXUcr#ф(o0mRI$cm*1ТӥiE° 88''c5"E{$ԙs~zmY/DMubrIN.h[kwgn4ȡ$ P3lvzTR oZOC>Ѥr]qA'R_^N5E/Qlљ~ Eoo#CH1;3@#\G0"JiwH-g܇ ܻO\Q+*̍ gWn'Lu9jrGERD@`J2rNGPkZPe)x2C)X#?鮤^ߴ(F6>_^qM/t1,6eΦ7\F]m!z[Lj4[-'+,@NRwFv8K74YT&PY0$<9>m v[ K+~M< l1uG񿅒Y#m^0;FH#4VvMxWCss"%ʭ3%ĠN3)Nz'x[赭zz'x[赭zED؃4`x ?Ь 7@֟?Y4uԖ^,&*K [ ϟ]'VcG|XvkHVeeP}24mGsoxG BjK{PY 2=B=Oy7~}+;iU+GÕpB})Rx%RM*Ghm}(D?V,ŷMNqyoҜ62OR~{0 BA=cbXô$`>aD?Q?Ь(>a oA=h{} ɢcнq<Љ8>Gh{} ět-R3*94sh{} >MgDU'|h{} >ΉN3N5}+ 2*:zPPsGh_svL(#V>VQ+g!"}K9?УxXVזsgq/eësԴ{C[xG Bh5}+&={C[xG Bh5}+!UK1 2I<@!2AޏcD?Q?Ь(>a oA=h{} ɢcD?Q?ЬY {^I*$*@A |h{} >E=?УxY4Q|h{} >E=?УxY4Q|h{} >E=zx4cX} B-ԟhTo9oA=h{} ɢcD?Q?Ь(>a oA=h{} ɢcD?Q?Ь(>a oA=h{} ɢcD?Q?Ь(>a oA=h{} ɢcD?Q?Ь(>a oA=h{} ɢcD?Q?Ь(>a oA=h{} ɢcнa<Jh&Aa* B-ʥQP5}+&={C[xG Bh5}+&={C[xG Bh5}+&={C[xG Bh5}+&={C[xG Bh5}+&={C[xG Bh5}+&={C[xU지[03F?{)ڨVOt|ÜD?Q?Ь(>a oA=h{} ɢcнa<Jh&Aa* Bb(4i839$ۻ#sIQP5}+ H KO5}+&={AyoհgiuĀ2N?#qe&;dRbm"eE Xg/ٚ'Pу{GOZt^%Y`_%YVwpp@ a_xOPzt61$"# ˒3a5n]\kQF6fX(l$qHd.(k=e!B\tPc8殯tS׆/E Ybt`riӯeE]ijA\YH6+n1ڝx4jBL(Jc=?_7tKy6K{Ѷklb *qzt"#ܳKrʑ;Qw2`9* >Ջ7&H絚X-)3,1r1bǩիO g{GYf>e3H0Y7` $4=ZN}me,FZw[H\'ޯ_ZbndiO+@Iҹejtv)u  WuXMBS$/%-c+ N|b%O .55KaI# ge!F'ۿl9 7uhٮ83'y`L Π Y/-غ1n/iArv (m &{h`i1,b(p 0969ҥ5[mESYZ,"MrqXYMƛ,WVNm-Z' 9bgV o:UΏu^iD$W$CYC-ڪy`$yw~.,๺b[[$lZfrZG!n P)NQy< dP^K+{D&=L.Kr8ך4ynvi=ƻX:Hoou dhV3gٷp8 ^xR]CMnjC愀Gcʜjm?fᤲFYJZ[ˠNr(bNʂ)XN3{-OGYR~F;]2A+~Vqikrԏ F|G\U -JR#cPpY@4_1&A*c&Rd|09|'ҵ{=oQE{S$Pq\w2we}UOOkZOOkZjs6DuG*։ljDVPGsd:~{OKU# "H|¶OoEm_){(gܓ]V2i3Wy>+'sOՏK\]_k}zd(DUEUc'<l/I\\ULMݞMxvfҖ h"1aa23x*p1ZV;jxm!ZEElr[k|YKgKde;>1wR6v< q*^~kw99jxov+nKeU Lry5Otk~g5jd0f'ݴ ڽONMR[n{:i*q^ztoeeI hdX3Um7}tqvJKk*k5}F-ZX4յHXA9#+5.W?7mW ;OÕBeej` +u -#HoX--#2Hpk4Ngh5Xkq (99iJ1{eS[>.UmK:bѕo1P*} WMu"qIddP.SaXǴ2xnK4Vq1\-v<+ٜ ($xG5;E}-rN:s*(_~rbemm;QErEPSž<ǣVxr]&dž|n懞'œXt3BPHdt\V׵KRtT6a/Q'Ճi`<]H9Yi6"S\[O<7z$ PHHC"7(lr23[iկ'{-8r弯g}}-[HZ46lkm۾>lޫ[IRkľHiO`ڦsࡶ|y_FV FGJZKf֎j]^_zvI.:5Ox=F8Ǩ ԭ.|=z.h]u1c 2yyS8U֕UUBž&Ͳ.{ʥsSRپ~~?AZ߅4xQ=fͱo21G!H@|{WC??ғWM;HudE;ٹrrF+-[zTSƱ]_Ҵo hR?Ep*m~ VW,j1vVzuƛ"@s,jj݂q.^h:?4+}CᲰ[>TŎ3OZ9Zwuďk>q`7-.u .-;$iI! vP_֛^:mG^싑%sl* 8$ڼu@=i鯗,RwMz#?:[jkoJ,:tQy~dT1JX,W8oڝ M4z]Bgkwmlޘې g@' j۴c +__s{ 9^_McψG~!턞f qO'$ne@@xVSÞ>0Եgh)Ǥv,0܊ ~\ouFMqg(zx?w șMtF5rm? IrO~"I+mvE??wbxfKu Z`| ni.ǯO񶩦4km(}1*Nc|pqS(]ZդUyJ>)O߂Y-xW"@k4*Uvz'W+[4= +h4m"!̖IrWrHpс:=ɦj v,m.浓đ2v<u:)_C`g8w*P R?lKwD\KO0?Nn.ŗ:n~th FY@T(>i½S׵+Qe{&Q-ɽBqs+ڧ9\z+~;QEB ( ( ("RFox)䷿mRGlXOlb4;?#N(FX'ޔz15'>+,fѴҭ+iؖB6\!f`H/^Ϳk[KYegvfHa "sh8k6_0n!m^^,#dϤn-̒y a80گĿ Gei4<$LF@irDrmVA`=h9qϭ [_`osĵx_\x9Ἱ  4DJ4HH?!+t_[7>h-Ť/a#B@8]qO^QgtK| Uos-sy~a7.3j mdAI&`GȄDLjWj*>]Z֒Vݑ28HDc3E{`qڗgZ-~s-t<쯏5 Azl+QdQb]Ee !U:N[KY69oi,$q0ܠ]t: S{ =hy.GS̊Gѯn-+,2-lV˽Rfu"vWn1v|S\G"Zߥ+8slIrp{ZL8t+57tz^A_,_.D]<{i$2ZvP=4P"úM7 cҏ_>_hdQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@W<zOՊI+5GɼCmះRVu`Ώt>LNi인'Y+F⏋-?1kz"zoH_TPT6s8i]^ 7 xV-gKī|--29une`|:*Jm|űڞ8u [U[\<X:Vmn݀t0FA-/r{WFs?ϼB|E&_ xU힗&iryn,. Tčዃ^k05U#(e*zR+ߏc>yM6;t[E mآf3(%pOP`UK{Q@KiId?#q(@+͡o]FCĈϽtRRpq ; YrDȎ*  n9+?^rZTkk0hYYQִdžg5(3LV$%P,ĒOӊr-SO{%akIFw#nscEڍ[:%4f# PA $8* ^\\jk h6B&,A*^Z\ ".Ԭy_-]e ؏L 4V\dP*H,O 0?2=W#4u! K#p=:kQ.$C\ #0,C7P8~ wPi]U 1҇H -[%K4Kn9pӽ1|MY[bE #p_aCݰ{Tv6NzuBXͼ*7Xlwn ws<G|ܟ5Qqq4~j4]pYnQA e׊ ;U^=GeP%O5Z@.k⺹6w,- FMĩE/aKJYeI$]ɒ,yϗ׶{c}I}k+ %ǔW(@lc5o} U6ْS dU gU]&W|.fP0Fsߦ+_O[MDmQ3A79 Y|H\V'(. ;/ii{w:"Zqp#(WrIŐa.EG{`W卖2]7'W''O_ =7VŦGm,m"Ewf*iҽ8M?ORF--#xvC泵V(쌊Sz 9t]^=*ֳK>vc4.L+<(fSX- ЋV~_h~)\Kuf35@s9tQXN[%`*FE7?Z]t? TQQLAEPEPPjZAKI QLAEPEPEPEPEPEPEPEPEPEPEPEPVOtט|Nu/if]KKqz$y<׋/j"wVLG(f ^oGЍKSk)Yƒx6znVw}PqVTʑ4lH$'#:nk^s'mF6u@,aY&YKf`&K00QM+[߇Txx3DZjIJ^YkmJ)Νa܇`TBٷUPP_X\xQ+ N X|$,jQHzlz_C-c3ZM$V"n[[&"kH#J`}1\ֽ|RSevDUaPs/vZ(qhOY]\kZSOxjJ[[,rKoHK1_xM{(6ZY-Q34貭$G %0g5UvFy%~ z?4Z=YKT` p=K(wLU[M4O*=*Io)r̨g Q-Ld>?B_3m*k.f𦢗Z_0$6Ƈ;2IJdǶ6U/mfh#iC-`y"ٔ1^E;jk72^-Gh~&>N-Kg12gewVeX+_|S?.!kFUfYW[u@LvPX1ڦuO|Lc_O`Z{,,I[{S?捪g8Qk6n&eƇBd[Yu7%FL\sVPjS_4O]5|>[̈gvz~QEQEEk05U-Ek05U-%QEQEQEQEQEQEQEQEQEQEQE]B5-EoGЍ.%)(ǢJ1;`(2$`AIjxw~*[k1I#`ǯLsZZ1jkxYT# 2N8}Iqxr=us\D2L7Mh5ެD=-lIqE zt^pUbϘr9 IӼ]:j'DQ:\Dce`A<ל-AtTQE$_+z/ iٿTEPG?C?EkG?C?Ek9*V i\SAfV *%?6j%?6j!acVwxWw̻~z Heo|@S̷[m~Y+n9evс\Z׍;813=jב_4 No|^kR間\/K$8L֖oWE }/ Kdn$9p;g,=G/{JJ#nz~Q^mOOZ֟-3\X[C2,+/6~oT?w;1I%P.@T%$u-icM//Bhu֓jRݪ%+w88^ãŦ6k0@o;LTFxMnS/ ݮjmq$zJwFc$llt<{{J7NN,tdE7?Z]t? ThQE1Q@Q@C?j(O]-$6QE1Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@[?#RVOtԴaESQEQEQEQEQEQEQEQEQEQEx\Tx\TaESQEQEQEQEQEQEQEQEQEQETVOtԵ]B4( (+_j+_i-Š( ( ? 7!e+ym䲓xV4nxgppvJh?~ u]2ma }?O3M(o`QCSloIu]Q]RHlf!S6?Z]Y$aAs1^H8W;ɾ㺗Iv<ƿ =o K ]Fl/ol*r qw?lu{k}H,n.-9Pvu#z]T}F5t-6#">u[G'{[h>572Ŧ|ZR$E n?r[O|1i<vk)|)FwcQ aiJ[ SN`jZV?LJu M a$y^{Y36'ya 6o<[*GEsqg#5Q~_;;_yoēiy-khPXC4ea<`^?|W_i$GkeSQ'Ѫodsm;+E;Ixfe*g? iWz}E|c38o/^$ݸ ~c(ϋzI-l6觫G| sC 3m&eYY<ϷJ &MӧɝV!1,,r3خ>/'?礟 [{݋.Km^NagqGLPg(Ka{sO ^kXӝ;VeC2clX`8f/礟 ?~c(ܻJ?xn/KGl47vR= ${w iS<[ẻ%|91v /O礟 ?~c(~odr4 G:Fqwf 08: ٫I?1g=$T+5KYsZqcZ|ґ}=礟 jU礟 ?~c)h#(QW~c(ϋzID9BG|_O!̸O]-X.y>Y@>?|_O%Y#(QW~c(ϋzIE_ϋzI>/'?me *|_OI?1{h#(QW~c(ϋzID9BG|_O!U礟 ?~c(FPg=$QGr2>/'?礟 =C(I?1g=$QE_ϋzI>/'?me *|_OI?1{h#(QW~c(ϋzID9BG|_O!̻'?jZic[/'=*礟 Jr2>/'?礟 ~!U礟 ?~c(FPg=$QGr2>/'?礟 =C(I?1g=$QE_ϋzI>/'?me *|_OI?1{h#(QW~c(ϋzID9BG|_O!U礟 ?~c(FPg=$QGr3./'?礟 =C(I?1g=$QE_ϋzI>/'?me *|_OI?1{h#(QW~c(ϋzID9BG|_O!]B5PZXKA;;J^\9^G|_O?me *|_OI?1{h#2ʥV1nDzj>/'?’E_ϋzI>/'?Ÿr2>/'?礟 =Cw?m*IbyQ$dX)l('diMoҦl3cmǩ-<TVsI$k 7sH#ͬ|" Sʹm`b! tB$.zTWEp֚5\n!/,z)<ҽZ^|lMJk0n32<ֵH`]?\{_֦?WOs7xAgO$N{"OpKi#DKunH3m|B+;/W!m25f8FM2M~hkjmo5qڸ[oE}@bdυ5i:58og6Enq%@PWQU,\XŠ(S(((((H1fRWC\_+( ȇׅZ׬ ȇׅZנ :SՓmq5 XW~<լ KB\ػf2X+,kpV-F.kWYFs[!f!8xgO O\cО8xz}'GK2k=ZRJ, 4rBn F89Ėcyor.dx"W|GsRWp\ҷ/j(Wujx-㾋Mi2 )n݌l^/7MfӵSGlf6(<p>T$}s8ϙk?qzğ}oSծɯ)I[ iPf/;^K;I^:w-5 FokՑKۻim'?ڀH6@m/Mw 2.9y#;xܯ4MB?;u[#{c=U5hư h<1]!)`m~ikO [kվmT"Ӭ\ 泋E߉mVz[;Ӭ45n׺|kp[s+7'8u |,>E {scilqXjW]Zio XbN~ 鏇h|{d.Hwc9sYtS*GnQ\@QE^>lo^qO5m7Gu(׵K)mB'O/y'cG?[;/7:ޗcsnVeowq \P=OcLg*RTMvR|BXO RƮ;m$q&PcnSֳo@׉/4 V-6\ei"lE OLgԿ1떝4g]ѭ/4Kym \ȎBew!RA> T!׈5 ^]kv4!R5 t9r@dYɹ|7Z1M|=lO~_+2,S#^3to ?o n]F4YPIbr=V/~.x/7go˧M5Ж/2P,` /q aִ?D(u lѨUE'Q.,zZ?ZwQcsQy 24w>BMfg$0'q[}u}mNei}kݜ.w⛖Ѧo<岸Y3=sJ񕖻kyn>g5fyĻSTFX=יvKm?|7f)YpYX#-GePPѓP%O[\#F|x_SO>$:q.A9; okׯ{_t?ޫk:k`o6k1!̉RF#mc !!ui& B(..b4O,w:Ϳgv59oNuh^.58cf@G6ۉLi ֓_<'k}5,/uGN& `jP |w?MzxM߂|M[[4/cѺ:@!:דZc4 V=6l-ɸ-9r2 2X{b4T҄M>m8y,V~AG->xozƽR6%QFPpR󑃶^~ov/1m5TOJ qpZy;J!©S) v'Goj7^յ}Dxt+D|FH?* +Z6c%ԷVZdC梤kn deQѓ_ʏ>նחZ%l@EG@IXDvȄ8uo?>_ogGcF7- @XI(!$VE 2# Kw"Pmt{Xf lrqw$V> gvdjRʳ]\kHb0BFsyMx!ˋ˭OZoYk-ۈad+Z"Y qg✭wKmwkK񝖳m]iv=\iClfMVF)w:k^V;{+6M2+˗bI3ȇ##Pj?3}w|d$iZW'UQ9 01VlV/.Ǟ-؉ǀ0&z~AK_^|ahW:.ɫCm~I)o&9ٷu[IԴXt]PrIk?</*ȭr kx9n~!Ljuxn#6Q(h#@33f*q0r ʟw:2ڵ-FRԕ,I]g g%k_ǥWkڭƥ Jݛ9L+r1 shW/m;Uյ7Z^f;f[F$bYxHslhZ}Γ;Kԧ,[HA'GO??^FV;] "/mh6{&ss& $&/pj6e̶[%_'z*JvG&c+kUӠ4;*Hoax 0V8#i3kS][cF#FN޸? wr\x*ͬ,w] |(0ņ`  x}!DwA)vN#olF=sz_/}Ư iWZ6vqX_ Op(^PUZ2'/~&;Dw#:*˕%N2 5: B{KhZOlaєdp) F+44} :mJRxABI'3Gu94?N_O}߂:4ƍot{s*Q$p3.Gq87_ u[ b !Wro1q+/!򰲒J`kе=n7$jsLRH1RAddk t=rQQ-=R 5RI-eHV'v Wz~zi'}Gyn]Rht-u |-w2HwZYh]=-5[?ni$o1G\ֽ6@j`JȬ9KmiڽZ^Jw$%brǖKz3mw_/kg]N]M!49'Ƥgiϴ0O) ]ˉo k)Q9k>;ֿQNqh^hWs^Uio?iV*|aҬPEPEPEPEPEPEPEPEPEPEPEPEPEP{/o/jUٿ봿1QEQEQEQEQEQEQEQEQEQEQEcYYZM B9iwuud41m{;ٞEڤi/0eDLq&{]2Zq5(Lwւ Y0pASPAAC|; 3JdI1wi$r33$ 8?swU ^K.f $Xd`ADL K}-hRQf,X 2F al;ÇIȶydyFeN\Fx#o@𭮉w+o%\^K5DřZ WZfe+m#_HLk8W@NrI%k_?߫Loe`C_BM_jMdVOr12 bd8bynf}4ݰnݱF[ׁ'OOu $(r̾HY`)-<tOmͷL'dKcvY;NT^FY!խđڇȎFBa`{|R𵆼+kEm۵fPƇ ؓ82kJ_tIٴ0[dZ,#/ncO~𽎗 ڙ<@=v'B.sNn_bmZjUghVX!(>f&i\`xJt*WK0H+ xBMSQLi5X9o'xYd#lE#2FYT݃hw3h2K-wF##yʻ800ie_,A:}#ϳh8e4\ Z|XЯ|Aip:MQP76?7 4J@Sˌd#^OfK[o'PB^^ĜHm-Ӟ$X偆#J')to2I_KԭtY,KxO(bbi խSxt뵍#f%([Db)A,27` Хu;taK{`l,ry< 0 >m-.pʔFFr"MΠ1sMǡ oo"z kkx{8|`_Gbe5|[|Egkhq~L[f !-acDŽ]vJ_Dbcnܕ?Jf? {b%dYfa>b1h./_[Z_sO4E-Υ݆m5kAȂA.0 4 ~\66Iqq B#]2m88|i[Úg:-! oF1}{8=@#|-h kCrDzI!DP"MAP@;oZ tJھi{}ZK=*]N;i6Th?2&!a x_xWG9u_Q:j$Ȓ8q$qCF2ShEjks ^Izaڈ(c@p 2s6C a P$yIfrYvPK._h~5"NgsG#*)!e8ǹL^#kbu8m'uv]"5֟q9+G2\.0S(^+46aw`@8$g#ֶ&;tW~-d;p14M';i&Gv0Urw1c[]xR,6 \' 8_\/lQB#Ś&]Odj-\.~b'*r:Cԯjz([Y%gľePm``];si_^f mx,B$ ug6 WRjvV[l RG*:}~SQEQEQEQEQE$_+z/ iٿTEPG?C?Ek=&>}@(m&Ms] R^hWj"{G@WO O\cОUt? /MkUҭ|Q zŃDG FS=;sBܿ^N+Y㺒8vsQ2NL-e3@ {$a`(R9b7xOD oa+ǝfWO.OZ>Ӎ߽nsVzztRZG b}T̍V ;Svj񯈭|iv'HZ|?ú'-5]]٤,ȹʼ g4XxP̺^ T "- )°a@ۈ94%(=Z|4({ k7%2i>1%UُIsҵ_kx[LhێtO8ݎp%S/u]nKfKxa?v;Gqs\QokK;z+Gt4V^ijWSBq+aQUwcWA&E.&d&9LJT.5#-Eqc~4SLF엗*]%wHU4_&vCohXv#y^¥o?/k wtVK?MQҢ*Bo6~76yY[).e^>loV*|cެTQEQEQEW?ZUm7贫QEQEQEQEQEQEQEQEQEQEQEQEQE^=KU{/o/j@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@EXm"PEPEPEPEPEPEPEPEPEPEPEPUٿ봿1WfƠ QEQEWk\SAb )@Q@Q@z~['JW5_rOBiV wÕK\z 's@ޡ)+}ϩ6mqz)V>M^d #+y>/DWY͔ 9#94ۢ6nXt'Aޅ_9 i~3i2 ^s]t*god2K.lpWeE w8c۫&9? 6 ͺzn4fE`5x{M}*GH#83+bOw ( ( ( ( (/ iٿT=4*Jh(#œx Doֵ <7a si HX ~οh~Z1%(HJRRw-izo.got5G,l`cwR F7U9__jð{y>%j+خeKD`v|=rkqOͪbj—>0>inPY&TY28#XW>!tM:饼қmB=+ԴO=7RI/K[u+) m\3tkOy`omo ,F0`mmÌdwN}Mny^}yMoeXE$]5 $ga}3QZD߇ d^O#k5cm +߃Uԭd t)Ce :i0ҴRč9.@"! "W#vvjx\EjQ+vkTѫ[تXj3kgӥnwV4?i>"]JeOMe96ld:ş#w V?AZ߆ޥKk=ͲWSa,$s8mz+=Z_=O𷉴V@[KUnb1HC!]4˽NMm' hVxܞb9GJ^%?¯ j~ޭ{[6kHD7G"e0Xzr+ǟ#:^u+N ndy.6'3N);\SL ԵK3{:[?:fqG'nW_^/KZ:Lد<@MhPcʯ<z|~"Ei.MhChUXncqwi?/)+&ןK>fc*(<}Hm-zguY-Fo8v\[HJo ˼ <|,d; xѮ5;["}$Cn&uM)f!Sm]6q+_T4P\3Qeə>o22 x@_tO|E<%_٧Ey)n;csWŸ^'+qPI e 0*G8'$Tz]GϢ 4&RYHi14UA'j(,'Sx'8 _\q*% Ѯr}kĭ;Ivڍ:%$q{KP ~a$ꥂ3-"֮|KI'2pijm4$ZnѺɗߖ"!U9RJ//wI[o}mlXä* :ԵWzG>;:lOԄ3$ *>@WҼI SQ@Zڌ)RHlUs.f+v_y/ez*n[2jp쌻[`B7^# _uRKèCcpʨ꥗Tb%;t_P:o%M][6#4`ZhHףE|o7V&Z4I8tGĹ1u^-W-G֝;/D-_N=Nɭ#{%#0ªmR~bFi6o;~-_KV'ozvhnBwm*ʡЕeʒ2 bW_|ae=TV),u&y<#o-J~m9? 4[*KVK r+L+QD4nW6 +;/?ͯ'YEU(((IT Rh#lUgO{R[?#\=ǂ"5=r]0f+OR3I6)GR G=kɵ VWe֦ﭧKX% ErvpAnpm+Ph_o|;_xkJ֧ԦAig"Uy Kw"$B" $$\q_K|'MMզ^[ڑG:<&rawo?4$oH8^McT=h׶v]<D>rAtq<# uqMp"[.oc4 #1H n' ݯ?~`ՓgUX +Qg5[}m5=#Yn$גhgGy%M G*φ5]'\:^>y>tB=,[;"y'#V@\m[jqIoP z挍r29"3]e}Im%֭y>a<ْ$T2w3r㈾$xvmw֗im"PHN%o%H+–t?=zN:bdMaLׂ|?e߇.AiB{K!W̒H1Cѻ;Y1wR%r[{YV(ʩ|`0(p׷,kH<z 2#ڼWJ-&ƛ~F[EE*74rF%JfhF#k<B4]{OY{(n)eűeN3& _/P} K73?ȥĒ[&%Q\g bg2G;Y/uO .syoLr o'Y*orCe;R:1;dih-.ͥĐm sᶞ85nqំu*Y 07'!.B(_.[ES$((((((((((*1=ǍMPD kT4ch74-'Yѵxuhy*)eH>wqԊ+)> MX#]2!<6 .rȭݍg|6]>]QVL>oR/dBX76v1_7KK?>' x 6^ͧA$.u(;1;yz"M ᾛTh ) P D4-b ׵&u,vE,8г`V5 RK&կ^DvHF 1|j:5͵[w$I<5 Oh~˭7O0Z AHhwI# cEeY]]Ǟvs{<lMu!tŠdc .@RN5o4+]gGKC27ppA @"E_ o4ZCf`2o(8wRWwᾇh"^_n$yIe TH ㊾_1=QE֔'?#q8l:ͳhl_Ai6N$Qm4>j(]60zWU_3x'ޡ/!Bk7 4JX1 #9y}αl+x,5瑙R3e_6=Ů}a!l?b~1fؔu9BI9j~7H̚fRN%#8ggk/gic j6MG*J@F9iZ=.W$V 'YWc  PWݢ(((((("Ɵ]EI] scO (1"hNu%I#R'٬/@mxvظsj#8Fy$iFosӿ i\SAu7xCHi\ֺ 7@֟?Vkls7F6дM>m ާM]_j_jwV_WK[n.پӋiwcףG㤺'll o#Iy3/$\N1T߈CW8^6BYC_Zmm+Pku>CM$erJ zW_yW{~63[w_u?%,gvnuX : 6}8#8~/[뵒kB:#88\W2q_ v Rkg ` /gTO[dPEPEPEPEPEPEPVOtmߊ1.[IHѦFex$QF5oGЍpy 3¾NvrxnF*vǑ(ry)GBMu'ݝ޿A>[խ$pAzwb[Ś" LеC'~G|7ypq|4lsbjZN]kP"5FHB܉Ss|c'>"tjSQ&;%"Fol܀ t=?$gQoi1Ǥ0K5[F$%$AjYG}lhlZEf(%1a+)5s?^,m汸MV{K4ծdYfo9գa*Jla>%cg1Zk72XQnmIy ~4m/SIm^h!'7+ko=S$r$vᶆe@XmߙvlZ}o{i6Lw H8a~j KVut+aK D,2ʄoڬ9O |>&UK]]tE0wYvfClX?s!& =Q/m.-UWmN[ 89w<=i3jF_Kskp1) |3Xu]G׭|WӉGӵG{ҁW,ad"v7׊.op]VVHح 䄾eG*vuJI6{e^jWug=嚣mB BT0냊ڍAl b3,; ['F~!j/tk(ɼI"i\fεEV6ʩufMͼ@Ccv }RKqi]iZͅƞ]V #@eÅ$ʰ纑ԃXLQN~!C\]尼gkO^#է ";ek+Fy`TbZ"ɉF +w,o<}'O[Aksyhg?3ʬw('ҋm]Iѵ}{CwZaA+i- )?@Ojoykv-Sy =y>k!}y2ņMD kbZ6\u8L/A|JGp:G#٠8Fƭ 0ö20'6&V4'ś4.N.G=9n>{խ7kο?7ؾ\m]ni~vUrQ@Q@Znj?KQZnj?KIl6QE1Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@EoGЍKQ[?#Khb ("**l(b (2C7ȟwnLn}Maw>;/38#Y,Ko򩴫l$w2$Gn$j|L"KG"GYOpz}ŧ鶐Z6(g<MyNO'YE&a%ȳ*څ/F  }9u cl *]81wI;&~?X]M#$`X&y c'ΰ|7:&gVuy.,m+o }Kyݟ| Qxzk`v+cQ6a98ʲI>J+ȭMis Mqe[r [`ܠ {dFEj^9u $ǚ14!cy,cT!b"}EW)QEQEQEQEQE$_+z/ iٿTEPG?C?EkG?C?Ek9*V i\SAfV *%?6j%?6ZߊMToWkYK`qE>NKBg"R7dH'ڻ7ᙼZ 5"r PE gZ-<3/KNA#-crv*Rwt{<3|o∎^ItRu>vWj)FGViuggKOR=b̋iP;#RJ)]Gj gmCkĪx~k~EQ,{_`Ggu5+G{t]9OG%=̓rI Z3F#\}ri!Y% OLއB%6DC I$uǽ=YK('>#EF'#7 #$76sov֦yy?ZlqnOIUCwWf}A}gojmTa2#J>g'-'H[ [@ Ln  p:MW_[8\DǗC.28*$|g9B{X[xm(Go=*Lx5]u V["I#qe#'# -iWZi\)X 3p3Oqh0=.s}hŠ((((((Cvo%t5E!?7(z'x[赭zdMKmY?LKtV69*V i\SAf *%?6j%?6LJ4M[֔lKs`Vn g8pݏEs—fWv7gw_Z¨J9|򊐠cdL ۰2{Lq GG<.o;_^S"ᱢ0)&X>o >W;煮5O @#ҬٱS_0̀q9i ij剺zvwJߧ)!Eo%iWMMDyap@lî*܋ZMԒ="&N9e cRz=}@ 8Xn[bV'^zxwwY}7X@[l&{w ny0*I'&SSKkhN s^@=FhJV\ytJE{}pW(>c=r{n%6$+ ͹Kr{ `g8Җ)J<=5Y۾*6Bɭkbijdvr#V0.OQҽN{R5{Isz~ ȬE7?Z]t? ThQE1Q@Q@C?j(O]-$6QE1Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@[?#RVOtԴaESQEQEQEQEQEQEQEQEQEQEx\Tx\TaESQEQEQEQEQEQEQEQEQEQETVOtԵ]B4( (+_j+_i-Š( ( ?-$ևVC\]ٴ6ǥyk.KoN{Xٕ+<bHl''W/GӮ"Rx#x|mV\?FB'p"}.z%W6T:$ ߓg8=iϊkZi+b(2d =8$x4.ז|%K: =̋Op> [ :t6GTE, up^7%mƫR6!7 NpFrx\xo.Wkq,Zys?DJ2 6Hc&{O-:Zڲ\4qA3gAGk.gzb'_3W9X3ҘQEQEQEQEQE$_+z/ iٿTEP=)_>H}&њ'PŸ) A] dxSD=-Zֽ9;ĕ"I2Md}*<1f\-KiwDŽ4CP[(iYAfg`I$֐I<?UtYQm\lV:MZ~֖-#e/8vT@L]bZ'"<#Epnl4-q~''`Ac׌-◈uOlQI 8adE;y_<#EgxG|~!Μ{&P )c84Mv E]:kRR[]*=FaW1$3Z<徺}3X_^}(<?WzK[oK" 7w g-ݿYJ*rAdxt:ZOkZxm.LG ,RAnotǽ(<?Wb2zmn[ZmQ1ZƄnrs]x[]}\bd6 e9G?#Տ<#EGs6路(־ ӼCms}u"yu]'LL*qe*d|N1z_jΛWdgxG|>Oㆸyi+cͅ..Y%~G,S%yݎ*>t3NZe5H[t쌭+o8$/ Eg_Uܝ}{"<#Ex >)xLu-:-=^[?c e33@ECɨj߉,ֵˍ+J:[۴^"CA`*2:K-z~;+돤~ӎUziߡgxG|> ƿV3մۛ3mƝwp8pc]I4gClu}amu=U04jAvf% (Q5tsPjm|{m6z aQq%X<?Tvy]JOi;}oTQuW;pEfڛٮ/noC}+7/c3i֪}XƗxdaL nS:OOj(abLfK@I`,ˆMk{]?if{"<#E|}f$Xh.cchxcUvW^kf*Au>7f7Qü~w* co2E8ǚKg}(<?W||>gfNe˨$6>NGp.ďѝj0"p|1bu֥<0I$}`#m4+w{"<#E`x 2oxP# nm䷍9 d$OZ]+ x~)tOEG fey7u~m*K`>Kdm'D2o><?Qx?ȯ; ^wȴC5K&idG^D*) H* ťmX4S5q#1.w#dɼ,_z~)}x?ȣ_8l#i^ {P~"[fD D>ܖP#^|Q_ĺkvvđ+^Z069<ܵ8N=;~b}U_<#EgxG|o?4{tm3^k˻T, x2w g~Ѡ}ֳzmSm 0 OBdNݭ ]Z72^ϡ~}+|oG=?v{,[Bbās^IΘtCKV/k)[in"iB; lXmToz~62I_'?ϳ<#EgxG|I+NmjFk)-H@CIJ7!.G>=g^3V>6߈==WG"XoD5Mönuu4 GarI,'T_8gik&5?zRk ܾܰ*Up2k[@\<?Qx?ȯ&#ơ5o>s%O$Y,dA]dz׉<]KHZK+NH $ w.;;_/o"<#Ey%_?VB.d !Ԗ1CHCn`%*C6@1_|]}.5)4G}F}9I#Vtd1m~BQ`vz"<#EyKMO@TӴ?+}KV[wf{< T;%ض{m|[=XSR m/_s ݉B]_Wz"<#EyhMbznw:̓]@)Esqmݙh#?nQ<mQ^ybKBxFO%6DX<#EgxG|MG⟊fKt+ea nR{bQY6@Ͱu.yx\چ~ '4| 1~jרڳ;<#EgxG|C?ȑ麩UM9P[͊dDg_ǺOqء:qngE"?7ct*mg!W/]=wG"j⧍!V G5e $D)S) 1 ]Rnm"6 . D7ʢ4n8W8;厗v՛];<#EgxG|3έ}gᩥҬ"P7FgQ YOrȑm'`pX mlYz? %=,6<lVfTg<14կ<#EgxG|i.&qstinEOLO۷;jmsoygݤ\[΂H剃H;mXD@tbaJAV>L]/ -ඞj$-tasFFI3\-Aoχ:U[D ȣ߻{`Е}ǣ}(<?TR?<#EgxG|G"#<?Qx?ȩ(}*J(?<#EgxG|G"#<?Qx?ȩ(}*J(?<#EgxG|G"#<?U{( 6L1GڮUKbE|ɿ6'epZ(<?W͟y3HjުZ2Im9;R?28_%Q\1D<oxqt]GMnt Y$h`[$ L,'Cu[VW(F8uR0 (`6۹$m}FhAҭ2LHI*=X<?WigOo4n$0b#A\fMwsi.&H{,Dv(ho!%w~%[-g(<?W 'W %Oe.t.&dimQbl'*@mlqw]B?<#EgxG|@djQUI֫UW?-ܓP- I"J8`x G8eTQf8{zZHa5gŖHT!H5z{J/Vvג\y :8H4./?|\{R2#۴o !v *W\A|ֺ pmcĞN 9]<ù`g8R`g8ÝoQO&P׾n>D Nhr gn*uͤ߱5B SHZAHRdu`rYi k p3rI%yjӦi[* W vqԓ]W/&鮞HfEVe#!@GU#b(((((Cvo%t5E!?7(z'x[赭zL|3F3m&jv( ةу| -|77JN_elk?Ig4c+Ǜq;je>3Ņg;)M\\J K0lL9>֡Oᾟ}%+%_vl5 o4N( GG%Ab1}kG'Kͳ}_'gvcxOi:EޑiaZ5ҁ{~d>Z.e Ēá'74ֶ[%nvwޮAYh䈧Y׎|-OKiu*7RD,(ʼF0_fsize޾<3%伊CD{ 28thej+$!{_:W>^A.q3\}ɏyk֛k/Գl ;Gq:TG svQߪ=m-Zkޅ{+YE t `1[<ٛ -jISKXdݙP,G]o^>oeZf(KR%rAU}ARm겝>p7|#ۨ^>"}?Η?wt]EqJVK:"S.| {Y5[~=.ӡyW`0r6 WAEHN7Wsv|gmyoiA]qЪι~a~kOF4/i5jX!Bǩ!@sZ4Qq¬5JwIi -˩o Ē7Kq 쮧 $ذ&;ݮ>o?iV*8;?/M߆te4n5x'r$Iv'Cյ Sº-.'G 2ɕS=+r_GW}F 6en QX_x5uz$'kce@BH9ݢ#K?9oe|#iϩ)K#p9Y6O=MR_ EG_]>YҨ*Wn Gz/EOKhFՒ8_ hҶjLQ}/1ֶ YmZcknU*ΡIP" ZMZRO }mllk8̑ېA[ F آ9n;=MM6.Q ry8K.eΡ"K5 NTFbe m@tl#e4k{um7lkWcW8=jtSQqkDp5h$E `n9<w9S/!ּjShᙣݩe8^O9>>Scٴ^bc Ww˵qGt4P=7qgOX5yOVPIJ6$'&t'JдtMl-Z°$2I<((((({7vF5% Xۤ4'#vǫ1,}=lٿ봿1˾)>-GøP{׍I7$4$zYH.f,3|#x[L,_McI.ZH!6q ̻K`Y3lsi|eeQ|Q\^)&7.t<l~b/2mEcoBhcu0>`W+*+xODXZ{$1k#6xߑČ@=k|Z׼(kZ.60d(~Fi_ nn_17kywK*i.a-];4/KČe=E\;kOXBUX.T@(xZv<>J4JFl>_݂6=:VsKga.]5 NS3򺜌z4`OKԮjvzxkG[>[8eXmU0b;<Ax/LilLvoٷn.qqҺ*)Ŝd{)H%V&(UHF *=/LtK=KKkRhUGV m"'X -mlYWD2yu2YRʿV*k\SAb ( ( ( ( ( ( ( ( ( ( ( dpFA_fdzicPZ$0EGSC _:U O.jbց`9$K;g(6þmm=MSTK-ET@Gs6iZizm"+[8VvI'(vRNTe+)  C_Zͭݶ.B89\bJВF3WtEX fL^6˲(_EUtQ@Q@z~['JW5_rOBhbx'$U*!;Wt6GTE, uy[h0KKb * `Gzz=֥ ׫}{;k.<g$z~!0=:\{R2#۴o !v *W\A׈m ovs/ɞ}.;t;"(>=7R[i`i w&P$kJH[u[Zҡ:dh)g\dVqtwQH(((((Cvo%t5E!?7(z'x[赭z9ᇇ,A9f,O<N??UڥȽa^"0!iՊ=r,AA }_/.BV bԱ%r|ua\܏ Ums/Mh YM[WDϿ~v c OAZ$MQEQEQEW?[Պs6跫QEQEQE^>o?iV*|aҬPEPEPEPEPEPEPEPEPEPEPEPEPEP{/o/j@=Fj{7vF5X8i@` E`p:ݜ -QZ(ڸ(th L c֖(=GJ(_zZ(zс(((( m"U}?A6?V((((((((((((__bdzicP( (+ )UEX(( W?-ܓS~['J@Q@ZVS_gXsAOZE&<ipJ*5{u60 (= FhJ( ( ( ( ( (/ iٿT=4*Jh($SA0GZ+9(~k_I|;%i͵GkjKEKGzE]Z?*!WO O\cОUt? Y'6N=Bwᡵ21OC8K7{^\uwq.ĝۆvMx_M ZΫ ыoI6d}Ni,4jx^Iwis :×Z $I0) OGEgWxiޜ )@&rbsuLKu} ΚBw:2lͻja= &-AmKj>BC۷*s$Wo_s.Z;LhY]|-]:'ix&r gS9 se;/hMOXYͧ#ˌ]-pkzt;Ě=W H8 1~4I"PFIRhĄ#)xQ|;}GuZUS +T3iQ1k,\*+ppP+jk_:$ږ-uua9k+aH}}O?5Yl^S_a8e_$/9e+9cF֚-mCZ.-.R1_2݀FqҩTä]5oԗ Ͷoe&H4;kشeku]4?+xX>]Ks巈" - uv? kEêmCo \)m]#檚omʼn˸f"3sOr .|7-}[vMOxi;;kyn"Dd&D W]\Dž<J{}KR..6*,Q)jɮk9OcZ*j Or|cެU{EXMB((( y]JUb ( ( ( ( ( ( ( ( ( ( ( ( (+dzicUe]эV(((((((((((( __OMqOU(((((((((((*{7vF5X__b(( m"U}?A6?V(((/Uo$iTdTCSvSZs&+"y}>V ẶYmppFyzRWV|+]_ͤOgꚞGe5Y&R~؍¨9>x[j 6;k!|DABcov6>֓;ҴۦB(+lI44ř؀I?wi_xþ3A\.aFP%#6@$_¶͍:}hKnYunF޽};O̱H pq֫?b> 6BKYdXJcyך@{i ߍOYk 5wB"9!~]@vޖ^wgsL"%ɐǂ[F~QlþحBFq"a[y]hZ%ܵܵ,wkts2)ʫ|@=(Ϸ[zyMxm9*?>?'⭖U,t/e)"H f7*W~ ҼۻţoF>L;5o$q؅In?n?y~J4.mfGŮ&TnYIŒm+VM/E<$F&Uv9GN(n| _OƏOƸ/Zg֣^t1HJ[̨ 5VrèvO_,H#4}H#5Zgsۧ?Gۧ?UǰsNg$GHqOƨ#_JͩamXc .ֱW{u]R<ݒ;##ןA{[.<|\qfJ׼C˥x3j agosq}(d1"BFi8cբ~Imw>V##יVFxShij3j_fn]"e̅AQdu{ Ƶsea4{ϕ|£wp9{jKv}Omg~OƏOƼoMum?3Ef<dI6,y;[;w~ 7VYjnT9߱0A$zӥVWhk}vwKeSBJ/.I{4ާtGj?AZ{^(4oZKWo47˓Y#uuyf0śiCH~א^H/OƏOƼV-+DQ>yoj؅mkeX]VE c\mV|}'a]aKt0L8!sBηGG&o/5KmhFY[YQm} |mȖG[!nc0 qIB`ctGhtGk3N-]&R2H$O:)`'A}~9 -5of;8pp]˗{u+\OƏOƼ⯃—Y^ :;ٮf+rݑ~8JV 慣E]xͱH@0\ 9\f$y^~m##כ#zFy\XŬ(n,apS$ʪ|+yQ{Q vn?n?yZׄ+q-i Ο1ya(YR@J h֕?k%W}bX."9  Bɧfl}H#4}H#5Z~=~?>?E=~?>?E=~?>?E=``$?>?jw:itfR[Y($ʌQ5{jVQy-Γo1YNɻa@ar0Fhpiۧ?Gۧ?\~ݣ(`Unb^x8=sH?>?y;9/"׎]>HZDI iH6p9,|gJyԴmۍ >Oh䅮>i^Q##o Im$&+dϤݭǜcYv&0ebB2yc>#Q0i,<E kIQڲX8C\:OƏOƸk#EKچl?pՏ?>?|cӼoRIQݍĤ=6$*7jUVݯ?Y]îI$xK>x/#F_r_ם3tGhtGk{&R$9dwlJ3-9C` R@5Ɲhr.lT x$U*  {8;4,']:<,jA?ۧ?\ɼ3W\Ki^$.VF"I*+.?5{>$' smme!N O,-wwH#4}H#5 t (`y URKIJ-,Vk{VpLJ 8_ڶz3tGhtGj{8vaxy&v*][i#+h,d8l ӯ`$GEW bz2Ps\IJ.SѾ!Mx[մm.8Y Ae!\ xt>ԯi"d>8 =$oo3V6SX[";'6 qMclk+o)myk=77=NyoR'm1't z(Sp((((((("Ɵ]EI] scO (0< imav6qyV]1Gv¡FI$ɬ|4SI8(R@EqZ1vJմZMḾF UA q*u8s$bcΧiT?Q6$׶neei8^??O?i-k95th-dXTI ={jZsʟ6Wݥ;=ݶ.}vͥ++nfa=#>KVE6pG8THG#5oS4_XؓfJ9z+g~ϨW5 63%($`E}:yӿ(*M+/Ϸb &t^߽ߓ`A"0j|#<|j^"o-d!F<<0*%CMJ1{w7ؠ7+E*s񿈌 4-ƛw-XVWT^xZƴޚK8._:W^A{kqmy#hd ؜֛uk)o|ŔHX ~nOMiuiui4z<:O] ˼0MvŚߎnt-#@7qoobѸBl*'߮_M.3OZ\MP$X͜ n(8eGucI=QE#"t-\O8$!4}:h:,MPNkx*=No, {<(#Tđ0A2A{WQYRܬ~~{j_Cttmzzky>VMCYǍ-d'ԡܢ3ī*ʒȾuYxJ2jdB]icL du>E?G}o M{w}߿Smx?\_hɭYG5䤻XpF >¶~xO%bHl,k Źdܚh9)Ejw{RSKTֿݡ?AZSǺ 0X[Gm?8܆IO]-n_tCk<# \n;sy ezUYq`.~`D^EJoQk+x<%Oc[>.c3$V{qN3X/|//ّqݙF!ăE^KA'd?gB+L:)-m;SO2B0+G I^I5$?3jzGU[ sQxvga?dVמ=JS[;;]?W~Ldc>SVZ 8 MiֆH_ݎNOzݢʶV7wwkͅQLAEPEPEPVOto=tdy BҳƤz\۞+'?k־!ZhZjWMzXtN|A{+)%vU0IOOya<\ eHԝrkQ@qgWE4[ w]7QծF $U,3eB[#Mo[Z= B*3"D 22FmĶ}H-4 JWKUeGBNBpAE%ky%7tk2k h3jzLi V.t(CrpK;5OJB_? RVЭnGc_3q&=t+}: yIeEgVuO7(l'iH hK2/4Yܵ֫u񬁖FvG;TI$ u?j~}2{t3,]dڂE*UYU c@7C ~Z@!ӣҤg];  LUhUhi_d;-$;Z)H@<GjH~wtyFHEFeY<[*Z-Av{h->\im[m8t[H†R% *}+DT~(孴%亲0C+?| gaGEx %Y QzːFldEEfP[ji*Cu.Џi5ryD6Bb YVENt;0MуZw-w* ylA54P9EG{] q T\(@=qL"`ޟwާkwq lIf 7`[$ E>E),^%ʖ2H #zW#kJM :6kiI$o<TFߜö*t_w6]Š( ((((((((((a]ι^ARFy}>kγkO]6DaKy! b2ECgQn-4 -5>ea4a|ZtSI'uoo&8{j7)q5ݍw|1Kl&$M#]wt?G<%i$if,dEܯ-XlBV- _6[/?f+̌sA[O[wiv1 C,ps9ʲ)pqx\TM[]5m 7>ӡVǃX.~tX c<%X"|N0=o40kVI..Yy+K+ 88nU ( ?#q!#҉?)=뒯͡xc\ԯl,oZ)ntEv҉MT.8pG'#:S8Ϫ6*웶;Gc>A?[XHܨ9eyZtR dnRJr0sG_~4 Neyp/wUVt(7dn@J٪ujmeVs#3;;ĒO5j ( ( ( ( ( ( (/ iٿT=4*Jh(ɬ|4SI8+ɬ|4SI8( i\SAfi)]c?T?Pƺg|P!Ud+:̠H$~vڥk׼{ /kj";8;['D ne]> `=:I5u{QÙciA1\⻡FܴomIՂu=~Ҡ-$Q}kd'lY# x_>IW3bI#$ONNJKUwb5{b6UpC{h|>I r)]/k`g8[D%c%78Ņ.ޏ^8{W#Ӧ#$Aa;~XMq<6cFU9sui_\УeGFksq!F9\הoh]<-PGFJ:/A?3Sx?÷%M~k/L$ag(]U01ҷhϻH (()A]-E7?Z(b ( ("t+RPjZHl(b ( ( ( ( ( ( ( ( ( ( ( ("RF|k/~&#-$p[\`_F2ɵfoGЍKRkQݧ'û+mzT5[OymŹY4ycb^nOtZPM.Q4`u?Y"G&Q=BopѤztZ :ͼca͝PNd[YY$IW(lT`[DWmUhcZ[mBR(8Xny IEW/2UJ29hͺ0e)EY2KdfӟĚp-Fkqna v@z-r՚sGvrYԯ/ (&nby[˹; z__YKbh֠dPCʙb2G rN3ϧcEoYM4 ֣G}uYjf8&WIW-A[?$gHLF裟lQBJmq ZrZi>mmD:L*gcAc+Z gWzJ"" jELݶ` '1Kk+cC h+ n~_w}֛6kyw.oUmm^yf9U}n,QEQEEk05U-Ek05U-%QEQEQEQEQEQEQEQEQEQEQE]B5-EoGЍ.%)(y. KcHrq&IQEDTuw9ݥRo0C`FPB~=;իֶFvU&WaqmgA*L  JFuZxWI %,ki"2aw<Ο>'ދA{OJl9CoE'^h;P/a 4m((m?_ BQÔ?_ Bz/?!?Ɗ(az/?!?ƏEsGދA{O9rދA{OoE'E9CoE'^hv^h/a 4QG;P/a 4m((m?_ BQÔZі%mZ3}jOErދA{OoE'E>v^h/a 4QG;P/a 4m((m?_ BQÔ?_ Bz/?!?Ɗ(az/?!?ƏEsGދA{O9rދA{OoE'E9CoE'^hv^h/a 4QG;P/a 4m((m kFukt\9I?_ Bz/?!?Ɗ)GދA{O9rkZ2ĭXAt㏭I^hP/a 4m(Ô?_ Bz/?!?Ɗ(aC.լH>zz h5k{Eswl;uEmxp$i%T@>RKn Hk{_eP R=FIQE/cyZ?Z?R-ch-ch??Ə??Ɗ(-ch-chk:A8>ӧӿ4(#kh#kh=76Ə=76Ɗ(#ki?4F?Ɗ(RӆbPڒcsϩZE48:Ο)4QEPKYDD|''.celery-2.1-archived/internals/deprecation.html Celery Deprecation Timeline — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Celery Deprecation Timeline

Removals for version 2.0

  • The following settings will be removed:

    Setting name Replace with
    CELERY_AMQP_CONSUMER_QUEUES CELERY_QUEUES
    CELERY_AMQP_CONSUMER_QUEUES CELERY_QUEUES
    CELERY_AMQP_EXCHANGE CELERY_DEFAULT_EXCHANGE
    CELERY_AMQP_EXCHANGE_TYPE CELERY_DEFAULT_AMQP_EXCHANGE_TYPE
    CELERY_AMQP_CONSUMER_ROUTING_KEY CELERY_QUEUES
    CELERY_AMQP_PUBLISHER_ROUTING_KEY CELERY_DEFAULT_ROUTING_KEY
  • CELERY_LOADER definitions without class name.

    E.g. celery.loaders.default, needs to include the class name: celery.loaders.default.Loader.

  • TaskSet.run(). Use celery.task.base.TaskSet.apply_async()

    instead.

  • The module celery.task.rest; use celery.task.http instead.

Previous topic

Internals

Next topic

Internals: The worker

This Page

PKYDD$$$)celery-2.1-archived/internals/events.html List of Worker Events — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

List of Worker Events

This is the list of events sent by the worker. The monitor uses these to visualize the state of the cluster.

Task Events

  • task-received(uuid, name, args, kwargs, retries, eta, hostname, timestamp)

    Sent when the worker receives a task.

  • task-started(uuid, hostname, timestamp)

    Sent just before the worker executes the task.

  • task-succeeded(uuid, result, runtime, hostname, timestamp)

    Sent if the task executed successfully. Runtime is the time it took to execute the task using the pool. (Time starting from the task is sent to the pool, and ending when the pool result handlers callback is called).

  • task-failed(uuid, exception, traceback, hostname, timestamp)

    Sent if the execution of the task failed.

  • task-revoked(uuid)

    Sent if the task has been revoked (Note that this is likely to be sent by more than one worker)

  • task-retried(uuid, exception, traceback, hostname, timestamp)

    Sent if the task failed, but will be retried.

Worker Events

  • worker-online(hostname, timestamp)

    The worker has connected to the broker and is online.

  • worker-heartbeat(hostname, timestamp)

    Sent every minute, if the worker has not sent a heartbeat in 2 minutes, it’s considered to be offline.

  • worker-offline(hostname, timestamp)

    The worker has disconnected from the broker.

Previous topic

Task Message Protocol

Next topic

Module Index

This Page

PKYDD >--+celery-2.1-archived/internals/protocol.html Task Message Protocol — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Task Message Protocol

Message format

  • task

    string

    Name of the task. required

  • id

    string

    Unique id of the task (UUID). required

  • args

    list

    List of arguments. Will be an empty list if not provided.

  • kwargs

    dictionary

    Dictionary of keyword arguments. Will be an empty dictionary if not provided.

  • retries

    int

    Current number of times this task has been retried. Defaults to 0 if not specified.

  • eta

    string (ISO 8601)

    Estimated time of arrival. This is the date and time in ISO 8601 format. If not provided the message is not scheduled, but will be executed asap.

  • expires (introduced after v2.0.2)

    string (ISO 8601)

    Expiration date. This is the date and time in ISO 8601 format. If not provided the message will never expire. The message will be expired when the message is received and the expiration date has been exceeded.

Example message

This is an example invocation of the celery.task.PingTask task in JSON format:

{"task": "celery.task.PingTask",
 "args": [],
 "kwargs": {},
 "retries": 0,
 "eta": "2009-11-17T12:30:56.527191"}

Serialization

The protocol supports several serialization formats using the content_type message header.

The MIME-types supported by default are shown in the following table.

Scheme MIME Type
json application/json
yaml application/x-yaml
pickle application/x-python-serialize
msgpack application/x-msgpack

Previous topic

Internals: The worker

Next topic

List of Worker Events

This Page

PKYDD/3v]v].celery-2.1-archived/internals/moduleindex.html Module Index — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Module Index

Worker

celery.worker

This is the worker’s main process. It starts and stops all the components required by the worker: Pool, Mediator, Scheduler, ClockService, and Listener.

This is the function used to initialize pool processes. It sets up loggers and imports required task modules, etc.

celery.worker.job

A request to execute a task. Contains the task name, id, args and kwargs. Handles acknowledgement, execution, writing results to backends and error handling (including error e-mails)

celery.worker.control

  • celery.worker.registry
  • celery.worker.builtins

Previous topic

List of Worker Events

Next topic

Internal Module Reference

This Page

PKYDD6qBqB(celery-2.1-archived/internals/index.html Internals — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Internals

Release:2.1
Date:February 04, 2014

Previous topic

Celeryd Multi Tool - celery.bin.celeryd_multi

Next topic

Celery Deprecation Timeline

This Page

PKYDDw.w.)celery-2.1-archived/internals/worker.html Internals: The worker — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Internals: The worker

Introduction

The worker consists of 4 main components: the broker listener, the scheduler, the mediator and the task pool. All these components runs in parallel working with two data structures: the ready queue and the ETA schedule.

../_images/Celery1.0-inside-worker.jpg

Data structures

ready_queue

The ready queue is either an instance of Queue.Queue, or celery.buckets.TaskBucket. The latter if rate limiting is enabled.

eta_schedule

The ETA schedule is a heap queue sorted by time.

Components

CarrotListener

Receives messages from the broker using carrot.

When a message is received it’s converted into a celery.worker.job.TaskRequest object.

Tasks with an ETA are entered into the eta_schedule, messages that can be immediately processed are moved directly to the ready_queue.

ScheduleController

The schedule controller is running the eta_schedule. If the scheduled tasks eta has passed it is moved to the ready_queue, otherwise the thread sleeps until the eta is met (remember that the schedule is sorted by time).

Mediator

The mediator simply moves tasks in the ready_queue over to the task pool for execution using celery.worker.job.TaskRequest.execute_using_pool().

TaskPool

This is a slightly modified multiprocessing.Pool. It mostly works the same way, except it makes sure all of the workers are running at all times. If a worker is missing, it replaces it with a new one.

Previous topic

Celery Deprecation Timeline

Next topic

Task Message Protocol

This Page

PKYDDA $m$m$<celery-2.1-archived/internals/reference/celery.backends.html Backends - celery.backends — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Backends - celery.backends

celery.backends.DefaultBackend
celery.backends.default_backend

An instance of DefaultBackend.

alias of AMQPBackend

celery.backends.get_backend_cls(backend)

Get backend class by name/alias

celery.backends.get_default_backend_cls = <functools.partial object at 0x4d42e68>
class celery.backends.DefaultBackend

The default backend class used for storing task results and status, specified in the CELERY_RESULT_BACKEND setting.

Previous topic

Clock Service - celery.beat

Next topic

Backend: Base - celery.backends.base

This Page

PKYDDT**=celery-2.1-archived/internals/reference/celery.db.models.html SQLAlchemy Models - celery.db.models — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

SQLAlchemy Models - celery.db.models

class celery.db.models.Task(task_id)

Task result/status.

date_done
id
result
status
task_id
to_dict()
traceback
class celery.db.models.TaskSet(taskset_id, result)

TaskSet result

date_done
id
result
taskset_id
to_dict()

Previous topic

Event Dumper Tool - celery.events.dumper

Next topic

SQLAlchemy Session - celery.db.session

This Page

PKYDDϻMMDcelery-2.1-archived/internals/reference/celery.events.cursesmon.html Curses Monitor - celery.events.cursesmon — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Curses Monitor - celery.events.cursesmon

class celery.events.cursesmon.CursesMonitor(state, keymap=None)
alert(callback, title=None)
alert_remote_control_reply(reply)
background = 7
display_width
draw()
find_position()
foreground = 0
format_row(uuid, task, worker, timestamp, state)
greet = 'celeryev 2.1.4'
handle_keypress()
help = 'j:up k:down i:info t:traceback r:result c:revoke ^c: quit'
help_title = 'Keys: '
info_str = 'Info: '
init_screen()
keyalias = {258: 'J', 259: 'K', 343: 'I'}
keymap = {}
limit = 20
move_selection(direction=1)
move_selection_down()
move_selection_up()
nap()
online_str = 'Workers online: '
readline(x, y)
resetscreen()
revoke_selection()
screen_delay = 10
screen_width = None
selected_position = 0
selected_str = 'Selected: '
selected_task = None
selection_info()
selection_rate_limit()
selection_result()
selection_traceback()
tasks
win = None
workers
class celery.events.cursesmon.DisplayThread(display)
run()
celery.events.cursesmon.evtop()

Previous topic

Event Snapshots - celery.events.snapshot

Next topic

Event Dumper Tool - celery.events.dumper

This Page

PKYDDssH_H_8celery-2.1-archived/internals/reference/celery.beat.html Clock Service - celery.beat — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Clock Service - celery.beat

Periodic Task Scheduler

celery.beat.EmbeddedService(*args, **kwargs)

Return embedded clock service.

Parameters:thread – Run threaded instead of as a separate process. Default is False.
class celery.beat.PersistentScheduler(*args, **kwargs)
close()
info
persistence = <module 'shelve' from '/usr/lib/python2.7/shelve.pyc'>
setup_schedule()
sync()
class celery.beat.ScheduleEntry(name=None, task=None, last_run_at=None, total_run_count=None, schedule=None, args=(), kwargs={}, options={}, relative=False)

An entry in the scheduler.

Parameters:
name

The task name.

schedule

The schedule (run_every/crontab)

args

Args to apply.

kwargs

Keyword arguments to apply.

last_run_at

The time and date of when this task was last run.

total_run_count

Total number of times this periodic task has been executed.

is_due()

See celery.task.base.PeriodicTask.is_due().

next(last_run_at=None)

Returns a new instance of the same class, but with its date and count fields updated.

update(other)

Update values from another entry.

Does only update “editable” fields (schedule, args, kwargs, options).

class celery.beat.Scheduler(schedule=None, logger=None, max_interval=None, lazy=False, **kwargs)

Scheduler for periodic tasks.

Parameters:
schedule

The schedule dict/shelve.

logger

The logger to use.

max_interval

Maximum time to sleep between re-checking the schedule.

Entry

alias of ScheduleEntry

Publisher

alias of TaskPublisher

add(**kwargs)
apply_async(entry, publisher=None, **kwargs)
close()
get_schedule()
info
maybe_due(entry, publisher=None)
merge_inplace(b)
reserve(entry)
schedule
send_task(*args, **kwargs)
setup_schedule()
sync()
tick()

Run a tick, that is one iteration of the scheduler.

Executes all due tasks.

update_from_dict(dict_)
exception celery.beat.SchedulingError

An error occured while scheduling a task.

class celery.beat.Service(logger=None, max_interval=300, schedule={}, schedule_filename='celerybeat-schedule', scheduler_cls=None)
get_scheduler(lazy=False)
scheduler
scheduler_cls

alias of PersistentScheduler

start(embedded_process=False)
stop(wait=False)
sync()

Previous topic

Thread Pool Support EXPERIMENTAL - celery.concurrency.threads

Next topic

Backends - celery.backends

This Page

PKYDDtoJ,J,Ccelery-2.1-archived/internals/reference/celery.events.snapshot.html Event Snapshots - celery.events.snapshot — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Event Snapshots - celery.events.snapshot

class celery.events.snapshot.Polaroid(state, freq=1.0, maxrate=None, cleanup_freq=3600.0, logger=None)
cancel()
capture()
cleanup()
cleanup_signal = <Signal: Signal>
clear_after = False
debug(msg)
install()
on_cleanup()
on_shutter(state)
shutter()
shutter_signal = <Signal: Signal>
celery.events.snapshot.evcam(camera, freq=1.0, maxrate=None, loglevel=0, logfile=None)

Previous topic

Logging - celery.log

Next topic

Curses Monitor - celery.events.cursesmon

This Page

PKYDD1&&Gcelery-2.1-archived/internals/reference/celery.concurrency.threads.html Thread Pool Support EXPERIMENTAL - celery.concurrency.threads — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Thread Pool Support EXPERIMENTAL - celery.concurrency.threads

class celery.concurrency.threads.TaskPool(limit, logger=None, **kwargs)
apply_async(target, args=None, kwargs=None, callbacks=None, errbacks=None, accept_callback=None, **compat)
on_ready(callbacks, errbacks, ret_value)

What to do when a worker task is ready and its return value has been collected.

start()
stop()
celery.concurrency.threads.do_work(target, args=(), kwargs={}, callback=None, accept_callback=None)

Previous topic

extended multiprocessing.pool - celery.concurrency.processes.pool

Next topic

Clock Service - celery.beat

This Page

PKYDD7r%tt>celery-2.1-archived/internals/reference/celery.worker.job.html Executable Jobs - celery.worker.job — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Executable Jobs - celery.worker.job

exception celery.worker.job.AlreadyExecutedError

Tasks can only be executed once, as they might change world-wide state.

exception celery.worker.job.InvalidTaskError

The task has invalid data or is not properly constructed.

class celery.worker.job.TaskRequest(task_name, task_id, args, kwargs, on_ack=<function noop at 0x4741320>, retries=0, delivery_info=None, hostname=None, email_subject=None, email_body=None, logger=None, eventer=None, eta=None, expires=None, **opts)

A request for task execution.

Parameters:
task_name

Kind of task. Must be a name registered in the task registry.

task_id

UUID of the task.

args

List of positional arguments to apply to the task.

kwargs

Mapping of keyword arguments to apply to the task.

on_ack

Callback called when the task should be acknowledged.

message

The original message sent. Used for acknowledging the message.

executed

Set to True if the task has been executed. A task should only be executed once.

delivery_info

Additional delivery info, e.g. the contains the path from producer to consumer.

acknowledged

Set to True if the task has been acknowledged.

acknowledge()
acknowledged = False
email_body = '\nTask %(name)s with id %(id)s raised exception:\n%(exc)r\n\n\nTask was called with args: %(args)s kwargs: %(kwargs)s.\n\nThe contents of the full traceback was:\n\n%(traceback)s\n\n-- \nJust to let you know,\nceleryd at %(hostname)s.\n'
email_subject = ' [celery@%(hostname)s] Error: Task %(name)s (%(id)s): %(exc)s\n '
error_msg = ' Task %(name)s[%(id)s] raised exception: %(exc)s\n%(traceback)s\n '
execute(loglevel=None, logfile=None)

Execute the task in a WorkerTaskTrace.

Parameters:
  • loglevel – The loglevel used by the task.
  • logfile – The logfile used by the task.
execute_using_pool(pool, loglevel=None, logfile=None)

Like execute(), but using the multiprocessing pool.

Parameters:
  • pool – A multiprocessing.Pool instance.
  • loglevel – The loglevel used by the task.
  • logfile – The logfile used by the task.
executed = False
extend_with_default_kwargs(loglevel, logfile)

Extend the tasks keyword arguments with standard task arguments.

Currently these are logfile, loglevel, task_id, task_name, task_retries, and delivery_info.

See celery.task.base.Task.run() for more information.

classmethod from_message(message, message_data, on_ack=<function noop at 0x4741320>, logger=None, eventer=None, hostname=None)

Create a TaskRequest from a task message sent by celery.messaging.TaskPublisher.

Raises UnknownTaskError:
 if the message does not describe a task, the message is also rejected.

:returns TaskRequest:

info(safe=False)
maybe_expire()
on_accepted(*a, **kw)

Handler called when task is accepted by worker pool.

on_failure(exc_info)

The handler used if the task raised an exception.

on_retry(exc_info)
on_success(ret_value)

The handler used if the task was successfully processed ( without raising an exception).

on_timeout(soft)
repr_result(result, maxlen=46)
retry_msg = ' Task %(name)s[%(id)s] retry: %(exc)s\n '
revoked()
send_error_email(task, context, exc, whitelist=None, enabled=False, fail_silently=True)
send_event(type, **fields)
shortinfo()
success_msg = ' Task %(name)s[%(id)s] succeeded in %(runtime)ss: %(return_value)s\n '
time_start = None
class celery.worker.job.WorkerTaskTrace(*args, **kwargs)

Wraps the task in a jail, catches all exceptions, and saves the status and result of the task execution to the task meta backend.

If the call was successful, it saves the result to the task result backend, and sets the task status to "SUCCESS".

If the call raises celery.exceptions.RetryTaskError, it extracts the original exception, uses that as the result and sets the task status to "RETRY".

If the call results in an exception, it saves the exception as the task result, and sets the task status to "FAILURE".

Parameters:
  • task_name – The name of the task to execute.
  • task_id – The unique id of the task.
  • args – List of positional args to pass on to the function.
  • kwargs – Keyword arguments mapping to pass on to the function.
Returns:

the evaluated functions return value on success, or the exception instance on failure.

execute()

Execute, trace and store the result of the task.

execute_safe(*args, **kwargs)

Same as execute(), but catches errors.

handle_failure(exc, type_, tb, strtb)

Handle exception.

handle_retry(exc, type_, tb, strtb)

Handle retry exception.

handle_success(retval, *args)

Handle successful execution.

celery.worker.job.execute_and_trace(task_name, *args, **kwargs)

This is a pickleable method used as a target when applying to pools.

It’s the same as:

>>> WorkerTaskTrace(task_name, *args, **kwargs).execute_safe()

Previous topic

Worker Message Listener - celery.worker.listener

Next topic

Worker Controller Threads - celery.worker.controllers

This Page

PKYDD.nj-*-*Bcelery-2.1-archived/internals/reference/celery.backends.cache.html Backend: Memcache - celery.backends.cache — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Backend: Memcache - celery.backends.cache

class celery.backends.cache.CacheBackend(expires=datetime.timedelta(1), backend=None, options={}, **kwargs)
client
delete(key)
get(key)
set(key, value)
class celery.backends.cache.DummyClient(*args, **kwargs)
delete(key, *args, **kwargs)
get(key, *args, **kwargs)
set(key, value, *args, **kwargs)
celery.backends.cache.get_best_memcache(*args, **kwargs)

Previous topic

Backend: SQLAlchemy Database - celery.backends.database

Next topic

Backend: AMQP - celery.backends.amqp

This Page

PKYDDFyZ&&Fcelery-2.1-archived/internals/reference/celery.worker.controllers.html Worker Controller Threads - celery.worker.controllers — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Worker Controller Threads - celery.worker.controllers

Worker Controller Threads

class celery.worker.controllers.Mediator(ready_queue, callback, logger=None)

Thread continuously sending tasks in the queue to the pool.

ready_queue

The task queue, a Queue.Queue instance.

callback

The callback used to process tasks retrieved from the ready_queue.

move()
run()
stop()

Gracefully shutdown the thread.

Previous topic

Executable Jobs - celery.worker.job

Next topic

Token Bucket (rate limiting) - celery.worker.buckets

This Page

PKYDD.9o9oCcelery-2.1-archived/internals/reference/celery.worker.listener.html Worker Message Listener - celery.worker.listener — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Worker Message Listener - celery.worker.listener

This module contains the component responsible for consuming messages from the broker, processing the messages and keeping the broker connections up and running.

  • start() is an infinite loop, which only iterates again if the connection is lost. For each iteration (at start, or if the connection is lost) it calls reset_connection(), and starts the consumer by calling consume_messages().

  • reset_connection(), clears the internal queues, establishes a new connection to the broker, sets up the task consumer (+ QoS), and the broadcast remote control command consumer.

    Also if events are enabled it configures the event dispatcher and starts up the hartbeat thread.

  • Finally it can consume messages. consume_messages() is simply an infinite loop waiting for events on the AMQP channels.

    Both the task consumer and the broadcast consumer uses the same callback: receive_message(). The reason is that some carrot backends doesn’t support consuming from several channels simultaneously, so we use a little nasty trick (_detect_wait_method()) to select the best possible channel distribution depending on the functionality supported by the carrot backend.

  • So for each message received the receive_message() method is called, this checks the payload of the message for either a task key or a control key.

    If the message is a task, it verifies the validity of the message converts it to a celery.worker.job.TaskRequest, and sends it to on_task().

    If the message is a control command the message is passed to on_control(), which in turn dispatches the control command using the control dispatcher.

    It also tries to handle malformed or invalid messages properly, so the worker doesn’t choke on them and die. Any invalid messages are acknowledged immediately and logged, so the message is not resent again, and again.

  • If the task has an ETA/countdown, the task is moved to the eta_schedule so the timer2.Timer can schedule it at its deadline. Tasks without an eta are moved immediately to the ready_queue, so they can be picked up by the Mediator to be sent to the pool.

  • When a task with an ETA is received the QoS prefetch count is also incremented, so another message can be reserved. When the ETA is met the prefetch count is decremented again, though this cannot happen immediately because amqplib doesn’t support doing broker requests across threads. Instead the current prefetch count is kept as a shared counter, so as soon as consume_messages() detects that the value has changed it will send out the actual QoS event to the broker.

  • Notice that when the connection is lost all internal queues are cleared because we can no longer ack the messages reserved in memory. Hoever, this is not dangerous as the broker will resend them to another worker when the channel is closed.

  • WARNING: stop() does not close the connection! This is because some pre-acked messages may be in processing, and they need to be finished before the channel is closed. For celeryd this means the pool must finish the tasks it has acked early, then close the connection.

class celery.worker.listener.CarrotListener(ready_queue, eta_schedule, logger, init_callback=<function noop at 0x4741320>, send_events=False, hostname=None, initial_prefetch_count=2, pool=None)

Listen for messages received from the broker and move them the the ready queue for task processing.

Parameters:
ready_queue

The queue that holds tasks ready for immediate processing.

eta_schedule

Scheduler for paused tasks. Reasons for being paused include a countdown/eta or that it’s waiting for retry.

send_events

Is events enabled?

init_callback

Callback to be called the first time the connection is active.

hostname

Current hostname. Defaults to the system hostname.

initial_prefetch_count

Initial QoS prefetch count for the task channel.

control_dispatch

Control command dispatcher. See celery.worker.control.ControlDispatch.

event_dispatcher

See celery.events.EventDispatcher.

hart

Heart sending out heart beats if events enabled.

logger

The logger used.

apply_eta_task(task)
close_connection()
consume_messages()

Consume messages forever (or until an exception is raised).

info
maybe_conn_error(fun)
on_control(control)

Handle received remote control command.

on_decode_error(message, exc)

Callback called if the message had decoding errors.

Parameters:
  • message – The message with errors.
  • exc – The original exception instance.
on_task(task)

Handle received task.

If the task has an eta we enter it into the ETA schedule, otherwise we move it the ready queue for immediate processing.

receive_message(message_data, message)

The callback called when a new message is received.

reset_connection()

Re-establish connection and set up consumers.

restart_heartbeat()
start()

Start the consumer.

If the connection is lost, it tries to re-establish the connection and restarts consuming messages.

stop()

Stop consuming.

Does not close connection.

stop_consumers(close=True)

Stop consuming.

class celery.worker.listener.QoS(consumer, initial_value, logger)

Quality of Service for Channel.

For thread-safe increment/decrement of a channels prefetch count value.

Parameters:
  • consumer – A carrot.messaging.Consumer instance.
  • initial_value – Initial prefetch count value.
  • logger – Logger used to log debug messages.
decrement()

Decrement the current prefetch count value by one.

decrement_eventually()

Decrement the value, but do not update the qos.

The MainThread will be responsible for calling update() when necessary.

increment()

Increment the current prefetch count value by one.

next
prev = None
set(pcount)

Set channel prefetch_count setting.

update()

Update prefetch count with current value.

Previous topic

Multiprocessing Worker - celery.worker

Next topic

Executable Jobs - celery.worker.job

This Page

PKYDD2d= C C:celery-2.1-archived/internals/reference/celery.worker.html Multiprocessing Worker - celery.worker — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Multiprocessing Worker - celery.worker

The Multiprocessing Worker Server

class celery.worker.WorkController(concurrency=None, logfile=None, loglevel=None, send_events=False, hostname=None, ready_callback=<function noop at 0x4741320>, embed_clockservice=False, pool_cls='celery.concurrency.processes.TaskPool', listener_cls='celery.worker.listener.CarrotListener', mediator_cls='celery.worker.controllers.Mediator', eta_scheduler_cls='celery.utils.timer2.Timer', schedule_filename='celerybeat-schedule', task_time_limit=None, task_soft_time_limit=None, max_tasks_per_child=None, pool_putlocks=True, disable_rate_limits=False, db=None, scheduler_cls='celery.beat.PersistentScheduler')

Executes tasks waiting in the task queue.

Parameters:
concurrency

The number of simultaneous processes doing work (default: conf.CELERYD_CONCURRENCY)

loglevel

The loglevel used (default: logging.INFO)

logfile

The logfile used, if no logfile is specified it uses stderr (default: celery.conf.CELERYD_LOG_FILE).

embed_clockservice

If True, celerybeat is embedded, running in the main worker process as a thread.

send_events

Enable the sending of monitoring events, these events can be captured by monitors (celerymon).

logger

The logging.Logger instance used for logging.

pool

The multiprocessing.Pool instance used.

ready_queue

The Queue.Queue that holds tasks ready for immediate processing.

schedule_controller

Instance of celery.worker.controllers.ScheduleController.

mediator

Instance of celery.worker.controllers.Mediator.

listener

Instance of CarrotListener.

concurrency = 0
logfile = None
loglevel = 40
on_timer_error(exc_info)
on_timer_tick(delay)
process_task(wrapper)

Process task by sending it to the pool of workers.

start()

Starts the workers main loop.

stop()

Graceful shutdown of the worker server.

terminate()

Not so graceful shutdown of the worker server.

celery.worker.process_initializer(hostname)

Initializes the process so it can be used to process tasks.

Used for multiprocessing environments.

Previous topic

Internal Module Reference

Next topic

Worker Message Listener - celery.worker.listener

This Page

PKYDDxx?celery-2.1-archived/internals/reference/celery.utils.patch.html Compatibility Patches - celery.utils.patch — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Compatibility Patches - celery.utils.patch

celery.utils.patch.ensure_process_aware_logger()

Previous topic

Sending E-mail - celery.utils.mail

Next topic

functools compat - celery.utils.functional

This Page

PKYDD(ccccBcelery-2.1-archived/internals/reference/celery.worker.buckets.html Token Bucket (rate limiting) - celery.worker.buckets — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Token Bucket (rate limiting) - celery.worker.buckets

class celery.worker.buckets.FastQueue(maxsize=0)

Queue.Queue supporting the interface of TokenBucketQueue.

clear()
expected_time(tokens=1)
items
wait(block=True)
exception celery.worker.buckets.RateLimitExceeded

The token buckets rate limit has been exceeded.

class celery.worker.buckets.TaskBucket(task_registry)

This is a collection of token buckets, each task type having its own token bucket. If the task type doesn’t have a rate limit, it will have a plain Queue object instead of a TokenBucketQueue.

The put() operation forwards the task to its appropriate bucket, while the get() operation iterates over the buckets and retrieves the first available item.

Say we have three types of tasks in the registry: celery.ping, feed.refresh and video.compress, the TaskBucket will consist of the following items:

{"celery.ping": TokenBucketQueue(fill_rate=300),
 "feed.refresh": Queue(),
 "video.compress": TokenBucketQueue(fill_rate=2)}

The get operation will iterate over these until one of the buckets is able to return an item. The underlying datastructure is a dict, so the order is ignored here.

Parameters:task_registry – The task registry used to get the task type class for a given task name.
add_bucket_for_type(task_name)

Add a bucket for a task type.

Will read the tasks rate limit and create a TokenBucketQueue if it has one. If the task doesn’t have a rate limit a regular Queue will be used.

clear()
empty()
get(block=True, timeout=None)

Retrive the task from the first available bucket.

Available as in, there is an item in the queue and you can consume tokens from it.

get_bucket_for_type(task_name)

Get the bucket for a particular task type.

get_nowait()
init_with_registry()

Initialize with buckets for all the task types in the registry.

items
put(request)

Put a TaskRequest into the appropiate bucket.

put_nowait(request)

Put a TaskRequest into the appropiate bucket.

qsize()

Get the total size of all the queues.

refresh()

Refresh rate limits for all task types in the registry.

update_bucket_for_type(task_name)
class celery.worker.buckets.TokenBucketQueue(fill_rate, queue=None, capacity=1)

Queue with rate limited get operations.

This uses the token bucket algorithm to rate limit the queue on get operations.

Parameters:
  • fill_rate – The rate in tokens/second that the bucket will be refilled.
  • capacity – Maximum number of tokens in the bucket. Default is 1.
exception RateLimitExceeded

The token buckets rate limit has been exceeded.

TokenBucketQueue.clear()
TokenBucketQueue.empty()
TokenBucketQueue.expected_time(tokens=1)

Returns the expected time in seconds when a new token should be available.

TokenBucketQueue.get(block=True)

Remove and return an item from the queue.

Raises:
  • RateLimitExceeded – If a token could not be consumed from the token bucket (consuming from the queue too fast).
  • Queue.Empty – If an item is not immediately available.

Also see Queue.Queue.get().

TokenBucketQueue.get_nowait()

Remove and return an item from the queue without blocking.

Raises:
  • RateLimitExceeded – If a token could not be consumed from the token bucket (consuming from the queue too fast).
  • Queue.Empty – If an item is not immediately available.

Also see Queue.Queue.get_nowait().

TokenBucketQueue.items
TokenBucketQueue.put(item, block=True)

Put an item into the queue.

Also see Queue.Queue.put().

TokenBucketQueue.put_nowait(item)

Put an item into the queue without blocking.

Raises Queue.Full:
 If a free slot is not immediately available.

Also see Queue.Queue.put_nowait()

TokenBucketQueue.qsize()

Returns the size of the queue.

See Queue.Queue.qsize().

TokenBucketQueue.wait(block=False)

Wait until a token can be retrieved from the bucket and return the next item.

celery.worker.buckets.chain_from_iterable()

chain.from_iterable(iterable) –> chain object

Alternate chain() contructor taking a single iterable argument that evaluates lazily.

Previous topic

Worker Controller Threads - celery.worker.controllers

Next topic

Worker Heartbeats - celery.worker.heartbeat

This Page

PKYDD qT9T9Kcelery-2.1-archived/internals/reference/celery.worker.control.builtins.html Built-in Remote Control Commands - celery.worker.control.builtins — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Built-in Remote Control Commands - celery.worker.control.builtins

celery.worker.control.builtins.add_consumer(panel, queue=None, exchange=None, exchange_type='direct', routing_key=None, **options)
celery.worker.control.builtins.cancel_consumer(panel, queue=None, **_)
celery.worker.control.builtins.disable_events(panel)
celery.worker.control.builtins.dump_active(panel, safe=False, **kwargs)
celery.worker.control.builtins.dump_reserved(panel, safe=False, **kwargs)
celery.worker.control.builtins.dump_revoked(panel, **kwargs)
celery.worker.control.builtins.dump_schedule(panel, safe=False, **kwargs)
celery.worker.control.builtins.dump_tasks(panel, **kwargs)
celery.worker.control.builtins.enable_events(panel)
celery.worker.control.builtins.heartbeat(panel)
celery.worker.control.builtins.ping(panel, **kwargs)
celery.worker.control.builtins.rate_limit(panel, task_name, rate_limit, **kwargs)

Set new rate limit for a task type.

See celery.task.base.Task.rate_limit.

Parameters:
  • task_name – Type of task.
  • rate_limit – New rate limit.
celery.worker.control.builtins.revoke(panel, task_id, **kwargs)

Revoke task by task id.

celery.worker.control.builtins.set_loglevel(panel, loglevel=None)
celery.worker.control.builtins.shutdown(panel, **kwargs)
celery.worker.control.builtins.stats(panel, **kwargs)

Previous topic

Worker Control - celery.worker.control

Next topic

Remote Control Command Registry - celery.worker.control.registry

This Page

PKYDDHv+v+Ccelery-2.1-archived/internals/reference/celery.backends.tyrant.html Backend: Tokyo Tyrant - celery.backends.tyrant — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Backend: Tokyo Tyrant - celery.backends.tyrant

celery.backends.tyrant

class celery.backends.tyrant.TyrantBackend(tyrant_host=None, tyrant_port=None)

Tokyo Cabinet based task backend store.

tyrant_host

The hostname to the Tokyo Tyrant server.

tyrant_port

The port to the Tokyo Tyrant server.

close()

Close the tyrant connection and remove the cache.

delete(key)
get(key)
open()

Get pytyrant.PyTyrant` instance with the current server configuration.

The connection is then cached until you do an explicit close().

process_cleanup()
set(key, value)
tyrant_host = None
tyrant_port = None

Previous topic

Backend: Cassandra - celery.backends.cassandra

Next topic

Tracing Execution - celery.execute.trace

This Page

PKYDDeƶ%%>celery-2.1-archived/internals/reference/celery.utils.info.html Debugging Info - celery.utils.info — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Debugging Info - celery.utils.info

celery.utils.info.format_broker_info(info=None)

Get message broker connection info string for log dumps.

celery.utils.info.format_queues(queues, indent=0)

Format routing table into string for log dumps.

celery.utils.info.get_broker_info(broker_connection=None)
celery.utils.info.humanize_seconds(secs, prefix='')

Show seconds in human form, e.g. 60 is “1 minute”, 7200 is “2 hours”.

celery.utils.info.textindent(t, indent=0)

Indent text.

Previous topic

Time and Date Utilities - celery.utils.timeutils

Next topic

Python Compatibility - celery.utils.compat

This Page

PKYDD)/ )j;j;>celery-2.1-archived/internals/reference/celery.utils.term.html Terminal Utilities - celery.utils.term — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Terminal Utilities - celery.utils.term

term utils.

>>> c = colored(enabled=True)
>>> print(str(c.red("the quick "), c.blue("brown ", c.bold("fox ")),
              c.magenta(c.underline("jumps over")),
              c.yellow(" the lazy "),
              c.green("dog ")))
class celery.utils.term.colored(*s, **kwargs)
black(*s)
blue(*s)
bold(*s)
bright(*s)
cyan(*s)
green(*s)
iblue(*s)
icyan(*s)
igreen(*s)
imagenta(*s)
ired(*s)
iwhite(*s)
iyellow(*s)
magenta(*s)
no_color()
node(s, op)
red(*s)
reset(*s)
reverse(*s)
underline(*s)
white(*s)
yellow(*s)
celery.utils.term.fg(s)

Previous topic

Utilities - celery.utils

Next topic

Time and Date Utilities - celery.utils.timeutils

This Page

PKYDD ``Acelery-2.1-archived/internals/reference/celery.backends.base.html Backend: Base - celery.backends.base — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Backend: Base - celery.backends.base

celery.backends.base

class celery.backends.base.BaseBackend(*args, **kwargs)

The base backend class. All backends should inherit from this.

EXCEPTION_STATES = frozenset(['FAILURE', 'RETRY', 'REVOKED'])
READY_STATES = frozenset(['FAILURE', 'REVOKED', 'SUCCESS'])
exception TimeoutError

The operation timed out.

BaseBackend.UNREADY_STATES = frozenset(['STARTED', 'RECEIVED', 'RETRY', 'PENDING'])
BaseBackend.cleanup()

Backend cleanup. Is run by celery.task.DeleteExpiredTaskMetaTask.

BaseBackend.encode_result(result, status)
BaseBackend.exception_to_python(exc)

Convert serialized exception to Python exception.

BaseBackend.forget(task_id)
BaseBackend.get_result(task_id)

Get the result of a task.

BaseBackend.get_status(task_id)

Get the status of a task.

BaseBackend.get_traceback(task_id)

Get the traceback for a failed task.

BaseBackend.mark_as_done(task_id, result)

Mark task as successfully executed.

BaseBackend.mark_as_failure(task_id, exc, traceback=None)

Mark task as executed with failure. Stores the execption.

BaseBackend.mark_as_retry(task_id, exc, traceback=None)

Mark task as being retries. Stores the current exception (if any).

BaseBackend.mark_as_revoked(task_id)
BaseBackend.mark_as_started(task_id, **meta)

Mark a task as started

BaseBackend.prepare_exception(exc)

Prepare exception for serialization.

BaseBackend.prepare_value(result)

Prepare value for storage.

BaseBackend.process_cleanup()

Cleanup actions to do at the end of a task worker process.

BaseBackend.reload_task_result(task_id)

Reload task result, even if it has been previously fetched.

BaseBackend.reload_taskset_result(task_id)

Reload taskset result, even if it has been previously fetched.

BaseBackend.restore_taskset(taskset_id, cache=True)

Get the result of a taskset.

BaseBackend.save_taskset(taskset_id, result)

Store the result and status of a task.

BaseBackend.store_result(task_id, result, status)

Store the result and status of a task.

BaseBackend.wait_for(task_id, timeout=None)

Wait for task and return its result.

If the task raises an exception, this exception will be re-raised by wait_for().

If timeout is not None, this raises the celery.exceptions.TimeoutError exception if the operation takes longer than timeout seconds.

class celery.backends.base.BaseDictBackend(*args, **kwargs)
forget(task_id)
get_result(task_id)

Get the result of a task.

get_status(task_id)

Get the status of a task.

get_task_meta(task_id, cache=True)
get_taskset_meta(taskset_id, cache=True)
get_traceback(task_id)

Get the traceback for a failed task.

reload_task_result(task_id)
reload_taskset_result(taskset_id)
restore_taskset(taskset_id, cache=True)

Get the result for a taskset.

save_taskset(taskset_id, result)

Store the result of an executed taskset.

store_result(task_id, result, status, traceback=None)

Store task result and status.

class celery.backends.base.KeyValueStoreBackend(*args, **kwargs)
delete(key)
get(key)
get_key_for_task(task_id)

Get the cache key for a task by id.

get_key_for_taskset(task_id)

Get the cache key for a task by id.

set(key, value)

Previous topic

Backends - celery.backends

Next topic

Backend: SQLAlchemy Database - celery.backends.database

This Page

PKYDDu0"&"&Kcelery-2.1-archived/internals/reference/celery.worker.control.registry.html Remote Control Command Registry - celery.worker.control.registry — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Remote Control Command Registry - celery.worker.control.registry

class celery.worker.control.registry.Panel(logger, listener, hostname=None)
data = {'stats': <function stats at 0x6d7f410>, 'revoke': <function revoke at 0x67fe7d0>, 'enable_events': <function enable_events at 0x67fecf8>, 'set_loglevel': <function set_loglevel at 0x6d7f1b8>, 'dump_active': <function dump_active at 0x6d7f398>, 'dump_schedule': <function dump_schedule at 0x6d7f2a8>, 'rate_limit': <function rate_limit at 0x6d7f230>, 'disable_events': <function disable_events at 0x6d7f0c8>, 'cancel_consumer': <function cancel_consumer at 0x6d7f6e0>, 'dump_tasks': <function dump_tasks at 0x6d7f500>, 'dump_reserved': <function dump_reserved at 0x6d7f320>, 'add_consumer': <function add_consumer at 0x6d7f668>, 'shutdown': <function shutdown at 0x6d7f5f0>, 'dump_revoked': <function dump_revoked at 0x6d7f488>, 'heartbeat': <function heartbeat at 0x6d7f140>, 'ping': <function ping at 0x6d7f578>}
classmethod register(method, name=None)

Previous topic

Built-in Remote Control Commands - celery.worker.control.builtins

Next topic

Worker State - celery.worker.state

This Page

PKYDD_[>[>Acelery-2.1-archived/internals/reference/celery.serialization.html Serialization Tools - celery.serialization — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Serialization Tools - celery.serialization

exception celery.serialization.UnpickleableExceptionWrapper(exc_module, exc_cls_name, exc_args)

Wraps unpickleable exceptions.

Parameters:
exc_module

The module of the original exception.

exc_cls_name

The name of the original exception class.

exc_args

The arguments for the original exception.

Example

>>> try:
...     something_raising_unpickleable_exc()
>>> except Exception, e:
...     exc = UnpickleableException(e.__class__.__module__,
...                                 e.__class__.__name__,
...                                 e.args)
...     pickle.dumps(exc) # Works fine.
classmethod from_exception(exc)
restore()
celery.serialization.create_exception_cls(name, module, parent=None)

Dynamically create an exception class.

celery.serialization.find_nearest_pickleable_exception(exc)

With an exception instance, iterate over its super classes (by mro) and find the first super exception that is pickleable. It does not go below Exception (i.e. it skips Exception, BaseException and object). If that happens you should use UnpickleableException instead.

Parameters:exc – An exception instance.
Returns:the nearest exception if it’s not Exception or below, if it is it returns None.

:rtype Exception:

celery.serialization.get_pickleable_exception(exc)

Make sure exception is pickleable.

celery.serialization.get_pickled_exception(exc)

Get original exception from exception pickled using get_pickleable_exception().

celery.serialization.subclass_exception(name, parent, module)

Previous topic

Tracing Execution - celery.execute.trace

Next topic

Datastructures - celery.datastructures

This Page

PKYDD"{g**Acelery-2.1-archived/internals/reference/celery.execute.trace.html Tracing Execution - celery.execute.trace — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Tracing Execution - celery.execute.trace

class celery.execute.trace.TaskTrace(task_name, task_id, args, kwargs, task=None, propagate=None, **_)
execute()
handle_after_return(status, retval, type_, tb, strtb)
handle_failure(exc, type_, tb, strtb)

Handle exception.

handle_retry(exc, type_, tb, strtb)

Handle retry exception.

handle_success(retval, *args)

Handle successful execution.

class celery.execute.trace.TraceInfo(status='PENDING', retval=None, exc_info=None)
classmethod trace(fun, args, kwargs, propagate=False)

Trace the execution of a function, calling the appropiate callback if the function raises retry, an failure or returned successfully.

Parameters:propagate – If true, errors will propagate to the caller.

Previous topic

Backend: Tokyo Tyrant - celery.backends.tyrant

Next topic

Serialization Tools - celery.serialization

This Page

PKYDDnA*A*Dcelery-2.1-archived/internals/reference/celery.backends.mongodb.html Backend: MongoDB - celery.backends.mongodb — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Backend: MongoDB - celery.backends.mongodb

MongoDB backend for celery.

class celery.backends.mongodb.Bunch(**kw)
class celery.backends.mongodb.MongoBackend(*args, **kwargs)
cleanup()

Delete expired metadata.

mongodb_database = 'celery'
mongodb_host = 'localhost'
mongodb_password = None
mongodb_port = 27017
mongodb_taskmeta_collection = 'celery_taskmeta'
mongodb_user = None
process_cleanup()

Previous topic

Backend: AMQP - celery.backends.amqp

Next topic

Backend: Redis - celery.backends.pyredis

This Page

PKYDD snsn9celery-2.1-archived/internals/reference/celery.utils.html Utilities - celery.utils — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Utilities - celery.utils

celery.utils.abbr(S, max, ellipsis='...')
celery.utils.abbrtask(S, max)
celery.utils.chunks(it, n)

Split an iterator into chunks with n elements each.

Examples

# n == 2 >>> x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 2) >>> list(x) [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10]]

# n == 3 >>> x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 3) >>> list(x) [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10]]

celery.utils.first(predicate, iterable)

Returns the first element in iterable that predicate returns a True value for.

celery.utils.firstmethod(method)

Returns a functions that with a list of instances, finds the first instance that returns a value for the given method.

The list can also contain promises (promise.)

celery.utils.fun_takes_kwargs(fun, kwlist=[])

With a function, and a list of keyword arguments, returns arguments in the list which the function takes.

If the object has an argspec attribute that is used instead of using the inspect.getargspec`() introspection.

Parameters:
  • fun – The function to inspect arguments of.
  • kwlist – The list of keyword arguments.

Examples

>>> def foo(self, x, y, logfile=None, loglevel=None):
...     return x * y
>>> fun_takes_kwargs(foo, ["logfile", "loglevel", "task_id"])
["logfile", "loglevel"]
>>> def foo(self, x, y, **kwargs):
>>> fun_takes_kwargs(foo, ["logfile", "loglevel", "task_id"])
["logfile", "loglevel", "task_id"]
celery.utils.gen_unique_id()

Generate a unique id, having - hopefully - a very small chance of collission.

For now this is provided by uuid.uuid4().

celery.utils.get_cls_by_name(name, aliases={})

Get class by name.

The name should be the full dot-separated path to the class:

modulename.ClassName

Example:

celery.concurrency.processes.TaskPool
                            ^- class name

If aliases is provided, a dict containing short name/long name mappings, the name is looked up in the aliases first.

Examples:

>>> get_cls_by_name("celery.concurrency.processes.TaskPool")
<class 'celery.concurrency.processes.TaskPool'>
>>> get_cls_by_name("default", {
...     "default": "celery.concurrency.processes.TaskPool"})
<class 'celery.concurrency.processes.TaskPool'>

# Does not try to look up non-string names. >>> from celery.concurrency.processes import TaskPool >>> get_cls_by_name(TaskPool) is TaskPool True

celery.utils.get_full_cls_name(cls)

With a class, get its full module and class name.

celery.utils.instantiate(name, *args, **kwargs)

Instantiate class by name.

See get_cls_by_name().

celery.utils.is_iterable(obj)
celery.utils.kwdict(kwargs)

Make sure keyword arguments are not in unicode.

This should be fixed in newer Python versions,
see: http://bugs.python.org/issue4978.
celery.utils.mattrgetter(*attrs)

Like operator.itemgetter() but returns None on missing attributes instead of raising AttributeError.

celery.utils.maybe_iso8601(dt)

Either datetime | str -> datetime or None -> None

celery.utils.maybe_promise(value)

Evaluates if the value is a promise.

celery.utils.mitemgetter(*items)

Like operator.itemgetter() but returns None on missing items instead of raising KeyError.

class celery.utils.mpromise(fun, *args, **kwargs)

Memoized promise.

The function is only evaluated once, every subsequent access will return the same value.

evaluated

Set to to True after the promise has been evaluated.

evaluate()
evaluated = False
celery.utils.noop(*args, **kwargs)

No operation.

Takes any arguments/keyword arguments and does nothing.

celery.utils.padlist(container, size, default=None)

Pad list with default elements.

Examples:

>>> first, last, city = padlist(["George", "Costanza", "NYC"], 3)
("George", "Costanza", "NYC")
>>> first, last, city = padlist(["George", "Costanza"], 3)
("George", "Costanza", None)
>>> first, last, city, planet = padlist(["George", "Costanza",
                                         "NYC"], 4, default="Earth")
("George", "Costanza", "NYC", "Earth")
class celery.utils.promise(fun, *args, **kwargs)

A promise.

Evaluated when called or if the evaluate() method is called. The function is evaluated on every access, so the value is not memoized (see mpromise).

Overloaded operations that will evaluate the promise:
__str__(), __repr__(), __cmp__().
evaluate()
celery.utils.repeatlast(it)

Iterate over all elements in the iterator, and when its exhausted yield the last value infinitely.

celery.utils.retry_over_time(fun, catch, args=[], kwargs={}, errback=<function noop at 0x4741320>, max_retries=None, interval_start=2, interval_step=2, interval_max=30)

Retry the function over and over until max retries is exceeded.

For each retry we sleep a for a while before we try again, this interval is increased for every retry until the max seconds is reached.

Parameters:
  • fun – The function to try
  • catch – Exceptions to catch, can be either tuple or a single exception class.
  • args – Positional arguments passed on to the function.
  • kwargs – Keyword arguments passed on to the function.
  • errback – Callback for when an exception in catch is raised. The callback must take two arguments: exc and interval, where exc is the exception instance, and interval is the time in seconds to sleep next..
  • max_retries – Maximum number of retries before we give up. If this is not set, we will retry forever.
  • interval_start – How long (in seconds) we start sleeping between retries.
  • interval_step – By how much the interval is increased for each retry.
  • interval_max – Maximum number of seconds to sleep between retries.
celery.utils.truncate_text(text, maxlen=128, suffix='...')

Truncates text to a maximum number of characters.

Previous topic

SQLAlchemy Session - celery.db.session

Next topic

Terminal Utilities - celery.utils.term

This Page

PKYDD1'Bcelery-2.1-archived/internals/reference/celery.utils.dispatch.html Signal Dispatch - celery.utils.dispatch — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Signal Dispatch - celery.utils.dispatch

Previous topic

timer2 - celery.utils.timer2

Next topic

Signals: Dispatcher - celery.utils.dispatch.signal

This Page

PKYDD 11@celery-2.1-archived/internals/reference/celery.utils.compat.html Python Compatibility - celery.utils.compat — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Python Compatibility - celery.utils.compat

class celery.utils.compat.OrderedDict(*args, **kwds)

Dictionary that remembers insertion order

clear() → None. Remove all items from od.
copy() → a shallow copy of od
classmethod fromkeys(S[, v]) → New ordered dictionary with keys from S

and values equal to v (which defaults to None).

items()
iteritems()
iterkeys()
itervalues()
keys()
pop(key, default=<object object at 0x4082b00>)
popitem() -> (k, v)

Return and remove a (key, value) pair. Pairs are returned in LIFO order if last is true or FIFO order if false.

setdefault(key, default=None)
update(other=(), **kwds)
values()
celery.utils.compat.chain_from_iterable()

chain.from_iterable(iterable) –> chain object

Alternate chain() contructor taking a single iterable argument that evaluates lazily.

celery.utils.compat.log_with_extra(logger, level, msg, *args, **kwargs)

Previous topic

Debugging Info - celery.utils.info

Next topic

Sending E-mail - celery.utils.mail

This Page

PKYDD(m/Dcelery-2.1-archived/internals/reference/celery.utils.functional.html functools compat - celery.utils.functional — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

functools compat - celery.utils.functional

Functional utilities for Python 2.4 compatibility.

Previous topic

Compatibility Patches - celery.utils.patch

Next topic

timer2 - celery.utils.timer2

This Page

PKYDD9p?}#}#Acelery-2.1-archived/internals/reference/celery.events.dumper.html Event Dumper Tool - celery.events.dumper — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Event Dumper Tool - celery.events.dumper

class celery.events.dumper.Dumper
format_task_event(hostname, timestamp, type, task, event)
on_event(event)
celery.events.dumper.evdump()
celery.events.dumper.humanize_type(type)

Previous topic

Curses Monitor - celery.events.cursesmon

Next topic

SQLAlchemy Models - celery.db.models

This Page

PKYDD;//@celery-2.1-archived/internals/reference/celery.worker.state.html Worker State - celery.worker.state — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Worker State - celery.worker.state

class celery.worker.state.Persistent(filename)
close()
db
merge(d)
open()
save()
storage = <module 'shelve' from '/usr/lib/python2.7/shelve.pyc'>
sync(d)
celery.worker.state.REVOKE_EXPIRES = 3600
celery.worker.state.active_requests

Set of currently active TaskRequest‘s.

celery.worker.state.total_count

Count of tasks executed by the worker, sorted by type.

celery.worker.state.revoked

The list of currently revoked tasks. (PERSISTENT if statedb set).

celery.worker.state.task_accepted(request)

Updates global state when a task has been accepted.

celery.worker.state.task_ready(request)

Updates global state when a task is ready.

Previous topic

Remote Control Command Registry - celery.worker.control.registry

Next topic

Multiprocessing Pool Support - celery.concurrency.processes

This Page

PKYDD| hhIcelery-2.1-archived/internals/reference/celery.concurrency.processes.html Multiprocessing Pool Support - celery.concurrency.processes — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Multiprocessing Pool Support - celery.concurrency.processes

Process Pools.

class celery.concurrency.processes.TaskPool(limit, logger=None, initializer=None, maxtasksperchild=None, timeout=None, soft_timeout=None, putlocks=True, initargs=())

Process Pool for processing tasks in parallel.

Parameters:
limit

The number of processes that can run simultaneously.

logger

The logger used for debugging.

class Pool(processes=None, initializer=None, initargs=(), maxtasksperchild=None, timeout=None, soft_timeout=None)

Class which supports an async version of the apply() builtin

class Process(group=None, target=None, name=None, args=(), kwargs={})

Process objects represent activity that is run in a separate process

The class is analagous to threading.Thread

authkey
daemon

Return whether process is a daemon

exitcode

Return exit code of process or None if it has yet to stop

ident

Return identifier (PID) of process or None if it has yet to start

is_alive()

Return whether process is alive

join(timeout=None)

Wait until child process terminates

name
pid

Return identifier (PID) of process or None if it has yet to start

run()

Method to be run in sub-process; can be overridden in sub-class

start()

Start child process

terminate()

Terminate process; sends SIGTERM signal or uses TerminateProcess()

class TaskPool.Pool.ResultHandler(outqueue, get, cache, poll, join_exited_workers, putlock)
body()
exception TaskPool.Pool.SoftTimeLimitExceeded

The soft time limit has been exceeded. This exception is raised to give the task a chance to clean up.

class TaskPool.Pool.Supervisor(pool)
body()
class TaskPool.Pool.TaskHandler(taskqueue, put, outqueue, pool)
body()
class TaskPool.Pool.TimeoutHandler(processes, cache, t_soft, t_hard, putlock)
body()
TaskPool.Pool.apply(func, args=(), kwds={})

Equivalent of apply() builtin

TaskPool.Pool.apply_async(func, args=(), kwds={}, callback=None, accept_callback=None, timeout_callback=None, waitforslot=False, error_callback=None)

Asynchronous equivalent of apply() builtin.

Callback is called when the functions return value is ready. The accept callback is called when the job is accepted to be executed.

Simplified the flow is like this:

>>> if accept_callback:
...     accept_callback()
>>> retval = func(*args, **kwds)
>>> if callback:
...     callback(retval)
TaskPool.Pool.close()
TaskPool.Pool.imap(func, iterable, chunksize=1)

Equivalent of itertools.imap() – can be MUCH slower than Pool.map()

TaskPool.Pool.imap_unordered(func, iterable, chunksize=1)

Like imap() method but ordering of results is arbitrary

TaskPool.Pool.join()
TaskPool.Pool.map(func, iterable, chunksize=None)

Equivalent of map() builtin

TaskPool.Pool.map_async(func, iterable, chunksize=None, callback=None)

Asynchronous equivalent of map() builtin

TaskPool.Pool.terminate()
TaskPool.apply_async(target, args=None, kwargs=None, callbacks=None, errbacks=None, accept_callback=None, timeout_callback=None, **compat)

Equivalent of the :func:apply built-in function.

All callbacks and errbacks should complete immediately since otherwise the thread which handles the result will get blocked.

TaskPool.info
TaskPool.on_ready(callbacks, errbacks, ret_value)

What to do when a worker task is ready and its return value has been collected.

TaskPool.on_worker_error(errbacks, exc)
TaskPool.safe_apply_callback(fun, *args)
TaskPool.start()

Run the task pool.

Will pre-fork all workers so they’re ready to accept tasks.

TaskPool.stop()

Gracefully stop the pool.

TaskPool.terminate()

Force terminate the pool.

celery.concurrency.processes.pingback(i)

Previous topic

Worker State - celery.worker.state

Next topic

extended multiprocessing.pool - celery.concurrency.processes.pool

This Page

PKYDD`N1[%@%@Acelery-2.1-archived/internals/reference/celery.backends.amqp.html Backend: AMQP - celery.backends.amqp — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Backend: AMQP - celery.backends.amqp

celery.backends.amqp

class celery.backends.amqp.AMQPBackend(connection=None, exchange=None, exchange_type=None, persistent=None, serializer=None, auto_delete=None, expires=None, **kwargs)

AMQP backend. Publish results by sending messages to the broker using the task id as routing key.

NOTE: Results published using this backend is read-once only. After the result has been read, the result is deleted. (however, it’s still cached locally by the backend instance).

close()
connection
consume(task_id, timeout=None)
get_task_meta(task_id, cache=True)
poll(task_id)
reload_task_result(task_id)
reload_taskset_result(task_id)

Reload taskset result, even if it has been previously fetched.

restore_taskset(taskset_id, cache=True)

Get the result of a taskset.

save_taskset(taskset_id, result)

Store the result and status of a task.

store_result(task_id, result, status, traceback=None, max_retries=20, retry_delay=0.2)

Send task return value and status.

wait_for(task_id, timeout=None, cache=True)
exception celery.backends.amqp.AMQResultWarning
class celery.backends.amqp.ResultConsumer(connection, task_id, **kwargs)
auto_delete = True
durable = False
exchange = 'celeryresults'
exchange_type = 'direct'
no_ack = True
class celery.backends.amqp.ResultPublisher(connection, task_id, **kwargs)
auto_delete = True
delivery_mode = 1
durable = False
exchange = 'celeryresults'
exchange_type = 'direct'
serializer = 'pickle'

Previous topic

Backend: Memcache - celery.backends.cache

Next topic

Backend: MongoDB - celery.backends.mongodb

This Page

PKYDD))..Ccelery-2.1-archived/internals/reference/celery.utils.timeutils.html Time and Date Utilities - celery.utils.timeutils — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Time and Date Utilities - celery.utils.timeutils

celery.utils.timeutils.delta_resolution(dt, delta)

Round a datetime to the resolution of a timedelta.

If the timedelta is in days, the datetime will be rounded to the nearest days, if the timedelta is in hours the datetime will be rounded to the nearest hour, and so on until seconds which will just return the original datetime.

celery.utils.timeutils.rate(rate)

Parses rate strings, such as "100/m" or "2/h" and converts them to seconds.

celery.utils.timeutils.remaining(start, ends_in, now=None, relative=True)

Calculate the remaining time for a start date and a timedelta.

e.g. “how many seconds left for 30 seconds after start?”

Parameters:
  • start – Start datetime.
  • ends_in – The end delta as a timedelta.
  • relative – If set to False, the end time will be calculated using delta_resolution() (i.e. rounded to the resolution of ends_in).
  • now – Function returning the current time and date, defaults to datetime.now().
celery.utils.timeutils.timedelta_seconds(delta)

Convert datetime.timedelta to seconds.

Doesn’t account for negative values.

celery.utils.timeutils.weekday(name)

Return the position of a weekday (0 - 7, where 0 is Sunday).

Example:

>>> weekday("sunday"), weekday("sun"), weekday("mon")
(0, 0, 1)

Previous topic

Terminal Utilities - celery.utils.term

Next topic

Debugging Info - celery.utils.info

This Page

PKYDDI@@Jcelery-2.1-archived/internals/reference/celery.utils.dispatch.saferef.html Signals: Safe References - celery.utils.dispatch.saferef — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Signals: Safe References - celery.utils.dispatch.saferef

“Safe weakrefs”, originally from pyDispatcher.

Provides a way to safely weakref any function, including bound methods (which aren’t handled by the core weakref module).

class celery.utils.dispatch.saferef.BoundMethodWeakref(target, on_delete=None)

‘Safe’ and reusable weak references to instance methods.

BoundMethodWeakref objects provide a mechanism for referencing a bound method without requiring that the method object itself (which is normally a transient object) is kept alive. Instead, the BoundMethodWeakref object keeps weak references to both the object and the function which together define the instance method.

key

the identity key for the reference, calculated by the class’s calculate_key() method applied to the target instance method

deletion_methods

sequence of callable objects taking single argument, a reference to this object which will be called when either the target object or target function is garbage collected (i.e. when this object becomes invalid). These are specified as the on_delete parameters of safe_ref() calls.

weak_self

weak reference to the target object

weak_func

weak reference to the target function

_all_instances

class attribute pointing to all live BoundMethodWeakref objects indexed by the class’s calculate_key(target) method applied to the target objects. This weak value dictionary is used to short-circuit creation so that multiple references to the same (object, function) pair produce the same BoundMethodWeakref instance.

classmethod calculate_key(target)

Calculate the reference key for this reference

Currently this is a two-tuple of the id()‘s of the target object and the target function respectively.

class celery.utils.dispatch.saferef.BoundNonDescriptorMethodWeakref(target, on_delete=None)

A specialized BoundMethodWeakref, for platforms where instance methods are not descriptors.

It assumes that the function name and the target attribute name are the same, instead of assuming that the function is a descriptor. This approach is equally fast, but not 100% reliable because functions can be stored on an attribute named differenty than the function’s name such as in:

>>> class A(object):
...     pass

>>> def foo(self):
...     return "foo"
>>> A.bar = foo

But this shouldn’t be a common use case. So, on platforms where methods aren’t descriptors (such as Jython) this implementation has the advantage of working in the most cases.

celery.utils.dispatch.saferef.get_bound_method_weakref(target, on_delete)

Instantiates the appropiate BoundMethodWeakRef, depending on the details of the underlying class method implementation.

celery.utils.dispatch.saferef.safe_ref(target, on_delete=None)

Return a safe weak reference to a callable target

Parameters:
  • target – the object to be weakly referenced, if it’s a bound method reference, will create a BoundMethodWeakref, otherwise creates a simple weakref.ref.
  • on_delete – if provided, will have a hard reference stored to the callable to be called after the safe reference goes out of scope with the reference object, (either a weakref.ref or a BoundMethodWeakref) as argument.

Previous topic

Signals: Dispatcher - celery.utils.dispatch.signal

Next topic

Platform Specific - celery.platforms

This Page

PKYDD,ÔHQHQNcelery-2.1-archived/internals/reference/celery.concurrency.processes.pool.html extended multiprocessing.pool - celery.concurrency.processes.pool — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

extended multiprocessing.pool - celery.concurrency.processes.pool

class celery.concurrency.processes.pool.Pool(processes=None, initializer=None, initargs=(), maxtasksperchild=None, timeout=None, soft_timeout=None)

Class which supports an async version of the apply() builtin

class Process(group=None, target=None, name=None, args=(), kwargs={})

Process objects represent activity that is run in a separate process

The class is analagous to threading.Thread

authkey
daemon

Return whether process is a daemon

exitcode

Return exit code of process or None if it has yet to stop

ident

Return identifier (PID) of process or None if it has yet to start

is_alive()

Return whether process is alive

join(timeout=None)

Wait until child process terminates

name
pid

Return identifier (PID) of process or None if it has yet to start

run()

Method to be run in sub-process; can be overridden in sub-class

start()

Start child process

terminate()

Terminate process; sends SIGTERM signal or uses TerminateProcess()

class Pool.ResultHandler(outqueue, get, cache, poll, join_exited_workers, putlock)
body()
exception Pool.SoftTimeLimitExceeded

The soft time limit has been exceeded. This exception is raised to give the task a chance to clean up.

class Pool.Supervisor(pool)
body()
class Pool.TaskHandler(taskqueue, put, outqueue, pool)
body()
class Pool.TimeoutHandler(processes, cache, t_soft, t_hard, putlock)
body()
Pool.apply(func, args=(), kwds={})

Equivalent of apply() builtin

Pool.apply_async(func, args=(), kwds={}, callback=None, accept_callback=None, timeout_callback=None, waitforslot=False, error_callback=None)

Asynchronous equivalent of apply() builtin.

Callback is called when the functions return value is ready. The accept callback is called when the job is accepted to be executed.

Simplified the flow is like this:

>>> if accept_callback:
...     accept_callback()
>>> retval = func(*args, **kwds)
>>> if callback:
...     callback(retval)
Pool.close()
Pool.imap(func, iterable, chunksize=1)

Equivalent of itertools.imap() – can be MUCH slower than Pool.map()

Pool.imap_unordered(func, iterable, chunksize=1)

Like imap() method but ordering of results is arbitrary

Pool.join()
Pool.map(func, iterable, chunksize=None)

Equivalent of map() builtin

Pool.map_async(func, iterable, chunksize=None, callback=None)

Asynchronous equivalent of map() builtin

Pool.terminate()

Previous topic

Multiprocessing Pool Support - celery.concurrency.processes

Next topic

Thread Pool Support EXPERIMENTAL - celery.concurrency.threads

This Page

PKYDD"">celery-2.1-archived/internals/reference/celery.db.session.html SQLAlchemy Session - celery.db.session — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

SQLAlchemy Session - celery.db.session

celery.db.session.ResultSession(dburi=None, **kwargs)
celery.db.session.create_session(dburi, **kwargs)
celery.db.session.get_engine(dburi, **kwargs)
celery.db.session.setup_results(engine)

Previous topic

SQLAlchemy Models - celery.db.models

Next topic

Utilities - celery.utils

This Page

PKYDD:CEE7celery-2.1-archived/internals/reference/celery.log.html Logging - celery.log — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Logging - celery.log

celery.log

class celery.log.ColorFormatter(msg, use_color=True)
format(record)
formatException(ei)
class celery.log.LoggingProxy(logger, loglevel=None)

Forward file object to logging.Logger instance.

Parameters:
  • logger – The logging.Logger instance to forward to.
  • loglevel – Loglevel to use when writing messages.
close()

When the object is closed, no write requests are forwarded to the logging object anymore.

closed = False
fileno()
flush()

This object is not buffered so any flush() requests are ignored.

isatty()

Always returns False. Just here for file support.

loglevel = 40
mode = 'w'
name = None
write(data)
writelines(sequence)

writelines(sequence_of_strings) -> None.

Write the strings to the file.

The sequence can be any iterable object producing strings. This is equivalent to calling write() for each string.

class celery.log.SilenceRepeated(action, max_iterations=10)

Only log action every n iterations.

celery.log.emergency_error(logfile, message)

Emergency error logging, for when there’s no standard file descriptors open because the process has been daemonized or for some other reason.

celery.log.get_default_logger(loglevel=None, name='celery')

Get default logger instance.

Parameters:loglevel – Initial log level.
celery.log.get_task_logger(loglevel=None, name=None)
celery.log.redirect_stdouts_to_logger(logger, loglevel=None)

Redirect sys.stdout and sys.stderr to a logging instance.

Parameters:
  • logger – The logging.Logger instance to redirect to.
  • loglevel – The loglevel redirected messages will be logged as.
celery.log.setup_logger(loglevel=30, logfile=None, format='[%(asctime)s: %(levelname)s/%(processName)s] %(message)s', colorize=False, name='celery', root=True, **kwargs)

Setup the multiprocessing logger. If logfile is not specified, then stderr is used.

Returns logger object.

celery.log.setup_logging_subsystem(loglevel=30, logfile=None, format='[%(asctime)s: %(levelname)s/%(processName)s] %(message)s', colorize=False, **kwargs)
celery.log.setup_task_logger(loglevel=30, logfile=None, format='[%(asctime)s: %(levelname)s/%(processName)s] [%(task_name)s(%(task_id)s)] %(message)s', colorize=False, task_kwargs=None, propagate=False, **kwargs)

Setup the task logger. If logfile is not specified, then stderr is used.

Returns logger object.

Previous topic

Message Routers - celery.routes

Next topic

Event Snapshots - celery.events.snapshot

This Page

PKYDD Gh)h):celery-2.1-archived/internals/reference/celery.routes.html Message Routers - celery.routes — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Message Routers - celery.routes

class celery.routes.MapRoute(map)

Makes a router out of a dict.

route_for_task(task, *args, **kwargs)
class celery.routes.Router(routes=None, queues=None, create_missing=False)
add_queue(queue)
expand_destination(route)
lookup_route(task, args=None, kwargs=None)
route(options, task, args=(), kwargs={})
celery.routes.merge(a, b)

Like dict(a, **b) except it will keep values from a, if the value in b is None.

celery.routes.prepare(routes)

Expand ROUTES setting.

Previous topic

Datastructures - celery.datastructures

Next topic

Logging - celery.log

This Page

PKYDD)@*@*Fcelery-2.1-archived/internals/reference/celery.backends.cassandra.html Backend: Cassandra - celery.backends.cassandra — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Backend: Cassandra - celery.backends.cassandra

celery.backends.cassandra

class celery.backends.cassandra.CassandraBackend(servers=None, keyspace=None, column_family=None, cassandra_options=None, **kwargs)

Highly fault tolerant Cassandra backend.

servers

List of Cassandra servers with format: “hostname:port”.

Raises celery.exceptions.ImproperlyConfigured:
 if module pycassa is not available.
cleanup()

Delete expired metadata.

column_family = None
i = 63
keyspace = None
process_cleanup()
servers = []

Previous topic

Backend: Redis - celery.backends.pyredis

Next topic

Backend: Tokyo Tyrant - celery.backends.tyrant

This Page

PKYDD2.CC=celery-2.1-archived/internals/reference/celery.platforms.html Platform Specific - celery.platforms — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Platform Specific - celery.platforms

class celery.platforms.DaemonContext(pidfile=None, working_directory='/', umask=0, **kwargs)
close()
detach()
open()
exception celery.platforms.LockFailed
class celery.platforms.PIDFile(path)
acquire()
is_locked()
read_pid()
release()
remove()
remove_if_stale()
write_pid()
celery.platforms.create_daemon_context(logfile=None, pidfile=None, uid=None, gid=None, **options)
celery.platforms.create_pidlock(pidfile)

Create and verify pidfile.

If the pidfile already exists the program exits with an error message, however if the process it refers to is not running anymore, the pidfile is just deleted.

celery.platforms.get_fdmax(default=None)
celery.platforms.ignore_signal(signal_name)

Ignore signal using SIG_IGN.

Does nothing if the platform doesn’t support signals, or the specified signal in particular.

celery.platforms.install_signal_handler(signal_name, handler)

Install a handler.

Does nothing if the current platform doesn’t support signals, or the specified signal in particular.

celery.platforms.parse_gid(gid)

Parse group id.

gid can be an integer (gid) or a string (group name), if a group name the gid is taken from the password file.

celery.platforms.parse_uid(uid)

Parse user id.

uid can be an interger (uid) or a string (username), if a username the uid is taken from the password file.

celery.platforms.reset_signal(signal_name)

Reset signal to the default signal handler.

Does nothing if the platform doesn’t support signals, or the specified signal in particular.

celery.platforms.set_effective_user(uid=None, gid=None)

Change process privileges to new user/group.

If uid and gid is set the effective user/group is set.

If only uid is set, the effective uer is set, and the group is set to the users primary group.

If only gid is set, the effective group is set.

celery.platforms.set_mp_process_title(progname, info=None, hostname=None)

Set the ps name using the multiprocessing process name.

Only works if setproctitle is installed.

celery.platforms.set_process_title(progname, info=None)

Set the ps name for the currently running process.

Only works if setproctitle is installed.

celery.platforms.setegid(gid)

Set effective group id.

celery.platforms.seteuid(uid)

Set effective user id.

celery.platforms.strargv(argv)

Previous topic

Signals: Safe References - celery.utils.dispatch.saferef

Next topic

Change history

This Page

PKYDD+$$>celery-2.1-archived/internals/reference/celery.utils.mail.html Sending E-mail - celery.utils.mail — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Sending E-mail - celery.utils.mail

class celery.utils.mail.Mailer(host='localhost', port=0, user=None, password=None, timeout=None)
send(message)
class celery.utils.mail.Message(to=None, sender=None, subject=None, body=None, charset='us-ascii')
exception celery.utils.mail.SendmailWarning

Problem happened while sending the e-mail message.

celery.utils.mail.mail_admins(subject, message, fail_silently=False)

Send a message to the admins in conf.ADMINS.

Previous topic

Python Compatibility - celery.utils.compat

Next topic

Compatibility Patches - celery.utils.patch

This Page

PKYDD>P$$Dcelery-2.1-archived/internals/reference/celery.worker.heartbeat.html Worker Heartbeats - celery.worker.heartbeat — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Worker Heartbeats - celery.worker.heartbeat

class celery.worker.heartbeat.Heart(eventer, interval=None)

Thread sending heartbeats at an interval.

Parameters:
  • eventer – Event dispatcher used to send the event.
  • interval – Time in seconds between heartbeats. Default is 2 minutes.
bpm

Beats per minute.

bpm = 0.5
run()
stop()

Gracefully shutdown the thread.

Previous topic

Token Bucket (rate limiting) - celery.worker.buckets

Next topic

Worker Control - celery.worker.control

This Page

PKYDD[uBkYkYBcelery-2.1-archived/internals/reference/celery.datastructures.html Datastructures - celery.datastructures — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Datastructures - celery.datastructures

class celery.datastructures.AttributeDict

Dict subclass with attribute access.

class celery.datastructures.ExceptionInfo(exc_info)

Exception wrapping an exception and its traceback.

Parameters:exc_info – The exception tuple info as returned by traceback.format_exception().
exception

The original exception.

traceback

A traceback from the point when exception was raised.

class celery.datastructures.LimitedSet(maxlen=None, expires=None)

Kind-of Set with limitations.

Good for when you need to test for membership (a in set), but the list might become to big, so you want to limit it so it doesn’t consume too much resources.

Parameters:
  • maxlen – Maximum number of members before we start deleting expired members.
  • expires – Time in seconds, before a membership expires.
add(value)

Add a new member.

as_dict()
chronologically
clear()

Remove all members

first

Get the oldest member.

pop_value(value)

Remove membership by finding value.

update(other)
class celery.datastructures.LocalCache(limit=None)

Dictionary with a finite number of keys.

Older items expires first.

class celery.datastructures.PositionQueue(length)

A positional queue of a specific length, with slots that are either filled or unfilled. When all of the positions are filled, the queue is considered full().

Parameters:length – see length.
length

The number of items required for the queue to be considered full.

class UnfilledPosition(position)

Describes an unfilled slot.

PositionQueue.filled

Returns the filled slots as a list.

PositionQueue.full()

Returns True if all of the slots has been filled.

class celery.datastructures.SharedCounter(initial_value)

Thread-safe counter.

Please note that the final value is not synchronized, this means that you should not update the value by using a previous value, the only reliable operations are increment and decrement.

Example

>>> max_clients = SharedCounter(initial_value=10)

# Thread one >>> max_clients += 1 # OK (safe)

# Thread two >>> max_clients -= 3 # OK (safe)

# Main thread >>> if client >= int(max_clients): # Max clients now at 8 ... wait()

>>> max_client = max_clients + 10 # NOT OK (unsafe)
decrement(n=1)

Decrement value.

increment(n=1)

Increment value.

class celery.datastructures.TokenBucket(fill_rate, capacity=1)

Token Bucket Algorithm.

See http://en.wikipedia.org/wiki/Token_Bucket Most of this code was stolen from an entry in the ASPN Python Cookbook: http://code.activestate.com/recipes/511490/

Parameters:
fill_rate

The rate in tokens/second that the bucket will be refilled.

capacity

Maximum number of tokens in the bucket. Default is 1.

timestamp

Timestamp of the last time a token was taken out of the bucket.

can_consume(tokens=1)
expected_time(tokens=1)

Returns the expected time in seconds when a new token should be available. Note: consumes a token from the bucket

celery.datastructures.consume_queue(queue)

Iterator yielding all immediately available items in a Queue.Queue.

The iterator stops as soon as the queue raises Queue.Empty.

Example

>>> q = Queue()
>>> map(q.put, range(4))
>>> list(consume_queue(q))
[0, 1, 2, 3]
>>> list(consume_queue(q))
[]

Previous topic

Serialization Tools - celery.serialization

Next topic

Message Routers - celery.routes

This Page

PKYDDXRB""Ecelery-2.1-archived/internals/reference/celery.backends.database.html Backend: SQLAlchemy Database - celery.backends.database — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Backend: SQLAlchemy Database - celery.backends.database

class celery.backends.database.DatabaseBackend(dburi=None, result_expires=None, engine_options=None, **kwargs)

The database result backend.

ResultSession()
cleanup()

Delete expired metadata.

Previous topic

Backend: Base - celery.backends.base

Next topic

Backend: Memcache - celery.backends.cache

This Page

PKYDD -HH@celery-2.1-archived/internals/reference/celery.utils.timer2.html timer2 - celery.utils.timer2 — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

timer2 - celery.utils.timer2

timer2 - Scheduler for Python functions.

class celery.utils.timer2.Entry(fun, args=None, kwargs=None)
cancel()
cancelled = False
class celery.utils.timer2.Schedule(max_interval=2, on_error=None)

ETA scheduler.

clear()
empty()

Is the schedule empty?

enter(entry, eta=None, priority=0)

Enter function into the scheduler.

Parameters:
  • entry – Item to enter.
  • eta – Scheduled time as a datetime.datetime object.
  • priority – Unused.
handle_error(exc_info)
info()
on_error = None
queue
exception celery.utils.timer2.TimedFunctionFailed
class celery.utils.timer2.Timer(schedule=None, on_error=None, on_tick=None, **kwargs)
class Entry(fun, args=None, kwargs=None)
cancel()
cancelled = False
Timer.apply_after(msecs, fun, args=(), kwargs={}, priority=0)
Timer.apply_at(eta, fun, args=(), kwargs={}, priority=0)
Timer.apply_entry(entry)
Timer.apply_interval(msecs, fun, args=(), kwargs={}, priority=0)
Timer.cancel(tref)
Timer.clear()
Timer.empty()
Timer.ensure_started()
Timer.enter(entry, eta, priority=None)
Timer.enter_after(msecs, entry, priority=0)
Timer.exit_after(msecs, priority=10)
Timer.next()
Timer.on_tick = None
Timer.queue
Timer.run()
Timer.running = False
Timer.stop()
celery.utils.timer2.to_timestamp(d)

Previous topic

functools compat - celery.utils.functional

Next topic

Signal Dispatch - celery.utils.dispatch

This Page

PKYDDX@e3e3Bcelery-2.1-archived/internals/reference/celery.worker.control.html Worker Control - celery.worker.control — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Worker Control - celery.worker.control

class celery.worker.control.ControlDispatch(logger=None, hostname=None, listener=None)

Execute worker control panel commands.

class Panel(logger, listener, hostname=None)
data = {'stats': <function stats at 0x6d7f410>, 'revoke': <function revoke at 0x67fe7d0>, 'enable_events': <function enable_events at 0x67fecf8>, 'set_loglevel': <function set_loglevel at 0x6d7f1b8>, 'dump_active': <function dump_active at 0x6d7f398>, 'dump_schedule': <function dump_schedule at 0x6d7f2a8>, 'rate_limit': <function rate_limit at 0x6d7f230>, 'disable_events': <function disable_events at 0x6d7f0c8>, 'cancel_consumer': <function cancel_consumer at 0x6d7f6e0>, 'dump_tasks': <function dump_tasks at 0x6d7f500>, 'dump_reserved': <function dump_reserved at 0x6d7f320>, 'add_consumer': <function add_consumer at 0x6d7f668>, 'shutdown': <function shutdown at 0x6d7f5f0>, 'dump_revoked': <function dump_revoked at 0x6d7f488>, 'heartbeat': <function heartbeat at 0x6d7f140>, 'ping': <function ping at 0x6d7f578>}
classmethod register(method, name=None)
ControlDispatch.ReplyPublisher

alias of ControlReplyPublisher

ControlDispatch.dispatch_from_message(message)

Dispatch by using message data received by the broker.

Example:

>>> def receive_message(message_data, message):
...     control = message_data.get("control")
...     if control:
...         ControlDispatch().dispatch_from_message(control)
ControlDispatch.execute(command, kwargs=None, reply_to=None)

Execute control command by name and keyword arguments.

Parameters:
  • command – Name of the command to execute.
  • kwargs – Keyword arguments.
ControlDispatch.reply(*args, **kwargs)

Previous topic

Worker Heartbeats - celery.worker.heartbeat

Next topic

Built-in Remote Control Commands - celery.worker.control.builtins

This Page

PKYDD U<U<Icelery-2.1-archived/internals/reference/celery.utils.dispatch.signal.html Signals: Dispatcher - celery.utils.dispatch.signal — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Signals: Dispatcher - celery.utils.dispatch.signal

Signal class.

class celery.utils.dispatch.signal.Signal(providing_args=None)

Base class for all signals

receivers
Internal attribute, holds a dictionary of
``{receriverkey (id): weakref(receiver)}`` mappings.
connect(receiver, sender=None, weak=True, dispatch_uid=None)

Connect receiver to sender for signal.

Parameters:
  • receiver

    A function or an instance method which is to receive signals. Receivers must be hashable objects.

    if weak is True, then receiver must be weak-referencable (more precisely saferef.safe_ref() must be able to create a reference to the receiver).

    Receivers must be able to accept keyword arguments.

    If receivers have a dispatch_uid attribute, the receiver will not be added if another receiver already exists with that dispatch_uid.

  • sender – The sender to which the receiver should respond. Must either be of type Signal, or None to receive events from any sender.
  • weak – Whether to use weak references to the receiver. By default, the module will attempt to use weak references to the receiver objects. If this parameter is false, then strong references will be used.
  • dispatch_uid – An identifier used to uniquely identify a particular instance of a receiver. This will usually be a string, though it may be anything hashable.
disconnect(receiver=None, sender=None, weak=True, dispatch_uid=None)

Disconnect receiver from sender for signal.

If weak references are used, disconnect need not be called. The receiver will be removed from dispatch automatically.

Parameters:
  • receiver – The registered receiver to disconnect. May be none if dispatch_uid is specified.
  • sender – The registered sender to disconnect.
  • weak – The weakref state to disconnect.
  • dispatch_uid – the unique identifier of the receiver to disconnect
send(sender, **named)

Send signal from sender to all connected receivers.

If any receiver raises an error, the error propagates back through send, terminating the dispatch loop, so it is quite possible to not have all receivers called if a raises an error.

Parameters:
  • sender – The sender of the signal. Either a specific object or None.
  • **named – Named arguments which will be passed to receivers.
Returns:

a list of tuple pairs: [(receiver, response), ... ].

send_robust(sender, **named)

Send signal from sender to all connected receivers catching errors.

Parameters:
  • sender – The sender of the signal. Can be any python object (normally one registered with a connect if you actually want something to occur).
  • **named – Named arguments which will be passed to receivers. These arguments must be a subset of the argument names defined in providing_args.
Returns:

a list of tuple pairs: [(receiver, response), ... ].

Raises DispatcherKeyError:
 

if any receiver raises an error (specifically any subclass of Exception), the error instance is returned as the result for that receiver.

Previous topic

Signal Dispatch - celery.utils.dispatch

Next topic

Signals: Safe References - celery.utils.dispatch.saferef

This Page

PKYDDj_662celery-2.1-archived/internals/reference/index.html Internal Module Reference — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Internal Module Reference

Release:2.1
Date:February 04, 2014

Previous topic

Module Index

Next topic

Multiprocessing Worker - celery.worker

This Page

PKYDDHH55Dcelery-2.1-archived/internals/reference/celery.backends.pyredis.html Backend: Redis - celery.backends.pyredis — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Backend: Redis - celery.backends.pyredis

class celery.backends.pyredis.RedisBackend(redis_host=None, redis_port=None, redis_db=None, redis_timeout=None, redis_password=None, redis_connect_retry=None, redis_connect_timeout=None, expires=None)

Redis based task backend store.

redis_host

The hostname to the Redis server.

redis_port

The port to the Redis server.

Raises celery.exceptions.ImproperlyConfigured if the REDIS_HOST or REDIS_PORT settings is not set.

close()

Close the connection to redis.

delete(key)
deprecated_settings = frozenset(['REDIS_TIMEOUT', 'REDIS_CONNECT_RETRY'])
expires = None
get(key)
open()

Get redis.Redis` instance with the current server configuration.

The connection is then cached until you do an explicit close().

process_cleanup()
redis_connect_retry = None
redis_db = 0
redis_host = 'localhost'
redis_password = None
redis_port = 6379
redis_timeout = None
set(key, value)

Previous topic

Backend: MongoDB - celery.backends.mongodb

Next topic

Backend: Cassandra - celery.backends.cassandra

This Page

PKYDDsJxXxX+celery-2.1-archived/userguide/tasksets.html Sets of tasks, Subtasks and Callbacks — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Sets of tasks, Subtasks and Callbacks

Subtasks

New in version 2.0.

The subtask type is used to wrap the arguments and execution options for a single task invocation:

subtask(task_name_or_cls, args, kwargs, options)

For convenience every task also has a shortcut to create subtasks:

task.subtask(args, kwargs, options)

subtask is actually a dict subclass, which means it can be serialized with JSON or other encodings that doesn’t support complex Python objects.

Also it can be regarded as a type, as the following usage works:

>>> s = subtask("tasks.add", args=(2, 2), kwargs={})

>>> subtask(dict(s))  # coerce dict into subtask

This makes it excellent as a means to pass callbacks around to tasks.

Callbacks

Let’s improve our add task so it can accept a callback that takes the result as an argument:

from celery.decorators import task
from celery.task.sets import subtask

@task
def add(x, y, callback=None):
    result = x + y
    if callback is not None:
        subtask(callback).delay(result)
    return result

subtask also knows how it should be applied, asynchronously by delay(), and eagerly by apply().

The best thing is that any arguments you add to subtask.delay, will be prepended to the arguments specified by the subtask itself!

If you have the subtask:

>>> add.subtask(args=(10, ))

subtask.delay(result) becomes:

>>> add.apply_async(args=(result, 10))

...

Now let’s execute our new add task with a callback:

>>> add.delay(2, 2, callback=add.subtask((8, )))

As expected this will first launch one task calculating 2 + 2, then another task calculating 4 + 8.

Task Sets

The TaskSet enables easy invocation of several tasks at once, and is then able to join the results in the same order as the tasks were invoked.

A task set takes a list of subtask‘s:

>>> from celery.task.sets import TaskSet
>>> from tasks import add

>>> job = TaskSet(tasks=[
...             add.subtask((4, 4)),
...             add.subtask((8, 8)),
...             add.subtask((16, 16)),
...             add.subtask((32, 32)),
... ])

>>> result = job.apply_async()

>>> result.ready()  # has all subtasks completed?
True
>>> result.successful() # was all subtasks successful?

>>> result.join()
[4, 8, 16, 32, 64]

Results

When a TaskSet is applied it returns a TaskSetResult object.

TaskSetResult takes a list of AsyncResult instances and operates on them as if it was a single task.

It supports the following operations:

  • successful()

    Returns True if all of the subtasks finished successfully (e.g. did not raise an exception).

  • failed()

    Returns True if any of the subtasks failed.

  • waiting()

    Returns True if any of the subtasks is not ready yet.

  • ready()

    Return True if all of the subtasks are ready.

  • completed_count()

    Returns the number of completed subtasks.

  • revoke()

    Revokes all of the subtasks.

  • iterate()

    Iterates over the return values of the subtasks as they finish, one by one.

  • join()

    Gather the results for all of the subtasks and return a list with them ordered by the order of which they were called.

Previous topic

Periodic Tasks

Next topic

HTTP Callback Tasks (Webhooks)

This Page

PKYDDG:P:P1celery-2.1-archived/userguide/periodic-tasks.html Periodic Tasks — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Periodic Tasks

Introduction

celerybeat is a scheduler. It kicks off tasks at regular intervals, which are then executed by the worker nodes available in the cluster.

By default the entries are taken from the CELERYBEAT_SCHEDULE setting, but custom stores can also be used, like storing the entries in an SQL database.

You have to ensure only a single scheduler is running for a schedule at a time, otherwise you would end up with duplicate tasks. Using a centralized approach means the schedule does not have to be synchronized, and the service can operate without using locks.

Entries

To schedule a task periodically you have to add an entry to the CELERYBEAT_SCHEDULE setting.

Example: Run the tasks.add task every 30 seconds.

from datetime import timedelta

CELERYBEAT_SCHEDULE = {
    "runs-every-30-seconds": {
        "task": "tasks.add",
        "schedule": timedelta(seconds=30),
        "args": (16, 16)
    },
}

Using a timedelta for the schedule means the task will be executed 30 seconds after celerybeat starts, and then every 30 seconds after the last run. A crontab like schedule also exists, see the section on Crontab schedules.

Available Fields

  • task

    The name of the task to execute.

  • schedule

    The frequency of execution.

    This can be the number of seconds as an integer, a timedelta, or a crontab. You can also define your own custom schedule types, by extending the interface of schedule.

  • args

    Positional arguments (list or tuple).

  • kwargs

    Keyword arguments (dict).

  • options

    Execution options (dict).

    This can be any argument supported by apply_async(), e.g. exchange, routing_key, expires, and so on.

  • relative

    By default timedelta schedules are scheduled “by the clock”. This means the frequency is rounded to the nearest second, minute, hour or day depending on the period of the timedelta.

    If relative is true the frequency is not rounded and will be relative to the time when celerybeat was started.

Crontab schedules

If you want more control over when the task is executed, for example, a particular time of day or day of the week, you can use the crontab schedule type:

from celery.schedules import crontab

CELERYBEAT_SCHEDULE = {
    # Executes every Monday morning at 7:30 A.M
    "every-monday-morning": {
        "task": "tasks.add",
        "schedule": crontab(hour=7, minute=30, day_of_week=1),
        "args": (16, 16),
    },
}

The syntax of these crontab expressions are very flexible. Some examples:

Example Meaning
crontab() Execute every minute.
crontab(minute=0, hour=0) Execute daily at midnight.
crontab(minute=0, hour=”*/3”) Execute every three hours: 3am, 6am, 9am, noon, 3pm, 6pm, 9pm.
crontab(minute=0,
hour=[0,3,6,9,12,15,18,21])
Same as previous.
crontab(minute=”*/15”) Execute every 15 minutes.
crontab(day_of_week=”sunday”) Execute every minute (!) at Sundays.
crontab(minute=”*”,
hour=”*”, day_of_week=”sun”)
Same as previous.
crontab(minute=”*/10”,
hour=”3,17,22”, day_of_week=”thu,fri”)
Execute every ten minutes, but only between 3-4 am, 5-6 pm and 10-11 pm on Thursdays or Fridays.
crontab(minute=0, hour=”*/2,*/3”) Execute every even hour, and every hour divisible by three. This means: at every hour except: 1am, 5am, 7am, 11am, 1pm, 5pm, 7pm, 11pm
crontab(minute=0, hour=”*/5”) Execute hour divisible by 5. This means that it is triggered at 3pm, not 5pm (since 3pm equals the 24-hour clock value of “15”, which is divisible by 5).
crontab(minute=0, hour=”*/3,8-17”) Execute every hour divisible by 3, and every hour during office hours (8am-5pm).

Starting celerybeat

To start the celerybeat service:

$ celerybeat

You can also start celerybeat with celeryd by using the -B option, this is convenient if you only intend to use one worker node:

$ celeryd -B

Celerybeat needs to store the last run times of the tasks in a local database file (named celerybeat-schedule by default), so it needs access to write in the current directory, or alternatively you can specify a custom location for this file:

$ celerybeat -s /home/celery/var/run/celerybeat-schedule

Note

To daemonize celerybeat see Running celeryd as a daemon.

Using custom scheduler classes

Custom scheduler classes can be specified on the command line (the -S argument). The default scheduler is celery.beat.PersistentScheduler, which is simply keeping track of the last run times in a local database file (a shelve).

django-celery also ships with a scheduler that stores the schedule in the Django database:

$ celerybeat -S djcelery.schedulers.DatabaseScheduler

Using django-celery‘s scheduler you can add, modify and remove periodic tasks from the Django Admin.

Previous topic

Workers Guide

Next topic

Sets of tasks, Subtasks and Callbacks

This Page

PKYDDZZ*celery-2.1-archived/userguide/routing.html Routing Tasks — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Routing Tasks

Warning

This document refers to functionality only available in brokers using AMQP. Other brokers may implement some functionality, see their respective documentation for more information, or contact the Mailing list.

Basics

Automatic routing

The simplest way to do routing is to use the CELERY_CREATE_MISSING_QUEUES setting (on by default).

With this setting on, a named queue that is not already defined in CELERY_QUEUES will be created automatically. This makes it easy to perform simple routing tasks.

Say you have two servers, x, and y that handles regular tasks, and one server z, that only handles feed related tasks. You can use this configuration:

CELERY_ROUTES = {"feed.tasks.import_feed": {"queue": "feeds"}}

With this route enabled import feed tasks will be routed to the "feeds" queue, while all other tasks will be routed to the default queue (named "celery" for historic reasons).

Now you can start server z to only process the feeds queue like this:

(z)$ celeryd -Q feeds

You can specify as many queues as you want, so you can make this server process the default queue as well:

(z)$ celeryd -Q feeds,celery

Changing the name of the default queue

You can change the name of the default queue by using the following configuration:

CELERY_QUEUES = {"default": {"exchange": "default",
                             "binding_key": "default"}}
CELERY_DEFAULT_QUEUE = "default"

How the queues are defined

The point with this feature is to hide the complex AMQP protocol for users with only basic needs. However – you may still be interested in how these queues are declared.

A queue named "video" will be created with the following settings:

{"exchange": "video",
 "exchange_type": "direct",
 "routing_key": "video"}

The non-AMQP backends like ghettoq does not support exchanges, so they require the exchange to have the same name as the queue. Using this design ensures it will work for them as well.

Manual routing

Say you have two servers, x, and y that handles regular tasks, and one server z, that only handles feed related tasks, you can use this configuration:

CELERY_DEFAULT_QUEUE = "default"
CELERY_QUEUES = {
    "default": {
        "binding_key": "task.#",
    },
    "feed_tasks": {
        "binding_key": "feed.#",
    },
}
CELERY_DEFAULT_EXCHANGE = "tasks"
CELERY_DEFAULT_EXCHANGE_TYPE = "topic"
CELERY_DEFAULT_ROUTING_KEY = "task.default"

CELERY_QUEUES is a map of queue names and their exchange/type/binding_key, if you don’t set exchange or exchange type, they will be taken from the CELERY_DEFAULT_EXCHANGE and CELERY_DEFAULT_EXCHANGE_TYPE settings.

To route a task to the feed_tasks queue, you can add an entry in the CELERY_ROUTES setting:

CELERY_ROUTES = {
        "feeds.tasks.import_feed": {
            "queue": "feed_tasks",
            "routing_key": "feed.import",
        },
}

You can also override this using the routing_key argument to apply_async(), or send_task():

>>> from feeds.tasks import import_feed
>>> import_feed.apply_async(args=["http://cnn.com/rss"],
...                         queue="feed_tasks",
...                         routing_key="feed.import")

To make server z consume from the feed queue exclusively you can start it with the -Q option:

(z)$ celeryd -Q feed_tasks --hostname=z.example.com

Servers x and y must be configured to consume from the default queue:

(x)$ celeryd -Q default --hostname=x.example.com
(y)$ celeryd -Q default --hostname=y.example.com

If you want, you can even have your feed processing worker handle regular tasks as well, maybe in times when there’s a lot of work to do:

(z)$ celeryd -Q feed_tasks,default --hostname=z.example.com

If you have another queue but on another exchange you want to add, just specify a custom exchange and exchange type:

CELERY_QUEUES = {
        "feed_tasks": {
            "binding_key": "feed.#",
        },
        "regular_tasks": {
            "binding_key": "task.#",
        },
        "image_tasks": {
            "binding_key": "image.compress",
            "exchange": "mediatasks",
            "exchange_type": "direct",
        },
    }

If you’re confused about these terms, you should read up on AMQP.

See also

In addition to the AMQP Primer below, there’s Rabbits and Warrens, an excellent blog post describing queues and exchanges. There’s also AMQP in 10 minutes*: Flexible Routing Model, and Standard Exchange Types. For users of RabbitMQ the RabbitMQ FAQ could be useful as a source of information.

AMQP Primer

Messages

A message consists of headers and a body. Celery uses headers to store the content type of the message and its content encoding. The content type is usually the serialization format used to serialize the message. The body contains the name of the task to execute, the task id (UUID), the arguments to execute it with and some additional metadata – like the number of retries or an ETA.

This is an example task message represented as a Python dictionary:

{"task": "myapp.tasks.add",
 "id": "54086c5e-6193-4575-8308-dbab76798756",
 "args": [4, 4],
 "kwargs": {}}

Producers, consumers and brokers

The client sending messages is typically called a publisher, or a producer, while the entity receiving messages is called a consumer.

The broker is the message server, routing messages from producers to consumers.

You are likely to see these terms used a lot in AMQP related material.

Exchanges, queues and routing keys.

  1. Messages are sent to exchanges.
  2. An exchange routes messages to one or more queues. Several exchange types exists, providing different ways to do routing, or implementing different messaging scenarios.
  3. The message waits in the queue until someone consumes it.
  4. The message is deleted from the queue when it has been acknowledged.

The steps required to send and receive messages are:

  1. Create an exchange
  2. Create a queue
  3. Bind the queue to the exchange.

Celery automatically creates the entities necessary for the queues in CELERY_QUEUES to work (except if the queue’s auto_declare setting is set to False).

Here’s an example queue configuration with three queues; One for video, one for images and one default queue for everything else:

CELERY_QUEUES = {
    "default": {
        "exchange": "default",
        "binding_key": "default"},
    "videos": {
        "exchange": "media",
        "binding_key": "media.video",
    },
    "images": {
        "exchange": "media",
        "binding_key": "media.image",
    }
}
CELERY_DEFAULT_QUEUE = "default"
CELERY_DEFAULT_EXCHANGE_TYPE = "direct"
CELERY_DEFAULT_ROUTING_KEY = "default"

Note

In Celery the routing_key is the key used to send the message, while binding_key is the key the queue is bound with. In the AMQP API they are both referred to as the routing key.

Exchange types

The exchange type defines how the messages are routed through the exchange. The exchange types defined in the standard are direct, topic, fanout and headers. Also non-standard exchange types are available as plug-ins to RabbitMQ, like the last-value-cache plug-in by Michael Bridgen.

Direct exchanges

Direct exchanges match by exact routing keys, so a queue bound by the routing key video only receives messages with that routing key.

Topic exchanges

Topic exchanges matches routing keys using dot-separated words, and the wildcard characters: * (matches a single word), and # (matches zero or more words).

With routing keys like usa.news, usa.weather, norway.news and norway.weather, bindings could be *.news (all news), usa.# (all items in the USA) or usa.weather (all USA weather items).

Hands-on with the API

Celery comes with a tool called camqadm (short for Celery AMQ Admin). It’s used for command-line access to the AMQP API, enabling access to administration tasks like creating/deleting queues and exchanges, purging queues or sending messages.

You can write commands directly in the arguments to camqadm, or just start with no arguments to start it in shell-mode:

$ camqadm
-> connecting to amqp://guest@localhost:5672/.
-> connected.
1>

Here 1> is the prompt. The number 1, is the number of commands you have executed so far. Type help for a list of commands available. It also supports auto-completion, so you can start typing a command and then hit the tab key to show a list of possible matches.

Let’s create a queue we can send messages to:

1> exchange.declare testexchange direct
ok.
2> queue.declare testqueue
ok. queue:testqueue messages:0 consumers:0.
3> queue.bind testqueue testexchange testkey
ok.

This created the direct exchange testexchange, and a queue named testqueue. The queue is bound to the exchange using the routing key testkey.

From now on all messages sent to the exchange testexchange with routing key testkey will be moved to this queue. We can send a message by using the basic.publish command:

4> basic.publish "This is a message!" testexchange testkey
ok.

Now that the message is sent we can retrieve it again. We use the basic.get command here, which pops a single message off the queue, this command is not recommended for production as it implies polling, any real application would declare consumers instead.

Pop a message off the queue:

5> basic.get testqueue
{'body': 'This is a message!',
 'delivery_info': {'delivery_tag': 1,
                   'exchange': u'testexchange',
                   'message_count': 0,
                   'redelivered': False,
                   'routing_key': u'testkey'},
 'properties': {}}

AMQP uses acknowledgment to signify that a message has been received and processed successfully. If the message has not been acknowledged and consumer channel is closed, the message will be delivered to another consumer.

Note the delivery tag listed in the structure above; Within a connection channel, every received message has a unique delivery tag, This tag is used to acknowledge the message. Also note that delivery tags are not unique across connections, so in another client the delivery tag 1 might point to a different message than in this channel.

You can acknowledge the message we received using basic.ack:

6> basic.ack 1
ok.

To clean up after our test session we should delete the entities we created:

7> queue.delete testqueue
ok. 0 messages deleted.
8> exchange.delete testexchange
ok.

Routing Tasks

Defining queues

In Celery available queues are defined by the CELERY_QUEUES setting.

Here’s an example queue configuration with three queues; One for video, one for images and one default queue for everything else:

CELERY_QUEUES = {
    "default": {
        "exchange": "default",
        "binding_key": "default"},
    "videos": {
        "exchange": "media",
        "exchange_type": "topic",
        "binding_key": "media.video",
    },
    "images": {
        "exchange": "media",
        "exchange_type": "topic",
        "binding_key": "media.image",
    }
}
CELERY_DEFAULT_QUEUE = "default"
CELERY_DEFAULT_EXCHANGE = "default"
CELERY_DEFAULT_EXCHANGE_TYPE = "direct"
CELERY_DEFAULT_ROUTING_KEY = "default"

Here, the CELERY_DEFAULT_QUEUE will be used to route tasks that doesn’t have an explicit route.

The default exchange, exchange type and routing key will be used as the default routing values for tasks, and as the default values for entries in CELERY_QUEUES.

Specifying task destination

The destination for a task is decided by the following (in order):

  1. The Routers defined in CELERY_ROUTES.
  2. The routing arguments to apply_async().
  3. Routing related attributes defined on the Task itself.

It is considered best practice to not hard-code these settings, but rather leave that as configuration options by using Routers; This is the most flexible approach, but sensible defaults can still be set as task attributes.

Routers

A router is a class that decides the routing options for a task.

All you need to define a new router is to create a class with a route_for_task method:

class MyRouter(object):

    def route_for_task(self, task, args=None, kwargs=None):
        if task == "myapp.tasks.compress_video":
            return {"exchange": "video",
                    "exchange_type": "topic",
                    "routing_key": "video.compress"}
        return None

If you return the queue key, it will expand with the defined settings of that queue in CELERY_QUEUES:

{"queue": "video", "routing_key": "video.compress"}

becomes -->

    {"queue": "video",
     "exchange": "video",
     "exchange_type": "topic",
     "routing_key": "video.compress"}

You install router classes by adding them to the CELERY_ROUTES setting:

CELERY_ROUTES = (MyRouter, )

Router classes can also be added by name:

CELERY_ROUTES = ("myapp.routers.MyRouter", )

For simple task name -> route mappings like the router example above, you can simply drop a dict into CELERY_ROUTES to get the same behavior:

CELERY_ROUTES = ({"myapp.tasks.compress_video": {
                        "queue": "video",
                        "routing_key": "video.compress"
                 }}, )

The routers will then be traversed in order, it will stop at the first router returning a true value, and use that as the final route for the task.

Previous topic

HTTP Callback Tasks (Webhooks)

Next topic

Monitoring Guide

This Page

PKYDDr5-celery-2.1-archived/userguide/monitoring.html Monitoring Guide — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Monitoring Guide

Introduction

There are several tools available to monitor and inspect Celery clusters.

This document describes some of these, as as well as features related to monitoring, like events and broadcast commands.

Workers

celeryctl: Management Utility

New in version 2.1.

celeryctl is a command line utility to inspect and manage worker nodes (and to some degree tasks).

To list all the commands available do:

$ celeryctl help

or to get help for a specific command do:

$ celeryctl <command> --help

Commands

  • status: List active nodes in this cluster
    $ celeryctl status
  • result: Show the result of a task
    $ celeryctl result -t tasks.add 4e196aa4-0141-4601-8138-7aa33db0f577

    Note that you can omit the name of the task as long as the task doesn’t use a custom result backend.

  • inspect active: List active tasks
    $ celeryctl inspect active

    These are all the tasks that are currently being executed.

  • inspect scheduled: List scheduled ETA tasks
    $ celeryctl inspect scheduled

    These are tasks reserved by the worker because they have the eta or countdown argument set.

  • inspect reserved: List reserved tasks
    $ celeryctl inspect reserved

    This will list all tasks that have been prefetched by the worker, and is currently waiting to be executed (does not include tasks with an eta).

  • inspect revoked: List history of revoked tasks
    $ celeryctl inspect revoked
  • inspect registered_tasks: List registered tasks
    $ celeryctl inspect registered_tasks
  • inspect states: Show worker statistics
    $ celeryctl inspect stats
  • inspect enable_events: Enable events
    $ celeryctl inspect enable_events
  • inspect disable_events: Disable events
    $ celeryctl inspect disable_events

Note

All inspect commands supports a --timeout argument, This is the number of seconds to wait for responses. You may have to increase this timeout if you’re getting empty responses due to latency.

Specifying destination nodes

By default the inspect commands operates on all workers. You can specify a single, or a list of workers by using the --destination argument:

$ celeryctl inspect -d w1,w2 reserved

Django Admin Monitor

New in version 2.1.

When you add django-celery to your Django project you will automatically get a monitor section as part of the Django admin interface.

This can also be used if you’re not using Celery with a Django project.

Screenshot

../_images/djangoceleryadmin2.jpg

Starting the monitor

The Celery section will already be present in your admin interface, but you won’t see any data appearing until you start the snapshot camera.

The camera takes snapshots of the events your workers sends at regular intervals, storing them in your database (See Snapshots).

To start the camera run:

$ python manage.py celerycam

If you haven’t already enabled the sending of events you need to do so:

$ python manage.py celeryctl inspect enable_events
Tip:You can enable events when the worker starts using the -E argument to celeryd.

Now that the camera has been started, and events have been enabled you should be able to see your workers and the tasks in the admin interface (it may take some time for workers to show up).

The admin interface shows tasks, worker nodes, and even lets you perform some actions, like revoking and rate limiting tasks, or shutting down worker nodes.

Shutter frequency

By default the camera takes a snapshot every second, if this is too frequent or you want to have higher precision, then you can change this using the --frequency argument. This is a float describing how often, in seconds, it should wake up to check if there are any new events:

$ python manage.py celerycam --frequency=3.0

The camera also supports rate limiting using the --maxrate argument. While the frequency controls how often the camera thread wakes up, the rate limit controls how often it will actually take a snapshot.

The rate limits can be specified in seconds, minutes or hours by appending /s, /m or /h to the value. Example: --maxrate=100/m, means “hundred writes a minute”.

The rate limit is off by default, which means it will take a snapshot for every --frequency seconds.

The events also expire after some time, so the database doesn’t fill up. Successful tasks are deleted after 1 day, failed tasks after 3 days, and tasks in other states after 5 days.

Using outside of Django

django-celery also installs the djcelerymon program. This can be used by non-Django users, and runs both a web server and a snapshot camera in the same process.

Installing

Using pip:

$ pip install -U django-celery

or using easy_install:

$ easy_install -U django-celery

Running

djcelerymon reads configuration from your Celery configuration module, and sets up the Django environment using the same settings:

$ djcelerymon

Database tables will be created the first time the monitor is run. By default an sqlite3 database file named djcelerymon.db is used, so make sure this file is writeable by the user running the monitor.

If you want to store the events in a different database, e.g. MySQL, then you can configure the DATABASE* settings directly in your Celery config module. See http://docs.djangoproject.com/en/dev/ref/settings/#databases for more information about the database options available.

You will also be asked to create a superuser (and you need to create one to be able to log into the admin later):

Creating table auth_permission
Creating table auth_group_permissions
[...]

You just installed Django's auth system, which means you don't
have any superusers defined.  Would you like to create
one now? (yes/no): yes
Username (Leave blank to use 'username'): username
E-mail address: me@example.com
Password: ******
Password (again): ******
Superuser created successfully.

[...]
Django version 1.2.1, using settings 'celeryconfig'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Now that the service is started you can visit the monitor at http://127.0.0.1:8000, and log in using the user you created.

For a list of the command line options supported by djcelerymon, please see djcelerymon --help.

celeryev: Curses Monitor

New in version 2.0.

celeryev is a simple curses monitor displaying task and worker history. You can inspect the result and traceback of tasks, and it also supports some management commands like rate limiting and shutting down workers.

../_images/celeryevshotsm1.jpg

celeryev is also used to start snapshot cameras (see Snapshots:

$ celeryev --camera=<camera-class> --frequency=1.0

and it includes a tool to dump events to stdout:

$ celeryev --dump

For a complete list of options use --help:

$ celeryev --help

celerymon: Web monitor

celerymon is the ongoing work to create a web monitor. It’s far from complete yet, and does currently only support a JSON API. Help is desperately needed for this project, so if you, or someone you know would like to contribute templates, design, code or help this project in any way, please get in touch!

Tip:The Django admin monitor can be used even though you’re not using Celery with a Django project. See Using outside of Django.

RabbitMQ

To manage a Celery cluster it is important to know how RabbitMQ can be monitored.

RabbitMQ ships with the rabbitmqctl(1) command, with this you can list queues, exchanges, bindings, queue lengths, the memory usage of each queue, as well as manage users, virtual hosts and their permissions.

Note

The default virtual host ("/") is used in these examples, if you use a custom virtual host you have to add the -p argument to the command, e.g: rabbitmqctl list_queues -p my_vhost ....

Inspecting queues

Finding the number of tasks in a queue:

$ rabbitmqctl list_queues name messages messages_ready \
                          messages_unacknowlged

Here messages_ready is the number of messages ready for delivery (sent but not received), messages_unacknowledged is the number of messages that has been received by a worker but not acknowledged yet (meaning it is in progress, or has been reserved). messages is the sum of ready and unacknowledged messages combined.

Finding the number of workers currently consuming from a queue:

$ rabbitmqctl list_queues name consumers

Finding the amount of memory allocated to a queue:

$ rabbitmqctl list_queues name memory
Tip:Adding the -q option to rabbitmqctl(1) makes the output easier to parse.

Munin

This is a list of known Munin plug-ins that can be useful when maintaining a Celery cluster.

Events

The worker has the ability to send a message whenever some event happens. These events are then captured by tools like celerymon and celeryev to monitor the cluster.

Snapshots

Even a single worker can produce a huge amount of events, so storing the history of all events on disk may be very expensive.

A sequence of events describes the cluster state in that time period, by taking periodic snapshots of this state we can keep all history, but still only periodically write it to disk.

To take snapshots you need a Camera class, with this you can define what should happen every time the state is captured; You can write it to a database, send it by e-mail or something else entirely.

celeryev is then used to take snapshots with the camera, for example if you want to capture state every 2 seconds using the camera myapp.Camera you run celeryev with the following arguments:

$ celeryev -c myapp.Camera --frequency=2.0

Custom Camera

Here is an example camera, dumping the snapshot to screen:

from pprint import pformat

from celery.events.snapshot import Polaroid


class DumpCam(Polaroid):

    def shutter(self, state):
        if not state.event_count:
            # No new events since last snapshot.
            return
        print("Workers: %s" % (pformat(state.workers, indent=4), ))
        print("Tasks: %s" % (pformat(state.tasks, indent=4), ))
        print("Total: %s events, %s tasks" % (
            state.event_count, state.task_count))

See the API reference for celery.events.state to read more about state objects.

Now you can use this cam with celeryev by specifying it with the -c option:

$ celeryev -c myapp.DumpCam --frequency=2.0

Or you can use it programmatically like this:

from celery.events import EventReceiver
from celery.messaging import establish_connection
from celery.events.state import State
from myapp import DumpCam

def main():
    state = State()
    with establish_connection() as connection:
        recv = EventReceiver(connection, handlers={"*": state.event})
        with DumpCam(state, freq=1.0):
            recv.capture(limit=None, timeout=None)

if __name__ == "__main__":
    main()

Event Reference

This list contains the events sent by the worker, and their arguments.

Task Events

  • task-received(uuid, name, args, kwargs, retries, eta, hostname, timestamp)

    Sent when the worker receives a task.

  • task-started(uuid, hostname, timestamp)

    Sent just before the worker executes the task.

  • task-succeeded(uuid, result, runtime, hostname, timestamp)

    Sent if the task executed successfully.

    Runtime is the time it took to execute the task using the pool. (Starting from the task is sent to the worker pool, and ending when the pool result handler callback is called).

  • task-failed(uuid, exception, traceback, hostname, timestamp)

    Sent if the execution of the task failed.

  • task-revoked(uuid)

    Sent if the task has been revoked (Note that this is likely to be sent by more than one worker).

  • task-retried(uuid, exception, traceback, hostname, timestamp)

    Sent if the task failed, but will be retried in the future.

Worker Events

  • worker-online(hostname, timestamp)

    The worker has connected to the broker and is online.

  • worker-heartbeat(hostname, timestamp)

    Sent every minute, if the worker has not sent a heartbeat in 2 minutes, it is considered to be offline.

  • worker-offline(hostname, timestamp)

    The worker has disconnected from the broker.

Previous topic

Routing Tasks

Next topic

Optimizing

This Page

PKYDDHg>>/celery-2.1-archived/userguide/remote-tasks.html HTTP Callback Tasks (Webhooks) — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

HTTP Callback Tasks (Webhooks)

Basics

If you need to call into another language, framework or similar, you can do so by using HTTP callback tasks.

The HTTP callback tasks uses GET/POST data to pass arguments and returns result as a JSON response. The scheme to call a task is:

GET http://example.com/mytask/?arg1=a&arg2=b&arg3=c

or using POST:

POST http://example.com/mytask

Note

POST data needs to be form encoded.

Whether to use GET or POST is up to you and your requirements.

The web page should then return a response in the following format if the execution was successful:

{"status": "success", "retval": ....}

or if there was an error:

{"status": "failure": "reason": "Invalid moon alignment."}

Django webhook example

With this information you could define a simple task in Django:

from django.http import HttpResponse
from anyjson import serialize


def multiply(request):
    x = int(request.GET["x"])
    y = int(request.GET["y"])
    result = x * y
    response = {"status": "success", "retval": result}
    return HttpResponse(serialize(response), mimetype="application/json")

Ruby on Rails webhook example

or in Ruby on Rails:

def multiply
    @x = params[:x].to_i
    @y = params[:y].to_i

    @status = {:status => "success", :retval => @x * @y}

    render :json => @status
end

You can easily port this scheme to any language/framework; new examples and libraries are very welcome.

Executing webhook tasks

To execute the task you use the URL class:

>>> from celery.task.http import URL
>>> res = URL("http://example.com/multiply").get_async(x=10, y=10)

URL is a shortcut to the HttpDispatchTask. You can subclass this to extend the functionality.

>>> from celery.task.http import HttpDispatchTask
>>> res = HttpDispatchTask.delay(url="http://example.com/multiply", method="GET", x=10, y=10)
>>> res.get()
100

The output of celeryd (or the log file if enabled) should show the task being executed:

[INFO/MainProcess] Task celery.task.http.HttpDispatchTask
        [f2cc8efc-2a14-40cd-85ad-f1c77c94beeb] processed: 100

Since applying tasks can be done via HTTP using the djcelery.views.apply view, executing tasks from other languages is easy. For an example service exposing tasks via HTTP you should have a look at examples/celery_http_gateway in the Celery distribution: http://github.com/ask/celery/tree/master/examples/celery_http_gateway/

Previous topic

Sets of tasks, Subtasks and Callbacks

Next topic

Routing Tasks

This Page

PKYDD= S''+celery-2.1-archived/userguide/overview.html Overview — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Overview

../_images/celery-broker-worker-nodes.jpg

Figure 1: Worker and broker nodes.

To use Celery you need at least two main components; a message broker and a worker.

The message broker enables clients and workers to communicate through messaging. There are several broker implementations available, the most popular being RabbitMQ.

The worker processes messages, and consists of one or more physical (or virtual) nodes.

Tasks

The action to take whenever a message of a certain type is received is called a “task”.

Routing

../_images/celery-worker-bindings.jpg

Figure 2: Worker bindings.

Go to Routing Tasks.

Celery takes advantage of AMQPs flexible routing model. Tasks can be routed to specific servers, or a cluster of servers by binding workers to different queues. A single worker node can be bound to one or more queues. Multiple messaging scenarios are supported: round robin, point-to-point, broadcast (one-to-many), and more.

Celery aims to hide the complexity of AMQP through features like Automatic routing, while still preserving the ability to go low level if that should be necessary.

Previous topic

User Guide

Next topic

Tasks

This Page

PKYDD7(7(-celery-2.1-archived/userguide/optimizing.html Optimizing — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Optimizing

Introduction

The default configuration, like any good default, is full of compromises. It is not tweaked to be optimal for any single use case, but tries to find middle ground that works well enough for most situations.

There are key optimizations to be done if your application is mainly processing lots of short tasks, and also if you have fewer but very long tasks.

Worker Settings

Prefetch limit

Prefetch is a term inherited from AMQP, and it is often misunderstood.

The prefetch limit is a limit for how many tasks a worker can reserve in advance. If this is set to zero, the worker will keep consuming messages ad infinitum, not respecting that there may be other available worker nodes (that may be able to process them sooner), or that the messages may not fit in memory.

The workers initial prefetch count is set by multiplying the CELERYD_PREFETCH_MULTIPLIER setting by the number of child worker processes. The default is 4 messages per child process.

If you have many expensive tasks with a long duration you would want the multiplier value to be 1, which means it will only reserve one unacknowledged task per worker process at a time.

However – If you have lots of short tasks, and throughput/roundtrip latency is important to you, then you want this number to be large. Say 64, or 128 for example, as the worker is able to process a lot more tasks/s if the messages have already been prefetched in memory. You may have to experiment to find the best value.

If you have a combination of both very long and short tasks, then the best option is to use two worker nodes that is configured individually, and route the tasks accordingly (see Routing Tasks).

Scenario 1: Lots of short tasks

CELERYD_PREFETCH_MULTIPLIER = 128
CELERY_DISABLE_RATE_LIMITS = True

Scenario 2: Expensive tasks

CELERYD_PREFETCH_MULTIPLIER = 1

Previous topic

Monitoring Guide

Next topic

Configuration and defaults

This Page

PKYDDZ1++(celery-2.1-archived/userguide/tasks.html Tasks — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Tasks

This guide gives an overview of how tasks are defined. For a complete listing of task attributes and methods, please see the API reference.

Basics

A task is a class that encapsulates a function and its execution options. Given a function create_user, that takes two arguments: username and password, you can create a task like this:

from celery.task import Task
from django.contrib.auth import User

class CreateUserTask(Task):
    def run(self, username, password):
        User.objects.create(username=username, password=password)

For convenience there is a shortcut decorator that turns any function into a task:

from celery.decorators import task
from django.contrib.auth import User

@task
def create_user(username, password):
    User.objects.create(username=username, password=password)

The task decorator takes the same execution options as the Task class does:

@task(serializer="json")
def create_user(username, password):
    User.objects.create(username=username, password=password)

Default keyword arguments

Celery supports a set of default arguments that can be forwarded to any task. Tasks can choose not to take these, or list the ones they want. The worker will do the right thing.

The current default keyword arguments are:

task_id:

The unique id of the executing task.

task_name:

Name of the currently executing task.

task_retries:

How many times the current task has been retried. An integer starting at 0.

is_eager:

Set to True if the task is executed locally in the client, and not by a worker.

logfile:

The log file, can be passed on to get_logger() to gain access to the workers log file. See Logging.

loglevel:

The current log level used.

delivery_info:
Additional message delivery information. This is a mapping

containing the exchange and routing key used to deliver this task. It’s used by e.g. retry() to resend the task to the same destination queue.

NOTE As some messaging backends doesn’t have advanced routing capabilities, you can’t trust the availability of keys in this mapping.

Logging

You can use the workers logger to add diagnostic output to the worker log:

class AddTask(Task):

    def run(self, x, y, **kwargs):
        logger = self.get_logger(**kwargs)
        logger.info("Adding %s + %s" % (x, y))
        return x + y

or using the decorator syntax:

@task()
def add(x, y, **kwargs):
    logger = add.get_logger(**kwargs)
    logger.info("Adding %s + %s" % (x, y))
    return x + y

There are several logging levels available, and the workers loglevel setting decides whether or not they will be written to the log file.

Of course, you can also simply use print as anything written to standard out/-err will be written to the log file as well.

Retrying a task if something fails

Simply use retry() to re-send the task. It will do the right thing, and respect the max_retries attribute:

@task()
def send_twitter_status(oauth, tweet, **kwargs):
    try:
        twitter = Twitter(oauth)
        twitter.update_status(tweet)
    except (Twitter.FailWhaleError, Twitter.LoginError), exc:
        send_twitter_status.retry(args=[oauth, tweet], kwargs=kwargs, exc=exc)

Here we used the exc argument to pass the current exception to retry(). At each step of the retry this exception is available as the tombstone (result) of the task. When max_retries has been exceeded this is the exception raised. However, if an exc argument is not provided the RetryTaskError exception is raised instead.

Important note: The task has to take the magic keyword arguments in order for max retries to work properly, this is because it keeps track of the current number of retries using the task_retries keyword argument passed on to the task. In addition, it also uses the task_id keyword argument to use the same task id, and delivery_info to route the retried task to the same destination.

Using a custom retry delay

When a task is to be retried, it will wait for a given amount of time before doing so. The default delay is in the default_retry_delay attribute on the task. By default this is set to 3 minutes. Note that the unit for setting the delay is in seconds (int or float).

You can also provide the countdown argument to retry() to override this default.

class MyTask(Task):
    default_retry_delay = 30 * 60 # retry in 30 minutes

    def run(self, x, y, **kwargs):
        try:
            ...
        except Exception, exc:
            self.retry([x, y], kwargs, exc=exc,
                       countdown=60) # override the default and
                                     # - retry in 1 minute

Task options

General

Task.name

The name the task is registered as.

You can set this name manually, or just use the default which is automatically generated using the module and class name. See Task names.

Task.abstract

Abstract classes are not registered, but are used as the base class for new task types.

Task.max_retries

The maximum number of attempted retries before giving up. If this exceeds the MaxRetriesExceeded an exception will be raised. NOTE: You have to retry() manually, it’s not something that happens automatically.

Task.default_retry_delay

Default time in seconds before a retry of the task should be executed. Can be either int or float. Default is a 3 minute delay.

Task.rate_limit

Set the rate limit for this task type, i.e. how many times in a given period of time is the task allowed to run.

If this is None no rate limit is in effect. If it is an integer, it is interpreted as “tasks per second”.

The rate limits can be specified in seconds, minutes or hours by appending "/s", "/m" or "/h" to the value. Example: "100/m" (hundred tasks a minute). Default is the CELERY_DEFAULT_RATE_LIMIT setting, which if not specified means rate limiting for tasks is disabled by default.

Task.ignore_result

Don’t store task state. Note that this means you can’t use AsyncResult to check if the task is ready, or get its return value.

Task.store_errors_even_if_ignored

If True, errors will be stored even if the task is configured to ignore results.

Task.send_error_emails

Send an e-mail whenever a task of this type fails. Defaults to the CELERY_SEND_TASK_ERROR_EMAILS setting. See Error E-Mails for more information.

Task.error_whitelist

If the sending of error e-mails is enabled for this task, then this is a white list of exceptions to actually send e-mails about.

Task.serializer

A string identifying the default serialization method to use. Defaults to the CELERY_TASK_SERIALIZER setting. Can be pickle json, yaml, or any custom serialization methods that have been registered with carrot.serialization.registry.

Please see Serializers for more information.

Task.backend

The result store backend to use for this task. Defaults to the CELERY_RESULT_BACKEND setting.

Task.acks_late

If set to True messages for this task will be acknowledged after the task has been executed, not just before, which is the default behavior.

Note that this means the task may be executed twice if the worker crashes in the middle of execution, which may be acceptable for some applications.

The global default can be overridden by the CELERY_ACKS_LATE setting.

Task.track_started

If True the task will report its status as “started” when the task is executed by a worker. The default value is False as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a “started” status can be useful for when there are long running tasks and there is a need to report which task is currently running.

The host name and process id of the worker executing the task will be available in the state metadata (e.g. result.info[“pid”])

The global default can be overridden by the CELERY_TRACK_STARTED setting.

See also

The API reference for Task.

Message and routing options

Task.queue

Use the routing settings from a queue defined in CELERY_QUEUES. If defined the exchange and routing_key options will be ignored.

Task.exchange

Override the global default exchange for this task.

Task.routing_key

Override the global default routing_key for this task.

Task.mandatory

If set, the task message has mandatory routing. By default the task is silently dropped by the broker if it can’t be routed to a queue. However – If the task is mandatory, an exception will be raised instead.

Not supported by amqplib.

Task.immediate

Request immediate delivery. If the task cannot be routed to a task worker immediately, an exception will be raised. This is instead of the default behavior, where the broker will accept and queue the task, but with no guarantee that the task will ever be executed.

Not supported by amqplib.

Task.priority

The message priority. A number from 0 to 9, where 0 is the highest priority.

Not supported by RabbitMQ.

See also

Routing options for more information about message options, and Routing Tasks.

Task names

The task type is identified by the task name.

If not provided a name will be automatically generated using the module and class name.

For example:

>>> @task(name="sum-of-two-numbers")
>>> def add(x, y):
...     return x + y

>>> add.name
'sum-of-two-numbers'

The best practice is to use the module name as a prefix to classify the tasks using namespaces. This way the name won’t collide with the name from another module:

>>> @task(name="tasks.add")
>>> def add(x, y):
...     return x + y

>>> add.name
'tasks.add'

Which is exactly the name that is automatically generated for this task if the module name is “tasks.py”:

>>> @task()
>>> def add(x, y):
...     return x + y

>>> add.name
'tasks.add'

Automatic naming and relative imports

Relative imports and automatic name generation does not go well together, so if you’re using relative imports you should set the name explicitly.

For example if the client imports the module “myapp.tasks” as ”.tasks”, and the worker imports the module as “myapp.tasks”, the generated names won’t match and an NotRegistered error will be raised by the worker.

This is also the case if using Django and using project.myapp:

INSTALLED_APPS = ("project.myapp", )

The worker will have the tasks registered as “project.myapp.tasks.*”, while this is what happens in the client if the module is imported as “myapp.tasks”:

>>> from myapp.tasks import add
>>> add.name
'myapp.tasks.add'

For this reason you should never use “project.app”, but rather add the project directory to the Python path:

import os
import sys
sys.path.append(os.getcwd())

INSTALLED_APPS = ("myapp", )

This makes more sense from the reusable app perspective anyway.

Decorating tasks

Using decorators with tasks requires extra steps because of the magic keyword arguments.

If you have the following task and decorator:

from celery.utils.functional import wraps

def decorator(task):

    @wraps(task)
    def _decorated(*args, **kwargs):
        print("inside decorator")
        return task(*args, **kwargs)


@decorator
@task
def add(x, y):
    return x + y

Then the worker will see that the task is accepting keyword arguments, while it really doesn’t, resulting in an error.

The workaround is to either have your task accept arbitrary keyword arguments:

@decorator
@task
def add(x, y, **kwargs):
    return x + y

or patch the decorator to preserve the original signature:

from inspect import getargspec
from celery.utils.functional import wraps

def decorator(task):

    @wraps(task)
    def _decorated(*args, **kwargs):
        print("in decorator")
        return task(*args, **kwargs)
    _decorated.argspec = inspect.getargspec(task)

Also note the use of wraps() here, this is necessary to keep the original function name and docstring.

Note

The magic keyword arguments will be deprecated in the future, replaced by the task.request attribute in 2.2, and the keyword arguments will be removed in 3.0.

Task States

During its lifetime a task will transition through several possible states, and each state may have arbitrary metadata attached to it. When a task moves into a new state the previous state is forgotten about, but some transitions can be deducted, (e.g. a task now in the FAILED state, is implied to have been in the STARTED state at some point).

There are also sets of states, like the set of failure states, and the set of ready states.

The client uses the membership of these sets to decide whether the exception should be re-raised (PROPAGATE_STATES), or whether the result can be cached (it can if the task is ready).

You can also define custom-states.

Built-in States

PENDING

Task is waiting for execution or unknown. Any task id that is not know is implied to be in the pending state.

STARTED

Task has been started. Not reported by default, to enable please see :attr`Task.track_started`.

metadata:pid and hostname of the worker process executing the task.

SUCCESS

Task has been successfully executed.

metadata:result contains the return value of the task.
propagates:Yes
ready:Yes

FAILURE

Task execution resulted in failure.

metadata:result contains the exception occurred, and traceback contains the backtrace of the stack at the point when the exception was raised.
propagates:Yes

RETRY

Task is being retried.

metadata:result contains the exception that caused the retry, and traceback contains the backtrace of the stack at the point when the exceptions was raised.
propagates:No

REVOKED

Task has been revoked.

propagates:Yes

Custom states

You can easily define your own states, all you need is a unique name. The name of the state is usually an uppercase string. As an example you could have a look at abortable tasks which defines its own custom ABORTED state.

Use Task.update_state to update a tasks state:

@task
def upload_files(filenames, **kwargs):

    for i, file in enumerate(filenames):
        upload_files.update_state(kwargs["task_id"], "PROGRESS",
            {"current": i, "total": len(filenames)})

Here we created the state "PROGRESS", which tells any application aware of this state that the task is currently in progress, and also where it is in the process by having current and total counts as part of the state metadata. This can then be used to create e.g. progress bars.

How it works

Here comes the technical details, this part isn’t something you need to know, but you may be interested.

All defined tasks are listed in a registry. The registry contains a list of task names and their task classes. You can investigate this registry yourself:

>>> from celery import registry
>>> from celery import task
>>> registry.tasks
{'celery.delete_expired_task_meta':
    <PeriodicTask: celery.delete_expired_task_meta (periodic)>,
 'celery.task.http.HttpDispatchTask':
    <Task: celery.task.http.HttpDispatchTask (regular)>,
 'celery.execute_remote':
    <Task: celery.execute_remote (regular)>,
 'celery.map_async':
    <Task: celery.map_async (regular)>,
 'celery.ping':
    <Task: celery.ping (regular)>}

This is the list of tasks built-in to celery. Note that we had to import celery.task first for these to show up. This is because the tasks will only be registered when the module they are defined in is imported.

The default loader imports any modules listed in the CELERY_IMPORTS setting.

The entity responsible for registering your task in the registry is a meta class, TaskType. This is the default meta class for Task.

If you want to register your task manually you can set mark the task as abstract:

class MyTask(Task):
    abstract = True

This way the task won’t be registered, but any task inheriting from it will be.

When tasks are sent, we don’t send any actual function code, just the name of the task to execute. When the worker then receives the message it can look up the name in its task registry to find the execution code.

This means that your workers should always be updated with the same software as the client. This is a drawback, but the alternative is a technical challenge that has yet to be solved.

Tips and Best Practices

Ignore results you don’t want

If you don’t care about the results of a task, be sure to set the ignore_result option, as storing results wastes time and resources.

@task(ignore_result=True)
def mytask(...)
    something()

Results can even be disabled globally using the CELERY_IGNORE_RESULT setting.

Disable rate limits if they’re not used

Disabling rate limits altogether is recommended if you don’t have any tasks using them. This is because the rate limit subsystem introduces quite a lot of complexity.

Set the CELERY_DISABLE_RATE_LIMITS setting to globally disable rate limits:

CELERY_DISABLE_RATE_LIMITS = True

Avoid launching synchronous subtasks

Having a task wait for the result of another task is really inefficient, and may even cause a deadlock if the worker pool is exhausted.

Make your design asynchronous instead, for example by using callbacks.

Bad:

@task()
def update_page_info(url):
    page = fetch_page.delay(url).get()
    info = parse_page.delay(url, page).get()
    store_page_info.delay(url, info)

@task()
def fetch_page(url):
    return myhttplib.get(url)

@task()
def parse_page(url, page):
    return myparser.parse_document(page)

@task()
def store_page_info(url, info):
    return PageInfo.objects.create(url, info)

Good:

@task(ignore_result=True)
def update_page_info(url):
    # fetch_page -> parse_page -> store_page
    fetch_page.delay(url, callback=subtask(parse_page,
                                callback=subtask(store_page_info)))

@task(ignore_result=True)
def fetch_page(url, callback=None):
    page = myhttplib.get(url)
    if callback:
        # The callback may have been serialized with JSON,
        # so best practice is to convert the subtask dict back
        # into a subtask object.
        subtask(callback).delay(url, page)

@task(ignore_result=True)
def parse_page(url, page, callback=None):
    info = myparser.parse_document(page)
    if callback:
        subtask(callback).delay(url, info)

@task(ignore_result=True)
def store_page_info(url, info):
    PageInfo.objects.create(url, info)

We use subtask here to safely pass around the callback task. subtask is a subclass of dict used to wrap the arguments and execution options for a single task invocation.

See also

Subtasks for more information about subtasks.

Performance and Strategies

Granularity

The task granularity is the amount of computation needed by each subtask. In general it is better to split the problem up into many small tasks, than have a few long running tasks.

With smaller tasks you can process more tasks in parallel and the tasks won’t run long enough to block the worker from processing other waiting tasks.

However, executing a task does have overhead. A message needs to be sent, data may not be local, etc. So if the tasks are too fine-grained the additional overhead may not be worth it in the end.

See also

The book Art of Concurrency has a whole section dedicated to the topic of task granularity.

Data locality

The worker processing the task should be as close to the data as possible. The best would be to have a copy in memory, the worst would be a full transfer from another continent.

If the data is far away, you could try to run another worker at location, or if that’s not possible - cache often used data, or preload data you know is going to be used.

The easiest way to share data between workers is to use a distributed cache system, like memcached.

See also

The paper Distributed Computing Economics by Jim Gray is an excellent introduction to the topic of data locality.

State

Since celery is a distributed system, you can’t know in which process, or on what machine the task will be executed. You can’t even know if the task will run in a timely manner.

The ancient async sayings tells us that “asserting the world is the responsibility of the task”. What this means is that the world view may have changed since the task was requested, so the task is responsible for making sure the world is how it should be; If you have a task that re-indexes a search engine, and the search engine should only be re-indexed at maximum every 5 minutes, then it must be the tasks responsibility to assert that, not the callers.

Another gotcha is Django model objects. They shouldn’t be passed on as arguments to tasks. It’s almost always better to re-fetch the object from the database when the task is running instead, as using old data may lead to race conditions.

Imagine the following scenario where you have an article and a task that automatically expands some abbreviations in it:

class Article(models.Model):
    title = models.CharField()
    body = models.TextField()

@task
def expand_abbreviations(article):
    article.body.replace("MyCorp", "My Corporation")
    article.save()

First, an author creates an article and saves it, then the author clicks on a button that initiates the abbreviation task.

>>> article = Article.objects.get(id=102)
>>> expand_abbreviations.delay(model_object)

Now, the queue is very busy, so the task won’t be run for another 2 minutes. In the meantime another author makes changes to the article, so when the task is finally run, the body of the article is reverted to the old version because the task had the old body in its argument.

Fixing the race condition is easy, just use the article id instead, and re-fetch the article in the task body:

@task
def expand_abbreviations(article_id):
    article = Article.objects.get(id=article_id)
    article.body.replace("MyCorp", "My Corporation")
    article.save()

>>> expand_abbreviations(article_id)

There might even be performance benefits to this approach, as sending large messages may be expensive.

Database transactions

Let’s have a look at another example:

from django.db import transaction

@transaction.commit_on_success
def create_article(request):
    article = Article.objects.create(....)
    expand_abbreviations.delay(article.pk)

This is a Django view creating an article object in the database, then passing the primary key to a task. It uses the commit_on_success decorator, which will commit the transaction when the view returns, or roll back if the view raises an exception.

There is a race condition if the task starts executing before the transaction has been committed; The database object does not exist yet!

The solution is to always commit transactions before sending tasks depending on state from the current transaction:

@transaction.commit_manually
def create_article(request):
    try:
        article = Article.objects.create(...)
    except:
        transaction.rollback()
        raise
    else:
        transaction.commit()
        expand_abbreviations.delay(article.pk)

Example

Let’s take a real wold example; A blog where comments posted needs to be filtered for spam. When the comment is created, the spam filter runs in the background, so the user doesn’t have to wait for it to finish.

We have a Django blog application allowing comments on blog posts. We’ll describe parts of the models/views and tasks for this application.

blog/models.py

The comment model looks like this:

from django.db import models
from django.utils.translation import ugettext_lazy as _


class Comment(models.Model):
    name = models.CharField(_("name"), max_length=64)
    email_address = models.EmailField(_("e-mail address"))
    homepage = models.URLField(_("home page"),
                               blank=True, verify_exists=False)
    comment = models.TextField(_("comment"))
    pub_date = models.DateTimeField(_("Published date"),
                                    editable=False, auto_add_now=True)
    is_spam = models.BooleanField(_("spam?"),
                                  default=False, editable=False)

    class Meta:
        verbose_name = _("comment")
        verbose_name_plural = _("comments")

In the view where the comment is posted, we first write the comment to the database, then we launch the spam filter task in the background.

blog/views.py

from django import forms
from django.http import HttpResponseRedirect
from django.template.context import RequestContext
from django.shortcuts import get_object_or_404, render_to_response

from blog import tasks
from blog.models import Comment


class CommentForm(forms.ModelForm):

    class Meta:
        model = Comment


def add_comment(request, slug, template_name="comments/create.html"):
    post = get_object_or_404(Entry, slug=slug)
    remote_addr = request.META.get("REMOTE_ADDR")

    if request.method == "post":
        form = CommentForm(request.POST, request.FILES)
        if form.is_valid():
            comment = form.save()
            # Check spam asynchronously.
            tasks.spam_filter.delay(comment_id=comment.id,
                                    remote_addr=remote_addr)
            return HttpResponseRedirect(post.get_absolute_url())
    else:
        form = CommentForm()

    context = RequestContext(request, {"form": form})
    return render_to_response(template_name, context_instance=context)

To filter spam in comments we use Akismet, the service used to filter spam in comments posted to the free weblog platform Wordpress. Akismet is free for personal use, but for commercial use you need to pay. You have to sign up to their service to get an API key.

To make API calls to Akismet we use the akismet.py library written by Michael Foord.

blog/tasks.py

from akismet import Akismet
from celery.decorators import task

from django.core.exceptions import ImproperlyConfigured
from django.contrib.sites.models import Site

from blog.models import Comment


@task
def spam_filter(comment_id, remote_addr=None, **kwargs):
        logger = spam_filter.get_logger(**kwargs)
        logger.info("Running spam filter for comment %s" % comment_id)

        comment = Comment.objects.get(pk=comment_id)
        current_domain = Site.objects.get_current().domain
        akismet = Akismet(settings.AKISMET_KEY, "http://%s" % domain)
        if not akismet.verify_key():
            raise ImproperlyConfigured("Invalid AKISMET_KEY")


        is_spam = akismet.comment_check(user_ip=remote_addr,
                            comment_content=comment.comment,
                            comment_author=comment.name,
                            comment_author_email=comment.email_address)
        if is_spam:
            comment.is_spam = True
            comment.save()

        return is_spam

Previous topic

Overview

Next topic

Executing Tasks

This Page

PKYDD$:Yvv*celery-2.1-archived/userguide/workers.html Workers Guide — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Workers Guide

Starting the worker

You can start celeryd to run in the foreground by executing the command:

$ celeryd --loglevel=INFO

You probably want to use a daemonization tool to start celeryd in the background. See Running celeryd as a daemon for help using celeryd with popular daemonization tools.

For a full list of available command line options see celeryd, or simply do:

$ celeryd --help

You can also start multiple workers on the same machine. If you do so be sure to give a unique name to each individual worker by specifying a host name with the –hostname|-n argument:

$ celeryd --loglevel=INFO --concurrency=10 -n worker1.example.com
$ celeryd --loglevel=INFO --concurrency=10 -n worker2.example.com
$ celeryd --loglevel=INFO --concurrency=10 -n worker3.example.com

Stopping the worker

Shutdown should be accomplished using the TERM signal.

When shutdown is initiated the worker will finish all currently executing tasks before it actually terminates, so if these tasks are important you should wait for it to finish before doing anything drastic (like sending the KILL signal).

If the worker won’t shutdown after considerate time, for example because of tasks stuck in an infinite-loop, you can use the KILL signal to force terminate the worker, but be aware that currently executing tasks will be lost (unless the tasks have the acks_late option set).

Also as processes can’t override the KILL signal, the worker will not be able to reap its children, so make sure to do so manually. This command usually does the trick:

$ ps auxww | grep celeryd | awk '{print $2}' | xargs kill -9

Restarting the worker

Other than stopping then starting the worker to restart, you can also restart the worker using the HUP signal:

$ kill -HUP $pid

The worker will then replace itself with a new instance using the same arguments as it was started with.

Concurrency

Multiprocessing is used to perform concurrent execution of tasks. The number of worker processes can be changed using the --concurrency argument and defaults to the number of CPUs available on the machine.

More worker processes are usually better, but there’s a cut-off point where adding more processes affects performance in negative ways. There is even some evidence to support that having multiple celeryd’s running, may perform better than having a single worker. For example 3 celeryd’s with 10 worker processes each. You need to experiment to find the numbers that works best for you, as this varies based on application, work load, task run times and other factors.

Persistent revokes

Revoking tasks works by sending a broadcast message to all the workers, the workers then keep a list of revoked tasks in memory.

If you want tasks to remain revoked after worker restart you need to specify a file for these to be stored in, either by using the --statedb argument to celeryd or the CELERYD_STATE_DB setting. See CELERYD_STATE_DB for more information.

Time limits

New in version 2.0.

A single task can potentially run forever, if you have lots of tasks waiting for some event that will never happen you will block the worker from processing new tasks indefinitely. The best way to defend against this scenario happening is enabling time limits.

The time limit (--time-limit) is the maximum number of seconds a task may run before the process executing it is terminated and replaced by a new process. You can also enable a soft time limit (--soft-time-limit), this raises an exception the task can catch to clean up before the hard time limit kills it:

from celery.decorators import task
from celery.exceptions import SoftTimeLimitExceeded

@task()
def mytask():
    try:
        do_work()
    except SoftTimeLimitExceeded:
        clean_up_in_a_hurry()

Time limits can also be set using the CELERYD_TASK_TIME_LIMIT / CELERYD_SOFT_TASK_TIME_LIMIT settings.

Note

Time limits does not currently work on Windows.

Max tasks per child setting

With this option you can configure the maximum number of tasks a worker can execute before it’s replaced by a new process.

This is useful if you have memory leaks you have no control over for example from closed source C extensions.

The option can be set using the --maxtasksperchild argument to celeryd or using the CELERYD_MAX_TASKS_PER_CHILD setting.

Remote control

New in version 2.0.

Workers have the ability to be remote controlled using a high-priority broadcast message queue. The commands can be directed to all, or a specific list of workers.

Commands can also have replies. The client can then wait for and collect those replies. Since there’s no central authority to know how many workers are available in the cluster, there is also no way to estimate how many workers may send a reply, so the client has a configurable timeout — the deadline in seconds for replies to arrive in. This timeout defaults to one second. If the worker doesn’t reply within the deadline it doesn’t necessarily mean the worker didn’t reply, or worse is dead, but may simply be caused by network latency or the worker being slow at processing commands, so adjust the timeout accordingly.

In addition to timeouts, the client can specify the maximum number of replies to wait for. If a destination is specified, this limit is set to the number of destination hosts.

See also

The celeryctl program is used to execute remote control commands from the command line. It supports all of the commands listed below. See celeryctl: Management Utility for more information.

The broadcast() function.

This is the client function used to send commands to the workers. Some remote control commands also have higher-level interfaces using broadcast() in the background, like rate_limit() and ping().

Sending the rate_limit command and keyword arguments:

>>> from celery.task.control import broadcast
>>> broadcast("rate_limit", arguments={"task_name": "myapp.mytask",
...                                    "rate_limit": "200/m"})

This will send the command asynchronously, without waiting for a reply. To request a reply you have to use the reply argument:

>>> broadcast("rate_limit", {"task_name": "myapp.mytask",
...                          "rate_limit": "200/m"}, reply=True)
[{'worker1.example.com': 'New rate limit set successfully'},
 {'worker2.example.com': 'New rate limit set successfully'},
 {'worker3.example.com': 'New rate limit set successfully'}]

Using the destination argument you can specify a list of workers to receive the command:

>>> broadcast
>>> broadcast("rate_limit", {"task_name": "myapp.mytask",
...                          "rate_limit": "200/m"}, reply=True,
...           destination=["worker1.example.com"])
[{'worker1.example.com': 'New rate limit set successfully'}]

Of course, using the higher-level interface to set rate limits is much more convenient, but there are commands that can only be requested using broadcast().

Rate limits

Example changing the rate limit for the myapp.mytask task to accept 200 tasks a minute on all servers:

>>> from celery.task.control import rate_limit
>>> rate_limit("myapp.mytask", "200/m")

Example changing the rate limit on a single host by specifying the destination hostname:

>>> rate_limit("myapp.mytask", "200/m",
...            destination=["worker1.example.com"])

Warning

This won’t affect workers with the CELERY_DISABLE_RATE_LIMITS setting on. To re-enable rate limits then you have to restart the worker.

Remote shutdown

This command will gracefully shut down the worker remotely:

>>> broadcast("shutdown") # shutdown all workers
>>> broadcast("shutdown, destination="worker1.example.com")

Ping

This command requests a ping from alive workers. The workers reply with the string ‘pong’, and that’s just about it. It will use the default one second timeout for replies unless you specify a custom timeout:

>>> from celery.task.control import ping
>>> ping(timeout=0.5)
[{'worker1.example.com': 'pong'},
 {'worker2.example.com': 'pong'},
 {'worker3.example.com': 'pong'}]

ping() also supports the destination argument, so you can specify which workers to ping:

>>> ping(['worker2.example.com', 'worker3.example.com'])
[{'worker2.example.com': 'pong'},
 {'worker3.example.com': 'pong'}]

Enable/disable events

You can enable/disable events by using the enable_events, disable_events commands. This is useful to temporarily monitor a worker using celeryev/celerymon.

>>> broadcast("enable_events")
>>> broadcast("disable_events")

Writing your own remote control commands

Remote control commands are registered in the control panel and they take a single argument: the current ControlDispatch instance. From there you have access to the active celery.worker.listener.CarrotListener if needed.

Here’s an example control command that restarts the broker connection:

from celery.worker.control import Panel

@Panel.register
def reset_connection(panel):
    panel.logger.critical("Connection reset by remote control.")
    panel.listener.reset_connection()
    return {"ok": "connection reset"}

These can be added to task modules, or you can keep them in their own module then import them using the CELERY_IMPORTS setting:

CELERY_IMPORTS = ("myapp.worker.control", )

Inspecting workers

celery.task.control.inspect lets you inspect running workers. It uses remote control commands under the hood.

>>> from celery.task.control import inspect

# Inspect all nodes.
>>> i = inspect()

# Specify multiple nodes to inspect.
>>> i = inspect(["worker1.example.com", "worker2.example.com"])

# Specify a single node to inspect.
>>> i = inspect("worker1.example.com")

Dump of registered tasks

You can get a list of tasks registered in the worker using the registered_tasks():

>>> i.registered_tasks()
[{'worker1.example.com': ['celery.delete_expired_task_meta',
                          'celery.execute_remote',
                          'celery.map_async',
                          'celery.ping',
                          'celery.task.http.HttpDispatchTask',
                          'tasks.add',
                          'tasks.sleeptask']}]

Dump of currently executing tasks

You can get a list of active tasks using active():

>>> i.active()
[{'worker1.example.com':
    [{"name": "tasks.sleeptask",
      "id": "32666e9b-809c-41fa-8e93-5ae0c80afbbf",
      "args": "(8,)",
      "kwargs": "{}"}]}]

Dump of scheduled (ETA) tasks

You can get a list of tasks waiting to be scheduled by using scheduled():

>>> i.scheduled()
[{'worker1.example.com':
    [{"eta": "2010-06-07 09:07:52", "priority": 0,
      "request": {
        "name": "tasks.sleeptask",
        "id": "1a7980ea-8b19-413e-91d2-0b74f3844c4d",
        "args": "[1]",
        "kwargs": "{}"}},
     {"eta": "2010-06-07 09:07:53", "priority": 0,
      "request": {
        "name": "tasks.sleeptask",
        "id": "49661b9a-aa22-4120-94b7-9ee8031d219d",
        "args": "[2]",
        "kwargs": "{}"}}]}]

Note that these are tasks with an eta/countdown argument, not periodic tasks.

Dump of reserved tasks

Reserved tasks are tasks that has been received, but is still waiting to be executed.

You can get a list of these using reserved():

>>> i.reserved()
[{'worker1.example.com':
    [{"name": "tasks.sleeptask",
      "id": "32666e9b-809c-41fa-8e93-5ae0c80afbbf",
      "args": "(8,)",
      "kwargs": "{}"}]}]

Previous topic

Executing Tasks

Next topic

Periodic Tasks

This Page

PKYDD77(celery-2.1-archived/userguide/index.html User Guide — Celery 2.1.4 documentation PKYDDny,celery-2.1-archived/userguide/executing.html Executing Tasks — Celery 2.1.4 documentation

This document describes an older version of Celery (2.1). For the latest stable version please go here.

Executing Tasks

Basics

Executing tasks is done with apply_async(), and the shortcut: delay().

delay is simple and convenient, as it looks like calling a regular function:

Task.delay(arg1, arg2, kwarg1="x", kwarg2="y")

The same using apply_async is written like this:

Task.apply_async(args=[arg1, arg2], kwargs={"kwarg1": "x", "kwarg2": "y"})

While delay is convenient, it doesn’t give you as much control as using apply_async. With apply_async you can override the execution options available as attributes on the Task class (see Task options). In addition you can set countdown/eta, task expiry, provide a custom broker connection and more.

Let’s go over these in more detail. All the examples uses a simple task, called add, taking two positional arguments and returning the sum:

@task
def add(x, y):
    return x + y

Note

You can also execute a task by name using send_task(), if you don’t have access to the task class:

>>> from celery.execute import send_task
>>> result = send_task("tasks.add", [2, 2])
>>> result.get()
4

ETA and countdown

The ETA (estimated time of arrival) lets you set a specific date and time that is the earliest time at which your task will be executed. countdown is a shortcut to set eta by seconds into the future.

>>> result = add.apply_async(args=[10, 10], countdown=3)
>>> result.get()    # this takes at least 3 seconds to return
20

The task is guaranteed to be executed at some time after the specified date and time, but not necessarily at that exact time. Possible reasons for broken deadlines may include many items waiting in the queue, or heavy network latency. To make sure your tasks are executed in a timely manner you should monitor queue lengths. Use Munin, or similar tools, to receive alerts, so appropriate action can be taken to ease the workload. See Munin.

While countdown is an integer, eta must be a datetime object, specifying an exact date and time (including millisecond precision, and timezone information):

>>> from datetime import datetime, timedelta

>>> tomorrow = datetime.now() + timedelta(days=1)
>>> add.apply_async(args=[10, 10], eta=tomorrow)

Expiration

The expires argument defines an optional expiry time, either as seconds after task publish, or a specific date and time using :class:~datetime.datetime`:

>>> # Task expires after one minute from now.
>>> add.apply_async(args=[10, 10], expires=60)

>>> # Also supports datetime
>>> from datetime import datetime, timedelta
>>> add.apply_async(args=[10, 10], kwargs,
...                 expires=datetime.now() + timedelta(days=1)

When a worker receives an expired task it will mark the task as REVOKED (TaskRevokedError).

Serializers

Data transferred between clients and workers needs to be serialized. The default serializer is pickle, but you can change this globally or for each individual task. There is built-in support for pickle, JSON, YAML and msgpack, and you can also add your own custom serializers by registering them into the Carrot serializer registry (see Carrot: Serialization of Data).

Each option has its advantages and disadvantages.

json – JSON is supported in many programming languages, is now

a standard part of Python (since 2.6), and is fairly fast to decode using the modern Python libraries such as cjson or simplejson.

The primary disadvantage to JSON is that it limits you to the following data types: strings, Unicode, floats, boolean, dictionaries, and lists. Decimals and dates are notably missing.

Also, binary data will be transferred using Base64 encoding, which will cause the transferred data to be around 34% larger than an encoding which supports native binary types.

However, if your data fits inside the above constraints and you need cross-language support, the default setting of JSON is probably your best choice.

See http://json.org for more information.

pickle – If you have no desire to support any language other than

Python, then using the pickle encoding will gain you the support of all built-in Python data types (except class instances), smaller messages when sending binary files, and a slight speedup over JSON processing.

See http://docs.python.org/library/pickle.html for more information.

yaml – YAML has many of the same characteristics as json,

except that it natively supports more data types (including dates, recursive references, etc.)

However, the Python libraries for YAML are a good bit slower than the libraries for JSON.

If you need a more expressive set of data types and need to maintain cross-language compatibility, then YAML may be a better fit than the above.

See http://yaml.org/ for more information.

msgpack – msgpack is a binary serialization format that is closer to JSON

in features. It is very young however, and support should be considered experimental at this point.

See http://msgpack.org/ for more information.

The encoding used is available as a message header, so the worker knows how to deserialize any task. If you use a custom serializer, this serializer must be available for the worker.

The client uses the following order to decide which serializer to use when sending a task:

  1. The serializer argument to apply_async
  2. The tasks serializer attribute
  3. The default CELERY_TASK_SERIALIZER setting.

Using the ``serializer`` argument to ``apply_async``:

>>> add.apply_async(args=[10, 10], serializer="json")

Connections and connection timeouts.

Currently there is no support for broker connection pools, so apply_async establishes and closes a new connection every time it is called. This is something you need to be aware of when sending more than one task at a time.

You handle the connection manually by creating a publisher:

numbers = [(2, 2), (4, 4), (8, 8), (16, 16)]

results = []
publisher = add.get_publisher()
try:
    for args in numbers:
        res = add.apply_async(args=args, publisher=publisher)
        results.append(res)
finally:
    publisher.close()
    publisher.connection.close()

print([res.get() for res in results])

Note

This particularly example is better expressed as a task set. See Task Sets. Tasksets already reuses connections.

The connection timeout is the number of seconds to wait before giving up on establishing the connection. You can set this by using the connect_timeout argument to apply_async:

add.apply_async([10, 10], connect_timeout=3)

Or if you handle the connection manually:

publisher = add.get_publisher(connect_timeout=3)

Routing options

Celery uses the AMQP routing mechanisms to route tasks to different workers.

Messages (tasks) are sent to exchanges, a queue binds to an exchange with a routing key. Let’s look at an example:

Let’s pretend we have an application with lot of different tasks: some process video, others process images, and some gather collective intelligence about its users. Some of these tasks are more important, so we want to make sure the high priority tasks get sent to dedicated nodes.

For the sake of this example we have a single exchange called tasks. There are different types of exchanges, each type interpreting the routing key in different ways, implementing different messaging scenarios.

The most common types used with Celery are direct and topic.

  • direct

    Matches the routing key exactly.

  • topic

    In the topic exchange the routing key is made up of words separated by dots (.). Words can be matched by the wild cards * and #, where * matches one exact word, and # matches one or many words.

    For example, *.stock.# matches the routing keys usd.stock and euro.stock.db but not stock.nasdaq.

We create three queues, video, image and lowpri that binds to the tasks exchange. For the queues we use the following binding keys:

video: video.#
image: image.#
lowpri: misc.#

Now we can send our tasks to different worker machines, by making the workers listen to different queues:

>>> add.apply_async(args=[filename],
...                               routing_key="video.compress")

>>> add.apply_async(args=[filename, 360],
...                             routing_key="image.rotate")

>>> add.apply_async(args=[filename, selection],
...                           routing_key="image.crop")
>>> add.apply_async(routing_key="misc.recommend")

Later, if the crop task is consuming a lot of resources, we can bind new workers to handle just the "image.crop" task, by creating a new queue that binds to "image.crop”.

See also

To find out more about routing, please see Routing Tasks.

AMQP options

  • mandatory

This sets the delivery to be mandatory. An exception will be raised if there are no running workers able to take on the task.

Not supported by amqplib.

  • immediate

Request immediate delivery. Will raise an exception if the task cannot be routed to a worker immediately.

Not supported by amqplib.

  • priority

A number between 0 and 9, where 0 is the highest priority.

Note

RabbitMQ does not yet support AMQP priorities.

Previous topic

Tasks

Next topic

Workers Guide

This Page

PKYDDcmm2celery-2.1-archived/.doctrees/contributing.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xbe considerate.qNXissue trackersqNXbe respectful.qNXpep-8q Ucontentsq NXpylons code of conductq Xreporting-bugsq Xubuntu code of conductq Xbe collaborative.qNX contributingqX"when you are unsure, ask for help.qNXreporting a bugqNXpep-257qXcreate a github accountqXcommunity code of conductqNX"when you disagree, consult others.qNXpep8.pyqXstep down considerately.qNX coding-styleqXgithubqXissue-trackersqXcommunity-code-of-conductqX coding styleqNuUsubstitution_defsq}qUparse_messagesq]q (cdocutils.nodes system_message q!)q"}q#(U rawsourceq$UUparentq%cdocutils.nodes section q&)q'}q((h$UU referencedq)Kh%hUsourceq*cdocutils.nodes reprunicode q+XJ/var/build/user_builds/celery/checkouts/2.1-archived/docs/contributing.rstq,q-}q.bUexpect_referenced_by_nameq/}q0hcdocutils.nodes target q1)q2}q3(h$X.. _contributing:h%hh*h-Utagnameq4Utargetq5U attributesq6}q7(Uidsq8]Ubackrefsq9]Udupnamesq:]Uclassesq;]Unamesq<]Urefidq=U contributingq>uUlineq?KUdocumentq@hUchildrenqA]ubsh4UsectionqBh6}qC(h:]qDX contributingqEah;]h9]h8]qF(h>Uid1qGeh<]qHhauh?Kh@hUexpect_referenced_by_idqI}qJh>h2shA]qK(cdocutils.nodes title qL)qM}qN(h$X ContributingqOh%h'h*h-h4UtitleqPh6}qQ(h:]h;]h9]h8]h<]uh?Kh@hhA]qRcdocutils.nodes Text qSX ContributingqTqU}qV(h$hOh%hMubaubcdocutils.nodes topic qW)qX}qY(h$Uh%h'h*h-h4UtopicqZh6}q[(h:]h;]q\(Ucontentsq]Ulocalq^eh9]h8]q_Ucontentsq`ah<]qah auh?Kh@hhA]qbcdocutils.nodes bullet_list qc)qd}qe(h$Uh%hXh*Nh4U bullet_listqfh6}qg(h:]h;]h9]h8]h<]uh?Nh@hhA]qh(cdocutils.nodes list_item qi)qj}qk(h$Uh6}ql(h:]h;]h9]h8]h<]uh%hdhA]qm(cdocutils.nodes paragraph qn)qo}qp(h$Uh6}qq(h:]h;]h9]h8]h<]uh%hjhA]qrcdocutils.nodes reference qs)qt}qu(h$Uh6}qv(h8]qwUid5qxah9]h:]h;]h<]UrefidUcommunity-code-of-conductqyuh%hohA]qzhSXCommunity Code of Conductq{q|}q}(h$XCommunity Code of Conductq~h%htubah4U referencequbah4U paragraphqubhc)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hjhA]q(hi)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhn)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhs)q}q(h$Uh6}q(h8]qUid6qah9]h:]h;]h<]UrefidUbe-consideratequh%hhA]qhSXBe considerate.qq}q(h$XBe considerate.qh%hubah4hubah4hubah4U list_itemqubhi)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhn)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhs)q}q(h$Uh6}q(h8]qUid7qah9]h:]h;]h<]UrefidU be-respectfulquh%hhA]qhSXBe respectful.qq}q(h$XBe respectful.qh%hubah4hubah4hubah4hubhi)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhn)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhs)q}q(h$Uh6}q(h8]qUid8qah9]h:]h;]h<]UrefidUbe-collaborativequh%hhA]qhSXBe collaborative.qq}q(h$XBe collaborative.qh%hubah4hubah4hubah4hubhi)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhn)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhs)q}q(h$Uh6}q(h8]qUid9qah9]h:]h;]h<]UrefidU when-you-disagree-consult-othersquh%hhA]qhSX"When you disagree, consult others.q΅q}q(h$X"When you disagree, consult others.qh%hubah4hubah4hubah4hubhi)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhn)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhs)q}q(h$Uh6}q(h8]qUid10qah9]h:]h;]h<]UrefidU when-you-are-unsure-ask-for-helpquh%hhA]qhSX"When you are unsure, ask for help.qᅁq}q(h$X"When you are unsure, ask for help.qh%hubah4hubah4hubah4hubhi)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhn)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhs)q}q(h$Uh6}q(h8]qUid11qah9]h:]h;]h<]UrefidUstep-down-consideratelyquh%hhA]qhSXStep down considerately.qq}q(h$XStep down considerately.qh%hubah4hubah4hubah4hubeh4hfubeh4hubhi)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hdhA]q(hn)q}q(h$Uh6}q(h:]h;]h9]h8]h<]uh%hhA]qhs)r}r(h$Uh6}r(h8]rUid12rah9]h:]h;]h<]UrefidUreporting-a-bugruh%hhA]rhSXReporting a Bugrr}r (h$XReporting a Bugr h%jubah4hubah4hubhc)r }r (h$Uh6}r (h:]h;]h9]h8]h<]uh%hhA]rhi)r}r(h$Uh6}r(h:]h;]h9]h8]h<]uh%j hA]rhn)r}r(h$Uh6}r(h:]h;]h9]h8]h<]uh%jhA]rhs)r}r(h$Uh6}r(h8]rUid13rah9]h:]h;]h<]UrefidUissue-trackersruh%jhA]rhSXIssue Trackersrr}r (h$XIssue Trackersr!h%jubah4hubah4hubah4hubah4hfubeh4hubhi)r"}r#(h$Uh6}r$(h:]h;]h9]h8]h<]uh%hdhA]r%hn)r&}r'(h$Uh6}r((h:]h;]h9]h8]h<]uh%j"hA]r)hs)r*}r+(h$Uh6}r,(h8]r-Uid14r.ah9]h:]h;]h<]UrefidU coding-styler/uh%j&hA]r0hSX Coding Styler1r2}r3(h$X Coding Styler4h%j*ubah4hubah4hubah4hubeubaubh1)r5}r6(h$X.. _community-code-of-conduct:h%h'h*h-h4h5h6}r7(h8]h9]h:]h;]h<]h=hyuh?K h@hhA]ubh&)r8}r9(h$Uh%h'h*h-h/}r:hj5sh4hBh6}r;(h:]h;]h9]h8]r<(hyUid2r=eh<]r>(hheuh?K h@hhI}r?hyj5shA]r@(hL)rA}rB(h$h~h%j8h*h-h4hPh6}rC(h8]h9]h:]h;]h<]h=hxuh?K h@hhA]rDhSXCommunity Code of ConductrErF}rG(h$h~h%jAubaubhn)rH}rI(h$XThe goal is to maintain a diverse community that is pleasant for everyone. That is why we would greatly appreciate it if everyone contributing to and interacting with the community also followed this Code of Conduct.rJh%j8h*h-h4hh6}rK(h:]h;]h9]h8]h<]uh?Kh@hhA]rLhSXThe goal is to maintain a diverse community that is pleasant for everyone. That is why we would greatly appreciate it if everyone contributing to and interacting with the community also followed this Code of Conduct.rMrN}rO(h$jJh%jHubaubhn)rP}rQ(h$XThe Code of Conduct covers our behavior as members of the community, in any forum, mailing list, wiki, website, Internet relay chat (IRC), public meeting or private correspondence.rRh%j8h*h-h4hh6}rS(h:]h;]h9]h8]h<]uh?Kh@hhA]rThSXThe Code of Conduct covers our behavior as members of the community, in any forum, mailing list, wiki, website, Internet relay chat (IRC), public meeting or private correspondence.rUrV}rW(h$jRh%jPubaubhn)rX}rY(h$XiThe Code of Conduct is heavily based on the `Ubuntu Code of Conduct`_, and the `Pylons Code of Conduct`_.h%j8h*h-h4hh6}rZ(h:]h;]h9]h8]h<]uh?Kh@hhA]r[(hSX,The Code of Conduct is heavily based on the r\r]}r^(h$X,The Code of Conduct is heavily based on the h%jXubhs)r_}r`(h$X`Ubuntu Code of Conduct`_UresolvedraKh%jXh4hh6}rb(UnameXUbuntu Code of ConductUrefurircX'http://www.ubuntu.com/community/conductrdh8]h9]h:]h;]h<]uhA]rehSXUbuntu Code of Conductrfrg}rh(h$Uh%j_ubaubhSX , and the rirj}rk(h$X , and the h%jXubhs)rl}rm(h$X`Pylons Code of Conduct`_jaKh%jXh4hh6}rn(UnameXPylons Code of ConductjcX/http://docs.pylonshq.com/community/conduct.htmlroh8]h9]h:]h;]h<]uhA]rphSXPylons Code of Conductrqrr}rs(h$Uh%jlubaubhSX.rt}ru(h$X.h%jXubeubh1)rv}rw(h$XE.. _`Ubuntu Code of Conduct`: http://www.ubuntu.com/community/conducth)Kh%j8h*h-h4h5h6}rx(jcjdh8]ryUubuntu-code-of-conductrzah9]h:]h;]h<]r{h auh?Kh@hhA]ubh1)r|}r}(h$XM.. _`Pylons Code of Conduct`: http://docs.pylonshq.com/community/conduct.htmlh)Kh%j8h*h-h4h5h6}r~(jcjoh8]rUpylons-code-of-conductrah9]h:]h;]h<]rh auh?Kh@hhA]ubh&)r}r(h$Uh%j8h*h-h4hBh6}r(h:]h;]h9]h8]rhah<]rhauh?Kh@hhA]r(hL)r}r(h$hh%jh*h-h4hPh6}r(h8]h9]h:]h;]h<]h=huh?Kh@hhA]rhSXBe considerate.rr}r(h$hh%jubaubhn)r}r(h$XYour work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and we expect you to take those consequences into account when making decisions. Even if it's not obvious at the time, our contributions to Ubuntu will impact the work of others. For example, changes to code, infrastructure, policy, documentation and translations during a release may negatively impact others work.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?K h@hhA]rhSXYour work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and we expect you to take those consequences into account when making decisions. Even if it's not obvious at the time, our contributions to Ubuntu will impact the work of others. For example, changes to code, infrastructure, policy, documentation and translations during a release may negatively impact others work.rr}r(h$jh%jubaubeubh&)r}r(h$Uh%j8h*h-h4hBh6}r(h:]h;]h9]h8]rhah<]rhauh?K)h@hhA]r(hL)r}r(h$hh%jh*h-h4hPh6}r(h8]h9]h:]h;]h<]h=huh?K)h@hhA]rhSXBe respectful.rr}r(h$hh%jubaubhn)r}r(h$XtThe Celery community and its members treat one another with respect. Everyone can make a valuable contribution to Celery. We may not always agree, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened is not a productive one. We expect members of the Celery community to be respectful when dealing with other contributors as well as with people outside the Celery project and with users of Celery.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?K+h@hhA]rhSXtThe Celery community and its members treat one another with respect. Everyone can make a valuable contribution to Celery. We may not always agree, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened is not a productive one. We expect members of the Celery community to be respectful when dealing with other contributors as well as with people outside the Celery project and with users of Celery.rr}r(h$jh%jubaubeubh&)r}r(h$Uh%j8h*h-h4hBh6}r(h:]h;]h9]h8]rhah<]rhauh?K6h@hhA]r(hL)r}r(h$hh%jh*h-h4hPh6}r(h8]h9]h:]h;]h<]h=huh?K6h@hhA]rhSXBe collaborative.rr}r(h$hh%jubaubhn)r}r(h$XCollaboration is central to Celery and to the larger free software community. We should always be open to collaboration. Your work should be done transparently and patches from Celery should be given back to the community when they are made, not just when the distribution releases. If you wish to work on new code for existing upstream projects, at least keep those projects informed of your ideas and progress. It many not be possible to get consensus from upstream, or even from your colleagues about the correct implementation for an idea, so don't feel obliged to have that agreement before you begin, but at least keep the outside world informed of your work, and publish your work in a way that allows outsiders to test, discuss and contribute to your efforts.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?K8h@hhA]rhSXCollaboration is central to Celery and to the larger free software community. We should always be open to collaboration. Your work should be done transparently and patches from Celery should be given back to the community when they are made, not just when the distribution releases. If you wish to work on new code for existing upstream projects, at least keep those projects informed of your ideas and progress. It many not be possible to get consensus from upstream, or even from your colleagues about the correct implementation for an idea, so don't feel obliged to have that agreement before you begin, but at least keep the outside world informed of your work, and publish your work in a way that allows outsiders to test, discuss and contribute to your efforts.rr}r(h$jh%jubaubeubh&)r}r(h$Uh%j8h*h-h4hBh6}r(h:]h;]h9]h8]rhah<]rhauh?KEh@hhA]r(hL)r}r(h$hh%jh*h-h4hPh6}r(h8]h9]h:]h;]h<]h=huh?KEh@hhA]rhSX"When you disagree, consult others.rr}r(h$hh%jubaubhn)r}r(h$XDisagreements, both political and technical, happen all the time and the Celery community is no exception. It is important that we resolve disagreements and differing views constructively and with the help of the community and community process. If you really want to go a different way, then we encourage you to make a derivative distribution or alternate set of packages that still build on the work we've done to utilize as common of a core as possible.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KGh@hhA]rhSXDisagreements, both political and technical, happen all the time and the Celery community is no exception. It is important that we resolve disagreements and differing views constructively and with the help of the community and community process. If you really want to go a different way, then we encourage you to make a derivative distribution or alternate set of packages that still build on the work we've done to utilize as common of a core as possible.rr}r(h$jh%jubaubeubh&)r}r(h$Uh%j8h*h-h4hBh6}r(h:]h;]h9]h8]rhah<]rhauh?KPh@hhA]r(hL)r}r(h$hh%jh*h-h4hPh6}r(h8]h9]h:]h;]h<]h=huh?KPh@hhA]rhSX"When you are unsure, ask for help.rr}r(h$hh%jubaubhn)r}r(h$X,Nobody knows everything, and nobody is expected to be perfect. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KRh@hhA]rhSX,Nobody knows everything, and nobody is expected to be perfect. Asking questions avoids many problems down the road, and so questions are encouraged. Those who are asked questions should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum.rr}r(h$jh%jubaubeubh&)r}r(h$Uh%j8h*h-h4hBh6}r(h:]h;]h9]h8]rhah<]rhauh?KYh@hhA]r(hL)r}r(h$hh%jh*h-h4hPh6}r(h8]h9]h:]h;]h<]h=huh?KYh@hhA]rhSXStep down considerately.rr}r(h$hh%jubaubhn)r}r(h$XTDevelopers on every project come and go and Celery is no different. When you leave or disengage from the project, in whole or in part, we ask that you do so in a way that minimizes disruption to the project. This means you should tell people you are leaving and take the proper steps to ensure that others can pick up where you leave off.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?K[h@hhA]rhSXTDevelopers on every project come and go and Celery is no different. When you leave or disengage from the project, in whole or in part, we ask that you do so in a way that minimizes disruption to the project. This means you should tell people you are leaving and take the proper steps to ensure that others can pick up where you leave off.rr}r(h$jh%jubaubh1)r}r(h$X.. _reporting-bugs:h%jh*h-h4h5h6}r(h8]h9]h:]h;]h<]h=Ureporting-bugsruh?Kah@hhA]ubeubeubh&)r}r(h$Uh%h'h*h-h/}rh jsh4hBh6}r(h:]h;]h9]h8]r(jjeh<]r (hh euh?Kdh@hhI}r jjshA]r (hL)r }r (h$j h%jh*h-h4hPh6}r(h8]h9]h:]h;]h<]h=juh?Kdh@hhA]rhSXReporting a Bugrr}r(h$j h%j ubaubhn)r}r(h$XBugs can always be described to the :ref:`mailing-list`, but the best way to report an issue and to ensure a timely response is to use the issue tracker.h%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Kfh@hhA]r(hSX$Bugs can always be described to the rr}r(h$X$Bugs can always be described to the h%jubcsphinx.addnodes pending_xref r)r}r(h$X:ref:`mailing-list`rh%jh*h-h4U pending_xrefrh6}r(UreftypeXrefUrefwarnr U reftargetr!X mailing-listU refdomainXstdr"h8]h9]U refexplicith:]h;]h<]Urefdocr#X contributingr$uh?KfhA]r%cdocutils.nodes emphasis r&)r'}r((h$jh6}r)(h:]h;]r*(Uxrefr+j"Xstd-refr,eh9]h8]h<]uh%jhA]r-hSX mailing-listr.r/}r0(h$Uh%j'ubah4Uemphasisr1ubaubhSXb, but the best way to report an issue and to ensure a timely response is to use the issue tracker.r2r3}r4(h$Xb, but the best way to report an issue and to ensure a timely response is to use the issue tracker.h%jubeubcdocutils.nodes enumerated_list r5)r6}r7(h$Uh%jh*h-h4Uenumerated_listr8h6}r9(Usuffixr:U)h8]h9]h:]Uprefixr;Uh;]h<]Uenumtyper<Uarabicr=uh?Kjh@hhA]r>hi)r?}r@(h$XCreate a GitHub account. h%j6h*h-h4hh6}rA(h:]h;]h9]h8]h<]uh?Nh@hhA]rBhn)rC}rD(h$XCreate a GitHub account.rEh%j?h*h-h4hh6}rF(h:]h;]h9]h8]h<]uh?KjhA]rGhSXCreate a GitHub account.rHrI}rJ(h$jEh%jCubaubaubaubhn)rK}rL(h$XiYou need to `create a GitHub account`_ to be able to create new issues and participate in the discussion.h%jh*h-h4hh6}rM(h:]h;]h9]h8]h<]uh?Klh@hhA]rN(hSX You need to rOrP}rQ(h$X You need to h%jKubhs)rR}rS(h$X`create a GitHub account`_jaKh%jKh4hh6}rT(UnameXcreate a GitHub accountjcXhttps://github.com/signup/freerUh8]h9]h:]h;]h<]uhA]rVhSXcreate a GitHub accountrWrX}rY(h$Uh%jRubaubhSXC to be able to create new issues and participate in the discussion.rZr[}r\(h$XC to be able to create new issues and participate in the discussion.h%jKubeubh1)r]}r^(h$X=.. _`create a GitHub account`: https://github.com/signup/freeh)Kh%jh*h-h4h5h6}r_(jcjUh8]r`Ucreate-a-github-accountraah9]h:]h;]h<]rbhauh?Koh@hhA]ubj5)rc}rd(h$Uh%jh*h-h4j8h6}re(j:U)UstartrfKh8]h9]h:]j;Uh;]h<]j<j=uh?Kqh@hhA]rghi)rh}ri(h$X'Determine if your bug is really a bug. h%jch*h-h4hh6}rj(h:]h;]h9]h8]h<]uh?Nh@hhA]rkhn)rl}rm(h$X&Determine if your bug is really a bug.rnh%jhh*h-h4hh6}ro(h:]h;]h9]h8]h<]uh?KqhA]rphSX&Determine if your bug is really a bug.rqrr}rs(h$jnh%jlubaubaubaubhn)rt}ru(h$X~You should not file a bug if you are requesting support. For that you can use the :ref:`mailing-list`, or :ref:`irc-channel`.h%jh*h-h4hh6}rv(h:]h;]h9]h8]h<]uh?Ksh@hhA]rw(hSXSYou should not file a bug if you are requesting support. For that you can use the rxry}rz(h$XSYou should not file a bug if you are requesting support. For that you can use the h%jtubj)r{}r|(h$X:ref:`mailing-list`r}h%jth*h-h4jh6}r~(UreftypeXrefj j!X mailing-listU refdomainXstdrh8]h9]U refexplicith:]h;]h<]j#j$uh?KshA]rj&)r}r(h$j}h6}r(h:]h;]r(j+jXstd-refreh9]h8]h<]uh%j{hA]rhSX mailing-listrr}r(h$Uh%jubah4j1ubaubhSX, or rr}r(h$X, or h%jtubj)r}r(h$X:ref:`irc-channel`rh%jth*h-h4jh6}r(UreftypeXrefj j!X irc-channelU refdomainXstdrh8]h9]U refexplicith:]h;]h<]j#j$uh?KshA]rj&)r}r(h$jh6}r(h:]h;]r(j+jXstd-refreh9]h8]h<]uh%jhA]rhSX irc-channelrr}r(h$Uh%jubah4j1ubaubhSX.r}r(h$X.h%jtubeubj5)r}r(h$Uh%jh*h-h4j8h6}r(j:U)jfKh8]h9]h:]j;Uh;]h<]j<j=uh?Kvh@hhA]rhi)r}r(h$X1Make sure your bug hasn't already been reported. h%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Nh@hhA]rhn)r}r(h$X0Make sure your bug hasn't already been reported.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KvhA]rhSX0Make sure your bug hasn't already been reported.rr}r(h$jh%jubaubaubaubhn)r}r(h$XSearch through the appropriate Issue tracker. If a bug like yours was found, check if you have new information that could be reported to help the developers fix the bug.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Kxh@hhA]rhSXSearch through the appropriate Issue tracker. If a bug like yours was found, check if you have new information that could be reported to help the developers fix the bug.rr}r(h$jh%jubaubj5)r}r(h$Uh%jh*h-h4j8h6}r(j:U)jfKh8]h9]h:]j;Uh;]h<]j<j=uh?K|h@hhA]rhi)r}r(h$X#Collect information about the bug. h%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Nh@hhA]rhn)r}r(h$X"Collect information about the bug.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?K|hA]rhSX"Collect information about the bug.rr}r(h$jh%jubaubaubaubhn)r}r(h$XTo have the best chance of having a bug fixed, we need to be able to easily reproduce the conditions that caused it. Most of the time this information will be from a Python traceback message, though some bugs might be in design, spelling or other errors on the website/docs/code.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?K~h@hhA]rhSXTo have the best chance of having a bug fixed, we need to be able to easily reproduce the conditions that caused it. Most of the time this information will be from a Python traceback message, though some bugs might be in design, spelling or other errors on the website/docs/code.rr}r(h$jh%jubaubhn)r}r(h$XFIf the error is from a Python traceback, include it in the bug report.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Kh@hhA]rhSXFIf the error is from a Python traceback, include it in the bug report.rr}r(h$jh%jubaubhn)r}r(h$XWe also need to know what platform you're running (Windows, OSX, Linux, etc), the version of your Python interpreter, and the version of Celery, and related packages that you were running when the bug occurred.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Kh@hhA]rhSXWe also need to know what platform you're running (Windows, OSX, Linux, etc), the version of your Python interpreter, and the version of Celery, and related packages that you were running when the bug occurred.rr}r(h$jh%jubaubj5)r}r(h$Uh%jh*h-h4j8h6}r(j:U)jfKh8]h9]h:]j;Uh;]h<]j<j=uh?Kh@hhA]rhi)r}r(h$XSubmit the bug. h%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Nh@hhA]rhn)r}r(h$XSubmit the bug.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]rhSXSubmit the bug.rr}r(h$jh%jubaubaubaubhn)r}r(h$XBy default `GitHub`_ will email you to let you know when new comments have been made on your bug. In the event you've turned this feature off, you should check back on occasion to ensure you don't miss any questions a developer trying to fix the bug might ask.h%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Kh@hhA]r(hSX By default rr}r(h$X By default h%jubhs)r}r(h$X `GitHub`_jaKh%jh4hh6}r(UnameXGitHubjcXhttp://github.comrh8]h9]h:]h;]h<]uhA]rhSXGitHubrr}r(h$Uh%jubaubhSX will email you to let you know when new comments have been made on your bug. In the event you've turned this feature off, you should check back on occasion to ensure you don't miss any questions a developer trying to fix the bug might ask.rr}r(h$X will email you to let you know when new comments have been made on your bug. In the event you've turned this feature off, you should check back on occasion to ensure you don't miss any questions a developer trying to fix the bug might ask.h%jubeubh1)r}r(h$X.. _`GitHub`: http://github.comh)Kh%jh*h-h4h5h6}r(jcjh8]rUgithubrah9]h:]h;]h<]rhauh?Kh@hhA]ubh1)r}r(h$X.. _issue-trackers:h%jh*h-h4h5h6}r(h8]h9]h:]h;]h<]h=juh?Kh@hhA]ubh&)r }r (h$Uh%jh*h-h/}r hjsh4hBh6}r (h:]h;]h9]h8]r (jUid3reh<]r(hheuh?Kh@hhI}rjjshA]r(hL)r}r(h$j!h%j h*h-h4hPh6}r(h8]h9]h:]h;]h<]h=juh?Kh@hhA]rhSXIssue Trackersrr}r(h$j!h%jubaubhn)r}r(h$X\Bugs for a package in the Celery ecosystem should be reported to the relevant issue tracker.rh%j h*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Kh@hhA]rhSX\Bugs for a package in the Celery ecosystem should be reported to the relevant issue tracker.rr}r (h$jh%jubaubhc)r!}r"(h$Uh%j h*h-h4hfh6}r#(Ubulletr$X*h8]h9]h:]h;]h<]uh?Kh@hhA]r%(hi)r&}r'(h$X,Celery: http://github.com/ask/celery/issues/r(h%j!h*h-h4hh6}r)(h:]h;]h9]h8]h<]uh?Nh@hhA]r*hn)r+}r,(h$j(h%j&h*h-h4hh6}r-(h:]h;]h9]h8]h<]uh?KhA]r.(hSXCelery: r/r0}r1(h$XCelery: h%j+ubhs)r2}r3(h$X$http://github.com/ask/celery/issues/r4h6}r5(Urefurij4h8]h9]h:]h;]h<]uh%j+hA]r6hSX$http://github.com/ask/celery/issues/r7r8}r9(h$Uh%j2ubah4hubeubaubhi)r:}r;(h$X9Django-Celery: http://github.com/ask/django-celery/issuesr<h%j!h*h-h4hh6}r=(h:]h;]h9]h8]h<]uh?Nh@hhA]r>hn)r?}r@(h$j<h%j:h*h-h4hh6}rA(h:]h;]h9]h8]h<]uh?KhA]rB(hSXDjango-Celery: rCrD}rE(h$XDjango-Celery: h%j?ubhs)rF}rG(h$X*http://github.com/ask/django-celery/issuesrHh6}rI(UrefurijHh8]h9]h:]h;]h<]uh%j?hA]rJhSX*http://github.com/ask/django-celery/issuesrKrL}rM(h$Uh%jFubah4hubeubaubhi)rN}rO(h$X7Flask-Celery: http://github.com/ask/flask-celery/issuesrPh%j!h*h-h4hh6}rQ(h:]h;]h9]h8]h<]uh?Nh@hhA]rRhn)rS}rT(h$jPh%jNh*h-h4hh6}rU(h:]h;]h9]h8]h<]uh?KhA]rV(hSXFlask-Celery: rWrX}rY(h$XFlask-Celery: h%jSubhs)rZ}r[(h$X)http://github.com/ask/flask-celery/issuesr\h6}r](Urefurij\h8]h9]h:]h;]h<]uh%jShA]r^hSX)http://github.com/ask/flask-celery/issuesr_r`}ra(h$Uh%jZubah4hubeubaubhi)rb}rc(h$XCCelery-Pylons: http://bitbucket.org/ianschenck/celery-pylons/issuesrdh%j!h*h-h4hh6}re(h:]h;]h9]h8]h<]uh?Nh@hhA]rfhn)rg}rh(h$jdh%jbh*h-h4hh6}ri(h:]h;]h9]h8]h<]uh?KhA]rj(hSXCelery-Pylons: rkrl}rm(h$XCelery-Pylons: h%jgubhs)rn}ro(h$X4http://bitbucket.org/ianschenck/celery-pylons/issuesrph6}rq(Urefurijph8]h9]h:]h;]h<]uh%jghA]rrhSX4http://bitbucket.org/ianschenck/celery-pylons/issuesrsrt}ru(h$Uh%jnubah4hubeubaubhi)rv}rw(h$X)Kombu: http://github.com/ask/kombu/issuesrxh%j!h*h-h4hh6}ry(h:]h;]h9]h8]h<]uh?Nh@hhA]rzhn)r{}r|(h$jxh%jvh*h-h4hh6}r}(h:]h;]h9]h8]h<]uh?KhA]r~(hSXKombu: rr}r(h$XKombu: h%j{ubhs)r}r(h$X"http://github.com/ask/kombu/issuesrh6}r(Urefurijh8]h9]h:]h;]h<]uh%j{hA]rhSX"http://github.com/ask/kombu/issuesrr}r(h$Uh%jubah4hubeubaubhi)r}r(h$X+Carrot: http://github.com/ask/carrot/issuesrh%j!h*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Nh@hhA]rhn)r}r(h$jh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]r(hSXCarrot: rr}r(h$XCarrot: h%jubhs)r}r(h$X#http://github.com/ask/carrot/issuesrh6}r(Urefurijh8]h9]h:]h;]h<]uh%jhA]rhSX#http://github.com/ask/carrot/issuesrr}r(h$Uh%jubah4hubeubaubhi)r}r(h$X.Ghettoq: http://github.com/ask/ghettoq/issues h%j!h*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Nh@hhA]rhn)r}r(h$X-Ghettoq: http://github.com/ask/ghettoq/issuesh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]r(hSX Ghettoq: rr}r(h$X Ghettoq: h%jubhs)r}r(h$X$http://github.com/ask/ghettoq/issuesrh6}r(Urefurijh8]h9]h:]h;]h<]uh%jhA]rhSX$http://github.com/ask/ghettoq/issuesrr}r(h$Uh%jubah4hubeubaubeubhn)r}r(h$XuIf you are unsure of the origin of the bug you can ask the :ref:`mailing-list`, or just use the Celery issue tracker.h%j h*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Kh@hhA]r(hSX;If you are unsure of the origin of the bug you can ask the rr}r(h$X;If you are unsure of the origin of the bug you can ask the h%jubj)r}r(h$X:ref:`mailing-list`rh%jh*h-h4jh6}r(UreftypeXrefj j!X mailing-listU refdomainXstdrh8]h9]U refexplicith:]h;]h<]j#j$uh?KhA]rj&)r}r(h$jh6}r(h:]h;]r(j+jXstd-refreh9]h8]h<]uh%jhA]rhSX mailing-listrr}r(h$Uh%jubah4j1ubaubhSX', or just use the Celery issue tracker.rr}r(h$X', or just use the Celery issue tracker.h%jubeubh1)r}r(h$X.. _coding-style:h%j h*h-h4h5h6}r(h8]h9]h:]h;]h<]h=j/uh?Kh@hhA]ubeubeubh&)r}r(h$Uh%h'h*h-h/}rhjsh4hBh6}r(h:]h;]h9]h8]r(j/Uid4reh<]r(hheuh?Kh@hhI}rj/jshA]r(hL)r}r(h$j4h%jh*h-h4hPh6}r(h8]h9]h:]h;]h<]h=j.uh?Kh@hhA]rhSX Coding Stylerr}r(h$j4h%jubaubhn)r}r(h$XYou should probably be able to pick up the coding style from surrounding code, but it is a good idea to be aware of the following conventions.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Kh@hhA]rhSXYou should probably be able to pick up the coding style from surrounding code, but it is a good idea to be aware of the following conventions.rr}r(h$jh%jubaubhc)r}r(h$Uh%jh*h-h4hfh6}r(j$X*h8]h9]h:]h;]h<]uh?Kh@hhA]rhi)r}r(h$X5All Python code must follow the `PEP-8`_ guidelines. h%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Nh@hhA]rhn)r}r(h$X4All Python code must follow the `PEP-8`_ guidelines.h%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]r(hSX All Python code must follow the rr}r(h$X All Python code must follow the h%jubhs)r}r(h$X`PEP-8`_jaKh%jh4hh6}r(UnameXPEP-8jcX(http://www.python.org/dev/peps/pep-0008/rh8]h9]h:]h;]h<]uhA]rhSXPEP-8rr}r(h$Uh%jubaubhSX guidelines.rr}r(h$X guidelines.h%jubeubaubaubhn)r}r(h$X[`pep8.py`_ is an utility you can use to verify that your code is following the conventions.h%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Kh@hhA]r(hs)r}r(h$X `pep8.py`_jaKh%jh4hh6}r(UnameXpep8.pyrjcX http://pypi.python.org/pypi/pep8rh8]h9]h:]h;]h<]uhA]rhSXpep8.pyr r }r (h$Uh%jubaubhSXQ is an utility you can use to verify that your code is following the conventions.r r }r(h$XQ is an utility you can use to verify that your code is following the conventions.h%jubeubh1)r}r(h$X5.. _`PEP-8`: http://www.python.org/dev/peps/pep-0008/h)Kh%jh*h-h4h5h6}r(jcjh8]rUpep-8rah9]h:]h;]h<]rh auh?Kh@hhA]ubh1)r}r(h$X/.. _`pep8.py`: http://pypi.python.org/pypi/pep8h)Kh%jh*h-h4h5h6}r(jcjh8]rUpep8-pyrah9]h:]h;]h<]rhauh?Kh@hhA]ubhc)r}r(h$Uh%jh*h-h4hfh6}r(j$X*h8]h9]h:]h;]h<]uh?Kh@hhA]rhi)r}r (h$XDocstrings must follow the `PEP-257`_ conventions, and use the following style. Do this: .. code-block:: python def method(self, arg): """Short description. More details. """ or: .. code-block:: python def method(self, arg): """Short description.""" but not this: .. code-block:: python def method(self, arg): """ Short description. """ h%jh*h-h4hh6}r!(h:]h;]h9]h8]h<]uh?Nh@hhA]r"(hn)r#}r$(h$XODocstrings must follow the `PEP-257`_ conventions, and use the following style.h%jh*h-h4hh6}r%(h:]h;]h9]h8]h<]uh?KhA]r&(hSXDocstrings must follow the r'r(}r)(h$XDocstrings must follow the h%j#ubhs)r*}r+(h$X `PEP-257`_jaKh%j#h4hh6}r,(UnameXPEP-257jcX(http://www.python.org/dev/peps/pep-0257/r-h8]h9]h:]h;]h<]uhA]r.hSXPEP-257r/r0}r1(h$Uh%j*ubaubhSX* conventions, and use the following style.r2r3}r4(h$X* conventions, and use the following style.h%j#ubeubcdocutils.nodes block_quote r5)r6}r7(h$Uh6}r8(h:]h;]h9]h8]h<]uh%jhA]r9(hn)r:}r;(h$XDo this:r<h%j6h*h-h4hh6}r=(h:]h;]h9]h8]h<]uh?KhA]r>hSXDo this:r?r@}rA(h$j<h%j:ubaubcdocutils.nodes literal_block rB)rC}rD(h$XLdef method(self, arg): """Short description. More details. """h%j6h*h-h4U literal_blockrEh6}rF(UlinenosrGUlanguagerHXpythonU xml:spacerIUpreserverJh8]h9]h:]h;]h<]uh?KhA]rKhSXLdef method(self, arg): """Short description. More details. """rLrM}rN(h$Uh%jCubaubhn)rO}rP(h$Xor:rQh%j6h*h-h4hh6}rR(h:]h;]h9]h8]h<]uh?KhA]rShSXor:rTrU}rV(h$jQh%jOubaubjB)rW}rX(h$X3def method(self, arg): """Short description."""h%j6h*h-h4jEh6}rY(jGjHXpythonjIjJh8]h9]h:]h;]h<]uh?KhA]rZhSX3def method(self, arg): """Short description."""r[r\}r](h$Uh%jWubaubhn)r^}r_(h$X but not this:r`h%j6h*h-h4hh6}ra(h:]h;]h9]h8]h<]uh?KhA]rbhSX but not this:rcrd}re(h$j`h%j^ubaubjB)rf}rg(h$X=def method(self, arg): """ Short description. """h%j6h*h-h4jEh6}rh(jGjHXpythonjIjJh8]h9]h:]h;]h<]uh?KhA]rihSX=def method(self, arg): """ Short description. """rjrk}rl(h$Uh%jfubaubeh4U block_quotermubeubaubh1)rn}ro(h$X7.. _`PEP-257`: http://www.python.org/dev/peps/pep-0257/h)Kh%jh*h-h4h5h6}rp(jcj-h8]rqUpep-257rrah9]h:]h;]h<]rshauh?Kh@hhA]ubhc)rt}ru(h$Uh%jh*h-h4hfh6}rv(j$X*h8]h9]h:]h;]h<]uh?Kh@hhA]rw(hi)rx}ry(h$X$Lines should not exceed 78 columns. h%jth*h-h4hh6}rz(h:]h;]h9]h8]h<]uh?Nh@hhA]r{hn)r|}r}(h$X#Lines should not exceed 78 columns.r~h%jxh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]rhSX#Lines should not exceed 78 columns.rr}r(h$j~h%j|ubaubaubhi)r}r(h$X Import order * Python standard library (`import xxx`) * Python standard library ('from xxx import`) * Third party packages. * Other modules from the current package. or in case of code using Django: * Python standard library (`import xxx`) * Python standard library ('from xxx import`) * Third party packages. * Django packages. * Other modules from the current package. Within these sections imports should be sorted by name. Example: .. code-block:: python import threading import time from collections import deque from Queue import Queue, Empty from celery.datastructures import TokenBucket from celery.utils import timeutils from celery.utils.compat import all, izip_longest, chain_from_iterable h%jth*h-h4hh6}r(h:]h;]h9]h8]h<]uh?Nh@hhA]r(hn)r}r(h$X Import orderrh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]rhSX Import orderrr}r(h$jh%jubaubj5)r}r(h$Uh6}r(h:]h;]h9]h8]h<]uh%jhA]r(hc)r}r(h$Uh6}r(j$X*h8]h9]h:]h;]h<]uh%jhA]r(hi)r}r(h$X&Python standard library (`import xxx`)rh6}r(h:]h;]h9]h8]h<]uh%jhA]rhn)r}r(h$jh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]r(hSXPython standard library (rr}r(h$XPython standard library (h%jubcdocutils.nodes title_reference r)r}r(h$X `import xxx`h6}r(h:]h;]h9]h8]h<]uh%jhA]rhSX import xxxrr}r(h$Uh%jubah4Utitle_referencerubhSX)r}r(h$X)h%jubeubah4hubhi)r}r(h$X+Python standard library ('from xxx import`)rh6}r(h:]h;]h9]h8]h<]uh%jhA]rhn)r}r(h$jh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]rhSX+Python standard library ('from xxx import`)rr}r(h$jh%jubaubah4hubhi)r}r(h$XThird party packages.rh6}r(h:]h;]h9]h8]h<]uh%jhA]rhn)r}r(h$jh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]rhSXThird party packages.rr}r(h$jh%jubaubah4hubhi)r}r(h$X(Other modules from the current package. h6}r(h:]h;]h9]h8]h<]uh%jhA]rhn)r}r(h$X'Other modules from the current package.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]rhSX'Other modules from the current package.rr}r(h$jh%jubaubah4hubeh4hfubhn)r}r(h$X or in case of code using Django:rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]rhSX or in case of code using Django:rr}r(h$jh%jubaubhc)r}r(h$Uh6}r(j$X*h8]h9]h:]h;]h<]uh%jhA]r(hi)r}r(h$X&Python standard library (`import xxx`)rh6}r(h:]h;]h9]h8]h<]uh%jhA]rhn)r}r(h$jh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]r(hSXPython standard library (rr}r(h$XPython standard library (h%jubj)r}r(h$X `import xxx`h6}r(h:]h;]h9]h8]h<]uh%jhA]rhSX import xxxrr}r(h$Uh%jubah4jubhSX)r}r(h$X)h%jubeubah4hubhi)r}r(h$X+Python standard library ('from xxx import`)rh6}r(h:]h;]h9]h8]h<]uh%jhA]rhn)r}r(h$jh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]rhSX+Python standard library ('from xxx import`)rr}r(h$jh%jubaubah4hubhi)r}r(h$XThird party packages.rh6}r(h:]h;]h9]h8]h<]uh%jhA]rhn)r}r(h$jh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]rhSXThird party packages.r r }r (h$jh%jubaubah4hubhi)r }r (h$XDjango packages.rh6}r(h:]h;]h9]h8]h<]uh%jhA]rhn)r}r(h$jh%j h*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]rhSXDjango packages.rr}r(h$jh%jubaubah4hubhi)r}r(h$X(Other modules from the current package. h6}r(h:]h;]h9]h8]h<]uh%jhA]rhn)r}r(h$X'Other modules from the current package.rh%jh*h-h4hh6}r(h:]h;]h9]h8]h<]uh?KhA]r hSX'Other modules from the current package.r!r"}r#(h$jh%jubaubah4hubeh4hfubhn)r$}r%(h$X7Within these sections imports should be sorted by name.r&h%jh*h-h4hh6}r'(h:]h;]h9]h8]h<]uh?KhA]r(hSX7Within these sections imports should be sorted by name.r)r*}r+(h$j&h%j$ubaubhn)r,}r-(h$XExample:r.h%jh*h-h4hh6}r/(h:]h;]h9]h8]h<]uh?KhA]r0hSXExample:r1r2}r3(h$j.h%j,ubaubjB)r4}r5(h$Ximport threading import time from collections import deque from Queue import Queue, Empty from celery.datastructures import TokenBucket from celery.utils import timeutils from celery.utils.compat import all, izip_longest, chain_from_iterableh%jh*h-h4jEh6}r6(jGjHXpythonjIjJh8]h9]h:]h;]h<]uh?KhA]r7hSXimport threading import time from collections import deque from Queue import Queue, Empty from celery.datastructures import TokenBucket from celery.utils import timeutils from celery.utils.compat import all, izip_longest, chain_from_iterabler8r9}r:(h$Uh%j4ubaubeh4jmubeubhi)r;}r<(h$X8Wildcard imports must not be used (`from xxx import *`).r=h%jth*h-h4hh6}r>(h:]h;]h9]h8]h<]uh?Nh@hhA]r?hn)r@}rA(h$j=h%j;h*h-h4hh6}rB(h:]h;]h9]h8]h<]uh?KhA]rC(hSX#Wildcard imports must not be used (rDrE}rF(h$X#Wildcard imports must not be used (h%j@ubj)rG}rH(h$X`from xxx import *`h6}rI(h:]h;]h9]h8]h<]uh%j@hA]rJhSXfrom xxx import *rKrL}rM(h$Uh%jGubah4jubhSX).rNrO}rP(h$X).h%j@ubeubaubeubeubeubh*h-h4Usystem_messagerQh6}rR(h:]UlevelKh8]h9]rShGaUsourceh-h;]h<]UlineKUtypeUINFOrTuh?Kh@hhA]rUhn)rV}rW(h$Uh6}rX(h:]h;]h9]h8]h<]uh%h"hA]rYhSX/Duplicate implicit target name: "contributing".rZr[}r\(h$Uh%jVubah4hubaubh!)r]}r^(h$Uh%jh*h-h4jQh6}r_(h:]UlevelKh8]h9]Usourceh-h;]h<]UlineKUtypejTuh?Kqh@hhA]r`hn)ra}rb(h$Uh6}rc(h:]h;]h9]h8]h<]uh%j]hA]rdhSX:Enumerated list start value not ordinal-1: "2" (ordinal 2)rerf}rg(h$Uh%jaubah4hubaubh!)rh}ri(h$Uh%jh*h-h4jQh6}rj(h:]UlevelKh8]h9]Usourceh-h;]h<]UlineKUtypejTuh?Kvh@hhA]rkhn)rl}rm(h$Uh6}rn(h:]h;]h9]h8]h<]uh%jhhA]rohSX:Enumerated list start value not ordinal-1: "3" (ordinal 3)rprq}rr(h$Uh%jlubah4hubaubh!)rs}rt(h$Uh%jh*h-h4jQh6}ru(h:]UlevelKh8]h9]Usourceh-h;]h<]UlineKUtypejTuh?K|h@hhA]rvhn)rw}rx(h$Uh6}ry(h:]h;]h9]h8]h<]uh%jshA]rzhSX:Enumerated list start value not ordinal-1: "4" (ordinal 4)r{r|}r}(h$Uh%jwubah4hubaubh!)r~}r(h$Uh%jh*h-h4jQh6}r(h:]UlevelKh8]h9]Usourceh-h;]h<]UlineKUtypejTuh?Kh@hhA]rhn)r}r(h$Uh6}r(h:]h;]h9]h8]h<]uh%j~hA]rhSX:Enumerated list start value not ordinal-1: "5" (ordinal 5)rr}r(h$Uh%jubah4hubaubeUcurrent_sourcerNU decorationrNUautofootnote_startrKUnameidsr}r(hhhjhhh jh h`h jh jh jzhhhh>hhhjhjrhjahj=hhhjhhhj/hjhjhhyhjuhA]r(h2h'eh$UU transformerrNU footnote_refsr}rUrefnamesr}r(Xpylons code of conduct]rjlaXcreate a github account]rjRaXubuntu code of conduct]rj_aXgithub]rjaj]rjaXpep-257]rj*aXpep-8]rjauUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh@hU current_linerNUtransform_messagesr]r(h!)r}r(h$Uh6}r(h:]UlevelKh8]h9]Usourceh-h;]h<]UlineKUtypejTuhA]rhn)r}r(h$Uh6}r(h:]h;]h9]h8]h<]uh%jhA]rhSX2Hyperlink target "contributing" is not referenced.rr}r(h$Uh%jubah4hubah4jQubh!)r}r(h$Uh6}r(h:]UlevelKh8]h9]Usourceh-h;]h<]UlineK UtypejTuhA]rhn)r}r(h$Uh6}r(h:]h;]h9]h8]h<]uh%jhA]rhSX?Hyperlink target "community-code-of-conduct" is not referenced.rr}r(h$Uh%jubah4hubah4jQubh!)r}r(h$Uh6}r(h:]UlevelKh8]h9]Usourceh-h;]h<]UlineKaUtypejTuhA]rhn)r}r(h$Uh6}r(h:]h;]h9]h8]h<]uh%jhA]rhSX4Hyperlink target "reporting-bugs" is not referenced.rr}r(h$Uh%jubah4hubah4jQubh!)r}r(h$Uh6}r(h:]UlevelKh8]h9]Usourceh-h;]h<]UlineKUtypejTuhA]rhn)r}r(h$Uh6}r(h:]h;]h9]h8]h<]uh%jhA]rhSX4Hyperlink target "issue-trackers" is not referenced.rr}r(h$Uh%jubah4hubah4jQubh!)r}r(h$Uh6}r(h:]UlevelKh8]h9]Usourceh-h;]h<]UlineKUtypejTuhA]rhn)r}r(h$Uh6}r(h:]h;]h9]h8]h<]uh%jhA]rhSX2Hyperlink target "coding-style" is not referenced.rr}r(h$Uh%jubah4hubah4jQubeUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhPNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUJ/var/build/user_builds/celery/checkouts/2.1-archived/docs/contributing.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlr Uhttp://www.python.org/dev/peps/r!Usyntax_highlightr"Ulongr#Uinput_encoding_error_handlerr$jUauto_id_prefixr%Uidr&Udoctitle_xformr'Ustrip_elements_with_classesr(NU _config_filesr)]Ufile_insertion_enabledr*U raw_enabledr+KU dump_settingsr,NubUsymbol_footnote_startr-KUidsr.}r/(jj|j=j8hjjjh`hXjaj]hhjjhhhhhhhhjjhxhthjjj hGh'h>h'hhjjjjj.j*hjjjhjjjj/jjjjj hjhyj8jzjvjrjnhjuUsubstitution_namesr0}r1h4h@h6}r2(h:]h8]h9]Usourceh-h;]h<]uU footnotesr3]r4Urefidsr5}r6(h>]r7h2aj/]r8jaj]r9jahy]r:j5aj]r;jauub.PKYDD9/celery-2.1-archived/.doctrees/community.doctreecdocutils.nodes document q)q}q(U nametypesq}q(XwikiqNXwho's using celeryqNXres-wikiqX%how to get celeryd to work on freebsdq NXcommunity-newsq X/celery, rabbitmq and sending messages directly.q NX communityq X idan gazitq X"celery questions on stack overflowqNXintroducció a celery (catalan)qNX)django-celery presentation at djugl 2010.qNX:large problems in django, mostly solved: delayed executionqNXDcelery - eine asynchrone task queue (nicht nur) für django (german)qNX"mailing-list archive: celery-usersqNXres-mailing-list-archiveqUcontentsqNX celery tipsqNX2asynchronous processing using celery (historio.us)qNX 10 tools that make django betterqNX django task queueing with celeryqNXrabbitmq, celery and djangoqNXintroduction to celeryqNXcommunity resourcesqNXKbuild a processing queue [...] in less than a day using rabbitmq and celeryqNXweb-based 3d animation softwareqNXOdjango/celery quickstart (or, how i learned to stop using cron and love celery)qNXpyweb-ilq Xthinkingcactusq!Xvirtualenv tipsq"NX;background task processing and deferred execution in djangoq#NXrabbitmq with python and rubyq$NX&подробнее о celery (russian)q%NX resourcesq&NX0"large problems, mostly solved" (djangocon 2010)q'NX="massaging the pony: message queues and you" (djangocon 2010)q(NXirc logsq)NX"distributed task locking in celeryq*NX res-irc-logsq+X+celery, django and virtualenv playing nice.q,NX!django and celery - death to cronq-NX rich lelandq.X&building a django app server with chefq/NXEcelery: добавляем параллелизм в django (russian)q0NX1kaninchen & schlangen: rabbitmq & python (german)q1NXOrabbitmqとceleryを使ってdjangoでジョブキューしてみる (japanese)q2NXdjango and asynchronous jobsq3NXres-using-celeryq4X'celery presentation at pycon india 2010q5NXnewsq6NXres-stackoverflowq7X!queued storage backend for djangoq8NX"a simple celery with django how-toq9NXviktor peterssonq:X what's your favorite django app?q;NX-message queues, django and celery quick startqXtim bullq?X1how celery, carrot, and your messaging stack workq@NX,cron dentro do django com celery (portugese)qANXrobert pogorzelskiqBXcommunity-resourcesqCX.using python magic to improve the deferred apiqDNuUsubstitution_defsqE}qFUparse_messagesqG]qHUcurrent_sourceqINU decorationqJNUautofootnote_startqKKUnameidsqL}qM(hUwikiqNhUwho-s-using-celeryqOhUres-wikiqPh U%how-to-get-celeryd-to-work-on-freebsdqQh Ucommunity-newsqRh U-celery-rabbitmq-and-sending-messages-directlyqSh U communityqTh U idan-gazitqUhU"celery-questions-on-stack-overflowqVhUintroduccio-a-celery-catalanqWhU(django-celery-presentation-at-djugl-2010qXhU8large-problems-in-django-mostly-solved-delayed-executionqYhU=celery-eine-asynchrone-task-queue-nicht-nur-fur-django-germanqZhU!mailing-list-archive-celery-usersq[hUres-mailing-list-archiveq\hUcontentsq]hU celery-tipsq^hU0asynchronous-processing-using-celery-historio-usq_hUtools-that-make-django-betterq`hU django-task-queueing-with-celeryqahUrabbitmq-celery-and-djangoqbhUintroduction-to-celeryqchUcommunity-resourcesqdhUEbuild-a-processing-queue-in-less-than-a-day-using-rabbitmq-and-celeryqehUweb-based-3d-animation-softwareqfhULdjango-celery-quickstart-or-how-i-learned-to-stop-using-cron-and-love-celeryqgh Upyweb-ilqhh!Uthinkingcactusqih"Uvirtualenv-tipsqjh#U;background-task-processing-and-deferred-execution-in-djangoqkh$Urabbitmq-with-python-and-rubyqlh%Ucelery-russianqmh&U resourcesqnh'U+large-problems-mostly-solved-djangocon-2010qoh(U8massaging-the-pony-message-queues-and-you-djangocon-2010qph)Uirc-logsqqh*U"distributed-task-locking-in-celeryqrh+U res-irc-logsqsh,U)celery-django-and-virtualenv-playing-niceqth-Udjango-and-celery-death-to-cronquh.U rich-lelandqvh/U&building-a-django-app-server-with-chefqwh0Ucelery-django-russianqxh1U*kaninchen-schlangen-rabbitmq-python-germanqyh2Urabbitmqcelerydjango-japaneseqzh3Udjango-and-asynchronous-jobsq{h4Ures-using-celeryq|h5U'celery-presentation-at-pycon-india-2010q}h6Unewsq~h7Ures-stackoverflowqh8U!queued-storage-backend-for-djangoqh9U"a-simple-celery-with-django-how-toqh:Uviktor-peterssonqh;Uwhat-s-your-favorite-django-appqhU alon-swartzqh?Utim-bullqh@U/how-celery-carrot-and-your-messaging-stack-workqhAU*cron-dentro-do-django-com-celery-portugeseqhBUrobert-pogorzelskiqhCUid1qhDU.using-python-magic-to-improve-the-deferred-apiquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX.. _community:UparentqhUsourceqcdocutils.nodes reprunicode qXG/var/build/user_builds/celery/checkouts/2.1-archived/docs/community.rstqq}qbUtagnameqUtargetqU attributesq}q(Uidsq]Ubackrefsq]Udupnamesq]Uclassesq]Unamesq]UrefidqhTuUlineqKUdocumentqhh]ubcdocutils.nodes section q)q}q(hUhhhhUexpect_referenced_by_nameq}qh hshUsectionqh}q(h]h]h]h]q(hdhTeh]q(hh euhKhhUexpect_referenced_by_idq}qhThsh]q(cdocutils.nodes title q)q}q(hXCommunity ResourcesqhhhhhUtitleqh}q(h]h]h]h]h]uhKhhh]qcdocutils.nodes Text qXCommunity Resourcesqq}q(hhhhubaubcdocutils.nodes paragraph q)q}q(hXThis is a list of external blog posts, tutorials and slides related to Celery. If you have a link that's missing from this list, please contact the mailing-list or submit a patch.qhhhhhU paragraphqh}q(h]h]h]h]h]uhKhhh]qhXThis is a list of external blog posts, tutorials and slides related to Celery. If you have a link that's missing from this list, please contact the mailing-list or submit a patch.qÅq}q(hhhhubaubcdocutils.nodes topic q)q}q(hUhhhhhUtopicqh}q(h]h]q(UcontentsqUlocalqeh]h]qh]ah]qhauhK hhh]qcdocutils.nodes bullet_list q)q}q(hUhhhNhU bullet_listqh}q(h]h]h]h]h]uhNhhh]q(cdocutils.nodes list_item q)q}q(hUh}q(h]h]h]h]h]uhhh]q(h)q}q(hUh}q(h]h]h]h]h]uhhh]qcdocutils.nodes reference q)q}q(hUh}q(h]qUid2qah]h]h]h]Urefidhnuhhh]qhX Resourcesq煁q}q(hX ResourcesqhhubahU referencequbahhubh)q}q(hUh}q(h]h]h]h]h]uhhh]q(h)q}q(hUh}q(h]h]h]h]h]uhhh]qh)q}q(hUh}q(h]h]h]h]h]uhhh]qh)q}q(hUh}q(h]qUid3qah]h]h]h]UrefidhOuhhh]qhXWho's using Celeryqq}r(hXWho's using CeleryrhhubahhubahhubahU list_itemrubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r (h]h]h]h]h]uhjh]r h)r }r (hUh}r (h]rUid4rah]h]h]h]UrefidhNuhjh]rhXWikirr}r(hXWikirhj ubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]r Uid5r!ah]h]h]h]UrefidhVuhjh]r"hX"Celery questions on Stack Overflowr#r$}r%(hX"Celery questions on Stack Overflowr&hjubahhubahhubahjubh)r'}r((hUh}r)(h]h]h]h]h]uhhh]r*h)r+}r,(hUh}r-(h]h]h]h]h]uhj'h]r.h)r/}r0(hUh}r1(h]r2Uid6r3ah]h]h]h]Urefidh[uhj+h]r4hX"Mailing-list Archive: celery-usersr5r6}r7(hX"Mailing-list Archive: celery-usersr8hj/ubahhubahhubahjubh)r9}r:(hUh}r;(h]h]h]h]h]uhhh]r<h)r=}r>(hUh}r?(h]h]h]h]h]uhj9h]r@h)rA}rB(hUh}rC(h]rDUid7rEah]h]h]h]Urefidhquhj=h]rFhXIRC LogsrGrH}rI(hXIRC LogsrJhjAubahhubahhubahjubehhubehjubh)rK}rL(hUh}rM(h]h]h]h]h]uhhh]rN(h)rO}rP(hUh}rQ(h]h]h]h]h]uhjKh]rRh)rS}rT(hUh}rU(h]rVUid8rWah]h]h]h]Urefidh~uhjOh]rXhXNewsrYrZ}r[(hXNewsr\hjSubahhubahhubh)r]}r^(hUh}r_(h]h]h]h]h]uhjKh]r`(h)ra}rb(hUh}rc(h]h]h]h]h]uhj]h]rdh)re}rf(hUh}rg(h]h]h]h]h]uhjah]rhh)ri}rj(hUh}rk(h]rlUid9rmah]h]h]h]Urefidhwuhjeh]rnhX&Building a Django App Server with Chefrorp}rq(hX&Building a Django App Server with Chefrrhjiubahhubahhubahjubh)rs}rt(hUh}ru(h]h]h]h]h]uhj]h]rvh)rw}rx(hUh}ry(h]h]h]h]h]uhjsh]rzh)r{}r|(hUh}r}(h]r~Uid10rah]h]h]h]UrefidhWuhjwh]rhXIntroducció a Celery (Catalan)rr}r(hXIntroducció a Celery (Catalan)rhj{ubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid11rah]h]h]h]Urefidhuuhjh]rhX!Django and Celery - Death to Cronrr}r(hX!Django and Celery - Death to Cronrhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid12rah]h]h]h]Urefidh^uhjh]rhX Celery Tipsrr}r(hX Celery Tipsrhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid13rah]h]h]h]Urefidhuhjh]rhX What's your favorite Django app?rr}r(hX What's your favorite Django app?rhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid14rah]h]h]h]Urefidhjuhjh]rhXVirtualenv Tipsrr}r(hXVirtualenv Tipsrhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid15rah]h]h]h]Urefidh`uhjh]rhX 10 Tools That Make Django Betterrr}r(hX 10 Tools That Make Django Betterrhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid16rah]h]h]h]Urefidhruhjh]rhX"Distributed Task Locking in Celeryrr}r(hX"Distributed Task Locking in Celeryrhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid17rah]h]h]h]Urefidhuhjh]rhXWCelery — распределенные очереди задач на Python (Russian)rr}r(hXWCelery — распределенные очереди задач на Python (Russian)rhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r (h]h]h]h]h]uhjh]r h)r }r (hUh}r (h]rUid18rah]h]h]h]Urefidhmuhjh]rhX&Подробнее о Celery (Russian)rr}r(hX&Подробнее о Celery (Russian)rhj ubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]r Uid19r!ah]h]h]h]UrefidhSuhjh]r"hX/Celery, RabbitMQ and sending messages directly.r#r$}r%(hX/Celery, RabbitMQ and sending messages directly.r&hjubahhubahhubahjubh)r'}r((hUh}r)(h]h]h]h]h]uhj]h]r*h)r+}r,(hUh}r-(h]h]h]h]h]uhj'h]r.h)r/}r0(hUh}r1(h]r2Uid20r3ah]h]h]h]Urefidhuhj+h]r4hX,Cron dentro do Django com Celery (Portugese)r5r6}r7(hX,Cron dentro do Django com Celery (Portugese)r8hj/ubahhubahhubahjubh)r9}r:(hUh}r;(h]h]h]h]h]uhj]h]r<h)r=}r>(hUh}r?(h]h]h]h]h]uhj9h]r@h)rA}rB(hUh}rC(h]rDUid21rEah]h]h]h]Urefidhzuhj=h]rFhXORabbitMQとCeleryを使ってDjangoでジョブキューしてみる (Japanese)rGrH}rI(hXORabbitMQとCeleryを使ってDjangoでジョブキューしてみる (Japanese)rJhjAubahhubahhubahjubh)rK}rL(hUh}rM(h]h]h]h]h]uhj]h]rNh)rO}rP(hUh}rQ(h]h]h]h]h]uhjKh]rRh)rS}rT(hUh}rU(h]rVUid22rWah]h]h]h]UrefidhyuhjOh]rXhX1Kaninchen & Schlangen: RabbitMQ & Python (German)rYrZ}r[(hX1Kaninchen & Schlangen: RabbitMQ & Python (German)r\hjSubahhubahhubahjubh)r]}r^(hUh}r_(h]h]h]h]h]uhj]h]r`h)ra}rb(hUh}rc(h]h]h]h]h]uhj]h]rdh)re}rf(hUh}rg(h]rhUid23riah]h]h]h]UrefidhZuhjah]rjhXDCelery - Eine asynchrone Task Queue (nicht nur) für Django (German)rkrl}rm(hXDCelery - Eine asynchrone Task Queue (nicht nur) für Django (German)rnhjeubahhubahhubahjubh)ro}rp(hUh}rq(h]h]h]h]h]uhj]h]rrh)rs}rt(hUh}ru(h]h]h]h]h]uhjoh]rvh)rw}rx(hUh}ry(h]rzUid24r{ah]h]h]h]Urefidh_uhjsh]r|hX2Asynchronous Processing Using Celery (historio.us)r}r~}r(hX2Asynchronous Processing Using Celery (historio.us)rhjwubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid25rah]h]h]h]Urefidhpuhjh]rhX="Massaging the Pony: Message Queues and You" (Djangocon 2010)rr}r(hX="Massaging the Pony: Message Queues and You" (Djangocon 2010)rhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid26rah]h]h]h]Urefidhouhjh]rhX0"Large problems, Mostly Solved" (Djangocon 2010)rr}r(hX0"Large problems, Mostly Solved" (Djangocon 2010)rhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid27rah]h]h]h]Urefidhuhjh]rhX"A Simple Celery with Django How-Torr}r(hX"A Simple Celery with Django How-Torhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid28rah]h]h]h]Urefidh{uhjh]rhXDjango and asynchronous jobsrr}r(hXDjango and asynchronous jobsrhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid29rah]h]h]h]Urefidhxuhjh]rhXECelery: добавляем параллелизм в Django (Russian)rr}r(hXECelery: добавляем параллелизм в Django (Russian)rhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid30rah]h]h]h]Urefidh}uhjh]rhX'Celery presentation at PyCon India 2010rr}r(hX'Celery presentation at PyCon India 2010rhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid31rah]h]h]h]Urefidhtuhjh]rhX+celery, django and virtualenv playing nice.rr}r(hX+celery, django and virtualenv playing nice.rhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r (h]r Uid32r ah]h]h]h]Urefidhauhjh]r hX Django Task Queueing with Celeryr r}r(hX Django Task Queueing with Celeryrhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid33rah]h]h]h]UrefidhXuhjh]rhX)django-celery presentation at DJUGL 2010.rr }r!(hX)django-celery presentation at DJUGL 2010.r"hjubahhubahhubahjubh)r#}r$(hUh}r%(h]h]h]h]h]uhj]h]r&h)r'}r((hUh}r)(h]h]h]h]h]uhj#h]r*h)r+}r,(hUh}r-(h]r.Uid34r/ah]h]h]h]Urefidhguhj'h]r0hXODjango/Celery Quickstart (or, how I learned to stop using cron and love celery)r1r2}r3(hXODjango/Celery Quickstart (or, how I learned to stop using cron and love celery)r4hj+ubahhubahhubahjubh)r5}r6(hUh}r7(h]h]h]h]h]uhj]h]r8h)r9}r:(hUh}r;(h]h]h]h]h]uhj5h]r<h)r=}r>(hUh}r?(h]r@Uid35rAah]h]h]h]Urefidhuhj9h]rBhX.Using Python magic to improve the deferred APIrCrD}rE(hX.Using Python magic to improve the deferred APIrFhj=ubahhubahhubahjubh)rG}rH(hUh}rI(h]h]h]h]h]uhj]h]rJh)rK}rL(hUh}rM(h]h]h]h]h]uhjGh]rNh)rO}rP(hUh}rQ(h]rRUid36rSah]h]h]h]UrefidhuhjKh]rThX1How Celery, Carrot, and your messaging stack workrUrV}rW(hX1How Celery, Carrot, and your messaging stack workrXhjOubahhubahhubahjubh)rY}rZ(hUh}r[(h]h]h]h]h]uhj]h]r\h)r]}r^(hUh}r_(h]h]h]h]h]uhjYh]r`h)ra}rb(hUh}rc(h]rdUid37reah]h]h]h]UrefidhYuhj]h]rfhX:Large Problems in Django, Mostly Solved: Delayed Executionrgrh}ri(hX:Large Problems in Django, Mostly Solved: Delayed Executionrjhjaubahhubahhubahjubh)rk}rl(hUh}rm(h]h]h]h]h]uhj]h]rnh)ro}rp(hUh}rq(h]h]h]h]h]uhjkh]rrh)rs}rt(hUh}ru(h]rvUid38rwah]h]h]h]Urefidhcuhjoh]rxhXIntroduction to Celeryryrz}r{(hXIntroduction to Celeryr|hjsubahhubahhubahjubh)r}}r~(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhj}h]rh)r}r(hUh}r(h]rUid39rah]h]h]h]Urefidhbuhjh]rhXRabbitMQ, Celery and Djangorr}r(hXRabbitMQ, Celery and Djangorhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid40rah]h]h]h]Urefidhuhjh]rhX-Message Queues, Django and Celery Quick Startrr}r(hX-Message Queues, Django and Celery Quick Startrhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid41rah]h]h]h]Urefidhkuhjh]rhX;Background task processing and deferred execution in Djangorr}r(hX;Background task processing and deferred execution in Djangorhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid42rah]h]h]h]Urefidheuhjh]rhXKBuild a processing queue [...] in less than a day using RabbitMQ and Celeryrr}r(hXKBuild a processing queue [...] in less than a day using RabbitMQ and Celeryrhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid43rah]h]h]h]UrefidhQuhjh]rhX%How to get celeryd to work on FreeBSDrr}r(hX%How to get celeryd to work on FreeBSDrhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid44rah]h]h]h]Urefidhfuhjh]rhXWeb-based 3D animation softwarerr}r(hXWeb-based 3D animation softwarerhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid45rah]h]h]h]Urefidhuhjh]rhX!Queued Storage Backend for Djangorr}r(hX!Queued Storage Backend for Djangorhjubahhubahhubahjubh)r}r(hUh}r(h]h]h]h]h]uhj]h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid46rah]h]h]h]Urefidhluhjh]rhXRabbitMQ with Python and Rubyr r }r (hXRabbitMQ with Python and Rubyr hjubahhubahhubahjubehhubehjubeubaubh)r }r(hX.. _community-resources:hhhhhhh}r(h]h]h]h]h]hhuhKhhh]ubh)r}r(hUhhhhh}rhCj shhh}r(h]h]h]h]r(hnheh]r(h&hCeuhKhhh}rhj sh]r(h)r}r(hhhjhhhhh}r(h]h]h]h]h]hhuhKhhh]rhX Resourcesrr}r(hhhjubaubh)r}r (hX.. _res-using-celery:hjhhhhh}r!(h]h]h]h]h]hh|uhKhhh]ubh)r"}r#(hUhjhhh}r$h4jshhh}r%(h]h]h]h]r&(hOh|eh]r'(hh4euhKhhh}r(h|jsh]r)(h)r*}r+(hjhj"hhhhh}r,(h]h]h]h]h]hhuhKhhh]r-hXWho's using Celeryr.r/}r0(hjhj*ubaubh)r1}r2(hX'http://wiki.github.com/ask/celery/usingr3hj"hhhhh}r4(h]h]h]h]h]uhKhhh]r5h)r6}r7(hj3h}r8(Urefurij3h]h]h]h]h]uhj1h]r9hX'http://wiki.github.com/ask/celery/usingr:r;}r<(hUhj6ubahhubaubh)r=}r>(hX .. _res-wiki:hj"hhhhh}r?(h]h]h]h]h]hhPuhKhhh]ubeubh)r@}rA(hUhjhhh}rBhj=shhh}rC(h]h]h]h]rD(hNhPeh]rE(hheuhKhhh}rFhPj=sh]rG(h)rH}rI(hjhj@hhhhh}rJ(h]h]h]h]h]hjuhKhhh]rKhXWikirLrM}rN(hjhjHubaubh)rO}rP(hX"http://wiki.github.com/ask/celery/rQhj@hhhhh}rR(h]h]h]h]h]uhKhhh]rSh)rT}rU(hjQh}rV(UrefurijQh]h]h]h]h]uhjOh]rWhX"http://wiki.github.com/ask/celery/rXrY}rZ(hUhjTubahhubaubh)r[}r\(hX.. _res-stackoverflow:hj@hhhhh}r](h]h]h]h]h]hhuhK!hhh]ubeubh)r^}r_(hUhjhhh}r`h7j[shhh}ra(h]h]h]h]rb(hVheh]rc(hh7euhK$hhh}rdhj[sh]re(h)rf}rg(hj&hj^hhhhh}rh(h]h]h]h]h]hj!uhK$hhh]rihX"Celery questions on Stack Overflowrjrk}rl(hj&hjfubaubh)rm}rn(hX3http://stackoverflow.com/search?q=celery&tab=newestrohj^hhhhh}rp(h]h]h]h]h]uhK&hhh]rqh)rr}rs(hjoh}rt(Urefurijoh]h]h]h]h]uhjmh]ruhX3http://stackoverflow.com/search?q=celery&tab=newestrvrw}rx(hUhjrubahhubaubh)ry}rz(hX.. _res-mailing-list-archive:hj^hhhhh}r{(h]h]h]h]h]hh\uhK(hhh]ubeubh)r|}r}(hUhjhhh}r~hjyshhh}r(h]h]h]h]r(h[h\eh]r(hheuhK+hhh}rh\jysh]r(h)r}r(hj8hj|hhhhh}r(h]h]h]h]h]hj3uhK+hhh]rhX"Mailing-list Archive: celery-usersrr}r(hj8hjubaubh)r}r(hX8http://blog.gmane.org/gmane.comp.python.amqp.celery.userrhj|hhhhh}r(h]h]h]h]h]uhK-hhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhX8http://blog.gmane.org/gmane.comp.python.amqp.celery.userrr}r(hUhjubahhubaubh)r}r(hX.. _res-irc-logs:hj|hhhhh}r(h]h]h]h]h]hhsuhK/hhh]ubeubh)r}r(hUhjhhh}rh+jshhh}r(h]h]h]h]r(hqhseh]r(h)h+euhK2hhh}rhsjsh]r(h)r}r(hjJhjhhhhh}r(h]h]h]h]h]hjEuhK2hhh]rhXIRC Logsrr}r(hjJhjubaubh)r}r(hX)http://botland.oebfare.com/logger/celery/rhjhhhhh}r(h]h]h]h]h]uhK4hhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhX)http://botland.oebfare.com/logger/celery/rr}r(hUhjubahhubaubh)r}r(hX.. _community-news:hjhhhhh}r(h]h]h]h]h]hhRuhK6hhh]ubeubeubh)r}r(hUhhhhh}rh jshhh}r(h]h]h]h]r(h~hReh]r(h6h euhK9hhh}rhRjsh]r(h)r}r(hj\hjhhhhh}r(h]h]h]h]h]hjWuhK9hhh]rhXNewsrr}r(hj\hjubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rhwah]rh/auhK(hj:h}r?(Urefurij:h]h]h]h]h]uhj8h]r@hX*http://jacobian.org/writing/favorite-apps/rArB}rC(hUhj=ubahhubaubeubh)rD}rE(hUhjhhhhh}rF(h]h]h]h]rGhjah]rHh"auhKPhhh]rI(h)rJ}rK(hjhjDhhhhh}rL(h]h]h]h]h]hjuhKPhhh]rMhXVirtualenv TipsrNrO}rP(hjhjJubaubh)rQ}rR(hX8http://ericholscher.com/blog/2010/nov/1/virtualenv-tips/rShjDhhhhh}rT(h]h]h]h]h]uhKQhhh]rUh)rV}rW(hjSh}rX(UrefurijSh]h]h]h]h]uhjQh]rYhX8http://ericholscher.com/blog/2010/nov/1/virtualenv-tips/rZr[}r\(hUhjVubahhubaubeubh)r]}r^(hUhjhhhhh}r_(h]h]h]h]r`h`ah]rahauhKThhh]rb(h)rc}rd(hjhj]hhhhh}re(h]h]h]h]h]hjuhKThhh]rfhX 10 Tools That Make Django Betterrgrh}ri(hjhjcubaubh)rj}rk(hX.http://iamseb.com/seb/2010/10/10-django-tools/rlhj]hhhhh}rm(h]h]h]h]h]uhKUhhh]rnh)ro}rp(hjlh}rq(Urefurijlh]h]h]h]h]uhjjh]rrhX.http://iamseb.com/seb/2010/10/10-django-tools/rsrt}ru(hUhjoubahhubaubeubh)rv}rw(hUhjhhhhh}rx(h]h]h]h]ryhrah]rzh*auhKXhhh]r{(h)r|}r}(hjhjvhhhhh}r~(h]h]h]h]h]hjuhKXhhh]rhX"Distributed Task Locking in Celeryrr}r(hjhj|ubaubh)r}r(hX1http://www.loose-bits.com/2010_10_10_archive.htmlrhjvhhhhh}r(h]h]h]h]h]uhKYhhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhX1http://www.loose-bits.com/2010_10_10_archive.htmlrr}r(hUhjubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhah]rh=auhK\hhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhK\hhh]rhXWCelery — распределенные очереди задач на Python (Russian)rr}r(hjhjubaubh)r}r(hX"http://www.bitbybit.ru/article/216rhjhhhhh}r(h]h]h]h]h]uhK]hhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhX"http://www.bitbybit.ru/article/216rr}r(hUhjubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhmah]rh%auhK`hhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhK`hhh]rhX&Подробнее о Celery (Russian)rr}r(hjhjubaubh)r}r(hX,http://vorushin.ru/blog/34-celery-described/rhjhhhhh}r(h]h]h]h]h]uhKahhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhX,http://vorushin.ru/blog/34-celery-described/rr}r(hUhjubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhSah]rh auhKdhhh]r(h)r}r(hj&hjhhhhh}r(h]h]h]h]h]hj!uhKdhhh]rhX/Celery, RabbitMQ and sending messages directly.rr}r(hj&hjubaubh)r}r(hXOhttp://blog.timc3.com/2010/10/17/celery-rabbitmq-and-sending-messages-directly/rhjhhhhh}r(h]h]h]h]h]uhKehhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhXOhttp://blog.timc3.com/2010/10/17/celery-rabbitmq-and-sending-messages-directly/rr}r(hUhjubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhah]rhAauhKhhhh]r(h)r}r(hj8hjhhhhh}r(h]h]h]h]h]hj3uhKhhhh]rhX,Cron dentro do Django com Celery (Portugese)rr}r(hj8hjubaubh)r}r(hXDhttp://blog.avelino.us/2010/10/cron-dentro-do-django-com-celery.htmlrhjhhhhh}r(h]h]h]h]h]uhKihhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhXDhttp://blog.avelino.us/2010/10/cron-dentro-do-django-com-celery.htmlrr}r(hUhjubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhzah]rh2auhKlhhh]r(h)r}r(hjJhjhhhhh}r(h]h]h]h]h]hjEuhKlhhh]rhXORabbitMQとCeleryを使ってDjangoでジョブキューしてみる (Japanese)rr}r(hjJhjubaubh)r}r(hXhttp://d.hatena.ne.jp/yuku_t/rhjhhhhh}r(h]h]h]h]h]uhKmhhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhXhttp://d.hatena.ne.jp/yuku_t/r r }r (hUhjubahhubaubeubh)r }r (hUhjhhhhh}r(h]h]h]h]rhyah]rh1auhKphhh]r(h)r}r(hj\hj hhhhh}r(h]h]h]h]h]hjWuhKphhh]rhX1Kaninchen & Schlangen: RabbitMQ & Python (German)rr}r(hj\hjubaubh)r}r(hXFhttp://www.scribd.com/doc/37562923/Kaninchen-Schlangen-RabbitMQ-Pythonrhj hhhhh}r(h]h]h]h]h]uhKqhhh]rh)r}r(hjh}r (Urefurijh]h]h]h]h]uhjh]r!hXFhttp://www.scribd.com/doc/37562923/Kaninchen-Schlangen-RabbitMQ-Pythonr"r#}r$(hUhjubahhubaubeubh)r%}r&(hUhjhhhhh}r'(h]h]h]h]r(hZah]r)hauhKthhh]r*(h)r+}r,(hjnhj%hhhhh}r-(h]h]h]h]h]hjiuhKthhh]r.hXDCelery - Eine asynchrone Task Queue (nicht nur) für Django (German)r/r0}r1(hjnhj+ubaubh)r2}r3(hXYhttp://www.scribd.com/doc/39203296/Celery-Eine-asynchrone-Task-Queue-nicht-nur-fur-Djangor4hj%hhhhh}r5(h]h]h]h]h]uhKuhhh]r6h)r7}r8(hj4h}r9(Urefurij4h]h]h]h]h]uhj2h]r:hXYhttp://www.scribd.com/doc/39203296/Celery-Eine-asynchrone-Task-Queue-nicht-nur-fur-Djangor;r<}r=(hUhj7ubahhubaubeubh)r>}r?(hUhjhhhhh}r@(h]h]h]h]rAh_ah]rBhauhKxhhh]rC(h)rD}rE(hjhj>hhhhh}rF(h]h]h]h]h]hj{uhKxhhh]rGhX2Asynchronous Processing Using Celery (historio.us)rHrI}rJ(hjhjDubaubh)rK}rL(hX<http://blog.historio.us/asynchronous-processing-using-celeryrMhj>hhhhh}rN(h]h]h]h]h]uhKyhhh]rOh)rP}rQ(hjMh}rR(UrefurijMh]h]h]h]h]uhjKh]rShX<http://blog.historio.us/asynchronous-processing-using-celeryrTrU}rV(hUhjPubahhubaubeubh)rW}rX(hUhjhhhhh}rY(h]h]h]h]rZhpah]r[h(auhK|hhh]r\(h)r]}r^(hjhjWhhhhh}r_(h]h]h]h]h]hjuhK|hhh]r`hX="Massaging the Pony: Message Queues and You" (Djangocon 2010)rarb}rc(hjhj]ubaubh)rd}re(hXNhttp://www.slideshare.net/shawnrider/massaging-the-pony-message-queues-and-yourfhjWhhhhh}rg(h]h]h]h]h]uhK}hhh]rhh)ri}rj(hjfh}rk(Urefurijfh]h]h]h]h]uhjdh]rlhXNhttp://www.slideshare.net/shawnrider/massaging-the-pony-message-queues-and-yourmrn}ro(hUhjiubahhubaubeubh)rp}rq(hUhjhhhhh}rr(h]h]h]h]rshoah]rth'auhKhhh]ru(h)rv}rw(hjhjphhhhh}rx(h]h]h]h]h]hjuhKhhh]ryhX0"Large problems, Mostly Solved" (Djangocon 2010)rzr{}r|(hjhjvubaubh)r}}r~(hX5http://www.slideshare.net/ericholscher/large-problemsrhjphhhhh}r(h]h]h]h]h]uhKhhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhj}h]rhX5http://www.slideshare.net/ericholscher/large-problemsrr}r(hUhjubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhah]rh9auhKhhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKhhh]rhX"A Simple Celery with Django How-Torr}r(hjhjubaubh)r}r(hXKhttp://shawnmilo.blogspot.com/2010/07/simple-celery-with-django-how-to.htmlrhjhhhhh}r(h]h]h]h]h]uhKhhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhXKhttp://shawnmilo.blogspot.com/2010/07/simple-celery-with-django-how-to.htmlrr}r(hUhjubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rh{ah]rh3auhKhhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKhhh]rhXDjango and asynchronous jobsrr}r(hjhjubaubh)r}r(hXBhttp://www.davidfischer.name/2010/09/django-and-asynchronous-jobs/rhjhhhhh}r(h]h]h]h]h]uhKhhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhXBhttp://www.davidfischer.name/2010/09/django-and-asynchronous-jobs/rr}r(hUhjubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhxah]rh0auhKhhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKhhh]rhXECelery: добавляем параллелизм в Django (Russian)rr}r(hjhjubaubh)r}r(hXIhttp://www.proft.com.ua/2010/09/4/celery-dobavlyaem-parallelizm-v-django/rhjhhhhh}r(h]h]h]h]h]uhKhhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhXIhttp://www.proft.com.ua/2010/09/4/celery-dobavlyaem-parallelizm-v-django/rr}r(hUhjubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rh}ah]rh5auhKhhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKhhh]rhX'Celery presentation at PyCon India 2010rr}r(hjhjubaubh)r}r(hX}http://in.pycon.org/2010/talks/50-python-celery http://in.pycon.org/2010/static/files/talks/50/mahendra-celery-pycon-2010.pdfhjhhhhh}r(h]h]h]h]h]uhKhhh]r(h)r}r(hX/http://in.pycon.org/2010/talks/50-python-celeryrh}r(Urefurijh]h]h]h]h]uhjh]rhX/http://in.pycon.org/2010/talks/50-python-celeryrr}r(hUhjubahhubhX r}r(hX hjubh)r}r(hXMhttp://in.pycon.org/2010/static/files/talks/50/mahendra-celery-pycon-2010.pdfrh}r(Urefurijh]h]h]h]h]uhjh]rhXMhttp://in.pycon.org/2010/static/files/talks/50/mahendra-celery-pycon-2010.pdfrr}r(hUhjubahhubeubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhtah]rh,auhKhhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKhhh]rhX+celery, django and virtualenv playing nice.rr}r(hjhjubaubh)r}r(hXWhttp://tumblr.whatupderek.com/post/1072002968/celery-django-and-virtualenv-playing-nicerhjhhhhh}r(h]h]h]h]h]uhKhhh]rh)r }r (hjh}r (Urefurijh]h]h]h]h]uhjh]r hXWhttp://tumblr.whatupderek.com/post/1072002968/celery-django-and-virtualenv-playing-nicer r}r(hUhj ubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhaah]rhauhKhhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hj uhKhhh]rhX Django Task Queueing with Celeryrr}r(hjhjubaubh)r}r(hXLhttp://justinvoss.wordpress.com/2010/06/22/django-task-queueing-with-celery/rhjhhhhh}r (h]h]h]h]h]uhKhhh]r!h)r"}r#(hjh}r$(Urefurijh]h]h]h]h]uhjh]r%hXLhttp://justinvoss.wordpress.com/2010/06/22/django-task-queueing-with-celery/r&r'}r((hUhj"ubahhubaubeubh)r)}r*(hUhjhhhhh}r+(h]h]h]h]r,hXah]r-hauhKhhh]r.(h)r/}r0(hj"hj)hhhhh}r1(h]h]h]h]h]hjuhKhhh]r2hX)django-celery presentation at DJUGL 2010.r3r4}r5(hj"hj/ubaubh)r6}r7(hX2http://www.slideshare.net/matclayton/django-celeryr8hj)hhhhh}r9(h]h]h]h]h]uhKhhh]r:h)r;}r<(hj8h}r=(Urefurij8h]h]h]h]h]uhj6h]r>hX2http://www.slideshare.net/matclayton/django-celeryr?r@}rA(hUhj;ubahhubaubcdocutils.nodes raw rB)rC}rD(hUhj)hhhUrawrEh}rF(UformatXhtmlU xml:spacerGUpreserverHh]h]h]h]h]uhKhhh]rIhXrJrK}rL(hUhjCubaubeubh)rM}rN(hUhjhhhhh}rO(h]h]h]h]rPhgah]rQhauhKhhh]rR(h)rS}rT(hj4hjMhhhhh}rU(h]h]h]h]h]hj/uhKhhh]rVhXODjango/Celery Quickstart (or, how I learned to stop using cron and love celery)rWrX}rY(hj4hjSubaubh)rZ}r[(hXLhttp://bitkickers.blogspot.com/2010/07/djangocelery-quickstart-or-how-i.htmlr\hjMhhhhh}r](h]h]h]h]h]uhKhhh]r^h)r_}r`(hj\h}ra(Urefurij\h]h]h]h]h]uhjZh]rbhXLhttp://bitkickers.blogspot.com/2010/07/djangocelery-quickstart-or-how-i.htmlrcrd}re(hUhj_ubahhubaubeubh)rf}rg(hUhjhhhhh}rh(h]h]h]h]rihah]rjhDauhKhhh]rk(h)rl}rm(hjFhjfhhhhh}rn(h]h]h]h]h]hjAuhKhhh]rohX.Using Python magic to improve the deferred APIrprq}rr(hjFhjlubaubh)rs}rt(hXMhttp://blog.notdot.net/2010/06/Using-Python-magic-to-improve-the-deferred-APIruhjfhhhhh}rv(h]h]h]h]h]uhKhhh]rwh)rx}ry(hjuh}rz(Urefurijuh]h]h]h]h]uhjsh]r{hXMhttp://blog.notdot.net/2010/06/Using-Python-magic-to-improve-the-deferred-APIr|r}}r~(hUhjxubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhah]rh@auhKhhh]r(h)r}r(hjXhjhhhhh}r(h]h]h]h]h]hjSuhKhhh]rhX1How Celery, Carrot, and your messaging stack workrr}r(hjXhjubaubh)r}r(hXDhttp://jasonmbaker.com/how-celery-carrot-and-your-messaging-stack-worhjhhhhh}r(h]h]h]h]h]uhKhhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhXDhttp://jasonmbaker.com/how-celery-carrot-and-your-messaging-stack-worr}r(hUhjubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhYah]rhauhKhhh]r(h)r}r(hjjhjhhhhh}r(h]h]h]h]h]hjeuhKhhh]rhX:Large Problems in Django, Mostly Solved: Delayed Executionrr}r(hjjhjubaubh)r}r(hX\http://ericholscher.com/blog/2010/jun/23/large-problems-django-mostly-solved-delayed-execut/rhjhhhhh}r(h]h]h]h]h]uhKhhh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhX\http://ericholscher.com/blog/2010/jun/23/large-problems-django-mostly-solved-delayed-execut/rr}r(hUhjubahhubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhcah]rhauhKhhh]r(h)r}r(hj|hjhhhhh}r(h]h]h]h]h]hjwuhKhhh]rhXIntroduction to Celeryrr}r(hj|hjubaubh)r}r(hXAwesome slides from when `Idan Gazit`_ had a talk about Celery at `PyWeb-IL`_: http://www.slideshare.net/idangazit/an-introduction-to-celeryhjhhhhh}r(h]h]h]h]h]uhKhhh]r(hXAwesome slides from when rr}r(hXAwesome slides from when hjubh)r}r(hX `Idan Gazit`_UresolvedrKhjhhh}r(UnameX Idan GazitUrefurirXhttp://twitter.com/IdanGazitrh]h]h]h]h]uh]rhX Idan Gazitrr}r(hUhjubaubhX had a talk about Celery at rr}r(hX had a talk about Celery at hjubh)r}r(hX `PyWeb-IL`_jKhjhhh}r(UnameXPyWeb-ILjX'http://groups.google.com/group/pyweb-ilrh]h]h]h]h]uh]rhXPyWeb-ILrr}r(hUhjubaubhX: rr}r(hX: hjubh)r}r(hX=http://www.slideshare.net/idangazit/an-introduction-to-celeryrh}r(Urefurijh]h]h]h]h]uhjh]rhX=http://www.slideshare.net/idangazit/an-introduction-to-celeryrr}r(hUhjubahhubeubh)r}r(hX... _`Idan Gazit`: http://twitter.com/IdanGazitU referencedrKhjhhhhh}r(jjh]rhUah]h]h]h]rh auhKhhh]ubh)r}r(hX7.. _`PyWeb-IL`: http://groups.google.com/group/pyweb-iljKhjhhhhh}r(jjh]rhhah]h]h]h]rh auhKhhh]ubjB)r}r(hUhjhhhjEh}r(UformatXhtmljGjHh]h]h]h]h]uhKhhh]rhXrr}r(hUhjubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhbah]rhauhKhhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKhhh]rhXRabbitMQ, Celery and Djangorr}r(hjhjubaubh)r}r(hXGreat Celery tutorial by `Robert Pogorzelski`_ at his blog "Happy Stream of Thoughts": http://robertpogorzelski.com/blog/2009/09/10/rabbitmq-celery-and-django/hjhhhhh}r(h]h]h]h]h]uhKhhh]r(hXGreat Celery tutorial by rr }r (hXGreat Celery tutorial by hjubh)r }r (hX`Robert Pogorzelski`_jKhjhhh}r (UnameXRobert PogorzelskijXhttp://robertpogorzelski.com/rh]h]h]h]h]uh]rhXRobert Pogorzelskirr}r(hUhj ubaubhX) at his blog "Happy Stream of Thoughts": rr}r(hX) at his blog "Happy Stream of Thoughts": hjubh)r}r(hXHhttp://robertpogorzelski.com/blog/2009/09/10/rabbitmq-celery-and-django/rh}r(Urefurijh]h]h]h]h]uhjh]rhXHhttp://robertpogorzelski.com/blog/2009/09/10/rabbitmq-celery-and-django/rr}r(hUhjubahhubeubh)r}r(hX7.. _`Robert Pogorzelski`: http://robertpogorzelski.com/jKhjhhhhh}r (jjh]r!hah]h]h]h]r"hBauhKhhh]ubeubh)r#}r$(hUhjhhhhh}r%(h]h]h]h]r&hah]r'h(hUhj7ubaubhX1, the installation section is Mac OS X specific: r?r@}rA(hX1, the installation section is Mac OS X specific: hj0ubh)rB}rC(hXPhttp://mathematism.com/2010/feb/16/message-queues-django-and-celery-quick-start/rDh}rE(UrefurijDh]h]h]h]h]uhj0h]rFhXPhttp://mathematism.com/2010/feb/16/message-queues-django-and-celery-quick-start/rGrH}rI(hUhjBubahhubeubh)rJ}rK(hX0.. _`Rich Leland`: http://twitter.com/richlelandjKhj#hhhhh}rL(jj:h]rMhvah]h]h]h]rNh.auhKhhh]ubeubh)rO}rP(hUhjhhhhh}rQ(h]h]h]h]rRhkah]rSh#auhKhhh]rT(h)rU}rV(hjhjOhhhhh}rW(h]h]h]h]h]hjuhKhhh]rXhX;Background task processing and deferred execution in DjangorYrZ}r[(hjhjUubaubcdocutils.nodes definition_list r\)r]}r^(hUhjOhhhUdefinition_listr_h}r`(h]h]h]h]h]uhNhhh]racdocutils.nodes definition_list_item rb)rc}rd(hXu`Alon Swartz`_ writes about celery and RabbitMQ on his blog: http://www.turnkeylinux.org/blog/django-celery-rabbitmq hj]hhhUdefinition_list_itemreh}rf(h]h]h]h]h]uhKh]rg(cdocutils.nodes term rh)ri}rj(hX<`Alon Swartz`_ writes about celery and RabbitMQ on his blog:rkhjchhhUtermrlh}rm(h]h]h]h]h]uhKh]rn(h)ro}rp(hX`Alon Swartz`_jKhjihhh}rq(UnameX Alon SwartzjXhttp://twitter.com/alonswartzrrh]h]h]h]h]uh]rshX Alon Swartzrtru}rv(hUhjoubaubhX. writes about celery and RabbitMQ on his blog:rwrx}ry(hX. writes about celery and RabbitMQ on his blog:hjiubeubcdocutils.nodes definition rz)r{}r|(hUh}r}(h]h]h]h]h]uhjch]r~h)r}r(hX7http://www.turnkeylinux.org/blog/django-celery-rabbitmqrhj{hhhhh}r(h]h]h]h]h]uhKh]rh)r}r(hjh}r(Urefurijh]h]h]h]h]uhjh]rhX7http://www.turnkeylinux.org/blog/django-celery-rabbitmqrr}r(hUhjubahhubaubahU definitionrubeubaubh)r}r(hX0.. _`Alon Swartz`: http://twitter.com/alonswartzjKhjOhhhhh}r(jjrh]rhah]h]h]h]rh>auhKhhh]ubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rheah]rhauhKhhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKhhh]rhXKBuild a processing queue [...] in less than a day using RabbitMQ and Celeryrr}r(hjhjubaubh)r}r(hXlTutorial in 2 parts written by `Tim Bull`_: http://timbull.com/build-a-processing-queue-with-multi-threadinghjhhhhh}r(h]h]h]h]h]uhMhhh]r(hXTutorial in 2 parts written by rr}r(hXTutorial in 2 parts written by hjubh)r}r(hX `Tim Bull`_jKhjhhh}r(UnameXTim BulljXhttp://twitter.com/timbullrh]h]h]h]h]uh]rhXTim Bullrr}r(hUhjubaubhX: rr}r(hX: hjubh)r}r(hX@http://timbull.com/build-a-processing-queue-with-multi-threadingrh}r(Urefurijh]h]h]h]h]uhjh]rhX@http://timbull.com/build-a-processing-queue-with-multi-threadingrr}r(hUhjubahhubeubh)r}r(hX*.. _`Tim Bull`: http://twitter.com/timbulljKhjhhhhh}r(jjh]rhah]h]h]h]rh?auhMhhh]ubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhQah]rh auhMhhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhMhhh]rhX%How to get celeryd to work on FreeBSDrr}r(hjhjubaubh)r}r(hXInstalling multiprocessing on FreeBSD isn't that easy, but thanks to `Viktor Petersson`_ we now have a step-to-step guide: http://www.playingwithwire.com/2009/10/how-to-get-celeryd-to-work-on-freebsd/hjhhhhh}r(h]h]h]h]h]uhMhhh]r(hXEInstalling multiprocessing on FreeBSD isn't that easy, but thanks to rr}r(hXEInstalling multiprocessing on FreeBSD isn't that easy, but thanks to hjubh)r}r(hX`Viktor Petersson`_jKhjhhh}r(UnameXViktor PeterssonjXhttp://twitter.com/vpeterssonrh]h]h]h]h]uh]rhXViktor Peterssonrr}r(hUhjubaubhX# we now have a step-to-step guide: rr}r(hX# we now have a step-to-step guide: hjubh)r}r(hXMhttp://www.playingwithwire.com/2009/10/how-to-get-celeryd-to-work-on-freebsd/rh}r(Urefurijh]h]h]h]h]uhjh]rhXMhttp://www.playingwithwire.com/2009/10/how-to-get-celeryd-to-work-on-freebsd/rr}r(hUhjubahhubeubh)r}r(hX5.. _`Viktor Petersson`: http://twitter.com/vpeterssonjKhjhhhhh}r(jjh]rhah]h]h]h]rh:auhM hhh]ubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhfah]rhauhMhhh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhMhhh]rhXWeb-based 3D animation softwarerr}r(hjhjubaubh)r}r(hXIndy Chang Liu at `ThinkingCactus`_ uses Celery to render animations asynchronously (PDF): http://ojs.pythonpapers.org/index.php/tppm/article/viewFile/105/122hjhhhhh}r(h]h]h]h]h]uhMhhh]r(hXIndy Chang Liu at rr}r(hXIndy Chang Liu at hjubh)r}r(hX`ThinkingCactus`_jKhjhhh}r(UnameXThinkingCactusjXhttp://thinkingcactus.com/r h]h]h]h]h]uh]r hXThinkingCactusr r }r (hUhjubaubhX8 uses Celery to render animations asynchronously (PDF): r r }r (hX8 uses Celery to render animations asynchronously (PDF): hjubh)r }r (hXChttp://ojs.pythonpapers.org/index.php/tppm/article/viewFile/105/122r h}r (Urefurij h]h]h]h]h]uhjh]r hXChttp://ojs.pythonpapers.org/index.php/tppm/article/viewFile/105/122r r }r (hUhj ubahhubeubh)r }r (hX0.. _`ThinkingCactus`: http://thinkingcactus.com/jKhjhhhhh}r (jj h]r hiah]h]h]h]r h!auhMhhh]ubeubh)r }r (hUhjhhhhh}r (h]h]h]h]r hah]r h8auhMhhh]r (h)r }r (hjhj hhhhh}r (h]h]h]h]h]hjuhMhhh]r hX!Queued Storage Backend for Djangor r }r! (hjhj ubaubh)r" }r# (hXPhttp://stepsandnumbers.com/archive/2010/01/04/queued-storage-backend-for-django/r$ hj hhhhh}r% (h]h]h]h]h]uhMhhh]r& h)r' }r( (hj$ h}r) (Urefurij$ h]h]h]h]h]uhj" h]r* hXPhttp://stepsandnumbers.com/archive/2010/01/04/queued-storage-backend-for-django/r+ r, }r- (hUhj' ubahhubaubeubh)r. }r/ (hUhjhhhhh}r0 (h]h]h]h]r1 hlah]r2 h$auhMhhh]r3 (h)r4 }r5 (hj hj. hhhhh}r6 (h]h]h]h]h]hjuhMhhh]r7 hXRabbitMQ with Python and Rubyr8 r9 }r: (hj hj4 ubaubh)r; }r< (hXMhttp://www.slideshare.net/hungryblank/rabbitmq-with-python-and-ruby-rupy-2009r= hj. hhhhh}r> (h]h]h]h]h]uhMhhh]r? h)r@ }rA (hj= h}rB (Urefurij= h]h]h]h]h]uhj; h]rC hXMhttp://www.slideshare.net/hungryblank/rabbitmq-with-python-and-ruby-rupy-2009rD rE }rF (hUhj@ ubahhubaubeubeubeubehUU transformerrG NU footnote_refsrH }rI UrefnamesrJ }rK (Xviktor petersson]rL jaXrobert pogorzelski]rM j aX idan gazit]rN jaX alon swartz]rO joaXpyweb-il]rP jaXthinkingcactus]rQ jaX rich leland]rR j7aXtim bull]rS jauUsymbol_footnotesrT ]rU Uautofootnote_refsrV ]rW Usymbol_footnote_refsrX ]rY U citationsrZ ]r[ hhU current_liner\ NUtransform_messagesr] ]r^ (cdocutils.nodes system_message r_ )r` }ra (hUh}rb (h]UlevelKh]h]Usourcehh]h]UlineKUtypeUINFOrc uh]rd h)re }rf (hUh}rg (h]h]h]h]h]uhj` h]rh hX/Hyperlink target "community" is not referenced.ri rj }rk (hUhje ubahhubahUsystem_messagerl ubj_ )rm }rn (hUh}ro (h]UlevelKh]h]Usourcehh]h]UlineKUtypejc uh]rp h)rq }rr (hUh}rs (h]h]h]h]h]uhjm h]rt hX)Hyperlink target "id1" is not referenced.ru rv }rw (hUhjq ubahhubahjl ubj_ )rx }ry (hUh}rz (h]UlevelKh]h]Usourcehh]h]UlineKUtypejc uh]r{ h)r| }r} (hUh}r~ (h]h]h]h]h]uhjx h]r hX6Hyperlink target "res-using-celery" is not referenced.r r }r (hUhj| ubahhubahjl ubj_ )r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineKUtypejc uh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hX.Hyperlink target "res-wiki" is not referenced.r r }r (hUhj ubahhubahjl ubj_ )r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineK!Utypejc uh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hX7Hyperlink target "res-stackoverflow" is not referenced.r r }r (hUhj ubahhubahjl ubj_ )r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineK(Utypejc uh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hX>Hyperlink target "res-mailing-list-archive" is not referenced.r r }r (hUhj ubahhubahjl ubj_ )r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineK/Utypejc uh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hX2Hyperlink target "res-irc-logs" is not referenced.r r }r (hUhj ubahhubahjl ubj_ )r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineK6Utypejc uh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hX4Hyperlink target "community-news" is not referenced.r r }r (hUhj ubahhubahjl ubeUreporterr NUid_startr K/U autofootnotesr ]r U citation_refsr }r Uindirect_targetsr ]r Usettingsr (cdocutils.frontend Values r or }r (Ufootnote_backlinksr KUrecord_dependenciesr NU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhNUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr UUTF-8r U_sourcer UG/var/build/user_builds/celery/checkouts/2.1-archived/docs/community.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr j Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (hgjMhtjjjjjhjjjjjjjjjhfjhQjhOj"hij hnjjjhjhvjJhVj^hj+h`j]hmjh^jhdhhNj@hPj@h{jhZj%jWjSjmjij3j/jEjAjj j!jhhhhhjhjhcjhWjhjhjh}jhSjhYjhj#hrjvh~jh[j|hj hhjhUjhRjhThhlj. hj^hjjjjj{jjhjjDjjjjjjjjjjjj hejhjhsjhwjhjfh|j"j!jhxjhojph]hjjhqjhjjwjsjjjSjOjejaj/j+jAj=j jjjjjjjhujh_j>hzjhajhpjWh\j|hXj)hbjhkjOjjhyj jEjAj3j/jijejWjSjjj{jwjjjjuUsubstitution_namesr }r hhh}r (h]h]h]Usourcehh]h]uU footnotesr ]r Urefidsr }r (hs]r jahP]r j=ahR]r jahT]r hah]r j ah|]r jah]r j[ah\]r jyauub.PKYDDP0celery-2.1-archived/.doctrees/environment.pickle(csphinx.environment BuildEnvironment qoq}q(Udlfilesqcsphinx.util FilenameUniqDict q)qc__builtin__ set q]RqbUappq NU _warnfuncq NUtitlesq }q (Xuserguide/routingq cdocutils.nodes title q)q}q(U rawsourceqUU attributesq}q(Udupnamesq]Uclassesq]Ubackrefsq]Uidsq]Unamesq]uUchildrenq]qcdocutils.nodes Text qX Routing Tasksqq}q(hX Routing TasksqUparentq hubaUtagnameq!Utitleq"ubX'internals/reference/celery.utils.timer2q#h)q$}q%(hUh}q&(h]h]h]h]h]uh]q'hXtimer2 - celery.utils.timer2q(q)}q*(hXtimer2 - celery.utils.timer2q+h h$ubah!h"ubX$internals/reference/celery.platformsq,h)q-}q.(hUh}q/(h]h]h]h]h]uh]q0hX$Platform Specific - celery.platformsq1q2}q3(hX$Platform Specific - celery.platformsq4h h-ubah!h"ubXreleases/1.0/announcementq5h)q6}q7(hUh}q8(h]h]h]h]h]uh]q9hXCelery 1.0 has been released!q:q;}q<(hXCelery 1.0 has been released!q=h h6ubah!h"ubXcookbook/indexq>h)q?}q@(hUh}qA(h]h]h]h]h]uh]qBhXCookbookqCqD}qE(hXCookbookqFh h?ubah!h"ubX*internals/reference/celery.events.snapshotqGh)qH}qI(hUh}qJ(h]h]h]h]h]uh]qKhX(Event Snapshots - celery.events.snapshotqLqM}qN(hX(Event Snapshots - celery.events.snapshotqOh hHubah!h"ubXuserguide/tasksqPh)qQ}qR(hUh}qS(h]h]h]h]h]uh]qThXTasksqUqV}qW(hXTasksqXh hQubah!h"ubXinternals/indexqYh)qZ}q[(hUh}q\(h]h]h]h]h]uh]q]hX Internalsq^q_}q`(hX Internalsqah hZubah!h"ubXinternals/protocolqbh)qc}qd(hUh}qe(h]h]h]h]h]uh]qfhXTask Message Protocolqgqh}qi(hXTask Message Protocolqjh hcubah!h"ubXreference/celery.task.httpqkh)ql}qm(hUh}qn(h]h]h]h]h]uh]qohX&HTTP Callback Tasks - celery.task.httpqpqq}qr(hX&HTTP Callback Tasks - celery.task.httpqsh hlubah!h"ubX+internals/reference/celery.utils.functionalqth)qu}qv(hUh}qw(h]h]h]h]h]uh]qxhX*functools compat - celery.utils.functionalqyqz}q{(hX*functools compat - celery.utils.functionalq|h huubah!h"ubXreference/celery.statesq}h)q~}q(hUh}q(h]h]h]h]h]uh]qhXTask States - celery.statesqq}q(hXTask States - celery.statesqh h~ubah!h"ubX2internals/reference/celery.worker.control.builtinsqh)q}q(hUh}q(h]h]h]h]h]uh]qhXABuilt-in Remote Control Commands - celery.worker.control.builtinsqq}q(hXABuilt-in Remote Control Commands - celery.worker.control.builtinsqh hubah!h"ubXinternals/reference/celery.logqh)q}q(hUh}q(h]h]h]h]h]uh]qhXLogging - celery.logqq}q(hXLogging - celery.logqh hubah!h"ubX!internals/reference/celery.workerqh)q}q(hUh}q(h]h]h]h]h]uh]qhX&Multiprocessing Worker - celery.workerqq}q(hX&Multiprocessing Worker - celery.workerqh hubah!h"ubXreference/indexqh)q}q(hUh}q(h]h]h]h]h]uh]qhX API Referenceqq}q(hX API Referenceqh hubah!h"ubX*internals/reference/celery.worker.listenerqh)q}q(hUh}q(h]h]h]h]h]uh]qhX0Worker Message Listener - celery.worker.listenerqq}q(hX0Worker Message Listener - celery.worker.listenerqh hubah!h"ubXreference/celery.events.stateqh)q}q(hUh}q(h]h]h]h]h]uh]qhX?In-memory Representation of Cluster State - celery.events.stateqq}q(hX?In-memory Representation of Cluster State - celery.events.stateqh hubah!h"ubX%internals/reference/celery.utils.mailqh)q}q(hUh}q(h]h]h]h]h]uh]qhX"Sending E-mail - celery.utils.mailqq}q(hX"Sending E-mail - celery.utils.mailqh hubah!h"ubX(internals/reference/celery.execute.traceqh)q}q(hUh}q(h]h]h]h]h]uh]qhX(Tracing Execution - celery.execute.traceqʅq}q(hX(Tracing Execution - celery.execute.traceqh hubah!h"ubXfaqqh)q}q(hUh}q(h]h]h]h]h]uh]qhXFrequently Asked QuestionsqӅq}q(hXFrequently Asked Questionsqh hubah!h"ubXuserguide/remote-tasksqh)q}q(hUh}q(h]h]h]h]h]uh]qhXHTTP Callback Tasks (Webhooks)q܅q}q(hXHTTP Callback Tasks (Webhooks)qh hubah!h"ubX%internals/reference/celery.worker.jobqh)q}q(hUh}q(h]h]h]h]h]uh]qhX#Executable Jobs - celery.worker.jobq允q}q(hX#Executable Jobs - celery.worker.jobqh hubah!h"ubX#getting-started/broker-installationqh)q}q(hUh}q(h]h]h]h]h]uh]qhXBroker Installationqq}q(hXBroker Installationqh hubah!h"ubXreference/celery.signalsqh)q}q(hUh}q(h]h]h]h]h]uh]qhXSignals - celery.signalsqq}q(hXSignals - celery.signalsqh hubah!h"ubXuserguide/workersqh)q}q(hUh}q(h]h]h]h]h]uh]qhX Workers Guiderr}r(hX Workers Guiderh hubah!h"ubXreference/celery.executerh)r}r(hUh}r(h]h]h]h]h]uh]rhX Executing Tasks - celery.executer r }r (hX Executing Tasks - celery.executer h jubah!h"ubXuserguide/tasksetsr h)r}r(hUh}r(h]h]h]h]h]uh]rhX%Sets of tasks, Subtasks and Callbacksrr}r(hX%Sets of tasks, Subtasks and Callbacksrh jubah!h"ubX changelogrh)r}r(hUh}r(h]h]h]h]h]uh]rhXChange historyrr}r(hXChange historyrh jubah!h"ubX%internals/reference/celery.utils.termrh)r }r!(hUh}r"(h]h]h]h]h]uh]r#hX&Terminal Utilities - celery.utils.termr$r%}r&(hX&Terminal Utilities - celery.utils.termr'h j ubah!h"ubXreference/celery.resultr(h)r)}r*(hUh}r+(h]h]h]h]h]uh]r,hXTask Result - celery.resultr-r.}r/(hXTask Result - celery.resultr0h j)ubah!h"ubXtutorials/clickcounterr1h)r2}r3(hUh}r4(h]h]h]h]h]uh]r5hX:Tutorial: Creating a click counter using carrot and celeryr6r7}r8(hX:Tutorial: Creating a click counter using carrot and celeryr9h j2ubah!h"ubXuserguide/monitoringr:h)r;}r<(hUh}r=(h]h]h]h]h]uh]r>hXMonitoring Guider?r@}rA(hXMonitoring GuiderBh j;ubah!h"ubXreference/celery.confrCh)rD}rE(hUh}rF(h]h]h]h]h]uh]rGhXConfiguration - celery.confrHrI}rJ(hXConfiguration - celery.confrKh jDubah!h"ubXreference/celery.task.controlrLh)rM}rN(hUh}rO(h]h]h]h]h]uh]rPhX2Remote Management of Workers - celery.task.controlrQrR}rS(hX2Remote Management of Workers - celery.task.controlrTh jMubah!h"ubX#internals/reference/celery.backendsrUh)rV}rW(hUh}rX(h]h]h]h]h]uh]rYhXBackends - celery.backendsrZr[}r\(hXBackends - celery.backendsr]h jVubah!h"ubXreference/celery.task.baser^h)r_}r`(hUh}ra(h]h]h]h]h]uh]rbhX!Defining Tasks - celery.task.basercrd}re(hX!Defining Tasks - celery.task.baserfh j_ubah!h"ubXuserguide/periodic-tasksrgh)rh}ri(hUh}rj(h]h]h]h]h]uh]rkhXPeriodic Tasksrlrm}rn(hXPeriodic Tasksroh jhubah!h"ubX)internals/reference/celery.datastructuresrph)rq}rr(hUh}rs(h]h]h]h]h]uh]rthX&Datastructures - celery.datastructuresrurv}rw(hX&Datastructures - celery.datastructuresrxh jqubah!h"ubXindexryh)rz}r{(hUh}r|(h]h]h]h]h]uh]r}hXCelery - Distributed Task Queuer~r}r(hXCelery - Distributed Task Queuerh jzubah!h"ubX'getting-started/first-steps-with-celeryrh)r}r(hUh}r(h]h]h]h]h]uh]rhXFirst steps with Celeryrr}r(hXFirst steps with Celeryrh jubah!h"ubXreference/celery.exceptionsrh)r}r(hUh}r(h]h]h]h]h]uh]rhXExceptions - celery.exceptionsrr}r(hXExceptions - celery.exceptionsrh jubah!h"ubXreference/celery.messagingrh)r}r(hUh}r(h]h]h]h]h]uh]rhXMessaging - celery.messagingrr}r(hXMessaging - celery.messagingrh jubah!h"ubXtutorials/indexrh)r}r(hUh}r(h]h]h]h]h]uh]rhX Tutorialsrr}r(hX Tutorialsrh jubah!h"ubX contributingrh)r}r(hUh}r(h]h]h]h]h]uh]rhX Contributingrr}r(hX Contributingrh jubah!h"ubXinternals/moduleindexrh)r}r(hUh}r(h]h]h]h]h]uh]rhX Module Indexrr}r(hX Module Indexrh jubah!h"ubX+internals/reference/celery.backends.pyredisrh)r}r(hUh}r(h]h]h]h]h]uh]rhX(Backend: Redis - celery.backends.pyredisrr}r(hX(Backend: Redis - celery.backends.pyredisrh jubah!h"ubX"reference/celery.contrib.abortablerh)r}r(hUh}r(h]h]h]h]h]uh]rhX3Contrib: Abortable tasks - celery.contrib.abortablerr}r(hX3Contrib: Abortable tasks - celery.contrib.abortablerh jubah!h"ubX(internals/reference/celery.serializationrh)r}r(hUh}r(h]h]h]h]h]uh]rhX*Serialization Tools - celery.serializationrr}r(hX*Serialization Tools - celery.serializationrh jubah!h"ubXreference/celery.bin.celerybeatrh)r}r(hUh}r(h]h]h]h]h]uh]rhX3Celery Periodic Task Server - celery.bin.celerybeatrr}r(hX3Celery Periodic Task Server - celery.bin.celerybeatrh jubah!h"ubX(internals/reference/celery.events.dumperrh)r}r(hUh}r(h]h]h]h]h]uh]rhX(Event Dumper Tool - celery.events.dumperrr}r(hX(Event Dumper Tool - celery.events.dumperrh jubah!h"ubX)internals/reference/celery.worker.bucketsrh)r}r(hUh}r(h]h]h]h]h]uh]rhX4Token Bucket (rate limiting) - celery.worker.bucketsrr}r(hX4Token Bucket (rate limiting) - celery.worker.bucketsrh jubah!h"ubX configurationrh)r}r(hUh}r(h]h]h]h]h]uh]rhXConfiguration and defaultsrr}r(hXConfiguration and defaultsrh jubah!h"ubX+internals/reference/celery.events.cursesmonrh)r}r(hUh}r(h]h]h]h]h]uh]rhX(Curses Monitor - celery.events.cursesmonrr}r(hX(Curses Monitor - celery.events.cursesmonrh jubah!h"ubX'internals/reference/celery.utils.compatrh)r}r(hUh}r(h]h]h]h]h]uh]rhX*Python Compatibility - celery.utils.compatrr}r(hX*Python Compatibility - celery.utils.compatrh jubah!h"ubX%internals/reference/celery.db.sessionr h)r }r (hUh}r (h]h]h]h]h]uh]r hX&SQLAlchemy Session - celery.db.sessionrr}r(hX&SQLAlchemy Session - celery.db.sessionrh j ubah!h"ubXreference/celery.eventsrh)r}r(hUh}r(h]h]h]h]h]uh]rhXEvents - celery.eventsrr}r(hXEvents - celery.eventsrh jubah!h"ubXcookbook/daemonizingrh)r}r(hUh}r(h]h]h]h]h]uh]rhXRunning celeryd as a daemonr r!}r"(hXRunning celeryd as a daemonr#h jubah!h"ubX$internals/reference/celery.db.modelsr$h)r%}r&(hUh}r'(h]h]h]h]h]uh]r(hX$SQLAlchemy Models - celery.db.modelsr)r*}r+(hX$SQLAlchemy Models - celery.db.modelsr,h j%ubah!h"ubXreference/celery.bin.celeryevr-h)r.}r/(hUh}r0(h]h]h]h]h]uh]r1hX3celeryev: Curses Event Viewer - celery.bin.celeryevr2r3}r4(hX3celeryev: Curses Event Viewer - celery.bin.celeryevr5h j.ubah!h"ubXuserguide/overviewr6h)r7}r8(hUh}r9(h]h]h]h]h]uh]r:hXOverviewr;r<}r=(hXOverviewr>h j7ubah!h"ubX%internals/reference/celery.utils.infor?h)r@}rA(hUh}rB(h]h]h]h]h]uh]rChX"Debugging Info - celery.utils.inforDrE}rF(hX"Debugging Info - celery.utils.inforGh j@ubah!h"ubXreference/celery.loaders.baserHh)rI}rJ(hUh}rK(h]h]h]h]h]uh]rLhX)Loader Base Classes - celery.loaders.baserMrN}rO(hX)Loader Base Classes - celery.loaders.baserPh jIubah!h"ubXreference/celery.task.builtinsrQh)rR}rS(hUh}rT(h]h]h]h]h]uh]rUhX,Built-in Task Classes - celery.task.builtinsrVrW}rX(hX,Built-in Task Classes - celery.task.builtinsrYh jRubah!h"ubXinternals/deprecationrZh)r[}r\(hUh}r](h]h]h]h]h]uh]r^hXCelery Deprecation Timeliner_r`}ra(hXCelery Deprecation Timelinerbh j[ubah!h"ubX reference/celery.loaders.defaultrch)rd}re(hUh}rf(h]h]h]h]h]uh]rghX'Default Loader - celery.loaders.defaultrhri}rj(hX'Default Loader - celery.loaders.defaultrkh jdubah!h"ubX communityrlh)rm}rn(hUh}ro(h]h]h]h]h]uh]rphXCommunity Resourcesrqrr}rs(hXCommunity Resourcesrth jmubah!h"ubXreference/celery.task.setsruh)rv}rw(hUh}rx(h]h]h]h]h]uh]ryhX4Task Sets, Subtasks and Callbacks - celery.task.setsrzr{}r|(hX4Task Sets, Subtasks and Callbacks - celery.task.setsr}h jvubah!h"ubXgetting-started/resourcesr~h)r}r(hUh}r(h]h]h]h]h]uh]rhX Resourcesrr}r(hX Resourcesrh jubah!h"ubX5internals/reference/celery.concurrency.processes.poolrh)r}r(hUh}r(h]h]h]h]h]uh]rhXAextended multiprocessing.pool - celery.concurrency.processes.poolrr}r(hXAextended multiprocessing.pool - celery.concurrency.processes.poolrh jubah!h"ubX-internals/reference/celery.worker.controllersrh)r}r(hUh}r(h]h]h]h]h]uh]rhX5Worker Controller Threads - celery.worker.controllersrr}r(hX5Worker Controller Threads - celery.worker.controllersrh jubah!h"ubX1internals/reference/celery.utils.dispatch.saferefrh)r}r(hUh}r(h]h]h]h]h]uh]rhX8Signals: Safe References - celery.utils.dispatch.saferefrr}r(hX8Signals: Safe References - celery.utils.dispatch.saferefrh jubah!h"ubXreference/celery.bin.celerydrh)r}r(hUh}r(h]h]h]h]h]uh]rhXceleryd - celery.bin.celerydrr}r(hXceleryd - celery.bin.celerydrh jubah!h"ubXgetting-started/introductionrh)r}r(hUh}r(h]h]h]h]h]uh]rhX Introductionrr}r(hX Introductionrh jubah!h"ubX*internals/reference/celery.utils.timeutilsrh)r}r(hUh}r(h]h]h]h]h]uh]rhX0Time and Date Utilities - celery.utils.timeutilsrr}r(hX0Time and Date Utilities - celery.utils.timeutilsrh jubah!h"ubX0internals/reference/celery.utils.dispatch.signalrh)r}r(hUh}r(h]h]h]h]h]uh]rhX2Signals: Dispatcher - celery.utils.dispatch.signalrr}r(hX2Signals: Dispatcher - celery.utils.dispatch.signalrh jubah!h"ubX"reference/celery.bin.celeryd_multirh)r}r(hUh}r(h]h]h]h]h]uh]rhX-Celeryd Multi Tool - celery.bin.celeryd_multirr}r(hX-Celeryd Multi Tool - celery.bin.celeryd_multirh jubah!h"ubX0internals/reference/celery.concurrency.processesrh)r}r(hUh}r(h]h]h]h]h]uh]rhX;Multiprocessing Pool Support - celery.concurrency.processesrr}r(hX;Multiprocessing Pool Support - celery.concurrency.processesrh jubah!h"ubXuserguide/indexrh)r}r(hUh}r(h]h]h]h]h]uh]rhX User Guiderr}r(hX User Guiderh jubah!h"ubX&internals/reference/celery.utils.patchrh)r}r(hUh}r(h]h]h]h]h]uh]rhX*Compatibility Patches - celery.utils.patchrr}r(hX*Compatibility Patches - celery.utils.patchrh jubah!h"ubX!internals/reference/celery.routesrh)r}r(hUh}r(h]h]h]h]h]uh]rhXMessage Routers - celery.routesrr}r(hXMessage Routers - celery.routesrh jubah!h"ubXinternals/eventsrh)r}r(hUh}r(h]h]h]h]h]uh]rhXList of Worker Eventsrr}r(hXList of Worker Eventsrh jubah!h"ubXinternals/workerrh)r}r(hUh}r(h]h]h]h]h]uh]rhXInternals: The workerrr}r(hXInternals: The workerrh jubah!h"ubXreference/celery.apps.workerrh)r}r(hUh}r(h]h]h]h]h]uh]r hX%App: Worker Node - celery.apps.workerr r }r (hX%App: Worker Node - celery.apps.workerr h jubah!h"ubXreference/celery.taskrh)r}r(hUh}r(h]h]h]h]h]uh]rhX,Task Information and Utilities - celery.taskrr}r(hX,Task Information and Utilities - celery.taskrh jubah!h"ubX)internals/reference/celery.utils.dispatchrh)r}r(hUh}r(h]h]h]h]h]uh]rhX'Signal Dispatch - celery.utils.dispatchrr}r(hX'Signal Dispatch - celery.utils.dispatchrh jubah!h"ubX)internals/reference/celery.backends.cacher h)r!}r"(hUh}r#(h]h]h]h]h]uh]r$hX)Backend: Memcache - celery.backends.cacher%r&}r'(hX)Backend: Memcache - celery.backends.cacher(h j!ubah!h"ubXreference/celery.registryr)h)r*}r+(hUh}r,(h]h]h]h]h]uh]r-hXTask Registry - celery.registryr.r/}r0(hXTask Registry - celery.registryr1h j*ubah!h"ubXreference/celery.apps.beatr2h)r3}r4(hUh}r5(h]h]h]h]h]uh]r6hX/App: Periodic Task Scheduler - celery.apps.beatr7r8}r9(hX/App: Periodic Task Scheduler - celery.apps.beatr:h j3ubah!h"ubX)internals/reference/celery.worker.controlr;h)r<}r=(hUh}r>(h]h]h]h]h]uh]r?hX&Worker Control - celery.worker.controlr@rA}rB(hX&Worker Control - celery.worker.controlrCh j<ubah!h"ubXlinksrDh)rE}rF(hUh}rG(h]h]h]h]h]uh]rHhXInteresting LinksrIrJ}rK(hXInteresting LinksrLh jEubah!h"ubX,internals/reference/celery.backends.databaserMh)rN}rO(hUh}rP(h]h]h]h]h]uh]rQhX7Backend: SQLAlchemy Database - celery.backends.databaserRrS}rT(hX7Backend: SQLAlchemy Database - celery.backends.databaserUh jNubah!h"ubXinternals/reference/indexrVh)rW}rX(hUh}rY(h]h]h]h]h]uh]rZhXInternal Module Referencer[r\}r](hXInternal Module Referencer^h jWubah!h"ubX(internals/reference/celery.backends.amqpr_h)r`}ra(hUh}rb(h]h]h]h]h]uh]rchX$Backend: AMQP - celery.backends.amqprdre}rf(hX$Backend: AMQP - celery.backends.amqprgh j`ubah!h"ubX-internals/reference/celery.backends.cassandrarhh)ri}rj(hUh}rk(h]h]h]h]h]uh]rlhX.Backend: Cassandra - celery.backends.cassandrarmrn}ro(hX.Backend: Cassandra - celery.backends.cassandrarph jiubah!h"ubXuserguide/optimizingrqh)rr}rs(hUh}rt(h]h]h]h]h]uh]ruhX Optimizingrvrw}rx(hX Optimizingryh jrubah!h"ubX*internals/reference/celery.backends.tyrantrzh)r{}r|(hUh}r}(h]h]h]h]h]uh]r~hX.Backend: Tokyo Tyrant - celery.backends.tyrantrr}r(hX.Backend: Tokyo Tyrant - celery.backends.tyrantrh j{ubah!h"ubXgetting-started/indexrh)r}r(hUh}r(h]h]h]h]h]uh]rhXGetting Startedrr}r(hXGetting Startedrh jubah!h"ubX'internals/reference/celery.worker.staterh)r}r(hUh}r(h]h]h]h]h]uh]rhX"Worker State - celery.worker.staterr}r(hX"Worker State - celery.worker.staterh jubah!h"ubX2internals/reference/celery.worker.control.registryrh)r}r(hUh}r(h]h]h]h]h]uh]rhX@Remote Control Command Registry - celery.worker.control.registryrr}r(hX@Remote Control Command Registry - celery.worker.control.registryrh jubah!h"ubXtutorials/otherqueuesrh)r}r(hUh}r(h]h]h]h]h]uh]rhX8Using Celery with Redis/Database as the messaging queue.rr}r(hX8Using Celery with Redis/Database as the messaging queue.rh jubah!h"ubX(internals/reference/celery.backends.baserh)r}r(hUh}r(h]h]h]h]h]uh]rhX$Backend: Base - celery.backends.baserr}r(hX$Backend: Base - celery.backends.baserh jubah!h"ubXinternals/reference/celery.beatrh)r}r(hUh}r(h]h]h]h]h]uh]rhXClock Service - celery.beatrr}r(hXClock Service - celery.beatrh jubah!h"ubXreference/celery.bin.baserh)r}r(hUh}r(h]h]h]h]h]uh]rhXBase Command - celery.bin.baserr}r(hXBase Command - celery.bin.baserh jubah!h"ubX.internals/reference/celery.concurrency.threadsrh)r}r(hUh}r(h]h]h]h]h]uh]r(hXThread Pool Support rr}r(hXThread Pool Support rh jubcdocutils.nodes strong r)r}r(hX**EXPERIMENTAL**rh}r(h]h]h]h]h]uh jh]rhX EXPERIMENTALrr}r(hUh jubah!UstrongrubhX - celery.concurrency.threadsrr}r(hX - celery.concurrency.threadsrh jubeh!h"ubX+internals/reference/celery.backends.mongodbrh)r}r(hUh}r(h]h]h]h]h]uh]rhX*Backend: MongoDB - celery.backends.mongodbrr}r(hX*Backend: MongoDB - celery.backends.mongodbrh jubah!h"ubXcookbook/tasksrh)r}r(hUh}r(h]h]h]h]h]uh]rhXCreating Tasksrr}r(hXCreating Tasksrh jubah!h"ubXreference/celery.bin.celeryctlrh)r}r(hUh}r(h]h]h]h]h]uh]rhX celeryctl - celery.bin.celeryctlrr}r(hX celeryctl - celery.bin.celeryctlrh jubah!h"ubX internals/reference/celery.utilsrh)r}r(hUh}r(h]h]h]h]h]uh]rhXUtilities - celery.utilsrr}r(hXUtilities - celery.utilsrh jubah!h"ubX+internals/reference/celery.worker.heartbeatrh)r}r(hUh}r(h]h]h]h]h]uh]rhX+Worker Heartbeats - celery.worker.heartbeatrr}r(hX+Worker Heartbeats - celery.worker.heartbeatrh jubah!h"ubXuserguide/executingrh)r}r(hUh}r (h]h]h]h]h]uh]r hXExecuting Tasksr r }r (hXExecuting Tasksrh jubah!h"ubXreference/celery.loadersrh)r}r(hUh}r(h]h]h]h]h]uh]rhXLoaders - celery.loadersrr}r(hXLoaders - celery.loadersrh jubah!h"ubXreference/celery.bin.camqadmrh)r}r(hUh}r(h]h]h]h]h]uh]rhX9caqmadm: AMQP API Command-line Shell - celery.bin.camqadmrr}r(hX9caqmadm: AMQP API Command-line Shell - celery.bin.camqadmr h jubah!h"ubXreference/celery.schedulesr!h)r"}r#(hUh}r$(h]h]h]h]h]uh]r%hX3Periodic Task Schedule Behaviors - celery.schedulesr&r'}r((hX3Periodic Task Schedule Behaviors - celery.schedulesr)h j"ubah!h"ubXreference/celery.decoratorsr*h)r+}r,(hUh}r-(h]h]h]h]h]uh]r.hX#Task Decorators - celery.decoratorsr/r0}r1(hX#Task Decorators - celery.decoratorsr2h j+ubah!h"ubuU domaindatar3}r4(Ustdr5}r6(Uversionr7KU anonlabelsr8}r9(Xfaq-mysql-deadlocksr:hUfaq-mysql-deadlocksr;Xfaq-acks_late-vs-retryr<hUfaq-acks-late-vs-retryr=Xcelery-synopsisjUcelery-synopsisX faq-windows-worker-embedded-beatr>hU faq-windows-worker-embedded-beatr?Xmonitoring-django-adminr@j:Umonitoring-django-adminrAXdaemon-supervisordrBjUdaemon-supervisordrCXfaq-task-callbacksrDhUfaq-task-callbacksrEXtask-keyword-argumentsrFhPUtask-keyword-argumentsrGX resourcesrHj~U resourcesrIX irc-channelrJj~U irc-channelrKX version-0.8.4rLjU version-0-8-4rMX guide-workerrNhU guide-workerrOX version-0.8.2rPjU version-0-8-2rQX version-0.8.3rRjU version-0-8-3rSX version-0.8.0rTjU version-0-8-0rUX version-0.8.1rVjU version-0-8-1rWXfaqrXhUfaqrYXfaq-tasks-connection-reuserZhUfaq-tasks-connection-reuser[Xrabbitmq-osx-installationr\hUrabbitmq-osx-installationr]Xoptimizing-prefetch-limitr^jqUoptimizing-prefetch-limitr_Xworker-rate-limitsr`hUworker-rate-limitsraXconf-result-backendrbjUconf-result-backendrcX v213-fixesrdjU v213-fixesreXevent-reference-taskrfj:Uevent-reference-taskrgXfaq-get-result-by-task-idrhhUfaq-get-result-by-task-idriXguide-optimizingrjjqUguide-optimizingrkXv203-documentationrljUv203-documentationrmXfaq-worker-stops-processingrnhUfaq-worker-stops-processingroXtask-data-localityrphPUtask-data-localityrqXtask-synchronous-subtasksrrhPUtask-synchronous-subtasksrsXmonitoring-muninrtj:Umonitoring-muninruXrouting-manualrvh Urouting-manualrwX guide-tasksrxhPU guide-tasksryXtut-clickcounterrzj1Utut-clickcounterr{Xwebhook-executingr|hUwebhook-executingr}X v210-newsr~jU v210-newsrXfaq-execute-task-by-namerhUfaq-execute-task-by-namerX task-loggingrhPU task-loggingrXmonitoring-nodjangorj:Umonitoring-nodjangorXfaq-safe-worker-shutdownrhUfaq-safe-worker-shutdownrX faq-resultsrhU faq-resultsrUsearchrUsearchUXdebian-initd-troubleshootingrjUdebian-initd-troubleshootingrX v105-criticalrjU v105-criticalrXdaemon-start-stop-daemonrjUdaemon-start-stop-daemonrXmonitoring-rmq-queuesrj:Umonitoring-rmq-queuesrXconf-cache-result-backendrjUconf-cache-result-backendrXmonitoring-django-startingrj:Umonitoring-django-startingrXcontributing-shortrj~Ucontributing-shortrXrabbitmq-osx-start-stoprhUrabbitmq-osx-start-stoprX task-optionsrhPU task-optionsrXtasks-decoratingrhPUtasks-decoratingrUgenindexrjUX)faq-node-not-receiving-broadcast-commandsrhU)faq-node-not-receiving-broadcast-commandsrXv080-importantrjUv080-importantrXversion-0.2.0-pre1rjUversion-0-2-0-pre1rXversion-0.2.0-pre3rjUversion-0-2-0-pre3rXversion-0.2.0-pre2rjUversion-0-2-0-pre2rXfaq-when-to-userhUfaq-when-to-userXworker-custom-control-commandsrhUworker-custom-control-commandsrXconf-amqp-result-backendrjUconf-amqp-result-backendrXlinksrjDUlinksrXstatesrh}UstatesrXconf-concurrencyrjUconf-concurrencyrXoverview-figure-1rj6Uoverview-figure-1rXoverview-figure-2rj6Uoverview-figure-2rX conf-loggingrjU conf-loggingrXmonitoring-camerarj:Umonitoring-camerarXworker-inspect-eta-schedulerhUworker-inspect-eta-schedulerX beat-startingrjgU beat-startingrXamqp-exchange-type-topicrh Uamqp-exchange-type-topicrX v080-newsrjU v080-newsrXguide-overviewrj6Uguide-overviewrXcelery-documentationrjUcelery-documentationrXres-mailing-list-archiverjlUres-mailing-list-archiverXtut-otherqueuesrjUtut-otherqueuesrXrouting-task-destinationrh Urouting-task-destinationrX,faq-change-periodic-task-interval-at-runtimerhU,faq-change-periodic-task-interval-at-runtimerX faq-generalrhU faq-generalrXtask-database-transactionsrhPUtask-database-transactionsrXotherqueues-installationrjUotherqueues-installationrX v103-newsrjU v103-newsrXcelery-examplerjUcelery-examplerXfaq-task-prioritiesrhUfaq-task-prioritiesrXconf-broker-connectionrjUconf-broker-connectionrXfaq-serializion-is-a-choicerhUfaq-serializion-is-a-choicerXamqp-exchange-typesrh Uamqp-exchange-typesrX#debian-initd-celeryd-django-examplerjU#debian-initd-celeryd-django-examplerXcelerytut-confrjUcelerytut-confrXamqp-apirh Uamqp-apirXrabbitmq-configurationrhUrabbitmq-configurationrX v100-changesrjU v100-changesrX task-basicsrhPU task-basicsrXrouting-automaticrh Urouting-automaticrX task-namesrhPU task-namesrXcookbook-tasksrjUcookbook-tasksrXdebian-initd-celeryd-optionsrjUdebian-initd-celeryd-optionsrX faq-tasksrhU faq-tasksrXexecuting-amq-optsrjUexecuting-amq-optsrXrouting-changing-default-queuerh Urouting-changing-default-queuerXv200-upgrade-databaserjUv200-upgrade-databaserXv200-django-upgraderjUv200-django-upgraderXtask-performance-and-strategiesrhPUtask-performance-and-strategiesrXtask-ignore_resultsrhPUtask-ignore-resultsrX version-1.0.6rjU version-1-0-6rX version-1.0.5rjU version-1-0-5r X version-1.0.4r jU version-1-0-4r X version-1.0.3r jU version-1-0-3r X version-1.0.2rjU version-1-0-2rX version-1.0.1rjU version-1-0-1rX version-1.0.0rjU version-1-0-0rX v200-newsrjU v200-newsrXwebhook-basicsrhUwebhook-basicsrXworker-inspectrhUworker-inspectrXv080-incompatiblerjUv080-incompatiblerXfaq-duplicate-key-errorsrhUfaq-duplicate-key-errorsrXfaq-is-celery-for-django-onlyrhUfaq-is-celery-for-django-onlyrXcelery-installing-from-gitr jUcelery-installing-from-gitr!Xwebhook-django-exampler"hUwebhook-django-exampler#X version-0.1.8r$jU version-0-1-8r%Xconf-tyrant-result-backendr&jUconf-tyrant-result-backendr'X version-0.1.0r(jU version-0-1-0r)X version-0.1.7r*jU version-0-1-7r+X version-0.1.6r,jU version-0-1-6r-Xworker-broadcast-funr.hUworker-broadcast-funr/X sets-tasksetr0j U sets-tasksetr1Xfaq-celeryd-on-freebsdr2hUfaq-celeryd-on-freebsdr3X version-0.3.1r4jU version-0-3-1r5X version-0.3.0r6jU version-0-3-0r7X version-0.3.3r8jU version-0-3-3r9X version-0.3.2r:jU version-0-3-2r;X version-0.3.7r<jU version-0-3-7r=Xfaq-windows-django-settingsr>hUfaq-windows-django-settingsr?Xfaq-troubleshootingr@hUfaq-troubleshootingrAX v060-newsrBjU v060-newsrCXfaq-use-celery-with-stomprDhUfaq-use-celery-with-stomprEXmonitoring-eventsrFj:Umonitoring-eventsrGX v212-fixesrHjU v212-fixesrIXfaq-is-celery-multilingualrJhUfaq-is-celery-multilingualrKXissue-trackersrLjUissue-trackersrMXv100-deprecationsrNjUv100-deprecationsrOXinternals-workerrPjUinternals-workerrQXtask-granularityrRhPUtask-granularityrSXdebian-initd-celerybeatrTjUdebian-initd-celerybeatrUX version-2.1.1rVjU version-2-1-1rWX version-2.1.0rXjU version-2-1-0rYX version-2.1.3rZjU version-2-1-3r[X version-2.1.2r\jU version-2-1-2r]Xv214-importantr^jUv214-importantr_X version-2.1.4r`jU version-2-1-4raXworker-restartingrbhUworker-restartingrcXconf-mongodb-result-backendrdjUconf-mongodb-result-backendreXtask-retry-custom-delayrfhPUtask-retry-custom-delayrgX amqp-primerrhh U amqp-primerriX conf-examplerjjU conf-examplerkXotherqueues-database-confrljUotherqueues-database-confrmXfaq-stomp-missing-featuresrnhUfaq-stomp-missing-featuresroXv100-incompatiblerpjUv100-incompatiblerqX guide-setsrrj U guide-setsrsXworker-inspect-registered-tasksrthUworker-inspect-registered-tasksruX&debian-initd-celerybeat-django-examplervjU&debian-initd-celerybeat-django-examplerwXbeat-entry-fieldsrxjgUbeat-entry-fieldsryX v103-fixesrzjU v103-fixesr{Xoptimizing-worker-settingsr|jqUoptimizing-worker-settingsr}X v214-fixesr~jU v214-fixesrXfaq-get-current-task-idrhUfaq-get-current-task-idrXfaq-messages-left-after-purgerhUfaq-messages-left-after-purgerXv200-upgrade-cacherjUv200-upgrade-cacherX conf-celerydrjU conf-celerydrXv210-importantrjUv210-importantrXcookbook-task-serialrjUcookbook-task-serialrXv100-documentationrjUv100-documentationrX version-0.4.0rjU version-0-4-0rX task-examplerhPU task-examplerX v203-fixesrjU v203-fixesrXworker-maxtasksperchildrhUworker-maxtasksperchildrX bug-trackerrj~U bug-trackerrXv081-importantrjUv081-importantrXworker-inspect-reservedrhUworker-inspect-reservedrXinternals-task-message-protocolrhbUinternals-task-message-protocolrXotherqueues-redisrjUotherqueues-redisrXfaq-schedule-at-specific-timerhUfaq-schedule-at-specific-timerXdebian-initd-celeryd-examplerjUdebian-initd-celeryd-examplerXworker-enable-eventsrhUworker-enable-eventsrXmonitoring-celerymonrj:Umonitoring-celerymonrXrouting-defining-queuesrh Urouting-defining-queuesrXcelery-featuresrjUcelery-featuresrXmonitoring-snapshotsrj:Umonitoring-snapshotsrXmonitoring-django-frequencyrj:Umonitoring-django-frequencyrXwikirj~UwikirXevent-reference-workerrj:Uevent-reference-workerrXres-wikirjlUres-wikirX faq-securityrhU faq-securityrXtask-example-blog-tasksrhPUtask-example-blog-tasksrXversion-0.1.13rjUversion-0-1-13rXversion-0.1.12rjUversion-0-1-12rXversion-0.1.11rjUversion-0-1-11rXversion-0.1.10rjUversion-0-1-10rXversion-0.1.15rjUversion-0-1-15rXversion-0.1.14rjUversion-0-1-14rXrabbitmq-osx-system-hostnamerhUrabbitmq-osx-system-hostnamerXceleryctl-inspect-destinationrj:Uceleryctl-inspect-destinationrXconf-custom-componentsrjUconf-custom-componentsrXinternals-module-overviewrjUinternals-module-overviewrX faq-brokersrhU faq-brokersrXworker-remote-controlrhUworker-remote-controlrXdebian-initd-celerybeat-optionsrjUdebian-initd-celerybeat-optionsrXcelerytut-simple-tasksrjUcelerytut-simple-tasksrXexecuting-basicsrjUexecuting-basicsrXotherqueues-notesrjUotherqueues-notesrXconf-database-result-backendrjUconf-database-result-backendrX configurationrjU configurationrXtask-best-practicesrhPUtask-best-practicesrXtask-example-blog-viewsrhPUtask-example-blog-viewsrX signal-basicsrhU signal-basicsrX conf-eventsrjU conf-eventsrXlicenserj~UlicenserXmonitoring-celeryevrj:Umonitoring-celeryevrX version-2.1.5rjU version-2-1-5rXcelerytut-running-celerydrjUcelerytut-running-celerydrXmonitoring-celeryctlrj:Umonitoring-celeryctlrXfaq-custom-task-idsrhUfaq-custom-task-idsrXdeprecation-timelinerjZUdeprecation-timelinerXcommunity-newsrjlUcommunity-newsrX communityrjlU communityrXexample-mongodb-result-configrjUexample-mongodb-result-configrXfaq-purge-the-queuerhUfaq-purge-the-queuerXv060-importantrjUv060-importantrXcelerytut-executing-taskrjUcelerytut-executing-taskrX getting-helprj~U getting-helprXmonitoring-workersrj:Umonitoring-workersrXconf-celerybeatrjUconf-celerybeatrXconf-messagingrjUconf-messagingrXconf-celerymonrjUconf-celerymonr X beat-entriesr jgU beat-entriesr Xcelery-installing-from-sourcer jUcelery-installing-from-sourcer Xrouting-basicsrh Urouting-basicsrXrouting-autoqueue-detailsrh Urouting-autoqueue-detailsrXguiderjUguiderX amqp-producers-consumers-brokersrh U amqp-producers-consumers-brokersrXamqp-exchange-type-directrh Uamqp-exchange-type-directrXv210-experimentalrjUv210-experimentalrXguide-monitoringrj:Uguide-monitoringrXtask-general-optionsrhPUtask-general-optionsrXfaq-misconceptionsrhUfaq-misconceptionsrXfaq-cancel-taskr hUfaq-cancel-taskr!Xtask-how-they-workr"hPUtask-how-they-workr#Xfaq-periodic-task-does-not-runr$hUfaq-periodic-task-does-not-runr%X task-stater&hPU task-stater'X coding-styler(jU coding-styler)Xworker-persistent-revokesr*hUworker-persistent-revokesr+Xguide-webhooksr,hUguide-webhooksr-Xfaq-task-does-not-runr.hUfaq-task-does-not-runr/X guide-beatr0jgU guide-beatr1Xv214-documentationr2jUv214-documentationr3Xtask-naming-relative-importsr4hPUtask-naming-relative-importsr5Xwebhook-rails-exampler6hUwebhook-rails-exampler7Xfaq-task-routingr8hUfaq-task-routingr9Xdeprecations-v2.0r:jZUdeprecations-v2-0r;Xv103-importantr<jUv103-importantr=Xevent-referencer>j:Uevent-referencer?Xconf-task-executionr@jUconf-task-executionrAX mailing-listrBj~U mailing-listrCX v100-bugsrDjU v100-bugsrEXsignalsrFhUsignalsrGX links-amqprHjDU links-amqprIXexecuting-routingrJjUexecuting-routingrKX links-celeryrLjDU links-celeryrMXtask-builtin-statesrNhPUtask-builtin-statesrOXcelery-installationrPjUcelery-installationrQXconf-error-mailsrRjUconf-error-mailsrSXv081-very-importantrTjUv081-very-importantrUXdaemon-launchdrVjUdaemon-launchdrWXdebian-initd-celerydrXjUdebian-initd-celerydrYXmonitoring-rabbitmqrZj:Umonitoring-rabbitmqr[X beat-crontabr\jgU beat-crontabr]Xconf-example-error-mail-configr^jUconf-example-error-mail-configr_Xcommunity-resourcesr`jlUid1raXfaq-daemonizingrbhUfaq-daemonizingrcX guide-routingrdh U guide-routingreUmodindexrfU py-modindexUXbeat-custom-schedulersrgjgUbeat-custom-schedulersrhXworker-time-limitsrihUworker-time-limitsrjXv103-remote-controlrkjUv103-remote-controlrlXexecuting-serializersrmjUexecuting-serializersrnX contributingrojU contributingrpXfaq-worker-hangingrqhUfaq-worker-hangingrrX tut-celeryrsjU tut-celeryrtX routing-tasksruh Uid2rvXconf-messaging-routingjUconf-messaging-routingXworker-concurrencyrwhUworker-concurrencyrxXroutersryh UroutersrzXversion-0.3.20r{jUversion-0-3-20r|X v200-upgrader}jU v200-upgrader~X v105-changesrjU v105-changesrXworker-stoppingrhUworker-stoppingrXfaq-publish-hangingrhUfaq-publish-hangingrXtask-disable-rate-limitsrhPUtask-disable-rate-limitsrXotherqueues-databaserjUotherqueues-databaserX v081-changesrjU v081-changesrX task-retryrhPU task-retryrXotherqueues-redis-confrjUotherqueues-redis-confrXsets-callbacksrj Usets-callbacksrXreporting-bugsrjUreporting-bugsrX task-statesrhPU task-statesrXv200-incompatiblerjUv200-incompatiblerXfaq-windows-worker-spawn-looprhUfaq-windows-worker-spawn-looprXexecuting-connectionsrjUexecuting-connectionsrXv210-documentationrjUv210-documentationrXworker-inspect-active-tasksrhUworker-inspect-active-tasksrX res-irc-logsrjlU res-irc-logsrX faq-windowsrhU faq-windowsrX daemonizingrjU daemonizingrXconf-broadcastrjUconf-broadcastrXres-using-celeryrjlUres-using-celeryrX signal-refrhU signal-refrXguide-executingrjUguide-executingrXcelery-overviewrjUcelery-overviewrX sets-resultsrj U sets-resultsrX version-0.4.1rjU version-0-4-1rX v211-newsrjU v211-newsrX version-0.6.0rjU version-0-6-0rXworker-startingrhUworker-startingrXcommunity-code-of-conductrjUcommunity-code-of-conductrXbroker-installationrhUbroker-installationrX internalsrhYU internalsrXconf-redis-result-backendrjUconf-redis-result-backendrXintrorjUintrorXdebian-initd-celerybeat-examplerjUdebian-initd-celerybeat-examplerX sets-subtasksrj U sets-subtasksrXfaq-is-celery-for-rabbitmq-onlyrhUfaq-is-celery-for-rabbitmq-onlyrX version-0.2.0rjU version-0-2-0rXinstalling-rabbitmqrhUinstalling-rabbitmqrXfaq-natural-task-idsrhUfaq-natural-task-idsrX v211-fixesrjU v211-fixesrXtask-message-optionsrhPUtask-message-optionsrXlinks-rabbitmqrjDUlinks-rabbitmqrXamqp-exchanges-queues-keysrh Uamqp-exchanges-queues-keysrXres-stackoverflowrjlUres-stackoverflowrX v210-fixesrjU v210-fixesrXexecuting-expirationrjUexecuting-expirationrXamqp-api-hands-onrh Uamqp-api-hands-onrX executing-etarjU executing-etarXcookbookrh>UcookbookrX version-2.0.0rjU version-2-0-0rX version-2.0.1rjU version-2-0-1rX version-2.0.2rjU version-2-0-2rX version-2.0.3rjU version-2-0-3ruUlabelsr}r(jjjXImportant Notesj:hj;X1MySQL is throwing deadlock errors, what can I do?jjjX.Ensuring a task is only executed one at a timej<hj=X Should I use retry or acks_late?j8hj9X+Can I send some tasks to only some servers?jjjX Documentationj hj!X%Can I cancel the execution of a task?jhPjXMessage and routing optionsj>hj?X/The -B / --beat option to celeryd doesn't work?jhjXGeneralj@j:jAXDjango Admin Monitorj:jZj;XRemovals for version 2.0j<jj=XImportant notesj\hj]XInstalling RabbitMQ on OS Xjh jXHow the queues are definedjBjjCX supervisordjZj:j[XRabbitMQjjjXRedisjjjXFixesjojjpX Contributingjj~jX Bug trackerjDhjEX4How can I run a task once another task has finished?jdh jeX Routing TasksjjjXNewsj@jjAXTask execution settingsjjjXImportant changesjj jXResultsjDjjEXBugsjjjXExamplejhjX$Does celery support task priorities?jhjXInspecting workersjjjXBroker SettingsjhPjX Task namesjHjDjIXAMQPjLjDjMXceleryjJjjKXRouting optionsjh jXTopic exchangesjHj~jIX ResourcesjJj~jKXIRCjLjjMX0.8.4jjljXNewsjPjjQX0.8.2jRjjSX0.8.3jTjjUX0.8.0jVjjWX0.8.1jhPjXPerformance and StrategiesjXhjYXFrequently Asked QuestionsjRjjSX Error E-MailsjhPjXBasicsjjjX Configurationjh jXRelated API commandsjhjX(Writing your own remote control commandsjjljXCommunity ResourcesjVjjWXlaunchd (OS X)jXjjYXInit script: celerydjhjX3Can I schedule tasks to execute at a specific time?jJhjKXIs Celery multilingual?jjjXExample configurationjFhPjGXDefault keyword argumentsjhjXSetting up RabbitMQj^jqj_XPrefetch limitjhjXIs Celery dependent on pickle?jhjXDump of scheduled (ETA) tasksjbjjcXTask result backend settingsjj:jXcelerymon: Web monitorj\jgj]XCrontab schedulesjsjjtXFirst steps with CeleryjLjjMXIssue Trackersjh jXDefining queuesjjjX0.6.0jfj:jgX Task EventsjhPjX Task optionsjjjXCreating Tasksjuh jvX Routing TasksjhhjiXEHow do I get the result of a task if I have the ID that points there?jPjjQXInternals: The workerjj:jX Snapshotsj^jj_XExample E-Mail configurationj`jljaX ResourcesjbhjcX5How do I run celeryd in the background on [platform]?jljjmX DocumentationjthjuXDump of registered tasksjj:jX Worker EventsjnhjoXWhy aren't my tasks processed?jjljXWikijfU py-modindexUcsphinx.locale _TranslationProxy rcsphinx.locale mygettext rU Module IndexrrjjrbjjjXAvailable optionsjhjXTasksj@hjAXTroubleshootingjhjXSecurityjphPjqX Data localityjgjgjhXUsing custom scheduler classesjihjjX Time limitsjrhPjsX$Avoid launching synchronous subtasksjjjXConfiguration and defaultsjhPjXDatabase transactionsjjjX0.1.13jjjX0.1.12jjjX0.1.11jjjX0.1.10jjjX0.1.15jjjX0.1.14jjjXDatabase result backendjhjX Configuring the system host namejjjXUpgrading for Django-usersjjjX#Custom Component Classes (advanced)jh jXAutomatic routingjj:jXMonitoring GuidejmjjnX Serializersj2hj3X!Why won't celeryd run on FreeBSD?j~jjXNewsjqhjrX+celeryd is not doing anything, just hangingj*hj+XPersistent revokesj0j j1X Task SetsjhPjXExamplejhjXCan I execute a task by name?jyh jzXRoutersjjjX1.0.6jjj X1.0.5j jj X1.0.4j jj X1.0.3jjjX1.0.2jjjX1.0.1jjjX1.0.0jhPjX Task StatesjhjXBrokersjwhjxX ConcurrencyjhPjXLoggingjj:jXUsing outside of DjangojjjXAvailable optionsj{jj|X0.3.20jjjXNewsjhjXBasicsjhjXMax tasks per child settingjjjXCreating a simple taskjjjXBasicsj|hj}XExecuting webhook tasksjjjXImportant notesjhjX"How do I shut down celeryd safely?jjjXDatabase backend settingsjjjXNewsjzjj{XFixesjjjXBackward incompatible changesjhjXResultsjhjXBasicsjjjXChangesjjjXEventsjhjX5I'm having IntegrityError: Duplicate Key errors. Why?jj:jXceleryev: Curses MonitorjhjXIs Celery for Django only?j jj!XUsing the development versionjjjXTroubleshootingj"hj#XDjango webhook examplejjjX User GuidejhjXStopping the workerjBj~jCX Mailing listj$jj%X0.1.8jjjX ExpirationjjjXCriticaljhjX!Dump of currently executing tasksjhjXCan I specify a custom task_id?jj:jXSpecifying destination nodesj&jj'XTokyo Tyrant backend settingsj(jj)X0.1.0j*jj+X0.1.7j,jj-X0.1.6j&hPj'XStatejjjX$start-stop-daemon (Debian/Ubuntu/++)jj:jXInspecting queuesjjjXDatabasejhPjX'Disable rate limits if they're not usedjh jXSpecifying task destinationjjUjjU Search PagerrjjrbjjjXChangesjh jX Producers, consumers and brokersjTjjUXVery important notej.hj/XThe broadcast() function.jjjXCache backend settingsjNhPjOXBuilt-in StatesjjjXExample configurationjhPjX"Retrying a task if something failsjhjX#How do I discard all waiting tasks?jjjX Configurationjj jX CallbacksjjjXImportant changesjjjXExecuting the taskjjljX"Celery questions on Stack Overflowjh jXDirect exchangesjj~jX Getting HelpjFhjGXSignals - celery.signalsjNhjOX Workers Guidej}jj~XUpgrading for othersjjjXReporting a BugjjDjXInteresting Linksjj:jXWorkersjjjXBackward incompatible changesj4jj5X0.3.1j6jj7X0.3.0j8jj9X0.3.3j:jj;X0.3.2jhjX+celeryd keeps spawning processes at startupj<jj=X0.3.7j jj X&Downloading and installing from sourcejjjX$Connections and connection timeouts.jhPjXDecorating tasksjfhPjgXUsing a custom retry delayj>hj?X"django-celery can't find settings?jTjjUXInit script: celerybeatjjjX DocumentationjjUjjUIndexrrjjrbjjljXIRC LogsjhPjX blog/tasks.pyjjjX Periodic Task Server: celerybeatjhjXWindowsjjjXRunning celeryd as a daemonjh jXBasicsjhjX>Why aren't my remote control commands received by all workers?jjjXImportant changesjjjXBroadcast CommandsjjjXMessage RoutingjjjX 0.2.0-pre1jjjX 0.2.0-pre3jjjX 0.2.0-pre2jjljXWho's using CeleryjhjXSignalsjDhjEX%Can I use Celery with ActiveMQ/STOMP?jjjXExecuting TasksjjjXOverviewjjjX0.4.0jjjX0.4.1jFj:jGXEventsj jgj XEntriesjhjXBroker InstallationjHjjIXFixesjZhj[X8How can I reuse the same connection when applying tasks?jdjjeXMongoDB backend settingsjj~jXLicensejjjXNewsjNjjOX DeprecationsjjjXFeaturesjj~jXWikijhjXStarting the workerjrj jsX%Sets of tasks, Subtasks and CallbacksjhjXDump of reserved tasksjj:jXShutter frequencyjh}jXStatesjjjX IntroductionjRhPjSX GranularityjjjXCommunity Code of ConductjjjX8Using Celery with Redis/Database as the messaging queue.jVjjWX2.1.1jXjjYX2.1.0jZjj[X2.1.3j\jj]X2.1.2jjjX2.1.5j`jjaX2.1.4jjjXAMQP backend settingsjjjX Module IndexjjjX Running the celery worker serverjj:jXStarting the monitorjhjX%Starting/Stopping the RabbitMQ serverjbhjcXRestarting the workerjhYjX Internalsjh jXExchange typesjjjX ExperimentaljjjXRedis backend settingsjtj:juXMuninjjjXExample Django configurationjhjXMisconceptionsjjjX AMQP optionsjhh jiX AMQP PrimerjPjjQX InstallationjjjjkXExample configuration filejjjXConcurrency settingsjljjmX ConfigurationjhjXDo I have to use AMQP/RabbitMQ?jj6jX"Figure 1: Worker and broker nodes.jj6jXFigure 2: Worker bindings.jjjXExample configurationjpjjqXBackward incompatible changesjjjXLoggingjj:jX Custom CamerajjjX0.2.0jhjXInstalling RabbitMQjj jXSubtasksj4hPj5X%Automatic naming and relative importsjhjXRemote controljvjjwXExample Django configurationjxhPjyXTasksjxjgjyXAvailable FieldsjhjXCan I use natural task ids?jjjX Installationjj:jXceleryctl: Management UtilityjjjXChangesjjZjXCelery Deprecation TimelinejjjqjkX OptimizingjjgjXStarting celerybeatjkjjlXRemote control commandsj|jqj}XWorker Settingsj"hPj#X How it worksjhbjXTask Message ProtocoljjjXFixesj~jjXFixesj$hj%XWhy won't my Periodic Task run?jBjjCXNewsjh jX&Changing the name of the default queuejhPjX blog/views.pyjh jX#Exchanges, queues and routing keys.jjDjXRabbitMQjhPjXIgnore results you don't wantjj6jXOverviewjjjX Documentationjzj1j{X:Tutorial: Creating a click counter using carrot and celeryjjljX"Mailing-list Archive: celery-usersjhjX.How can I get the task id of the current task?jhjX.Why is Task.delay/apply*/celeryd just hanging?jjjXFixesj>j:j?XEvent Referencej(jj)X Coding StylejhjXHI've discarded messages, but there are still messages left in the queue?jjjXCache result backendj,hj-XHTTP Callback Tasks (Webhooks)jj~jX Contributingj.hj/XWhy won't my Task run?jh jXHands-on with the APIj0jgj1XPeriodic Tasksj2jj3X DocumentationjjjXETA and countdownjjjXWorker: celerydjnhjoX9What features are not supported when using ghettoq/STOMP?jjj XMonitor Server: celerymonjvh jwXManual routingjhPjXTips and Best Practicesj6hj7XRuby on Rails webhook examplejhjX-What kinds of things should I use Celery for?jhjX8Can I change the interval of a periodic task at runtime?jh>jXCookbookjjjX2.0.0jjjX2.0.1jjjX2.0.2jjjX2.0.3uU progoptionsr}r(XcelerydrX-fjXcmdoption-celeryd-frjX-sjXcmdoption-celeryd-srX celerybeatrX-sjXcmdoption-celerybeat-srjX-fjXcmdoption-celerybeat-frjX--soft-time-limitjX"cmdoption-celeryd--soft-time-limitrjX-IjXcmdoption-celeryd-IrjX --schedulerjXcmdoption-celeryd--schedulerrjX--maxtasksperchildjX#cmdoption-celeryd--maxtasksperchildrjX --time-limitjXcmdoption-celeryd--time-limitrjX-cjXcmdoption-celeryd-crjX-ljXcmdoption-celeryd-lrjX--purgejXcmdoption-celeryd--purgerjX-BjXcmdoption-celeryd-BrjX-ljXcmdoption-celerybeat-lr jX-EjXcmdoption-celeryd-Er jX-njXcmdoption-celeryd-nr jX-QjXcmdoption-celeryd-Qr jX-SjXcmdoption-celerybeat-Sr uUobjectsr}r(XsettingX CELERYD_POOLjXstd:setting-CELERYD_POOLrXsettingXCELERYD_LOG_LEVELjXstd:setting-CELERYD_LOG_LEVELrXsettingXCELERY_CACHE_BACKENDjX std:setting-CELERY_CACHE_BACKENDrXcontrolXpinghXstd:control-pingrXsettingXCELERY_MONGODB_BACKEND_SETTINGSjX+std:setting-CELERY_MONGODB_BACKEND_SETTINGSrXsettingXCELERY_BROKER_CONNECTION_RETRYjX*std:setting-CELERY_BROKER_CONNECTION_RETRYrXsettingX BROKER_PORTjXstd:setting-BROKER_PORTrXsettingXCELERYBEAT_SCHEDULE_FILENAMEjX(std:setting-CELERYBEAT_SCHEDULE_FILENAMErXsettingXCELERY_EVENT_QUEUEjXstd:setting-CELERY_EVENT_QUEUErXsettingX BROKER_USERjXstd:setting-BROKER_USERrXsettingXCELERY_DEFAULT_EXCHANGE_TYPEjX(std:setting-CELERY_DEFAULT_EXCHANGE_TYPErXsettingXMAIL_HOST_PASSWORDjXstd:setting-MAIL_HOST_PASSWORDrXstateXPENDINGhPXstd:state-PENDINGrXsettingXCELERYD_STATE_DBjXstd:setting-CELERYD_STATE_DBrXsettingXCELERYMON_LOG_LEVELjXstd:setting-CELERYMON_LOG_LEVELrXsettingXCELERY_RESULT_SERIALIZERjX$std:setting-CELERY_RESULT_SERIALIZERrXsettingX REDIS_PORTjXstd:setting-REDIS_PORTr XsettingXCELERY_DEFAULT_ROUTING_KEYjX&std:setting-CELERY_DEFAULT_ROUTING_KEYr!XsettingXCELERY_RESULT_BACKENDjX!std:setting-CELERY_RESULT_BACKENDr"XsettingX MAIL_PORTjXstd:setting-MAIL_PORTr#XsettingXCELERY_DISABLE_RATE_LIMITSjX&std:setting-CELERY_DISABLE_RATE_LIMITSr$XsettingXCELERY_AMQP_TASK_RESULT_EXPIRESjX+std:setting-CELERY_AMQP_TASK_RESULT_EXPIRESr%XsettingXCELERYD_MEDIATORjXstd:setting-CELERYD_MEDIATORr&XsettingXCELERYBEAT_SCHEDULERjX std:setting-CELERYBEAT_SCHEDULERr'XsettingXCELERY_REDIRECT_STDOUTSjX#std:setting-CELERY_REDIRECT_STDOUTSr(XcontrolXshutdownhXstd:control-shutdownr)XsettingXCELERY_SEND_EVENTSjXstd:setting-CELERY_SEND_EVENTSr*XstateXEXCEPTION_STATESh}Xstd:state-EXCEPTION_STATESr+XsettingXCELERYD_LOG_FORMATjXstd:setting-CELERYD_LOG_FORMATr,XsettingXCELERY_BROADCASTS_EXCHANGEjX&std:setting-CELERY_BROADCASTS_EXCHANGEr-XsettingXCELERY_RESULT_PERSISTENTjX$std:setting-CELERY_RESULT_PERSISTENTr.XsettingXCELERYBEAT_SCHEDULEjXstd:setting-CELERYBEAT_SCHEDULEr/XsettingXCELERYBEAT_MAX_LOOP_INTERVALjX(std:setting-CELERYBEAT_MAX_LOOP_INTERVALr0XsettingXBROKER_PASSWORDjXstd:setting-BROKER_PASSWORDr1XsettingX BROKER_VHOSTjXstd:setting-BROKER_VHOSTr2XsettingXCELERY_BROADCAST_EXCHANGE_TYPEjX*std:setting-CELERY_BROADCAST_EXCHANGE_TYPEr3XsettingXCELERY_BROADCAST_QUEUEjX"std:setting-CELERY_BROADCAST_QUEUEr4XsettingXCELERY_DEFAULT_DELIVERY_MODEjX(std:setting-CELERY_DEFAULT_DELIVERY_MODEr5XsettingX REDIS_HOSTjXstd:setting-REDIS_HOSTr6XsettingX SERVER_EMAILjXstd:setting-SERVER_EMAILr7XsettingX BROKER_HOSTjXstd:setting-BROKER_HOSTr8XsettingXMAIL_HOST_USERjXstd:setting-MAIL_HOST_USERr9XsettingXADMINSjXstd:setting-ADMINSr:XsettingXBROKER_USE_SSLjXstd:setting-BROKER_USE_SSLr;XsettingXCELERY_DEFAULT_QUEUEjX std:setting-CELERY_DEFAULT_QUEUEr<XstateXPROPAGATE_STATESh}Xstd:state-PROPAGATE_STATESr=XsettingXCELERY_RESULT_ENGINE_OPTIONSjX(std:setting-CELERY_RESULT_ENGINE_OPTIONSr>XsettingXCELERY_MAX_CACHED_RESULTSjX%std:setting-CELERY_MAX_CACHED_RESULTSr?XsettingX"CELERY_EAGER_PROPAGATES_EXCEPTIONSjX.std:setting-CELERY_EAGER_PROPAGATES_EXCEPTIONSr@XsettingXCELERY_EVENT_EXCHANGEjX!std:setting-CELERY_EVENT_EXCHANGErAXsettingX MAIL_HOSTjXstd:setting-MAIL_HOSTrBXsettingXCELERYD_TASK_LOG_FORMATjX#std:setting-CELERYD_TASK_LOG_FORMATrCXsettingXREDIS_DBjXstd:setting-REDIS_DBrDXstateXRETRYhPXstd:state-RETRYrEXstateXREVOKEDhPXstd:state-REVOKEDrFXsettingXCELERYD_CONCURRENCYjXstd:setting-CELERYD_CONCURRENCYrGXcontrolX enable_eventshXstd:control-enable_eventsrHXsettingXCELERY_TASK_ERROR_WHITELISTjX'std:setting-CELERY_TASK_ERROR_WHITELISTrIXsettingXCELERY_TASK_RESULT_EXPIRESjX&std:setting-CELERY_TASK_RESULT_EXPIRESrJXsettingXCELERY_EVENT_EXCHANGE_TYPEjX&std:setting-CELERY_EVENT_EXCHANGE_TYPErKXsettingXCELERY_CREATE_MISSING_QUEUESjX(std:setting-CELERY_CREATE_MISSING_QUEUESrLXsettingXCELERY_ACKS_LATEjXstd:setting-CELERY_ACKS_LATErMXstateXSUCCESShPXstd:state-SUCCESSrNXsettingXCELERY_RESULT_EXCHANGE_TYPEjX'std:setting-CELERY_RESULT_EXCHANGE_TYPErOXsettingXCELERYD_MAX_TASKS_PER_CHILDjX'std:setting-CELERYD_MAX_TASKS_PER_CHILDrPXsettingXREDIS_PASSWORDjXstd:setting-REDIS_PASSWORDrQXsettingXBROKER_BACKENDjXstd:setting-BROKER_BACKENDrRXsettingX CELERY_ROUTESjXstd:setting-CELERY_ROUTESrSXstateXFAILUREhPXstd:state-FAILURErTXsettingXCELERYD_TASK_TIME_LIMITjX#std:setting-CELERYD_TASK_TIME_LIMITrUXstateXSTARTEDhPXstd:state-STARTEDrVXsettingXCELERY_CACHE_BACKEND_OPTIONSjX(std:setting-CELERY_CACHE_BACKEND_OPTIONSrWXsettingXCELERYD_ETA_SCHEDULERjX!std:setting-CELERYD_ETA_SCHEDULERrXXsettingXCELERYD_LOG_FILEjXstd:setting-CELERYD_LOG_FILErYXsettingXCELERY_IGNORE_RESULTjX std:setting-CELERY_IGNORE_RESULTrZXsettingXCELERY_ALWAYS_EAGERjXstd:setting-CELERY_ALWAYS_EAGERr[XsettingXCELERY_REDIRECT_STDOUTS_LEVELjX)std:setting-CELERY_REDIRECT_STDOUTS_LEVELr\XsettingXCELERYD_PREFETCH_MULTIPLIERjX'std:setting-CELERYD_PREFETCH_MULTIPLIERr]XsettingX$CELERY_BROKER_CONNECTION_MAX_RETRIESjX0std:setting-CELERY_BROKER_CONNECTION_MAX_RETRIESr^XsettingXCELERYD_ETA_SCHEDULER_PRECISIONjX+std:setting-CELERYD_ETA_SCHEDULER_PRECISIONr_XsettingXCELERY_TRACK_STARTEDjX std:setting-CELERY_TRACK_STARTEDr`XstateXUNREADY_STATESh}Xstd:state-UNREADY_STATESraXsettingXCELERY_RESULT_EXCHANGEjX"std:setting-CELERY_RESULT_EXCHANGErbXsettingXCELERYD_SEND_TASK_ERROR_EMAILSjX*std:setting-CELERYD_SEND_TASK_ERROR_EMAILSrcXsettingXCELERY_EVENT_ROUTING_KEYjX$std:setting-CELERY_EVENT_ROUTING_KEYrdXsettingXCELERY_DEFAULT_RATE_LIMITjX%std:setting-CELERY_DEFAULT_RATE_LIMITreXsettingXCELERY_EVENT_SERIALIZERjX#std:setting-CELERY_EVENT_SERIALIZERrfXsettingXCELERY_RESULT_DBURIjXstd:setting-CELERY_RESULT_DBURIrgXsettingXCELERYBEAT_LOG_FILEjXstd:setting-CELERYBEAT_LOG_FILErhXstateX ALL_STATESh}Xstd:state-ALL_STATESriXsettingXCELERYMON_LOG_FILEjXstd:setting-CELERYMON_LOG_FILErjXstateX READY_STATESh}Xstd:state-READY_STATESrkXsettingXTT_PORTjXstd:setting-TT_PORTrlXsettingXTT_HOSTjXstd:setting-TT_HOSTrmXsettingXCELERYBEAT_LOG_LEVELjX std:setting-CELERYBEAT_LOG_LEVELrnXsettingXCELERYD_LISTENERjXstd:setting-CELERYD_LISTENERroXsettingXCELERYD_TASK_SOFT_TIME_LIMITjX(std:setting-CELERYD_TASK_SOFT_TIME_LIMITrpXsettingXCELERY_DEFAULT_EXCHANGEjX#std:setting-CELERY_DEFAULT_EXCHANGErqXcontrolXdisable_eventshXstd:control-disable_eventsrrXsettingXCELERY_TASK_SERIALIZERjX"std:setting-CELERY_TASK_SERIALIZERrsXcontrolX rate_limithXstd:control-rate_limitrtXsettingXBROKER_CONNECTION_TIMEOUTjX%std:setting-BROKER_CONNECTION_TIMEOUTruXsettingX#CELERY_STORE_ERRORS_EVEN_IF_IGNOREDjX/std:setting-CELERY_STORE_ERRORS_EVEN_IF_IGNOREDrvXsettingX CELERY_QUEUESjXstd:setting-CELERY_QUEUESrwXsettingXCELERY_IMPORTSjXstd:setting-CELERY_IMPORTSrxuuUc}ry(j}rzj7KuUpyr{}r|(j}r}(X'celery.conf.CELERYD_PREFETCH_MULTIPLIERr~jCXdataXcelery.task.Task.after_returnrjXmethodXcelery.task.http.URL.post_asyncrhkXmethodX.celery.worker.listener.CarrotListener.hostnamerhX attributeX!celery.beat.Scheduler.apply_asyncrjXmethodX;celery.concurrency.processes.TaskPool.Pool.Process.exitcoderjX attributeX)celery.worker.control.builtins.dump_tasksrhXfunctionX&celery.bin.celeryd_multi.abbreviationsrjXfunctionX3celery.events.cursesmon.CursesMonitor.selected_taskrjX attributeX%celery.result.BaseAsyncResult.backendrj(X attributeX4celery.events.cursesmon.CursesMonitor.selection_inforjXmethodX'celery.messaging.TaskPublisher.exchangerjX attributeX2celery.messaging.ControlReplyPublisher.auto_deleterjX attributeX2celery.worker.listener.CarrotListener.eta_schedulerhX attributeX1celery.backends.base.BaseBackend.EXCEPTION_STATESrjX attributeX!celery.bin.celeryctl.Command.helprjX attributeXcelery.loadersrjUmodulerX%celery.task.http.InvalidResponseErrorrhkX exceptionX&celery.worker.WorkController.terminaterhXmethodX celery.task.HttpDispatchTask.runrjXmethodXcelery.routes.MapRouterjXclassX2celery.events.cursesmon.CursesMonitor.screen_widthrjX attributeXcelery.bin.camqadm.Spec.coercerjXmethodX&celery.worker.buckets.TaskBucket.clearrjXmethodX.celery.backends.base.BaseBackend.prepare_valuerjXmethodX celery.task.base.Task.get_loggerrj^X classmethodrXcelery.execute.tracerhjXcelery.conf.CELERYD_LOG_LEVELrjCXdataXcelery.utils.gen_unique_idrjXfunctionX+celery.events.snapshot.Polaroid.clear_afterrhGX attributeXcelery.result.AsyncResultrj(XclassX!celery.worker.state.task_acceptedrjXfunctionX"celery.worker.job.InvalidTaskErrorrhX exceptionX'celery.events.state.State.alive_workersrhXmethodX2celery.contrib.abortable.AbortableTask.AsyncResultrjX classmethodX0celery.worker.control.ControlDispatch.Panel.datarj;X attributeX(celery.worker.job.TaskRequest.send_eventrhXmethodXcelery.messaging.TaskPublisherrjXclassX+celery.task.control.inspect.cancel_consumerrjLXmethodXcelery.backends.databaserjMjX%celery.log.redirect_stdouts_to_loggerrhXfunctionX*celery.datastructures.PositionQueue.lengthrjpX attributeX"celery.result.BaseAsyncResult.inforj(X attributeX.celery.worker.job.WorkerTaskTrace.execute_saferhXmethodXcelery.concurrency.threadsrjjX,celery.worker.control.builtins.dump_schedulerhXfunctionX'celery.events.snapshot.Polaroid.installrhGXmethodX!celery.utils.term.colored.iyellowrjXmethodX%celery.routes.MapRoute.route_for_taskrjXmethodX&celery.events.snapshot.Polaroid.cancelrhGXmethodX(celery.task.builtins.backend_cleanup.runrjQXmethodX+celery.messaging.BroadcastConsumer.exchangerjX attributeX2celery.task.base.Task.store_errors_even_if_ignoredrj^X attributerXcelery.beat.Scheduler.tickrjXmethodX"celery.log.LoggingProxy.writelinesrhXmethodX0celery.backends.amqp.AMQPBackend.restore_tasksetrj_XmethodX>celery.concurrency.processes.TaskPool.Pool.TimeoutHandler.bodyrjXmethodX4celery.events.cursesmon.CursesMonitor.move_selectionrjXmethodX1celery.messaging.ControlReplyConsumer.auto_deleterjX attributeXcelery.task.TaskSet.apply_asyncrjXmethodX6celery.worker.listener.CarrotListener.event_dispatcherrhX attributeXcelery.events.state.Task.inforhXmethodX'celery.events.snapshot.Polaroid.shutterrhGXmethodXcelery.task.Task.routing_keyrjX attributeXTask.mandatoryrhPX attributerX/celery.backends.pyredis.RedisBackend.redis_hostrjX attributeX4celery.utils.dispatch.saferef.BoundMethodWeakref.keyrjX attributeX celery.platforms.PIDFile.acquirerh,XmethodX#celery.worker.job.execute_and_tracerhXfunctionXAcelery.utils.dispatch.saferef.BoundMethodWeakref.deletion_methodsrjX attributeX$celery.events.state.State.task_eventrhXmethodX-celery.events.dumper.Dumper.format_task_eventrjXmethodX State.thawrjXmethodrX celery.bin.celeryd_multi.findsigrjXfunctionX&celery.messaging.TaskPublisher.declarerjXmethodX"celery.worker.state.REVOKE_EXPIRESrjXdataX.celery.backends.base.BaseBackend.encode_resultrjXmethodX%celery.concurrency.processes.TaskPoolrjXclassXcelery.beat.PersistentSchedulerrjXclassX/celery.backends.amqp.ResultPublisher.serializerrj_X attributeXcelery.bin.camqadm.dump_messagerjXfunctionX"celery.apps.worker.Worker.tasklistrjXmethodXcelery.events.snapshotrhGjXcelery.apps.beat.Beatrj2XclassXcelery.task.control.pingrjLXfunctionX0celery.backends.base.BaseBackend.process_cleanuprjXmethodX(celery.bin.celeryd_multi.MultiTool.usagerjXmethodX(celery.conf.CELERYBEAT_MAX_LOOP_INTERVALrjCXdataX0celery.bin.camqadm.AMQShell.display_command_helprjXmethodX,celery.loaders.default.Loader.setup_settingsrjcXmethodX#celery.worker.WorkController.loggerrhX attributeX+celery.worker.job.TaskRequest.email_subjectrhX attributeXcelery.task.Task.rate_limitrjX attributeX8celery.concurrency.processes.TaskPool.Pool.Process.startrjXmethodX-celery.execute.trace.TaskTrace.handle_failurerhXmethodX-celery.execute.trace.TaskTrace.handle_successrhXmethodX#celery.task.HttpDispatchTask.methodrjX attributeX%celery.utils.compat.OrderedDict.clearrjXmethodX<celery.apps.worker.Worker.WorkController.schedule_controllerrjX attributeX8celery.concurrency.processes.TaskPool.Pool.ResultHandlerrjXclassX celery.datastructures.LimitedSetrjpXclassX*celery.events.snapshot.Polaroid.on_cleanuprhGXmethodXcelery.task.TaskSet.task_namerjX attributeX"celery.beat.Scheduler.get_schedulerjXmethodX$celery.beat.PersistentScheduler.inforjX attributeX8celery.backends.pyredis.RedisBackend.redis_connect_retryrjX attributeX!celery.concurrency.processes.poolrjjXcelery.utils.padlistrjXfunctionXcelery.db.session.setup_resultsrj XfunctionX#celery.bin.celeryd_multi.format_optrjXfunctionX+celery.concurrency.processes.pool.Pool.joinrjXmethodXcelery.utils.truncate_textrjXfunctionX4celery.concurrency.processes.pool.Pool.ResultHandlerrjXclassX5celery.backends.base.BaseDictBackend.get_taskset_metarjXmethodX celery.db.session.create_sessionrj XfunctionX celery.registry.TaskRegistry.poprj)XmethodX*celery.concurrency.processes.pool.Pool.maprjXmethodX+celery.worker.control.builtins.dump_revokedrhXfunctionX#celery.datastructures.AttributeDictrjpXclassX'celery.exceptions.SoftTimeLimitExceededrjX exceptionX celery.utils.term.colored.igreenrjXmethodX!celery.task.PeriodicTask.relativerjX attributeX#celery.bin.camqadm.AMQShell.counterrjX attributeXcelery.exceptions.NotConfiguredrjX exceptionX queue.declarerh XmethodrX,celery.worker.control.builtins.dump_reservedrhXfunctionXcelery.schedules.schedulerj!XclassX/celery.concurrency.threads.TaskPool.apply_asyncrjXmethodX'celery.utils.compat.chain_from_iterablerjXfunctionX celery.backends.base.BaseBackendrjXclassXcelery.conf.CELERYMON_LOG_FILErjCXdataXcelery.result.EagerResult.staterj(X attributeXcelery.db.modelsrj$jXcelery.routes.Router.add_queuer jXmethodXcelery.task.Task.max_retriesr jX attributeX4celery.apps.worker.Worker.WorkController.send_eventsr jX attributeX-celery.worker.control.builtins.disable_eventsr hXfunctionX#celery.events.EventDispatcher.closer jXmethodX2celery.concurrency.processes.TaskPool.Pool.ProcessrjXclassXcelery.contrib.abortablerjjXcelery.utils.is_iterablerjXfunctionX-celery.backends.base.BaseBackend.save_tasksetrjXmethodX'celery.bin.celeryctl.result.option_listrjX attributeX%celery.worker.job.TaskRequest.revokedrhXmethodXcelery.executerjjX&celery.apps.worker.Worker.startup_inforjXmethodX7celery.concurrency.processes.pool.Pool.TaskHandler.bodyrjXmethodX(celery.worker.job.TaskRequest.email_bodyrhX attributeXcelery.bin.celeryd_multi.sayrjXfunctionX@celery.backends.mongodb.MongoBackend.mongodb_taskmeta_collectionrjX attributeX'celery.worker.job.TaskRequest.shortinforhXmethodX%celery.apps.beat.Beat.start_schedulerrj2XmethodX celery.task.HttpDispatchTask.urlrjX attributeXcelery.backendsrjUjXcelery.task.Task.delivery_moderjX attributeX*celery.backends.pyredis.RedisBackend.closerjXmethodX)celery.bin.celeryd_multi.MultiTool.expandr jXmethodX(celery.conf.STORE_ERRORS_EVEN_IF_IGNOREDr!jCXdataX.celery.loaders.base.BaseLoader.import_from_cwdr"jHXmethodX0celery.worker.job.WorkerTaskTrace.handle_failurer#hXmethodX%celery.worker.buckets.FastQueue.clearr$jXmethodX celery.exceptions.RetryTaskErrorr%jX exceptionX(celery.utils.compat.OrderedDict.fromkeysr&jX classmethodXcelery.decorators.periodic_taskr'j*XfunctionX!celery.task.http.HttpDispatchTaskr(hkXclassXcelery.task.base.Taskr)j^Xclassr*Xcelery.events.Eventr+jXfunctionX<celery.concurrency.processes.pool.Pool.SoftTimeLimitExceededr,jX exceptionX#celery.apps.beat.Beat.setup_loggingr-j2XmethodX"celery.utils.term.colored.no_colorr.jXmethodX$celery.events.dumper.Dumper.on_eventr/jXmethodX$celery.worker.control.builtins.statsr0hXfunctionX%celery.utils.timer2.Timer.apply_afterr1h#XmethodX'celery.datastructures.LimitedSet.updater2jpXmethodXcelery.platforms.parse_uidr3h,XfunctionX&celery.datastructures.LimitedSet.clearr4jpXmethodX celery.bin.celeryctl.inspect.runr5jXmethodX$celery.events.state.State.task_countr6hX attributeX$celery.task.sets.subtask.apply_asyncr7juXmethodX&celery.backends.cache.CacheBackend.getr8j XmethodXcelery.task.base.Task.namer9j^X attributer:Xcelery.bin.celeryctl.result.runr;jXmethodX%celery.apps.worker.Worker.init_loaderr<jXmethodXcelery.task.base.Task.runr=j^Xmethodr>X#celery.events.EventReceiver.processr?jXmethodXcelery.task.Task.mandatoryr@jX attributeX$celery.result.BaseAsyncResult.failedrAj(XmethodX'celery.apps.beat.Beat.Service.schedulerrBj2X attributeXcelery.backends.tyrantrCjzjX:celery.utils.dispatch.saferef.BoundMethodWeakref.weak_selfrDjX attributeX1celery.backends.base.BaseDictBackend.store_resultrEjXmethodX0celery.concurrency.processes.TaskPool.Pool.applyrFjXmethodX(celery.bin.celeryctl.Command.option_listrGjX attributeX0celery.messaging.BroadcastConsumer.exchange_typerHjX attributeX'celery.bin.camqadm.format_declare_queuerIjXfunctionX,celery.messaging.ControlReplyConsumer.no_ackrJjX attributeXcelery.log.LoggingProxyrKhXclassX(celery.messaging.BroadcastConsumer.queuerLjX attributeXcelery.events.state.TaskrMhXclassXAcelery.bin.celeryd_multi.NamespacedOptionParser.process_short_optrNjXmethodX!celery.result.TaskSetResult.readyrOj(XmethodX5celery.concurrency.processes.pool.Pool.imap_unorderedrPjXmethodX1celery.backends.mongodb.MongoBackend.mongodb_portrQjX attributeX1celery.apps.worker.Worker.WorkController.loglevelrRjX attributeXcelery.conf.ADMINSrSjCXdataXcelery.schedules.crontab.hourrTj!X attributeX.celery.messaging.BroadcastConsumer.auto_deleterUjX attributeX4celery.worker.listener.CarrotListener.apply_eta_taskrVhXmethodXcelery.bin.camqadm.camqadmrWjXfunctionXcelery.platforms.strargvrXh,XfunctionXcelery.task.sets.subtask.delayrYjuXmethodX+celery.concurrency.processes.TaskPool.limitrZjX attributeX%celery.apps.worker.Worker.worker_initr[jXmethodXcelery.bin.celeryctlr\jjX#celery.result.BaseAsyncResult.stater]j(X attributeX,celery.events.cursesmon.CursesMonitor.keymapr^jX attributeXcelery.beat.Scheduler.scheduler_jX attributeX;celery.apps.worker.Worker.WorkController.embed_clockservicer`jX attributeXcelery.utils.instantiaterajXfunctionX*celery.concurrency.processes.TaskPool.stoprbjXmethodX%celery.task.http.HttpDispatchTask.urlrchkX attributeX celery.task.base.Task.rate_limitrdj^X attributereX celery.bin.camqadm.AMQShell.connrfjX attributeX4celery.backends.base.BaseDictBackend.restore_tasksetrgjXmethodX*celery.bin.celeryd_multi.MultiTool.retcoderhjX attributeX(celery.apps.worker.Worker.WorkControllerrijXclassX2celery.backends.amqp.ResultPublisher.delivery_moderjj_X attributeX Task.exchangerkhPX attributerlX%celery.events.state.Task.on_succeededrmhXmethodXcelery.utils.infornj?jX#celery.bin.camqadm.AMQShell.do_helprojXmethodX!celery.utils.info.get_broker_inforpj?XfunctionX3celery.messaging.ControlReplyConsumer.exchange_typerqjX attributeX:celery.utils.dispatch.saferef.BoundMethodWeakref.weak_funcrrjX attributeXcelery.conf.BROADCAST_EXCHANGErsjCXdataX$celery.execute.trace.TraceInfo.tracerthX classmethodX:celery.events.cursesmon.CursesMonitor.selection_rate_limitrujXmethodX celery.bin.camqadm.AMQShell.amqprvjX attributeXcelery.task.setsrwjujX+celery.events.cursesmon.CursesMonitor.limitrxjX attributeX$celery.bin.celeryctl.inspect.choicesryjX attributeX)celery.backends.amqp.AMQPBackend.wait_forrzj_XmethodX+celery.datastructures.TokenBucket.timestampr{jpX attributeX3celery.messaging.BroadcastConsumer.verify_exclusiver|jXmethodXcelery.task.TaskSet.applyr}jXmethodXcelery.task.base.Task.abstractr~j^X attributerXcelery.beat.Scheduler.closerjXmethodXcelery.conf.EVENT_QUEUErjCXdataXcelery.beat.Scheduler.send_taskrjXmethodXcelery.conf.TASK_RESULT_EXPIRESrjCXdataX"celery.result.TaskSetResult.failedrj(XmethodX)celery.events.state.State.tasks_by_workerrhXmethodX-celery.loaders.base.BaseLoader.on_worker_initrjHXmethodX(celery.result.TaskSetResult.itersubtasksrj(XmethodXcelery.worker.controlrj;jX+celery.worker.job.TaskRequest.delivery_inforhX attributeX.celery.events.snapshot.Polaroid.shutter_signalrhGX attributeX0celery.worker.job.TaskRequest.execute_using_poolrhXmethodX%celery.beat.ScheduleEntry.last_run_atrjX attributeXcelery.backends.pyredisrjjX,celery.concurrency.threads.TaskPool.on_readyrjXmethodX$celery.result.EagerResult.successfulrj(XmethodX*celery.task.builtins.ExecuteRemoteTask.runrjQXmethodXcelery.db.models.Taskrj$XclassX%celery.platforms.DaemonContext.detachrh,XmethodX'celery.conf.EAGER_PROPAGATES_EXCEPTIONSrjCXdataX7celery.events.cursesmon.CursesMonitor.selected_positionrjX attributeX7celery.concurrency.processes.pool.Pool.Process.is_aliverjXmethodX+celery.events.cursesmon.CursesMonitor.tasksrjX attributeX<celery.serialization.UnpickleableExceptionWrapper.exc_modulerjX attributeXcelery.events.snapshot.PolaroidrhGXclassX3celery.apps.worker.install_worker_int_again_handlerrjXfunctionX.celery.apps.worker.install_worker_term_handlerrjXfunctionX%celery.backends.amqp.AMQResultWarningrj_X exceptionXcelery.task.http.utf8dictrhkXfunctionX.celery.messaging.ControlReplyPublisher.durablerjX attributeX!celery.task.builtins.PingTask.runrjQXmethodX%celery.bin.base.Command.create_parserrjXmethodXcelery.task.Task.immediaterjX attributeX'celery.routes.Router.expand_destinationrjXmethodXcelery.apps.workerrjjX0celery.loaders.default.Loader.read_configurationrjcXmethodX2celery.apps.worker.Worker.WorkController.terminaterjXmethodXcelery.exceptions.TimeoutErrorrjX exceptionX%celery.task.Task.disable_error_emailsrjX attributeX$celery.worker.control.registry.PanelrjXclassX$celery.worker.buckets.TaskBucket.getrjXmethodX.celery.utils.dispatch.signal.Signal.disconnectrjXmethodX!celery.utils.timer2.Timer.runningrh#X attributeX#celery.bin.celeryd_multi.multi_argsrjXfunctionXcelery.conf.QUEUESrjCXdataX(celery.messaging.BroadcastPublisher.sendrjXmethodX"celery.messaging.BroadcastConsumerrjXclassX!celery.task.base.Task.routing_keyrj^X attributerXTask.routing_keyrhPX attributerX"celery.apps.beat.Beat.startup_inforj2XmethodXcelery.utils.mpromise.evaluatedrjX attributeXcelery.signals.worker_initrhXdataX*celery.worker.listener.CarrotListener.stoprhXmethodX#celery.bin.base.Command.option_listrjX attributeX5celery.concurrency.processes.pool.Pool.Process.daemonrjX attributeXcelery.backends.cassandrarjhjX+celery.apps.beat.Beat.Service.get_schedulerrj2XmethodX!celery.worker.WorkController.poolrhX attributeX0celery.events.cursesmon.CursesMonitor.foregroundrjX attributeXcelery.task.sets.subtaskrjuXclassX"celery.task.control.inspect.activerjLXmethodX,celery.apps.worker.Worker.set_process_statusrjXmethodX1celery.worker.buckets.TokenBucketQueue.put_nowaitrjXmethodXcelery.events.state.Task.readyrhX attributeX(celery.utils.dispatch.signal.Signal.sendrjXmethodXcelery.task.Task.queuerjX attributeX#celery.task.base.Task.exchange_typerj^X attributerX;celery.bin.celeryd_multi.MultiTool.execute_from_commandlinerjXmethodX9celery.concurrency.processes.TaskPool.Pool.Process.daemonrjX attributeX4celery.backends.pyredis.RedisBackend.process_cleanuprjXmethodXcelery.worker.state.PersistentrjXclassX-celery.apps.worker.Worker.WorkController.stoprjXmethodX.celery.messaging.ControlReplyConsumer.exchangerjX attributeX celery.utils.timeutils.remainingrjXfunctionX4celery.backends.base.BaseBackend.exception_to_pythonrjXmethodX"celery.backends.cache.CacheBackendrj XclassX+celery.beat.PersistentScheduler.persistencerjX attributeX'celery.utils.timer2.TimedFunctionFailedrh#X exceptionX$celery.result.TaskSetResult.subtasksrj(X attributeX!celery.result.AsyncResult.task_idrj(X attributeX"celery.utils.timer2.Schedule.enterrh#XmethodX2celery.events.cursesmon.CursesMonitor.screen_delayrjX attributeX0celery.events.cursesmon.CursesMonitor.backgroundrjX attributeX-celery.messaging.ControlReplyConsumer.collectrjXmethodXcelery.log.LoggingProxy.isattyrhXmethodX5celery.events.cursesmon.CursesMonitor.handle_keypressrjXmethodX%celery.bin.base.Command.parse_optionsrjXmethodX*celery.concurrency.processes.TaskPool.inforjX attributeXcelery.task.Task.exchange_typerjX attributeXcelery.bin.celerydrjjX(celery.worker.buckets.TaskBucket.refreshrjXmethodX%celery.worker.listener.CarrotListenerrhXclassX*celery.events.snapshot.Polaroid.on_shutterrhGXmethodX)celery.conf.BROKER_CONNECTION_MAX_RETRIESrjCXdataXcelery.task.base.Task.on_retryrj^XmethodrXcelery.task.base.Task.applyrj^X classmethodrXcelery.task.Task.exchangerjX attributeX6celery.serialization.find_nearest_pickleable_exceptionrjXfunctionXcelery.utils.term.colored.boldrjXmethodX+celery.events.cursesmon.CursesMonitor.alertrjXmethodX0celery.backends.tyrant.TyrantBackend.tyrant_hostrjzX attributeXcelery.db.models.Task.to_dictrj$XmethodX)celery.task.builtins.backend_cleanup.namerjQX attributeX3celery.events.cursesmon.CursesMonitor.display_widthrjX attributeX&celery.utils.compat.OrderedDict.valuesrjXmethodX)celery.concurrency.threads.TaskPool.startrjXmethodX!celery.conf.DEFAULT_EXCHANGE_TYPErjCXdataXcelery.db.models.TaskSet.resultrj$X attributeX0celery.worker.WorkController.schedule_controllerrhX attributeX+celery.worker.WorkController.on_timer_errorrhXmethodX3celery.backends.amqp.AMQPBackend.reload_task_resultrj_XmethodX%celery.messaging.EventConsumer.no_ackrjX attributeX9celery.events.cursesmon.CursesMonitor.move_selection_downrjXmethodXcelery.task.base.Task.mandatoryrj^X attributerX-celery.backends.base.BaseBackend.READY_STATESrjX attributeX$celery.schedules.crontab.day_of_weekrj!X attributeX+celery.worker.control.ControlDispatch.Panelrj;XclassXcelery.db.models.TaskSetrj$XclassXcelery.result.BaseAsyncResultrj(XclassX%celery.utils.timer2.Timer.enter_afterrh#XmethodX&celery.worker.job.AlreadyExecutedErrorrhX exceptionX+celery.backends.tyrant.TyrantBackend.deleterjzXmethodX9celery.concurrency.processes.TaskPool.safe_apply_callbackr jXmethodXcelery.bin.celeryevr j-jXcelery.backends.mongodb.Bunchr jXclassXcelery.worker.buckets.FastQueuer jXclassX1celery.events.cursesmon.CursesMonitor.resetscreenr jXmethodX7celery.events.cursesmon.CursesMonitor.move_selection_upr jXmethodXcelery.bin.celeryctl.indentr jXfunctionX-celery.backends.amqp.AMQPBackend.store_resultr j_XmethodX'celery.worker.job.TaskRequest.retry_msgr hX attributeX+celery.messaging.BroadcastPublisher.ReplyTor jX attributeX$celery.worker.WorkController.logfiler hX attributeX#celery.result.BaseAsyncResult.readyr j(XmethodX0celery.task.base.PeriodicTask.remaining_estimater j^Xmethodr Xcelery.worker.heartbeatr jjXcelery.utils.term.colored.resetr jXmethodX*celery.datastructures.TokenBucket.capacityr jpX attributeX$celery.backends.base.BaseDictBackendr jXclassXcelery.worker.state.task_readyr jXfunctionXcelery.task.base.TaskTyper j^Xclassr X!celery.worker.listener.QoS.updater hXmethodX'celery.backends.cache.get_best_memcacher j XfunctionXcelery.worker.controllersr jjX(celery.result.BaseAsyncResult.successfulr j(XmethodXcelery.utils.chunksr jXfunctionX0celery.events.cursesmon.CursesMonitor.format_rowr jXmethodX&celery.datastructures.LimitedSet.firstr jpX attributeXcelery.schedules.crontab.is_duer j!XmethodX%celery.messaging.establish_connectionr jXfunctionX4celery.backends.tyrant.TyrantBackend.process_cleanupr jzXmethodX*celery.utils.compat.OrderedDict.setdefaultr jXmethodX(celery.bin.celeryd_multi.MultiTool.namesr jXmethodXcelery.utils.timer2r! h#jX1celery.backends.mongodb.MongoBackend.mongodb_hostr" jX attributeX#celery.bin.camqadm.AMQShell.defaultr# jXmethodXcelery.conf.CELERYMON_LOG_LEVELr$ jCXdataX'celery.worker.buckets.RateLimitExceededr% jX exceptionXcelery.apps.worker.Worker.runr& jXmethodXcelery.task.execute_remoter' jXfunctionX-celery.apps.worker.install_worker_int_handlerr( jXfunctionX/celery.bin.celeryd_multi.NamespacedOptionParserr) jXclassX*celery.worker.buckets.TokenBucketQueue.getr* jXmethodX2celery.backends.pyredis.RedisBackend.redis_timeoutr+ jX attributeX1celery.worker.listener.CarrotListener.send_eventsr, hX attributeXcelery.task.base.PeriodicTaskr- j^Xclassr. X6celery.concurrency.processes.TaskPool.Pool.TaskHandlerr/ jXclassX6celery.backends.base.BaseBackend.reload_taskset_resultr0 jXmethodX celery.utils.timer2.Entry.cancelr1 h#XmethodXcelery.utils.abbrtaskr2 jXfunctionXcelery.task.base.Task.backendr3 j^X attributer4 Xcelery.bin.celeryctl.helpr5 jXclassXcelery.conf.RESULT_BACKENDr6 jCXdataX/celery.messaging.BroadcastPublisher.auto_deleter7 jX attributeX.celery.events.cursesmon.CursesMonitor.keyaliasr8 jX attributeX!celery.bin.celeryctl.Command.argsr9 jX attributeX$celery.events.EventDispatcher.enabler: jXmethodX'celery.utils.compat.OrderedDict.popitemr; jXmethodX0celery.backends.base.BaseBackend.mark_as_revokedr< jXmethodX*celery.worker.job.TaskRequest.from_messager= hX classmethodX/celery.backends.base.BaseBackend.UNREADY_STATESr> jX attributeX#celery.worker.state.Persistent.syncr? jXmethodXcelery.conf.TASK_SERIALIZERr@ jCXdataX"celery.utils.timer2.Schedule.queuerA h#X attributeX(celery.bin.celeryd_multi.MultiTool.errorrB jXmethodX-celery.worker.buckets.FastQueue.expected_timerC jXmethodXcelery.bin.camqadm.AMQPAdminrD jXclassX4celery.apps.worker.Worker.redirect_stdouts_to_loggerrE jXmethodX%celery.events.cursesmon.DisplayThreadrF jXclassX celery.worker.buckets.TaskBucketrG jXclassX)celery.messaging.TaskPublisher.delay_taskrH jXmethodX8celery.concurrency.processes.pool.Pool.Process.terminaterI jXmethodXcelery.task.http.URL.get_asyncrJ hkXmethodX'celery.worker.controllers.Mediator.stoprK jXmethodX(celery.backends.cache.DummyClient.deleterL j XmethodXcelery.events.state.StaterM hXclassX=celery.utils.dispatch.saferef.BoundNonDescriptorMethodWeakrefrN jXclassXcelery.loaders.current_loaderrO jXfunctionXcelery.bin.celeryctl.commandrP jXfunctionX%celery.events.snapshot.Polaroid.debugrQ hGXmethodXcelery.beat.Scheduler.maybe_duerR jXmethodX%celery.worker.job.TaskRequest.messagerS hX attributeX queue.deleterT h XmethodrU X!celery.worker.heartbeat.Heart.bpmrV jX attributeX.celery.backends.base.BaseBackend.get_tracebackrW jXmethodXcelery.events.staterX hjX*celery.bin.celeryd_multi.MultiTool.restartrY jXmethodX/celery.messaging.ControlReplyConsumer.exclusiverZ jX attributeXcelery.log.setup_task_loggerr[ hXfunctionXcelery.conf.IGNORE_RESULTr\ jCXdataX*celery.concurrency.processes.TaskPool.Poolr] jXclassX$celery.platforms.DaemonContext.closer^ h,XmethodX1celery.concurrency.processes.pool.Pool.Supervisorr_ jXclassX-celery.apps.worker.Worker.WorkController.poolr` jX attributeX celery.taskra jjXcelery.events.state.State.eventrb hXmethodX7celery.apps.worker.Worker.WorkController.on_timer_errorrc jXmethodX4celery.worker.buckets.TaskBucket.add_bucket_for_typerd jXmethodX*celery.messaging.EventPublisher.serializerre jX attributeXcelery.db.session.get_enginerf j XfunctionXcelery.conf.CELERYD_LOG_FILErg jCXdataXcelery.db.models.Task.statusrh j$X attributeXcelery.utils.timeutilsri jjXcelery.utils.timer2.Timer.stoprj h#XmethodXcelery.platforms.parse_gidrk h,XfunctionXcelery.result.EagerResult.waitrl j(XmethodX0celery.backends.amqp.ResultPublisher.auto_deleterm j_X attributeX6celery.events.cursesmon.CursesMonitor.selection_resultrn jXmethodX0celery.bin.camqadm.AMQShell.get_amqp_api_commandro jXmethodX:celery.backends.base.BaseDictBackend.reload_taskset_resultrp jXmethodXcelery.beat.Service.stoprq jXmethodX(celery.worker.control.builtins.heartbeatrr hXfunctionX"celery.bin.celeryctl.Command.usagers jXmethodX celery.utils.term.colored.iwhitert jXmethodX9celery.serialization.UnpickleableExceptionWrapper.restoreru jXmethodXcelery.platforms.DaemonContextrv h,XclassX,celery.worker.buckets.TokenBucketQueue.emptyrw jXmethodX#celery.bin.camqadm.AMQShell.do_exitrx jXmethodX:celery.serialization.UnpickleableExceptionWrapper.exc_argsry jX attributeX%celery.utils.compat.OrderedDict.itemsrz jXmethodXcelery.events.state.Elementr{ hXclassXcelery.task.Task.autoregisterr| jX attributeX(celery.worker.WorkController.send_eventsr} hX attributeX celery.beatr~ jjXcelery.beat.SchedulingErrorr jX exceptionXcelery.beat.Service.schedulerr jX attributeXTask.immediater hPX attributer Xcelery.utils.repeatlastr jXfunctionX,celery.loaders.default.Loader.on_worker_initr jcXmethodX)celery.loaders.base.BaseLoader.configuredr jHX attributeX%celery.worker.WorkController.mediatorr hX attributeX@celery.events.cursesmon.CursesMonitor.alert_remote_control_replyr jXmethodXcelery.apps.beat.Beat.runr j2XmethodX$celery.messaging.EventConsumer.queuer jX attributeXcelery.task.control.revoker jLXfunctionX*celery.loaders.base.BaseLoader.mail_adminsr jHXmethodX#celery.messaging.TaskConsumer.queuer jX attributeXcelery.schedules.crontab.minuter j!X attributeXcelery.platforms.seteuidr h,XfunctionXcelery.beat.Scheduler.loggerr jX attributeX4celery.backends.mongodb.MongoBackend.process_cleanupr jXmethodX"celery.task.sets.TaskSet.task_namer juX attributeX1celery.contrib.abortable.AbortableTask.is_abortedr jXmethodXcelery.task.TaskSet.totalr jX attributeX%celery.task.Task.establish_connectionr jX classmethodX(celery.worker.job.TaskRequest.time_startr hX attributeXcelery.task.TaskSet.taskr jX attributeXTask.send_error_emailsr hPX attributer Xcelery.decorators.taskr j*XfunctionXcelery.task.Task.applyr jX classmethodX)celery.events.cursesmon.CursesMonitor.winr jX attributeXcelery.loaders.get_loader_clsr jXfunctionX-celery.messaging.EventPublisher.delivery_moder jX attributeX&celery.worker.buckets.TokenBucketQueuer jXclassX'celery.serialization.subclass_exceptionr jXfunctionX)celery.backends.cache.CacheBackend.clientr j X attributeX%celery.platforms.set_mp_process_titler h,XfunctionXcelery.utils.term.colored.blinkr jXmethodXcelery.utils.timer2.Timer.queuer h#X attributeXcelery.utils.dispatchr jjXcelery.bin.celeryctl.apply.argsr jX attributeX&celery.platforms.create_daemon_contextr h,XfunctionXcelery.utils.mpromise.evaluater jXmethodX2celery.execute.trace.TaskTrace.handle_after_returnr hXmethodX$celery.backends.mongodb.MongoBackendr jXclassXcelery.conf.ALWAYS_EAGERr jCXdataX(celery.task.Task.MaxRetriesExceededErrorr jX exceptionXcelery.worker.control.registryr jjX#celery.worker.state.Persistent.openr jXmethodX:celery.concurrency.processes.TaskPool.Pool.Process.authkeyr jX attributeXcelery.conf.RESULT_EXCHANGEr jCXdataX!celery.routes.Router.lookup_router jXmethodX2celery.backends.base.BaseDictBackend.get_tracebackr jXmethodX#celery.conf.BROADCAST_EXCHANGE_TYPEr jCXdataXcelery.task.builtinsr jQjX3celery.backends.base.BaseBackend.reload_task_resultr jXmethodX0celery.events.cursesmon.CursesMonitor.help_titler jX attributeXcelery.beat.ScheduleEntryr jXclassX"celery.platforms.PIDFile.is_lockedr h,XmethodX(celery.backends.tyrant.TyrantBackend.getr jzXmethodXcelery.utils.maybe_iso8601r jXfunctionXcelery.execute.apply_asyncr jXfunctionX,celery.messaging.BroadcastPublisher.exchanger jX attributeX)celery.bin.camqadm.AMQShell.completenamesr jXmethodX%celery.utils.timer2.Schedule.on_errorr h#X attributeXcelery.signals.worker_shutdownr hXdataX&celery.exceptions.ImproperlyConfiguredr jX exceptionX'celery.messaging.EventPublisher.durabler jX attributeXcelery.beat.ScheduleEntry.namer jX attributeXcelery.apps.worker.Worker.dier jXmethodXcelery.task.dmapr jXfunctionXcelery.task.control.discard_allr jLXfunctionX$celery.worker.buckets.TaskBucket.putr jXmethodX&celery.worker.buckets.TaskBucket.itemsr jX attributeXState.freeze_whiler jXmethodr XTask.ignore_resultr hPX attributer X$celery.bin.celeryctl.Command.versionr jX attributeXcelery.db.models.Task.task_idr j$X attributeXcelery.loaders.setup_loaderr jXfunctionX celery.db.models.TaskSet.to_dictr j$XmethodX$celery.result.BaseAsyncResult.revoker j(XmethodX*celery.worker.listener.CarrotListener.infor hX attributeX1celery.apps.worker.Worker.install_platform_tweaksr jXmethodX'celery.bin.celeryctl.celeryctl.commandsr jX attributeX'celery.backends.get_default_backend_clsr jUXdataXcelery.task.http.MutableURLr hkXclassXcelery.execute.trace.TraceInfor hXclassX.celery.events.cursesmon.CursesMonitor.readliner jXmethodXcelery.task.Task.AsyncResultr jX classmethodXcelery.task.Task.namer jX attributeXcelery.bin.camqadm.mainr jXfunctionXcelery.bin.base.Command.versionr jX attributeX/celery.messaging.ControlReplyPublisher.exchanger jX attributeXcelery.utils.fun_takes_kwargsr jXfunctionXcelery.log.LoggingProxy.writer hXmethodX4celery.concurrency.processes.pool.Pool.Process.startr jXmethodX,celery.worker.buckets.TokenBucketQueue.itemsr jX attributeX*celery.serialization.get_pickled_exceptionr jXfunctionX-celery.contrib.abortable.AbortableAsyncResultr jXclassXcelery.utils.get_full_cls_namer jXfunctionX+celery.messaging.BroadcastPublisher.durabler jX attributeX*celery.worker.WorkController.on_timer_tickr hXmethodX celery.utilsr jjXcelery.loaders.load_settingsr jXfunctionX#celery.task.base.Task.delivery_moder j^X attributer X#celery.conf.BROKER_CONNECTION_RETRYr jCXdataXcelery.task.Task.expiresr jX attributeX'celery.bin.camqadm.Spec.format_responser jXmethodXcelery.bin.base.Commandr jXclassXcelery.utils.mail.mail_adminsr hXfunctionXcelery.bin.celeryctl.help.runr jXmethodX6celery.worker.listener.CarrotListener.maybe_conn_errorr hXmethodX&celery.bin.celeryctl.apply.option_listr jX attributeX(celery.task.builtins.AsynchronousMapTaskr jQXclassXcelery.exceptions.QueueNotFoundr jX exceptionX'celery.platforms.install_signal_handlerr h,XfunctionX4celery.worker.control.ControlDispatch.Panel.registerr j;X classmethodX%celery.bin.celeryctl.Command.prettifyr jXmethodX%celery.task.http.HttpDispatchTask.runr hkXmethodXcelery.task.base.Task.subtaskr j^X classmethodr Xcelery.db.sessionr j jX0celery.utils.dispatch.saferef.BoundMethodWeakrefr jXclassX8celery.worker.job.TaskRequest.extend_with_default_kwargsr hXmethodX!celery.conf.DEFAULT_DELIVERY_MODEr jCXdataXcelery.task.TaskSet.Publisherr jX attributeX celery.bin.celeryctl.Command.runr jXmethodX-celery.backends.base.BaseBackend.TimeoutErrorr jX exceptionX%celery.registry.TaskRegistry.periodicr j)XmethodX$celery.task.Task.default_retry_delayr jX attributeX*celery.worker.control.builtins.dump_activer hXfunctionX-celery.task.base.Task.MaxRetriesExceededErrorr j^X exceptionr X#celery.loaders.base.BaseLoader.confr jHX attributeX$celery.utils.timer2.Timer.exit_afterr h#XmethodX6celery.concurrency.processes.pool.Pool.Supervisor.bodyr jXmethodXcelery.task.http.maybe_utf8r hkXfunctionX%celery.events.state.Worker.on_offliner hXmethodX-celery.backends.amqp.ResultPublisher.exchanger j_X attributeXcelery.task.base.Task.acks_later j^X attributer X.celery.concurrency.processes.TaskPool.on_readyr jXmethodX(celery.task.control.inspect.add_consumerr jLXmethodX&celery.worker.job.TaskRequest.executedr hX attributeX-celery.messaging.ControlReplyConsumer.durabler jX attributeX!celery.task.control.flatten_replyr jLXfunctionX+celery.worker.buckets.TaskBucket.get_nowaitr jXmethodX celery.task.base.Task.on_failurer j^Xmethodr X1celery.loaders.base.BaseLoader.import_task_moduler jHXmethodX'celery.worker.control.builtins.shutdownr hXfunctionXcelery.task.base.Task.expiresr j^X attributer Xcelery.task.Task.priorityr jX attributeXcelery.concurrency.processesr jjX*celery.worker.job.TaskRequest.maybe_expirer hXmethodX+celery.worker.controllers.Mediator.callbackr jX attributeX!celery.backends.cache.DummyClientr j XclassX1celery.worker.listener.CarrotListener.ready_queuer hX attributeXcelery.utils.get_cls_by_namer jXfunctionX9celery.concurrency.processes.pool.Pool.ResultHandler.bodyr jXmethodX Task.backendr! hPX attributer" X&celery.result.EagerResult.TimeoutErrorr# j(X exceptionX)celery.worker.job.TaskRequest.on_acceptedr$ hXmethodX celery.result.TaskSetResult.saver% j(XmethodXcelery.serializationr& jjX+celery.result.TaskSetResult.completed_countr' j(XmethodX>celery.serialization.UnpickleableExceptionWrapper.exc_cls_namer( jX attributeXcelery.platforms.LockFailedr) h,X exceptionXcelery.log.emergency_errorr* hXfunctionX%celery.schedules.crontab_parser.parser+ j!XmethodX celery.conf.CELERYBEAT_LOG_LEVELr, jCXdataX(celery.task.http.HttpDispatch.user_agentr- hkX attributeXcelery.conf.CELERYD_LISTENERr. jCXdataX$celery.worker.state.Persistent.merger/ jXmethodX$celery.messaging.extract_msg_optionsr0 jXfunctionX,celery.backends.cassandra.CassandraBackend.ir1 jhX attributeX'celery.task.base.PeriodicTask.run_everyr2 j^X attributer3 X4celery.apps.worker.install_HUP_not_supported_handlerr4 jXfunctionXcelery.conf.MAIL_HOST_USERr5 jCXdataX#celery.events.state.Task.on_startedr6 hXmethodX"celery.worker.controllers.Mediatorr7 jXclassX+celery.messaging.EventPublisher.auto_deleter8 jX attributeX6celery.concurrency.processes.TaskPool.Pool.Process.pidr9 jX attributeXcelery.utils.term.colored.bluer: jXmethodXcelery.task.Task.on_retryr; jXmethodXcelery.platforms.PIDFile.remover< h,XmethodX,celery.worker.buckets.TokenBucketQueue.clearr= jXmethodX celery.schedules.schedule.is_duer> j!XmethodXcelery.task.Task.apply_asyncr? jX classmethodXcelery.routes.merger@ jXfunctionXcelery.bin.celerybeat.mainrA jXfunctionX'celery.bin.celeryd_multi.MultiTool.killrB jXmethodX:celery.concurrency.processes.pool.Pool.TimeoutHandler.bodyrC jXmethodX,celery.concurrency.processes.pool.Pool.applyrD jXmethodX"celery.task.base.Task.update_staterE j^XmethodrF X$celery.beat.Scheduler.setup_schedulerG jXmethodXcelery.backends.baserH jjX1celery.bin.celeryd_multi.MultiTool.shutdown_nodesrI jXmethodXcelery.exceptions.NotRegisteredrJ jX exceptionXcelery.bin.celeryctl.celeryctlrK jXclassX/celery.backends.base.BaseDictBackend.get_resultrL jXmethodX!celery.bin.celerybeat.BeatCommandrM jXclassXcelery.platforms.setegidrN h,XfunctionXcelery.task.Task.serializerrO jX attributeXcelery.task.Task.acks_laterP jX attributeX%celery.worker.control.builtins.revokerQ hXfunctionX*celery.bin.camqadm.Spec.str_args_to_pythonrR jXmethodX.celery.bin.celeryd_multi.MultiTool.signal_noderS jXmethodX"celery.bin.celeryd_multi.MultiToolrT jXclassX%celery.worker.control.ControlDispatchrU j;XclassXcelery.schedules.maybe_schedulerV j!XfunctionX/celery.concurrency.processes.TaskPool.Pool.joinrW jXmethodX#celery.beat.Scheduler.merge_inplacerX jXmethodXcelery.bin.celeryd_multirY jjX(celery.backends.database.DatabaseBackendrZ jMXclassX&celery.contrib.abortable.AbortableTaskr[ jXclassX*celery.task.http.HttpDispatch.make_requestr\ hkXmethodX%celery.bin.celerybeat.BeatCommand.runr] jXmethodX$celery.worker.job.TaskRequest.kwargsr^ hX attributeX4celery.concurrency.processes.pool.Pool.Process.identr_ jX attributeX(celery.backends.tyrant.TyrantBackend.setr` jzXmethodXcelery.task.base.Task.delayra j^X classmethodrb Xcelery.beat.Scheduler.reserverc jXmethodX.celery.concurrency.processes.pool.Pool.Processrd jXclassXcelery.log.SilenceRepeatedre hXclassX#celery.apps.beat.Beat.Service.startrf j2XmethodX&celery.task.http.HttpDispatch.dispatchrg hkXmethodX(celery.bin.celeryctl.inspect.option_listrh jX attributeX celery.workerri hjX)celery.utils.compat.OrderedDict.iteritemsrj jXmethodX(celery.conf.CELERYBEAT_SCHEDULE_FILENAMErk jCXdataX*celery.task.control.inspect.disable_eventsrl jLXmethodX'celery.bin.celeryd_multi.MultiTool.showrm jXmethodX+celery.events.cursesmon.CursesMonitor.greetrn jX attributeX celery.result.TaskSetResult.joinro j(XmethodXcelery.worker.jobrp hjX5celery.loaders.base.BaseLoader.import_default_modulesrq jHXmethodX$celery.task.builtins.backend_cleanuprr jQXclassX+celery.concurrency.processes.TaskPool.startrs jXmethodX!celery.beat.Service.scheduler_clsrt jX attributeX(celery.backends.amqp.AMQPBackend.consumeru j_XmethodX!celery.platforms.PIDFile.read_pidrv h,XmethodXcelery.utils.term.colored.greenrw jXmethodX-celery.worker.control.registry.Panel.registerrx jX classmethodX"celery.task.PeriodicTask.run_everyry jX attributeXcelery.worker.listener.QoS.nextrz hX attributeX Task.priorityr{ hPX attributer| Xcelery.events.state.Workerr} hXclassXTask.max_retriesr~ hPX attributer X+celery.worker.control.builtins.add_consumerr hXfunctionX#celery.events.EventReceiver.capturer jXmethodX#celery.task.http.UnknownStatusErrorr hkX exceptionX+celery.apps.worker.Worker.on_listener_readyr jXmethodXcelery.conf.CELERYD_CONCURRENCYr jCXdataXcelery.backends.cacher j jX&celery.messaging.ControlReplyPublisherr jXclassXcelery.states.stater h}XclassX celery.task.Task.error_whitelistr jX attributeX4celery.datastructures.PositionQueue.UnfilledPositionr jpXclassX&celery.backends.cache.CacheBackend.setr j XmethodX*celery.loaders.base.BaseLoader.init_workerr jHXmethodXcelery.task.Task.abstractr jX attributeX0celery.concurrency.processes.pool.Pool.terminater jXmethodX$celery.datastructures.LimitedSet.addr jpXmethodX.celery.worker.control.builtins.cancel_consumerr hXfunctionX:celery.concurrency.processes.TaskPool.Pool.Supervisor.bodyr jXmethodX6celery.backends.amqp.AMQPBackend.reload_taskset_resultr j_XmethodXcelery.utils.timeutils.rater jXfunctionX-celery.backends.base.BaseBackend.mark_as_doner jXmethodX#celery.result.TaskSetResult.iterater j(XmethodX%celery.task.http.HttpDispatch.timeoutr hkX attributeXcelery.utils.timer2.Timerr h#XclassX4celery.worker.buckets.TokenBucketQueue.expected_timer jXmethodX+celery.messaging.TaskPublisher.auto_declarer jX attributeX8celery.bin.celeryd_multi.NamespacedOptionParser.optmerger jXmethodX&celery.bin.camqadm.AMQShell.identcharsr jX attributeX-celery.datastructures.ExceptionInfo.tracebackr jpX attributeX$celery.worker.listener.QoS.decrementr hXmethodX!celery.task.http.extract_responser hkXfunctionXcelery.task.httpr hjX!celery.worker.process_initializerr hXfunctionX,celery.schedules.schedule.remaining_estimater j!XmethodXcelery.log.LoggingProxy.flushr hXmethodX1celery.messaging.BroadcastPublisher.exchange_typer jX attributeX*celery.backends.cassandra.CassandraBackendr jhXclassX"celery.result.TaskSetResult.revoker j(XmethodXcelery.worker.state.revokedr jXdataX%celery.concurrency.processes.pingbackr jXfunctionXcelery.backends.mongodbr jjXcelery.task.http.URLr hkXclassX*celery.messaging.EventConsumer.auto_deleter jX attributeX9celery.events.cursesmon.CursesMonitor.selection_tracebackr jXmethodXTask.rate_limitr hPX attributer X celery.bin.celeryctl.inspect.sayr jXmethodX.celery.apps.worker.Worker.WorkController.startr jXmethodX/celery.backends.amqp.ResultConsumer.auto_deleter j_X attributeXcelery.task.discard_allr jXfunctionX#celery.utils.compat.OrderedDict.popr jXmethodXcelery.task.http.HttpDispatchr hkXclassX<celery.concurrency.processes.TaskPool.Pool.Process.terminater jXmethodX*celery.registry.TaskRegistry.NotRegisteredr j)X exceptionX'celery.messaging.EventConsumer.exchanger jX attributeX#celery.datastructures.PositionQueuer jpXclassXcelery.db.models.Task.idr j$X attributeX'celery.bin.camqadm.AMQShell.inc_counterr jX attributeX)celery.messaging.TaskPublisher.serializerr jX attributeXcelery.task.base.Task.executer j^Xmethodr X-celery.backends.base.BaseBackend.store_resultr jXmethodX7celery.worker.buckets.TaskBucket.update_bucket_for_typer jXmethodX)celery.events.cursesmon.CursesMonitor.napr jXmethodX&celery.bin.celeryd_multi.MultiTool.getr jXmethodXcelery.log.ColorFormatterr hXclassX0celery.bin.base.Command.execute_from_commandliner jXmethodXcelery.task.dmap_asyncr jXfunctionXcelery.platforms.create_pidlockr h,XfunctionX*celery.backends.amqp.ResultConsumer.no_ackr j_X attributeX1celery.loaders.base.BaseLoader.worker_initializedr jHX attributeXcelery.utils.info.textindentr j?XfunctionX/celery.utils.dispatch.signal.Signal.send_robustr jXmethodX,celery.worker.control.builtins.enable_eventsr hXfunctionX0celery.datastructures.LimitedSet.chronologicallyr jpX attributeX'celery.events.snapshot.Polaroid.capturer hGXmethodX$celery.result.BaseAsyncResult.statusr j(X attributeX-celery.backends.base.KeyValueStoreBackend.getr jXmethodX%celery.messaging.ControlReplyConsumerr jXclassX'celery.utils.timeutils.delta_resolutionr jXfunctionX!celery.utils.term.colored.magentar jXmethodX8celery.worker.buckets.TokenBucketQueue.RateLimitExceededr jX exceptionXcelery.bin.celeryctl.resultr jXclassX$celery.result.BaseAsyncResult.forgetr j(XmethodX%celery.worker.WorkController.listenerr hX attributeX&celery.utils.compat.OrderedDict.updater jXmethodX,celery.concurrency.processes.TaskPool.loggerr jX attributeX&celery.messaging.EventConsumer.durabler jX attributeX"celery.utils.compat.log_with_extrar jXfunctionXcelery.events.dumperr jjXcelery.loaders.baser jHjX"celery.signals.worker_process_initr hXdataX celery.log.ColorFormatter.formatr hXmethodXcelery.schedules.crontabr j!XclassX!celery.conf.CELERYD_ETA_SCHEDULERr jCXdataX#celery.backends.amqp.ResultConsumerr j_XclassX.celery.utils.patch.ensure_process_aware_loggerr jXfunctionX,celery.messaging.TaskPublisher.exchange_typer jX attributeXcelery.bin.celeryctl.applyr jXclassX)celery.backends.cache.CacheBackend.deleter j XmethodX1celery.loaders.base.BaseLoader.on_process_cleanupr jHXmethodX.celery.events.cursesmon.CursesMonitor.info_strr jX attributeXcelery.bin.celeryctl.mainr jXfunctionXcelery.task.sets.TaskSet.totalr juX attributeXcelery.task.base.Task.exchanger j^X attributer X(celery.worker.WorkController.concurrencyr hX attributeX-celery.backends.base.KeyValueStoreBackend.setr jXmethodXcelery.beat.ScheduleEntry.nextr jXmethodX,celery.messaging.ConsumerSet.on_decode_errorr jX attributeXcelery.beat.Scheduler.syncr jXmethodX+celery.utils.dispatch.signal.Signal.connectr jXmethodX$celery.events.EventReceiver.handlersr jX attributeX&celery.bin.celeryctl.celeryctl.executer jXmethodXcelery.bin.celeryd_multi.mainr jXfunctionX&celery.worker.state.Persistent.storager jX attributeXcelery.task.Task.delayr jX classmethodXcelery.worker.listener.QoSr hXclassX3celery.contrib.abortable.AbortableAsyncResult.abortr jXmethodXcelery.conf.MAIL_HOSTr jCXdataXcelery.task.control.rate_limitr jLXfunctionXcelery.loaders.default.Loaderr jcXclassX!celery.task.base.Task.max_retriesr j^X attributer X=celery.backends.base.KeyValueStoreBackend.get_key_for_tasksetr jXmethodX"celery.platforms.PIDFile.write_pidr h,XmethodXcelery.utils.firstmethodr jXfunctionX!celery.bin.celeryev.parse_optionsr j-XfunctionX*celery.datastructures.LimitedSet.pop_valuer jpXmethodX&celery.events.state.State.freeze_whiler hXmethodX celery.utils.timer2.to_timestampr h#XfunctionX*celery.bin.celeryctl.Command.create_parserr jXmethodXcelery.messaging.ConsumerSetr jXclassXcelery.events.state.State.clearr hXmethodX+celery.backends.pyredis.RedisBackend.deleter jXmethodX$celery.utils.compat.OrderedDict.copyr jXmethodX5celery.worker.listener.CarrotListener.on_decode_errorr hXmethodX-celery.datastructures.SharedCounter.incrementr jpXmethodX6celery.concurrency.processes.TaskPool.Pool.Process.runr jXmethodXcelery.utils.term.colored.redr jXmethodX celery.beat.ScheduleEntry.is_duer jXmethodX(celery.utils.timer2.Timer.apply_intervalr h#XmethodX$celery.bin.camqadm.AMQShell.builtinsr jX attributeXcelery.events.cursesmon.evtopr jXfunctionX&celery.utils.dispatch.saferef.safe_refr jXfunctionX celery.events.state.Worker.aliver hX attributeXcelery.conf.SEND_EVENTSr jCXdataX-celery.worker.listener.CarrotListener.on_taskr hXmethodX#celery.messaging.BroadcastPublisherr jXclassXcelery.events.dumper.evdumpr jXfunctionX+celery.apps.beat.Beat.Service.scheduler_clsr j2X attributeX*celery.utils.compat.OrderedDict.itervaluesr jXmethodXcelery.result.EagerResultr j(XclassX.celery.events.snapshot.Polaroid.cleanup_signalr hGX attributeX'celery.task.base.Task.send_error_emailsr j^X attributer X celery.platforms.PIDFile.releaser h,XmethodXcelery.utils.term.colored.noder jXmethodXcelery.platforms.reset_signalr h,XfunctionXcelery.utils.mitemgetterr jXfunctionX1celery.backends.mongodb.MongoBackend.mongodb_userr jX attributeX)celery.worker.WorkController.process_taskr hXmethodX celery.utils.timer2.Timer.cancelr! h#XmethodX)celery.messaging.BroadcastConsumer.no_ackr" jX attributeX8celery.apps.worker.Worker.osx_proxy_detection_workaroundr# jXmethodX(celery.bin.celeryd_multi.MultiTool.startr$ jXmethodXcelery.worker.WorkControllerr% hXclassXcelery.routes.preparer& jXfunctionX$celery.backends.tyrant.TyrantBackendr' jzXclassXcelery.states.state.comparer( h}XmethodX+celery.worker.buckets.TaskBucket.put_nowaitr) jXmethodX*celery.apps.beat.Beat.install_sync_handlerr* j2XmethodX celery.result.EagerResult.revoker+ j(XmethodX0celery.backends.tyrant.TyrantBackend.tyrant_portr, jzX attributeX(celery.worker.job.TaskRequest.on_timeoutr- hXmethodX#celery.worker.control.builtins.pingr. hXfunctionX"celery.task.base.Task.autoregisterr/ j^X attributer0 X-celery.utils.dispatch.signal.Signal.receiversr1 jX attributeX.celery.worker.job.WorkerTaskTrace.handle_retryr2 hXmethodX,celery.bin.celeryd.WorkerCommand.get_optionsr3 jXmethodX4celery.concurrency.processes.TaskPool.Pool.terminater4 jXmethodX celery.resultr5 j(jX1celery.worker.buckets.TokenBucketQueue.get_nowaitr6 jXmethodXcelery.beat.ScheduleEntry.argsr7 jX attributeX/celery.concurrency.processes.TaskPool.terminater8 jXmethodXcelery.task.Task.get_loggerr9 jX classmethodX#celery.utils.dispatch.signal.Signalr: jXclassX&celery.events.state.State.worker_eventr; hXmethodX/celery.concurrency.processes.TaskPool.Pool.imapr< jXmethodXcelery.conf.CELERYD_POOLr= jCXdataX1celery.concurrency.processes.TaskPool.apply_asyncr> jXmethodXcelery.utils.functionalr? htjX$celery.worker.job.TaskRequest.on_ackr@ hX attributeX$celery.backends.amqp.ResultPublisherrA j_XclassX"celery.task.base.Task.after_returnrB j^XmethodrC Xcelery.task.controlrD jLjX*celery.messaging.BroadcastConsumer.durablerE jX attributeX"celery.utils.timer2.Timer.apply_atrF h#XmethodX%celery.bin.camqadm.AMQShell.parselinerG jXmethodXcelery.task.base.Task.typerH j^X attributerI Xcelery.utils.info.format_queuesrJ j?XfunctionX)celery.conf.CELERY_SEND_TASK_ERROR_EMAILSrK jCXdataXcelery.conf.EVENT_ROUTING_KEYrL jCXdataX5celery.concurrency.processes.TaskPool.on_worker_errorrM jXmethodX!celery.task.base.Task.AsyncResultrN j^X classmethodrO X,celery.task.control.inspect.registered_tasksrP jLXmethodX3celery.concurrency.processes.pool.Pool.Process.namerQ jX attributeX*celery.worker.listener.CarrotListener.hartrR hX attributeXcelery.utils.mpromiserS jXclassX,celery.worker.buckets.TokenBucketQueue.qsizerT jXmethodX7celery.concurrency.processes.pool.Pool.Process.exitcoderU jX attributeX.celery.backends.base.BaseBackend.mark_as_retryrV jXmethodX,celery.backends.mongodb.MongoBackend.cleanuprW jXmethodX/celery.task.base.PeriodicTask.timedelta_secondsrX j^XmethodrY X&celery.worker.buckets.TaskBucket.qsizerZ jXmethodX?celery.utils.dispatch.saferef.BoundMethodWeakref._all_instancesr[ jX attributeX celery.beat.ScheduleEntry.updater\ jXmethodXcelery.bin.celeryctl.Commandr] jXclassXcelery.bin.celeryctl.statusr^ jXclassX$celery.apps.worker.Worker.run_workerr_ jXmethodX'celery.bin.celeryd_multi.parse_ns_ranger` jXfunctionX)celery.messaging.TaskConsumer.routing_keyra jX attributeXcelery.conf.DISABLE_RATE_LIMITSrb jCXdataXcelery.loaders.base.BaseLoaderrc jHXclassX'celery.bin.celeryd_multi.MultiTool.helprd jXmethodX!celery.task.control.inspect.statsre jLXmethodXcelery.worker.state.total_countrf jXdataXcelery.bin.baserg jjX8celery.backends.cassandra.CassandraBackend.column_familyrh jhX attributeXcelery.db.models.Task.date_doneri j$X attributeX7celery.concurrency.processes.TaskPool.Pool.Process.joinrj jXmethodXcelery.beat.Scheduler.Entryrk jX attributeX$celery.utils.compat.OrderedDict.keysrl jXmethodXcelery.utils.maybe_promiserm jXfunctionXcelery.bin.celeryd.mainrn jXfunctionX(celery.datastructures.PositionQueue.fullro jpXmethodX;celery.worker.control.ControlDispatch.dispatch_from_messagerp j;XmethodX"celery.schedules.schedule.relativerq j!X attributeX$celery.registry.TaskRegistry.regularrr j)XmethodXcelery.conf.MAIL_PORTrs jCXdataX-celery.task.builtins.AsynchronousMapTask.namert jQX attributeX(celery.messaging.EventPublisher.exchangeru jX attributeX)celery.events.cursesmon.DisplayThread.runrv jXmethodX5celery.concurrency.processes.TaskPool.Pool.Supervisorrw jXclassX%celery.conf.BROKER_CONNECTION_TIMEOUTrx jCXdataX celery.task.control.inspect.pingry jLXmethodX'celery.result.BaseAsyncResult.tracebackrz j(X attributeX(celery.utils.compat.OrderedDict.iterkeysr{ jXmethodX Task.namer| hPX attributer} Xcelery.worker.job.TaskRequestr~ hXclassXcelery.utils.patchr jjXcelery.utils.timer2.Timer.runr h#XmethodX-celery.serialization.get_pickleable_exceptionr jXfunctionX celery.statesr h}jX9celery.concurrency.processes.TaskPool.Pool.imap_unorderedr jXmethodXcelery.task.sets.TaskSet.tasksr juX attributeXTask.track_startedr hPX attributer X6celery.apps.worker.Worker.WorkController.on_timer_tickr jXmethodXcelery.utils.mailr hjXcelery.beat.Scheduler.infor jX attributeXcelery.task.Task.ignore_resultr jX attributeX+celery.worker.buckets.TokenBucketQueue.waitr jXmethodX$celery.worker.buckets.FastQueue.waitr jXmethodX4celery.apps.worker.Worker.WorkController.ready_queuer jX attributeX5celery.worker.listener.CarrotListener.receive_messager hXmethodX$celery.bin.celeryd.WorkerCommand.runr jXmethodX0celery.events.cursesmon.CursesMonitor.online_strr jX attributeX8celery.concurrency.processes.TaskPool.Pool.Process.identr jX attributeX)celery.worker.job.TaskRequest.acknowledger hXmethodX'celery.apps.beat.Beat.set_process_titler j2XmethodX&celery.bin.camqadm.AMQShell.prompt_fmtr jX attributeXcelery.utils.term.colored.whiter jXmethodXcelery.utils.compat.OrderedDictr jXclassX!celery.messaging.get_consumer_setr jXfunctionX%celery.backends.cache.DummyClient.setr j Xmethodu(X)celery.task.base.Task.default_retry_delayr j^X attributer X+celery.backends.base.BaseDictBackend.forgetr jXmethodX(celery.platforms.PIDFile.remove_if_staler h,XmethodXcelery.backends.get_backend_clsr jUXfunctionX)celery.worker.job.TaskRequest.success_msgr hX attributeX+celery.schedules.crontab.remaining_estimater j!XmethodX'celery.registry.TaskRegistry.unregisterr j)XmethodX!celery.worker.state.Persistent.dbr jX attributeX celery.eventsr jjX.celery.worker.job.TaskRequest.send_error_emailr hXmethodXcelery.utils.timer2.Timer.clearr h#XmethodX,celery.events.state.State.get_or_create_taskr hXmethodX"celery.result.TaskSetResult.forgetr j(XmethodX+celery.backends.amqp.AMQPBackend.connectionr j_X attributeX(celery.backends.pyredis.RedisBackend.getr jXmethodX)celery.utils.timer2.Schedule.handle_errorr h#XmethodXcelery.bin.celeryd.windows_mainr jXfunctionXcelery.conf.MAIL_HOST_PASSWORDr jCXdataX%celery.registry.TaskRegistry.registerr j)XmethodXcelery.task.http.URL.dispatcherr hkX attributeXcelery.utils.term.colored.iredr jXmethodX*celery.bin.celeryctl.Command.run_from_argvr jXmethodXcelery.events.state.Task.updater hXmethodXcelery.backends.DefaultBackendr jUX attributeXcelery.task.Task.runr jXmethodXcelery.conf.EVENT_EXCHANGE_TYPEr jCXdataX-celery.datastructures.ExceptionInfo.exceptionr jpX attributeX#celery.task.control.inspect.revokedr jLXmethodXTask.default_retry_delayr hPX attributer X#celery.task.http.RemoteExecuteErrorr hkX exceptionX$celery.result.BaseAsyncResult.resultr j(X attributeX6celery.utils.dispatch.saferef.get_bound_method_weakrefr jXfunctionXcelery.events.EventReceiverr jXclassX3celery.concurrency.processes.pool.Pool.Process.joinr jXmethodX7celery.concurrency.processes.TaskPool.Pool.Process.namer jX attributeX!celery.worker.heartbeat.Heart.runr jXmethodX7celery.backends.base.BaseDictBackend.reload_task_resultr jXmethodX!Task.store_errors_even_if_ignoredr hPX attributer X"celery.apps.beat.Beat.Service.stopr j2XmethodX#celery.platforms.set_effective_userr h,XfunctionX%celery.worker.job.TaskRequest.task_idr hX attributeXcelery.utils.timer2.Timer.enterr h#XmethodX celery.messaging.with_connectionr jXfunctionX)celery.backends.tyrant.TyrantBackend.openr jzXmethodX"celery.exceptions.TaskRevokedErrorr jX exceptionX5celery.backends.mongodb.MongoBackend.mongodb_databaser jX attributeX"celery.bin.celeryctl.Command.errorr jXmethodX"celery.events.EventDispatcher.sendr jXmethodXcelery.datastructuresr jpjX/celery.apps.worker.Worker.WorkController.loggerr jX attributeX+celery.task.builtins.ExecuteRemoteTask.namer jQX attributeXcelery.beat.Service.syncr jXmethodX celery.beat.ScheduleEntry.kwargsr jX attributeXcelery.task.Task.typer jX attributeXcelery.log.get_task_loggerr hXfunctionXcelery.utils.term.colored.cyanr jXmethodX-celery.bin.celerybeat.BeatCommand.get_optionsr jXmethodX&celery.result.TaskSetResult.taskset_idr j(X attributeX:celery.backends.cassandra.CassandraBackend.process_cleanupr jhXmethodX)celery.loaders.default.wanted_module_itemr jcXfunctionX9celery.concurrency.processes.TaskPool.Pool.TimeoutHandlerr jXclassX3celery.backends.pyredis.RedisBackend.redis_passwordr jX attributeXcelery.execute.send_taskr jXfunctionX celery.bin.celeryev.run_celeryevr j-XfunctionX"celery.task.base.Task.get_consumerr j^X classmethodr Xcelery.bin.camqadm.AMQShell.sayr jXmethodXcelery.db.models.TaskSet.idr j$X attributeX"celery.worker.job.TaskRequest.infor hXmethodXcelery.conf.TRACK_STARTEDr jCXdataXcelery.utils.abbrr jXfunctionX celery.bin.celeryctl.Command.outr jXmethodXcelery.task.baser j^jXcelery.loaders.defaultr jcjX#celery.concurrency.threads.TaskPoolr jXclassXcelery.events.EventDispatcherr jXclassX'celery.bin.celeryctl.status.option_listr jX attributeX2celery.backends.cassandra.CassandraBackend.serversr jhX attributeX3celery.bin.celeryctl.Command.prettify_dict_ok_errorr jXmethodXcelery.utils.dispatch.saferefr jjX celery.task.base.Task.serializerr j^X attributer X4celery.concurrency.processes.TaskPool.Pool.map_asyncr jXmethodX0celery.backends.base.BaseBackend.mark_as_startedr jXmethodX+celery.contrib.abortable.AbortableTask.namer jX attributeX)celery.utils.timer2.Timer.Entry.cancelledr h#X attributeX(celery.events.state.Worker.heartbeat_maxr hX attributeX celery.bin.celeryctl.result.argsr jX attributeXcelery.task.Task.get_publisherr jX classmethodX$celery.task.sets.TaskSet.apply_asyncr juXmethodXcelery.conf.MAX_CACHED_RESULTSr jCXdataX4celery.worker.listener.CarrotListener.stop_consumersr hXmethodX$celery.bin.camqadm.AMQPAdmin.connectr jXmethodX!celery.worker.WorkController.stopr hXmethodX%celery.events.EventDispatcher.disabler jXmethodX'celery.events.state.State.tasks_by_typer hXmethodXcelery.utils.mail.Mailerr hXclassX"celery.utils.term.colored.imagentar jXmethodX0celery.backends.base.BaseBackend.restore_tasksetr jXmethodXcelery.schedulesr j!jX5celery.bin.celeryd_multi.NamespacedOptionParser.parser jXmethodX6celery.worker.listener.CarrotListener.consume_messagesr hXmethodX+celery.messaging.EventPublisher.routing_keyr jX attributeX6celery.worker.listener.CarrotListener.close_connectionr hXmethodXcelery.utils.timer2.Timer.emptyr h#XmethodXcelery.task.Task.executer jXmethodX+celery.worker.control.builtins.set_loglevelr hXfunctionX'celery.bin.celeryd_multi.MultiTool.stopr jXmethodX&celery.task.base.PeriodicTask.relativer j^X attributer X*celery.backends.tyrant.TyrantBackend.closer jzXmethodX#celery.worker.state.active_requestsr jXdataX"celery.bin.camqadm.AMQShell.promptr jX attributeX1celery.apps.worker.install_worker_restart_handlerr jXfunctionX'celery.bin.celeryd_multi.MultiTool.infor jXmethodX%celery.task.control.inspect.scheduledr jLXmethodX$celery.events.state.State.task_typesr hXmethodX2celery.backends.base.BaseDictBackend.get_task_metar jXmethodX%celery.worker.WorkController.loglevelr hX attributeX$celery.events.state.Worker.on_onliner hXmethodX7celery.bin.celeryctl.celeryctl.execute_from_commandliner jXmethodX)celery.exceptions.MaxRetriesExceededErrorr jX exceptionX'celery.events.snapshot.Polaroid.cleanupr hGXmethodX2celery.backends.cassandra.CassandraBackend.cleanupr jhXmethodX"celery.beat.ScheduleEntry.scheduler jX attributeX+celery.concurrency.processes.pool.Pool.imapr jXmethodX-celery.backends.pyredis.RedisBackend.redis_dbr jX attributeXcelery.task.control.inspectr jLXclassX2celery.concurrency.processes.pool.Pool.TaskHandlerr jXclassXcelery.db.models.Task.tracebackr j$X attributeX"celery.bin.camqadm.Spec.format_argr jXmethodX(celery.worker.job.TaskRequest.on_successr hXmethodX-celery.task.Task.store_errors_even_if_ignoredr jX attributeXcelery.utils.noopr! jXfunctionX"celery.log.setup_logging_subsystemr" hXfunctionX"celery.task.builtins.PingTask.namer# jQX attributeX!celery.task.base.Task.apply_asyncr$ j^X classmethodr% Xcelery.log.setup_loggerr& hXfunctionXcelery.routes.Routerr' jXclassX,celery.backends.pyredis.RedisBackend.expiresr( jX attributeX3celery.events.cursesmon.CursesMonitor.find_positionr) jXmethodX!celery.result.BaseAsyncResult.getr* j(XmethodXcelery.task.Task.on_failurer+ jXmethodX%celery.events.state.State.event_countr, hX attributeX celery.utils.term.colored.brightr- jXmethodX$celery.events.state.Task.merge_rulesr. hX attributeX2celery.events.cursesmon.CursesMonitor.selected_strr/ jX attributeX%celery.utils.timer2.Timer.apply_entryr0 h#XmethodXcelery.utils.mail.Messager1 hXclassX0celery.worker.job.WorkerTaskTrace.handle_successr2 hXmethodX7celery.worker.listener.CarrotListener.restart_heartbeatr3 hXmethodX"celery.apps.beat.Beat.Service.syncr4 j2XmethodXcelery.bin.celerybeatr5 jjXcelery.beat.Scheduler.addr6 jXmethodXcelery.conf.DEFAULT_EXCHANGEr7 jCXdataX(celery.worker.job.TaskRequest.on_failurer8 hXmethodX(celery.bin.camqadm.Spec.format_signaturer9 jXmethodX$celery.utils.info.format_broker_infor: j?XfunctionX6celery.worker.listener.CarrotListener.reset_connectionr; hXmethodXcelery.platforms.get_fdmaxr< h,XfunctionX!celery.task.HttpDispatchTask.namer= jX attributeXcelery.conf.SERVER_EMAILr> jCXdataX+celery.execute.trace.TaskTrace.handle_retryr? hXmethodX)celery.bin.celeryd_multi.MultiTool.splashr@ jXmethodX"celery.db.models.TaskSet.date_donerA j$X attributeXcelery.utils.timeutils.weekdayrB jXfunctionX'celery.events.state.Worker.on_heartbeatrC hXmethodXcelery.bin.celeryctl.help.usagerD jXmethodX&celery.worker.buckets.TaskBucket.emptyrE jXmethodXcelery.task.TaskSetrF jXclassXcelery.task.base.Task.retryrG j^X classmethodrH X@celery.concurrency.processes.TaskPool.Pool.SoftTimeLimitExceededrI jX exceptionX1celery.backends.base.BaseDictBackend.save_tasksetrJ jXmethodXTask.error_whitelistrK hPX attributerL X celery.logrM hjXcelery.utils.promiserN jXclassX"celery.worker.WorkController.startrO hXmethodX+celery.bin.celeryd_multi.MultiTool.waitexecrP jXmethodXcelery.bin.celeryd_multi.quoterQ jXfunctionX(celery.backends.base.BaseBackend.cleanuprR jXmethodXcelery.task.Task.update_staterS jXmethodX)celery.worker.buckets.chain_from_iterablerT jXfunctionX*celery.result.BaseAsyncResult.TimeoutErrorrU j(X exceptionX!celery.worker.job.WorkerTaskTracerV hXclassX1celery.backends.amqp.ResultConsumer.exchange_typerW j_X attributeXcelery.worker.listenerrX hjX*celery.worker.job.TaskRequest.acknowledgedrY hX attributeX!celery.apps.beat.Beat.init_loaderrZ j2XmethodX%celery.backends.cache.DummyClient.getr[ j XmethodX#celery.conf.CELERYD_TASK_LOG_FORMATr\ jCXdataXcelery.utils.term.colored.ibluer] jXmethodX.celery.concurrency.processes.TaskPool.Pool.mapr^ jXmethodXcelery.log.LoggingProxy.closedr_ hX attributeXcelery.worker.listener.QoS.setr` hXmethodXcelery.utils.mattrgetterra jXfunctionX&celery.task.PeriodicTask.ignore_resultrb jX attributeX#celery.result.TaskSetResult.restorerc j(X classmethodX/celery.worker.listener.QoS.decrement_eventuallyrd hXmethodXcelery.worker.listener.QoS.prevre hX attributeXcelery.conf.DEFAULT_QUEUErf jCXdataXcelery.task.PeriodicTaskrg jXclassX+celery.datastructures.TokenBucket.fill_raterh jpX attributeX#celery.exceptions.TimeLimitExceededri jX exceptionXcelery.apps.beatrj j2jXcelery.task.Task.subtaskrk jX classmethodXcelery.bin.camqadmrl jjX+celery.loaders.base.BaseLoader.on_task_initrm jHXmethodXcelery.events.create_eventrn jXfunctionX State.freezero jXmethodrp Xcelery.conf.DEFAULT_RATE_LIMITrq jCXdataXcelery.messagingrr jjX:celery.backends.base.KeyValueStoreBackend.get_key_for_taskrs jXmethodX*celery.events.cursesmon.CursesMonitor.drawrt jXmethodXcelery.bin.celeryev.mainru j-XfunctionXcelery.platforms.PIDFilerv h,XclassXcelery.conf.CELERYD_LOG_FORMATrw jCXdataX!celery.task.sets.subtask.get_typerx juXmethodX)celery.backends.pyredis.RedisBackend.openry jXmethodX celery.bin.camqadm.AMQPAdmin.sayrz jXmethodX0celery.concurrency.processes.pool.Pool.map_asyncr{ jXmethodX6celery.events.cursesmon.CursesMonitor.revoke_selectionr| jXmethodX"celery.utils.info.humanize_secondsr} j?XfunctionXcelery.worker.bucketsr~ jjX=celery.concurrency.processes.TaskPool.Pool.ResultHandler.bodyr jXmethodXcelery.utils.mail.Mailer.sendr hXmethodXcelery.execute.delay_taskr jXfunctionXcelery.task.sets.TaskSet.taskr juX attributeX)celery.task.control.inspect.enable_eventsr jLXmethodX(celery.task.http.HttpDispatchTask.methodr hkX attributeX5celery.apps.worker.Worker.WorkController.process_taskr jXmethodXcelery.bin.base.Command.Parserr jX attributeXcelery.backends.amqpr j_jX*celery.bin.celeryd_multi.MultiTool.getpidsr jXmethodXcelery.task.TaskSet.tasksr jX attributeX%celery.beat.PersistentScheduler.closer jXmethodX0celery.backends.database.DatabaseBackend.cleanupr jMXmethodXTask.acks_later hPX attributer X8celery.backends.pyredis.RedisBackend.deprecated_settingsr jX attributeX"celery.platforms.set_process_titler h,XfunctionX celery.bin.camqadm.AMQShell.chanr jX attributeXcelery.execute.applyr jXfunctionX+celery.backends.base.BaseBackend.get_resultr jXmethodXcelery.utils.term.fgr jXfunctionX,celery.backends.amqp.ResultPublisher.durabler j_X attributeX&celery.result.TaskSetResult.successfulr j(XmethodXcelery.result.TaskSetResultr j(XclassX*celery.bin.celeryctl.Command.prettify_listr jXmethodXcelery.signals.worker_readyr hXdataX#celery.utils.term.colored.underliner jXmethodX(celery.utils.timer2.Timer.ensure_startedr h#XmethodX-celery.datastructures.TokenBucket.can_consumer jpXmethodXTask.serializerr hPX attributer Xcelery.utils.term.colored.icyanr jXmethodXcelery.beat.Schedulerr jXclassX-celery.worker.control.ControlDispatch.executer j;XmethodXcelery.bin.celeryctl.Errorr jX exceptionX!celery.result.TaskSetResult.totalr j(X attributeX$celery.bin.camqadm.AMQShell.dispatchr jXmethodX-celery.backends.amqp.AMQPBackend.save_tasksetr j_XmethodXcelery.task.pingr jXfunctionX&celery.task.http.HttpDispatchTask.namer hkX attributeX!celery.utils.timer2.Timer.on_tickr h#X attributeX'celery.worker.controllers.Mediator.mover jXmethodX celery.task.base.Task.on_successr j^Xmethodr Xcelery.events.state.Task.merger hXmethodXcelery.routes.Router.router jXmethodX+celery.messaging.TaskConsumer.exchange_typer jX attributeX#celery.exceptions.AlreadyRegisteredr jX exceptionX2celery.backends.base.BaseBackend.prepare_exceptionr jXmethodX celery.routesr jjXcelery.task.PeriodicTask.typer jX attributeXcelery.utils.kwdictr jXfunctionXcelery.conf.DEFAULT_ROUTING_KEYr jCXdataX)celery.backends.base.KeyValueStoreBackendr jXclassX2celery.concurrency.processes.pool.Pool.Process.runr jXmethodX3celery.worker.buckets.TaskBucket.init_with_registryr jXmethodX@celery.serialization.UnpickleableExceptionWrapper.from_exceptionr jX classmethodX!celery.task.http.MutableURL.queryr hkX attributeX0celery.apps.worker.Worker.WorkController.logfiler jX attributeX*celery.messaging.BroadcastConsumer.consumer jXmethodX,celery.worker.listener.CarrotListener.loggerr hX attributeX)celery.beat.ScheduleEntry.total_run_countr jX attributeX(celery.concurrency.threads.TaskPool.stopr jXmethodX celery.datastructures.LocalCacher jpXclassXcelery.task.builtins.PingTaskr jQXclassX"celery.worker.heartbeat.Heart.stopr jXmethodX/celery.backends.pyredis.RedisBackend.redis_portr jX attributeXcelery.events.snapshot.evcamr hGXfunctionX$celery.worker.state.Persistent.closer jXmethodXcelery.log.LoggingProxy.filenor hXmethodXcelery.conf.LOG_LEVELSr jCXdataX.celery.beat.PersistentScheduler.setup_scheduler jXmethodX*celery.task.PeriodicTask.timedelta_secondsr jXmethodX3celery.worker.listener.CarrotListener.init_callbackr hX attributeX+celery.backends.base.BaseBackend.get_statusr jXmethodX*celery.events.cursesmon.CursesMonitor.helpr jX attributeX%celery.backends.amqp.AMQPBackend.pollr j_XmethodX:celery.bin.celeryd_multi.NamespacedOptionParser.add_optionr jXmethodX%celery.result.BaseAsyncResult.task_idr j(X attributeX"celery.beat.Scheduler.max_intervalr jX attributeX4celery.messaging.ControlReplyPublisher.delivery_moder jX attributeXcelery.utils.termr jjX&celery.execute.trace.TaskTrace.executer hXmethodXcelery.exceptionsr jjX*celery.task.http.HttpDispatch.http_headersr hkX attributeX&celery.backends.amqp.AMQPBackend.closer j_XmethodXcelery.schedules.crontab_parserr j!XclassX$celery.task.control.inspect.reservedr jLXmethodX&celery.bin.celeryev.set_process_statusr j-XfunctionX celery.bin.camqadm.AMQPAdmin.runr jXmethodXcelery.worker.stater jjXcelery.signals.task_sentr hXdataXcelery.apps.worker.run_workerr jXfunctionX)celery.serialization.create_exception_clsr jXfunctionXcelery.platforms.ignore_signalr h,XfunctionX*celery.datastructures.PositionQueue.filledr jpX attributeXcelery.task.Task.track_startedr jX attributeX)celery.worker.job.WorkerTaskTrace.executer hXmethodX"celery.utils.timer2.Schedule.emptyr h#XmethodXcelery.beat.Service.startr jXmethodXcelery.platformsr h,jX+celery.worker.listener.CarrotListener.startr hXmethodX(celery.backends.pyredis.RedisBackend.setr jXmethodX(celery.utils.timeutils.timedelta_secondsr jXfunctionX-celery.datastructures.SharedCounter.decrementr jpXmethodXcelery.states.precedencer h}XfunctionX#celery.utils.timer2.Entry.cancelledr h#X attributeXcelery.task.control.broadcastr jLXfunctionX-celery.bin.celeryd_multi.MultiTool.node_aliver jXmethodXcelery.db.models.Task.resultr j$X attributeXcelery.utils.compatr jjX,celery.messaging.EventConsumer.exchange_typer jX attributeX#celery.events.EventDispatcher.flushr jXmethodX#celery.worker.state.Persistent.saver jXmethodX&celery.utils.timer2.Timer.Entry.cancelr h#XmethodX"celery.concurrency.threads.do_workr jXfunctionX-celery.events.cursesmon.CursesMonitor.workersr jX attributeXcelery.log.get_default_loggerr hXfunctionXcelery.utils.timer2.Entryr h#XclassX%celery.task.base.Task.error_whitelistr j^X attributer X#celery.task.base.Task.track_startedr j^X attributer Xcelery.apps.worker.Workerr jXclassX celery.bin.celeryd.WorkerCommandr jXclassXcelery.conf.CELERYBEAT_LOG_FILEr jCXdataX,celery.loaders.base.BaseLoader.import_moduler jHXmethodX"celery.events.dumper.humanize_typer jXfunctionX(celery.worker.WorkController.ready_queuer hX attributeX0celery.loaders.base.BaseLoader.override_backendsr jHX attributeXcelery.task.Task.backendr jX attributeXcelery.execute.trace.TaskTracer hXclassX*celery.worker.buckets.TokenBucketQueue.putr jXmethodXcelery.signals.task_prerunr hXdataX Task.abstractr hPX attributer X celery.bin.camqadm.parse_optionsr jXfunctionX#celery.platforms.DaemonContext.openr h,XmethodX"celery.result.BaseAsyncResult.waitr j(XmethodX&celery.worker.controllers.Mediator.runr jXmethodX!celery.datastructures.TokenBucketr jpXclassXcelery.events.dumper.Dumperr jXclassX#celery.result.EagerResult.tracebackr j(X attributeXcelery.log.LoggingProxy.namer hX attributeX)celery.worker.job.TaskRequest.repr_resultr hXmethodX)celery.log.ColorFormatter.formatExceptionr hXmethodXcelery.utils.term.coloredr jXclassX"celery.bin.camqadm.AMQShell.onecmdr jXmethodXcelery.signals.task_postrunr hXdataXcelery.conf.EVENT_SERIALIZERr jCXdataX"celery.events.state.Task.on_failedr hXmethodX*celery.task.base.Task.establish_connectionr j^X classmethodr Xcelery.worker.control.builtinsr hjX#celery.datastructures.SharedCounterr jpXclassX*celery.messaging.EventConsumer.routing_keyr jX attributeX#celery.result.TaskSetResult.waitingr j(XmethodX(celery.datastructures.LimitedSet.as_dictr jpXmethodXcelery.beat.Scheduler.Publisherr jX attributeX celery.log.LoggingProxy.loglevelr hX attributeX0celery.worker.listener.CarrotListener.on_controlr hXmethodX1celery.apps.worker.Worker.WorkController.mediatorr jX attributeX#celery.db.models.TaskSet.taskset_idr! j$X attributeX"celery.worker.job.TaskRequest.argsr" hX attributeXcelery.task.base.Task.queuer# j^X attributer$ X!celery.exceptions.WorkerLostErrorr% jX exceptionX Task.queuer& hPX attributer' X%celery.apps.worker.Worker.init_queuesr( jXmethodXcelery.apps.beat.run_celerybeatr) j2XfunctionX/celery.datastructures.TokenBucket.expected_timer* jpXmethodX celery.result.EagerResult.statusr+ j(X attributeXcelery.db.session.ResultSessionr, j XfunctionXcelery.task.sets.subtask.applyr- juXmethodX!celery.utils.mail.SendmailWarningr. hX exceptionX!celery.beat.Service.get_schedulerr/ jXmethodX3celery.backends.cassandra.CassandraBackend.keyspacer0 jhX attributeXcelery.task.sets.TaskSetr1 juXclassXcelery.task.Task.get_consumerr2 jX classmethodX#celery.datastructures.consume_queuer3 jpXfunctionX,celery.concurrency.processes.pool.Pool.closer4 jXmethodXcelery.bin.celeryctl.inspectr5 jXclassX-celery.messaging.EventPublisher.exchange_typer6 jX attributeX.celery.backends.amqp.AMQPBackend.get_task_metar7 j_XmethodXcelery.task.PeriodicTask.is_duer8 jXmethodXcelery.registry.TaskRegistryr9 j)XclassX$celery.worker.listener.QoS.incrementr: hXmethodXcelery.beat.Servicer; jXclassXcelery.task.sets.TaskSet.applyr< juXmethodX4celery.worker.control.ControlDispatch.ReplyPublisherr= j;X attributeX!celery.result.AsyncResult.backendr> j(X attributeX%celery.worker.buckets.FastQueue.itemsr? jX attributeXcelery.bin.camqadm.sayr@ jXfunctionX"celery.utils.timer2.Schedule.clearrA h#XmethodX6celery.backends.database.DatabaseBackend.ResultSessionrB jMXmethodX#celery.task.base.Task.get_publisherrC j^X classmethodrD Xcelery.log.LoggingProxy.moderE hX attributeXcelery.utils.timer2.SchedulerF h#XclassXcelery.task.Task.retryrG jX classmethodX2celery.backends.amqp.ResultPublisher.exchange_typerH j_X attributeXcelery.events.cursesmonrI jjX.celery.events.state.State.get_or_create_workerrJ hXmethodXcelery.task.TaskrK jXclassXcelery.apps.beat.Beat.ServicerL j2XclassX1celery.events.cursesmon.CursesMonitor.init_screenrM jXmethodX1celery.apps.worker.Worker.WorkController.listenerrN jX attributeXcelery.worker.heartbeat.HeartrO jXclassX%celery.worker.job.TaskRequest.executerP hXmethodX@celery.bin.celeryd_multi.NamespacedOptionParser.process_long_optrQ jXmethodX#celery.bin.base.Command.get_optionsrR jXmethodXcelery.messaging.TaskConsumerrS jXclassX5celery.backends.mongodb.MongoBackend.mongodb_passwordrT jX attributeX+celery.worker.control.ControlDispatch.replyrU j;XmethodX>celery.utils.dispatch.saferef.BoundMethodWeakref.calculate_keyrV jX classmethodXcelery.bin.celeryctl.apply.runrW jXmethodX4celery.messaging.ControlReplyPublisher.exchange_typerX jX attributeX4celery.worker.buckets.TaskBucket.get_bucket_for_typerY jXmethodX$celery.backends.pyredis.RedisBackendrZ jXclassXcelery.beat.EmbeddedServicer[ jXfunctionX2celery.concurrency.processes.pool.Pool.apply_asyncr\ jXmethodX6celery.concurrency.processes.TaskPool.Pool.apply_asyncr] jXmethodX;celery.concurrency.processes.TaskPool.Pool.TaskHandler.bodyr^ jXmethodX&celery.messaging.TaskConsumer.exchanger_ jX attributeX#celery.bin.camqadm.AMQShell.respondr` jXmethodX6celery.worker.listener.CarrotListener.control_dispatchra hX attributeX celery.conf.CELERY_CACHE_BACKENDrb jCXdataXcelery.utils.firstrc jXfunctionX!celery.utils.timer2.Schedule.inford h#XmethodX'celery.bin.celeryd_multi.MultiTool.notere jXmethodXcelery.utils.dispatch.signalrf jjX"celery.task.sets.TaskSet.Publisherrg juX attributeX)celery.registry.TaskRegistry.filter_typesrh j)XmethodXcelery.utils.timer2.Timer.Entryri h#XclassX,celery.backends.amqp.ResultConsumer.exchangerj j_X attributeX0celery.concurrency.processes.TaskPool.Pool.closerk jXmethodXcelery.bin.base.Command.argsrl jX attributeX+celery.task.PeriodicTask.remaining_estimaterm jXmethodX#celery.datastructures.ExceptionInforn jpXclassX celery.backends.amqp.AMQPBackendro j_XclassX#celery.task.base.Task.ignore_resultrp j^X attributerq Xcelery.log.LoggingProxy.closerr hXmethodX)celery.backends.base.BaseBackend.wait_forrs jXmethodX@celery.bin.celeryd_multi.MultiTool.with_detacher_default_optionsrt jXmethodX)celery.worker.control.builtins.rate_limitru hXfunctionXcelery.utils.timer2.Timer.nextrv h#XmethodX$celery.beat.PersistentScheduler.syncrw jXmethodXcelery.utils.promise.evaluaterx jXmethodX%celery.events.cursesmon.CursesMonitorry jXclassXcelery.bin.base.Command.usagerz jXmethodX&celery.worker.job.TaskRequest.on_retryr{ hXmethodXcelery.conf.CELERYD_MEDIATORr| jCXdataXcelery.decoratorsr} j*jX&celery.beat.Scheduler.update_from_dictr~ jXmethodXcelery.messaging.EventConsumerr jXclassXcelery.conf.BROADCAST_QUEUEr jCXdataX0celery.backends.base.BaseBackend.mark_as_failurer jXmethodXcelery.utils.term.colored.blackr jXmethodX2celery.concurrency.processes.pool.Pool.Process.pidr jX attributeX,celery.task.builtins.AsynchronousMapTask.runr jQXmethodX"celery.bin.celeryctl.inspect.usager jXmethodXcelery.registryr j)jX%celery.events.state.State.clear_tasksr hXmethodXcelery.bin.base.Command.runr jXmethodX*celery.messaging.TaskPublisher.routing_keyr jX attributeXcelery.bin.celeryctl.status.runr jXmethodX6celery.concurrency.processes.pool.Pool.Process.authkeyr jX attributeXcancel_consumerr jXmethodr X%celery.bin.camqadm.AMQShell.get_namesr jXmethodX$celery.events.EventReceiver.consumerr jXmethodX celery.utils.term.colored.yellowr jXmethodX'celery.backends.base.BaseBackend.forgetr jXmethodXcelery.conf.EVENT_EXCHANGEr jCXdataX1celery.serialization.UnpickleableExceptionWrapperr jX exceptionXcelery.backends.default_backendr jUXdataX/celery.backends.base.BaseDictBackend.get_statusr jXmethodX celery.result.EagerResult.resultr j(X attributeXcelery.utils.retry_over_timer jXfunctionX;celery.concurrency.processes.TaskPool.Pool.Process.is_aliver jXmethodX$celery.task.base.PeriodicTask.is_duer j^Xmethodr X&celery.concurrency.processes.pool.Poolr jXclassX.celery.worker.controllers.Mediator.ready_queuer jX attributeXexchange.deleter h Xmethodr X4celery.apps.worker.Worker.WorkController.concurrencyr jX attributeX.celery.task.builtins.DeleteExpiredTaskMetaTaskr jQX attributeX'celery.worker.job.TaskRequest.error_msgr hX attributeX<celery.worker.listener.CarrotListener.initial_prefetch_countr hX attributeX#celery.events.state.Task.on_retriedr hXmethodXcelery.conf.ACKS_LATEr jCXdataX'celery.worker.job.TaskRequest.task_namer hX attributeX(celery.apps.worker.Worker.purge_messagesr jXmethodX queue.bindr h Xmethodr Xcelery.result.EagerResult.readyr j(XmethodX0celery.backends.base.KeyValueStoreBackend.deleter jXmethodX&celery.task.builtins.ExecuteRemoteTaskr jQXclassX+celery.bin.camqadm.AMQShell.needs_reconnectr jX attributeXcelery.messaging.EventPublisherr jXclassXcelery.bin.camqadm.AMQShellr jXclassX,celery.events.state.State.tasks_by_timestampr hXmethodX5celery.concurrency.processes.pool.Pool.TimeoutHandlerr jXclassXcelery.task.HttpDispatchTaskr jXclassX8celery.contrib.abortable.AbortableAsyncResult.is_abortedr jXmethodX!celery.utils.term.colored.reverser jXmethodX"celery.task.Task.send_error_emailsr jX attributeX#celery.events.state.Task.on_revokedr hXmethodXcelery.task.Task.on_successr jXmethodX/celery.worker.WorkController.embed_clockservicer hX attributeX$celery.events.state.Task.on_receivedr hXmethodX+celery.backends.amqp.ResultConsumer.durabler j_X attributeXcelery.bin.camqadm.Specr jXclassX)celery.worker.control.registry.Panel.datar jX attributeuUmodulesr }r (j! (h#UUtji (jUUtjH (jUUtj~ (jUUtj (jHUUtj(jUUtj(jUUtj (jUUtj (hUUtj5 (jUUtj (j)UUtj(jUUtj (jUUtjj (j2UUtj (jUUtjC(jzUUtj (jQUUtj (jUUtj (jUUtj (j UUtjY (jUUtjl (jUUtj? (htUUtj (j UUtjM (hUUtj(jhUUtj(jUUtj(jMUUtj(j$UUtj (jUUtj (jUUtj (jUUtjX (hUUtj(jUUUtjD (jLUUtjX (hUUtji (hUUtj (jUUtj(jUUtj (jpUUtj (jUUtjr (jUUtj (j_UUtjp (hUUtj (j^UUtj(jUUtj(jUUtjI (jUUtjf (jUUtjw(juUUtj (jUUtj(jUUtj (hUUtj(j;UUtj(hGUUtja (jUUtjg (jUUtj& (jUUtj} (j*UUtj (jUUtj (jcUUtj\(jUUtjn(j?UUtj (jUUtj (j-UUtj~ (jUUtj (jUUtj (hUUtj (jUUtj (h}UUtj(hUUtj5 (j(UUtj (h,UUtj (j!UUtj (jUUtuj7KuUjsr }r (j}r j7KuUrstr }r (j}r j7KuUcppr }r (j}r j7KuuU glob_toctreesr h]Rr U reread_alwaysr h]Rr U doctreedirr XO/var/build/user_builds/celery/checkouts/2.1-archived/docs/_build/html/.doctreesr Uversioning_conditionr U citationsr }j7K*Usrcdirr X9/var/build/user_builds/celery/checkouts/2.1-archived/docsr Uconfigr csphinx.config Config r )r }r (Upygments_styler Utracr Uhtml_use_smartypantsr U html_themer Uceleryr U exclude_treesr ]r U.buildr aU html_contextr }r (U github_userj Unamer XCeleryr U github_repoj Uversions]r (UmasterU /en/master/r UlatestU /en/latest/r U 2.5-archivedU/en/2.5-archived/r U 2.4-archivedU/en/2.4-archived/r U 2.3-archivedU/en/2.3-archived/r U 2.2-archivedU/en/2.2-archived/r U 2.1-archivedr U/en/2.1-archived/r U 2.0-archivedU/en/2.0-archived/r U 1.0-archivedU/en/1.0-archived/r U3.0U/en/3.0/r eU using_themeU downloads]r (UPDFU@https://media.readthedocs.org/pdf/celery/2.1-archived/celery.pdfr UHTMLUDhttps://media.readthedocs.org/htmlzip/celery/2.1-archived/celery.zipr UEpubUBhttps://media.readthedocs.org/epub/celery/2.1-archived/celery.epubr eU READTHEDOCSUgithub_versionj U conf_py_pathU/docs/U canonical_urlUUanalytics_codeUU rtd_languageXenUPRODUCTION_DOMAINUreadthedocs.orgj j Udisplay_githubUcurrent_versionr j Usingle_versionUapi_hostUhttps://readthedocs.orgUslugr j U new_themeU MEDIA_URLr Uhttps://media.readthedocs.org/uU source_suffixr U.rstU copyrightr X#2009-2011, Ask Solem & ContributorsUadd_function_parenthesesr U html_sidebarsr }r (Uindexr ]r (Usidebarintro.htmlr Usourcelink.htmlr Usearchbox.htmlr eU**]r (Usidebarlogo.htmlr Urelations.htmlrj j euj7U2.1rU master_docrj Utemplates_pathr]r(UA/home/docs/checkouts/readthedocs.org/readthedocs/templates/sphinxrU .templatesreUlatex_documentsr]r(UindexU Celery.texXCelery DocumentationXAsk Solem & ContributorsUmanualtr aUhtml_static_pathr ]r (U.staticr UI/home/docs/checkouts/readthedocs.org/readthedocs/templates/sphinx/_staticr eUhtml_theme_pathr]r(U_themerjeUlanguagerXenrU overridesr}rjjsUhtml_use_indexrUhtml_use_modindexrUprojectrj U extensionsr]r(Usphinx.ext.autodocrUsphinx.ext.coveragerUsphinxcontrib.issuetrackerrU celerydocsrUreadthedocs_ext.readthedocsrU"readthedocs_ext.readthedocshtmldirreUreleaser U2.1.4r!Usetupr"NubUmetadatar#}r$(h }h#}h,}h5}h>}hG}hP}hY}hb}hk}ht}h}}h}h}h}h}h}h}h}h}h}h}h}h}h}h}j}j }j}j}j(}j1}j:}jC}jL}jU}j^}jg}jp}jy}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j }j}j}j$}j-}j6}j?}jH}jQ}jZ}jc}jl}ju}j~}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j }j)}j2}j;}jD}jM}jV}j_}jh}jq}jz}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j}j!}j*}uUversionchangesr%}r&(X2.1r']r(((X versionaddedr)j:KNNXNew in version 2.1.tr*(X versionaddedr+j:KNNXNew in version 2.1.tr,eX2.0r-]r.((X versionaddedr/j:MNNXNew in version 2.0.tr0(X versionaddedr1j KNNXNew in version 2.0.tr2(X versionaddedr3hKlNNXNew in version 2.0.tr4(X versionaddedr5hKNNXNew in version 2.0.tr6euUtoc_num_entriesr7}r8(h Kh#Kh,Kh5Kh>KhGKhPK#hYKhbKhkKhtKh}KhKhKhKhKhKhKhKhKhK2hKhKhKhKhKjKj KjKUjKj(Kj1Kj:KjCKjLKjUKj^KjgKjpKjyKjKjKjKjKjK jK4jKjKjKjKjKjKjKujKjKj KjKjK j$Kj-Kj6Kj?KjHKjQKjZKjcKjlK.juKj~KjKjKjKjKjKjKjKjKjKjKjKjKjKjK jKjKjKj Kj)Kj2Kj;KjDKjMKjVKj_KjhKjqKjzKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKjKj!Kj*KuUimagesr9h)r:(Ximages/celeryevshotsm.jpgr;h]r<jaRr=Xceleryevshotsm.jpgr>r?X&userguide/../images/celeryevshotsm.jpgr@h]rAj:aRrBXceleryevshotsm1.jpgrCrDX*userguide/../images/djangoceleryadmin2.jpgrEh]rFj:aRrGXdjangoceleryadmin2.jpgrHrIXimages/celery_favicon_128.pngrJh]rKjyaRrLXcelery_favicon_128.pngrMrNX2userguide/../images/celery-broker-worker-nodes.jpgrOh]rPj6aRrQXcelery-broker-worker-nodes.jpgrRrSX/internals/../images/Celery1.0-inside-worker.jpgrTh]rUjaRrVXCelery1.0-inside-worker.jpgrWrXX.userguide/../images/celery-worker-bindings.jpgrYh]rZj6aRr[Xcelery-worker-bindings.jpgr\r]uh]r^(jMjRjHj>j\jCjWeRr_bUnumbered_toctreesr`h]RraU found_docsrbh]rc(h h#h,h5h>hGhPhYhbhkhth}hhhhhhhhhhhhhhjjjj(j1j:jCjLjUj^jgjpjyjjjjjjjjjjjjjjjj j)jj$j-j j?jHjQjZjcjljuj~jjjjjjjjjjjjjjjjj jj2j;jDjMjVjjhjqjzjjjjjjjjjjjj6jjjjjj*j!j_eRrdU longtitlesre}rf(h hh#h$h,h-h5h6h>h?hGhHhPhQhYhZhbhchkhlhthuh}h~hhhhhhhhhhhhhhhhhhhhhhhhhhhhjjj jjjjj j(j)j1j2j:j;jCjDjLjMjUjVj^j_jgjhjpjqjyjzjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j jjjjj$j%j-j.j6j7j?j@jHjIjQjRjZj[jcjdjljmjujvj~jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj j!j)j*j2j3j;j<jDjEjMjNjVjWj_j`jhjijqjrjzj{jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj!j"j*j+uU dependenciesrg}rh(jHh]riU../celery/loaders/base.pyrjaRrkhh]rlU../celery/log.pyrmaRrnh#h]roU../celery/utils/timer2.pyrpaRrqjMh]rrU../celery/backends/database.pyrsaRrtj6h]ru(jOjYeRrvjch]rwU../celery/loaders/default.pyrxaRryjUh]rzU../celery/backends/__init__.pyr{aRr|jh]r}U../celery/utils/patch.pyr~aRrjhh]rU../celery/backends/cassandra.pyraRrj^h]rU../celery/task/base.pyraRrjuh]rU../celery/task/sets.pyraRrhGh]rU../celery/events/snapshot.pyraRrjh]rU../celery/bin/base.pyraRrhh]rU../celery/worker/__init__.pyraRrjph]rU../celery/datastructures.pyraRrj*h]rU../celery/decorators.pyraRrh,h]rU../celery/platforms.pyraRrj~h]rXincludes/resources.txtraRrjh]rU'../celery/concurrency/processes/pool.pyraRrj?h]rU../celery/utils/info.pyraRrjyh]rjJaRrhth]rU../celery/utils/functional.pyraRrjh]rU../celery/worker/controllers.pyraRrjh]rU../celery/messaging.pyraRrjh]rU#../celery/utils/dispatch/saferef.pyraRrjzh]rU../celery/backends/tyrant.pyraRrjh]rU../celery/worker/state.pyraRrhh]rU$../celery/worker/control/builtins.pyraRrjh]rXincludes/introduction.txtraRrhkh]rU../celery/task/http.pyraRrjh]rU../celery/execute/__init__.pyraRrjh]rU../celery/utils/timeutils.pyraRrjLh]rU../celery/task/control.pyraRrjh]rU$../celery/worker/control/registry.pyraRrjh]rU../celery/apps/worker.pyraRrhh]rU../celery/worker/listener.pyraRrjh]rU../celery/bin/camqadm.pyraRrhh]rU../celery/worker/job.pyraRrhh]rU../celery/events/state.pyraRrjh]rU"../celery/utils/dispatch/signal.pyraRrjh]rU../celery/backends/base.pyraRrjh]rU../celery/backends/pyredis.pyraRrjh]rU../celery/beat.pyraRrhh]rU../celery/execute/trace.pyraRrjQh]rU../celery/task/builtins.pyraRrjh]rU../celery/task/__init__.pyraRrjh]rU../celery/serialization.pyraRrjh]rU../celery/bin/celeryd_multi.pyraRrjh]rU../celery/contrib/abortable.pyraRrjh]rU+../celery/concurrency/processes/__init__.pyraRrjh]rU ../celery/concurrency/threads.pyraRrjh]rU../celery/backends/mongodb.pyraRrjh]rU../celery/exceptions.pyraRrjh]rU../celery/bin/celerybeat.pyraRrj_h]r U../celery/backends/amqp.pyr aRr jh]r U../celery/routes.pyr aRrjh]rU../celery/events/dumper.pyraRrjh]rU../celery/utils/__init__.pyraRrjh]rU../celery/worker/buckets.pyraRrjh]rU../celery/worker/heartbeat.pyraRrjh]rjTaRrjh]rU../celery/events/cursesmon.pyraRrjh]r U../celery/utils/term.pyr!aRr"j)h]r#U../celery/registry.pyr$aRr%j-h]r&U../celery/bin/celeryev.pyr'aRr(jh]r)U../celery/utils/compat.pyr*aRr+jh]r,U../celery/loaders/__init__.pyr-aRr.jh]r/j;aRr0j h]r1U../celery/db/session.pyr2aRr3j!h]r4U../celery/schedules.pyr5aRr6jh]r7U../celery/events/__init__.pyr8aRr9jh]r:U$../celery/utils/dispatch/__init__.pyr;aRr<j(h]r=U../celery/result.pyr>aRr?h}h]r@U../celery/states.pyrAaRrBhh]rCU../celery/utils/mail.pyrDaRrEjh]rFU../celery/bin/celeryd.pyrGaRrHj:h]rI(j@jEeRrJjh]rKU../celery/bin/celeryctl.pyrLaRrMj h]rNU../celery/backends/cache.pyrOaRrPj$h]rQU../celery/db/models.pyrRaRrSj2h]rTU../celery/apps/beat.pyrUaRrVj;h]rWU$../celery/worker/control/__init__.pyrXaRrYuUtoctree_includesrZ}r[(jy]r\(Xgetting-started/indexr]Xuserguide/indexr^X configurationr_Xcookbook/indexr`X communityraX contributingrbXtutorials/indexrcXfaqrdXreference/indexreXinternals/indexrfX changelogrgXlinksrheh]ri(Xreference/celery.decoratorsrjXreference/celery.task.baserkXreference/celery.task.setsrlXreference/celery.executermXreference/celery.resultrnXreference/celery.taskroXreference/celery.confrpXreference/celery.task.controlrqXreference/celery.task.httprrXreference/celery.schedulesrsXreference/celery.signalsrtXreference/celery.exceptionsruXreference/celery.task.builtinsrvXreference/celery.loadersrwXreference/celery.loaders.baserxX reference/celery.loaders.defaultryXreference/celery.registryrzXreference/celery.statesr{Xreference/celery.messagingr|X"reference/celery.contrib.abortabler}Xreference/celery.eventsr~Xreference/celery.events.staterXreference/celery.apps.workerrXreference/celery.apps.beatrXreference/celery.bin.baserXreference/celery.bin.celerydrXreference/celery.bin.celerybeatrXreference/celery.bin.celeryevrXreference/celery.bin.celeryctlrXreference/celery.bin.camqadmrX"reference/celery.bin.celeryd_multirej]r(Xgetting-started/introductionrX#getting-started/broker-installationrX'getting-started/first-steps-with-celeryrXgetting-started/resourcesreh>]r(Xcookbook/tasksrXcookbook/daemonizingrej]r(Xuserguide/overviewrXuserguide/tasksrXuserguide/executingrXuserguide/workersrXuserguide/periodic-tasksrXuserguide/tasksetsrXuserguide/remote-tasksrXuserguide/routingrXuserguide/monitoringrXuserguide/optimizingrej]r(Xtutorials/otherqueuesrXtutorials/clickcounterrejV]r(X!internals/reference/celery.workerrX*internals/reference/celery.worker.listenerrX%internals/reference/celery.worker.jobrX-internals/reference/celery.worker.controllersrX)internals/reference/celery.worker.bucketsrX+internals/reference/celery.worker.heartbeatrX)internals/reference/celery.worker.controlrX2internals/reference/celery.worker.control.builtinsrX2internals/reference/celery.worker.control.registryrX'internals/reference/celery.worker.staterX0internals/reference/celery.concurrency.processesrX5internals/reference/celery.concurrency.processes.poolrX.internals/reference/celery.concurrency.threadsrXinternals/reference/celery.beatrX#internals/reference/celery.backendsrX(internals/reference/celery.backends.baserX,internals/reference/celery.backends.databaserX)internals/reference/celery.backends.cacherX(internals/reference/celery.backends.amqprX+internals/reference/celery.backends.mongodbrX+internals/reference/celery.backends.pyredisrX-internals/reference/celery.backends.cassandrarX*internals/reference/celery.backends.tyrantrX(internals/reference/celery.execute.tracerX(internals/reference/celery.serializationrX)internals/reference/celery.datastructuresrX!internals/reference/celery.routesrXinternals/reference/celery.logrX*internals/reference/celery.events.snapshotrX+internals/reference/celery.events.cursesmonrX(internals/reference/celery.events.dumperrX$internals/reference/celery.db.modelsrX%internals/reference/celery.db.sessionrX internals/reference/celery.utilsrX%internals/reference/celery.utils.termrX*internals/reference/celery.utils.timeutilsrX%internals/reference/celery.utils.inforX'internals/reference/celery.utils.compatrX%internals/reference/celery.utils.mailrX&internals/reference/celery.utils.patchrX+internals/reference/celery.utils.functionalrX'internals/reference/celery.utils.timer2rX)internals/reference/celery.utils.dispatchrX0internals/reference/celery.utils.dispatch.signalrX1internals/reference/celery.utils.dispatch.saferefrX$internals/reference/celery.platformsrehY]r(Xinternals/deprecationrXinternals/workerrXinternals/protocolrXinternals/eventsrXinternals/moduleindexrXinternals/reference/indexreuU temp_datar}Utocsr}r(h cdocutils.nodes bullet_list r)r}r(hUh}r(h]h]h]h]h]uh]rcdocutils.nodes list_item r)r}r(hUh}r(h]h]h]h]h]uh jh]r(csphinx.addnodes compact_paragraph r)r}r(hUh}r(h]h]h]h]h]uh jh]rcdocutils.nodes reference r)r}r(hUh}r(U anchornameUUrefurih h]h]h]h]h]Uinternaluh jh]rhX Routing Tasksrr}r(hhh jubah!U referencerubah!Ucompact_paragraphrubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#basicsUrefurih h]h]h]h]h]Uinternaluh jh]rhXBasicsrr}r(hXBasicsrh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r }r (hUh}r (h]h]h]h]h]uh jh]r (j)r }r(hUh}r(h]h]h]h]h]uh j h]rj)r}r(hUh}r(U anchornameU#automatic-routingUrefurih h]h]h]h]h]Uinternaluh j h]rhXAutomatic routingrr}r(hXAutomatic routingrh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh j h]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]r j)r!}r"(hUh}r#(h]h]h]h]h]uh jh]r$j)r%}r&(hUh}r'(U anchornameU'#changing-the-name-of-the-default-queueUrefurih h]h]h]h]h]Uinternaluh j!h]r(hX&Changing the name of the default queuer)r*}r+(hX&Changing the name of the default queuer,h j%ubah!jubah!jubah!U list_itemr-ubj)r.}r/(hUh}r0(h]h]h]h]h]uh jh]r1j)r2}r3(hUh}r4(h]h]h]h]h]uh j.h]r5j)r6}r7(hUh}r8(U anchornameU#how-the-queues-are-definedUrefurih h]h]h]h]h]Uinternaluh j2h]r9hXHow the queues are definedr:r;}r<(hXHow the queues are definedr=h j6ubah!jubah!jubah!j-ubeh!U bullet_listr>ubeh!j-ubj)r?}r@(hUh}rA(h]h]h]h]h]uh jh]rBj)rC}rD(hUh}rE(h]h]h]h]h]uh j?h]rFj)rG}rH(hUh}rI(U anchornameU#manual-routingUrefurih h]h]h]h]h]Uinternaluh jCh]rJhXManual routingrKrL}rM(hXManual routingrNh jGubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rO}rP(hUh}rQ(h]h]h]h]h]uh jh]rR(j)rS}rT(hUh}rU(h]h]h]h]h]uh jOh]rVj)rW}rX(hUh}rY(U anchornameU #amqp-primerUrefurih h]h]h]h]h]Uinternaluh jSh]rZhX AMQP Primerr[r\}r](hX AMQP Primerr^h jWubah!jubah!jubj)r_}r`(hUh}ra(h]h]h]h]h]uh jOh]rb(j)rc}rd(hUh}re(h]h]h]h]h]uh j_h]rfj)rg}rh(hUh}ri(h]h]h]h]h]uh jch]rjj)rk}rl(hUh}rm(U anchornameU #messagesUrefurih h]h]h]h]h]Uinternaluh jgh]rnhXMessagesrorp}rq(hXMessagesrrh jkubah!jubah!jubah!j-ubj)rs}rt(hUh}ru(h]h]h]h]h]uh j_h]rvj)rw}rx(hUh}ry(h]h]h]h]h]uh jsh]rzj)r{}r|(hUh}r}(U anchornameU #producers-consumers-and-brokersUrefurih h]h]h]h]h]Uinternaluh jwh]r~hX Producers, consumers and brokersrr}r(hX Producers, consumers and brokersrh j{ubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh j_h]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU"#exchanges-queues-and-routing-keysUrefurih h]h]h]h]h]Uinternaluh jh]rhX#Exchanges, queues and routing keys.rr}r(hX#Exchanges, queues and routing keys.rh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh j_h]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#exchange-typesUrefurih h]h]h]h]h]Uinternaluh jh]rhXExchange typesrr}r(hXExchange typesrh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#direct-exchangesUrefurih h]h]h]h]h]Uinternaluh jh]rhXDirect exchangesrr}r(hXDirect exchangesrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#topic-exchangesUrefurih h]h]h]h]h]Uinternaluh jh]rhXTopic exchangesrr}r(hXTopic exchangesrh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh j_h]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#related-api-commandsUrefurih h]h]h]h]h]Uinternaluh jh]rhXRelated API commandsrr}r(hXRelated API commandsrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh j_h]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#hands-on-with-the-apiUrefurih h]h]h]h]h]Uinternaluh jh]rhXHands-on with the APIrr}r(hXHands-on with the APIrh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#id2Urefurih h]h]h]h]h]Uinternaluh jh]rhX Routing Tasksrr}r(hX Routing Tasksrh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#defining-queuesUrefurih h]h]h]h]h]Uinternaluh jh]rhXDefining queuesrr}r (hXDefining queuesr h jubah!jubah!jubah!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh j h]rj)r}r(hUh}r(U anchornameU#specifying-task-destinationUrefurih h]h]h]h]h]Uinternaluh jh]rhXSpecifying task destinationrr}r(hXSpecifying task destinationrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r (hUh}r!(h]h]h]h]h]uh jh]r"j)r#}r$(hUh}r%(U anchornameU#routersUrefurih h]h]h]h]h]Uinternaluh jh]r&hXRoutersr'r(}r)(hXRoutersr*h j#ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubh#j)r+}r,(hUh}r-(h]h]h]h]h]uh]r.j)r/}r0(hUh}r1(h]h]h]h]h]uh j+h]r2j)r3}r4(hUh}r5(h]h]h]h]h]uh j/h]r6j)r7}r8(hUh}r9(U anchornameUUrefurih#h]h]h]h]h]Uinternaluh j3h]r:hXtimer2 - celery.utils.timer2r;r<}r=(hh+h j7ubah!jubah!jubah!j-ubah!j>ubh,j)r>}r?(hUh}r@(h]h]h]h]h]uh]rAj)rB}rC(hUh}rD(h]h]h]h]h]uh j>h]rEj)rF}rG(hUh}rH(h]h]h]h]h]uh jBh]rIj)rJ}rK(hUh}rL(U anchornameUUrefurih,h]h]h]h]h]Uinternaluh jFh]rMhX$Platform Specific - celery.platformsrNrO}rP(hh4h jJubah!jubah!jubah!j-ubah!j>ubh5j)rQ}rR(hUh}rS(h]h]h]h]h]uh]rTj)rU}rV(hUh}rW(h]h]h]h]h]uh jQh]rX(j)rY}rZ(hUh}r[(h]h]h]h]h]uh jUh]r\j)r]}r^(hUh}r_(U anchornameUUrefurih5h]h]h]h]h]Uinternaluh jYh]r`hXCelery 1.0 has been released!rarb}rc(hh=h j]ubah!jubah!jubj)rd}re(hUh}rf(h]h]h]h]h]uh jUh]rg(j)rh}ri(hUh}rj(h]h]h]h]h]uh jdh]rk(j)rl}rm(hUh}rn(h]h]h]h]h]uh jhh]roj)rp}rq(hUh}rr(U anchornameU #what-is-itUrefurih5h]h]h]h]h]Uinternaluh jlh]rshX What is it?rtru}rv(hX What is it?h jpubah!jubah!jubj)rw}rx(hUh}ry(h]h]h]h]h]uh jhh]rzj)r{}r|(hUh}r}(h]h]h]h]h]uh jwh]r~j)r}r(hUh}r(h]h]h]h]h]uh j{h]rj)r}r(hUh}r(U anchornameU #featuresUrefurih5h]h]h]h]h]Uinternaluh jh]rhXFeaturesrr}r(hXFeaturesh jubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jdh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #stable-apiUrefurih5h]h]h]h]h]Uinternaluh jh]rhX Stable APIrr}r(hX Stable APIh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jdh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #what-s-newUrefurih5h]h]h]h]h]Uinternaluh jh]rhX What's new?rr}r(hX What's new?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jdh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #resourcesUrefurih5h]h]h]h]h]Uinternaluh jh]rhX Resourcesrr}r(hX Resourcesh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubh>j)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurih>h]h]h]h]h]Uinternaluh jh]rhXCookbookrr}r(hhFh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]rcsphinx.addnodes toctree r)r}r(hUh}r(UnumberedKUparenth>U titlesonlyUglobh]h]h]h]h]Uentries]r(NjrNjreUhiddenUmaxdepthKU includefiles]r(jjeU includehiddenuh jh]h!Utoctreerubah!j>ubeh!j-ubah!j>ubhGj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihGh]h]h]h]h]Uinternaluh jh]rhX(Event Snapshots - celery.events.snapshotrr}r(hhOh jubah!jubah!jubah!j-ubah!j>ubhPj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihPh]h]h]h]h]Uinternaluh jh]rhXTasksrr}r(hhXh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r }r (hUh}r (U anchornameU#basicsUrefurihPh]h]h]h]h]Uinternaluh jh]r hXBasicsr r}r(hXBasicsrh j ubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#default-keyword-argumentsUrefurihPh]h]h]h]h]Uinternaluh jh]rhXDefault keyword argumentsrr}r(hXDefault keyword argumentsr h jubah!jubah!jubah!j-ubj)r!}r"(hUh}r#(h]h]h]h]h]uh jh]r$j)r%}r&(hUh}r'(h]h]h]h]h]uh j!h]r(j)r)}r*(hUh}r+(U anchornameU#loggingUrefurihPh]h]h]h]h]Uinternaluh j%h]r,hXLoggingr-r.}r/(hXLoggingr0h j)ubah!jubah!jubah!j-ubj)r1}r2(hUh}r3(h]h]h]h]h]uh jh]r4(j)r5}r6(hUh}r7(h]h]h]h]h]uh j1h]r8j)r9}r:(hUh}r;(U anchornameU##retrying-a-task-if-something-failsUrefurihPh]h]h]h]h]Uinternaluh j5h]r<hX"Retrying a task if something failsr=r>}r?(hX"Retrying a task if something failsr@h j9ubah!jubah!jubj)rA}rB(hUh}rC(h]h]h]h]h]uh j1h]rDj)rE}rF(hUh}rG(h]h]h]h]h]uh jAh]rHj)rI}rJ(hUh}rK(h]h]h]h]h]uh jEh]rLj)rM}rN(hUh}rO(U anchornameU#using-a-custom-retry-delayUrefurihPh]h]h]h]h]Uinternaluh jIh]rPhXUsing a custom retry delayrQrR}rS(hXUsing a custom retry delayrTh jMubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)rU}rV(hUh}rW(h]h]h]h]h]uh jh]rX(j)rY}rZ(hUh}r[(h]h]h]h]h]uh jUh]r\j)r]}r^(hUh}r_(U anchornameU #task-optionsUrefurihPh]h]h]h]h]Uinternaluh jYh]r`hX Task optionsrarb}rc(hX Task optionsrdh j]ubah!jubah!jubj)re}rf(hUh}rg(h]h]h]h]h]uh jUh]rh(j)ri}rj(hUh}rk(h]h]h]h]h]uh jeh]rlj)rm}rn(hUh}ro(h]h]h]h]h]uh jih]rpj)rq}rr(hUh}rs(U anchornameU#generalUrefurihPh]h]h]h]h]Uinternaluh jmh]rthXGeneralrurv}rw(hXGeneralrxh jqubah!jubah!jubah!j-ubj)ry}rz(hUh}r{(h]h]h]h]h]uh jeh]r|j)r}}r~(hUh}r(h]h]h]h]h]uh jyh]rj)r}r(hUh}r(U anchornameU#message-and-routing-optionsUrefurihPh]h]h]h]h]Uinternaluh j}h]rhXMessage and routing optionsrr}r(hXMessage and routing optionsrh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #task-namesUrefurihPh]h]h]h]h]Uinternaluh jh]rhX Task namesrr}r(hX Task namesrh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU&#automatic-naming-and-relative-importsUrefurihPh]h]h]h]h]Uinternaluh jh]rhX%Automatic naming and relative importsrr}r(hX%Automatic naming and relative importsrh jubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#decorating-tasksUrefurihPh]h]h]h]h]Uinternaluh jh]rhXDecorating tasksrr}r(hXDecorating tasksrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #task-statesUrefurihPh]h]h]h]h]Uinternaluh jh]rhX Task Statesrr}r(hX Task Statesrh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#built-in-statesUrefurihPh]h]h]h]h]Uinternaluh jh]rhXBuilt-in Statesrr}r(hXBuilt-in Statesrh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#pendingUrefurihPh]h]h]h]h]Uinternaluh jh]rhXPENDINGrr}r(hXPENDINGrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#startedUrefurihPh]h]h]h]h]Uinternaluh jh]rhXSTARTEDrr}r(hXSTARTEDrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r }r (hUh}r (h]h]h]h]h]uh jh]r j)r }r(hUh}r(U anchornameU#successUrefurihPh]h]h]h]h]Uinternaluh j h]rhXSUCCESSrr}r(hXSUCCESSrh j ubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#failureUrefurihPh]h]h]h]h]Uinternaluh jh]r hXFAILUREr!r"}r#(hXFAILUREr$h jubah!jubah!jubah!j-ubj)r%}r&(hUh}r'(h]h]h]h]h]uh jh]r(j)r)}r*(hUh}r+(h]h]h]h]h]uh j%h]r,j)r-}r.(hUh}r/(U anchornameU#retryUrefurihPh]h]h]h]h]Uinternaluh j)h]r0hXRETRYr1r2}r3(hXRETRYr4h j-ubah!jubah!jubah!j-ubj)r5}r6(hUh}r7(h]h]h]h]h]uh jh]r8j)r9}r:(hUh}r;(h]h]h]h]h]uh j5h]r<j)r=}r>(hUh}r?(U anchornameU#revokedUrefurihPh]h]h]h]h]Uinternaluh j9h]r@hXREVOKEDrArB}rC(hXREVOKEDrDh j=ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rE}rF(hUh}rG(h]h]h]h]h]uh jh]rHj)rI}rJ(hUh}rK(h]h]h]h]h]uh jEh]rLj)rM}rN(hUh}rO(U anchornameU#custom-statesUrefurihPh]h]h]h]h]Uinternaluh jIh]rPhX Custom statesrQrR}rS(hX Custom statesrTh jMubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rU}rV(hUh}rW(h]h]h]h]h]uh jh]rXj)rY}rZ(hUh}r[(h]h]h]h]h]uh jUh]r\j)r]}r^(hUh}r_(U anchornameU #how-it-worksUrefurihPh]h]h]h]h]Uinternaluh jYh]r`hX How it worksrarb}rc(hX How it worksrdh j]ubah!jubah!jubah!j-ubj)re}rf(hUh}rg(h]h]h]h]h]uh jh]rh(j)ri}rj(hUh}rk(h]h]h]h]h]uh jeh]rlj)rm}rn(hUh}ro(U anchornameU#tips-and-best-practicesUrefurihPh]h]h]h]h]Uinternaluh jih]rphXTips and Best Practicesrqrr}rs(hXTips and Best Practicesrth jmubah!jubah!jubj)ru}rv(hUh}rw(h]h]h]h]h]uh jeh]rx(j)ry}rz(hUh}r{(h]h]h]h]h]uh juh]r|j)r}}r~(hUh}r(h]h]h]h]h]uh jyh]rj)r}r(hUh}r(U anchornameU#ignore-results-you-don-t-wantUrefurihPh]h]h]h]h]Uinternaluh j}h]rhXIgnore results you don't wantrr}r(hXIgnore results you don't wantrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh juh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU(#disable-rate-limits-if-they-re-not-usedUrefurihPh]h]h]h]h]Uinternaluh jh]rhX'Disable rate limits if they're not usedrr}r(hX'Disable rate limits if they're not usedrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh juh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU%#avoid-launching-synchronous-subtasksUrefurihPh]h]h]h]h]Uinternaluh jh]rhX$Avoid launching synchronous subtasksrr}r(hX$Avoid launching synchronous subtasksrh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#performance-and-strategiesUrefurihPh]h]h]h]h]Uinternaluh jh]rhXPerformance and Strategiesrr}r(hXPerformance and Strategiesrh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #granularityUrefurihPh]h]h]h]h]Uinternaluh jh]rhX Granularityrr}r(hX Granularityrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#data-localityUrefurihPh]h]h]h]h]Uinternaluh jh]rhX Data localityrr}r(hX Data localityrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#stateUrefurihPh]h]h]h]h]Uinternaluh jh]rhXStaterr}r(hXStaterh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#database-transactionsUrefurihPh]h]h]h]h]Uinternaluh jh]rhXDatabase transactionsrr}r(hXDatabase transactionsrh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#exampleUrefurihPh]h]h]h]h]Uinternaluh jh]rhXExampler r }r (hXExampler h jubah!jubah!jubj)r }r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh j h]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#blog-models-pyUrefurihPh]h]h]h]h]Uinternaluh jh]rhXblog/models.pyrr}r(hXblog/models.pyr h jubah!jubah!jubah!j-ubj)r!}r"(hUh}r#(h]h]h]h]h]uh j h]r$j)r%}r&(hUh}r'(h]h]h]h]h]uh j!h]r(j)r)}r*(hUh}r+(U anchornameU#blog-views-pyUrefurihPh]h]h]h]h]Uinternaluh j%h]r,hX blog/views.pyr-r.}r/(hX blog/views.pyr0h j)ubah!jubah!jubah!j-ubj)r1}r2(hUh}r3(h]h]h]h]h]uh j h]r4j)r5}r6(hUh}r7(h]h]h]h]h]uh j1h]r8j)r9}r:(hUh}r;(U anchornameU#blog-tasks-pyUrefurihPh]h]h]h]h]Uinternaluh j5h]r<hX blog/tasks.pyr=r>}r?(hX blog/tasks.pyr@h j9ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubhYj)rA}rB(hUh}rC(h]h]h]h]h]uh]rDj)rE}rF(hUh}rG(h]h]h]h]h]uh jAh]rH(j)rI}rJ(hUh}rK(h]h]h]h]h]uh jEh]rLj)rM}rN(hUh}rO(U anchornameUUrefurihYh]h]h]h]h]Uinternaluh jIh]rPhX InternalsrQrR}rS(hhah jMubah!jubah!jubj)rT}rU(hUh}rV(h]h]h]h]h]uh jEh]rWj)rX}rY(hUh}rZ(UnumberedKUparenthYU titlesonlyUglobh]h]h]h]h]Uentries]r[(Njr\Njr]Njr^Njr_Njr`NjraeUhiddenUmaxdepthKU includefiles]rb(jjjjjjeU includehiddenuh jTh]h!jubah!j>ubeh!j-ubah!j>ubhbj)rc}rd(hUh}re(h]h]h]h]h]uh]rfj)rg}rh(hUh}ri(h]h]h]h]h]uh jch]rj(j)rk}rl(hUh}rm(h]h]h]h]h]uh jgh]rnj)ro}rp(hUh}rq(U anchornameUUrefurihbh]h]h]h]h]Uinternaluh jkh]rrhXTask Message Protocolrsrt}ru(hhjh joubah!jubah!jubj)rv}rw(hUh}rx(h]h]h]h]h]uh jgh]ry(j)rz}r{(hUh}r|(h]h]h]h]h]uh jvh]r}j)r~}r(hUh}r(h]h]h]h]h]uh jzh]rj)r}r(hUh}r(U anchornameU#message-formatUrefurihbh]h]h]h]h]Uinternaluh j~h]rhXMessage formatrr}r(hXMessage formath jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jvh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#example-messageUrefurihbh]h]h]h]h]Uinternaluh jh]rhXExample messagerr}r(hXExample messageh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jvh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#serializationUrefurihbh]h]h]h]h]Uinternaluh jh]rhX Serializationrr}r(hX Serializationh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubhkj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihkh]h]h]h]h]Uinternaluh jh]rhX&HTTP Callback Tasks - celery.task.httprr}r(hhsh jubah!jubah!jubah!j-ubah!j>ubhtj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihth]h]h]h]h]Uinternaluh jh]rhX*functools compat - celery.utils.functionalrr}r(hh|h jubah!jubah!jubah!j-ubah!j>ubh}j)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurih}h]h]h]h]h]Uinternaluh jh]rhXTask States - celery.statesrr}r(hhh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#statesUrefurih}h]h]h]h]h]Uinternaluh jh]rhXStatesrr}r(hXStatesh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#setsUrefurih}h]h]h]h]h]Uinternaluh jh]rhXSetsrr}r(hXSetsh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]r j)r }r (hUh}r (h]h]h]h]h]uh jh]r j)r}r(hUh}r(U anchornameU #ready-statesUrefurih}h]h]h]h]h]Uinternaluh j h]rhX READY_STATESrr}r(hX READY_STATESh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#unready-statesUrefurih}h]h]h]h]h]Uinternaluh jh]r hXUNREADY_STATESr!r"}r#(hXUNREADY_STATESh jubah!jubah!jubah!j-ubj)r$}r%(hUh}r&(h]h]h]h]h]uh jh]r'j)r(}r)(hUh}r*(h]h]h]h]h]uh j$h]r+j)r,}r-(hUh}r.(U anchornameU#exception-statesUrefurih}h]h]h]h]h]Uinternaluh j(h]r/hXEXCEPTION_STATESr0r1}r2(hXEXCEPTION_STATESh j,ubah!jubah!jubah!j-ubj)r3}r4(hUh}r5(h]h]h]h]h]uh jh]r6j)r7}r8(hUh}r9(h]h]h]h]h]uh j3h]r:j)r;}r<(hUh}r=(U anchornameU#propagate-statesUrefurih}h]h]h]h]h]Uinternaluh j7h]r>hXPROPAGATE_STATESr?r@}rA(hXPROPAGATE_STATESh j;ubah!jubah!jubah!j-ubj)rB}rC(hUh}rD(h]h]h]h]h]uh jh]rEj)rF}rG(hUh}rH(h]h]h]h]h]uh jBh]rIj)rJ}rK(hUh}rL(U anchornameU #all-statesUrefurih}h]h]h]h]h]Uinternaluh jFh]rMhX ALL_STATESrNrO}rP(hX ALL_STATESh jJubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubhj)rQ}rR(hUh}rS(h]h]h]h]h]uh]rTj)rU}rV(hUh}rW(h]h]h]h]h]uh jQh]rXj)rY}rZ(hUh}r[(h]h]h]h]h]uh jUh]r\j)r]}r^(hUh}r_(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jYh]r`hXABuilt-in Remote Control Commands - celery.worker.control.builtinsrarb}rc(hhh j]ubah!jubah!jubah!j-ubah!j>ubhj)rd}re(hUh}rf(h]h]h]h]h]uh]rgj)rh}ri(hUh}rj(h]h]h]h]h]uh jdh]rkj)rl}rm(hUh}rn(h]h]h]h]h]uh jhh]roj)rp}rq(hUh}rr(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jlh]rshXLogging - celery.logrtru}rv(hhh jpubah!jubah!jubah!j-ubah!j>ubhj)rw}rx(hUh}ry(h]h]h]h]h]uh]rzj)r{}r|(hUh}r}(h]h]h]h]h]uh jwh]r~j)r}r(hUh}r(h]h]h]h]h]uh j{h]rj)r}r(hUh}r(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jh]rhX&Multiprocessing Worker - celery.workerrr}r(hhh jubah!jubah!jubah!j-ubah!j>ubhj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jh]rhX API Referencerr}r(hhh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(UnumberedKUparenthU titlesonlyUglobh]h]h]h]h]Uentries]r(NjjrNjkrNjlrNjmrNjnrNjorNjprNjqrNjrrNjsrNjtrNjurNjvrNjwrNjxrNjyrNjzrNj{rNj|rNj}rNj~rNjrNjrNjrNjrNjrNjrNjrNjrNjrNjreUhiddenUmaxdepthKU includefiles]r(jjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzj{j|j}j~jjjjjjjjjjeU includehiddenuh jh]h!jubah!j>ubeh!j-ubah!j>ubhj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jh]rhX0Worker Message Listener - celery.worker.listenerrr}r(hhh jubah!jubah!jubah!j-ubah!j>ubhj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jh]rhX?In-memory Representation of Cluster State - celery.events.staterr}r(hhh jubah!jubah!jubah!j-ubah!j>ubhj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jh]rhX"Sending E-mail - celery.utils.mailrr}r(hhh jubah!jubah!jubah!j-ubah!j>ubhj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]r j)r }r (hUh}r (U anchornameUUrefurihh]h]h]h]h]Uinternaluh jh]r hX(Tracing Execution - celery.execute.tracerr}r(hhh j ubah!jubah!jubah!j-ubah!j>ubhj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jh]r hXFrequently Asked Questionsr!r"}r#(hhh jubah!jubah!jubj)r$}r%(hUh}r&(h]h]h]h]h]uh jh]r'(j)r(}r)(hUh}r*(h]h]h]h]h]uh j$h]r+(j)r,}r-(hUh}r.(h]h]h]h]h]uh j(h]r/j)r0}r1(hUh}r2(U anchornameU#generalUrefurihh]h]h]h]h]Uinternaluh j,h]r3hXGeneralr4r5}r6(hXGeneralh j0ubah!jubah!jubj)r7}r8(hUh}r9(h]h]h]h]h]uh j(h]r:j)r;}r<(hUh}r=(h]h]h]h]h]uh j7h]r>j)r?}r@(hUh}rA(h]h]h]h]h]uh j;h]rBj)rC}rD(hUh}rE(U anchornameU-#what-kinds-of-things-should-i-use-celery-forUrefurihh]h]h]h]h]Uinternaluh j?h]rFhX-What kinds of things should I use Celery for?rGrH}rI(hX-What kinds of things should I use Celery for?h jCubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)rJ}rK(hUh}rL(h]h]h]h]h]uh j$h]rM(j)rN}rO(hUh}rP(h]h]h]h]h]uh jJh]rQj)rR}rS(hUh}rT(U anchornameU#misconceptionsUrefurihh]h]h]h]h]Uinternaluh jNh]rUhXMisconceptionsrVrW}rX(hXMisconceptionsh jRubah!jubah!jubj)rY}rZ(hUh}r[(h]h]h]h]h]uh jJh]r\(j)r]}r^(hUh}r_(h]h]h]h]h]uh jYh]r`j)ra}rb(hUh}rc(h]h]h]h]h]uh j]h]rdj)re}rf(hUh}rg(U anchornameU#is-celery-dependent-on-pickleUrefurihh]h]h]h]h]Uinternaluh jah]rhhXIs Celery dependent on pickle?rirj}rk(hXIs Celery dependent on pickle?h jeubah!jubah!jubah!j-ubj)rl}rm(hUh}rn(h]h]h]h]h]uh jYh]roj)rp}rq(hUh}rr(h]h]h]h]h]uh jlh]rsj)rt}ru(hUh}rv(U anchornameU#is-celery-for-django-onlyUrefurihh]h]h]h]h]Uinternaluh jph]rwhXIs Celery for Django only?rxry}rz(hXIs Celery for Django only?h jtubah!jubah!jubah!j-ubj)r{}r|(hUh}r}(h]h]h]h]h]uh jYh]r~j)r}r(hUh}r(h]h]h]h]h]uh j{h]rj)r}r(hUh}r(U anchornameU#do-i-have-to-use-amqp-rabbitmqUrefurihh]h]h]h]h]Uinternaluh jh]rhXDo I have to use AMQP/RabbitMQ?rr}r(hXDo I have to use AMQP/RabbitMQ?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jYh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#is-celery-multilingualUrefurihh]h]h]h]h]Uinternaluh jh]rhXIs Celery multilingual?rr}r(hXIs Celery multilingual?h jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh j$h]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#troubleshootingUrefurihh]h]h]h]h]Uinternaluh jh]rhXTroubleshootingrr}r(hXTroubleshootingh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU0#mysql-is-throwing-deadlock-errors-what-can-i-doUrefurihh]h]h]h]h]Uinternaluh jh]rhX1MySQL is throwing deadlock errors, what can I do?rr}r(hX1MySQL is throwing deadlock errors, what can I do?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU+#celeryd-is-not-doing-anything-just-hangingUrefurihh]h]h]h]h]Uinternaluh jh]rhX+celeryd is not doing anything, just hangingrr}r(hX+celeryd is not doing anything, just hangingh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU-#why-is-task-delay-apply-celeryd-just-hangingUrefurihh]h]h]h]h]Uinternaluh jh]rhX.Why is Task.delay/apply*/celeryd just hanging?rr}r(hX/Why is Task.delay/apply\*/celeryd just hanging?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU!#why-won-t-celeryd-run-on-freebsdUrefurihh]h]h]h]h]Uinternaluh jh]rhX!Why won't celeryd run on FreeBSD?rr}r(hX!Why won't celeryd run on FreeBSD?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU3#i-m-having-integrityerror-duplicate-key-errors-whyUrefurihh]h]h]h]h]Uinternaluh jh]r(hX I'm having rr}r(hX I'm having h jubcdocutils.nodes literal r)r}r(hX!``IntegrityError: Duplicate Key``h}r(h]h]h]h]h]uh jh]rhXIntegrityError: Duplicate Keyrr}r(hUh jubah!UliteralrubhX errors. Why?rr}r(hX errors. Why?h jubeh!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r (h]h]h]h]h]uh jh]r j)r }r (hUh}r (U anchornameU#why-aren-t-my-tasks-processedUrefurihh]h]h]h]h]Uinternaluh jh]rhXWhy aren't my tasks processed?rr}r(hXWhy aren't my tasks processed?h j ubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#why-won-t-my-task-runUrefurihh]h]h]h]h]Uinternaluh jh]rhXWhy won't my Task run?rr}r (hXWhy won't my Task run?h jubah!jubah!jubah!j-ubj)r!}r"(hUh}r#(h]h]h]h]h]uh jh]r$j)r%}r&(hUh}r'(h]h]h]h]h]uh j!h]r(j)r)}r*(hUh}r+(U anchornameU#why-won-t-my-periodic-task-runUrefurihh]h]h]h]h]Uinternaluh j%h]r,hXWhy won't my Periodic Task run?r-r.}r/(hXWhy won't my Periodic Task run?h j)ubah!jubah!jubah!j-ubj)r0}r1(hUh}r2(h]h]h]h]h]uh jh]r3j)r4}r5(hUh}r6(h]h]h]h]h]uh j0h]r7j)r8}r9(hUh}r:(U anchornameU##how-do-i-discard-all-waiting-tasksUrefurihh]h]h]h]h]Uinternaluh j4h]r;hX#How do I discard all waiting tasks?r<r=}r>(hX#How do I discard all waiting tasks?h j8ubah!jubah!jubah!j-ubj)r?}r@(hUh}rA(h]h]h]h]h]uh jh]rBj)rC}rD(hUh}rE(h]h]h]h]h]uh j?h]rFj)rG}rH(hUh}rI(U anchornameUG#i-ve-discarded-messages-but-there-are-still-messages-left-in-the-queueUrefurihh]h]h]h]h]Uinternaluh jCh]rJhXHI've discarded messages, but there are still messages left in the queue?rKrL}rM(hXHI've discarded messages, but there are still messages left in the queue?h jGubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rN}rO(hUh}rP(h]h]h]h]h]uh j$h]rQ(j)rR}rS(hUh}rT(h]h]h]h]h]uh jNh]rUj)rV}rW(hUh}rX(U anchornameU#resultsUrefurihh]h]h]h]h]Uinternaluh jRh]rYhXResultsrZr[}r\(hXResultsh jVubah!jubah!jubj)r]}r^(hUh}r_(h]h]h]h]h]uh jNh]r`j)ra}rb(hUh}rc(h]h]h]h]h]uh j]h]rdj)re}rf(hUh}rg(h]h]h]h]h]uh jah]rhj)ri}rj(hUh}rk(U anchornameUE#how-do-i-get-the-result-of-a-task-if-i-have-the-id-that-points-thereUrefurihh]h]h]h]h]Uinternaluh jeh]rlhXEHow do I get the result of a task if I have the ID that points there?rmrn}ro(hXEHow do I get the result of a task if I have the ID that points there?h jiubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)rp}rq(hUh}rr(h]h]h]h]h]uh j$h]rs(j)rt}ru(hUh}rv(h]h]h]h]h]uh jph]rwj)rx}ry(hUh}rz(U anchornameU #securityUrefurihh]h]h]h]h]Uinternaluh jth]r{hXSecurityr|r}}r~(hXSecurityh jxubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jph]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU&#isn-t-using-pickle-a-security-concernUrefurihh]h]h]h]h]Uinternaluh jh]r(hX Isn't using rr}r(hX Isn't using h jubcdocutils.nodes title_reference r)r}r(hX`pickle`h}r(h]h]h]h]h]uh jh]rhXpicklerr}r(hUh jubah!Utitle_referencerubhX a security concern?rr}r(hX a security concern?h jubeh!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#can-messages-be-encryptedUrefurihh]h]h]h]h]Uinternaluh jh]rhXCan messages be encrypted?rr}r(hXCan messages be encrypted?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU"#is-it-safe-to-run-celeryd-as-rootUrefurihh]h]h]h]h]Uinternaluh jh]r(hXIs it safe to run rr}r(hXIs it safe to run h jubj)r}r(hX:program:`celeryd`h}r(h]h]rUprogramrah]h]h]uh jh]rhXcelerydrr}r(hUh jubah!jubhX as root?rr}r(hX as root?h jubeh!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh j$h]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#brokersUrefurihh]h]h]h]h]Uinternaluh jh]rhXBrokersrr}r(hXBrokersh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#why-is-rabbitmq-crashingUrefurihh]h]h]h]h]Uinternaluh jh]rhXWhy is RabbitMQ crashing?rr}r(hXWhy is RabbitMQ crashing?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU%#can-i-use-celery-with-activemq-stompUrefurihh]h]h]h]h]Uinternaluh jh]rhX%Can I use Celery with ActiveMQ/STOMP?rr}r(hX%Can I use Celery with ActiveMQ/STOMP?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU9#what-features-are-not-supported-when-using-ghettoq-stompUrefurihh]h]h]h]h]Uinternaluh jh]rhX9What features are not supported when using ghettoq/STOMP?rr}r(hX9What features are not supported when using ghettoq/STOMP?h jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r (hUh}r (h]h]h]h]h]uh j$h]r (j)r }r (hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#tasksUrefurihh]h]h]h]h]Uinternaluh j h]rhXTasksrr}r(hXTasksh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r (hUh}r!(h]h]h]h]h]uh jh]r"j)r#}r$(hUh}r%(U anchornameU8#how-can-i-reuse-the-same-connection-when-applying-tasksUrefurihh]h]h]h]h]Uinternaluh jh]r&hX8How can I reuse the same connection when applying tasks?r'r(}r)(hX8How can I reuse the same connection when applying tasks?h j#ubah!jubah!jubah!j-ubj)r*}r+(hUh}r,(h]h]h]h]h]uh jh]r-j)r.}r/(hUh}r0(h]h]h]h]h]uh j*h]r1j)r2}r3(hUh}r4(U anchornameU#can-i-execute-a-task-by-nameUrefurihh]h]h]h]h]Uinternaluh j.h]r5hXCan I execute a task by name?r6r7}r8(hXCan I execute a task by name?h j2ubah!jubah!jubah!j-ubj)r9}r:(hUh}r;(h]h]h]h]h]uh jh]r<j)r=}r>(hUh}r?(h]h]h]h]h]uh j9h]r@j)rA}rB(hUh}rC(U anchornameU.#how-can-i-get-the-task-id-of-the-current-taskUrefurihh]h]h]h]h]Uinternaluh j=h]rDhX.How can I get the task id of the current task?rErF}rG(hX.How can I get the task id of the current task?h jAubah!jubah!jubah!j-ubj)rH}rI(hUh}rJ(h]h]h]h]h]uh jh]rKj)rL}rM(hUh}rN(h]h]h]h]h]uh jHh]rOj)rP}rQ(hUh}rR(U anchornameU#can-i-specify-a-custom-task-idUrefurihh]h]h]h]h]Uinternaluh jLh]rShXCan I specify a custom task_id?rTrU}rV(hXCan I specify a custom task_id?h jPubah!jubah!jubah!j-ubj)rW}rX(hUh}rY(h]h]h]h]h]uh jh]rZj)r[}r\(hUh}r](h]h]h]h]h]uh jWh]r^j)r_}r`(hUh}ra(U anchornameU #can-i-use-decorators-with-tasksUrefurihh]h]h]h]h]Uinternaluh j[h]rbhX Can I use decorators with tasks?rcrd}re(hX Can I use decorators with tasks?h j_ubah!jubah!jubah!j-ubj)rf}rg(hUh}rh(h]h]h]h]h]uh jh]rij)rj}rk(hUh}rl(h]h]h]h]h]uh jfh]rmj)rn}ro(hUh}rp(U anchornameU#can-i-use-natural-task-idsUrefurihh]h]h]h]h]Uinternaluh jjh]rqhXCan I use natural task ids?rrrs}rt(hXCan I use natural task ids?h jnubah!jubah!jubah!j-ubj)ru}rv(hUh}rw(h]h]h]h]h]uh jh]rxj)ry}rz(hUh}r{(h]h]h]h]h]uh juh]r|j)r}}r~(hUh}r(U anchornameU4#how-can-i-run-a-task-once-another-task-has-finishedUrefurihh]h]h]h]h]Uinternaluh jyh]rhX4How can I run a task once another task has finished?rr}r(hX4How can I run a task once another task has finished?h j}ubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU%#can-i-cancel-the-execution-of-a-taskUrefurihh]h]h]h]h]Uinternaluh jh]rhX%Can I cancel the execution of a task?rr}r(hX%Can I cancel the execution of a task?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU>#why-aren-t-my-remote-control-commands-received-by-all-workersUrefurihh]h]h]h]h]Uinternaluh jh]rhX>Why aren't my remote control commands received by all workers?rr}r(hX>Why aren't my remote control commands received by all workers?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU+#can-i-send-some-tasks-to-only-some-serversUrefurihh]h]h]h]h]Uinternaluh jh]rhX+Can I send some tasks to only some servers?rr}r(hX+Can I send some tasks to only some servers?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU8#can-i-change-the-interval-of-a-periodic-task-at-runtimeUrefurihh]h]h]h]h]Uinternaluh jh]rhX8Can I change the interval of a periodic task at runtime?rr}r(hX8Can I change the interval of a periodic task at runtime?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU$#does-celery-support-task-prioritiesUrefurihh]h]h]h]h]Uinternaluh jh]rhX$Does celery support task priorities?rr}r(hX$Does celery support task priorities?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #should-i-use-retry-or-acks-lateUrefurihh]h]h]h]h]Uinternaluh jh]rhX Should I use retry or acks_late?rr}r(hX Should I use retry or acks_late?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameX#module-celery.task.baseUrefurihh]h]h]h]h]Uinternaluh jh]rhX3Can I schedule tasks to execute at a specific time?rr}r(hX3Can I schedule tasks to execute at a specific time?h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU"#how-do-i-shut-down-celeryd-safelyUrefurihh]h]h]h]h]Uinternaluh jh]r(hXHow do I shut down rr}r(hXHow do I shut down h jubj)r}r(hX ``celeryd``h}r(h]h]h]h]h]uh jh]rhXcelerydrr}r(hUh jubah!jubhX safely?rr}r(hX safely?h jubeh!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]r j)r }r (hUh}r (h]h]h]h]h]uh jh]r j)r}r(hUh}r(U anchornameU3#how-do-i-run-celeryd-in-the-background-on-platformUrefurihh]h]h]h]h]Uinternaluh j h]rhX5How do I run celeryd in the background on [platform]?rr}r(hX5How do I run celeryd in the background on [platform]?h jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh j$h]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#windowsUrefurihh]h]h]h]h]Uinternaluh jh]r hXWindowsr!r"}r#(hXWindowsh jubah!jubah!jubj)r$}r%(hUh}r&(h]h]h]h]h]uh jh]r'(j)r(}r)(hUh}r*(h]h]h]h]h]uh j$h]r+j)r,}r-(hUh}r.(h]h]h]h]h]uh j(h]r/j)r0}r1(hUh}r2(U anchornameU,#celeryd-keeps-spawning-processes-at-startupUrefurihh]h]h]h]h]Uinternaluh j,h]r3hX+celeryd keeps spawning processes at startupr4r5}r6(hX+celeryd keeps spawning processes at startuph j0ubah!jubah!jubah!j-ubj)r7}r8(hUh}r9(h]h]h]h]h]uh j$h]r:j)r;}r<(hUh}r=(h]h]h]h]h]uh j7h]r>j)r?}r@(hUh}rA(U anchornameU*#the-b-beat-option-to-celeryd-doesn-t-workUrefurihh]h]h]h]h]Uinternaluh j;h]rB(hXThe rCrD}rE(hXThe h j?ubj)rF}rG(hX``-B``h}rH(h]h]h]h]h]uh j?h]rIhX-BrJrK}rL(hUh jFubah!jubhX / rMrN}rO(hX / h j?ubj)rP}rQ(hX ``--beat``h}rR(h]h]h]h]h]uh j?h]rShX--beatrTrU}rV(hUh jPubah!jubhX option to celeryd doesn't work?rWrX}rY(hX option to celeryd doesn't work?h j?ubeh!jubah!jubah!j-ubj)rZ}r[(hUh}r\(h]h]h]h]h]uh j$h]r]j)r^}r_(hUh}r`(h]h]h]h]h]uh jZh]raj)rb}rc(hUh}rd(U anchornameU"#django-celery-can-t-find-settingsUrefurihh]h]h]h]h]Uinternaluh j^h]re(j)rf}rg(hX`django-celery`h}rh(h]h]h]h]h]uh jbh]rihX django-celeryrjrk}rl(hUh jfubah!jubhX can't find settings?rmrn}ro(hX can't find settings?h jbubeh!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubhj)rp}rq(hUh}rr(h]h]h]h]h]uh]rsj)rt}ru(hUh}rv(h]h]h]h]h]uh jph]rw(j)rx}ry(hUh}rz(h]h]h]h]h]uh jth]r{j)r|}r}(hUh}r~(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jxh]rhXHTTP Callback Tasks (Webhooks)rr}r(hhh j|ubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jth]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#basicsUrefurihh]h]h]h]h]Uinternaluh jh]rhXBasicsrr}r(hXBasicsh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#django-webhook-exampleUrefurihh]h]h]h]h]Uinternaluh jh]rhXDjango webhook examplerr}r(hXDjango webhook exampleh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#ruby-on-rails-webhook-exampleUrefurihh]h]h]h]h]Uinternaluh jh]rhXRuby on Rails webhook examplerr}r(hXRuby on Rails webhook exampleh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#executing-webhook-tasksUrefurihh]h]h]h]h]Uinternaluh jh]rhXExecuting webhook tasksrr}r(hXExecuting webhook tasksh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubhj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jh]rhX#Executable Jobs - celery.worker.jobrr}r(hhh jubah!jubah!jubah!j-ubah!j>ubhj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jh]rhXBroker Installationrr}r(hhh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#installing-rabbitmqUrefurihh]h]h]h]h]Uinternaluh jh]rhXInstalling RabbitMQrr}r(hXInstalling RabbitMQh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#setting-up-rabbitmqUrefurihh]h]h]h]h]Uinternaluh jh]rhXSetting up RabbitMQrr }r (hXSetting up RabbitMQh jubah!jubah!jubah!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh j h]rj)r}r(hUh}r(U anchornameU#installing-rabbitmq-on-os-xUrefurihh]h]h]h]h]Uinternaluh jh]rhXInstalling RabbitMQ on OS Xrr}r(hXInstalling RabbitMQ on OS Xh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh j h]r(j)r}r(hUh}r (h]h]h]h]h]uh jh]r!j)r"}r#(hUh}r$(h]h]h]h]h]uh jh]r%j)r&}r'(hUh}r((U anchornameU!#configuring-the-system-host-nameUrefurihh]h]h]h]h]Uinternaluh j"h]r)hX Configuring the system host namer*r+}r,(hX Configuring the system host nameh j&ubah!jubah!jubah!j-ubj)r-}r.(hUh}r/(h]h]h]h]h]uh jh]r0j)r1}r2(hUh}r3(h]h]h]h]h]uh j-h]r4j)r5}r6(hUh}r7(U anchornameU&#starting-stopping-the-rabbitmq-serverUrefurihh]h]h]h]h]Uinternaluh j1h]r8hX%Starting/Stopping the RabbitMQ serverr9r:}r;(hX%Starting/Stopping the RabbitMQ serverh j5ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubhj)r<}r=(hUh}r>(h]h]h]h]h]uh]r?j)r@}rA(hUh}rB(h]h]h]h]h]uh j<h]rC(j)rD}rE(hUh}rF(h]h]h]h]h]uh j@h]rGj)rH}rI(hUh}rJ(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jDh]rKhXSignals - celery.signalsrLrM}rN(hhh jHubah!jubah!jubj)rO}rP(hUh}rQ(h]h]h]h]h]uh j@h]rR(j)rS}rT(hUh}rU(h]h]h]h]h]uh jOh]rVj)rW}rX(hUh}rY(h]h]h]h]h]uh jSh]rZj)r[}r\(hUh}r](U anchornameU#basicsUrefurihh]h]h]h]h]Uinternaluh jWh]r^hXBasicsr_r`}ra(hXBasicsh j[ubah!jubah!jubah!j-ubj)rb}rc(hUh}rd(h]h]h]h]h]uh jOh]re(j)rf}rg(hUh}rh(h]h]h]h]h]uh jbh]rij)rj}rk(hUh}rl(U anchornameU #signal-refUrefurihh]h]h]h]h]Uinternaluh jfh]rmhXSignalsrnro}rp(hXSignalsh jjubah!jubah!jubj)rq}rr(hUh}rs(h]h]h]h]h]uh jbh]rt(j)ru}rv(hUh}rw(h]h]h]h]h]uh jqh]rxj)ry}rz(hUh}r{(h]h]h]h]h]uh juh]r|j)r}}r~(hUh}r(U anchornameU #task-signalsUrefurihh]h]h]h]h]Uinternaluh jyh]rhX Task Signalsrr}r(hX Task Signalsh j}ubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jqh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#worker-signalsUrefurihh]h]h]h]h]Uinternaluh jh]rhXWorker Signalsrr}r(hXWorker Signalsh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubhj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurihh]h]h]h]h]Uinternaluh jh]rhX Workers Guiderr}r(hjh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#starting-the-workerUrefurihh]h]h]h]h]Uinternaluh jh]rhXStarting the workerrr}r(hXStarting the workerrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#stopping-the-workerUrefurihh]h]h]h]h]Uinternaluh jh]rhXStopping the workerrr}r(hXStopping the workerrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#restarting-the-workerUrefurihh]h]h]h]h]Uinternaluh jh]rhXRestarting the workerrr}r(hXRestarting the workerrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #concurrencyUrefurihh]h]h]h]h]Uinternaluh jh]rhX Concurrencyrr}r(hX Concurrencyrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#persistent-revokesUrefurihh]h]h]h]h]Uinternaluh jh]rhXPersistent revokesrr}r(hXPersistent revokesrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #time-limitsUrefurihh]h]h]h]h]Uinternaluh jh]rhX Time limitsrr}r(hX Time limitsr h jubah!jubah!jubah!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jh]r j)r}r(hUh}r(h]h]h]h]h]uh j h]rj)r}r(hUh}r(U anchornameU#max-tasks-per-child-settingUrefurihh]h]h]h]h]Uinternaluh jh]rhXMax tasks per child settingrr}r(hXMax tasks per child settingrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r (h]h]h]h]h]uh jh]r!j)r"}r#(hUh}r$(U anchornameU#remote-controlUrefurihh]h]h]h]h]Uinternaluh jh]r%hXRemote controlr&r'}r((hXRemote controlr)h j"ubah!jubah!jubj)r*}r+(hUh}r,(h]h]h]h]h]uh jh]r-(j)r.}r/(hUh}r0(h]h]h]h]h]uh j*h]r1j)r2}r3(hUh}r4(h]h]h]h]h]uh j.h]r5j)r6}r7(hUh}r8(U anchornameU#the-broadcast-functionUrefurihh]h]h]h]h]Uinternaluh j2h]r9(hXThe r:r;}r<(hXThe r=h j6ubj)r>}r?(hX broadcast()h}r@(h]h]h]h]h]uh j6h]rAhX broadcast()rBrC}rD(hUh j>ubah!jubhX function.rErF}rG(hX function.rHh j6ubeh!jubah!jubah!j-ubj)rI}rJ(hUh}rK(h]h]h]h]h]uh j*h]rLj)rM}rN(hUh}rO(h]h]h]h]h]uh jIh]rPj)rQ}rR(hUh}rS(U anchornameU #rate-limitsUrefurihh]h]h]h]h]Uinternaluh jMh]rThX Rate limitsrUrV}rW(hX Rate limitsrXh jQubah!jubah!jubah!j-ubj)rY}rZ(hUh}r[(h]h]h]h]h]uh j*h]r\j)r]}r^(hUh}r_(h]h]h]h]h]uh jYh]r`j)ra}rb(hUh}rc(U anchornameU#remote-shutdownUrefurihh]h]h]h]h]Uinternaluh j]h]rdhXRemote shutdownrerf}rg(hXRemote shutdownrhh jaubah!jubah!jubah!j-ubj)ri}rj(hUh}rk(h]h]h]h]h]uh j*h]rlj)rm}rn(hUh}ro(h]h]h]h]h]uh jih]rpj)rq}rr(hUh}rs(U anchornameU#pingUrefurihh]h]h]h]h]Uinternaluh jmh]rthXPingrurv}rw(hXPingrxh jqubah!jubah!jubah!j-ubj)ry}rz(hUh}r{(h]h]h]h]h]uh j*h]r|j)r}}r~(hUh}r(h]h]h]h]h]uh jyh]rj)r}r(hUh}r(U anchornameU#enable-disable-eventsUrefurihh]h]h]h]h]Uinternaluh j}h]rhXEnable/disable eventsrr}r(hXEnable/disable eventsrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh j*h]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU)#writing-your-own-remote-control-commandsUrefurihh]h]h]h]h]Uinternaluh jh]rhX(Writing your own remote control commandsrr}r(hX(Writing your own remote control commandsrh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#inspecting-workersUrefurihh]h]h]h]h]Uinternaluh jh]rhXInspecting workersrr}r(hXInspecting workersrh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#dump-of-registered-tasksUrefurihh]h]h]h]h]Uinternaluh jh]rhXDump of registered tasksrr}r(hXDump of registered tasksrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU"#dump-of-currently-executing-tasksUrefurihh]h]h]h]h]Uinternaluh jh]rhX!Dump of currently executing tasksrr}r(hX!Dump of currently executing tasksrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#dump-of-scheduled-eta-tasksUrefurihh]h]h]h]h]Uinternaluh jh]rhXDump of scheduled (ETA) tasksrr}r(hXDump of scheduled (ETA) tasksrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#dump-of-reserved-tasksUrefurihh]h]h]h]h]Uinternaluh jh]rhXDump of reserved tasksrr}r(hXDump of reserved tasksrh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubjj)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jh]rhX Executing Tasks - celery.executerr}r(hj h jubah!jubah!jubah!j-ubah!j>ubj j)r}r(hUh}r(h]h]h]h]h]uh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r (hUh}r (h]h]h]h]h]uh jh]r j)r }r (hUh}r(U anchornameUUrefurij h]h]h]h]h]Uinternaluh jh]rhX%Sets of tasks, Subtasks and Callbacksrr}r(hjh j ubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r (hUh}r!(U anchornameU #subtasksUrefurij h]h]h]h]h]Uinternaluh jh]r"hXSubtasksr#r$}r%(hXSubtasksr&h jubah!jubah!jubj)r'}r((hUh}r)(h]h]h]h]h]uh jh]r*j)r+}r,(hUh}r-(h]h]h]h]h]uh j'h]r.j)r/}r0(hUh}r1(h]h]h]h]h]uh j+h]r2j)r3}r4(hUh}r5(U anchornameU #callbacksUrefurij h]h]h]h]h]Uinternaluh j/h]r6hX Callbacksr7r8}r9(hX Callbacksr:h j3ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r;}r<(hUh}r=(h]h]h]h]h]uh jh]r>(j)r?}r@(hUh}rA(h]h]h]h]h]uh j;h]rBj)rC}rD(hUh}rE(U anchornameU #task-setsUrefurij h]h]h]h]h]Uinternaluh j?h]rFhX Task SetsrGrH}rI(hX Task SetsrJh jCubah!jubah!jubj)rK}rL(hUh}rM(h]h]h]h]h]uh j;h]rNj)rO}rP(hUh}rQ(h]h]h]h]h]uh jKh]rRj)rS}rT(hUh}rU(h]h]h]h]h]uh jOh]rVj)rW}rX(hUh}rY(U anchornameU#resultsUrefurij h]h]h]h]h]Uinternaluh jSh]rZhXResultsr[r\}r](hXResultsr^h jWubah!jubah!jubah!j-ubah!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubjj)r_}r`(hUh}ra(h]h]h]h]h]uh]rbj)rc}rd(hUh}re(h]h]h]h]h]uh j_h]rf(j)rg}rh(hUh}ri(h]h]h]h]h]uh jch]rjj)rk}rl(hUh}rm(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jgh]rnhXChange historyrorp}rq(hjh jkubah!jubah!jubj)rr}rs(hUh}rt(h]h]h]h]h]uh jch]ru(j)rv}rw(hUh}rx(h]h]h]h]h]uh jrh]ryj)rz}r{(hUh}r|(h]h]h]h]h]uh jvh]r}j)r~}r(hUh}r(U anchornameU#version-2-1-5Urefurijh]h]h]h]h]Uinternaluh jzh]rhX2.1.5rr}r(hX2.1.5rh j~ubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-2-1-4Urefurijh]h]h]h]h]Uinternaluh jh]rhX2.1.4rr}r(hX2.1.4rh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#fixesUrefurijh]h]h]h]h]Uinternaluh jh]rhXFixesrr}r(hXFixesrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#documentationUrefurijh]h]h]h]h]Uinternaluh jh]rhX Documentationrr}r(hX Documentationrh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-2-1-3Urefurijh]h]h]h]h]Uinternaluh jh]rhX2.1.3rr}r(hX2.1.3rh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-2-1-2Urefurijh]h]h]h]h]Uinternaluh jh]rhX2.1.2rr}r(hX2.1.2rh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #v212-fixesUrefurijh]h]h]h]h]Uinternaluh jh]rhXFixesrr}r(hXFixesrh jubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-2-1-1Urefurijh]h]h]h]h]Uinternaluh jh]rhX2.1.1rr}r(hX2.1.1rh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]r j)r }r (hUh}r (U anchornameU #v211-fixesUrefurijh]h]h]h]h]Uinternaluh jh]r hXFixesrr}r(hXFixesrh j ubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#newsUrefurijh]h]h]h]h]Uinternaluh jh]rhXNewsrr}r (hXNewsr!h jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r"}r#(hUh}r$(h]h]h]h]h]uh jrh]r%(j)r&}r'(hUh}r((h]h]h]h]h]uh j"h]r)j)r*}r+(hUh}r,(U anchornameU#version-2-1-0Urefurijh]h]h]h]h]Uinternaluh j&h]r-hX2.1.0r.r/}r0(hX2.1.0r1h j*ubah!jubah!jubj)r2}r3(hUh}r4(h]h]h]h]h]uh j"h]r5(j)r6}r7(hUh}r8(h]h]h]h]h]uh j2h]r9j)r:}r;(hUh}r<(h]h]h]h]h]uh j6h]r=j)r>}r?(hUh}r@(U anchornameU#important-notesUrefurijh]h]h]h]h]Uinternaluh j:h]rAhXImportant NotesrBrC}rD(hXImportant NotesrEh j>ubah!jubah!jubah!j-ubj)rF}rG(hUh}rH(h]h]h]h]h]uh j2h]rIj)rJ}rK(hUh}rL(h]h]h]h]h]uh jFh]rMj)rN}rO(hUh}rP(U anchornameU #v210-newsUrefurijh]h]h]h]h]Uinternaluh jJh]rQhXNewsrRrS}rT(hXNewsrUh jNubah!jubah!jubah!j-ubj)rV}rW(hUh}rX(h]h]h]h]h]uh j2h]rYj)rZ}r[(hUh}r\(h]h]h]h]h]uh jVh]r]j)r^}r_(hUh}r`(U anchornameU #v210-fixesUrefurijh]h]h]h]h]Uinternaluh jZh]rahXFixesrbrc}rd(hXFixesreh j^ubah!jubah!jubah!j-ubj)rf}rg(hUh}rh(h]h]h]h]h]uh j2h]rij)rj}rk(hUh}rl(h]h]h]h]h]uh jfh]rmj)rn}ro(hUh}rp(U anchornameU #experimentalUrefurijh]h]h]h]h]Uinternaluh jjh]rqhX Experimentalrrrs}rt(hX Experimentalruh jnubah!jubah!jubah!j-ubj)rv}rw(hUh}rx(h]h]h]h]h]uh j2h]ryj)rz}r{(hUh}r|(h]h]h]h]h]uh jvh]r}j)r~}r(hUh}r(U anchornameU#v210-documentationUrefurijh]h]h]h]h]Uinternaluh jzh]rhX Documentationrr}r(hX Documentationrh j~ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-2-0-3Urefurijh]h]h]h]h]Uinternaluh jh]rhX2.0.3rr}r(hX2.0.3rh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #v203-fixesUrefurijh]h]h]h]h]Uinternaluh jh]rhXFixesrr}r(hXFixesrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#v203-documentationUrefurijh]h]h]h]h]Uinternaluh jh]rhX Documentationrr}r(hX Documentationrh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-2-0-2Urefurijh]h]h]h]h]Uinternaluh jh]rhX2.0.2rr}r(hX2.0.2rh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-2-0-1Urefurijh]h]h]h]h]Uinternaluh jh]rhX2.0.1rr}r(hX2.0.1rh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-2-0-0Urefurijh]h]h]h]h]Uinternaluh jh]rhX2.0.0rr}r(hX2.0.0rh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #forewordUrefurijh]h]h]h]h]Uinternaluh jh]rhXForewordrr}r(hXForewordrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#upgrading-for-django-usersUrefurijh]h]h]h]h]Uinternaluh jh]r hXUpgrading for Django-usersr r }r (hXUpgrading for Django-usersr h jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#upgrading-for-othersUrefurijh]h]h]h]h]Uinternaluh jh]rhXUpgrading for othersrr}r(hXUpgrading for othersrh jubah!jubah!jubj)r}r(hUh}r (h]h]h]h]h]uh jh]r!(j)r"}r#(hUh}r$(h]h]h]h]h]uh jh]r%j)r&}r'(hUh}r((h]h]h]h]h]uh j"h]r)j)r*}r+(hUh}r,(U anchornameU#database-result-backendUrefurijh]h]h]h]h]Uinternaluh j&h]r-hXDatabase result backendr.r/}r0(hXDatabase result backendr1h j*ubah!jubah!jubah!j-ubj)r2}r3(hUh}r4(h]h]h]h]h]uh jh]r5j)r6}r7(hUh}r8(h]h]h]h]h]uh j2h]r9j)r:}r;(hUh}r<(U anchornameU#cache-result-backendUrefurijh]h]h]h]h]Uinternaluh j6h]r=hXCache result backendr>r?}r@(hXCache result backendrAh j:ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rB}rC(hUh}rD(h]h]h]h]h]uh jh]rEj)rF}rG(hUh}rH(h]h]h]h]h]uh jBh]rIj)rJ}rK(hUh}rL(U anchornameU#backward-incompatible-changesUrefurijh]h]h]h]h]Uinternaluh jFh]rMhXBackward incompatible changesrNrO}rP(hXBackward incompatible changesrQh jJubah!jubah!jubah!j-ubj)rR}rS(hUh}rT(h]h]h]h]h]uh jh]rUj)rV}rW(hUh}rX(h]h]h]h]h]uh jRh]rYj)rZ}r[(hUh}r\(U anchornameU #v200-newsUrefurijh]h]h]h]h]Uinternaluh jVh]r]hXNewsr^r_}r`(hXNewsrah jZubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rb}rc(hUh}rd(h]h]h]h]h]uh jrh]rej)rf}rg(hUh}rh(h]h]h]h]h]uh jbh]rij)rj}rk(hUh}rl(U anchornameU#version-1-0-6Urefurijh]h]h]h]h]Uinternaluh jfh]rmhX1.0.6rnro}rp(hX1.0.6rqh jjubah!jubah!jubah!j-ubj)rr}rs(hUh}rt(h]h]h]h]h]uh jrh]ru(j)rv}rw(hUh}rx(h]h]h]h]h]uh jrh]ryj)rz}r{(hUh}r|(U anchornameU#version-1-0-5Urefurijh]h]h]h]h]Uinternaluh jvh]r}hX1.0.5r~r}r(hX1.0.5rh jzubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jrh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #criticalUrefurijh]h]h]h]h]Uinternaluh jh]rhXCriticalrr}r(hXCriticalrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#changesUrefurijh]h]h]h]h]Uinternaluh jh]rhXChangesrr}r(hXChangesrh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-1-0-4Urefurijh]h]h]h]h]Uinternaluh jh]rhX1.0.4rr}r(hX1.0.4rh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-1-0-3Urefurijh]h]h]h]h]Uinternaluh jh]rhX1.0.3rr}r(hX1.0.3rh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#v103-importantUrefurijh]h]h]h]h]Uinternaluh jh]rhXImportant notesrr}r(hXImportant notesrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #v103-newsUrefurijh]h]h]h]h]Uinternaluh jh]rhXNewsrr}r(hXNewsrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#remote-control-commandsUrefurijh]h]h]h]h]Uinternaluh jh]rhXRemote control commandsrr}r(hXRemote control commandsrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU #v103-fixesUrefurijh]h]h]h]h]Uinternaluh jh]rhXFixesrr}r(hXFixesr h jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jrh]r j)r}r(hUh}r(h]h]h]h]h]uh j h]rj)r}r(hUh}r(U anchornameU#version-1-0-2Urefurijh]h]h]h]h]Uinternaluh jh]rhX1.0.2rr}r(hX1.0.2rh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r (h]h]h]h]h]uh jh]r!j)r"}r#(hUh}r$(U anchornameU#version-1-0-1Urefurijh]h]h]h]h]Uinternaluh jh]r%hX1.0.1r&r'}r((hX1.0.1r)h j"ubah!jubah!jubah!j-ubj)r*}r+(hUh}r,(h]h]h]h]h]uh jrh]r-(j)r.}r/(hUh}r0(h]h]h]h]h]uh j*h]r1j)r2}r3(hUh}r4(U anchornameU#version-1-0-0Urefurijh]h]h]h]h]Uinternaluh j.h]r5hX1.0.0r6r7}r8(hX1.0.0r9h j2ubah!jubah!jubj)r:}r;(hUh}r<(h]h]h]h]h]uh j*h]r=(j)r>}r?(hUh}r@(h]h]h]h]h]uh j:h]rAj)rB}rC(hUh}rD(h]h]h]h]h]uh j>h]rEj)rF}rG(hUh}rH(U anchornameU#v100-incompatibleUrefurijh]h]h]h]h]Uinternaluh jBh]rIhXBackward incompatible changesrJrK}rL(hXBackward incompatible changesrMh jFubah!jubah!jubah!j-ubj)rN}rO(hUh}rP(h]h]h]h]h]uh j:h]rQj)rR}rS(hUh}rT(h]h]h]h]h]uh jNh]rUj)rV}rW(hUh}rX(U anchornameU #deprecationsUrefurijh]h]h]h]h]Uinternaluh jRh]rYhX DeprecationsrZr[}r\(hX Deprecationsr]h jVubah!jubah!jubah!j-ubj)r^}r_(hUh}r`(h]h]h]h]h]uh j:h]raj)rb}rc(hUh}rd(h]h]h]h]h]uh j^h]rej)rf}rg(hUh}rh(U anchornameU#id30Urefurijh]h]h]h]h]Uinternaluh jbh]rihXNewsrjrk}rl(hXNewsrmh jfubah!jubah!jubah!j-ubj)rn}ro(hUh}rp(h]h]h]h]h]uh j:h]rqj)rr}rs(hUh}rt(h]h]h]h]h]uh jnh]ruj)rv}rw(hUh}rx(U anchornameU #v100-changesUrefurijh]h]h]h]h]Uinternaluh jrh]ryhXChangesrzr{}r|(hXChangesr}h jvubah!jubah!jubah!j-ubj)r~}r(hUh}r(h]h]h]h]h]uh j:h]rj)r}r(hUh}r(h]h]h]h]h]uh j~h]rj)r}r(hUh}r(U anchornameU#bugsUrefurijh]h]h]h]h]Uinternaluh jh]rhXBugsrr}r(hXBugsrh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh j:h]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#v100-documentationUrefurijh]h]h]h]h]Uinternaluh jh]rhX Documentationrr}r(hX Documentationrh jubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-0-8-4Urefurijh]h]h]h]h]Uinternaluh jh]rhX0.8.4rr}r(hX0.8.4rh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-0-8-3Urefurijh]h]h]h]h]Uinternaluh jh]rhX0.8.3rr}r(hX0.8.3rh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-0-8-2Urefurijh]h]h]h]h]Uinternaluh jh]rhX0.8.2rr}r(hX0.8.2rh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jrh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#version-0-8-1Urefurijh]h]h]h]h]Uinternaluh jh]rhX0.8.1rr}r(hX0.8.1rh jubah!jubah!jubj)r}r(hUh}r(h]h]h]h]h]uh jh]r(j)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#very-important-noteUrefurijh]h]h]h]h]Uinternaluh jh]rhXVery important noterr}r(hXVery important noterh jubah!jubah!jubah!j-ubj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(h]h]h]h]h]uh jh]rj)r}r(hUh}r(U anchornameU#important-changesUrefurijh]h]h]h]h]Uinternaluh jh]rhXImportant changesrr}r (hXImportant changesr h jubah!jubah!jubah!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jh]r j)r }r (hUh}r (h]h]h]h]h]uh j h]r j)r }r (hUh}r (U anchornameU #v081-changesUrefurijh]h]h]h]h]Uinternaluh j h]r hXChangesr r }r (hXChangesr h j ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jrh]r (j)r }r (hUh}r (h]h]h]h]h]uh j h]r j)r }r (hUh}r (U anchornameU#version-0-8-0Urefurijh]h]h]h]h]Uinternaluh j h]r hX0.8.0r r }r (hX0.8.0r! h j ubah!jubah!jubj)r" }r# (hUh}r$ (h]h]h]h]h]uh j h]r% (j)r& }r' (hUh}r( (h]h]h]h]h]uh j" h]r) j)r* }r+ (hUh}r, (h]h]h]h]h]uh j& h]r- j)r. }r/ (hUh}r0 (U anchornameU#v080-incompatibleUrefurijh]h]h]h]h]Uinternaluh j* h]r1 hXBackward incompatible changesr2 r3 }r4 (hXBackward incompatible changesr5 h j. ubah!jubah!jubah!j-ubj)r6 }r7 (hUh}r8 (h]h]h]h]h]uh j" h]r9 j)r: }r; (hUh}r< (h]h]h]h]h]uh j6 h]r= j)r> }r? (hUh}r@ (U anchornameU#v080-importantUrefurijh]h]h]h]h]Uinternaluh j: h]rA hXImportant changesrB rC }rD (hXImportant changesrE h j> ubah!jubah!jubah!j-ubj)rF }rG (hUh}rH (h]h]h]h]h]uh j" h]rI j)rJ }rK (hUh}rL (h]h]h]h]h]uh jF h]rM j)rN }rO (hUh}rP (U anchornameU #v080-newsUrefurijh]h]h]h]h]Uinternaluh jJ h]rQ hXNewsrR rS }rT (hXNewsrU h jN ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rV }rW (hUh}rX (h]h]h]h]h]uh jrh]rY (j)rZ }r[ (hUh}r\ (h]h]h]h]h]uh jV h]r] j)r^ }r_ (hUh}r` (U anchornameU#version-0-6-0Urefurijh]h]h]h]h]Uinternaluh jZ h]ra hX0.6.0rb rc }rd (hX0.6.0re h j^ ubah!jubah!jubj)rf }rg (hUh}rh (h]h]h]h]h]uh jV h]ri (j)rj }rk (hUh}rl (h]h]h]h]h]uh jf h]rm j)rn }ro (hUh}rp (h]h]h]h]h]uh jj h]rq j)rr }rs (hUh}rt (U anchornameU#v060-importantUrefurijh]h]h]h]h]Uinternaluh jn h]ru hXImportant changesrv rw }rx (hXImportant changesry h jr ubah!jubah!jubah!j-ubj)rz }r{ (hUh}r| (h]h]h]h]h]uh jf h]r} j)r~ }r (hUh}r (h]h]h]h]h]uh jz h]r j)r }r (hUh}r (U anchornameU #v060-newsUrefurijh]h]h]h]h]Uinternaluh j~ h]r hXNewsr r }r (hXNewsr h j ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jrh]r j)r }r (hUh}r (h]h]h]h]h]uh j h]r j)r }r (hUh}r (U anchornameU#version-0-4-1Urefurijh]h]h]h]h]Uinternaluh j h]r hX0.4.1r r }r (hX0.4.1r h j ubah!jubah!jubah!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jrh]r j)r }r (hUh}r (h]h]h]h]h]uh j h]r j)r }r (hUh}r (U anchornameU#version-0-4-0Urefurijh]h]h]h]h]Uinternaluh j h]r hX0.4.0r r }r (hX0.4.0r h j ubah!jubah!jubah!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jrh]r j)r }r (hUh}r (h]h]h]h]h]uh j h]r j)r }r (hUh}r (U anchornameU#version-0-3-20Urefurijh]h]h]h]h]Uinternaluh j h]r hX0.3.20r r }r (hX0.3.20r h j ubah!jubah!jubah!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jrh]r j)r }r (hUh}r (h]h]h]h]h]uh j h]r j)r }r (hUh}r (U anchornameU#version-0-3-7Urefurijh]h]h]h]h]Uinternaluh j h]r hX0.3.7r r }r (hX0.3.7r h j ubah!jubah!jubah!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jrh]r j)r }r (hUh}r (h]h]h]h]h]uh j h]r j)r }r (hUh}r (U anchornameU#version-0-3-3Urefurijh]h]h]h]h]Uinternaluh j h]r hX0.3.3r r }r (hX0.3.3r h j ubah!jubah!jubah!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jrh]r j)r }r (hUh}r (h]h]h]h]h]uh j h]r j)r }r (hUh}r (U anchornameU#version-0-3-2Urefurijh]h]h]h]h]Uinternaluh j h]r hX0.3.2r r }r (hX0.3.2r h j ubah!jubah!jubah!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jrh]r j)r }r (hUh}r (h]h]h]h]h]uh j h]r j)r }r (hUh}r (U anchornameU#version-0-3-1Urefurijh]h]h]h]h]Uinternaluh j h]r hX0.3.1r r }r (hX0.3.1r h j ubah!jubah!jubah!j-ubj)r }r (hUh}r (h]h]h]h]h]uh jrh]r j)r }r (hUh}r!(h]h]h]h]h]uh j h]r!j)r!}r!(hUh}r!(U anchornameU#version-0-3-0Urefurijh]h]h]h]h]Uinternaluh j h]r!hX0.3.0r!r!}r!(hX0.3.0r !h j!ubah!jubah!jubah!j-ubj)r !}r !(hUh}r !(h]h]h]h]h]uh jrh]r !j)r!}r!(hUh}r!(h]h]h]h]h]uh j !h]r!j)r!}r!(hUh}r!(U anchornameU#version-0-2-0Urefurijh]h]h]h]h]Uinternaluh j!h]r!hX0.2.0r!r!}r!(hX0.2.0r!h j!ubah!jubah!jubah!j-ubj)r!}r!(hUh}r!(h]h]h]h]h]uh jrh]r!j)r!}r!(hUh}r !(h]h]h]h]h]uh j!h]r!!j)r"!}r#!(hUh}r$!(U anchornameU#pre3Urefurijh]h]h]h]h]Uinternaluh j!h]r%!hX 0.2.0-pre3r&!r'!}r(!(hX 0.2.0-pre3r)!h j"!ubah!jubah!jubah!j-ubj)r*!}r+!(hUh}r,!(h]h]h]h]h]uh jrh]r-!j)r.!}r/!(hUh}r0!(h]h]h]h]h]uh j*!h]r1!j)r2!}r3!(hUh}r4!(U anchornameU#pre2Urefurijh]h]h]h]h]Uinternaluh j.!h]r5!hX 0.2.0-pre2r6!r7!}r8!(hX 0.2.0-pre2r9!h j2!ubah!jubah!jubah!j-ubj)r:!}r;!(hUh}r!}r?!(hUh}r@!(h]h]h]h]h]uh j:!h]rA!j)rB!}rC!(hUh}rD!(U anchornameU#pre1Urefurijh]h]h]h]h]Uinternaluh j>!h]rE!hX 0.2.0-pre1rF!rG!}rH!(hX 0.2.0-pre1rI!h jB!ubah!jubah!jubah!j-ubj)rJ!}rK!(hUh}rL!(h]h]h]h]h]uh jrh]rM!j)rN!}rO!(hUh}rP!(h]h]h]h]h]uh jJ!h]rQ!j)rR!}rS!(hUh}rT!(U anchornameU#version-0-1-15Urefurijh]h]h]h]h]Uinternaluh jN!h]rU!hX0.1.15rV!rW!}rX!(hX0.1.15rY!h jR!ubah!jubah!jubah!j-ubj)rZ!}r[!(hUh}r\!(h]h]h]h]h]uh jrh]r]!j)r^!}r_!(hUh}r`!(h]h]h]h]h]uh jZ!h]ra!j)rb!}rc!(hUh}rd!(U anchornameU#version-0-1-14Urefurijh]h]h]h]h]Uinternaluh j^!h]re!hX0.1.14rf!rg!}rh!(hX0.1.14ri!h jb!ubah!jubah!jubah!j-ubj)rj!}rk!(hUh}rl!(h]h]h]h]h]uh jrh]rm!j)rn!}ro!(hUh}rp!(h]h]h]h]h]uh jj!h]rq!j)rr!}rs!(hUh}rt!(U anchornameU#version-0-1-13Urefurijh]h]h]h]h]Uinternaluh jn!h]ru!hX0.1.13rv!rw!}rx!(hX0.1.13ry!h jr!ubah!jubah!jubah!j-ubj)rz!}r{!(hUh}r|!(h]h]h]h]h]uh jrh]r}!j)r~!}r!(hUh}r!(h]h]h]h]h]uh jz!h]r!j)r!}r!(hUh}r!(U anchornameU#version-0-1-12Urefurijh]h]h]h]h]Uinternaluh j~!h]r!hX0.1.12r!r!}r!(hX0.1.12r!h j!ubah!jubah!jubah!j-ubj)r!}r!(hUh}r!(h]h]h]h]h]uh jrh]r!j)r!}r!(hUh}r!(h]h]h]h]h]uh j!h]r!j)r!}r!(hUh}r!(U anchornameU#version-0-1-11Urefurijh]h]h]h]h]Uinternaluh j!h]r!hX0.1.11r!r!}r!(hX0.1.11r!h j!ubah!jubah!jubah!j-ubj)r!}r!(hUh}r!(h]h]h]h]h]uh jrh]r!j)r!}r!(hUh}r!(h]h]h]h]h]uh j!h]r!j)r!}r!(hUh}r!(U anchornameU#version-0-1-10Urefurijh]h]h]h]h]Uinternaluh j!h]r!hX0.1.10r!r!}r!(hX0.1.10r!h j!ubah!jubah!jubah!j-ubj)r!}r!(hUh}r!(h]h]h]h]h]uh jrh]r!j)r!}r!(hUh}r!(h]h]h]h]h]uh j!h]r!j)r!}r!(hUh}r!(U anchornameU#version-0-1-8Urefurijh]h]h]h]h]Uinternaluh j!h]r!hX0.1.8r!r!}r!(hX0.1.8r!h j!ubah!jubah!jubah!j-ubj)r!}r!(hUh}r!(h]h]h]h]h]uh jrh]r!j)r!}r!(hUh}r!(h]h]h]h]h]uh j!h]r!j)r!}r!(hUh}r!(U anchornameU#version-0-1-7Urefurijh]h]h]h]h]Uinternaluh j!h]r!hX0.1.7r!r!}r!(hX0.1.7r!h j!ubah!jubah!jubah!j-ubj)r!}r!(hUh}r!(h]h]h]h]h]uh jrh]r!j)r!}r!(hUh}r!(h]h]h]h]h]uh j!h]r!j)r!}r!(hUh}r!(U anchornameU#version-0-1-6Urefurijh]h]h]h]h]Uinternaluh j!h]r!hX0.1.6r!r!}r!(hX0.1.6r!h j!ubah!jubah!jubah!j-ubj)r!}r!(hUh}r!(h]h]h]h]h]uh jrh]r!j)r!}r!(hUh}r!(h]h]h]h]h]uh j!h]r!j)r!}r!(hUh}r!(U anchornameU#version-0-1-0Urefurijh]h]h]h]h]Uinternaluh j!h]r!hX0.1.0r!r!}r!(hX0.1.0r!h j!ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubjj)r!}r!(hUh}r!(h]h]h]h]h]uh]r!j)r!}r!(hUh}r!(h]h]h]h]h]uh j!h]r!j)r!}r!(hUh}r!(h]h]h]h]h]uh j!h]r!j)r!}r!(hUh}r!(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j!h]r!hX&Terminal Utilities - celery.utils.termr!r!}r!(hj'h j!ubah!jubah!jubah!j-ubah!j>ubj(j)r!}r!(hUh}r!(h]h]h]h]h]uh]r"j)r"}r"(hUh}r"(h]h]h]h]h]uh j!h]r"j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r "}r "(hUh}r "(U anchornameUUrefurij(h]h]h]h]h]Uinternaluh j"h]r "hXTask Result - celery.resultr "r"}r"(hj0h j "ubah!jubah!jubah!j-ubah!j>ubj1j)r"}r"(hUh}r"(h]h]h]h]h]uh]r"j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"(j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r"}r"(hUh}r"(U anchornameUUrefurij1h]h]h]h]h]Uinternaluh j"h]r"hX:Tutorial: Creating a click counter using carrot and celeryr "r!"}r""(hj9h j"ubah!jubah!jubj)r#"}r$"(hUh}r%"(h]h]h]h]h]uh j"h]r&"(j)r'"}r("(hUh}r)"(h]h]h]h]h]uh j#"h]r*"j)r+"}r,"(hUh}r-"(h]h]h]h]h]uh j'"h]r."j)r/"}r0"(hUh}r1"(U anchornameU #introductionUrefurij1h]h]h]h]h]Uinternaluh j+"h]r2"hX Introductionr3"r4"}r5"(hX Introductionh j/"ubah!jubah!jubah!j-ubj)r6"}r7"(hUh}r8"(h]h]h]h]h]uh j#"h]r9"j)r:"}r;"(hUh}r<"(h]h]h]h]h]uh j6"h]r="j)r>"}r?"(hUh}r@"(U anchornameU #the-modelUrefurij1h]h]h]h]h]Uinternaluh j:"h]rA"hX The modelrB"rC"}rD"(hX The modelh j>"ubah!jubah!jubah!j-ubj)rE"}rF"(hUh}rG"(h]h]h]h]h]uh j#"h]rH"j)rI"}rJ"(hUh}rK"(h]h]h]h]h]uh jE"h]rL"j)rM"}rN"(hUh}rO"(U anchornameU(#using-carrot-to-send-clicks-as-messagesUrefurij1h]h]h]h]h]Uinternaluh jI"h]rP"hX'Using carrot to send clicks as messagesrQ"rR"}rS"(hX'Using carrot to send clicks as messagesh jM"ubah!jubah!jubah!j-ubj)rT"}rU"(hUh}rV"(h]h]h]h]h]uh j#"h]rW"j)rX"}rY"(hUh}rZ"(h]h]h]h]h]uh jT"h]r["j)r\"}r]"(hUh}r^"(U anchornameU#view-and-urlsUrefurij1h]h]h]h]h]Uinternaluh jX"h]r_"hX View and URLsr`"ra"}rb"(hX View and URLsh j\"ubah!jubah!jubah!j-ubj)rc"}rd"(hUh}re"(h]h]h]h]h]uh j#"h]rf"j)rg"}rh"(hUh}ri"(h]h]h]h]h]uh jc"h]rj"j)rk"}rl"(hUh}rm"(U anchornameU#creating-the-periodic-taskUrefurij1h]h]h]h]h]Uinternaluh jg"h]rn"hXCreating the periodic taskro"rp"}rq"(hXCreating the periodic taskh jk"ubah!jubah!jubah!j-ubj)rr"}rs"(hUh}rt"(h]h]h]h]h]uh j#"h]ru"j)rv"}rw"(hUh}rx"(h]h]h]h]h]uh jr"h]ry"j)rz"}r{"(hUh}r|"(U anchornameU #finishingUrefurij1h]h]h]h]h]Uinternaluh jv"h]r}"hX Finishingr~"r"}r"(hX Finishingh jz"ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubj:j)r"}r"(hUh}r"(h]h]h]h]h]uh]r"j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"(j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r"}r"(hUh}r"(U anchornameUUrefurij:h]h]h]h]h]Uinternaluh j"h]r"hXMonitoring Guider"r"}r"(hjBh j"ubah!jubah!jubj)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"(j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r"}r"(hUh}r"(U anchornameU #introductionUrefurij:h]h]h]h]h]Uinternaluh j"h]r"hX Introductionr"r"}r"(hX Introductionr"h j"ubah!jubah!jubah!j-ubj)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"(j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r"}r"(hUh}r"(U anchornameU#workersUrefurij:h]h]h]h]h]Uinternaluh j"h]r"hXWorkersr"r"}r"(hXWorkersr"h j"ubah!jubah!jubj)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"(j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"(j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r"}r"(hUh}r"(U anchornameU#celeryctl-management-utilityUrefurij:h]h]h]h]h]Uinternaluh j"h]r"hXceleryctl: Management Utilityr"r"}r"(hXceleryctl: Management Utilityr"h j"ubah!jubah!jubj)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"(j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r"}r"(hUh}r"(U anchornameU #commandsUrefurij:h]h]h]h]h]Uinternaluh j"h]r"hXCommandsr"r"}r"(hXCommandsr"h j"ubah!jubah!jubah!j-ubj)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r"}r"(hUh}r"(U anchornameU#specifying-destination-nodesUrefurij:h]h]h]h]h]Uinternaluh j"h]r"hXSpecifying destination nodesr"r"}r"(hXSpecifying destination nodesr"h j"ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"(j)r"}r"(hUh}r"(h]h]h]h]h]uh j"h]r"j)r"}r"(hUh}r"(U anchornameU#django-admin-monitorUrefurij:h]h]h]h]h]Uinternaluh j"h]r"hXDjango Admin Monitorr"r"}r"(hXDjango Admin Monitorr"h j"ubah!jubah!jubj)r#}r#(hUh}r#(h]h]h]h]h]uh j"h]r#(j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r #(hUh}r #(h]h]h]h]h]uh j#h]r #j)r #}r #(hUh}r#(U anchornameU#starting-the-monitorUrefurij:h]h]h]h]h]Uinternaluh j#h]r#hXStarting the monitorr#r#}r#(hXStarting the monitorr#h j #ubah!jubah!jubah!j-ubj)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(U anchornameU#shutter-frequencyUrefurij:h]h]h]h]h]Uinternaluh j#h]r#hXShutter frequencyr #r!#}r"#(hXShutter frequencyr##h j#ubah!jubah!jubah!j-ubj)r$#}r%#(hUh}r&#(h]h]h]h]h]uh j#h]r'#j)r(#}r)#(hUh}r*#(h]h]h]h]h]uh j$#h]r+#j)r,#}r-#(hUh}r.#(U anchornameU#using-outside-of-djangoUrefurij:h]h]h]h]h]Uinternaluh j(#h]r/#hXUsing outside of Djangor0#r1#}r2#(hXUsing outside of Djangor3#h j,#ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r4#}r5#(hUh}r6#(h]h]h]h]h]uh j"h]r7#j)r8#}r9#(hUh}r:#(h]h]h]h]h]uh j4#h]r;#j)r<#}r=#(hUh}r>#(U anchornameU#celeryev-curses-monitorUrefurij:h]h]h]h]h]Uinternaluh j8#h]r?#hXceleryev: Curses Monitorr@#rA#}rB#(hXceleryev: Curses MonitorrC#h j<#ubah!jubah!jubah!j-ubj)rD#}rE#(hUh}rF#(h]h]h]h]h]uh j"h]rG#j)rH#}rI#(hUh}rJ#(h]h]h]h]h]uh jD#h]rK#j)rL#}rM#(hUh}rN#(U anchornameU#celerymon-web-monitorUrefurij:h]h]h]h]h]Uinternaluh jH#h]rO#hXcelerymon: Web monitorrP#rQ#}rR#(hXcelerymon: Web monitorrS#h jL#ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rT#}rU#(hUh}rV#(h]h]h]h]h]uh j"h]rW#(j)rX#}rY#(hUh}rZ#(h]h]h]h]h]uh jT#h]r[#j)r\#}r]#(hUh}r^#(U anchornameU #rabbitmqUrefurij:h]h]h]h]h]Uinternaluh jX#h]r_#hXRabbitMQr`#ra#}rb#(hXRabbitMQrc#h j\#ubah!jubah!jubj)rd#}re#(hUh}rf#(h]h]h]h]h]uh jT#h]rg#j)rh#}ri#(hUh}rj#(h]h]h]h]h]uh jd#h]rk#j)rl#}rm#(hUh}rn#(h]h]h]h]h]uh jh#h]ro#j)rp#}rq#(hUh}rr#(U anchornameU#inspecting-queuesUrefurij:h]h]h]h]h]Uinternaluh jl#h]rs#hXInspecting queuesrt#ru#}rv#(hXInspecting queuesrw#h jp#ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)rx#}ry#(hUh}rz#(h]h]h]h]h]uh j"h]r{#j)r|#}r}#(hUh}r~#(h]h]h]h]h]uh jx#h]r#j)r#}r#(hUh}r#(U anchornameU#muninUrefurij:h]h]h]h]h]Uinternaluh j|#h]r#hXMuninr#r#}r#(hXMuninr#h j#ubah!jubah!jubah!j-ubj)r#}r#(hUh}r#(h]h]h]h]h]uh j"h]r#(j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(U anchornameU#eventsUrefurij:h]h]h]h]h]Uinternaluh j#h]r#hXEventsr#r#}r#(hXEventsr#h j#ubah!jubah!jubj)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#(j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#(j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(U anchornameU #snapshotsUrefurij:h]h]h]h]h]Uinternaluh j#h]r#hX Snapshotsr#r#}r#(hX Snapshotsr#h j#ubah!jubah!jubj)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(U anchornameU#custom-cameraUrefurij:h]h]h]h]h]Uinternaluh j#h]r#hX Custom Camerar#r#}r#(hX Custom Camerar#h j#ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#(j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(U anchornameU#event-referenceUrefurij:h]h]h]h]h]Uinternaluh j#h]r#hXEvent Referencer#r#}r#(hXEvent Referencer#h j#ubah!jubah!jubj)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#(j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(U anchornameU #task-eventsUrefurij:h]h]h]h]h]Uinternaluh j#h]r#hX Task Eventsr#r#}r#(hX Task Eventsr#h j#ubah!jubah!jubah!j-ubj)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r#}r#(hUh}r#(U anchornameU#worker-eventsUrefurij:h]h]h]h]h]Uinternaluh j#h]r#hX Worker Eventsr#r#}r#(hX Worker Eventsr#h j#ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubjCj)r#}r#(hUh}r#(h]h]h]h]h]uh]r#j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#(j)r#}r#(hUh}r#(h]h]h]h]h]uh j#h]r#j)r$}r$(hUh}r$(U anchornameUUrefurijCh]h]h]h]h]Uinternaluh j#h]r$hXConfiguration - celery.confr$r$}r$(hjKh j$ubah!jubah!jubj)r$}r$(hUh}r $(h]h]h]h]h]uh j#h]r $(j)r $}r $(hUh}r $(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(h]h]h]h]h]uh j $h]r$j)r$}r$(hUh}r$(U anchornameU#queuesUrefurijCh]h]h]h]h]Uinternaluh j$h]r$hXQueuesr$r$}r$(hXQueuesh j$ubah!jubah!jubah!j-ubj)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r $(h]h]h]h]h]uh j$h]r!$j)r"$}r#$(hUh}r$$(U anchornameU#sending-e-mailsUrefurijCh]h]h]h]h]Uinternaluh j$h]r%$hXSending E-Mailsr&$r'$}r($(hXSending E-Mailsh j"$ubah!jubah!jubah!j-ubj)r)$}r*$(hUh}r+$(h]h]h]h]h]uh j$h]r,$j)r-$}r.$(hUh}r/$(h]h]h]h]h]uh j)$h]r0$j)r1$}r2$(hUh}r3$(U anchornameU #executionUrefurijCh]h]h]h]h]Uinternaluh j-$h]r4$hX Executionr5$r6$}r7$(hX Executionh j1$ubah!jubah!jubah!j-ubj)r8$}r9$(hUh}r:$(h]h]h]h]h]uh j$h]r;$j)r<$}r=$(hUh}r>$(h]h]h]h]h]uh j8$h]r?$j)r@$}rA$(hUh}rB$(U anchornameU#brokerUrefurijCh]h]h]h]h]Uinternaluh j<$h]rC$hXBrokerrD$rE$}rF$(hXBrokerh j@$ubah!jubah!jubah!j-ubj)rG$}rH$(hUh}rI$(h]h]h]h]h]uh j$h]rJ$j)rK$}rL$(hUh}rM$(h]h]h]h]h]uh jG$h]rN$j)rO$}rP$(hUh}rQ$(U anchornameU #celerybeatUrefurijCh]h]h]h]h]Uinternaluh jK$h]rR$hX CelerybeatrS$rT$}rU$(hX Celerybeath jO$ubah!jubah!jubah!j-ubj)rV$}rW$(hUh}rX$(h]h]h]h]h]uh j$h]rY$j)rZ$}r[$(hUh}r\$(h]h]h]h]h]uh jV$h]r]$j)r^$}r_$(hUh}r`$(U anchornameU #celerymonUrefurijCh]h]h]h]h]Uinternaluh jZ$h]ra$hX Celerymonrb$rc$}rd$(hX Celerymonh j^$ubah!jubah!jubah!j-ubj)re$}rf$(hUh}rg$(h]h]h]h]h]uh j$h]rh$j)ri$}rj$(hUh}rk$(h]h]h]h]h]uh je$h]rl$j)rm$}rn$(hUh}ro$(U anchornameU#celerydUrefurijCh]h]h]h]h]Uinternaluh ji$h]rp$hXCelerydrq$rr$}rs$(hXCelerydh jm$ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubjLj)rt$}ru$(hUh}rv$(h]h]h]h]h]uh]rw$j)rx$}ry$(hUh}rz$(h]h]h]h]h]uh jt$h]r{$j)r|$}r}$(hUh}r~$(h]h]h]h]h]uh jx$h]r$j)r$}r$(hUh}r$(U anchornameUUrefurijLh]h]h]h]h]Uinternaluh j|$h]r$hX2Remote Management of Workers - celery.task.controlr$r$}r$(hjTh j$ubah!jubah!jubah!j-ubah!j>ubjUj)r$}r$(hUh}r$(h]h]h]h]h]uh]r$j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(U anchornameUUrefurijUh]h]h]h]h]Uinternaluh j$h]r$hXBackends - celery.backendsr$r$}r$(hj]h j$ubah!jubah!jubah!j-ubah!j>ubj^j)r$}r$(hUh}r$(h]h]h]h]h]uh]r$j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(U anchornameUUrefurij^h]h]h]h]h]Uinternaluh j$h]r$hX!Defining Tasks - celery.task.baser$r$}r$(hjfh j$ubah!jubah!jubah!j-ubah!j>ubjgj)r$}r$(hUh}r$(h]h]h]h]h]uh]r$j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$(j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(U anchornameUUrefurijgh]h]h]h]h]Uinternaluh j$h]r$hXPeriodic Tasksr$r$}r$(hjoh j$ubah!jubah!jubj)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$(j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(U anchornameU #introductionUrefurijgh]h]h]h]h]Uinternaluh j$h]r$hX Introductionr$r$}r$(hX Introductionr$h j$ubah!jubah!jubah!j-ubj)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$(j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(U anchornameU#entriesUrefurijgh]h]h]h]h]Uinternaluh j$h]r$hXEntriesr$r$}r$(hXEntriesr$h j$ubah!jubah!jubj)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(U anchornameU#available-fieldsUrefurijgh]h]h]h]h]Uinternaluh j$h]r$hXAvailable Fieldsr$r$}r$(hXAvailable Fieldsr$h j$ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r$}r$(hUh}r$(h]h]h]h]h]uh j$h]r$j)r%}r%(hUh}r%(U anchornameU#crontab-schedulesUrefurijgh]h]h]h]h]Uinternaluh j$h]r%hXCrontab schedulesr%r%}r%(hXCrontab schedulesr%h j%ubah!jubah!jubah!j-ubj)r%}r %(hUh}r %(h]h]h]h]h]uh j$h]r %(j)r %}r %(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(U anchornameU#starting-celerybeatUrefurijgh]h]h]h]h]Uinternaluh j %h]r%hXStarting celerybeatr%r%}r%(hXStarting celerybeatr%h j%ubah!jubah!jubj)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r %}r!%(hUh}r"%(h]h]h]h]h]uh j%h]r#%j)r$%}r%%(hUh}r&%(U anchornameU#using-custom-scheduler-classesUrefurijgh]h]h]h]h]Uinternaluh j %h]r'%hXUsing custom scheduler classesr(%r)%}r*%(hXUsing custom scheduler classesr+%h j$%ubah!jubah!jubah!j-ubah!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubjpj)r,%}r-%(hUh}r.%(h]h]h]h]h]uh]r/%j)r0%}r1%(hUh}r2%(h]h]h]h]h]uh j,%h]r3%j)r4%}r5%(hUh}r6%(h]h]h]h]h]uh j0%h]r7%j)r8%}r9%(hUh}r:%(U anchornameUUrefurijph]h]h]h]h]Uinternaluh j4%h]r;%hX&Datastructures - celery.datastructuresr<%r=%}r>%(hjxh j8%ubah!jubah!jubah!j-ubah!j>ubjyj)r?%}r@%(hUh}rA%(h]h]h]h]h]uh]rB%j)rC%}rD%(hUh}rE%(h]h]h]h]h]uh j?%h]rF%(j)rG%}rH%(hUh}rI%(h]h]h]h]h]uh jC%h]rJ%j)rK%}rL%(hUh}rM%(U anchornameUUrefurijyh]h]h]h]h]Uinternaluh jG%h]rN%hXCelery - Distributed Task QueuerO%rP%}rQ%(hjh jK%ubah!jubah!jubj)rR%}rS%(hUh}rT%(h]h]h]h]h]uh jC%h]rU%(j)rV%}rW%(hUh}rX%(UnumberedKUparentjyU titlesonlyUglobh]h]h]h]h]Uentries]rY%(Nj]rZ%Nj^r[%Nj_r\%Nj`r]%Njar^%Njbr_%Njcr`%Njdra%Njerb%Njfrc%Njgrd%Njhre%eUhiddenUmaxdepthKU includefiles]rf%(j]j^j_j`jajbjcjdjejfjgjheU includehiddenuh jR%h]h!jubj)rg%}rh%(hUh}ri%(h]h]h]h]h]uh jR%h]rj%j)rk%}rl%(hUh}rm%(h]h]h]h]h]uh jg%h]rn%j)ro%}rp%(hUh}rq%(U anchornameU#indices-and-tablesUrefurijyh]h]h]h]h]Uinternaluh jk%h]rr%hXIndices and tablesrs%rt%}ru%(hXIndices and tablesh jo%ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubjj)rv%}rw%(hUh}rx%(h]h]h]h]h]uh]ry%j)rz%}r{%(hUh}r|%(h]h]h]h]h]uh jv%h]r}%(j)r~%}r%(hUh}r%(h]h]h]h]h]uh jz%h]r%j)r%}r%(hUh}r%(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j~%h]r%hXFirst steps with Celeryr%r%}r%(hjh j%ubah!jubah!jubj)r%}r%(hUh}r%(h]h]h]h]h]uh jz%h]r%(j)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(U anchornameU#creating-a-simple-taskUrefurijh]h]h]h]h]Uinternaluh j%h]r%hXCreating a simple taskr%r%}r%(hXCreating a simple taskh j%ubah!jubah!jubah!j-ubj)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(U anchornameU#configurationUrefurijh]h]h]h]h]Uinternaluh j%h]r%hX Configurationr%r%}r%(hX Configurationh j%ubah!jubah!jubah!j-ubj)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(U anchornameU!#running-the-celery-worker-serverUrefurijh]h]h]h]h]Uinternaluh j%h]r%hX Running the celery worker serverr%r%}r%(hX Running the celery worker serverh j%ubah!jubah!jubah!j-ubj)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(U anchornameU#executing-the-taskUrefurijh]h]h]h]h]Uinternaluh j%h]r%hXExecuting the taskr%r%}r%(hXExecuting the taskh j%ubah!jubah!jubah!j-ubj)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(U anchornameU#where-to-go-from-hereUrefurijh]h]h]h]h]Uinternaluh j%h]r%hXWhere to go from herer%r%}r%(hXWhere to go from hereh j%ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubjj)r%}r%(hUh}r%(h]h]h]h]h]uh]r%j)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j%h]r%hXExceptions - celery.exceptionsr%r%}r%(hjh j%ubah!jubah!jubah!j-ubah!j>ubjj)r%}r%(hUh}r%(h]h]h]h]h]uh]r%j)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(h]h]h]h]h]uh j%h]r%j)r%}r%(hUh}r%(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j%h]r%hXMessaging - celery.messagingr%r%}r%(hjh j%ubah!jubah!jubah!j-ubah!j>ubjj)r%}r%(hUh}r&(h]h]h]h]h]uh]r&j)r&}r&(hUh}r&(h]h]h]h]h]uh j%h]r&(j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r &j)r &}r &(hUh}r &(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j&h]r &hX Tutorialsr&r&}r&(hjh j &ubah!jubah!jubj)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&j)r&}r&(hUh}r&(UnumberedKUparentjU titlesonlyUglobh]h]h]h]h]Uentries]r&(Njr&Njr&eUhiddenUmaxdepthKU includefiles]r&(jjeU includehiddenuh j&h]h!jubah!j>ubeh!j-ubah!j>ubjj)r&}r&(hUh}r&(h]h]h]h]h]uh]r&j)r &}r!&(hUh}r"&(h]h]h]h]h]uh j&h]r#&(j)r$&}r%&(hUh}r&&(h]h]h]h]h]uh j &h]r'&j)r(&}r)&(hUh}r*&(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j$&h]r+&hX Contributingr,&r-&}r.&(hjh j(&ubah!jubah!jubj)r/&}r0&(hUh}r1&(h]h]h]h]h]uh j &h]r2&(j)r3&}r4&(hUh}r5&(h]h]h]h]h]uh j/&h]r6&(j)r7&}r8&(hUh}r9&(h]h]h]h]h]uh j3&h]r:&j)r;&}r<&(hUh}r=&(U anchornameU#community-code-of-conductUrefurijh]h]h]h]h]Uinternaluh j7&h]r>&hXCommunity Code of Conductr?&r@&}rA&(hXCommunity Code of Conducth j;&ubah!jubah!jubj)rB&}rC&(hUh}rD&(h]h]h]h]h]uh j3&h]rE&(j)rF&}rG&(hUh}rH&(h]h]h]h]h]uh jB&h]rI&j)rJ&}rK&(hUh}rL&(h]h]h]h]h]uh jF&h]rM&j)rN&}rO&(hUh}rP&(U anchornameU#be-considerateUrefurijh]h]h]h]h]Uinternaluh jJ&h]rQ&hXBe considerate.rR&rS&}rT&(hXBe considerate.h jN&ubah!jubah!jubah!j-ubj)rU&}rV&(hUh}rW&(h]h]h]h]h]uh jB&h]rX&j)rY&}rZ&(hUh}r[&(h]h]h]h]h]uh jU&h]r\&j)r]&}r^&(hUh}r_&(U anchornameU#be-respectfulUrefurijh]h]h]h]h]Uinternaluh jY&h]r`&hXBe respectful.ra&rb&}rc&(hXBe respectful.h j]&ubah!jubah!jubah!j-ubj)rd&}re&(hUh}rf&(h]h]h]h]h]uh jB&h]rg&j)rh&}ri&(hUh}rj&(h]h]h]h]h]uh jd&h]rk&j)rl&}rm&(hUh}rn&(U anchornameU#be-collaborativeUrefurijh]h]h]h]h]Uinternaluh jh&h]ro&hXBe collaborative.rp&rq&}rr&(hXBe collaborative.h jl&ubah!jubah!jubah!j-ubj)rs&}rt&(hUh}ru&(h]h]h]h]h]uh jB&h]rv&j)rw&}rx&(hUh}ry&(h]h]h]h]h]uh js&h]rz&j)r{&}r|&(hUh}r}&(U anchornameU!#when-you-disagree-consult-othersUrefurijh]h]h]h]h]Uinternaluh jw&h]r~&hX"When you disagree, consult others.r&r&}r&(hX"When you disagree, consult others.h j{&ubah!jubah!jubah!j-ubj)r&}r&(hUh}r&(h]h]h]h]h]uh jB&h]r&j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&j)r&}r&(hUh}r&(U anchornameU!#when-you-are-unsure-ask-for-helpUrefurijh]h]h]h]h]Uinternaluh j&h]r&hX"When you are unsure, ask for help.r&r&}r&(hX"When you are unsure, ask for help.h j&ubah!jubah!jubah!j-ubj)r&}r&(hUh}r&(h]h]h]h]h]uh jB&h]r&j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&j)r&}r&(hUh}r&(U anchornameU#step-down-consideratelyUrefurijh]h]h]h]h]Uinternaluh j&h]r&hXStep down considerately.r&r&}r&(hXStep down considerately.h j&ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r&}r&(hUh}r&(h]h]h]h]h]uh j/&h]r&(j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&j)r&}r&(hUh}r&(U anchornameU#reporting-a-bugUrefurijh]h]h]h]h]Uinternaluh j&h]r&hXReporting a Bugr&r&}r&(hXReporting a Bugh j&ubah!jubah!jubj)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&j)r&}r&(hUh}r&(U anchornameU#issue-trackersUrefurijh]h]h]h]h]Uinternaluh j&h]r&hXIssue Trackersr&r&}r&(hXIssue Trackersh j&ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r&}r&(hUh}r&(h]h]h]h]h]uh j/&h]r&j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&j)r&}r&(hUh}r&(U anchornameU #coding-styleUrefurijh]h]h]h]h]Uinternaluh j&h]r&hX Coding Styler&r&}r&(hX Coding Styleh j&ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubjj)r&}r&(hUh}r&(h]h]h]h]h]uh]r&j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&(j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&j)r&}r&(hUh}r&(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j&h]r&hX Module Indexr&r&}r&(hjh j&ubah!jubah!jubj)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&(j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&(j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&j)r&}r&(hUh}r&(U anchornameU#workerUrefurijh]h]h]h]h]Uinternaluh j&h]r&hXWorkerr&r&}r&(hXWorkerh j&ubah!jubah!jubj)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&(j)r&}r&(hUh}r&(h]h]h]h]h]uh j&h]r&j)r&}r'(hUh}r'(h]h]h]h]h]uh j&h]r'j)r'}r'(hUh}r'(U anchornameU#celery-workerUrefurijh]h]h]h]h]Uinternaluh j&h]r'hX celery.workerr'r'}r '(hX celery.workerh j'ubah!jubah!jubah!j-ubj)r '}r '(hUh}r '(h]h]h]h]h]uh j&h]r 'j)r'}r'(hUh}r'(h]h]h]h]h]uh j 'h]r'j)r'}r'(hUh}r'(U anchornameU#celery-worker-jobUrefurijh]h]h]h]h]Uinternaluh j'h]r'hXcelery.worker.jobr'r'}r'(hXcelery.worker.jobh j'ubah!jubah!jubah!j-ubj)r'}r'(hUh}r'(h]h]h]h]h]uh j&h]r'j)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r 'j)r!'}r"'(hUh}r#'(U anchornameU#celery-worker-poolUrefurijh]h]h]h]h]Uinternaluh j'h]r$'hXcelery.worker.poolr%'r&'}r''(hXcelery.worker.poolh j!'ubah!jubah!jubah!j-ubj)r('}r)'(hUh}r*'(h]h]h]h]h]uh j&h]r+'j)r,'}r-'(hUh}r.'(h]h]h]h]h]uh j('h]r/'j)r0'}r1'(hUh}r2'(U anchornameU#celery-worker-listenerUrefurijh]h]h]h]h]Uinternaluh j,'h]r3'hXcelery.worker.listenerr4'r5'}r6'(hXcelery.worker.listenerh j0'ubah!jubah!jubah!j-ubj)r7'}r8'(hUh}r9'(h]h]h]h]h]uh j&h]r:'j)r;'}r<'(hUh}r='(h]h]h]h]h]uh j7'h]r>'j)r?'}r@'(hUh}rA'(U anchornameU#celery-worker-controllersUrefurijh]h]h]h]h]Uinternaluh j;'h]rB'hXcelery.worker.controllersrC'rD'}rE'(hXcelery.worker.controllersh j?'ubah!jubah!jubah!j-ubj)rF'}rG'(hUh}rH'(h]h]h]h]h]uh j&h]rI'j)rJ'}rK'(hUh}rL'(h]h]h]h]h]uh jF'h]rM'j)rN'}rO'(hUh}rP'(U anchornameU#celery-worker-schedulerUrefurijh]h]h]h]h]Uinternaluh jJ'h]rQ'hXcelery.worker.schedulerrR'rS'}rT'(hXcelery.worker.schedulerh jN'ubah!jubah!jubah!j-ubj)rU'}rV'(hUh}rW'(h]h]h]h]h]uh j&h]rX'j)rY'}rZ'(hUh}r['(h]h]h]h]h]uh jU'h]r\'j)r]'}r^'(hUh}r_'(U anchornameU#celery-worker-bucketsUrefurijh]h]h]h]h]Uinternaluh jY'h]r`'hXcelery.worker.bucketsra'rb'}rc'(hXcelery.worker.bucketsh j]'ubah!jubah!jubah!j-ubj)rd'}re'(hUh}rf'(h]h]h]h]h]uh j&h]rg'j)rh'}ri'(hUh}rj'(h]h]h]h]h]uh jd'h]rk'j)rl'}rm'(hUh}rn'(U anchornameU#celery-worker-heartbeatUrefurijh]h]h]h]h]Uinternaluh jh'h]ro'hXcelery.worker.heartbeatrp'rq'}rr'(hXcelery.worker.heartbeath jl'ubah!jubah!jubah!j-ubj)rs'}rt'(hUh}ru'(h]h]h]h]h]uh j&h]rv'j)rw'}rx'(hUh}ry'(h]h]h]h]h]uh js'h]rz'j)r{'}r|'(hUh}r}'(U anchornameU#celery-worker-revokeUrefurijh]h]h]h]h]Uinternaluh jw'h]r~'hXcelery.worker.revoker'r'}r'(hXcelery.worker.revokeh j{'ubah!jubah!jubah!j-ubj)r'}r'(hUh}r'(h]h]h]h]h]uh j&h]r'j)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(U anchornameU#celery-worker-controlUrefurijh]h]h]h]h]Uinternaluh j'h]r'hXcelery.worker.controlr'r'}r'(hXcelery.worker.controlh j'ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r'}r'(hUh}r'(h]h]h]h]h]uh j&h]r'(j)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(U anchornameU#tasksUrefurijh]h]h]h]h]Uinternaluh j'h]r'hXTasksr'r'}r'(hXTasksh j'ubah!jubah!jubj)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'(j)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(U anchornameU#celery-decoratorsUrefurijh]h]h]h]h]Uinternaluh j'h]r'hXcelery.decoratorsr'r'}r'(hXcelery.decoratorsh j'ubah!jubah!jubah!j-ubj)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(U anchornameU#celery-registryUrefurijh]h]h]h]h]Uinternaluh j'h]r'hXcelery.registryr'r'}r'(hXcelery.registryh j'ubah!jubah!jubah!j-ubj)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(U anchornameU #celery-taskUrefurijh]h]h]h]h]Uinternaluh j'h]r'hX celery.taskr'r'}r'(hX celery.taskh j'ubah!jubah!jubah!j-ubj)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(U anchornameU#celery-task-baseUrefurijh]h]h]h]h]Uinternaluh j'h]r'hXcelery.task.baser'r'}r'(hXcelery.task.baseh j'ubah!jubah!jubah!j-ubj)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(U anchornameU#celery-task-httpUrefurijh]h]h]h]h]Uinternaluh j'h]r'hXcelery.task.httpr'r'}r'(hXcelery.task.httph j'ubah!jubah!jubah!j-ubj)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(h]h]h]h]h]uh j'h]r'j)r'}r'(hUh}r'(U anchornameU#celery-task-controlUrefurijh]h]h]h]h]Uinternaluh j'h]r'hXcelery.task.controlr'r'}r'(hXcelery.task.controlh j'ubah!jubah!jubah!j-ubj)r'}r'(hUh}r((h]h]h]h]h]uh j'h]r(j)r(}r((hUh}r((h]h]h]h]h]uh j'h]r(j)r(}r((hUh}r((U anchornameU#celery-task-builtinsUrefurijh]h]h]h]h]Uinternaluh j(h]r (hXcelery.task.builtinsr (r (}r ((hXcelery.task.builtinsh j(ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r (}r((hUh}r((h]h]h]h]h]uh j&h]r((j)r(}r((hUh}r((h]h]h]h]h]uh j (h]r(j)r(}r((hUh}r((U anchornameU #executionUrefurijh]h]h]h]h]Uinternaluh j(h]r(hX Executionr(r(}r((hX Executionh j(ubah!jubah!jubj)r(}r((hUh}r((h]h]h]h]h]uh j (h]r((j)r (}r!((hUh}r"((h]h]h]h]h]uh j(h]r#(j)r$(}r%((hUh}r&((h]h]h]h]h]uh j (h]r'(j)r((}r)((hUh}r*((U anchornameU#celery-executeUrefurijh]h]h]h]h]Uinternaluh j$(h]r+(hXcelery.executer,(r-(}r.((hXcelery.executeh j((ubah!jubah!jubah!j-ubj)r/(}r0((hUh}r1((h]h]h]h]h]uh j(h]r2(j)r3(}r4((hUh}r5((h]h]h]h]h]uh j/(h]r6(j)r7(}r8((hUh}r9((U anchornameU#celery-execute-traceUrefurijh]h]h]h]h]Uinternaluh j3(h]r:(hXcelery.execute.tracer;(r<(}r=((hXcelery.execute.traceh j7(ubah!jubah!jubah!j-ubj)r>(}r?((hUh}r@((h]h]h]h]h]uh j(h]rA(j)rB(}rC((hUh}rD((h]h]h]h]h]uh j>(h]rE(j)rF(}rG((hUh}rH((U anchornameU#celery-resultUrefurijh]h]h]h]h]Uinternaluh jB(h]rI(hX celery.resultrJ(rK(}rL((hX celery.resulth jF(ubah!jubah!jubah!j-ubj)rM(}rN((hUh}rO((h]h]h]h]h]uh j(h]rP(j)rQ(}rR((hUh}rS((h]h]h]h]h]uh jM(h]rT(j)rU(}rV((hUh}rW((U anchornameU#celery-statesUrefurijh]h]h]h]h]Uinternaluh jQ(h]rX(hX celery.statesrY(rZ(}r[((hX celery.statesh jU(ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r\(}r]((hUh}r^((h]h]h]h]h]uh j&h]r_((j)r`(}ra((hUh}rb((h]h]h]h]h]uh j\(h]rc(j)rd(}re((hUh}rf((U anchornameU #messagingUrefurijh]h]h]h]h]Uinternaluh j`(h]rg(hX Messagingrh(ri(}rj((hX Messagingh jd(ubah!jubah!jubj)rk(}rl((hUh}rm((h]h]h]h]h]uh j\(h]rn(j)ro(}rp((hUh}rq((h]h]h]h]h]uh jk(h]rr(j)rs(}rt((hUh}ru((h]h]h]h]h]uh jo(h]rv(j)rw(}rx((hUh}ry((U anchornameU#celery-messagingUrefurijh]h]h]h]h]Uinternaluh js(h]rz(hXcelery.messagingr{(r|(}r}((hXcelery.messagingh jw(ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r~(}r((hUh}r((h]h]h]h]h]uh j&h]r((j)r(}r((hUh}r((h]h]h]h]h]uh j~(h]r(j)r(}r((hUh}r((U anchornameU#result-backendsUrefurijh]h]h]h]h]Uinternaluh j(h]r(hXResult backendsr(r(}r((hXResult backendsh j(ubah!jubah!jubj)r(}r((hUh}r((h]h]h]h]h]uh j~(h]r((j)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((U anchornameU#celery-backendsUrefurijh]h]h]h]h]Uinternaluh j(h]r(hXcelery.backendsr(r(}r((hXcelery.backendsh j(ubah!jubah!jubah!j-ubj)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((U anchornameU#celery-backends-baseUrefurijh]h]h]h]h]Uinternaluh j(h]r(hXcelery.backends.baser(r(}r((hXcelery.backends.baseh j(ubah!jubah!jubah!j-ubj)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((U anchornameU#celery-backends-amqpUrefurijh]h]h]h]h]Uinternaluh j(h]r(hXcelery.backends.amqpr(r(}r((hXcelery.backends.amqph j(ubah!jubah!jubah!j-ubj)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((U anchornameU#celery-backends-databaseUrefurijh]h]h]h]h]Uinternaluh j(h]r(hXcelery.backends.databaser(r(}r((hXcelery.backends.databaseh j(ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r(}r((hUh}r((h]h]h]h]h]uh j&h]r((j)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((U anchornameU#loadersUrefurijh]h]h]h]h]Uinternaluh j(h]r(hXLoadersr(r(}r((hXLoadersh j(ubah!jubah!jubj)r(}r((hUh}r((h]h]h]h]h]uh j(h]r((j)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((U anchornameU#celery-loadersUrefurijh]h]h]h]h]Uinternaluh j(h]r(hXcelery.loadersr(r(}r((hXcelery.loadersh j(ubah!jubah!jubah!j-ubj)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((h]h]h]h]h]uh j(h]r(j)r(}r((hUh}r((U anchornameU(#celery-loaders-base-loader-base-classesUrefurijh]h]h]h]h]Uinternaluh j(h]r(hX)celery.loaders.base - Loader base classesr(r(}r((hX)celery.loaders.base - Loader base classesh j(ubah!jubah!jubah!j-ubj)r(}r((hUh}r)(h]h]h]h]h]uh j(h]r)j)r)}r)(hUh}r)(h]h]h]h]h]uh j(h]r)j)r)}r)(hUh}r)(U anchornameU*#celery-loaders-default-the-default-loaderUrefurijh]h]h]h]h]Uinternaluh j)h]r )hX+celery.loaders.default - The default loaderr )r )}r )(hX+celery.loaders.default - The default loaderh j)ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r )}r)(hUh}r)(h]h]h]h]h]uh j&h]r)(j)r)}r)(hUh}r)(h]h]h]h]h]uh j )h]r)j)r)}r)(hUh}r)(U anchornameU #celerybeatUrefurijh]h]h]h]h]Uinternaluh j)h]r)hX CeleryBeatr)r)}r)(hX CeleryBeath j)ubah!jubah!jubj)r)}r)(hUh}r)(h]h]h]h]h]uh j )h]r)j)r )}r!)(hUh}r")(h]h]h]h]h]uh j)h]r#)j)r$)}r%)(hUh}r&)(h]h]h]h]h]uh j )h]r')j)r()}r))(hUh}r*)(U anchornameU #celery-beatUrefurijh]h]h]h]h]Uinternaluh j$)h]r+)hX celery.beatr,)r-)}r.)(hX celery.beath j()ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r/)}r0)(hUh}r1)(h]h]h]h]h]uh j&h]r2)(j)r3)}r4)(hUh}r5)(h]h]h]h]h]uh j/)h]r6)j)r7)}r8)(hUh}r9)(U anchornameU#eventsUrefurijh]h]h]h]h]Uinternaluh j3)h]r:)hXEventsr;)r<)}r=)(hXEventsh j7)ubah!jubah!jubj)r>)}r?)(hUh}r@)(h]h]h]h]h]uh j/)h]rA)j)rB)}rC)(hUh}rD)(h]h]h]h]h]uh j>)h]rE)j)rF)}rG)(hUh}rH)(h]h]h]h]h]uh jB)h]rI)j)rJ)}rK)(hUh}rL)(U anchornameU#celery-eventsUrefurijh]h]h]h]h]Uinternaluh jF)h]rM)hX celery.eventsrN)rO)}rP)(hX celery.eventsh jJ)ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)rQ)}rR)(hUh}rS)(h]h]h]h]h]uh j&h]rT)(j)rU)}rV)(hUh}rW)(h]h]h]h]h]uh jQ)h]rX)j)rY)}rZ)(hUh}r[)(U anchornameU#loggingUrefurijh]h]h]h]h]Uinternaluh jU)h]r\)hXLoggingr])r^)}r_)(hXLoggingh jY)ubah!jubah!jubj)r`)}ra)(hUh}rb)(h]h]h]h]h]uh jQ)h]rc)(j)rd)}re)(hUh}rf)(h]h]h]h]h]uh j`)h]rg)j)rh)}ri)(hUh}rj)(h]h]h]h]h]uh jd)h]rk)j)rl)}rm)(hUh}rn)(U anchornameU #celery-logUrefurijh]h]h]h]h]Uinternaluh jh)h]ro)hX celery.logrp)rq)}rr)(hX celery.logh jl)ubah!jubah!jubah!j-ubj)rs)}rt)(hUh}ru)(h]h]h]h]h]uh j`)h]rv)j)rw)}rx)(hUh}ry)(h]h]h]h]h]uh js)h]rz)j)r{)}r|)(hUh}r})(U anchornameU#celery-utils-patchUrefurijh]h]h]h]h]Uinternaluh jw)h]r~)hXcelery.utils.patchr)r)}r)(hXcelery.utils.patchh j{)ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r)}r)(hUh}r)(h]h]h]h]h]uh j&h]r)(j)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(U anchornameU#configurationUrefurijh]h]h]h]h]Uinternaluh j)h]r)hX Configurationr)r)}r)(hX Configurationh j)ubah!jubah!jubj)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(U anchornameU #celery-confUrefurijh]h]h]h]h]Uinternaluh j)h]r)hX celery.confr)r)}r)(hX celery.confh j)ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r)}r)(hUh}r)(h]h]h]h]h]uh j&h]r)(j)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(U anchornameU#miscellaneousUrefurijh]h]h]h]h]Uinternaluh j)h]r)hX Miscellaneousr)r)}r)(hX Miscellaneoush j)ubah!jubah!jubj)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)(j)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(U anchornameU#celery-datastructuresUrefurijh]h]h]h]h]Uinternaluh j)h]r)hXcelery.datastructuresr)r)}r)(hXcelery.datastructuresh j)ubah!jubah!jubah!j-ubj)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(U anchornameU#celery-exceptionsUrefurijh]h]h]h]h]Uinternaluh j)h]r)hXcelery.exceptionsr)r)}r)(hXcelery.exceptionsh j)ubah!jubah!jubah!j-ubj)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(U anchornameU#celery-platformUrefurijh]h]h]h]h]Uinternaluh j)h]r)hXcelery.platformr)r)}r)(hXcelery.platformh j)ubah!jubah!jubah!j-ubj)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(U anchornameU #celery-utilsUrefurijh]h]h]h]h]Uinternaluh j)h]r)hX celery.utilsr)r)}r)(hX celery.utilsh j)ubah!jubah!jubah!j-ubj)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(h]h]h]h]h]uh j)h]r)j)r)}r)(hUh}r)(U anchornameU#celery-utils-infoUrefurijh]h]h]h]h]Uinternaluh j)h]r)hXcelery.utils.infor)r*}r*(hXcelery.utils.infoh j)ubah!jubah!jubah!j-ubj)r*}r*(hUh}r*(h]h]h]h]h]uh j)h]r*j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r *j)r *}r *(hUh}r *(U anchornameU#celery-utils-compatUrefurijh]h]h]h]h]Uinternaluh j*h]r *hXcelery.utils.compatr*r*}r*(hXcelery.utils.compath j *ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubjj)r*}r*(hUh}r*(h]h]h]h]h]uh]r*j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j*h]r *hX(Backend: Redis - celery.backends.pyredisr!*r"*}r#*(hjh j*ubah!jubah!jubah!j-ubah!j>ubjj)r$*}r%*(hUh}r&*(h]h]h]h]h]uh]r'*j)r(*}r)*(hUh}r**(h]h]h]h]h]uh j$*h]r+*(j)r,*}r-*(hUh}r.*(h]h]h]h]h]uh j(*h]r/*j)r0*}r1*(hUh}r2*(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j,*h]r3*hX3Contrib: Abortable tasks - celery.contrib.abortabler4*r5*}r6*(hjh j0*ubah!jubah!jubj)r7*}r8*(hUh}r9*(h]h]h]h]h]uh j(*h]r:*j)r;*}r<*(hUh}r=*(h]h]h]h]h]uh j7*h]r>*(j)r?*}r@*(hUh}rA*(h]h]h]h]h]uh j;*h]rB*j)rC*}rD*(hUh}rE*(U anchornameU#abortable-tasks-overviewUrefurijh]h]h]h]h]Uinternaluh j?*h]rF*hXAbortable tasks overviewrG*rH*}rI*(hXAbortable tasks overviewh jC*ubah!jubah!jubj)rJ*}rK*(hUh}rL*(h]h]h]h]h]uh j;*h]rM*j)rN*}rO*(hUh}rP*(h]h]h]h]h]uh jJ*h]rQ*j)rR*}rS*(hUh}rT*(h]h]h]h]h]uh jN*h]rU*j)rV*}rW*(hUh}rX*(U anchornameU#usage-exampleUrefurijh]h]h]h]h]Uinternaluh jR*h]rY*hX Usage examplerZ*r[*}r\*(hX Usage exampleh jV*ubah!jubah!jubah!j-ubah!j>ubeh!j-ubah!j>ubeh!j-ubah!j>ubjj)r]*}r^*(hUh}r_*(h]h]h]h]h]uh]r`*j)ra*}rb*(hUh}rc*(h]h]h]h]h]uh j]*h]rd*j)re*}rf*(hUh}rg*(h]h]h]h]h]uh ja*h]rh*j)ri*}rj*(hUh}rk*(U anchornameUUrefurijh]h]h]h]h]Uinternaluh je*h]rl*hX*Serialization Tools - celery.serializationrm*rn*}ro*(hjh ji*ubah!jubah!jubah!j-ubah!j>ubjj)rp*}rq*(hUh}rr*(h]h]h]h]h]uh]rs*j)rt*}ru*(hUh}rv*(h]h]h]h]h]uh jp*h]rw*j)rx*}ry*(hUh}rz*(h]h]h]h]h]uh jt*h]r{*j)r|*}r}*(hUh}r~*(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jx*h]r*hX3Celery Periodic Task Server - celery.bin.celerybeatr*r*}r*(hjh j|*ubah!jubah!jubah!j-ubah!j>ubjj)r*}r*(hUh}r*(h]h]h]h]h]uh]r*j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j*h]r*hX(Event Dumper Tool - celery.events.dumperr*r*}r*(hjh j*ubah!jubah!jubah!j-ubah!j>ubjj)r*}r*(hUh}r*(h]h]h]h]h]uh]r*j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j*h]r*hX4Token Bucket (rate limiting) - celery.worker.bucketsr*r*}r*(hjh j*ubah!jubah!jubah!j-ubah!j>ubjj)r*}r*(hUh}r*(h]h]h]h]h]uh]r*j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*(j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j*h]r*hXConfiguration and defaultsr*r*}r*(hjh j*ubah!jubah!jubj)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*(j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(U anchornameU#example-configuration-fileUrefurijh]h]h]h]h]Uinternaluh j*h]r*hXExample configuration filer*r*}r*(hXExample configuration fileh j*ubah!jubah!jubah!j-ubj)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*(j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(U anchornameU#configuration-directivesUrefurijh]h]h]h]h]Uinternaluh j*h]r*hXConfiguration Directivesr*r*}r*(hXConfiguration Directivesh j*ubah!jubah!jubj)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*(j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*(j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(U anchornameU#concurrency-settingsUrefurijh]h]h]h]h]Uinternaluh j*h]r*hXConcurrency settingsr*r*}r*(hXConcurrency settingsh j*ubah!jubah!jubj)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*(j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(h]h]h]h]h]uh j*h]r*j)r*}r*(hUh}r*(U anchornameU#celeryd-concurrencyUrefurijh]h]h]h]h]Uinternaluh j*h]r+hXCELERYD_CONCURRENCYr+r+}r+(hXCELERYD_CONCURRENCYh j*ubah!jubah!jubah!j-ubj)r+}r+(hUh}r+(h]h]h]h]h]uh j*h]r+j)r+}r +(hUh}r +(h]h]h]h]h]uh j+h]r +j)r +}r +(hUh}r+(U anchornameU#celeryd-prefetch-multiplierUrefurijh]h]h]h]h]Uinternaluh j+h]r+hXCELERYD_PREFETCH_MULTIPLIERr+r+}r+(hXCELERYD_PREFETCH_MULTIPLIERh j +ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r+}r+(hUh}r+(h]h]h]h]h]uh j*h]r+(j)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(U anchornameU#task-result-backend-settingsUrefurijh]h]h]h]h]Uinternaluh j+h]r+hXTask result backend settingsr+r +}r!+(hXTask result backend settingsh j+ubah!jubah!jubj)r"+}r#+(hUh}r$+(h]h]h]h]h]uh j+h]r%+j)r&+}r'+(hUh}r(+(h]h]h]h]h]uh j"+h]r)+j)r*+}r++(hUh}r,+(h]h]h]h]h]uh j&+h]r-+j)r.+}r/+(hUh}r0+(U anchornameU#celery-result-backendUrefurijh]h]h]h]h]Uinternaluh j*+h]r1+hXCELERY_RESULT_BACKENDr2+r3+}r4+(hXCELERY_RESULT_BACKENDh j.+ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r5+}r6+(hUh}r7+(h]h]h]h]h]uh j*h]r8+(j)r9+}r:+(hUh}r;+(h]h]h]h]h]uh j5+h]r<+j)r=+}r>+(hUh}r?+(U anchornameU#database-backend-settingsUrefurijh]h]h]h]h]Uinternaluh j9+h]r@+hXDatabase backend settingsrA+rB+}rC+(hXDatabase backend settingsh j=+ubah!jubah!jubj)rD+}rE+(hUh}rF+(h]h]h]h]h]uh j5+h]rG+(j)rH+}rI+(hUh}rJ+(h]h]h]h]h]uh jD+h]rK+j)rL+}rM+(hUh}rN+(h]h]h]h]h]uh jH+h]rO+j)rP+}rQ+(hUh}rR+(U anchornameU#celery-result-dburiUrefurijh]h]h]h]h]Uinternaluh jL+h]rS+hXCELERY_RESULT_DBURIrT+rU+}rV+(hXCELERY_RESULT_DBURIh jP+ubah!jubah!jubah!j-ubj)rW+}rX+(hUh}rY+(h]h]h]h]h]uh jD+h]rZ+j)r[+}r\+(hUh}r]+(h]h]h]h]h]uh jW+h]r^+j)r_+}r`+(hUh}ra+(U anchornameU#celery-result-engine-optionsUrefurijh]h]h]h]h]Uinternaluh j[+h]rb+hXCELERY_RESULT_ENGINE_OPTIONSrc+rd+}re+(hXCELERY_RESULT_ENGINE_OPTIONSh j_+ubah!jubah!jubah!j-ubj)rf+}rg+(hUh}rh+(h]h]h]h]h]uh jD+h]ri+j)rj+}rk+(hUh}rl+(h]h]h]h]h]uh jf+h]rm+j)rn+}ro+(hUh}rp+(U anchornameU#example-configurationUrefurijh]h]h]h]h]Uinternaluh jj+h]rq+hXExample configurationrr+rs+}rt+(hXExample configurationh jn+ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)ru+}rv+(hUh}rw+(h]h]h]h]h]uh j*h]rx+(j)ry+}rz+(hUh}r{+(h]h]h]h]h]uh ju+h]r|+j)r}+}r~+(hUh}r+(U anchornameU#amqp-backend-settingsUrefurijh]h]h]h]h]Uinternaluh jy+h]r+hXAMQP backend settingsr+r+}r+(hXAMQP backend settingsh j}+ubah!jubah!jubj)r+}r+(hUh}r+(h]h]h]h]h]uh ju+h]r+(j)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(U anchornameU #celery-amqp-task-result-expiresUrefurijh]h]h]h]h]Uinternaluh j+h]r+hXCELERY_AMQP_TASK_RESULT_EXPIRESr+r+}r+(hXCELERY_AMQP_TASK_RESULT_EXPIRESh j+ubah!jubah!jubah!j-ubj)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(U anchornameU#celery-result-exchangeUrefurijh]h]h]h]h]Uinternaluh j+h]r+hXCELERY_RESULT_EXCHANGEr+r+}r+(hXCELERY_RESULT_EXCHANGEh j+ubah!jubah!jubah!j-ubj)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(U anchornameU#celery-result-exchange-typeUrefurijh]h]h]h]h]Uinternaluh j+h]r+hXCELERY_RESULT_EXCHANGE_TYPEr+r+}r+(hXCELERY_RESULT_EXCHANGE_TYPEh j+ubah!jubah!jubah!j-ubj)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(U anchornameU#celery-result-serializerUrefurijh]h]h]h]h]Uinternaluh j+h]r+hXCELERY_RESULT_SERIALIZERr+r+}r+(hXCELERY_RESULT_SERIALIZERh j+ubah!jubah!jubah!j-ubj)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(U anchornameU#celery-result-persistentUrefurijh]h]h]h]h]Uinternaluh j+h]r+hXCELERY_RESULT_PERSISTENTr+r+}r+(hXCELERY_RESULT_PERSISTENTh j+ubah!jubah!jubah!j-ubj)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(U anchornameU#id1Urefurijh]h]h]h]h]Uinternaluh j+h]r+hXExample configurationr+r+}r+(hXExample configurationh j+ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r+}r+(hUh}r+(h]h]h]h]h]uh j*h]r+(j)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(U anchornameU#cache-backend-settingsUrefurijh]h]h]h]h]Uinternaluh j+h]r+hXCache backend settingsr+r+}r+(hXCache backend settingsh j+ubah!jubah!jubj)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+(j)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(h]h]h]h]h]uh j+h]r+j)r+}r+(hUh}r+(U anchornameU#celery-cache-backendUrefurijh]h]h]h]h]Uinternaluh j+h]r,hXCELERY_CACHE_BACKENDr,r,}r,(hXCELERY_CACHE_BACKENDh j+ubah!jubah!jubah!j-ubj)r,}r,(hUh}r,(h]h]h]h]h]uh j+h]r,j)r,}r ,(hUh}r ,(h]h]h]h]h]uh j,h]r ,j)r ,}r ,(hUh}r,(U anchornameU#celery-cache-backend-optionsUrefurijh]h]h]h]h]Uinternaluh j,h]r,hXCELERY_CACHE_BACKEND_OPTIONSr,r,}r,(hXCELERY_CACHE_BACKEND_OPTIONSh j ,ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r,}r,(hUh}r,(h]h]h]h]h]uh j*h]r,(j)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(U anchornameU#tokyo-tyrant-backend-settingsUrefurijh]h]h]h]h]Uinternaluh j,h]r,hXTokyo Tyrant backend settingsr,r ,}r!,(hXTokyo Tyrant backend settingsh j,ubah!jubah!jubj)r",}r#,(hUh}r$,(h]h]h]h]h]uh j,h]r%,(j)r&,}r',(hUh}r(,(h]h]h]h]h]uh j",h]r),j)r*,}r+,(hUh}r,,(h]h]h]h]h]uh j&,h]r-,j)r.,}r/,(hUh}r0,(U anchornameU#tt-hostUrefurijh]h]h]h]h]Uinternaluh j*,h]r1,hXTT_HOSTr2,r3,}r4,(hXTT_HOSTh j.,ubah!jubah!jubah!j-ubj)r5,}r6,(hUh}r7,(h]h]h]h]h]uh j",h]r8,j)r9,}r:,(hUh}r;,(h]h]h]h]h]uh j5,h]r<,j)r=,}r>,(hUh}r?,(U anchornameU#tt-portUrefurijh]h]h]h]h]Uinternaluh j9,h]r@,hXTT_PORTrA,rB,}rC,(hXTT_PORTh j=,ubah!jubah!jubah!j-ubj)rD,}rE,(hUh}rF,(h]h]h]h]h]uh j",h]rG,j)rH,}rI,(hUh}rJ,(h]h]h]h]h]uh jD,h]rK,j)rL,}rM,(hUh}rN,(U anchornameU#id2Urefurijh]h]h]h]h]Uinternaluh jH,h]rO,hXExample configurationrP,rQ,}rR,(hXExample configurationh jL,ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rS,}rT,(hUh}rU,(h]h]h]h]h]uh j*h]rV,(j)rW,}rX,(hUh}rY,(h]h]h]h]h]uh jS,h]rZ,j)r[,}r\,(hUh}r],(U anchornameU#redis-backend-settingsUrefurijh]h]h]h]h]Uinternaluh jW,h]r^,hXRedis backend settingsr_,r`,}ra,(hXRedis backend settingsh j[,ubah!jubah!jubj)rb,}rc,(hUh}rd,(h]h]h]h]h]uh jS,h]re,(j)rf,}rg,(hUh}rh,(h]h]h]h]h]uh jb,h]ri,j)rj,}rk,(hUh}rl,(h]h]h]h]h]uh jf,h]rm,j)rn,}ro,(hUh}rp,(U anchornameU #redis-hostUrefurijh]h]h]h]h]Uinternaluh jj,h]rq,hX REDIS_HOSTrr,rs,}rt,(hX REDIS_HOSTh jn,ubah!jubah!jubah!j-ubj)ru,}rv,(hUh}rw,(h]h]h]h]h]uh jb,h]rx,j)ry,}rz,(hUh}r{,(h]h]h]h]h]uh ju,h]r|,j)r},}r~,(hUh}r,(U anchornameU #redis-portUrefurijh]h]h]h]h]Uinternaluh jy,h]r,hX REDIS_PORTr,r,}r,(hX REDIS_PORTh j},ubah!jubah!jubah!j-ubj)r,}r,(hUh}r,(h]h]h]h]h]uh jb,h]r,j)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(U anchornameU #redis-dbUrefurijh]h]h]h]h]Uinternaluh j,h]r,hXREDIS_DBr,r,}r,(hXREDIS_DBh j,ubah!jubah!jubah!j-ubj)r,}r,(hUh}r,(h]h]h]h]h]uh jb,h]r,j)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(U anchornameU#redis-passwordUrefurijh]h]h]h]h]Uinternaluh j,h]r,hXREDIS_PASSWORDr,r,}r,(hXREDIS_PASSWORDh j,ubah!jubah!jubah!j-ubj)r,}r,(hUh}r,(h]h]h]h]h]uh jb,h]r,j)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(U anchornameU#id3Urefurijh]h]h]h]h]Uinternaluh j,h]r,hXExample configurationr,r,}r,(hXExample configurationh j,ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r,}r,(hUh}r,(h]h]h]h]h]uh j*h]r,(j)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(U anchornameU#mongodb-backend-settingsUrefurijh]h]h]h]h]Uinternaluh j,h]r,hXMongoDB backend settingsr,r,}r,(hXMongoDB backend settingsh j,ubah!jubah!jubj)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,(j)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(U anchornameU #celery-mongodb-backend-settingsUrefurijh]h]h]h]h]Uinternaluh j,h]r,hXCELERY_MONGODB_BACKEND_SETTINGSr,r,}r,(hXCELERY_MONGODB_BACKEND_SETTINGSh j,ubah!jubah!jubah!j-ubj)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(U anchornameU#example-mongodb-result-configUrefurijh]h]h]h]h]Uinternaluh j,h]r,hXExample configurationr,r,}r,(hXExample configurationh j,ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r,}r,(hUh}r,(h]h]h]h]h]uh j*h]r,(j)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(U anchornameU#message-routingUrefurijh]h]h]h]h]Uinternaluh j,h]r,hXMessage Routingr,r,}r,(hXMessage Routingh j,ubah!jubah!jubj)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,(j)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(h]h]h]h]h]uh j,h]r,j)r,}r,(hUh}r,(U anchornameU#celery-queuesUrefurijh]h]h]h]h]Uinternaluh j,h]r-hX CELERY_QUEUESr-r-}r-(hX CELERY_QUEUESh j,ubah!jubah!jubah!j-ubj)r-}r-(hUh}r-(h]h]h]h]h]uh j,h]r-j)r-}r -(hUh}r -(h]h]h]h]h]uh j-h]r -j)r -}r -(hUh}r-(U anchornameU#celery-routesUrefurijh]h]h]h]h]Uinternaluh j-h]r-hX CELERY_ROUTESr-r-}r-(hX CELERY_ROUTESh j -ubah!jubah!jubah!j-ubj)r-}r-(hUh}r-(h]h]h]h]h]uh j,h]r-j)r-}r-(hUh}r-(h]h]h]h]h]uh j-h]r-j)r-}r-(hUh}r-(U anchornameU#celery-create-missing-queuesUrefurijh]h]h]h]h]Uinternaluh j-h]r-hXCELERY_CREATE_MISSING_QUEUESr-r -}r!-(hXCELERY_CREATE_MISSING_QUEUESh j-ubah!jubah!jubah!j-ubj)r"-}r#-(hUh}r$-(h]h]h]h]h]uh j,h]r%-j)r&-}r'-(hUh}r(-(h]h]h]h]h]uh j"-h]r)-j)r*-}r+-(hUh}r,-(U anchornameU#celery-default-queueUrefurijh]h]h]h]h]Uinternaluh j&-h]r--hXCELERY_DEFAULT_QUEUEr.-r/-}r0-(hXCELERY_DEFAULT_QUEUEh j*-ubah!jubah!jubah!j-ubj)r1-}r2-(hUh}r3-(h]h]h]h]h]uh j,h]r4-j)r5-}r6-(hUh}r7-(h]h]h]h]h]uh j1-h]r8-j)r9-}r:-(hUh}r;-(U anchornameU#celery-default-exchangeUrefurijh]h]h]h]h]Uinternaluh j5-h]r<-hXCELERY_DEFAULT_EXCHANGEr=-r>-}r?-(hXCELERY_DEFAULT_EXCHANGEh j9-ubah!jubah!jubah!j-ubj)r@-}rA-(hUh}rB-(h]h]h]h]h]uh j,h]rC-j)rD-}rE-(hUh}rF-(h]h]h]h]h]uh j@-h]rG-j)rH-}rI-(hUh}rJ-(U anchornameU#celery-default-exchange-typeUrefurijh]h]h]h]h]Uinternaluh jD-h]rK-hXCELERY_DEFAULT_EXCHANGE_TYPErL-rM-}rN-(hXCELERY_DEFAULT_EXCHANGE_TYPEh jH-ubah!jubah!jubah!j-ubj)rO-}rP-(hUh}rQ-(h]h]h]h]h]uh j,h]rR-j)rS-}rT-(hUh}rU-(h]h]h]h]h]uh jO-h]rV-j)rW-}rX-(hUh}rY-(U anchornameU#celery-default-routing-keyUrefurijh]h]h]h]h]Uinternaluh jS-h]rZ-hXCELERY_DEFAULT_ROUTING_KEYr[-r\-}r]-(hXCELERY_DEFAULT_ROUTING_KEYh jW-ubah!jubah!jubah!j-ubj)r^-}r_-(hUh}r`-(h]h]h]h]h]uh j,h]ra-j)rb-}rc-(hUh}rd-(h]h]h]h]h]uh j^-h]re-j)rf-}rg-(hUh}rh-(U anchornameU#celery-default-delivery-modeUrefurijh]h]h]h]h]Uinternaluh jb-h]ri-hXCELERY_DEFAULT_DELIVERY_MODErj-rk-}rl-(hXCELERY_DEFAULT_DELIVERY_MODEh jf-ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rm-}rn-(hUh}ro-(h]h]h]h]h]uh j*h]rp-(j)rq-}rr-(hUh}rs-(h]h]h]h]h]uh jm-h]rt-j)ru-}rv-(hUh}rw-(U anchornameU#broker-settingsUrefurijh]h]h]h]h]Uinternaluh jq-h]rx-hXBroker Settingsry-rz-}r{-(hXBroker Settingsh ju-ubah!jubah!jubj)r|-}r}-(hUh}r~-(h]h]h]h]h]uh jm-h]r-(j)r-}r-(hUh}r-(h]h]h]h]h]uh j|-h]r-j)r-}r-(hUh}r-(h]h]h]h]h]uh j-h]r-j)r-}r-(hUh}r-(U anchornameU#broker-backendUrefurijh]h]h]h]h]Uinternaluh j-h]r-hXBROKER_BACKENDr-r-}r-(hXBROKER_BACKENDh j-ubah!jubah!jubah!j-ubj)r-}r-(hUh}r-(h]h]h]h]h]uh j|-h]r-j)r-}r-(hUh}r-(h]h]h]h]h]uh j-h]r-j)r-}r-(hUh}r-(U anchornameU #broker-hostUrefurijh]h]h]h]h]Uinternaluh j-h]r-hX BROKER_HOSTr-r-}r-(hX BROKER_HOSTh j-ubah!jubah!jubah!j-ubj)r-}r-(hUh}r-(h]h]h]h]h]uh j|-h]r-j)r-}r-(hUh}r-(h]h]h]h]h]uh j-h]r-j)r-}r-(hUh}r-(U anchornameU #broker-portUrefurijh]h]h]h]h]Uinternaluh j-h]r-hX BROKER_PORTr-r-}r-(hX BROKER_PORTh j-ubah!jubah!jubah!j-ubj)r-}r-(hUh}r-(h]h]h]h]h]uh j|-h]r-j)r-}r-(hUh}r-(h]h]h]h]h]uh j-h]r-j)r-}r-(hUh}r-(U anchornameU #broker-userUrefurijh]h]h]h]h]Uinternaluh j-h]r-hX BROKER_USERr-r-}r-(hX BROKER_USERh j-ubah!jubah!jubah!j-ubj)r-}r-(hUh}r-(h]h]h]h]h]uh j|-h]r-j)r-}r-(hUh}r-(h]h]h]h]h]uh j-h]r-j)r-}r-(hUh}r-(U anchornameU#broker-passwordUrefurijh]h]h]h]h]Uinternaluh j-h]r-hXBROKER_PASSWORDr-r-}r-(hXBROKER_PASSWORDh j-ubah!jubah!jubah!j-ubj)r-}r-(hUh}r-(h]h]h]h]h]uh j|-h]r-j)r-}r-(hUh}r-(h]h]h]h]h]uh j-h]r-j)r-}r-(hUh}r-(U anchornameU #broker-vhostUrefurijh]h]h]h]h]Uinternaluh j-h]r-hX BROKER_VHOSTr-r-}r-(hX BROKER_VHOSTh j-ubah!jubah!jubah!j-ubj)r-}r-(hUh}r-(h]h]h]h]h]uh j|-h]r-j)r-}r-(hUh}r-(h]h]h]h]h]uh j-h]r-j)r-}r-(hUh}r-(U anchornameU#broker-use-sslUrefurijh]h]h]h]h]Uinternaluh j-h]r-hXBROKER_USE_SSLr-r-}r-(hXBROKER_USE_SSLh j-ubah!jubah!jubah!j-ubj)r-}r-(hUh}r-(h]h]h]h]h]uh j|-h]r-j)r-}r-(hUh}r-(h]h]h]h]h]uh j-h]r-j)r-}r-(hUh}r-(U anchornameU#broker-connection-timeoutUrefurijh]h]h]h]h]Uinternaluh j-h]r-hXBROKER_CONNECTION_TIMEOUTr-r-}r-(hXBROKER_CONNECTION_TIMEOUTh j-ubah!jubah!jubah!j-ubj)r-}r-(hUh}r-(h]h]h]h]h]uh j|-h]r-j)r-}r-(hUh}r-(h]h]h]h]h]uh j-h]r-j)r.}r.(hUh}r.(U anchornameU#broker-connection-retryUrefurijh]h]h]h]h]Uinternaluh j-h]r.hXBROKER_CONNECTION_RETRYr.r.}r.(hXBROKER_CONNECTION_RETRYh j.ubah!jubah!jubah!j-ubj)r.}r.(hUh}r .(h]h]h]h]h]uh j|-h]r .j)r .}r .(hUh}r .(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(U anchornameU%#celery-broker-connection-max-retriesUrefurijh]h]h]h]h]Uinternaluh j .h]r.hX$CELERY_BROKER_CONNECTION_MAX_RETRIESr.r.}r.(hX$CELERY_BROKER_CONNECTION_MAX_RETRIESh j.ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r.}r.(hUh}r.(h]h]h]h]h]uh j*h]r.(j)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r .(U anchornameU#task-execution-settingsUrefurijh]h]h]h]h]Uinternaluh j.h]r!.hXTask execution settingsr".r#.}r$.(hXTask execution settingsh j.ubah!jubah!jubj)r%.}r&.(hUh}r'.(h]h]h]h]h]uh j.h]r(.(j)r).}r*.(hUh}r+.(h]h]h]h]h]uh j%.h]r,.j)r-.}r..(hUh}r/.(h]h]h]h]h]uh j).h]r0.j)r1.}r2.(hUh}r3.(U anchornameU#celery-always-eagerUrefurijh]h]h]h]h]Uinternaluh j-.h]r4.hXCELERY_ALWAYS_EAGERr5.r6.}r7.(hXCELERY_ALWAYS_EAGERh j1.ubah!jubah!jubah!j-ubj)r8.}r9.(hUh}r:.(h]h]h]h]h]uh j%.h]r;.j)r<.}r=.(hUh}r>.(h]h]h]h]h]uh j8.h]r?.j)r@.}rA.(hUh}rB.(U anchornameU##celery-eager-propagates-exceptionsUrefurijh]h]h]h]h]Uinternaluh j<.h]rC.hX"CELERY_EAGER_PROPAGATES_EXCEPTIONSrD.rE.}rF.(hX"CELERY_EAGER_PROPAGATES_EXCEPTIONSh j@.ubah!jubah!jubah!j-ubj)rG.}rH.(hUh}rI.(h]h]h]h]h]uh j%.h]rJ.j)rK.}rL.(hUh}rM.(h]h]h]h]h]uh jG.h]rN.j)rO.}rP.(hUh}rQ.(U anchornameU#celery-ignore-resultUrefurijh]h]h]h]h]Uinternaluh jK.h]rR.hXCELERY_IGNORE_RESULTrS.rT.}rU.(hXCELERY_IGNORE_RESULTh jO.ubah!jubah!jubah!j-ubj)rV.}rW.(hUh}rX.(h]h]h]h]h]uh j%.h]rY.j)rZ.}r[.(hUh}r\.(h]h]h]h]h]uh jV.h]r].j)r^.}r_.(hUh}r`.(U anchornameU#celery-task-result-expiresUrefurijh]h]h]h]h]Uinternaluh jZ.h]ra.hXCELERY_TASK_RESULT_EXPIRESrb.rc.}rd.(hXCELERY_TASK_RESULT_EXPIRESh j^.ubah!jubah!jubah!j-ubj)re.}rf.(hUh}rg.(h]h]h]h]h]uh j%.h]rh.j)ri.}rj.(hUh}rk.(h]h]h]h]h]uh je.h]rl.j)rm.}rn.(hUh}ro.(U anchornameU#celery-max-cached-resultsUrefurijh]h]h]h]h]Uinternaluh ji.h]rp.hXCELERY_MAX_CACHED_RESULTSrq.rr.}rs.(hXCELERY_MAX_CACHED_RESULTSh jm.ubah!jubah!jubah!j-ubj)rt.}ru.(hUh}rv.(h]h]h]h]h]uh j%.h]rw.j)rx.}ry.(hUh}rz.(h]h]h]h]h]uh jt.h]r{.j)r|.}r}.(hUh}r~.(U anchornameU#celery-track-startedUrefurijh]h]h]h]h]Uinternaluh jx.h]r.hXCELERY_TRACK_STARTEDr.r.}r.(hXCELERY_TRACK_STARTEDh j|.ubah!jubah!jubah!j-ubj)r.}r.(hUh}r.(h]h]h]h]h]uh j%.h]r.j)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(U anchornameU#celery-task-serializerUrefurijh]h]h]h]h]Uinternaluh j.h]r.hXCELERY_TASK_SERIALIZERr.r.}r.(hXCELERY_TASK_SERIALIZERh j.ubah!jubah!jubah!j-ubj)r.}r.(hUh}r.(h]h]h]h]h]uh j%.h]r.j)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(U anchornameU#celery-default-rate-limitUrefurijh]h]h]h]h]Uinternaluh j.h]r.hXCELERY_DEFAULT_RATE_LIMITr.r.}r.(hXCELERY_DEFAULT_RATE_LIMITh j.ubah!jubah!jubah!j-ubj)r.}r.(hUh}r.(h]h]h]h]h]uh j%.h]r.j)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(U anchornameU#celery-disable-rate-limitsUrefurijh]h]h]h]h]Uinternaluh j.h]r.hXCELERY_DISABLE_RATE_LIMITSr.r.}r.(hXCELERY_DISABLE_RATE_LIMITSh j.ubah!jubah!jubah!j-ubj)r.}r.(hUh}r.(h]h]h]h]h]uh j%.h]r.j)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(U anchornameU#celery-acks-lateUrefurijh]h]h]h]h]Uinternaluh j.h]r.hXCELERY_ACKS_LATEr.r.}r.(hXCELERY_ACKS_LATEh j.ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r.}r.(hUh}r.(h]h]h]h]h]uh j*h]r.(j)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(U anchornameU#worker-celerydUrefurijh]h]h]h]h]Uinternaluh j.h]r.hXWorker: celerydr.r.}r.(hXWorker: celerydh j.ubah!jubah!jubj)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.(j)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(U anchornameU#celery-importsUrefurijh]h]h]h]h]Uinternaluh j.h]r.hXCELERY_IMPORTSr.r.}r.(hXCELERY_IMPORTSh j.ubah!jubah!jubah!j-ubj)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(U anchornameU#celeryd-max-tasks-per-childUrefurijh]h]h]h]h]Uinternaluh j.h]r.hXCELERYD_MAX_TASKS_PER_CHILDr.r.}r.(hXCELERYD_MAX_TASKS_PER_CHILDh j.ubah!jubah!jubah!j-ubj)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(h]h]h]h]h]uh j.h]r.j)r.}r.(hUh}r.(U anchornameU#celeryd-task-time-limitUrefurijh]h]h]h]h]Uinternaluh j.h]r.hXCELERYD_TASK_TIME_LIMITr.r.}r.(hXCELERYD_TASK_TIME_LIMITh j.ubah!jubah!jubah!j-ubj)r.}r/(hUh}r/(h]h]h]h]h]uh j.h]r/j)r/}r/(hUh}r/(h]h]h]h]h]uh j.h]r/j)r/}r/(hUh}r /(U anchornameU#celeryd-task-soft-time-limitUrefurijh]h]h]h]h]Uinternaluh j/h]r /hXCELERYD_TASK_SOFT_TIME_LIMITr /r /}r /(hXCELERYD_TASK_SOFT_TIME_LIMITh j/ubah!jubah!jubah!j-ubj)r/}r/(hUh}r/(h]h]h]h]h]uh j.h]r/j)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/j)r/}r/(hUh}r/(U anchornameU$#celery-store-errors-even-if-ignoredUrefurijh]h]h]h]h]Uinternaluh j/h]r/hX#CELERY_STORE_ERRORS_EVEN_IF_IGNOREDr/r/}r/(hX#CELERY_STORE_ERRORS_EVEN_IF_IGNOREDh j/ubah!jubah!jubah!j-ubj)r/}r/(hUh}r/(h]h]h]h]h]uh j.h]r /j)r!/}r"/(hUh}r#/(h]h]h]h]h]uh j/h]r$/j)r%/}r&/(hUh}r'/(U anchornameU#celeryd-state-dbUrefurijh]h]h]h]h]Uinternaluh j!/h]r(/hXCELERYD_STATE_DBr)/r*/}r+/(hXCELERYD_STATE_DBh j%/ubah!jubah!jubah!j-ubj)r,/}r-/(hUh}r./(h]h]h]h]h]uh j.h]r//j)r0/}r1/(hUh}r2/(h]h]h]h]h]uh j,/h]r3/j)r4/}r5/(hUh}r6/(U anchornameU #celeryd-eta-scheduler-precisionUrefurijh]h]h]h]h]Uinternaluh j0/h]r7/hXCELERYD_ETA_SCHEDULER_PRECISIONr8/r9/}r:/(hXCELERYD_ETA_SCHEDULER_PRECISIONh j4/ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r;/}r/(j)r?/}r@/(hUh}rA/(h]h]h]h]h]uh j;/h]rB/j)rC/}rD/(hUh}rE/(U anchornameU#error-e-mailsUrefurijh]h]h]h]h]Uinternaluh j?/h]rF/hX Error E-MailsrG/rH/}rI/(hX Error E-Mailsh jC/ubah!jubah!jubj)rJ/}rK/(hUh}rL/(h]h]h]h]h]uh j;/h]rM/(j)rN/}rO/(hUh}rP/(h]h]h]h]h]uh jJ/h]rQ/j)rR/}rS/(hUh}rT/(h]h]h]h]h]uh jN/h]rU/j)rV/}rW/(hUh}rX/(U anchornameU#celery-send-task-error-emailsUrefurijh]h]h]h]h]Uinternaluh jR/h]rY/hXCELERY_SEND_TASK_ERROR_EMAILSrZ/r[/}r\/(hXCELERY_SEND_TASK_ERROR_EMAILSh jV/ubah!jubah!jubah!j-ubj)r]/}r^/(hUh}r_/(h]h]h]h]h]uh jJ/h]r`/j)ra/}rb/(hUh}rc/(h]h]h]h]h]uh j]/h]rd/j)re/}rf/(hUh}rg/(U anchornameU#celery-task-error-whitelistUrefurijh]h]h]h]h]Uinternaluh ja/h]rh/hXCELERY_TASK_ERROR_WHITELISTri/rj/}rk/(hXCELERY_TASK_ERROR_WHITELISTh je/ubah!jubah!jubah!j-ubj)rl/}rm/(hUh}rn/(h]h]h]h]h]uh jJ/h]ro/j)rp/}rq/(hUh}rr/(h]h]h]h]h]uh jl/h]rs/j)rt/}ru/(hUh}rv/(U anchornameU#adminsUrefurijh]h]h]h]h]Uinternaluh jp/h]rw/hXADMINSrx/ry/}rz/(hXADMINSh jt/ubah!jubah!jubah!j-ubj)r{/}r|/(hUh}r}/(h]h]h]h]h]uh jJ/h]r~/j)r/}r/(hUh}r/(h]h]h]h]h]uh j{/h]r/j)r/}r/(hUh}r/(U anchornameU #server-emailUrefurijh]h]h]h]h]Uinternaluh j/h]r/hX SERVER_EMAILr/r/}r/(hX SERVER_EMAILh j/ubah!jubah!jubah!j-ubj)r/}r/(hUh}r/(h]h]h]h]h]uh jJ/h]r/j)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/j)r/}r/(hUh}r/(U anchornameU #mail-hostUrefurijh]h]h]h]h]Uinternaluh j/h]r/hX MAIL_HOSTr/r/}r/(hX MAIL_HOSTh j/ubah!jubah!jubah!j-ubj)r/}r/(hUh}r/(h]h]h]h]h]uh jJ/h]r/j)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/j)r/}r/(hUh}r/(U anchornameU#mail-host-userUrefurijh]h]h]h]h]Uinternaluh j/h]r/hXMAIL_HOST_USERr/r/}r/(hXMAIL_HOST_USERh j/ubah!jubah!jubah!j-ubj)r/}r/(hUh}r/(h]h]h]h]h]uh jJ/h]r/j)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/j)r/}r/(hUh}r/(U anchornameU#mail-host-passwordUrefurijh]h]h]h]h]Uinternaluh j/h]r/hXMAIL_HOST_PASSWORDr/r/}r/(hXMAIL_HOST_PASSWORDh j/ubah!jubah!jubah!j-ubj)r/}r/(hUh}r/(h]h]h]h]h]uh jJ/h]r/j)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/j)r/}r/(hUh}r/(U anchornameU #mail-portUrefurijh]h]h]h]h]Uinternaluh j/h]r/hX MAIL_PORTr/r/}r/(hX MAIL_PORTh j/ubah!jubah!jubah!j-ubj)r/}r/(hUh}r/(h]h]h]h]h]uh jJ/h]r/j)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/j)r/}r/(hUh}r/(U anchornameU#example-e-mail-configurationUrefurijh]h]h]h]h]Uinternaluh j/h]r/hXExample E-Mail configurationr/r/}r/(hXExample E-Mail configurationh j/ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r/}r/(hUh}r/(h]h]h]h]h]uh j*h]r/(j)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/j)r/}r/(hUh}r/(U anchornameU#eventsUrefurijh]h]h]h]h]Uinternaluh j/h]r/hXEventsr/r/}r/(hXEventsh j/ubah!jubah!jubj)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/(j)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/j)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/j)r/}r/(hUh}r/(U anchornameU#celery-send-eventsUrefurijh]h]h]h]h]Uinternaluh j/h]r/hXCELERY_SEND_EVENTSr/r/}r/(hXCELERY_SEND_EVENTSh j/ubah!jubah!jubah!j-ubj)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/j)r/}r/(hUh}r/(h]h]h]h]h]uh j/h]r/j)r/}r0(hUh}r0(U anchornameU#celery-event-queueUrefurijh]h]h]h]h]Uinternaluh j/h]r0hXCELERY_EVENT_QUEUEr0r0}r0(hXCELERY_EVENT_QUEUEh j/ubah!jubah!jubah!j-ubj)r0}r0(hUh}r0(h]h]h]h]h]uh j/h]r 0j)r 0}r 0(hUh}r 0(h]h]h]h]h]uh j0h]r 0j)r0}r0(hUh}r0(U anchornameU#celery-event-exchangeUrefurijh]h]h]h]h]Uinternaluh j 0h]r0hXCELERY_EVENT_EXCHANGEr0r0}r0(hXCELERY_EVENT_EXCHANGEh j0ubah!jubah!jubah!j-ubj)r0}r0(hUh}r0(h]h]h]h]h]uh j/h]r0j)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(U anchornameU#celery-event-exchange-typeUrefurijh]h]h]h]h]Uinternaluh j0h]r 0hXCELERY_EVENT_EXCHANGE_TYPEr!0r"0}r#0(hXCELERY_EVENT_EXCHANGE_TYPEh j0ubah!jubah!jubah!j-ubj)r$0}r%0(hUh}r&0(h]h]h]h]h]uh j/h]r'0j)r(0}r)0(hUh}r*0(h]h]h]h]h]uh j$0h]r+0j)r,0}r-0(hUh}r.0(U anchornameU#celery-event-routing-keyUrefurijh]h]h]h]h]Uinternaluh j(0h]r/0hXCELERY_EVENT_ROUTING_KEYr00r10}r20(hXCELERY_EVENT_ROUTING_KEYh j,0ubah!jubah!jubah!j-ubj)r30}r40(hUh}r50(h]h]h]h]h]uh j/h]r60j)r70}r80(hUh}r90(h]h]h]h]h]uh j30h]r:0j)r;0}r<0(hUh}r=0(U anchornameU#celery-event-serializerUrefurijh]h]h]h]h]Uinternaluh j70h]r>0hXCELERY_EVENT_SERIALIZERr?0r@0}rA0(hXCELERY_EVENT_SERIALIZERh j;0ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rB0}rC0(hUh}rD0(h]h]h]h]h]uh j*h]rE0(j)rF0}rG0(hUh}rH0(h]h]h]h]h]uh jB0h]rI0j)rJ0}rK0(hUh}rL0(U anchornameU#broadcast-commandsUrefurijh]h]h]h]h]Uinternaluh jF0h]rM0hXBroadcast CommandsrN0rO0}rP0(hXBroadcast Commandsh jJ0ubah!jubah!jubj)rQ0}rR0(hUh}rS0(h]h]h]h]h]uh jB0h]rT0(j)rU0}rV0(hUh}rW0(h]h]h]h]h]uh jQ0h]rX0j)rY0}rZ0(hUh}r[0(h]h]h]h]h]uh jU0h]r\0j)r]0}r^0(hUh}r_0(U anchornameU#celery-broadcast-queueUrefurijh]h]h]h]h]Uinternaluh jY0h]r`0hXCELERY_BROADCAST_QUEUEra0rb0}rc0(hXCELERY_BROADCAST_QUEUEh j]0ubah!jubah!jubah!j-ubj)rd0}re0(hUh}rf0(h]h]h]h]h]uh jQ0h]rg0j)rh0}ri0(hUh}rj0(h]h]h]h]h]uh jd0h]rk0j)rl0}rm0(hUh}rn0(U anchornameU#celery-broadcast-exchangeUrefurijh]h]h]h]h]Uinternaluh jh0h]ro0hXCELERY_BROADCAST_EXCHANGErp0rq0}rr0(hXCELERY_BROADCAST_EXCHANGEh jl0ubah!jubah!jubah!j-ubj)rs0}rt0(hUh}ru0(h]h]h]h]h]uh jQ0h]rv0j)rw0}rx0(hUh}ry0(h]h]h]h]h]uh js0h]rz0j)r{0}r|0(hUh}r}0(U anchornameU#celery-broadcast-exchange-typeUrefurijh]h]h]h]h]Uinternaluh jw0h]r~0hXCELERY_BROADCAST_EXCHANGE_TYPEr0r0}r0(hXCELERY_BROADCAST_EXCHANGE_TYPEh j{0ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r0}r0(hUh}r0(h]h]h]h]h]uh j*h]r0(j)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(U anchornameU#loggingUrefurijh]h]h]h]h]Uinternaluh j0h]r0hXLoggingr0r0}r0(hXLoggingh j0ubah!jubah!jubj)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0(j)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(U anchornameU#celeryd-log-fileUrefurijh]h]h]h]h]Uinternaluh j0h]r0hXCELERYD_LOG_FILEr0r0}r0(hXCELERYD_LOG_FILEh j0ubah!jubah!jubah!j-ubj)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(U anchornameU#celeryd-log-levelUrefurijh]h]h]h]h]Uinternaluh j0h]r0hXCELERYD_LOG_LEVELr0r0}r0(hXCELERYD_LOG_LEVELh j0ubah!jubah!jubah!j-ubj)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(U anchornameU#celeryd-log-formatUrefurijh]h]h]h]h]Uinternaluh j0h]r0hXCELERYD_LOG_FORMATr0r0}r0(hXCELERYD_LOG_FORMATh j0ubah!jubah!jubah!j-ubj)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(U anchornameU#celeryd-task-log-formatUrefurijh]h]h]h]h]Uinternaluh j0h]r0hXCELERYD_TASK_LOG_FORMATr0r0}r0(hXCELERYD_TASK_LOG_FORMATh j0ubah!jubah!jubah!j-ubj)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(U anchornameU#celery-redirect-stdoutsUrefurijh]h]h]h]h]Uinternaluh j0h]r0hXCELERY_REDIRECT_STDOUTSr0r0}r0(hXCELERY_REDIRECT_STDOUTSh j0ubah!jubah!jubah!j-ubj)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(U anchornameU#celery-redirect-stdouts-levelUrefurijh]h]h]h]h]Uinternaluh j0h]r0hXCELERY_REDIRECT_STDOUTS_LEVELr0r0}r0(hXCELERY_REDIRECT_STDOUTS_LEVELh j0ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r0}r0(hUh}r0(h]h]h]h]h]uh j*h]r0(j)r0}r0(hUh}r0(h]h]h]h]h]uh j0h]r0j)r0}r0(hUh}r0(U anchornameU"#custom-component-classes-advancedUrefurijh]h]h]h]h]Uinternaluh j0h]r0hX#Custom Component Classes (advanced)r0r0}r0(hX#Custom Component Classes (advanced)h j0ubah!jubah!jubj)r0}r0(hUh}r1(h]h]h]h]h]uh j0h]r1(j)r1}r1(hUh}r1(h]h]h]h]h]uh j0h]r1j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r 1j)r 1}r 1(hUh}r 1(U anchornameU #celeryd-poolUrefurijh]h]h]h]h]Uinternaluh j1h]r 1hX CELERYD_POOLr1r1}r1(hX CELERYD_POOLh j 1ubah!jubah!jubah!j-ubj)r1}r1(hUh}r1(h]h]h]h]h]uh j0h]r1j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(U anchornameU#celeryd-listenerUrefurijh]h]h]h]h]Uinternaluh j1h]r1hXCELERYD_LISTENERr1r1}r1(hXCELERYD_LISTENERh j1ubah!jubah!jubah!j-ubj)r 1}r!1(hUh}r"1(h]h]h]h]h]uh j0h]r#1j)r$1}r%1(hUh}r&1(h]h]h]h]h]uh j 1h]r'1j)r(1}r)1(hUh}r*1(U anchornameU#celeryd-mediatorUrefurijh]h]h]h]h]Uinternaluh j$1h]r+1hXCELERYD_MEDIATORr,1r-1}r.1(hXCELERYD_MEDIATORh j(1ubah!jubah!jubah!j-ubj)r/1}r01(hUh}r11(h]h]h]h]h]uh j0h]r21j)r31}r41(hUh}r51(h]h]h]h]h]uh j/1h]r61j)r71}r81(hUh}r91(U anchornameU#celeryd-eta-schedulerUrefurijh]h]h]h]h]Uinternaluh j31h]r:1hXCELERYD_ETA_SCHEDULERr;1r<1}r=1(hXCELERYD_ETA_SCHEDULERh j71ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r>1}r?1(hUh}r@1(h]h]h]h]h]uh j*h]rA1(j)rB1}rC1(hUh}rD1(h]h]h]h]h]uh j>1h]rE1j)rF1}rG1(hUh}rH1(U anchornameU #periodic-task-server-celerybeatUrefurijh]h]h]h]h]Uinternaluh jB1h]rI1hX Periodic Task Server: celerybeatrJ1rK1}rL1(hX Periodic Task Server: celerybeath jF1ubah!jubah!jubj)rM1}rN1(hUh}rO1(h]h]h]h]h]uh j>1h]rP1(j)rQ1}rR1(hUh}rS1(h]h]h]h]h]uh jM1h]rT1j)rU1}rV1(hUh}rW1(h]h]h]h]h]uh jQ1h]rX1j)rY1}rZ1(hUh}r[1(U anchornameU#celerybeat-scheduleUrefurijh]h]h]h]h]Uinternaluh jU1h]r\1hXCELERYBEAT_SCHEDULEr]1r^1}r_1(hXCELERYBEAT_SCHEDULEh jY1ubah!jubah!jubah!j-ubj)r`1}ra1(hUh}rb1(h]h]h]h]h]uh jM1h]rc1j)rd1}re1(hUh}rf1(h]h]h]h]h]uh j`1h]rg1j)rh1}ri1(hUh}rj1(U anchornameU#celerybeat-schedulerUrefurijh]h]h]h]h]Uinternaluh jd1h]rk1hXCELERYBEAT_SCHEDULERrl1rm1}rn1(hXCELERYBEAT_SCHEDULERh jh1ubah!jubah!jubah!j-ubj)ro1}rp1(hUh}rq1(h]h]h]h]h]uh jM1h]rr1j)rs1}rt1(hUh}ru1(h]h]h]h]h]uh jo1h]rv1j)rw1}rx1(hUh}ry1(U anchornameU#celerybeat-schedule-filenameUrefurijh]h]h]h]h]Uinternaluh js1h]rz1hXCELERYBEAT_SCHEDULE_FILENAMEr{1r|1}r}1(hXCELERYBEAT_SCHEDULE_FILENAMEh jw1ubah!jubah!jubah!j-ubj)r~1}r1(hUh}r1(h]h]h]h]h]uh jM1h]r1j)r1}r1(hUh}r1(h]h]h]h]h]uh j~1h]r1j)r1}r1(hUh}r1(U anchornameU#celerybeat-max-loop-intervalUrefurijh]h]h]h]h]Uinternaluh j1h]r1hXCELERYBEAT_MAX_LOOP_INTERVALr1r1}r1(hXCELERYBEAT_MAX_LOOP_INTERVALh j1ubah!jubah!jubah!j-ubj)r1}r1(hUh}r1(h]h]h]h]h]uh jM1h]r1j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(U anchornameU#celerybeat-log-fileUrefurijh]h]h]h]h]Uinternaluh j1h]r1hXCELERYBEAT_LOG_FILEr1r1}r1(hXCELERYBEAT_LOG_FILEh j1ubah!jubah!jubah!j-ubj)r1}r1(hUh}r1(h]h]h]h]h]uh jM1h]r1j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(U anchornameU#celerybeat-log-levelUrefurijh]h]h]h]h]Uinternaluh j1h]r1hXCELERYBEAT_LOG_LEVELr1r1}r1(hXCELERYBEAT_LOG_LEVELh j1ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r1}r1(hUh}r1(h]h]h]h]h]uh j*h]r1(j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(U anchornameU#monitor-server-celerymonUrefurijh]h]h]h]h]Uinternaluh j1h]r1hXMonitor Server: celerymonr1r1}r1(hXMonitor Server: celerymonh j1ubah!jubah!jubj)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1(j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(U anchornameU#celerymon-log-fileUrefurijh]h]h]h]h]Uinternaluh j1h]r1hXCELERYMON_LOG_FILEr1r1}r1(hXCELERYMON_LOG_FILEh j1ubah!jubah!jubah!j-ubj)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(U anchornameU#celerymon-log-levelUrefurijh]h]h]h]h]Uinternaluh j1h]r1hXCELERYMON_LOG_LEVELr1r1}r1(hXCELERYMON_LOG_LEVELh j1ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubjj)r1}r1(hUh}r1(h]h]h]h]h]uh]r1j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j1h]r1hX(Curses Monitor - celery.events.cursesmonr1r1}r1(hjh j1ubah!jubah!jubah!j-ubah!j>ubjj)r1}r1(hUh}r1(h]h]h]h]h]uh]r1j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(h]h]h]h]h]uh j1h]r1j)r1}r1(hUh}r1(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j1h]r1hX*Python Compatibility - celery.utils.compatr1r2}r2(hjh j1ubah!jubah!jubah!j-ubah!j>ubj j)r2}r2(hUh}r2(h]h]h]h]h]uh]r2j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r 2j)r 2}r 2(hUh}r 2(h]h]h]h]h]uh j2h]r 2j)r2}r2(hUh}r2(U anchornameUUrefurij h]h]h]h]h]Uinternaluh j 2h]r2hX&SQLAlchemy Session - celery.db.sessionr2r2}r2(hjh j2ubah!jubah!jubah!j-ubah!j>ubjj)r2}r2(hUh}r2(h]h]h]h]h]uh]r2j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r 2j)r!2}r"2(hUh}r#2(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j2h]r$2hXEvents - celery.eventsr%2r&2}r'2(hjh j!2ubah!jubah!jubah!j-ubah!j>ubjj)r(2}r)2(hUh}r*2(h]h]h]h]h]uh]r+2j)r,2}r-2(hUh}r.2(h]h]h]h]h]uh j(2h]r/2(j)r02}r12(hUh}r22(h]h]h]h]h]uh j,2h]r32j)r42}r52(hUh}r62(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j02h]r72hXRunning celeryd as a daemonr82r92}r:2(hj#h j42ubah!jubah!jubj)r;2}r<2(hUh}r=2(h]h]h]h]h]uh j,2h]r>2(j)r?2}r@2(hUh}rA2(h]h]h]h]h]uh j;2h]rB2(j)rC2}rD2(hUh}rE2(h]h]h]h]h]uh j?2h]rF2j)rG2}rH2(hUh}rI2(U anchornameU #start-stop-daemon-debian-ubuntuUrefurijh]h]h]h]h]Uinternaluh jC2h]rJ2hX$start-stop-daemon (Debian/Ubuntu/++)rK2rL2}rM2(hX$start-stop-daemon (Debian/Ubuntu/++)h jG2ubah!jubah!jubj)rN2}rO2(hUh}rP2(h]h]h]h]h]uh j?2h]rQ2(j)rR2}rS2(hUh}rT2(h]h]h]h]h]uh jN2h]rU2(j)rV2}rW2(hUh}rX2(h]h]h]h]h]uh jR2h]rY2j)rZ2}r[2(hUh}r\2(U anchornameU#init-script-celerydUrefurijh]h]h]h]h]Uinternaluh jV2h]r]2hXInit script: celerydr^2r_2}r`2(hXInit script: celerydh jZ2ubah!jubah!jubj)ra2}rb2(hUh}rc2(h]h]h]h]h]uh jR2h]rd2(j)re2}rf2(hUh}rg2(h]h]h]h]h]uh ja2h]rh2j)ri2}rj2(hUh}rk2(h]h]h]h]h]uh je2h]rl2j)rm2}rn2(hUh}ro2(U anchornameU#example-configurationUrefurijh]h]h]h]h]Uinternaluh ji2h]rp2hXExample configurationrq2rr2}rs2(hXExample configurationh jm2ubah!jubah!jubah!j-ubj)rt2}ru2(hUh}rv2(h]h]h]h]h]uh ja2h]rw2j)rx2}ry2(hUh}rz2(h]h]h]h]h]uh jt2h]r{2j)r|2}r}2(hUh}r~2(U anchornameU#example-django-configurationUrefurijh]h]h]h]h]Uinternaluh jx2h]r2hXExample Django configurationr2r2}r2(hXExample Django configurationh j|2ubah!jubah!jubah!j-ubj)r2}r2(hUh}r2(h]h]h]h]h]uh ja2h]r2j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(U anchornameU#available-optionsUrefurijh]h]h]h]h]Uinternaluh j2h]r2hXAvailable optionsr2r2}r2(hXAvailable optionsh j2ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r2}r2(hUh}r2(h]h]h]h]h]uh jN2h]r2(j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(U anchornameU#init-script-celerybeatUrefurijh]h]h]h]h]Uinternaluh j2h]r2hXInit script: celerybeatr2r2}r2(hXInit script: celerybeath j2ubah!jubah!jubj)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2(j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(U anchornameU #debian-initd-celerybeat-exampleUrefurijh]h]h]h]h]Uinternaluh j2h]r2hXExample configurationr2r2}r2(hXExample configurationh j2ubah!jubah!jubah!j-ubj)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(U anchornameU'#debian-initd-celerybeat-django-exampleUrefurijh]h]h]h]h]Uinternaluh j2h]r2hXExample Django configurationr2r2}r2(hXExample Django configurationh j2ubah!jubah!jubah!j-ubj)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(U anchornameU #debian-initd-celerybeat-optionsUrefurijh]h]h]h]h]Uinternaluh j2h]r2hXAvailable optionsr2r2}r2(hXAvailable optionsh j2ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r2}r2(hUh}r2(h]h]h]h]h]uh jN2h]r2j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(U anchornameU#troubleshootingUrefurijh]h]h]h]h]Uinternaluh j2h]r2hXTroubleshootingr2r2}r2(hXTroubleshootingh j2ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r2}r2(hUh}r2(h]h]h]h]h]uh j;2h]r2j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(U anchornameU #supervisordUrefurijh]h]h]h]h]Uinternaluh j2h]r2hX supervisordr2r2}r2(hUh j2ubah!jubah!jubah!j-ubj)r2}r2(hUh}r2(h]h]h]h]h]uh j;2h]r2j)r2}r2(hUh}r2(h]h]h]h]h]uh j2h]r2j)r2}r2(hUh}r2(U anchornameU #launchd-os-xUrefurijh]h]h]h]h]Uinternaluh j2h]r2hXlaunchd (OS X)r2r2}r2(hXlaunchd (OS X)h j2ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubj$j)r2}r3(hUh}r3(h]h]h]h]h]uh]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j2h]r3j)r3}r3(hUh}r 3(h]h]h]h]h]uh j3h]r 3j)r 3}r 3(hUh}r 3(U anchornameUUrefurij$h]h]h]h]h]Uinternaluh j3h]r3hX$SQLAlchemy Models - celery.db.modelsr3r3}r3(hj,h j 3ubah!jubah!jubah!j-ubah!j>ubj-j)r3}r3(hUh}r3(h]h]h]h]h]uh]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r 3(U anchornameUUrefurij-h]h]h]h]h]Uinternaluh j3h]r!3hX3celeryev: Curses Event Viewer - celery.bin.celeryevr"3r#3}r$3(hj5h j3ubah!jubah!jubah!j-ubah!j>ubj6j)r%3}r&3(hUh}r'3(h]h]h]h]h]uh]r(3j)r)3}r*3(hUh}r+3(h]h]h]h]h]uh j%3h]r,3(j)r-3}r.3(hUh}r/3(h]h]h]h]h]uh j)3h]r03j)r13}r23(hUh}r33(U anchornameUUrefurij6h]h]h]h]h]Uinternaluh j-3h]r43hXOverviewr53r63}r73(hj>h j13ubah!jubah!jubj)r83}r93(hUh}r:3(h]h]h]h]h]uh j)3h]r;3(j)r<3}r=3(hUh}r>3(h]h]h]h]h]uh j83h]r?3j)r@3}rA3(hUh}rB3(h]h]h]h]h]uh j<3h]rC3j)rD3}rE3(hUh}rF3(U anchornameU#tasksUrefurij6h]h]h]h]h]Uinternaluh j@3h]rG3hXTasksrH3rI3}rJ3(hXTasksh jD3ubah!jubah!jubah!j-ubj)rK3}rL3(hUh}rM3(h]h]h]h]h]uh j83h]rN3j)rO3}rP3(hUh}rQ3(h]h]h]h]h]uh jK3h]rR3j)rS3}rT3(hUh}rU3(U anchornameU#workersUrefurij6h]h]h]h]h]Uinternaluh jO3h]rV3hXWorkersrW3rX3}rY3(hXWorkersh jS3ubah!jubah!jubah!j-ubj)rZ3}r[3(hUh}r\3(h]h]h]h]h]uh j83h]r]3j)r^3}r_3(hUh}r`3(h]h]h]h]h]uh jZ3h]ra3j)rb3}rc3(hUh}rd3(U anchornameU #monitoringUrefurij6h]h]h]h]h]Uinternaluh j^3h]re3hX Monitoringrf3rg3}rh3(hX Monitoringh jb3ubah!jubah!jubah!j-ubj)ri3}rj3(hUh}rk3(h]h]h]h]h]uh j83h]rl3j)rm3}rn3(hUh}ro3(h]h]h]h]h]uh ji3h]rp3j)rq3}rr3(hUh}rs3(U anchornameU#routingUrefurij6h]h]h]h]h]Uinternaluh jm3h]rt3hXRoutingru3rv3}rw3(hXRoutingh jq3ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubj?j)rx3}ry3(hUh}rz3(h]h]h]h]h]uh]r{3j)r|3}r}3(hUh}r~3(h]h]h]h]h]uh jx3h]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j|3h]r3j)r3}r3(hUh}r3(U anchornameUUrefurij?h]h]h]h]h]Uinternaluh j3h]r3hX"Debugging Info - celery.utils.infor3r3}r3(hjGh j3ubah!jubah!jubah!j-ubah!j>ubjHj)r3}r3(hUh}r3(h]h]h]h]h]uh]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(U anchornameUUrefurijHh]h]h]h]h]Uinternaluh j3h]r3hX)Loader Base Classes - celery.loaders.baser3r3}r3(hjPh j3ubah!jubah!jubah!j-ubah!j>ubjQj)r3}r3(hUh}r3(h]h]h]h]h]uh]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(U anchornameUUrefurijQh]h]h]h]h]Uinternaluh j3h]r3hX,Built-in Task Classes - celery.task.builtinsr3r3}r3(hjYh j3ubah!jubah!jubah!j-ubah!j>ubjZj)r3}r3(hUh}r3(h]h]h]h]h]uh]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3(j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(U anchornameUUrefurijZh]h]h]h]h]Uinternaluh j3h]r3hXCelery Deprecation Timeliner3r3}r3(hjbh j3ubah!jubah!jubj)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(U anchornameU#removals-for-version-2-0UrefurijZh]h]h]h]h]Uinternaluh j3h]r3hXRemovals for version 2.0r3r3}r3(hXRemovals for version 2.0h j3ubah!jubah!jubah!j-ubah!j>ubeh!j-ubah!j>ubjcj)r3}r3(hUh}r3(h]h]h]h]h]uh]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(U anchornameUUrefurijch]h]h]h]h]Uinternaluh j3h]r3hX'Default Loader - celery.loaders.defaultr3r3}r3(hjkh j3ubah!jubah!jubah!j-ubah!j>ubjlj)r3}r3(hUh}r3(h]h]h]h]h]uh]r3j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3(j)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r3j)r3}r3(hUh}r3(U anchornameUUrefurijlh]h]h]h]h]Uinternaluh j3h]r3hXCommunity Resourcesr3r3}r3(hjth j3ubah!jubah!jubj)r3}r3(hUh}r3(h]h]h]h]h]uh j3h]r4(j)r4}r4(hUh}r4(h]h]h]h]h]uh j3h]r4(j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4j)r 4}r 4(hUh}r 4(U anchornameU #resourcesUrefurijlh]h]h]h]h]Uinternaluh j4h]r 4hX Resourcesr 4r4}r4(hX Resourcesh j 4ubah!jubah!jubj)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4(j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4j)r4}r4(hUh}r4(U anchornameU#who-s-using-celeryUrefurijlh]h]h]h]h]Uinternaluh j4h]r4hXWho's using Celeryr 4r!4}r"4(hXWho's using Celeryh j4ubah!jubah!jubah!j-ubj)r#4}r$4(hUh}r%4(h]h]h]h]h]uh j4h]r&4j)r'4}r(4(hUh}r)4(h]h]h]h]h]uh j#4h]r*4j)r+4}r,4(hUh}r-4(U anchornameU#wikiUrefurijlh]h]h]h]h]Uinternaluh j'4h]r.4hXWikir/4r04}r14(hXWikih j+4ubah!jubah!jubah!j-ubj)r24}r34(hUh}r44(h]h]h]h]h]uh j4h]r54j)r64}r74(hUh}r84(h]h]h]h]h]uh j24h]r94j)r:4}r;4(hUh}r<4(U anchornameU##celery-questions-on-stack-overflowUrefurijlh]h]h]h]h]Uinternaluh j64h]r=4hX"Celery questions on Stack Overflowr>4r?4}r@4(hX"Celery questions on Stack Overflowh j:4ubah!jubah!jubah!j-ubj)rA4}rB4(hUh}rC4(h]h]h]h]h]uh j4h]rD4j)rE4}rF4(hUh}rG4(h]h]h]h]h]uh jA4h]rH4j)rI4}rJ4(hUh}rK4(U anchornameU"#mailing-list-archive-celery-usersUrefurijlh]h]h]h]h]Uinternaluh jE4h]rL4hX"Mailing-list Archive: celery-usersrM4rN4}rO4(hX"Mailing-list Archive: celery-usersh jI4ubah!jubah!jubah!j-ubj)rP4}rQ4(hUh}rR4(h]h]h]h]h]uh j4h]rS4j)rT4}rU4(hUh}rV4(h]h]h]h]h]uh jP4h]rW4j)rX4}rY4(hUh}rZ4(U anchornameU #irc-logsUrefurijlh]h]h]h]h]Uinternaluh jT4h]r[4hXIRC Logsr\4r]4}r^4(hXIRC Logsh jX4ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r_4}r`4(hUh}ra4(h]h]h]h]h]uh j3h]rb4(j)rc4}rd4(hUh}re4(h]h]h]h]h]uh j_4h]rf4j)rg4}rh4(hUh}ri4(U anchornameU#newsUrefurijlh]h]h]h]h]Uinternaluh jc4h]rj4hXNewsrk4rl4}rm4(hXNewsh jg4ubah!jubah!jubj)rn4}ro4(hUh}rp4(h]h]h]h]h]uh j_4h]rq4(j)rr4}rs4(hUh}rt4(h]h]h]h]h]uh jn4h]ru4j)rv4}rw4(hUh}rx4(h]h]h]h]h]uh jr4h]ry4j)rz4}r{4(hUh}r|4(U anchornameU'#building-a-django-app-server-with-chefUrefurijlh]h]h]h]h]Uinternaluh jv4h]r}4hX&Building a Django App Server with Chefr~4r4}r4(hX&Building a Django App Server with Chefh jz4ubah!jubah!jubah!j-ubj)r4}r4(hUh}r4(h]h]h]h]h]uh jn4h]r4j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4j)r4}r4(hUh}r4(U anchornameU#introduccio-a-celery-catalanUrefurijlh]h]h]h]h]Uinternaluh j4h]r4hXIntroducció a Celery (Catalan)r4r4}r4(hXIntroducció a Celery (Catalan)h j4ubah!jubah!jubah!j-ubj)r4}r4(hUh}r4(h]h]h]h]h]uh jn4h]r4j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4j)r4}r4(hUh}r4(U anchornameU #django-and-celery-death-to-cronUrefurijlh]h]h]h]h]Uinternaluh j4h]r4hX!Django and Celery - Death to Cronr4r4}r4(hX!Django and Celery - Death to Cronh j4ubah!jubah!jubah!j-ubj)r4}r4(hUh}r4(h]h]h]h]h]uh jn4h]r4j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4j)r4}r4(hUh}r4(U anchornameU #celery-tipsUrefurijlh]h]h]h]h]Uinternaluh j4h]r4hX Celery Tipsr4r4}r4(hX Celery Tipsh j4ubah!jubah!jubah!j-ubj)r4}r4(hUh}r4(h]h]h]h]h]uh jn4h]r4j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4j)r4}r4(hUh}r4(U anchornameU #what-s-your-favorite-django-appUrefurijlh]h]h]h]h]Uinternaluh j4h]r4hX What's your favorite Django app?r4r4}r4(hX What's your favorite Django app?h j4ubah!jubah!jubah!j-ubj)r4}r4(hUh}r4(h]h]h]h]h]uh jn4h]r4j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4j)r4}r4(hUh}r4(U anchornameU#virtualenv-tipsUrefurijlh]h]h]h]h]Uinternaluh j4h]r4hXVirtualenv Tipsr4r4}r4(hXVirtualenv Tipsh j4ubah!jubah!jubah!j-ubj)r4}r4(hUh}r4(h]h]h]h]h]uh jn4h]r4j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4j)r4}r4(hUh}r4(U anchornameU#tools-that-make-django-betterUrefurijlh]h]h]h]h]Uinternaluh j4h]r4hX 10 Tools That Make Django Betterr4r4}r4(hX 10 Tools That Make Django Betterh j4ubah!jubah!jubah!j-ubj)r4}r4(hUh}r4(h]h]h]h]h]uh jn4h]r4j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4j)r4}r4(hUh}r4(U anchornameU##distributed-task-locking-in-celeryUrefurijlh]h]h]h]h]Uinternaluh j4h]r4hX"Distributed Task Locking in Celeryr4r4}r4(hX"Distributed Task Locking in Celeryh j4ubah!jubah!jubah!j-ubj)r4}r4(hUh}r4(h]h]h]h]h]uh jn4h]r4j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r4j)r4}r4(hUh}r4(U anchornameU#celery-python-russianUrefurijlh]h]h]h]h]Uinternaluh j4h]r4hXWCelery — распределенные очереди задач на Python (Russian)r4r4}r4(hXWCelery — распределенные очереди задач на Python (Russian)h j4ubah!jubah!jubah!j-ubj)r4}r4(hUh}r4(h]h]h]h]h]uh jn4h]r4j)r4}r4(hUh}r4(h]h]h]h]h]uh j4h]r5j)r5}r5(hUh}r5(U anchornameU#celery-russianUrefurijlh]h]h]h]h]Uinternaluh j4h]r5hX&Подробнее о Celery (Russian)r5r5}r5(hX&Подробнее о Celery (Russian)h j5ubah!jubah!jubah!j-ubj)r5}r 5(hUh}r 5(h]h]h]h]h]uh jn4h]r 5j)r 5}r 5(hUh}r5(h]h]h]h]h]uh j5h]r5j)r5}r5(hUh}r5(U anchornameU.#celery-rabbitmq-and-sending-messages-directlyUrefurijlh]h]h]h]h]Uinternaluh j 5h]r5hX/Celery, RabbitMQ and sending messages directly.r5r5}r5(hX/Celery, RabbitMQ and sending messages directly.h j5ubah!jubah!jubah!j-ubj)r5}r5(hUh}r5(h]h]h]h]h]uh jn4h]r5j)r5}r5(hUh}r5(h]h]h]h]h]uh j5h]r5j)r5}r 5(hUh}r!5(U anchornameU+#cron-dentro-do-django-com-celery-portugeseUrefurijlh]h]h]h]h]Uinternaluh j5h]r"5hX,Cron dentro do Django com Celery (Portugese)r#5r$5}r%5(hX,Cron dentro do Django com Celery (Portugese)h j5ubah!jubah!jubah!j-ubj)r&5}r'5(hUh}r(5(h]h]h]h]h]uh jn4h]r)5j)r*5}r+5(hUh}r,5(h]h]h]h]h]uh j&5h]r-5j)r.5}r/5(hUh}r05(U anchornameU#rabbitmqcelerydjango-japaneseUrefurijlh]h]h]h]h]Uinternaluh j*5h]r15hXORabbitMQとCeleryを使ってDjangoでジョブキューしてみる (Japanese)r25r35}r45(hXORabbitMQとCeleryを使ってDjangoでジョブキューしてみる (Japanese)h j.5ubah!jubah!jubah!j-ubj)r55}r65(hUh}r75(h]h]h]h]h]uh jn4h]r85j)r95}r:5(hUh}r;5(h]h]h]h]h]uh j55h]r<5j)r=5}r>5(hUh}r?5(U anchornameU+#kaninchen-schlangen-rabbitmq-python-germanUrefurijlh]h]h]h]h]Uinternaluh j95h]r@5hX1Kaninchen & Schlangen: RabbitMQ & Python (German)rA5rB5}rC5(hX1Kaninchen & Schlangen: RabbitMQ & Python (German)h j=5ubah!jubah!jubah!j-ubj)rD5}rE5(hUh}rF5(h]h]h]h]h]uh jn4h]rG5j)rH5}rI5(hUh}rJ5(h]h]h]h]h]uh jD5h]rK5j)rL5}rM5(hUh}rN5(U anchornameU>#celery-eine-asynchrone-task-queue-nicht-nur-fur-django-germanUrefurijlh]h]h]h]h]Uinternaluh jH5h]rO5hXDCelery - Eine asynchrone Task Queue (nicht nur) für Django (German)rP5rQ5}rR5(hXDCelery - Eine asynchrone Task Queue (nicht nur) für Django (German)h jL5ubah!jubah!jubah!j-ubj)rS5}rT5(hUh}rU5(h]h]h]h]h]uh jn4h]rV5j)rW5}rX5(hUh}rY5(h]h]h]h]h]uh jS5h]rZ5j)r[5}r\5(hUh}r]5(U anchornameU1#asynchronous-processing-using-celery-historio-usUrefurijlh]h]h]h]h]Uinternaluh jW5h]r^5hX2Asynchronous Processing Using Celery (historio.us)r_5r`5}ra5(hX2Asynchronous Processing Using Celery (historio.us)h j[5ubah!jubah!jubah!j-ubj)rb5}rc5(hUh}rd5(h]h]h]h]h]uh jn4h]re5j)rf5}rg5(hUh}rh5(h]h]h]h]h]uh jb5h]ri5j)rj5}rk5(hUh}rl5(U anchornameU9#massaging-the-pony-message-queues-and-you-djangocon-2010Urefurijlh]h]h]h]h]Uinternaluh jf5h]rm5hX="Massaging the Pony: Message Queues and You" (Djangocon 2010)rn5ro5}rp5(hX="Massaging the Pony: Message Queues and You" (Djangocon 2010)h jj5ubah!jubah!jubah!j-ubj)rq5}rr5(hUh}rs5(h]h]h]h]h]uh jn4h]rt5j)ru5}rv5(hUh}rw5(h]h]h]h]h]uh jq5h]rx5j)ry5}rz5(hUh}r{5(U anchornameU,#large-problems-mostly-solved-djangocon-2010Urefurijlh]h]h]h]h]Uinternaluh ju5h]r|5hX0"Large problems, Mostly Solved" (Djangocon 2010)r}5r~5}r5(hX0"Large problems, Mostly Solved" (Djangocon 2010)h jy5ubah!jubah!jubah!j-ubj)r5}r5(hUh}r5(h]h]h]h]h]uh jn4h]r5j)r5}r5(hUh}r5(h]h]h]h]h]uh j5h]r5j)r5}r5(hUh}r5(U anchornameU##a-simple-celery-with-django-how-toUrefurijlh]h]h]h]h]Uinternaluh j5h]r5hX"A Simple Celery with Django How-Tor5r5}r5(hX"A Simple Celery with Django How-Toh j5ubah!jubah!jubah!j-ubj)r5}r5(hUh}r5(h]h]h]h]h]uh jn4h]r5j)r5}r5(hUh}r5(h]h]h]h]h]uh j5h]r5j)r5}r5(hUh}r5(U anchornameU#django-and-asynchronous-jobsUrefurijlh]h]h]h]h]Uinternaluh j5h]r5hXDjango and asynchronous jobsr5r5}r5(hXDjango and asynchronous jobsh j5ubah!jubah!jubah!j-ubj)r5}r5(hUh}r5(h]h]h]h]h]uh jn4h]r5j)r5}r5(hUh}r5(h]h]h]h]h]uh j5h]r5j)r5}r5(hUh}r5(U anchornameU#celery-django-russianUrefurijlh]h]h]h]h]Uinternaluh j5h]r5hXECelery: добавляем параллелизм в Django (Russian)r5r5}r5(hXECelery: добавляем параллелизм в Django (Russian)h j5ubah!jubah!jubah!j-ubj)r5}r5(hUh}r5(h]h]h]h]h]uh jn4h]r5j)r5}r5(hUh}r5(h]h]h]h]h]uh j5h]r5j)r5}r5(hUh}r5(U anchornameU(#celery-presentation-at-pycon-india-2010Urefurijlh]h]h]h]h]Uinternaluh j5h]r5hX'Celery presentation at PyCon India 2010r5r5}r5(hX'Celery presentation at PyCon India 2010h j5ubah!jubah!jubah!j-ubj)r5}r5(hUh}r5(h]h]h]h]h]uh jn4h]r5j)r5}r5(hUh}r5(h]h]h]h]h]uh j5h]r5j)r5}r5(hUh}r5(U anchornameU*#celery-django-and-virtualenv-playing-niceUrefurijlh]h]h]h]h]Uinternaluh j5h]r5hX+celery, django and virtualenv playing nice.r5r5}r5(hX+celery, django and virtualenv playing nice.h j5ubah!jubah!jubah!j-ubj)r5}r5(hUh}r5(h]h]h]h]h]uh jn4h]r5j)r5}r5(hUh}r5(h]h]h]h]h]uh j5h]r5j)r5}r5(hUh}r5(U anchornameU!#django-task-queueing-with-celeryUrefurijlh]h]h]h]h]Uinternaluh j5h]r5hX Django Task Queueing with Celeryr5r5}r5(hX Django Task Queueing with Celeryh j5ubah!jubah!jubah!j-ubj)r5}r5(hUh}r5(h]h]h]h]h]uh jn4h]r5j)r5}r5(hUh}r5(h]h]h]h]h]uh j5h]r5j)r5}r5(hUh}r5(U anchornameU)#django-celery-presentation-at-djugl-2010Urefurijlh]h]h]h]h]Uinternaluh j5h]r5hX)django-celery presentation at DJUGL 2010.r5r5}r5(hX)django-celery presentation at DJUGL 2010.h j5ubah!jubah!jubah!j-ubj)r5}r5(hUh}r5(h]h]h]h]h]uh jn4h]r5j)r5}r5(hUh}r5(h]h]h]h]h]uh j5h]r5j)r5}r5(hUh}r5(U anchornameUM#django-celery-quickstart-or-how-i-learned-to-stop-using-cron-and-love-celeryUrefurijlh]h]h]h]h]Uinternaluh j5h]r5hXODjango/Celery Quickstart (or, how I learned to stop using cron and love celery)r5r5}r5(hXODjango/Celery Quickstart (or, how I learned to stop using cron and love celery)h j5ubah!jubah!jubah!j-ubj)r5}r5(hUh}r5(h]h]h]h]h]uh jn4h]r5j)r5}r5(hUh}r5(h]h]h]h]h]uh j5h]r5j)r6}r6(hUh}r6(U anchornameU/#using-python-magic-to-improve-the-deferred-apiUrefurijlh]h]h]h]h]Uinternaluh j5h]r6hX.Using Python magic to improve the deferred APIr6r6}r6(hX.Using Python magic to improve the deferred APIh j6ubah!jubah!jubah!j-ubj)r6}r6(hUh}r 6(h]h]h]h]h]uh jn4h]r 6j)r 6}r 6(hUh}r 6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r6(U anchornameU0#how-celery-carrot-and-your-messaging-stack-workUrefurijlh]h]h]h]h]Uinternaluh j 6h]r6hX1How Celery, Carrot, and your messaging stack workr6r6}r6(hX1How Celery, Carrot, and your messaging stack workh j6ubah!jubah!jubah!j-ubj)r6}r6(hUh}r6(h]h]h]h]h]uh jn4h]r6j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r 6(U anchornameU9#large-problems-in-django-mostly-solved-delayed-executionUrefurijlh]h]h]h]h]Uinternaluh j6h]r!6hX:Large Problems in Django, Mostly Solved: Delayed Executionr"6r#6}r$6(hX:Large Problems in Django, Mostly Solved: Delayed Executionh j6ubah!jubah!jubah!j-ubj)r%6}r&6(hUh}r'6(h]h]h]h]h]uh jn4h]r(6j)r)6}r*6(hUh}r+6(h]h]h]h]h]uh j%6h]r,6j)r-6}r.6(hUh}r/6(U anchornameU#introduction-to-celeryUrefurijlh]h]h]h]h]Uinternaluh j)6h]r06hXIntroduction to Celeryr16r26}r36(hXIntroduction to Celeryh j-6ubah!jubah!jubah!j-ubj)r46}r56(hUh}r66(h]h]h]h]h]uh jn4h]r76j)r86}r96(hUh}r:6(h]h]h]h]h]uh j46h]r;6j)r<6}r=6(hUh}r>6(U anchornameU#rabbitmq-celery-and-djangoUrefurijlh]h]h]h]h]Uinternaluh j86h]r?6hXRabbitMQ, Celery and Djangor@6rA6}rB6(hXRabbitMQ, Celery and Djangoh j<6ubah!jubah!jubah!j-ubj)rC6}rD6(hUh}rE6(h]h]h]h]h]uh jn4h]rF6j)rG6}rH6(hUh}rI6(h]h]h]h]h]uh jC6h]rJ6j)rK6}rL6(hUh}rM6(U anchornameU-#message-queues-django-and-celery-quick-startUrefurijlh]h]h]h]h]Uinternaluh jG6h]rN6hX-Message Queues, Django and Celery Quick StartrO6rP6}rQ6(hX-Message Queues, Django and Celery Quick Starth jK6ubah!jubah!jubah!j-ubj)rR6}rS6(hUh}rT6(h]h]h]h]h]uh jn4h]rU6j)rV6}rW6(hUh}rX6(h]h]h]h]h]uh jR6h]rY6j)rZ6}r[6(hUh}r\6(U anchornameU<#background-task-processing-and-deferred-execution-in-djangoUrefurijlh]h]h]h]h]Uinternaluh jV6h]r]6hX;Background task processing and deferred execution in Djangor^6r_6}r`6(hX;Background task processing and deferred execution in Djangoh jZ6ubah!jubah!jubah!j-ubj)ra6}rb6(hUh}rc6(h]h]h]h]h]uh jn4h]rd6j)re6}rf6(hUh}rg6(h]h]h]h]h]uh ja6h]rh6j)ri6}rj6(hUh}rk6(U anchornameUF#build-a-processing-queue-in-less-than-a-day-using-rabbitmq-and-celeryUrefurijlh]h]h]h]h]Uinternaluh je6h]rl6hXKBuild a processing queue [...] in less than a day using RabbitMQ and Celeryrm6rn6}ro6(hXKBuild a processing queue [...] in less than a day using RabbitMQ and Celeryh ji6ubah!jubah!jubah!j-ubj)rp6}rq6(hUh}rr6(h]h]h]h]h]uh jn4h]rs6j)rt6}ru6(hUh}rv6(h]h]h]h]h]uh jp6h]rw6j)rx6}ry6(hUh}rz6(U anchornameU&#how-to-get-celeryd-to-work-on-freebsdUrefurijlh]h]h]h]h]Uinternaluh jt6h]r{6hX%How to get celeryd to work on FreeBSDr|6r}6}r~6(hX%How to get celeryd to work on FreeBSDh jx6ubah!jubah!jubah!j-ubj)r6}r6(hUh}r6(h]h]h]h]h]uh jn4h]r6j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r6(U anchornameU #web-based-3d-animation-softwareUrefurijlh]h]h]h]h]Uinternaluh j6h]r6hXWeb-based 3D animation softwarer6r6}r6(hXWeb-based 3D animation softwareh j6ubah!jubah!jubah!j-ubj)r6}r6(hUh}r6(h]h]h]h]h]uh jn4h]r6j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r6(U anchornameU"#queued-storage-backend-for-djangoUrefurijlh]h]h]h]h]Uinternaluh j6h]r6hX!Queued Storage Backend for Djangor6r6}r6(hX!Queued Storage Backend for Djangoh j6ubah!jubah!jubah!j-ubj)r6}r6(hUh}r6(h]h]h]h]h]uh jn4h]r6j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r6(U anchornameU#rabbitmq-with-python-and-rubyUrefurijlh]h]h]h]h]Uinternaluh j6h]r6hXRabbitMQ with Python and Rubyr6r6}r6(hXRabbitMQ with Python and Rubyh j6ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubjuj)r6}r6(hUh}r6(h]h]h]h]h]uh]r6j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r6(U anchornameUUrefurijuh]h]h]h]h]Uinternaluh j6h]r6hX4Task Sets, Subtasks and Callbacks - celery.task.setsr6r6}r6(hj}h j6ubah!jubah!jubah!j-ubah!j>ubj~j)r6}r6(hUh}r6(h]h]h]h]h]uh]r6j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6(j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r6(U anchornameUUrefurij~h]h]h]h]h]Uinternaluh j6h]r6hX Resourcesr6r6}r6(hjh j6ubah!jubah!jubj)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6(j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6(j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r6(U anchornameU #getting-helpUrefurij~h]h]h]h]h]Uinternaluh j6h]r6hX Getting Helpr6r6}r6(hX Getting Helph j6ubah!jubah!jubj)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6(j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r6(U anchornameU #mailing-listUrefurij~h]h]h]h]h]Uinternaluh j6h]r6hX Mailing listr6r6}r6(hX Mailing listh j6ubah!jubah!jubah!j-ubj)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r6}r6(hUh}r6(h]h]h]h]h]uh j6h]r6j)r7}r7(hUh}r7(U anchornameU#ircUrefurij~h]h]h]h]h]Uinternaluh j6h]r7hXIRCr7r7}r7(hXIRCh j7ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)r7}r7(hUh}r 7(h]h]h]h]h]uh j6h]r 7j)r 7}r 7(hUh}r 7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(U anchornameU #bug-trackerUrefurij~h]h]h]h]h]Uinternaluh j 7h]r7hX Bug trackerr7r7}r7(hX Bug trackerh j7ubah!jubah!jubah!j-ubj)r7}r7(hUh}r7(h]h]h]h]h]uh j6h]r7j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r 7(U anchornameU#wikiUrefurij~h]h]h]h]h]Uinternaluh j7h]r!7hXWikir"7r#7}r$7(hXWikih j7ubah!jubah!jubah!j-ubj)r%7}r&7(hUh}r'7(h]h]h]h]h]uh j6h]r(7j)r)7}r*7(hUh}r+7(h]h]h]h]h]uh j%7h]r,7j)r-7}r.7(hUh}r/7(U anchornameU #contributingUrefurij~h]h]h]h]h]Uinternaluh j)7h]r07hX Contributingr17r27}r37(hX Contributingh j-7ubah!jubah!jubah!j-ubj)r47}r57(hUh}r67(h]h]h]h]h]uh j6h]r77j)r87}r97(hUh}r:7(h]h]h]h]h]uh j47h]r;7j)r<7}r=7(hUh}r>7(U anchornameU#licenseUrefurij~h]h]h]h]h]Uinternaluh j87h]r?7hXLicenser@7rA7}rB7(hXLicenseh j<7ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubjj)rC7}rD7(hUh}rE7(h]h]h]h]h]uh]rF7j)rG7}rH7(hUh}rI7(h]h]h]h]h]uh jC7h]rJ7j)rK7}rL7(hUh}rM7(h]h]h]h]h]uh jG7h]rN7j)rO7}rP7(hUh}rQ7(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jK7h]rR7hXAextended multiprocessing.pool - celery.concurrency.processes.poolrS7rT7}rU7(hjh jO7ubah!jubah!jubah!j-ubah!j>ubjj)rV7}rW7(hUh}rX7(h]h]h]h]h]uh]rY7j)rZ7}r[7(hUh}r\7(h]h]h]h]h]uh jV7h]r]7j)r^7}r_7(hUh}r`7(h]h]h]h]h]uh jZ7h]ra7j)rb7}rc7(hUh}rd7(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j^7h]re7hX5Worker Controller Threads - celery.worker.controllersrf7rg7}rh7(hjh jb7ubah!jubah!jubah!j-ubah!j>ubjj)ri7}rj7(hUh}rk7(h]h]h]h]h]uh]rl7j)rm7}rn7(hUh}ro7(h]h]h]h]h]uh ji7h]rp7j)rq7}rr7(hUh}rs7(h]h]h]h]h]uh jm7h]rt7j)ru7}rv7(hUh}rw7(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jq7h]rx7hX8Signals: Safe References - celery.utils.dispatch.saferefry7rz7}r{7(hjh ju7ubah!jubah!jubah!j-ubah!j>ubjj)r|7}r}7(hUh}r~7(h]h]h]h]h]uh]r7j)r7}r7(hUh}r7(h]h]h]h]h]uh j|7h]r7j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j7h]r7hXceleryd - celery.bin.celerydr7r7}r7(hjh j7ubah!jubah!jubah!j-ubah!j>ubjj)r7}r7(hUh}r7(h]h]h]h]h]uh]r7j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7(j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j7h]r7hX Introductionr7r7}r7(hjh j7ubah!jubah!jubj)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7(j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(U anchornameU #overviewUrefurijh]h]h]h]h]Uinternaluh j7h]r7hXOverviewr7r7}r7(hXOverviewh j7ubah!jubah!jubah!j-ubj)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(U anchornameU#exampleUrefurijh]h]h]h]h]Uinternaluh j7h]r7hXExampler7r7}r7(hXExampleh j7ubah!jubah!jubah!j-ubj)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(U anchornameU #featuresUrefurijh]h]h]h]h]Uinternaluh j7h]r7hXFeaturesr7r7}r7(hXFeaturesh j7ubah!jubah!jubah!j-ubj)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(U anchornameU#documentationUrefurijh]h]h]h]h]Uinternaluh j7h]r7hX Documentationr7r7}r7(hX Documentationh j7ubah!jubah!jubah!j-ubj)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7(j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(U anchornameU #installationUrefurijh]h]h]h]h]Uinternaluh j7h]r7hX Installationr7r7}r7(hX Installationh j7ubah!jubah!jubj)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7(j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(h]h]h]h]h]uh j7h]r7j)r7}r7(hUh}r7(U anchornameU'#downloading-and-installing-from-sourceUrefurijh]h]h]h]h]Uinternaluh j7h]r8hX&Downloading and installing from sourcer8r8}r8(hX&Downloading and installing from sourceh j7ubah!jubah!jubah!j-ubj)r8}r8(hUh}r8(h]h]h]h]h]uh j7h]r8j)r8}r 8(hUh}r 8(h]h]h]h]h]uh j8h]r 8j)r 8}r 8(hUh}r8(U anchornameU#using-the-development-versionUrefurijh]h]h]h]h]Uinternaluh j8h]r8hXUsing the development versionr8r8}r8(hXUsing the development versionh j 8ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubjj)r8}r8(hUh}r8(h]h]h]h]h]uh]r8j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r 8(hUh}r!8(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j8h]r"8hX0Time and Date Utilities - celery.utils.timeutilsr#8r$8}r%8(hjh j8ubah!jubah!jubah!j-ubah!j>ubjj)r&8}r'8(hUh}r(8(h]h]h]h]h]uh]r)8j)r*8}r+8(hUh}r,8(h]h]h]h]h]uh j&8h]r-8j)r.8}r/8(hUh}r08(h]h]h]h]h]uh j*8h]r18j)r28}r38(hUh}r48(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j.8h]r58hX2Signals: Dispatcher - celery.utils.dispatch.signalr68r78}r88(hjh j28ubah!jubah!jubah!j-ubah!j>ubjj)r98}r:8(hUh}r;8(h]h]h]h]h]uh]r<8j)r=8}r>8(hUh}r?8(h]h]h]h]h]uh j98h]r@8(j)rA8}rB8(hUh}rC8(h]h]h]h]h]uh j=8h]rD8j)rE8}rF8(hUh}rG8(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jA8h]rH8hX-Celeryd Multi Tool - celery.bin.celeryd_multirI8rJ8}rK8(hjh jE8ubah!jubah!jubj)rL8}rM8(hUh}rN8(h]h]h]h]h]uh j=8h]rO8j)rP8}rQ8(hUh}rR8(h]h]h]h]h]uh jL8h]rS8j)rT8}rU8(hUh}rV8(h]h]h]h]h]uh jP8h]rW8j)rX8}rY8(hUh}rZ8(U anchornameU #examplesUrefurijh]h]h]h]h]Uinternaluh jT8h]r[8hXExamplesr\8r]8}r^8(hXExamplesh jX8ubah!jubah!jubah!j-ubah!j>ubeh!j-ubah!j>ubjj)r_8}r`8(hUh}ra8(h]h]h]h]h]uh]rb8j)rc8}rd8(hUh}re8(h]h]h]h]h]uh j_8h]rf8j)rg8}rh8(hUh}ri8(h]h]h]h]h]uh jc8h]rj8j)rk8}rl8(hUh}rm8(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jg8h]rn8hX;Multiprocessing Pool Support - celery.concurrency.processesro8rp8}rq8(hjh jk8ubah!jubah!jubah!j-ubah!j>ubjj)rr8}rs8(hUh}rt8(h]h]h]h]h]uh]ru8j)rv8}rw8(hUh}rx8(h]h]h]h]h]uh jr8h]ry8(j)rz8}r{8(hUh}r|8(h]h]h]h]h]uh jv8h]r}8j)r~8}r8(hUh}r8(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jz8h]r8hX User Guider8r8}r8(hjh j~8ubah!jubah!jubj)r8}r8(hUh}r8(h]h]h]h]h]uh jv8h]r8j)r8}r8(hUh}r8(UnumberedKUparentjU titlesonlyUglobh]h]h]h]h]Uentries]r8(Njr8Njr8Njr8Njr8Njr8Njr8Njr8Njr8Njr8Njr8eUhiddenUmaxdepthKU includefiles]r8(jjjjjjjjjjeU includehiddenuh j8h]h!jubah!j>ubeh!j-ubah!j>ubjj)r8}r8(hUh}r8(h]h]h]h]h]uh]r8j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r8(hUh}r8(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j8h]r8hX*Compatibility Patches - celery.utils.patchr8r8}r8(hjh j8ubah!jubah!jubah!j-ubah!j>ubjj)r8}r8(hUh}r8(h]h]h]h]h]uh]r8j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r8(hUh}r8(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j8h]r8hXMessage Routers - celery.routesr8r8}r8(hjh j8ubah!jubah!jubah!j-ubah!j>ubjj)r8}r8(hUh}r8(h]h]h]h]h]uh]r8j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8(j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r8(hUh}r8(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j8h]r8hXList of Worker Eventsr8r8}r8(hjh j8ubah!jubah!jubj)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8(j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r8(hUh}r8(U anchornameU #task-eventsUrefurijh]h]h]h]h]Uinternaluh j8h]r8hX Task Eventsr8r8}r8(hX Task Eventsh j8ubah!jubah!jubah!j-ubj)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r8(hUh}r8(U anchornameU#worker-eventsUrefurijh]h]h]h]h]Uinternaluh j8h]r8hX Worker Eventsr8r8}r8(hX Worker Eventsh j8ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubjj)r8}r8(hUh}r8(h]h]h]h]h]uh]r8j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8(j)r8}r8(hUh}r8(h]h]h]h]h]uh j8h]r8j)r8}r9(hUh}r9(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j8h]r9hXInternals: The workerr9r9}r9(hjh j8ubah!jubah!jubj)r9}r9(hUh}r9(h]h]h]h]h]uh j8h]r 9(j)r 9}r 9(hUh}r 9(h]h]h]h]h]uh j9h]r 9j)r9}r9(hUh}r9(h]h]h]h]h]uh j 9h]r9j)r9}r9(hUh}r9(U anchornameU #introductionUrefurijh]h]h]h]h]Uinternaluh j9h]r9hX Introductionr9r9}r9(hX Introductionh j9ubah!jubah!jubah!j-ubj)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9(j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r 9j)r!9}r"9(hUh}r#9(U anchornameU#data-structuresUrefurijh]h]h]h]h]Uinternaluh j9h]r$9hXData structuresr%9r&9}r'9(hXData structuresh j!9ubah!jubah!jubj)r(9}r)9(hUh}r*9(h]h]h]h]h]uh j9h]r+9(j)r,9}r-9(hUh}r.9(h]h]h]h]h]uh j(9h]r/9j)r09}r19(hUh}r29(h]h]h]h]h]uh j,9h]r39j)r49}r59(hUh}r69(U anchornameU #ready-queueUrefurijh]h]h]h]h]Uinternaluh j09h]r79hX ready_queuer89r99}r:9(hX ready_queueh j49ubah!jubah!jubah!j-ubj)r;9}r<9(hUh}r=9(h]h]h]h]h]uh j(9h]r>9j)r?9}r@9(hUh}rA9(h]h]h]h]h]uh j;9h]rB9j)rC9}rD9(hUh}rE9(U anchornameU #eta-scheduleUrefurijh]h]h]h]h]Uinternaluh j?9h]rF9hX eta_schedulerG9rH9}rI9(hX eta_scheduleh jC9ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubj)rJ9}rK9(hUh}rL9(h]h]h]h]h]uh j9h]rM9(j)rN9}rO9(hUh}rP9(h]h]h]h]h]uh jJ9h]rQ9j)rR9}rS9(hUh}rT9(U anchornameU #componentsUrefurijh]h]h]h]h]Uinternaluh jN9h]rU9hX ComponentsrV9rW9}rX9(hX Componentsh jR9ubah!jubah!jubj)rY9}rZ9(hUh}r[9(h]h]h]h]h]uh jJ9h]r\9(j)r]9}r^9(hUh}r_9(h]h]h]h]h]uh jY9h]r`9j)ra9}rb9(hUh}rc9(h]h]h]h]h]uh j]9h]rd9j)re9}rf9(hUh}rg9(U anchornameU#carrotlistenerUrefurijh]h]h]h]h]Uinternaluh ja9h]rh9hXCarrotListenerri9rj9}rk9(hXCarrotListenerh je9ubah!jubah!jubah!j-ubj)rl9}rm9(hUh}rn9(h]h]h]h]h]uh jY9h]ro9j)rp9}rq9(hUh}rr9(h]h]h]h]h]uh jl9h]rs9j)rt9}ru9(hUh}rv9(U anchornameU#schedulecontrollerUrefurijh]h]h]h]h]Uinternaluh jp9h]rw9hXScheduleControllerrx9ry9}rz9(hXScheduleControllerh jt9ubah!jubah!jubah!j-ubj)r{9}r|9(hUh}r}9(h]h]h]h]h]uh jY9h]r~9j)r9}r9(hUh}r9(h]h]h]h]h]uh j{9h]r9j)r9}r9(hUh}r9(U anchornameU #mediatorUrefurijh]h]h]h]h]Uinternaluh j9h]r9hXMediatorr9r9}r9(hXMediatorh j9ubah!jubah!jubah!j-ubj)r9}r9(hUh}r9(h]h]h]h]h]uh jY9h]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r9}r9(hUh}r9(U anchornameU #taskpoolUrefurijh]h]h]h]h]Uinternaluh j9h]r9hXTaskPoolr9r9}r9(hXTaskPoolh j9ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubjj)r9}r9(hUh}r9(h]h]h]h]h]uh]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r9}r9(hUh}r9(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j9h]r9hX%App: Worker Node - celery.apps.workerr9r9}r9(hj h j9ubah!jubah!jubah!j-ubah!j>ubjj)r9}r9(hUh}r9(h]h]h]h]h]uh]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r9}r9(hUh}r9(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j9h]r9hX,Task Information and Utilities - celery.taskr9r9}r9(hjh j9ubah!jubah!jubah!j-ubah!j>ubjj)r9}r9(hUh}r9(h]h]h]h]h]uh]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r9}r9(hUh}r9(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j9h]r9hX'Signal Dispatch - celery.utils.dispatchr9r9}r9(hjh j9ubah!jubah!jubah!j-ubah!j>ubj j)r9}r9(hUh}r9(h]h]h]h]h]uh]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r9}r9(hUh}r9(U anchornameUUrefurij h]h]h]h]h]Uinternaluh j9h]r9hX)Backend: Memcache - celery.backends.cacher9r9}r9(hj(h j9ubah!jubah!jubah!j-ubah!j>ubj)j)r9}r9(hUh}r9(h]h]h]h]h]uh]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r9}r9(hUh}r9(U anchornameUUrefurij)h]h]h]h]h]Uinternaluh j9h]r9hXTask Registry - celery.registryr9r9}r9(hj1h j9ubah!jubah!jubah!j-ubah!j>ubj2j)r9}r9(hUh}r9(h]h]h]h]h]uh]r9j)r9}r9(hUh}r9(h]h]h]h]h]uh j9h]r9j)r:}r:(hUh}r:(h]h]h]h]h]uh j9h]r:j)r:}r:(hUh}r:(U anchornameUUrefurij2h]h]h]h]h]Uinternaluh j:h]r:hX/App: Periodic Task Scheduler - celery.apps.beatr:r :}r :(hj:h j:ubah!jubah!jubah!j-ubah!j>ubj;j)r :}r :(hUh}r :(h]h]h]h]h]uh]r:j)r:}r:(hUh}r:(h]h]h]h]h]uh j :h]r:j)r:}r:(hUh}r:(h]h]h]h]h]uh j:h]r:j)r:}r:(hUh}r:(U anchornameUUrefurij;h]h]h]h]h]Uinternaluh j:h]r:hX&Worker Control - celery.worker.controlr:r:}r:(hjCh j:ubah!jubah!jubah!j-ubah!j>ubjDj)r:}r:(hUh}r :(h]h]h]h]h]uh]r!:j)r":}r#:(hUh}r$:(h]h]h]h]h]uh j:h]r%:(j)r&:}r':(hUh}r(:(h]h]h]h]h]uh j":h]r):j)r*:}r+:(hUh}r,:(U anchornameUUrefurijDh]h]h]h]h]Uinternaluh j&:h]r-:hXInteresting Linksr.:r/:}r0:(hjLh j*:ubah!jubah!jubj)r1:}r2:(hUh}r3:(h]h]h]h]h]uh j":h]r4:(j)r5:}r6:(hUh}r7:(h]h]h]h]h]uh j1:h]r8:j)r9:}r::(hUh}r;:(h]h]h]h]h]uh j5:h]r<:j)r=:}r>:(hUh}r?:(U anchornameU#celeryUrefurijDh]h]h]h]h]Uinternaluh j9:h]r@:hXceleryrA:rB:}rC:(hXceleryh j=:ubah!jubah!jubah!j-ubj)rD:}rE:(hUh}rF:(h]h]h]h]h]uh j1:h]rG:j)rH:}rI:(hUh}rJ:(h]h]h]h]h]uh jD:h]rK:j)rL:}rM:(hUh}rN:(U anchornameU#amqpUrefurijDh]h]h]h]h]Uinternaluh jH:h]rO:hXAMQPrP:rQ:}rR:(hXAMQPh jL:ubah!jubah!jubah!j-ubj)rS:}rT:(hUh}rU:(h]h]h]h]h]uh j1:h]rV:j)rW:}rX:(hUh}rY:(h]h]h]h]h]uh jS:h]rZ:j)r[:}r\:(hUh}r]:(U anchornameU #rabbitmqUrefurijDh]h]h]h]h]Uinternaluh jW:h]r^:hXRabbitMQr_:r`:}ra:(hXRabbitMQh j[:ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubjMj)rb:}rc:(hUh}rd:(h]h]h]h]h]uh]re:j)rf:}rg:(hUh}rh:(h]h]h]h]h]uh jb:h]ri:j)rj:}rk:(hUh}rl:(h]h]h]h]h]uh jf:h]rm:j)rn:}ro:(hUh}rp:(U anchornameUUrefurijMh]h]h]h]h]Uinternaluh jj:h]rq:hX7Backend: SQLAlchemy Database - celery.backends.databaserr:rs:}rt:(hjUh jn:ubah!jubah!jubah!j-ubah!j>ubjVj)ru:}rv:(hUh}rw:(h]h]h]h]h]uh]rx:j)ry:}rz:(hUh}r{:(h]h]h]h]h]uh ju:h]r|:(j)r}:}r~:(hUh}r:(h]h]h]h]h]uh jy:h]r:j)r:}r:(hUh}r:(U anchornameUUrefurijVh]h]h]h]h]Uinternaluh j}:h]r:hXInternal Module Referencer:r:}r:(hj^h j:ubah!jubah!jubj)r:}r:(hUh}r:(h]h]h]h]h]uh jy:h]r:j)r:}r:(hUh}r:(UnumberedKUparentjVU titlesonlyUglobh]h]h]h]h]Uentries]r:(Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:Njr:eUhiddenUmaxdepthKU includefiles]r:(jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjeU includehiddenuh j:h]h!jubah!j>ubeh!j-ubah!j>ubj_j)r:}r:(hUh}r:(h]h]h]h]h]uh]r:j)r:}r:(hUh}r:(h]h]h]h]h]uh j:h]r:j)r:}r:(hUh}r:(h]h]h]h]h]uh j:h]r:j)r:}r:(hUh}r:(U anchornameUUrefurij_h]h]h]h]h]Uinternaluh j:h]r:hX$Backend: AMQP - celery.backends.amqpr:r:}r:(hjgh j:ubah!jubah!jubah!j-ubah!j>ubjhj)r:}r:(hUh}r:(h]h]h]h]h]uh]r:j)r:}r:(hUh}r:(h]h]h]h]h]uh j:h]r:j)r:}r:(hUh}r:(h]h]h]h]h]uh j:h]r:j)r:}r:(hUh}r:(U anchornameUUrefurijhh]h]h]h]h]Uinternaluh j:h]r:hX.Backend: Cassandra - celery.backends.cassandrar:r:}r:(hjph j:ubah!jubah!jubah!j-ubah!j>ubjqj)r:}r:(hUh}r:(h]h]h]h]h]uh]r:j)r:}r:(hUh}r:(h]h]h]h]h]uh j:h]r:(j)r:}r:(hUh}r:(h]h]h]h]h]uh j:h]r:j)r:}r:(hUh}r:(U anchornameUUrefurijqh]h]h]h]h]Uinternaluh j:h]r:hX Optimizingr:r:}r:(hjyh j:ubah!jubah!jubj)r:}r:(hUh}r:(h]h]h]h]h]uh j:h]r:(j)r:}r:(hUh}r:(h]h]h]h]h]uh j:h]r:j)r;}r;(hUh}r;(h]h]h]h]h]uh j:h]r;j)r;}r;(hUh}r;(U anchornameU #introductionUrefurijqh]h]h]h]h]Uinternaluh j;h]r;hX Introductionr;r ;}r ;(hX Introductionh j;ubah!jubah!jubah!j-ubj)r ;}r ;(hUh}r ;(h]h]h]h]h]uh j:h]r;(j)r;}r;(hUh}r;(h]h]h]h]h]uh j ;h]r;j)r;}r;(hUh}r;(U anchornameU#worker-settingsUrefurijqh]h]h]h]h]Uinternaluh j;h]r;hXWorker Settingsr;r;}r;(hXWorker Settingsh j;ubah!jubah!jubj)r;}r;(hUh}r;(h]h]h]h]h]uh j ;h]r;j)r;}r;(hUh}r ;(h]h]h]h]h]uh j;h]r!;j)r";}r#;(hUh}r$;(h]h]h]h]h]uh j;h]r%;j)r&;}r';(hUh}r(;(U anchornameU#prefetch-limitUrefurijqh]h]h]h]h]Uinternaluh j";h]r);hXPrefetch limitr*;r+;}r,;(hXPrefetch limith j&;ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r-;}r.;(hUh}r/;(h]h]h]h]h]uh j:h]r0;j)r1;}r2;(hUh}r3;(h]h]h]h]h]uh j-;h]r4;j)r5;}r6;(hUh}r7;(U anchornameU#scenario-1-lots-of-short-tasksUrefurijqh]h]h]h]h]Uinternaluh j1;h]r8;hXScenario 1: Lots of short tasksr9;r:;}r;;(hXScenario 1: Lots of short tasksh j5;ubah!jubah!jubah!j-ubj)r<;}r=;(hUh}r>;(h]h]h]h]h]uh j:h]r?;j)r@;}rA;(hUh}rB;(h]h]h]h]h]uh j<;h]rC;j)rD;}rE;(hUh}rF;(U anchornameU#scenario-2-expensive-tasksUrefurijqh]h]h]h]h]Uinternaluh j@;h]rG;hXScenario 2: Expensive tasksrH;rI;}rJ;(hXScenario 2: Expensive tasksh jD;ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubjzj)rK;}rL;(hUh}rM;(h]h]h]h]h]uh]rN;j)rO;}rP;(hUh}rQ;(h]h]h]h]h]uh jK;h]rR;j)rS;}rT;(hUh}rU;(h]h]h]h]h]uh jO;h]rV;j)rW;}rX;(hUh}rY;(U anchornameUUrefurijzh]h]h]h]h]Uinternaluh jS;h]rZ;hX.Backend: Tokyo Tyrant - celery.backends.tyrantr[;r\;}r];(hjh jW;ubah!jubah!jubah!j-ubah!j>ubjj)r^;}r_;(hUh}r`;(h]h]h]h]h]uh]ra;j)rb;}rc;(hUh}rd;(h]h]h]h]h]uh j^;h]re;(j)rf;}rg;(hUh}rh;(h]h]h]h]h]uh jb;h]ri;j)rj;}rk;(hUh}rl;(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jf;h]rm;hXGetting Startedrn;ro;}rp;(hjh jj;ubah!jubah!jubj)rq;}rr;(hUh}rs;(h]h]h]h]h]uh jb;h]rt;j)ru;}rv;(hUh}rw;(UnumberedKUparentjU titlesonlyUglobh]h]h]h]h]Uentries]rx;(Njry;Njrz;Njr{;Njr|;eUhiddenUmaxdepthKU includefiles]r};(jjjjeU includehiddenuh jq;h]h!jubah!j>ubeh!j-ubah!j>ubjj)r~;}r;(hUh}r;(h]h]h]h]h]uh]r;j)r;}r;(hUh}r;(h]h]h]h]h]uh j~;h]r;j)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;j)r;}r;(hUh}r;(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j;h]r;hX"Worker State - celery.worker.stater;r;}r;(hjh j;ubah!jubah!jubah!j-ubah!j>ubjj)r;}r;(hUh}r;(h]h]h]h]h]uh]r;j)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;j)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;j)r;}r;(hUh}r;(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j;h]r;hX@Remote Control Command Registry - celery.worker.control.registryr;r;}r;(hjh j;ubah!jubah!jubah!j-ubah!j>ubjj)r;}r;(hUh}r;(h]h]h]h]h]uh]r;j)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;(j)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;j)r;}r;(hUh}r;(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j;h]r;hX8Using Celery with Redis/Database as the messaging queue.r;r;}r;(hjh j;ubah!jubah!jubj)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;(j)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;j)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;j)r;}r;(hUh}r;(U anchornameU #installationUrefurijh]h]h]h]h]Uinternaluh j;h]r;hX Installationr;r;}r;(hX Installationr;h j;ubah!jubah!jubah!j-ubj)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;(j)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;j)r;}r;(hUh}r;(U anchornameU#redisUrefurijh]h]h]h]h]Uinternaluh j;h]r;hXRedisr;r;}r;(hXRedisr;h j;ubah!jubah!jubj)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;j)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;j)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;j)r;}r;(hUh}r;(U anchornameU#configurationUrefurijh]h]h]h]h]Uinternaluh j;h]r;hX Configurationr;r;}r;(hX Configurationr;h j;ubah!jubah!jubah!j-ubah!j>ubeh!j-ubj)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;(j)r;}r;(hUh}r;(h]h]h]h]h]uh j;h]r;j)r;}r;(hUh}r;(U anchornameU #databaseUrefurijh]h]h]h]h]Uinternaluh j;h]r;hXDatabaser;r;}r;(hXDatabaser;h j;ubah!jubah!jubj)r;}r<(hUh}r<(h]h]h]h]h]uh j;h]r<(j)r<}r<(hUh}r<(h]h]h]h]h]uh j;h]r<j)r<}r<(hUh}r <(h]h]h]h]h]uh j<h]r <j)r <}r <(hUh}r <(U anchornameU#otherqueues-database-confUrefurijh]h]h]h]h]Uinternaluh j<h]r<hX Configurationr<r<}r<(hX Configurationr<h j <ubah!jubah!jubah!j-ubj)r<}r<(hUh}r<(h]h]h]h]h]uh j;h]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(U anchornameU#important-notesUrefurijh]h]h]h]h]Uinternaluh j<h]r<hXImportant notesr<r <}r!<(hXImportant notesr"<h j<ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubeh!j>ubeh!j-ubah!j>ubjj)r#<}r$<(hUh}r%<(h]h]h]h]h]uh]r&<j)r'<}r(<(hUh}r)<(h]h]h]h]h]uh j#<h]r*<j)r+<}r,<(hUh}r-<(h]h]h]h]h]uh j'<h]r.<j)r/<}r0<(hUh}r1<(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j+<h]r2<hX$Backend: Base - celery.backends.baser3<r4<}r5<(hjh j/<ubah!jubah!jubah!j-ubah!j>ubjj)r6<}r7<(hUh}r8<(h]h]h]h]h]uh]r9<j)r:<}r;<(hUh}r<<(h]h]h]h]h]uh j6<h]r=<j)r><}r?<(hUh}r@<(h]h]h]h]h]uh j:<h]rA<j)rB<}rC<(hUh}rD<(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j><h]rE<hXClock Service - celery.beatrF<rG<}rH<(hjh jB<ubah!jubah!jubah!j-ubah!j>ubjj)rI<}rJ<(hUh}rK<(h]h]h]h]h]uh]rL<j)rM<}rN<(hUh}rO<(h]h]h]h]h]uh jI<h]rP<j)rQ<}rR<(hUh}rS<(h]h]h]h]h]uh jM<h]rT<j)rU<}rV<(hUh}rW<(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jQ<h]rX<hXBase Command - celery.bin.baserY<rZ<}r[<(hjh jU<ubah!jubah!jubah!j-ubah!j>ubjj)r\<}r]<(hUh}r^<(h]h]h]h]h]uh]r_<j)r`<}ra<(hUh}rb<(h]h]h]h]h]uh j\<h]rc<j)rd<}re<(hUh}rf<(h]h]h]h]h]uh j`<h]rg<j)rh<}ri<(hUh}rj<(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jd<h]rk<(hXThread Pool Support rl<rm<}rn<(hjh jh<ubj)ro<}rp<(hjh}rq<(h]h]h]h]h]uh jh<h]rr<hX EXPERIMENTALrs<rt<}ru<(hUh jo<ubah!jubhX - celery.concurrency.threadsrv<rw<}rx<(hjh jh<ubeh!jubah!jubah!j-ubah!j>ubjj)ry<}rz<(hUh}r{<(h]h]h]h]h]uh]r|<j)r}<}r~<(hUh}r<(h]h]h]h]h]uh jy<h]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j}<h]r<j)r<}r<(hUh}r<(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j<h]r<hX*Backend: MongoDB - celery.backends.mongodbr<r<}r<(hjh j<ubah!jubah!jubah!j-ubah!j>ubjj)r<}r<(hUh}r<(h]h]h]h]h]uh]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<(j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j<h]r<hXCreating Tasksr<r<}r<(hjh j<ubah!jubah!jubj)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(U anchornameU/#ensuring-a-task-is-only-executed-one-at-a-timeUrefurijh]h]h]h]h]Uinternaluh j<h]r<hX.Ensuring a task is only executed one at a timer<r<}r<(hX.Ensuring a task is only executed one at a timeh j<ubah!jubah!jubah!j-ubah!j>ubeh!j-ubah!j>ubjj)r<}r<(hUh}r<(h]h]h]h]h]uh]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j<h]r<hX celeryctl - celery.bin.celeryctlr<r<}r<(hjh j<ubah!jubah!jubah!j-ubah!j>ubjj)r<}r<(hUh}r<(h]h]h]h]h]uh]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j<h]r<hXUtilities - celery.utilsr<r<}r<(hjh j<ubah!jubah!jubah!j-ubah!j>ubjj)r<}r<(hUh}r<(h]h]h]h]h]uh]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j<h]r<hX+Worker Heartbeats - celery.worker.heartbeatr<r<}r<(hjh j<ubah!jubah!jubah!j-ubah!j>ubjj)r<}r<(hUh}r<(h]h]h]h]h]uh]r<j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<(j)r<}r<(hUh}r<(h]h]h]h]h]uh j<h]r<j)r<}r<(hUh}r<(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j<h]r<hXExecuting Tasksr<r<}r<(hjh j<ubah!jubah!jubj)r<}r<(hUh}r=(h]h]h]h]h]uh j<h]r=(j)r=}r=(hUh}r=(h]h]h]h]h]uh j<h]r=j)r=}r=(hUh}r=(h]h]h]h]h]uh j=h]r =j)r =}r =(hUh}r =(U anchornameU#basicsUrefurijh]h]h]h]h]Uinternaluh j=h]r =hXBasicsr=r=}r=(hXBasicsr=h j =ubah!jubah!jubah!j-ubj)r=}r=(hUh}r=(h]h]h]h]h]uh j<h]r=j)r=}r=(hUh}r=(h]h]h]h]h]uh j=h]r=j)r=}r=(hUh}r=(U anchornameU#eta-and-countdownUrefurijh]h]h]h]h]Uinternaluh j=h]r=hXETA and countdownr=r=}r =(hXETA and countdownr!=h j=ubah!jubah!jubah!j-ubj)r"=}r#=(hUh}r$=(h]h]h]h]h]uh j<h]r%=j)r&=}r'=(hUh}r(=(h]h]h]h]h]uh j"=h]r)=j)r*=}r+=(hUh}r,=(U anchornameU #expirationUrefurijh]h]h]h]h]Uinternaluh j&=h]r-=hX Expirationr.=r/=}r0=(hX Expirationr1=h j*=ubah!jubah!jubah!j-ubj)r2=}r3=(hUh}r4=(h]h]h]h]h]uh j<h]r5=j)r6=}r7=(hUh}r8=(h]h]h]h]h]uh j2=h]r9=j)r:=}r;=(hUh}r<=(U anchornameU #serializersUrefurijh]h]h]h]h]Uinternaluh j6=h]r==hX Serializersr>=r?=}r@=(hX SerializersrA=h j:=ubah!jubah!jubah!j-ubj)rB=}rC=(hUh}rD=(h]h]h]h]h]uh j<h]rE=j)rF=}rG=(hUh}rH=(h]h]h]h]h]uh jB=h]rI=j)rJ=}rK=(hUh}rL=(U anchornameU$#connections-and-connection-timeoutsUrefurijh]h]h]h]h]Uinternaluh jF=h]rM=hX$Connections and connection timeouts.rN=rO=}rP=(hX$Connections and connection timeouts.rQ=h jJ=ubah!jubah!jubah!j-ubj)rR=}rS=(hUh}rT=(h]h]h]h]h]uh j<h]rU=j)rV=}rW=(hUh}rX=(h]h]h]h]h]uh jR=h]rY=j)rZ=}r[=(hUh}r\=(U anchornameU#routing-optionsUrefurijh]h]h]h]h]Uinternaluh jV=h]r]=hXRouting optionsr^=r_=}r`=(hXRouting optionsra=h jZ=ubah!jubah!jubah!j-ubj)rb=}rc=(hUh}rd=(h]h]h]h]h]uh j<h]re=j)rf=}rg=(hUh}rh=(h]h]h]h]h]uh jb=h]ri=j)rj=}rk=(hUh}rl=(U anchornameU #amqp-optionsUrefurijh]h]h]h]h]Uinternaluh jf=h]rm=hX AMQP optionsrn=ro=}rp=(hX AMQP optionsrq=h jj=ubah!jubah!jubah!j-ubeh!j>ubeh!j-ubah!j>ubjj)rr=}rs=(hUh}rt=(h]h]h]h]h]uh]ru=j)rv=}rw=(hUh}rx=(h]h]h]h]h]uh jr=h]ry=j)rz=}r{=(hUh}r|=(h]h]h]h]h]uh jv=h]r}=j)r~=}r=(hUh}r=(U anchornameUUrefurijh]h]h]h]h]Uinternaluh jz=h]r=hXLoaders - celery.loadersr=r=}r=(hjh j~=ubah!jubah!jubah!j-ubah!j>ubjj)r=}r=(hUh}r=(h]h]h]h]h]uh]r=j)r=}r=(hUh}r=(h]h]h]h]h]uh j=h]r=j)r=}r=(hUh}r=(h]h]h]h]h]uh j=h]r=j)r=}r=(hUh}r=(U anchornameUUrefurijh]h]h]h]h]Uinternaluh j=h]r=hX9caqmadm: AMQP API Command-line Shell - celery.bin.camqadmr=r=}r=(hj h j=ubah!jubah!jubah!j-ubah!j>ubj!j)r=}r=(hUh}r=(h]h]h]h]h]uh]r=j)r=}r=(hUh}r=(h]h]h]h]h]uh j=h]r=j)r=}r=(hUh}r=(h]h]h]h]h]uh j=h]r=j)r=}r=(hUh}r=(U anchornameUUrefurij!h]h]h]h]h]Uinternaluh j=h]r=hX3Periodic Task Schedule Behaviors - celery.schedulesr=r=}r=(hj)h j=ubah!jubah!jubah!j-ubah!j>ubj*j)r=}r=(hUh}r=(h]h]h]h]h]uh]r=j)r=}r=(hUh}r=(h]h]h]h]h]uh j=h]r=j)r=}r=(hUh}r=(h]h]h]h]h]uh j=h]r=j)r=}r=(hUh}r=(U anchornameUUrefurij*h]h]h]h]h]Uinternaluh j=h]r=hX#Task Decorators - celery.decoratorsr=r=}r=(hj2h j=ubah!jubah!jubah!j-ubah!j>ubuUissuetracker_cacher=}r=(X214r=NX152r=NX154r=NX158r=NX153r=NX98r=NX192r=NX132r=NX111r=NX239r=NX134r=NX82r=NX235r=NX250r=NX256r=NX175r=NX170r=NX95r=NX182r=NX181r=NX187r=NX184r=NX6NX233r=NX143r=NX207r=NX83r=NX209r=NX245r=NX262r=NX261r=NX169r=NX229r=NX164r=NX129r=NX224r=NX160r=NX162r=NX163r=NX244r=NX32r=NX31r=NX122r=NX110r=NuU indexentriesr=}r=(h ]r=((Usingler=Xdeclare() (queue method)jUtr=(j=Xbind() (queue method)j Utr=(j=Xdelete() (queue method)jT Utr=(j=Xdelete() (exchange method)j Utr=eh#]r=((j=Xcelery.utils.timer2 (module)Xmodule-celery.utils.timer2Utr=(j=X$Entry (class in celery.utils.timer2)j Utr=(j=X+cancel() (celery.utils.timer2.Entry method)j1 Utr=(j=X/cancelled (celery.utils.timer2.Entry attribute)j Utr=(j=X'Schedule (class in celery.utils.timer2)jF Utr=(j=X-clear() (celery.utils.timer2.Schedule method)jA Utr=(j=X-empty() (celery.utils.timer2.Schedule method)j Utr=(j=X-enter() (celery.utils.timer2.Schedule method)jUtr=(j=X4handle_error() (celery.utils.timer2.Schedule method)j Utr=(j=X,info() (celery.utils.timer2.Schedule method)jd Utr=(j=X1on_error (celery.utils.timer2.Schedule attribute)j Utr=(j=X.queue (celery.utils.timer2.Schedule attribute)jA Utr=(j=XTimedFunctionFailedjUtr>(j=X$Timer (class in celery.utils.timer2)j Utr>(j=X*Timer.Entry (class in celery.utils.timer2)ji Utr>(j=X1cancel() (celery.utils.timer2.Timer.Entry method)j Utr>(j=X5cancelled (celery.utils.timer2.Timer.Entry attribute)j Utr>(j=X0apply_after() (celery.utils.timer2.Timer method)j1Utr>(j=X-apply_at() (celery.utils.timer2.Timer method)jF Utr>(j=X0apply_entry() (celery.utils.timer2.Timer method)j0 Utr>(j=X3apply_interval() (celery.utils.timer2.Timer method)j Utr>(j=X+cancel() (celery.utils.timer2.Timer method)j! Utr >(j=X*clear() (celery.utils.timer2.Timer method)j Utr >(j=X*empty() (celery.utils.timer2.Timer method)j Utr >(j=X3ensure_started() (celery.utils.timer2.Timer method)j Utr >(j=X*enter() (celery.utils.timer2.Timer method)j Utr >(j=X0enter_after() (celery.utils.timer2.Timer method)jUtr>(j=X/exit_after() (celery.utils.timer2.Timer method)j Utr>(j=X)next() (celery.utils.timer2.Timer method)jv Utr>(j=X-on_tick (celery.utils.timer2.Timer attribute)j Utr>(j=X+queue (celery.utils.timer2.Timer attribute)j Utr>(j=X(run() (celery.utils.timer2.Timer method)j Utr>(j=X-running (celery.utils.timer2.Timer attribute)jUtr>(j=X)stop() (celery.utils.timer2.Timer method)jj Utr>(j=X.to_timestamp() (in module celery.utils.timer2)j Utr>eh,]r>((j=Xcelery.platforms (module)Xmodule-celery.platformsUtr>(j=X)DaemonContext (class in celery.platforms)jv Utr>(j=X/close() (celery.platforms.DaemonContext method)j^ Utr>(j=X0detach() (celery.platforms.DaemonContext method)jUtr>(j=X.open() (celery.platforms.DaemonContext method)j Utr>(j=X LockFailedj) Utr>(j=X#PIDFile (class in celery.platforms)jv Utr>(j=X+acquire() (celery.platforms.PIDFile method)jUtr>(j=X-is_locked() (celery.platforms.PIDFile method)j Utr >(j=X,read_pid() (celery.platforms.PIDFile method)jv Utr!>(j=X+release() (celery.platforms.PIDFile method)j Utr">(j=X*remove() (celery.platforms.PIDFile method)j< Utr#>(j=X3remove_if_stale() (celery.platforms.PIDFile method)j Utr$>(j=X-write_pid() (celery.platforms.PIDFile method)j Utr%>(j=X4create_daemon_context() (in module celery.platforms)j Utr&>(j=X-create_pidlock() (in module celery.platforms)j Utr'>(j=X(get_fdmax() (in module celery.platforms)j< Utr(>(j=X,ignore_signal() (in module celery.platforms)j Utr)>(j=X5install_signal_handler() (in module celery.platforms)j Utr*>(j=X(parse_gid() (in module celery.platforms)jk Utr+>(j=X(parse_uid() (in module celery.platforms)j3Utr,>(j=X+reset_signal() (in module celery.platforms)j Utr->(j=X1set_effective_user() (in module celery.platforms)j Utr.>(j=X3set_mp_process_title() (in module celery.platforms)j Utr/>(j=X0set_process_title() (in module celery.platforms)j Utr0>(j=X&setegid() (in module celery.platforms)jN Utr1>(j=X&seteuid() (in module celery.platforms)j Utr2>(j=X&strargv() (in module celery.platforms)jXUtr3>eh5]h>]hG]r4>((j=Xcelery.events.snapshot (module)Xmodule-celery.events.snapshotUtr5>(j=X*Polaroid (class in celery.events.snapshot)jUtr6>(j=X1cancel() (celery.events.snapshot.Polaroid method)jUtr7>(j=X2capture() (celery.events.snapshot.Polaroid method)j Utr8>(j=X2cleanup() (celery.events.snapshot.Polaroid method)j Utr9>(j=X:cleanup_signal (celery.events.snapshot.Polaroid attribute)j Utr:>(j=X7clear_after (celery.events.snapshot.Polaroid attribute)jUtr;>(j=X0debug() (celery.events.snapshot.Polaroid method)jQ Utr<>(j=X2install() (celery.events.snapshot.Polaroid method)jUtr=>(j=X5on_cleanup() (celery.events.snapshot.Polaroid method)jUtr>>(j=X5on_shutter() (celery.events.snapshot.Polaroid method)jUtr?>(j=X2shutter() (celery.events.snapshot.Polaroid method)jUtr@>(j=X:shutter_signal (celery.events.snapshot.Polaroid attribute)jUtrA>(j=X*evcam() (in module celery.events.snapshot)j UtrB>ehP]rC>((j=Xname (Task attribute)j| UtrD>(j=Xabstract (Task attribute)j UtrE>(j=Xmax_retries (Task attribute)j~ UtrF>(j=X$default_retry_delay (Task attribute)j UtrG>(j=Xrate_limit (Task attribute)j UtrH>(j=Xignore_result (Task attribute)j UtrI>(j=X-store_errors_even_if_ignored (Task attribute)j UtrJ>(j=X"send_error_emails (Task attribute)j UtrK>(j=X error_whitelist (Task attribute)jK UtrL>(j=Xserializer (Task attribute)j UtrM>(j=Xbackend (Task attribute)j! UtrN>(j=Xacks_late (Task attribute)j UtrO>(j=Xtrack_started (Task attribute)j UtrP>(j=Xqueue (Task attribute)j& UtrQ>(j=Xexchange (Task attribute)jkUtrR>(j=Xrouting_key (Task attribute)jUtrS>(j=Xmandatory (Task attribute)jUtrT>(j=Ximmediate (Task attribute)j UtrU>(j=Xpriority (Task attribute)j{ UtrV>(XpairXPENDING; statejUtrW>(XpairXSTARTED; statejVUtrX>(XpairXSUCCESS; statejNUtrY>(XpairXFAILURE; statejTUtrZ>(XpairX RETRY; statejEUtr[>(XpairXREVOKED; statejFUtr\>ehY]hb]hk]r]>((j=Xcelery.task.http (module)Xmodule-celery.task.httpUtr^>(j=X(HttpDispatch (class in celery.task.http)j Utr_>(j=X1dispatch() (celery.task.http.HttpDispatch method)jg Utr`>(j=X6http_headers (celery.task.http.HttpDispatch attribute)j Utra>(j=X5make_request() (celery.task.http.HttpDispatch method)j\ Utrb>(j=X1timeout (celery.task.http.HttpDispatch attribute)j Utrc>(j=X4user_agent (celery.task.http.HttpDispatch attribute)j- Utrd>(j=X,HttpDispatchTask (class in celery.task.http)j(Utre>(j=X1url (celery.task.http.HttpDispatchTask attribute)jcUtrf>(j=X4method (celery.task.http.HttpDispatchTask attribute)j Utrg>(j=X4method (celery.task.http.HttpDispatchTask attribute)X(celery.task.http.HttpDispatchTask.methodUtrh>(j=X2name (celery.task.http.HttpDispatchTask attribute)j Utri>(j=X0run() (celery.task.http.HttpDispatchTask method)j Utrj>(j=X1url (celery.task.http.HttpDispatchTask attribute)X%celery.task.http.HttpDispatchTask.urlUtrk>(j=XInvalidResponseErrorjUtrl>(j=X&MutableURL (class in celery.task.http)j Utrm>(j=X-query (celery.task.http.MutableURL attribute)j Utrn>(j=XRemoteExecuteErrorj Utro>(j=XURL (class in celery.task.http)j Utrp>(j=X+dispatcher (celery.task.http.URL attribute)j Utrq>(j=X)get_async() (celery.task.http.URL method)jJ Utrr>(j=X*post_async() (celery.task.http.URL method)jUtrs>(j=XUnknownStatusErrorj Utrt>(j=X/extract_response() (in module celery.task.http)j Utru>(j=X)maybe_utf8() (in module celery.task.http)j Utrv>(j=X'utf8dict() (in module celery.task.http)jUtrw>eht]rx>(j=X celery.utils.functional (module)Xmodule-celery.utils.functionalUtry>ah}]rz>((j=Xcelery.states (module)Xmodule-celery.statesUtr{>(XpairXREADY_STATES; statejkUtr|>(XpairXUNREADY_STATES; statejaUtr}>(XpairXEXCEPTION_STATES; statej+Utr~>(XpairXPROPAGATE_STATES; statej=Utr>(XpairXALL_STATES; statejiUtr>(j=X&precedence() (in module celery.states)j Utr>(j=Xstate (class in celery.states)j Utr>(j=X&compare() (celery.states.state method)j( Utr>eh]r>((j=X'celery.worker.control.builtins (module)X%module-celery.worker.control.builtinsUtr>(j=X9add_consumer() (in module celery.worker.control.builtins)j Utr>(j=X<cancel_consumer() (in module celery.worker.control.builtins)j Utr>(j=X;disable_events() (in module celery.worker.control.builtins)j Utr>(j=X8dump_active() (in module celery.worker.control.builtins)j Utr>(j=X:dump_reserved() (in module celery.worker.control.builtins)jUtr>(j=X9dump_revoked() (in module celery.worker.control.builtins)jUtr>(j=X:dump_schedule() (in module celery.worker.control.builtins)jUtr>(j=X7dump_tasks() (in module celery.worker.control.builtins)jUtr>(j=X:enable_events() (in module celery.worker.control.builtins)j Utr>(j=X6heartbeat() (in module celery.worker.control.builtins)jr Utr>(j=X1ping() (in module celery.worker.control.builtins)j. Utr>(j=X7rate_limit() (in module celery.worker.control.builtins)ju Utr>(j=X3revoke() (in module celery.worker.control.builtins)jQ Utr>(j=X9set_loglevel() (in module celery.worker.control.builtins)j Utr>(j=X5shutdown() (in module celery.worker.control.builtins)j Utr>(j=X2stats() (in module celery.worker.control.builtins)j0Utr>eh]r>((j=Xcelery.log (module)Xmodule-celery.logUtr>(j=X$ColorFormatter (class in celery.log)j Utr>(j=X+format() (celery.log.ColorFormatter method)j Utr>(j=X4formatException() (celery.log.ColorFormatter method)j Utr>(j=X"LoggingProxy (class in celery.log)jKUtr>(j=X(close() (celery.log.LoggingProxy method)jr Utr>(j=X*closed (celery.log.LoggingProxy attribute)j_ Utr>(j=X)fileno() (celery.log.LoggingProxy method)j Utr>(j=X(flush() (celery.log.LoggingProxy method)j Utr>(j=X)isatty() (celery.log.LoggingProxy method)jUtr>(j=X,loglevel (celery.log.LoggingProxy attribute)j Utr>(j=X(mode (celery.log.LoggingProxy attribute)jE Utr>(j=X(name (celery.log.LoggingProxy attribute)j Utr>(j=X(write() (celery.log.LoggingProxy method)j Utr>(j=X-writelines() (celery.log.LoggingProxy method)jUtr>(j=X%SilenceRepeated (class in celery.log)je Utr>(j=X(emergency_error() (in module celery.log)j* Utr>(j=X+get_default_logger() (in module celery.log)j Utr>(j=X(get_task_logger() (in module celery.log)j Utr>(j=X3redirect_stdouts_to_logger() (in module celery.log)jUtr>(j=X%setup_logger() (in module celery.log)j& Utr>(j=X0setup_logging_subsystem() (in module celery.log)j" Utr>(j=X*setup_task_logger() (in module celery.log)j[ Utr>eh]r>((j=Xcelery.worker (module)Xmodule-celery.workerUtr>(j=X'WorkController (class in celery.worker)j% Utr>(j=X4concurrency (celery.worker.WorkController attribute)j Utr>(j=X1loglevel (celery.worker.WorkController attribute)j Utr>(j=X0logfile (celery.worker.WorkController attribute)j Utr>(j=X;embed_clockservice (celery.worker.WorkController attribute)j Utr>(j=X4send_events (celery.worker.WorkController attribute)j} Utr>(j=X/logger (celery.worker.WorkController attribute)jUtr>(j=X-pool (celery.worker.WorkController attribute)jUtr>(j=X4ready_queue (celery.worker.WorkController attribute)j Utr>(j=X<schedule_controller (celery.worker.WorkController attribute)jUtr>(j=X1mediator (celery.worker.WorkController attribute)j Utr>(j=X1listener (celery.worker.WorkController attribute)j Utr>(j=X4concurrency (celery.worker.WorkController attribute)X(celery.worker.WorkController.concurrencyUtr>(j=X0logfile (celery.worker.WorkController attribute)X$celery.worker.WorkController.logfileUtr>(j=X1loglevel (celery.worker.WorkController attribute)X%celery.worker.WorkController.loglevelUtr>(j=X6on_timer_error() (celery.worker.WorkController method)jUtr>(j=X5on_timer_tick() (celery.worker.WorkController method)j Utr>(j=X4process_task() (celery.worker.WorkController method)j Utr>(j=X-start() (celery.worker.WorkController method)jO Utr>(j=X,stop() (celery.worker.WorkController method)j Utr>(j=X1terminate() (celery.worker.WorkController method)jUtr>(j=X/process_initializer() (in module celery.worker)j Utr>eh]h]r>((j=Xcelery.worker.listener (module)Xmodule-celery.worker.listenerUtr>(j=X0CarrotListener (class in celery.worker.listener)jUtr>(j=X=ready_queue (celery.worker.listener.CarrotListener attribute)j Utr>(j=X>eta_schedule (celery.worker.listener.CarrotListener attribute)jUtr>(j=X=send_events (celery.worker.listener.CarrotListener attribute)j, Utr>(j=X?init_callback (celery.worker.listener.CarrotListener attribute)j Utr>(j=X:hostname (celery.worker.listener.CarrotListener attribute)jUtr>(j=XHinitial_prefetch_count (celery.worker.listener.CarrotListener attribute)j Utr>(j=XBcontrol_dispatch (celery.worker.listener.CarrotListener attribute)ja Utr>(j=XBevent_dispatcher (celery.worker.listener.CarrotListener attribute)jUtr>(j=X6hart (celery.worker.listener.CarrotListener attribute)jR Utr>(j=X8logger (celery.worker.listener.CarrotListener attribute)j Utr>(j=X?apply_eta_task() (celery.worker.listener.CarrotListener method)jVUtr>(j=XAclose_connection() (celery.worker.listener.CarrotListener method)j Utr>(j=XAconsume_messages() (celery.worker.listener.CarrotListener method)j Utr>(j=X6info (celery.worker.listener.CarrotListener attribute)j Utr>(j=XAmaybe_conn_error() (celery.worker.listener.CarrotListener method)j Utr>(j=X;on_control() (celery.worker.listener.CarrotListener method)j Utr>(j=X@on_decode_error() (celery.worker.listener.CarrotListener method)j Utr>(j=X8on_task() (celery.worker.listener.CarrotListener method)j Utr>(j=X@receive_message() (celery.worker.listener.CarrotListener method)j Utr>(j=XAreset_connection() (celery.worker.listener.CarrotListener method)j; Utr>(j=XBrestart_heartbeat() (celery.worker.listener.CarrotListener method)j3 Utr>(j=X6start() (celery.worker.listener.CarrotListener method)j Utr>(j=X5stop() (celery.worker.listener.CarrotListener method)jUtr>(j=X?stop_consumers() (celery.worker.listener.CarrotListener method)j Utr>(j=X%QoS (class in celery.worker.listener)j Utr>(j=X/decrement() (celery.worker.listener.QoS method)j Utr>(j=X:decrement_eventually() (celery.worker.listener.QoS method)jd Utr>(j=X/increment() (celery.worker.listener.QoS method)j: Utr>(j=X+next (celery.worker.listener.QoS attribute)jz Utr>(j=X+prev (celery.worker.listener.QoS attribute)je Utr>(j=X)set() (celery.worker.listener.QoS method)j` Utr>(j=X,update() (celery.worker.listener.QoS method)j Utr>eh]r>((j=Xcelery.events.state (module)Xmodule-celery.events.stateUtr>(j=X&Element (class in celery.events.state)j{ Utr>(j=X$State (class in celery.events.state)jM Utr>(j=X2alive_workers() (celery.events.state.State method)jUtr>(j=X*clear() (celery.events.state.State method)j Utr>(j=X0clear_tasks() (celery.events.state.State method)j Utr>(j=X*event() (celery.events.state.State method)jb Utr>(j=X1event_count (celery.events.state.State attribute)j, Utr>(j=X1freeze_while() (celery.events.state.State method)j Utr>(j=X7get_or_create_task() (celery.events.state.State method)j Utr>(j=X9get_or_create_worker() (celery.events.state.State method)jJ Utr>(j=X0task_count (celery.events.state.State attribute)j6Utr>(j=X/task_event() (celery.events.state.State method)jUtr>(j=X/task_types() (celery.events.state.State method)j Utr>(j=X7tasks_by_timestamp() (celery.events.state.State method)j Utr>(j=X2tasks_by_type() (celery.events.state.State method)j Utr>(j=X4tasks_by_worker() (celery.events.state.State method)jUtr>(j=X1worker_event() (celery.events.state.State method)j; Utr>(j=X#Task (class in celery.events.state)jMUtr>(j=X(info() (celery.events.state.Task method)jUtr>(j=X)merge() (celery.events.state.Task method)j Utr>(j=X0merge_rules (celery.events.state.Task attribute)j. Utr>(j=X-on_failed() (celery.events.state.Task method)j Utr?(j=X/on_received() (celery.events.state.Task method)j Utr?(j=X.on_retried() (celery.events.state.Task method)j Utr?(j=X.on_revoked() (celery.events.state.Task method)j Utr?(j=X.on_started() (celery.events.state.Task method)j6 Utr?(j=X0on_succeeded() (celery.events.state.Task method)jmUtr?(j=X*ready (celery.events.state.Task attribute)jUtr?(j=X*update() (celery.events.state.Task method)j Utr?(j=X%Worker (class in celery.events.state)j} Utr?(j=X,alive (celery.events.state.Worker attribute)j Utr ?(j=X4heartbeat_max (celery.events.state.Worker attribute)j Utr ?(j=X2on_heartbeat() (celery.events.state.Worker method)jC Utr ?(j=X0on_offline() (celery.events.state.Worker method)j Utr ?(j=X/on_online() (celery.events.state.Worker method)j Utr ?eh]r?((j=Xcelery.utils.mail (module)Xmodule-celery.utils.mailUtr?(j=X#Mailer (class in celery.utils.mail)j Utr?(j=X(send() (celery.utils.mail.Mailer method)j Utr?(j=X$Message (class in celery.utils.mail)j1 Utr?(j=XSendmailWarningj. Utr?(j=X+mail_admins() (in module celery.utils.mail)j Utr?eh]r?((j=Xcelery.execute.trace (module)Xmodule-celery.execute.traceUtr?(j=X)TaskTrace (class in celery.execute.trace)j Utr?(j=X1execute() (celery.execute.trace.TaskTrace method)j Utr?(j=X=handle_after_return() (celery.execute.trace.TaskTrace method)j Utr?(j=X8handle_failure() (celery.execute.trace.TaskTrace method)jUtr?(j=X6handle_retry() (celery.execute.trace.TaskTrace method)j? Utr?(j=X8handle_success() (celery.execute.trace.TaskTrace method)jUtr?(j=X)TraceInfo (class in celery.execute.trace)j Utr?(j=X5trace() (celery.execute.trace.TraceInfo class method)jtUtr?eh]r?(j=Xcelery.task.base (module)Xmodule-celery.task.baseUtr ?ah]r!?(j=Xcelery.task.http (module)Xmodule-celery.task.httpUtr"?ah]r#?((j=Xcelery.worker.job (module)Xmodule-celery.worker.jobUtr$?(j=XAlreadyExecutedErrorjUtr%?(j=XInvalidTaskErrorjUtr&?(j=X(TaskRequest (class in celery.worker.job)j~ Utr'?(j=X3task_name (celery.worker.job.TaskRequest attribute)j Utr(?(j=X1task_id (celery.worker.job.TaskRequest attribute)j Utr)?(j=X.args (celery.worker.job.TaskRequest attribute)j" Utr*?(j=X0kwargs (celery.worker.job.TaskRequest attribute)j^ Utr+?(j=X0on_ack (celery.worker.job.TaskRequest attribute)j@ Utr,?(j=X1message (celery.worker.job.TaskRequest attribute)jS Utr-?(j=X2executed (celery.worker.job.TaskRequest attribute)j Utr.?(j=X7delivery_info (celery.worker.job.TaskRequest attribute)jUtr/?(j=X6acknowledged (celery.worker.job.TaskRequest attribute)jY Utr0?(j=X4acknowledge() (celery.worker.job.TaskRequest method)j Utr1?(j=X6acknowledged (celery.worker.job.TaskRequest attribute)X*celery.worker.job.TaskRequest.acknowledgedUtr2?(j=X4email_body (celery.worker.job.TaskRequest attribute)jUtr3?(j=X7email_subject (celery.worker.job.TaskRequest attribute)jUtr4?(j=X3error_msg (celery.worker.job.TaskRequest attribute)j Utr5?(j=X0execute() (celery.worker.job.TaskRequest method)jP Utr6?(j=X;execute_using_pool() (celery.worker.job.TaskRequest method)jUtr7?(j=X2executed (celery.worker.job.TaskRequest attribute)X&celery.worker.job.TaskRequest.executedUtr8?(j=XCextend_with_default_kwargs() (celery.worker.job.TaskRequest method)j Utr9?(j=X;from_message() (celery.worker.job.TaskRequest class method)j= Utr:?(j=X-info() (celery.worker.job.TaskRequest method)j Utr;?(j=X5maybe_expire() (celery.worker.job.TaskRequest method)j Utr?(j=X1on_retry() (celery.worker.job.TaskRequest method)j{ Utr??(j=X3on_success() (celery.worker.job.TaskRequest method)j Utr@?(j=X3on_timeout() (celery.worker.job.TaskRequest method)j- UtrA?(j=X4repr_result() (celery.worker.job.TaskRequest method)j UtrB?(j=X3retry_msg (celery.worker.job.TaskRequest attribute)j UtrC?(j=X0revoked() (celery.worker.job.TaskRequest method)jUtrD?(j=X9send_error_email() (celery.worker.job.TaskRequest method)j UtrE?(j=X3send_event() (celery.worker.job.TaskRequest method)jUtrF?(j=X2shortinfo() (celery.worker.job.TaskRequest method)jUtrG?(j=X5success_msg (celery.worker.job.TaskRequest attribute)j UtrH?(j=X4time_start (celery.worker.job.TaskRequest attribute)j UtrI?(j=X,WorkerTaskTrace (class in celery.worker.job)jV UtrJ?(j=X4execute() (celery.worker.job.WorkerTaskTrace method)j UtrK?(j=X9execute_safe() (celery.worker.job.WorkerTaskTrace method)jUtrL?(j=X;handle_failure() (celery.worker.job.WorkerTaskTrace method)j#UtrM?(j=X9handle_retry() (celery.worker.job.WorkerTaskTrace method)j2 UtrN?(j=X;handle_success() (celery.worker.job.WorkerTaskTrace method)j2 UtrO?(j=X1execute_and_trace() (in module celery.worker.job)jUtrP?eh]rQ?((j=XPATHUindex-0rR?UtrS?(j=Xenvironment variable; PATHjR?UtrT?eh]rU?((j=X$task_sent (in module celery.signals)j UtrV?(j=X&task_prerun (in module celery.signals)j UtrW?(j=X'task_postrun (in module celery.signals)j UtrX?(j=X&worker_init (in module celery.signals)jUtrY?(j=X'worker_ready (in module celery.signals)j UtrZ?(j=X.worker_process_init (in module celery.signals)j Utr[?(j=X*worker_shutdown (in module celery.signals)j Utr\?eh]r]?((XpairXrate_limit; controljtUtr^?(XpairXshutdown; controlj)Utr_?(XpairX ping; controljUtr`?(XpairXenable_events; controljHUtra?(XpairXdisable_events; controljrUtrb?ej]rc?((j=Xcelery.execute (module)Xmodule-celery.executeUtrd?(j=X"apply() (in module celery.execute)j Utre?(j=X(apply_async() (in module celery.execute)j Utrf?(j=X'delay_task() (in module celery.execute)j Utrg?(j=X&send_task() (in module celery.execute)j Utrh?ej ]j]ri?((j=Xcancel_consumer()j Utrj?(j=Xfreeze() (State method)jo Utrk?(j=Xthaw() (State method)jUtrl?(j=Xfreeze_while() (State method)j Utrm?(j=X CELERY_LOADERrn?Uindex-0ro?Utrp?(j=X#environment variable; CELERY_LOADERjo?Utrq?(j=XCELERY_CONFIG_MODULErr?Uindex-1rs?Utrt?(j=X*environment variable; CELERY_CONFIG_MODULEjs?Utru?(j=X CELERY_LOADERrv?Uindex-2rw?Utrx?(j=X#environment variable; CELERY_LOADERjw?Utry?(j=X NOSE_VERBOSErz?Uindex-3r{?Utr|?(j=X"environment variable; NOSE_VERBOSEj{?Utr}?(j=X CELERY_LOADERr~?Uindex-4r?Utr?(j=X#environment variable; CELERY_LOADERj?Utr?(j=X CELERY_LOADERr?Uindex-5r?Utr?(j=X#environment variable; CELERY_LOADERj?Utr?(j=X CELERY_LOADERr?Uindex-6r?Utr?(j=X#environment variable; CELERY_LOADERj?Utr?ej]r?((j=Xcelery.utils.term (module)Xmodule-celery.utils.termUtr?(j=X$colored (class in celery.utils.term)j Utr?(j=X*black() (celery.utils.term.colored method)j Utr?(j=X*blink() (celery.utils.term.colored method)j Utr?(j=X)blue() (celery.utils.term.colored method)j: Utr?(j=X)bold() (celery.utils.term.colored method)jUtr?(j=X+bright() (celery.utils.term.colored method)j- Utr?(j=X)cyan() (celery.utils.term.colored method)j Utr?(j=X*green() (celery.utils.term.colored method)jw Utr?(j=X*iblue() (celery.utils.term.colored method)j] Utr?(j=X*icyan() (celery.utils.term.colored method)j Utr?(j=X+igreen() (celery.utils.term.colored method)jUtr?(j=X-imagenta() (celery.utils.term.colored method)j Utr?(j=X)ired() (celery.utils.term.colored method)j Utr?(j=X+iwhite() (celery.utils.term.colored method)jt Utr?(j=X,iyellow() (celery.utils.term.colored method)jUtr?(j=X,magenta() (celery.utils.term.colored method)j Utr?(j=X-no_color() (celery.utils.term.colored method)j.Utr?(j=X)node() (celery.utils.term.colored method)j Utr?(j=X(red() (celery.utils.term.colored method)j Utr?(j=X*reset() (celery.utils.term.colored method)j Utr?(j=X,reverse() (celery.utils.term.colored method)j Utr?(j=X.underline() (celery.utils.term.colored method)j Utr?(j=X*white() (celery.utils.term.colored method)j Utr?(j=X+yellow() (celery.utils.term.colored method)j Utr?(j=X"fg() (in module celery.utils.term)j Utr?ej(]r?((j=Xcelery.result (module)Xmodule-celery.resultUtr?(j=X$AsyncResult (class in celery.result)jUtr?(j=X-task_id (celery.result.AsyncResult attribute)jUtr?(j=X-backend (celery.result.AsyncResult attribute)j> Utr?(j=X(BaseAsyncResult (class in celery.result)jUtr?(j=X1task_id (celery.result.BaseAsyncResult attribute)j Utr?(j=X1backend (celery.result.BaseAsyncResult attribute)jUtr?(j=XBaseAsyncResult.TimeoutErrorjU Utr?(j=X/failed() (celery.result.BaseAsyncResult method)jAUtr?(j=X/forget() (celery.result.BaseAsyncResult method)j Utr?(j=X,get() (celery.result.BaseAsyncResult method)j* Utr?(j=X.info (celery.result.BaseAsyncResult attribute)jUtr?(j=X.ready() (celery.result.BaseAsyncResult method)j Utr?(j=X0result (celery.result.BaseAsyncResult attribute)j Utr?(j=X/revoke() (celery.result.BaseAsyncResult method)j Utr?(j=X/state (celery.result.BaseAsyncResult attribute)j]Utr?(j=X0status (celery.result.BaseAsyncResult attribute)j Utr?(j=X3successful() (celery.result.BaseAsyncResult method)j Utr?(j=X3traceback (celery.result.BaseAsyncResult attribute)jz Utr?(j=X-wait() (celery.result.BaseAsyncResult method)j Utr?(j=X$EagerResult (class in celery.result)j Utr?(j=XEagerResult.TimeoutErrorj# Utr?(j=X*ready() (celery.result.EagerResult method)j Utr?(j=X,result (celery.result.EagerResult attribute)j Utr?(j=X+revoke() (celery.result.EagerResult method)j+ Utr?(j=X+state (celery.result.EagerResult attribute)jUtr?(j=X,status (celery.result.EagerResult attribute)j+ Utr?(j=X/successful() (celery.result.EagerResult method)jUtr?(j=X/traceback (celery.result.EagerResult attribute)j Utr?(j=X)wait() (celery.result.EagerResult method)jl Utr?(j=X&TaskSetResult (class in celery.result)j Utr?(j=X2taskset_id (celery.result.TaskSetResult attribute)j Utr?(j=X0subtasks (celery.result.TaskSetResult attribute)jUtr?(j=X6completed_count() (celery.result.TaskSetResult method)j' Utr?(j=X-failed() (celery.result.TaskSetResult method)jUtr?(j=X-forget() (celery.result.TaskSetResult method)j Utr?(j=X.iterate() (celery.result.TaskSetResult method)j Utr?(j=X3itersubtasks() (celery.result.TaskSetResult method)jUtr?(j=X+join() (celery.result.TaskSetResult method)jo Utr?(j=X,ready() (celery.result.TaskSetResult method)jOUtr?(j=X4restore() (celery.result.TaskSetResult class method)jc Utr?(j=X-revoke() (celery.result.TaskSetResult method)j Utr?(j=X+save() (celery.result.TaskSetResult method)j% Utr?(j=X1successful() (celery.result.TaskSetResult method)j Utr?(j=X-total (celery.result.TaskSetResult attribute)j Utr?(j=X.waiting() (celery.result.TaskSetResult method)j Utr?ej1]j:]jC]r?((j=XQUEUES (in module celery.conf)jUtr?(j=X%DEFAULT_QUEUE (in module celery.conf)jf Utr?(j=X(DEFAULT_EXCHANGE (in module celery.conf)j7 Utr?(j=X-DEFAULT_EXCHANGE_TYPE (in module celery.conf)jUtr?(j=X-DEFAULT_DELIVERY_MODE (in module celery.conf)j Utr?(j=X+DEFAULT_ROUTING_KEY (in module celery.conf)j Utr?(j=X1BROKER_CONNECTION_TIMEOUT (in module celery.conf)jx Utr?(j=X'BROADCAST_QUEUE (in module celery.conf)j Utr?(j=X*BROADCAST_EXCHANGE (in module celery.conf)jsUtr?(j=X/BROADCAST_EXCHANGE_TYPE (in module celery.conf)j Utr?(j=X#EVENT_QUEUE (in module celery.conf)jUtr?(j=X&EVENT_EXCHANGE (in module celery.conf)j Utr?(j=X+EVENT_EXCHANGE_TYPE (in module celery.conf)j Utr?(j=X)EVENT_ROUTING_KEY (in module celery.conf)jL Utr?(j=X(EVENT_SERIALIZER (in module celery.conf)j Utr?(j=X'RESULT_EXCHANGE (in module celery.conf)j Utr?(j=X5CELERY_SEND_TASK_ERROR_EMAILS (in module celery.conf)jK Utr?(j=XADMINS (in module celery.conf)jSUtr?(j=X$SERVER_EMAIL (in module celery.conf)j> Utr?(j=X!MAIL_HOST (in module celery.conf)j Utr?(j=X&MAIL_HOST_USER (in module celery.conf)j5 Utr?(j=X*MAIL_HOST_PASSWORD (in module celery.conf)j Utr?(j=X!MAIL_PORT (in module celery.conf)js Utr?(j=X$ALWAYS_EAGER (in module celery.conf)j Utr?(j=X3EAGER_PROPAGATES_EXCEPTIONS (in module celery.conf)jUtr?(j=X+TASK_RESULT_EXPIRES (in module celery.conf)jUtr?(j=X%IGNORE_RESULT (in module celery.conf)j\ Utr?(j=X%TRACK_STARTED (in module celery.conf)j Utr?(j=X!ACKS_LATE (in module celery.conf)j Utr?(j=X4STORE_ERRORS_EVEN_IF_IGNORED (in module celery.conf)j!Utr?(j=X*MAX_CACHED_RESULTS (in module celery.conf)j Utr?(j=X'TASK_SERIALIZER (in module celery.conf)j@ Utr?(j=X&RESULT_BACKEND (in module celery.conf)j6 Utr?(j=X,CELERY_CACHE_BACKEND (in module celery.conf)jb Utr?(j=X#SEND_EVENTS (in module celery.conf)j Utr?(j=X*DEFAULT_RATE_LIMIT (in module celery.conf)jq Utr?(j=X+DISABLE_RATE_LIMITS (in module celery.conf)jb Utr?(j=X/BROKER_CONNECTION_RETRY (in module celery.conf)j Utr?(j=X5BROKER_CONNECTION_MAX_RETRIES (in module celery.conf)jUtr?(j=X,CELERYBEAT_LOG_LEVEL (in module celery.conf)j, Utr?(j=X+CELERYBEAT_LOG_FILE (in module celery.conf)j Utr?(j=X4CELERYBEAT_SCHEDULE_FILENAME (in module celery.conf)jk Utr?(j=X4CELERYBEAT_MAX_LOOP_INTERVAL (in module celery.conf)jUtr?(j=X+CELERYMON_LOG_LEVEL (in module celery.conf)j$ Utr@(j=X*CELERYMON_LOG_FILE (in module celery.conf)jUtr@(j=X"LOG_LEVELS (in module celery.conf)j Utr@(j=X*CELERYD_LOG_FORMAT (in module celery.conf)jw Utr@(j=X/CELERYD_TASK_LOG_FORMAT (in module celery.conf)j\ Utr@(j=X(CELERYD_LOG_FILE (in module celery.conf)jg Utr@(j=X)CELERYD_LOG_LEVEL (in module celery.conf)jUtr@(j=X+CELERYD_CONCURRENCY (in module celery.conf)j Utr@(j=X3CELERYD_PREFETCH_MULTIPLIER (in module celery.conf)j~Utr@(j=X$CELERYD_POOL (in module celery.conf)j= Utr @(j=X(CELERYD_LISTENER (in module celery.conf)j. Utr @(j=X(CELERYD_MEDIATOR (in module celery.conf)j| Utr @(j=X-CELERYD_ETA_SCHEDULER (in module celery.conf)j Utr @ejL]r @((j=Xcelery.task.control (module)Xmodule-celery.task.controlUtr@(j=X+broadcast() (in module celery.task.control)j Utr@(j=X-discard_all() (in module celery.task.control)j Utr@(j=X/flatten_reply() (in module celery.task.control)j Utr@(j=X&inspect (class in celery.task.control)j Utr@(j=X-active() (celery.task.control.inspect method)jUtr@(j=X3add_consumer() (celery.task.control.inspect method)j Utr@(j=X6cancel_consumer() (celery.task.control.inspect method)jUtr@(j=X5disable_events() (celery.task.control.inspect method)jl Utr@(j=X4enable_events() (celery.task.control.inspect method)j Utr@(j=X+ping() (celery.task.control.inspect method)jy Utr@(j=X7registered_tasks() (celery.task.control.inspect method)jP Utr@(j=X/reserved() (celery.task.control.inspect method)j Utr@(j=X.revoked() (celery.task.control.inspect method)j Utr@(j=X0scheduled() (celery.task.control.inspect method)j Utr@(j=X,stats() (celery.task.control.inspect method)je Utr@(j=X&ping() (in module celery.task.control)jUtr@(j=X,rate_limit() (in module celery.task.control)j Utr@(j=X(revoke() (in module celery.task.control)j Utr @ejU]r!@((j=Xcelery.backends (module)Xmodule-celery.backendsUtr"@(j=X*DefaultBackend (in module celery.backends)j Utr#@(j=X+default_backend (in module celery.backends)j Utr$@(j=X-get_backend_cls() (in module celery.backends)j Utr%@(j=X3get_default_backend_cls (in module celery.backends)j Utr&@(j=X)DefaultBackend (class in celery.backends)Xcelery.backends.DefaultBackendUtr'@ej^]r(@((j=Xcelery.task.base (module)Xmodule-celery.task.baseUtr)@(j=X Task (class in celery.task.base)j)Utr*@(j=X&name (celery.task.base.Task attribute)j9Utr+@(j=X*abstract (celery.task.base.Task attribute)j~Utr,@(j=X&type (celery.task.base.Task attribute)jH Utr-@(j=X'queue (celery.task.base.Task attribute)j# Utr.@(j=X-routing_key (celery.task.base.Task attribute)jUtr/@(j=X*exchange (celery.task.base.Task attribute)j Utr0@(j=X/exchange_type (celery.task.base.Task attribute)jUtr1@(j=X/delivery_mode (celery.task.base.Task attribute)j Utr2@(j=X+mandatory (celery.task.base.Task attribute)jUtr3@(j=X-max_retries (celery.task.base.Task attribute)j Utr4@(j=X5default_retry_delay (celery.task.base.Task attribute)j Utr5@(j=X,rate_limit (celery.task.base.Task attribute)jdUtr6@(j=X/ignore_result (celery.task.base.Task attribute)jp Utr7@(j=X>store_errors_even_if_ignored (celery.task.base.Task attribute)jUtr8@(j=X3send_error_emails (celery.task.base.Task attribute)j Utr9@(j=X1error_whitelist (celery.task.base.Task attribute)j Utr:@(j=X,serializer (celery.task.base.Task attribute)j Utr;@(j=X)backend (celery.task.base.Task attribute)j3 Utr<@(j=X.autoregister (celery.task.base.Task attribute)j/ Utr=@(j=X/track_started (celery.task.base.Task attribute)j Utr>@(j=X+acks_late (celery.task.base.Task attribute)j Utr?@(j=X)expires (celery.task.base.Task attribute)j Utr@@(j=X2AsyncResult() (celery.task.base.Task class method)jN UtrA@(j=XTask.MaxRetriesExceededErrorrB@j UtrC@(j=X-after_return() (celery.task.base.Task method)jB UtrD@(j=X,apply() (celery.task.base.Task class method)jUtrE@(j=X2apply_async() (celery.task.base.Task class method)j$ UtrF@(j=X,delay() (celery.task.base.Task class method)ja UtrG@(j=X;establish_connection() (celery.task.base.Task class method)j UtrH@(j=X(execute() (celery.task.base.Task method)j UtrI@(j=X3get_consumer() (celery.task.base.Task class method)j UtrJ@(j=X1get_logger() (celery.task.base.Task class method)jUtrK@(j=X4get_publisher() (celery.task.base.Task class method)jC UtrL@(j=X+on_failure() (celery.task.base.Task method)j UtrM@(j=X)on_retry() (celery.task.base.Task method)jUtrN@(j=X+on_success() (celery.task.base.Task method)j UtrO@(j=X,retry() (celery.task.base.Task class method)jG UtrP@(j=X$run() (celery.task.base.Task method)j=UtrQ@(j=X.subtask() (celery.task.base.Task class method)j UtrR@(j=X-update_state() (celery.task.base.Task method)jE UtrS@(j=X(PeriodicTask (class in celery.task.base)j- UtrT@(j=X3run_every (celery.task.base.PeriodicTask attribute)j2 UtrU@(j=X2relative (celery.task.base.PeriodicTask attribute)j UtrV@(j=X/is_due() (celery.task.base.PeriodicTask method)j UtrW@(j=X;remaining_estimate() (celery.task.base.PeriodicTask method)j UtrX@(j=X:timedelta_seconds() (celery.task.base.PeriodicTask method)jX UtrY@(j=X$TaskType (class in celery.task.base)j UtrZ@ejg]jp]r[@((j=Xcelery.datastructures (module)Xmodule-celery.datastructuresUtr\@(j=X.AttributeDict (class in celery.datastructures)jUtr]@(j=X.ExceptionInfo (class in celery.datastructures)jn Utr^@(j=X9exception (celery.datastructures.ExceptionInfo attribute)j Utr_@(j=X9traceback (celery.datastructures.ExceptionInfo attribute)j Utr`@(j=X+LimitedSet (class in celery.datastructures)jUtra@(j=X/add() (celery.datastructures.LimitedSet method)j Utrb@(j=X3as_dict() (celery.datastructures.LimitedSet method)j Utrc@(j=X<chronologically (celery.datastructures.LimitedSet attribute)j Utrd@(j=X1clear() (celery.datastructures.LimitedSet method)j4Utre@(j=X2first (celery.datastructures.LimitedSet attribute)j Utrf@(j=X5pop_value() (celery.datastructures.LimitedSet method)j Utrg@(j=X2update() (celery.datastructures.LimitedSet method)j2Utrh@(j=X+LocalCache (class in celery.datastructures)j Utri@(j=X.PositionQueue (class in celery.datastructures)j Utrj@(j=X6length (celery.datastructures.PositionQueue attribute)jUtrk@(j=X?PositionQueue.UnfilledPosition (class in celery.datastructures)j Utrl@(j=X6filled (celery.datastructures.PositionQueue attribute)j Utrm@(j=X3full() (celery.datastructures.PositionQueue method)jo Utrn@(j=X.SharedCounter (class in celery.datastructures)j Utro@(j=X8decrement() (celery.datastructures.SharedCounter method)j Utrp@(j=X8increment() (celery.datastructures.SharedCounter method)j Utrq@(j=X,TokenBucket (class in celery.datastructures)j Utrr@(j=X7fill_rate (celery.datastructures.TokenBucket attribute)jh Utrs@(j=X6capacity (celery.datastructures.TokenBucket attribute)j Utrt@(j=X7timestamp (celery.datastructures.TokenBucket attribute)j{Utru@(j=X8can_consume() (celery.datastructures.TokenBucket method)j Utrv@(j=X:expected_time() (celery.datastructures.TokenBucket method)j* Utrw@(j=X1consume_queue() (in module celery.datastructures)j3 Utrx@ejy]j]ry@((j=XCELERY_CONFIG_MODULEUindex-0rz@Utr{@(j=X*environment variable; CELERY_CONFIG_MODULEjz@Utr|@ej]r}@((j=Xcelery.exceptions (module)Xmodule-celery.exceptionsUtr~@(j=XAlreadyRegisteredj Utr@(j=XImproperlyConfiguredj Utr@(j=XMaxRetriesExceededErrorj Utr@(j=X NotConfiguredjUtr@(j=X NotRegisteredjJ Utr@(j=X QueueNotFoundj Utr@(j=XRetryTaskErrorj%Utr@(j=XSoftTimeLimitExceededjUtr@(j=XTaskRevokedErrorj Utr@(j=XTimeLimitExceededji Utr@(j=X TimeoutErrorjUtr@(j=XWorkerLostErrorj% Utr@ej]r@((j=Xcelery.messaging (module)Xmodule-celery.messagingUtr@(j=X-BroadcastConsumer (class in celery.messaging)jUtr@(j=X:auto_delete (celery.messaging.BroadcastConsumer attribute)jUUtr@(j=X5consume() (celery.messaging.BroadcastConsumer method)j Utr@(j=X6durable (celery.messaging.BroadcastConsumer attribute)jE Utr@(j=X7exchange (celery.messaging.BroadcastConsumer attribute)jUtr@(j=X<exchange_type (celery.messaging.BroadcastConsumer attribute)jHUtr@(j=X5no_ack (celery.messaging.BroadcastConsumer attribute)j" Utr@(j=X4queue (celery.messaging.BroadcastConsumer attribute)jLUtr@(j=X>verify_exclusive() (celery.messaging.BroadcastConsumer method)j|Utr@(j=X.BroadcastPublisher (class in celery.messaging)j Utr@(j=X7ReplyTo (celery.messaging.BroadcastPublisher attribute)j Utr@(j=X;auto_delete (celery.messaging.BroadcastPublisher attribute)j7 Utr@(j=X7durable (celery.messaging.BroadcastPublisher attribute)j Utr@(j=X8exchange (celery.messaging.BroadcastPublisher attribute)j Utr@(j=X=exchange_type (celery.messaging.BroadcastPublisher attribute)j Utr@(j=X3send() (celery.messaging.BroadcastPublisher method)jUtr@(j=X'ConsumerSet (class in celery.messaging)j Utr@(j=X8on_decode_error (celery.messaging.ConsumerSet attribute)j Utr@(j=X8on_decode_error (celery.messaging.ConsumerSet attribute)X,celery.messaging.ConsumerSet.on_decode_errorUtr@(j=X0ControlReplyConsumer (class in celery.messaging)j Utr@(j=X=auto_delete (celery.messaging.ControlReplyConsumer attribute)jUtr@(j=X8collect() (celery.messaging.ControlReplyConsumer method)jUtr@(j=X9durable (celery.messaging.ControlReplyConsumer attribute)j Utr@(j=X:exchange (celery.messaging.ControlReplyConsumer attribute)jUtr@(j=X?exchange_type (celery.messaging.ControlReplyConsumer attribute)jqUtr@(j=X;exclusive (celery.messaging.ControlReplyConsumer attribute)jZ Utr@(j=X8no_ack (celery.messaging.ControlReplyConsumer attribute)jJUtr@(j=X1ControlReplyPublisher (class in celery.messaging)j Utr@(j=X>auto_delete (celery.messaging.ControlReplyPublisher attribute)jUtr@(j=X@delivery_mode (celery.messaging.ControlReplyPublisher attribute)j Utr@(j=X:durable (celery.messaging.ControlReplyPublisher attribute)jUtr@(j=X;exchange (celery.messaging.ControlReplyPublisher attribute)j Utr@(j=X@exchange_type (celery.messaging.ControlReplyPublisher attribute)jX Utr@(j=X)EventConsumer (class in celery.messaging)j Utr@(j=X6auto_delete (celery.messaging.EventConsumer attribute)j Utr@(j=X2durable (celery.messaging.EventConsumer attribute)j Utr@(j=X3exchange (celery.messaging.EventConsumer attribute)j Utr@(j=X8exchange_type (celery.messaging.EventConsumer attribute)j Utr@(j=X1no_ack (celery.messaging.EventConsumer attribute)jUtr@(j=X0queue (celery.messaging.EventConsumer attribute)j Utr@(j=X6routing_key (celery.messaging.EventConsumer attribute)j Utr@(j=X*EventPublisher (class in celery.messaging)j Utr@(j=X7auto_delete (celery.messaging.EventPublisher attribute)j8 Utr@(j=X9delivery_mode (celery.messaging.EventPublisher attribute)j Utr@(j=X3durable (celery.messaging.EventPublisher attribute)j Utr@(j=X4exchange (celery.messaging.EventPublisher attribute)ju Utr@(j=X9exchange_type (celery.messaging.EventPublisher attribute)j6 Utr@(j=X7routing_key (celery.messaging.EventPublisher attribute)j Utr@(j=X6serializer (celery.messaging.EventPublisher attribute)je Utr@(j=X(TaskConsumer (class in celery.messaging)jS Utr@(j=X2exchange (celery.messaging.TaskConsumer attribute)j_ Utr@(j=X7exchange_type (celery.messaging.TaskConsumer attribute)j Utr@(j=X/queue (celery.messaging.TaskConsumer attribute)j Utr@(j=X5routing_key (celery.messaging.TaskConsumer attribute)ja Utr@(j=X)TaskPublisher (class in celery.messaging)jUtr@(j=X7auto_declare (celery.messaging.TaskPublisher attribute)j Utr@(j=X1declare() (celery.messaging.TaskPublisher method)jUtr@(j=X4delay_task() (celery.messaging.TaskPublisher method)jH Utr@(j=X3exchange (celery.messaging.TaskPublisher attribute)jUtr@(j=X8exchange_type (celery.messaging.TaskPublisher attribute)j Utr@(j=X6routing_key (celery.messaging.TaskPublisher attribute)j Utr@(j=X5serializer (celery.messaging.TaskPublisher attribute)j Utr@(j=X3establish_connection() (in module celery.messaging)j Utr@(j=X2extract_msg_options() (in module celery.messaging)j0 Utr@(j=X/get_consumer_set() (in module celery.messaging)j Utr@(j=X.with_connection() (in module celery.messaging)j Utr@ej]j]j]j]r@((j=X celery.backends.pyredis (module)Xmodule-celery.backends.pyredisUtr@(j=X/RedisBackend (class in celery.backends.pyredis)jZ Utr@(j=X;redis_host (celery.backends.pyredis.RedisBackend attribute)jUtr@(j=X;redis_port (celery.backends.pyredis.RedisBackend attribute)j Utr@(j=X5close() (celery.backends.pyredis.RedisBackend method)jUtr@(j=X6delete() (celery.backends.pyredis.RedisBackend method)j Utr@(j=XDdeprecated_settings (celery.backends.pyredis.RedisBackend attribute)j Utr@(j=X8expires (celery.backends.pyredis.RedisBackend attribute)j( Utr@(j=X3get() (celery.backends.pyredis.RedisBackend method)j Utr@(j=X4open() (celery.backends.pyredis.RedisBackend method)jy Utr@(j=X?process_cleanup() (celery.backends.pyredis.RedisBackend method)jUtr@(j=XDredis_connect_retry (celery.backends.pyredis.RedisBackend attribute)jUtr@(j=X9redis_db (celery.backends.pyredis.RedisBackend attribute)j Utr@(j=X;redis_host (celery.backends.pyredis.RedisBackend attribute)X/celery.backends.pyredis.RedisBackend.redis_hostUtr@(j=X?redis_password (celery.backends.pyredis.RedisBackend attribute)j Utr@(j=X;redis_port (celery.backends.pyredis.RedisBackend attribute)X/celery.backends.pyredis.RedisBackend.redis_portUtr@(j=X>redis_timeout (celery.backends.pyredis.RedisBackend attribute)j+ Utr@(j=X3set() (celery.backends.pyredis.RedisBackend method)j Utr@ej]r@((j=X!celery.contrib.abortable (module)Xmodule-celery.contrib.abortableUtr@(j=X8AbortableAsyncResult (class in celery.contrib.abortable)j Utr@(j=X>abort() (celery.contrib.abortable.AbortableAsyncResult method)j Utr@(j=XCis_aborted() (celery.contrib.abortable.AbortableAsyncResult method)j Utr@(j=X1AbortableTask (class in celery.contrib.abortable)j[ Utr@(j=XCAsyncResult() (celery.contrib.abortable.AbortableTask class method)jUtr@(j=X<is_aborted() (celery.contrib.abortable.AbortableTask method)j Utr@(j=X7name (celery.contrib.abortable.AbortableTask attribute)j Utr@ej]r@((j=Xcelery.serialization (module)Xmodule-celery.serializationUtr@(j=XUnpickleableExceptionWrapperj Utr@(j=XHexc_module (celery.serialization.UnpickleableExceptionWrapper attribute)jUtr@(j=XJexc_cls_name (celery.serialization.UnpickleableExceptionWrapper attribute)j( Utr@(j=XFexc_args (celery.serialization.UnpickleableExceptionWrapper attribute)jy Utr@(j=XQfrom_exception() (celery.serialization.UnpickleableExceptionWrapper class method)j Utr@(j=XDrestore() (celery.serialization.UnpickleableExceptionWrapper method)ju Utr@(j=X7create_exception_cls() (in module celery.serialization)j Utr@(j=XDfind_nearest_pickleable_exception() (in module celery.serialization)jUtr@(j=X;get_pickleable_exception() (in module celery.serialization)j Utr@(j=X8get_pickled_exception() (in module celery.serialization)j Utr@(j=X5subclass_exception() (in module celery.serialization)j Utr@ej]r@((j=Xcelery.bin.celerybeat (module)Xmodule-celery.bin.celerybeatUtr@(Upairr@X.celerybeat command line option; -s, --schedulejUtr@(j@X/celerybeat command line option; -S, --schedulerj Utr@(j@X-celerybeat command line option; -f, --logfilejUtr@(j@X.celerybeat command line option; -l, --loglevelj Utr@(j=X,BeatCommand (class in celery.bin.celerybeat)jM Utr@(j=X8get_options() (celery.bin.celerybeat.BeatCommand method)j UtrA(j=X0run() (celery.bin.celerybeat.BeatCommand method)j] UtrA(j=X(main() (in module celery.bin.celerybeat)jA UtrAej]rA((j=Xcelery.events.dumper (module)Xmodule-celery.events.dumperUtrA(j=X&Dumper (class in celery.events.dumper)j UtrA(j=X8format_task_event() (celery.events.dumper.Dumper method)jUtrA(j=X/on_event() (celery.events.dumper.Dumper method)j/UtrA(j=X)evdump() (in module celery.events.dumper)j UtrA(j=X0humanize_type() (in module celery.events.dumper)j Utr Aej]r A((j=Xcelery.worker.buckets (module)Xmodule-celery.worker.bucketsUtr A(j=X*FastQueue (class in celery.worker.buckets)j Utr A(j=X0clear() (celery.worker.buckets.FastQueue method)j$Utr A(j=X8expected_time() (celery.worker.buckets.FastQueue method)jC UtrA(j=X1items (celery.worker.buckets.FastQueue attribute)j? UtrA(j=X/wait() (celery.worker.buckets.FastQueue method)j UtrA(j=XRateLimitExceededj% UtrA(j=X+TaskBucket (class in celery.worker.buckets)jG UtrA(j=X?add_bucket_for_type() (celery.worker.buckets.TaskBucket method)jd UtrA(j=X1clear() (celery.worker.buckets.TaskBucket method)jUtrA(j=X1empty() (celery.worker.buckets.TaskBucket method)jE UtrA(j=X/get() (celery.worker.buckets.TaskBucket method)jUtrA(j=X?get_bucket_for_type() (celery.worker.buckets.TaskBucket method)jY UtrA(j=X6get_nowait() (celery.worker.buckets.TaskBucket method)j UtrA(j=X>init_with_registry() (celery.worker.buckets.TaskBucket method)j UtrA(j=X2items (celery.worker.buckets.TaskBucket attribute)j UtrA(j=X/put() (celery.worker.buckets.TaskBucket method)j UtrA(j=X6put_nowait() (celery.worker.buckets.TaskBucket method)j) UtrA(j=X1qsize() (celery.worker.buckets.TaskBucket method)jZ UtrA(j=X3refresh() (celery.worker.buckets.TaskBucket method)jUtrA(j=XBupdate_bucket_for_type() (celery.worker.buckets.TaskBucket method)j UtrA(j=X1TokenBucketQueue (class in celery.worker.buckets)j Utr A(j=X"TokenBucketQueue.RateLimitExceededj Utr!A(j=X7clear() (celery.worker.buckets.TokenBucketQueue method)j= Utr"A(j=X7empty() (celery.worker.buckets.TokenBucketQueue method)jw Utr#A(j=X?expected_time() (celery.worker.buckets.TokenBucketQueue method)j Utr$A(j=X5get() (celery.worker.buckets.TokenBucketQueue method)j* Utr%A(j=X<get_nowait() (celery.worker.buckets.TokenBucketQueue method)j6 Utr&A(j=X8items (celery.worker.buckets.TokenBucketQueue attribute)j Utr'A(j=X5put() (celery.worker.buckets.TokenBucketQueue method)j Utr(A(j=X<put_nowait() (celery.worker.buckets.TokenBucketQueue method)jUtr)A(j=X7qsize() (celery.worker.buckets.TokenBucketQueue method)jT Utr*A(j=X6wait() (celery.worker.buckets.TokenBucketQueue method)j Utr+A(j=X7chain_from_iterable() (in module celery.worker.buckets)jT Utr,Aej]r-A((XpairXCELERYD_CONCURRENCY; settingjGUtr.A(XpairX$CELERYD_PREFETCH_MULTIPLIER; settingj]Utr/A(XpairXCELERY_RESULT_BACKEND; settingj"Utr0A(XpairXCELERY_RESULT_DBURI; settingjgUtr1A(XpairX%CELERY_RESULT_ENGINE_OPTIONS; settingj>Utr2A(XpairX(CELERY_AMQP_TASK_RESULT_EXPIRES; settingj%Utr3A(XpairXCELERY_RESULT_EXCHANGE; settingjbUtr4A(XpairX$CELERY_RESULT_EXCHANGE_TYPE; settingjOUtr5A(XpairX!CELERY_RESULT_SERIALIZER; settingjUtr6A(XpairX!CELERY_RESULT_PERSISTENT; settingj.Utr7A(XpairXCELERY_CACHE_BACKEND; settingjUtr8A(XpairX%CELERY_CACHE_BACKEND_OPTIONS; settingjWUtr9A(XpairXTT_HOST; settingjmUtr:A(XpairXTT_PORT; settingjlUtr;A(XpairXREDIS_HOST; settingj6UtrA(XpairXREDIS_PASSWORD; settingjQUtr?A(XpairX(CELERY_MONGODB_BACKEND_SETTINGS; settingjUtr@A(XpairXCELERY_QUEUES; settingjwUtrAA(XpairXCELERY_ROUTES; settingjSUtrBA(XpairX%CELERY_CREATE_MISSING_QUEUES; settingjLUtrCA(XpairXCELERY_DEFAULT_QUEUE; settingj<UtrDA(XpairX CELERY_DEFAULT_EXCHANGE; settingjqUtrEA(XpairX%CELERY_DEFAULT_EXCHANGE_TYPE; settingjUtrFA(XpairX#CELERY_DEFAULT_ROUTING_KEY; settingj!UtrGA(XpairX%CELERY_DEFAULT_DELIVERY_MODE; settingj5UtrHA(XpairXBROKER_BACKEND; settingjRUtrIA(XpairXBROKER_HOST; settingj8UtrJA(XpairXBROKER_PORT; settingjUtrKA(XpairXBROKER_USER; settingjUtrLA(XpairXBROKER_PASSWORD; settingj1UtrMA(XpairXBROKER_VHOST; settingj2UtrNA(XpairXBROKER_USE_SSL; settingj;UtrOA(XpairX"BROKER_CONNECTION_TIMEOUT; settingjuUtrPA(XpairX'CELERY_BROKER_CONNECTION_RETRY; settingjUtrQA(XpairX-CELERY_BROKER_CONNECTION_MAX_RETRIES; settingj^UtrRA(XpairXCELERY_ALWAYS_EAGER; settingj[UtrSA(XpairX+CELERY_EAGER_PROPAGATES_EXCEPTIONS; settingj@UtrTA(XpairXCELERY_IGNORE_RESULT; settingjZUtrUA(XpairX#CELERY_TASK_RESULT_EXPIRES; settingjJUtrVA(XpairX"CELERY_MAX_CACHED_RESULTS; settingj?UtrWA(XpairXCELERY_TRACK_STARTED; settingj`UtrXA(XpairXCELERY_TASK_SERIALIZER; settingjsUtrYA(XpairX"CELERY_DEFAULT_RATE_LIMIT; settingjeUtrZA(XpairX#CELERY_DISABLE_RATE_LIMITS; settingj$Utr[A(XpairXCELERY_ACKS_LATE; settingjMUtr\A(XpairXCELERY_IMPORTS; settingjxUtr]A(XpairX$CELERYD_MAX_TASKS_PER_CHILD; settingjPUtr^A(XpairX CELERYD_TASK_TIME_LIMIT; settingjUUtr_A(XpairX%CELERYD_TASK_SOFT_TIME_LIMIT; settingjpUtr`A(XpairX,CELERY_STORE_ERRORS_EVEN_IF_IGNORED; settingjvUtraA(XpairXCELERYD_STATE_DB; settingjUtrbA(XpairX(CELERYD_ETA_SCHEDULER_PRECISION; settingj_UtrcA(XpairX'CELERYD_SEND_TASK_ERROR_EMAILS; settingjcUtrdA(XpairX$CELERY_TASK_ERROR_WHITELIST; settingjIUtreA(XpairXADMINS; settingj:UtrfA(XpairXSERVER_EMAIL; settingj7UtrgA(XpairXMAIL_HOST; settingjBUtrhA(XpairXMAIL_HOST_USER; settingj9UtriA(XpairXMAIL_HOST_PASSWORD; settingjUtrjA(XpairXMAIL_PORT; settingj#UtrkA(XpairXCELERY_SEND_EVENTS; settingj*UtrlA(XpairXCELERY_EVENT_QUEUE; settingjUtrmA(XpairXCELERY_EVENT_EXCHANGE; settingjAUtrnA(XpairX#CELERY_EVENT_EXCHANGE_TYPE; settingjKUtroA(XpairX!CELERY_EVENT_ROUTING_KEY; settingjdUtrpA(XpairX CELERY_EVENT_SERIALIZER; settingjfUtrqA(XpairXCELERY_BROADCAST_QUEUE; settingj4UtrrA(XpairX#CELERY_BROADCASTS_EXCHANGE; settingj-UtrsA(XpairX'CELERY_BROADCAST_EXCHANGE_TYPE; settingj3UtrtA(XpairXCELERYD_LOG_FILE; settingjYUtruA(XpairXCELERYD_LOG_LEVEL; settingjUtrvA(XpairXCELERYD_LOG_FORMAT; settingj,UtrwA(XpairX CELERYD_TASK_LOG_FORMAT; settingjCUtrxA(XpairX CELERY_REDIRECT_STDOUTS; settingj(UtryA(XpairX&CELERY_REDIRECT_STDOUTS_LEVEL; settingj\UtrzA(XpairXCELERYD_POOL; settingjUtr{A(XpairXCELERYD_LISTENER; settingjoUtr|A(XpairXCELERYD_MEDIATOR; settingj&Utr}A(XpairXCELERYD_ETA_SCHEDULER; settingjXUtr~A(XpairXCELERYBEAT_SCHEDULE; settingj/UtrA(XpairXCELERYBEAT_SCHEDULER; settingj'UtrA(XpairX%CELERYBEAT_SCHEDULE_FILENAME; settingjUtrA(XpairX%CELERYBEAT_MAX_LOOP_INTERVAL; settingj0UtrA(XpairXCELERYBEAT_LOG_FILE; settingjhUtrA(XpairXCELERYBEAT_LOG_LEVEL; settingjnUtrA(XpairXCELERYMON_LOG_FILE; settingjjUtrA(XpairXCELERYMON_LOG_LEVEL; settingjUtrAej]rA((j=X celery.events.cursesmon (module)Xmodule-celery.events.cursesmonUtrA(j=X0CursesMonitor (class in celery.events.cursesmon)jy UtrA(j=X6alert() (celery.events.cursesmon.CursesMonitor method)jUtrA(j=XKalert_remote_control_reply() (celery.events.cursesmon.CursesMonitor method)j UtrA(j=X<background (celery.events.cursesmon.CursesMonitor attribute)jUtrA(j=X?display_width (celery.events.cursesmon.CursesMonitor attribute)jUtrA(j=X5draw() (celery.events.cursesmon.CursesMonitor method)jt UtrA(j=X>find_position() (celery.events.cursesmon.CursesMonitor method)j) UtrA(j=X<foreground (celery.events.cursesmon.CursesMonitor attribute)jUtrA(j=X;format_row() (celery.events.cursesmon.CursesMonitor method)j UtrA(j=X7greet (celery.events.cursesmon.CursesMonitor attribute)jn UtrA(j=X@handle_keypress() (celery.events.cursesmon.CursesMonitor method)jUtrA(j=X6help (celery.events.cursesmon.CursesMonitor attribute)j UtrA(j=X<help_title (celery.events.cursesmon.CursesMonitor attribute)j UtrA(j=X:info_str (celery.events.cursesmon.CursesMonitor attribute)j UtrA(j=X<init_screen() (celery.events.cursesmon.CursesMonitor method)jM UtrA(j=X:keyalias (celery.events.cursesmon.CursesMonitor attribute)j8 UtrA(j=X8keymap (celery.events.cursesmon.CursesMonitor attribute)j^UtrA(j=X7limit (celery.events.cursesmon.CursesMonitor attribute)jxUtrA(j=X?move_selection() (celery.events.cursesmon.CursesMonitor method)jUtrA(j=XDmove_selection_down() (celery.events.cursesmon.CursesMonitor method)jUtrA(j=XBmove_selection_up() (celery.events.cursesmon.CursesMonitor method)j UtrA(j=X4nap() (celery.events.cursesmon.CursesMonitor method)j UtrA(j=X<online_str (celery.events.cursesmon.CursesMonitor attribute)j UtrA(j=X9readline() (celery.events.cursesmon.CursesMonitor method)j UtrA(j=X<resetscreen() (celery.events.cursesmon.CursesMonitor method)j UtrA(j=XArevoke_selection() (celery.events.cursesmon.CursesMonitor method)j| UtrA(j=X>screen_delay (celery.events.cursesmon.CursesMonitor attribute)jUtrA(j=X>screen_width (celery.events.cursesmon.CursesMonitor attribute)jUtrA(j=XCselected_position (celery.events.cursesmon.CursesMonitor attribute)jUtrA(j=X>selected_str (celery.events.cursesmon.CursesMonitor attribute)j/ UtrA(j=X?selected_task (celery.events.cursesmon.CursesMonitor attribute)jUtrA(j=X?selection_info() (celery.events.cursesmon.CursesMonitor method)jUtrA(j=XEselection_rate_limit() (celery.events.cursesmon.CursesMonitor method)juUtrA(j=XAselection_result() (celery.events.cursesmon.CursesMonitor method)jn UtrA(j=XDselection_traceback() (celery.events.cursesmon.CursesMonitor method)j UtrA(j=X7tasks (celery.events.cursesmon.CursesMonitor attribute)jUtrA(j=X5win (celery.events.cursesmon.CursesMonitor attribute)j UtrA(j=X9workers (celery.events.cursesmon.CursesMonitor attribute)j UtrA(j=X0DisplayThread (class in celery.events.cursesmon)jF UtrA(j=X4run() (celery.events.cursesmon.DisplayThread method)jv UtrA(j=X+evtop() (in module celery.events.cursesmon)j UtrAej]rA((j=Xcelery.utils.compat (module)Xmodule-celery.utils.compatUtrA(j=X*OrderedDict (class in celery.utils.compat)j UtrA(j=X0clear() (celery.utils.compat.OrderedDict method)jUtrA(j=X/copy() (celery.utils.compat.OrderedDict method)j UtrA(j=X9fromkeys() (celery.utils.compat.OrderedDict class method)j&UtrA(j=X0items() (celery.utils.compat.OrderedDict method)jz UtrA(j=X4iteritems() (celery.utils.compat.OrderedDict method)jj UtrA(j=X3iterkeys() (celery.utils.compat.OrderedDict method)j{ UtrA(j=X5itervalues() (celery.utils.compat.OrderedDict method)j UtrA(j=X/keys() (celery.utils.compat.OrderedDict method)jl UtrA(j=X.pop() (celery.utils.compat.OrderedDict method)j UtrA(j=X2popitem() (celery.utils.compat.OrderedDict method)j; UtrA(j=X5setdefault() (celery.utils.compat.OrderedDict method)j UtrA(j=X1update() (celery.utils.compat.OrderedDict method)j UtrA(j=X1values() (celery.utils.compat.OrderedDict method)jUtrA(j=X5chain_from_iterable() (in module celery.utils.compat)jUtrA(j=X0log_with_extra() (in module celery.utils.compat)j UtrAej ]rA((j=Xcelery.db.session (module)Xmodule-celery.db.sessionUtrA(j=X-ResultSession() (in module celery.db.session)j, UtrA(j=X.create_session() (in module celery.db.session)jUtrA(j=X*get_engine() (in module celery.db.session)jf UtrA(j=X-setup_results() (in module celery.db.session)jUtrAej]rA((j=Xcelery.events (module)Xmodule-celery.eventsUtrA(j=X!Event() (in module celery.events)j+UtrA(j=X(EventDispatcher (class in celery.events)j UtrA(j=X.close() (celery.events.EventDispatcher method)j UtrA(j=X0disable() (celery.events.EventDispatcher method)j UtrA(j=X/enable() (celery.events.EventDispatcher method)j: UtrA(j=X.flush() (celery.events.EventDispatcher method)j UtrA(j=X-send() (celery.events.EventDispatcher method)j UtrA(j=X&EventReceiver (class in celery.events)j UtrA(j=X.capture() (celery.events.EventReceiver method)j UtrA(j=X/consumer() (celery.events.EventReceiver method)j UtrA(j=X0handlers (celery.events.EventReceiver attribute)j UtrA(j=X.process() (celery.events.EventReceiver method)j?UtrA(j=X(create_event() (in module celery.events)jn UtrAej]j$]rA((j=Xcelery.db.models (module)Xmodule-celery.db.modelsUtrA(j=X Task (class in celery.db.models)jUtrA(j=X+date_done (celery.db.models.Task attribute)ji UtrA(j=X$id (celery.db.models.Task attribute)j UtrA(j=X(result (celery.db.models.Task attribute)j UtrA(j=X(status (celery.db.models.Task attribute)jh UtrA(j=X)task_id (celery.db.models.Task attribute)j UtrA(j=X(to_dict() (celery.db.models.Task method)jUtrA(j=X+traceback (celery.db.models.Task attribute)j UtrA(j=X#TaskSet (class in celery.db.models)jUtrA(j=X.date_done (celery.db.models.TaskSet attribute)jA UtrA(j=X'id (celery.db.models.TaskSet attribute)j UtrA(j=X+result (celery.db.models.TaskSet attribute)jUtrA(j=X/taskset_id (celery.db.models.TaskSet attribute)j! UtrA(j=X+to_dict() (celery.db.models.TaskSet method)j UtrAej-]rA((j=Xcelery.bin.celeryev (module)Xmodule-celery.bin.celeryevUtrA(j=X&main() (in module celery.bin.celeryev)ju UtrA(j=X/parse_options() (in module celery.bin.celeryev)j UtrA(j=X.run_celeryev() (in module celery.bin.celeryev)j UtrA(j=X4set_process_status() (in module celery.bin.celeryev)j UtrAej6]j?]rA((j=Xcelery.utils.info (module)Xmodule-celery.utils.infoUtrA(j=X2format_broker_info() (in module celery.utils.info)j: UtrA(j=X-format_queues() (in module celery.utils.info)jJ UtrA(j=X/get_broker_info() (in module celery.utils.info)jpUtrA(j=X0humanize_seconds() (in module celery.utils.info)j} UtrA(j=X*textindent() (in module celery.utils.info)j UtrAejH]rA((j=Xcelery.loaders.base (module)Xmodule-celery.loaders.baseUtrA(j=X)BaseLoader (class in celery.loaders.base)jc UtrA(j=X/conf (celery.loaders.base.BaseLoader attribute)j UtrA(j=X5configured (celery.loaders.base.BaseLoader attribute)j UtrA(j=X@import_default_modules() (celery.loaders.base.BaseLoader method)jq UtrA(j=X9import_from_cwd() (celery.loaders.base.BaseLoader method)j"UtrA(j=X7import_module() (celery.loaders.base.BaseLoader method)j UtrA(j=X<import_task_module() (celery.loaders.base.BaseLoader method)j UtrA(j=X5init_worker() (celery.loaders.base.BaseLoader method)j UtrA(j=X5mail_admins() (celery.loaders.base.BaseLoader method)j UtrB(j=X<on_process_cleanup() (celery.loaders.base.BaseLoader method)j UtrB(j=X6on_task_init() (celery.loaders.base.BaseLoader method)jm UtrB(j=X8on_worker_init() (celery.loaders.base.BaseLoader method)jUtrB(j=X<override_backends (celery.loaders.base.BaseLoader attribute)j UtrB(j=X=worker_initialized (celery.loaders.base.BaseLoader attribute)j UtrBejQ]rB((j=Xcelery.task.builtins (module)Xmodule-celery.task.builtinsUtrB(j=X3AsynchronousMapTask (class in celery.task.builtins)j UtrB(j=X9name (celery.task.builtins.AsynchronousMapTask attribute)jt Utr B(j=X7run() (celery.task.builtins.AsynchronousMapTask method)j Utr B(j=X:DeleteExpiredTaskMetaTask (in module celery.task.builtins)j Utr B(j=X1ExecuteRemoteTask (class in celery.task.builtins)j Utr B(j=X7name (celery.task.builtins.ExecuteRemoteTask attribute)j Utr B(j=X5run() (celery.task.builtins.ExecuteRemoteTask method)jUtrB(j=X(PingTask (class in celery.task.builtins)j UtrB(j=X.name (celery.task.builtins.PingTask attribute)j# UtrB(j=X,run() (celery.task.builtins.PingTask method)jUtrB(j=X/backend_cleanup (class in celery.task.builtins)jr UtrB(j=X5name (celery.task.builtins.backend_cleanup attribute)jUtrB(j=X3run() (celery.task.builtins.backend_cleanup method)jUtrBejZ]rB((j=X CELERY_LOADERUindex-0rBUtrB(j=X#environment variable; CELERY_LOADERjBUtrBejc]rB((j=Xcelery.loaders.default (module)Xmodule-celery.loaders.defaultUtrB(j=X(Loader (class in celery.loaders.default)j UtrB(j=X7on_worker_init() (celery.loaders.default.Loader method)j UtrB(j=X;read_configuration() (celery.loaders.default.Loader method)jUtrB(j=X7setup_settings() (celery.loaders.default.Loader method)jUtrB(j=X7wanted_module_item() (in module celery.loaders.default)j UtrBejl]ju]r B((j=Xcelery.task.sets (module)Xmodule-celery.task.setsUtr!B(j=X#TaskSet (class in celery.task.sets)j1 Utr"B(j=X*total (celery.task.sets.TaskSet attribute)j Utr#B(j=X.Publisher (celery.task.sets.TaskSet attribute)jg Utr$B(j=X)apply() (celery.task.sets.TaskSet method)j< Utr%B(j=X/apply_async() (celery.task.sets.TaskSet method)j Utr&B(j=X)task (celery.task.sets.TaskSet attribute)j Utr'B(j=X.task_name (celery.task.sets.TaskSet attribute)j Utr(B(j=X*tasks (celery.task.sets.TaskSet attribute)j Utr)B(j=X#subtask (class in celery.task.sets)jUtr*B(j=X)apply() (celery.task.sets.subtask method)j- Utr+B(j=X/apply_async() (celery.task.sets.subtask method)j7Utr,B(j=X)delay() (celery.task.sets.subtask method)jYUtr-B(j=X,get_type() (celery.task.sets.subtask method)jx Utr.Bej~]j]r/B((j=X*celery.concurrency.processes.pool (module)X(module-celery.concurrency.processes.poolUtr0B(j=X1Pool (class in celery.concurrency.processes.pool)j Utr1B(j=X9Pool.Process (class in celery.concurrency.processes.pool)jd Utr2B(j=XBauthkey (celery.concurrency.processes.pool.Pool.Process attribute)j Utr3B(j=XAdaemon (celery.concurrency.processes.pool.Pool.Process attribute)jUtr4B(j=XCexitcode (celery.concurrency.processes.pool.Pool.Process attribute)jU Utr5B(j=X@ident (celery.concurrency.processes.pool.Pool.Process attribute)j_ Utr6B(j=XBis_alive() (celery.concurrency.processes.pool.Pool.Process method)jUtr7B(j=X>join() (celery.concurrency.processes.pool.Pool.Process method)j Utr8B(j=X?name (celery.concurrency.processes.pool.Pool.Process attribute)jQ Utr9B(j=X>pid (celery.concurrency.processes.pool.Pool.Process attribute)j Utr:B(j=X=run() (celery.concurrency.processes.pool.Pool.Process method)j Utr;B(j=X?start() (celery.concurrency.processes.pool.Pool.Process method)j UtrB(j=XDbody() (celery.concurrency.processes.pool.Pool.ResultHandler method)j Utr?B(j=XPool.SoftTimeLimitExceededj,Utr@B(j=X<Pool.Supervisor (class in celery.concurrency.processes.pool)j_ UtrAB(j=XAbody() (celery.concurrency.processes.pool.Pool.Supervisor method)j UtrBB(j=X=Pool.TaskHandler (class in celery.concurrency.processes.pool)j UtrCB(j=XBbody() (celery.concurrency.processes.pool.Pool.TaskHandler method)jUtrDB(j=X@Pool.TimeoutHandler (class in celery.concurrency.processes.pool)j UtrEB(j=XEbody() (celery.concurrency.processes.pool.Pool.TimeoutHandler method)jC UtrFB(j=X7apply() (celery.concurrency.processes.pool.Pool method)jD UtrGB(j=X=apply_async() (celery.concurrency.processes.pool.Pool method)j\ UtrHB(j=X7close() (celery.concurrency.processes.pool.Pool method)j4 UtrIB(j=X6imap() (celery.concurrency.processes.pool.Pool method)j UtrJB(j=X@imap_unordered() (celery.concurrency.processes.pool.Pool method)jPUtrKB(j=X6join() (celery.concurrency.processes.pool.Pool method)jUtrLB(j=X5map() (celery.concurrency.processes.pool.Pool method)jUtrMB(j=X;map_async() (celery.concurrency.processes.pool.Pool method)j{ UtrNB(j=X;terminate() (celery.concurrency.processes.pool.Pool method)j UtrOBej]rPB((j=X"celery.worker.controllers (module)X module-celery.worker.controllersUtrQB(j=X-Mediator (class in celery.worker.controllers)j7 UtrRB(j=X:ready_queue (celery.worker.controllers.Mediator attribute)j UtrSB(j=X7callback (celery.worker.controllers.Mediator attribute)j UtrTB(j=X2move() (celery.worker.controllers.Mediator method)j UtrUB(j=X1run() (celery.worker.controllers.Mediator method)j UtrVB(j=X2stop() (celery.worker.controllers.Mediator method)jK UtrWBej]rXB((j=X&celery.utils.dispatch.saferef (module)X$module-celery.utils.dispatch.saferefUtrYB(j=X;BoundMethodWeakref (class in celery.utils.dispatch.saferef)j UtrZB(j=X@key (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)jUtr[B(j=XMdeletion_methods (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)jUtr\B(j=XFweak_self (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)jDUtr]B(j=XFweak_func (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)jrUtr^B(j=XK_all_instances (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)j[ Utr_B(j=XOcalculate_key() (celery.utils.dispatch.saferef.BoundMethodWeakref class method)jV Utr`B(j=XHBoundNonDescriptorMethodWeakref (class in celery.utils.dispatch.saferef)jN UtraB(j=XDget_bound_method_weakref() (in module celery.utils.dispatch.saferef)j UtrbB(j=X4safe_ref() (in module celery.utils.dispatch.saferef)j UtrcBej]rdB((j=Xcelery.bin.celeryd (module)Xmodule-celery.bin.celerydUtreB(j@X.celeryd command line option; -c, --concurrencyjUtrfB(j@X*celeryd command line option; -f, --logfilejUtrgB(j@X+celeryd command line option; -l, --logleveljUtrhB(j@X+celeryd command line option; -n, --hostnamej UtriB(j@X'celeryd command line option; -B, --beatjUtrjB(j@X)celeryd command line option; -Q, --queuesj UtrkB(j@X*celeryd command line option; -I, --includejUtrlB(j@X+celeryd command line option; -s, --schedulejUtrmB(j@X(celeryd command line option; --schedulerjUtrnB(j@X)celeryd command line option; -E, --eventsj UtroB(j@X/celeryd command line option; --purge, --discardjUtrpB(j@X)celeryd command line option; --time-limitjUtrqB(j@X.celeryd command line option; --soft-time-limitjUtrrB(j@X/celeryd command line option; --maxtasksperchildjUtrsB(j=X+WorkerCommand (class in celery.bin.celeryd)j UtrtB(j=X7get_options() (celery.bin.celeryd.WorkerCommand method)j3 UtruB(j=X/run() (celery.bin.celeryd.WorkerCommand method)j UtrvB(j=X%main() (in module celery.bin.celeryd)jn UtrwB(j=X-windows_main() (in module celery.bin.celeryd)j UtrxBej]j]ryB((j=Xcelery.utils.timeutils (module)Xmodule-celery.utils.timeutilsUtrzB(j=X5delta_resolution() (in module celery.utils.timeutils)j Utr{B(j=X)rate() (in module celery.utils.timeutils)j Utr|B(j=X.remaining() (in module celery.utils.timeutils)jUtr}B(j=X6timedelta_seconds() (in module celery.utils.timeutils)j Utr~B(j=X,weekday() (in module celery.utils.timeutils)jB UtrBej]rB((j=X%celery.utils.dispatch.signal (module)X#module-celery.utils.dispatch.signalUtrB(j=X.Signal (class in celery.utils.dispatch.signal)j: UtrB(j=X9receivers (celery.utils.dispatch.signal.Signal attribute)j1 UtrB(j=X6connect() (celery.utils.dispatch.signal.Signal method)j UtrB(j=X9disconnect() (celery.utils.dispatch.signal.Signal method)jUtrB(j=X3send() (celery.utils.dispatch.signal.Signal method)jUtrB(j=X:send_robust() (celery.utils.dispatch.signal.Signal method)j UtrBej]rB((j=X!celery.bin.celeryd_multi (module)Xmodule-celery.bin.celeryd_multiUtrB(j=X-MultiTool (class in celery.bin.celeryd_multi)jT UtrB(j=X3error() (celery.bin.celeryd_multi.MultiTool method)jB UtrB(j=XFexecute_from_commandline() (celery.bin.celeryd_multi.MultiTool method)jUtrB(j=X4expand() (celery.bin.celeryd_multi.MultiTool method)j UtrB(j=X1get() (celery.bin.celeryd_multi.MultiTool method)j UtrB(j=X5getpids() (celery.bin.celeryd_multi.MultiTool method)j UtrB(j=X2help() (celery.bin.celeryd_multi.MultiTool method)jd UtrB(j=X2info() (celery.bin.celeryd_multi.MultiTool method)j UtrB(j=X2kill() (celery.bin.celeryd_multi.MultiTool method)jB UtrB(j=X3names() (celery.bin.celeryd_multi.MultiTool method)j UtrB(j=X8node_alive() (celery.bin.celeryd_multi.MultiTool method)j UtrB(j=X2note() (celery.bin.celeryd_multi.MultiTool method)je UtrB(j=X5restart() (celery.bin.celeryd_multi.MultiTool method)jY UtrB(j=X6retcode (celery.bin.celeryd_multi.MultiTool attribute)jhUtrB(j=X2show() (celery.bin.celeryd_multi.MultiTool method)jm UtrB(j=X<shutdown_nodes() (celery.bin.celeryd_multi.MultiTool method)jI UtrB(j=X9signal_node() (celery.bin.celeryd_multi.MultiTool method)jS UtrB(j=X4splash() (celery.bin.celeryd_multi.MultiTool method)j@ UtrB(j=X3start() (celery.bin.celeryd_multi.MultiTool method)j$ UtrB(j=X2stop() (celery.bin.celeryd_multi.MultiTool method)j UtrB(j=X3usage() (celery.bin.celeryd_multi.MultiTool method)jUtrB(j=X6waitexec() (celery.bin.celeryd_multi.MultiTool method)jP UtrB(j=XKwith_detacher_default_options() (celery.bin.celeryd_multi.MultiTool method)jt UtrB(j=X:NamespacedOptionParser (class in celery.bin.celeryd_multi)j) UtrB(j=XEadd_option() (celery.bin.celeryd_multi.NamespacedOptionParser method)j UtrB(j=XCoptmerge() (celery.bin.celeryd_multi.NamespacedOptionParser method)j UtrB(j=X@parse() (celery.bin.celeryd_multi.NamespacedOptionParser method)j UtrB(j=XKprocess_long_opt() (celery.bin.celeryd_multi.NamespacedOptionParser method)jQ UtrB(j=XLprocess_short_opt() (celery.bin.celeryd_multi.NamespacedOptionParser method)jNUtrB(j=X4abbreviations() (in module celery.bin.celeryd_multi)jUtrB(j=X.findsig() (in module celery.bin.celeryd_multi)jUtrB(j=X1format_opt() (in module celery.bin.celeryd_multi)jUtrB(j=X+main() (in module celery.bin.celeryd_multi)j UtrB(j=X1multi_args() (in module celery.bin.celeryd_multi)jUtrB(j=X5parse_ns_range() (in module celery.bin.celeryd_multi)j` UtrB(j=X,quote() (in module celery.bin.celeryd_multi)jQ UtrB(j=X*say() (in module celery.bin.celeryd_multi)jUtrBej]rB((j=X%celery.concurrency.processes (module)X#module-celery.concurrency.processesUtrB(j=X0TaskPool (class in celery.concurrency.processes)jUtrB(j=X7limit (celery.concurrency.processes.TaskPool attribute)jZUtrB(j=X8logger (celery.concurrency.processes.TaskPool attribute)j UtrB(j=X5TaskPool.Pool (class in celery.concurrency.processes)j] UtrB(j=X=TaskPool.Pool.Process (class in celery.concurrency.processes)jUtrB(j=XFauthkey (celery.concurrency.processes.TaskPool.Pool.Process attribute)j UtrB(j=XEdaemon (celery.concurrency.processes.TaskPool.Pool.Process attribute)jUtrB(j=XGexitcode (celery.concurrency.processes.TaskPool.Pool.Process attribute)jUtrB(j=XDident (celery.concurrency.processes.TaskPool.Pool.Process attribute)j UtrB(j=XFis_alive() (celery.concurrency.processes.TaskPool.Pool.Process method)j UtrB(j=XBjoin() (celery.concurrency.processes.TaskPool.Pool.Process method)jj UtrB(j=XCname (celery.concurrency.processes.TaskPool.Pool.Process attribute)j UtrB(j=XBpid (celery.concurrency.processes.TaskPool.Pool.Process attribute)j9 UtrB(j=XArun() (celery.concurrency.processes.TaskPool.Pool.Process method)j UtrB(j=XCstart() (celery.concurrency.processes.TaskPool.Pool.Process method)jUtrB(j=XGterminate() (celery.concurrency.processes.TaskPool.Pool.Process method)j UtrB(j=XCTaskPool.Pool.ResultHandler (class in celery.concurrency.processes)jUtrB(j=XHbody() (celery.concurrency.processes.TaskPool.Pool.ResultHandler method)j UtrB(j=X#TaskPool.Pool.SoftTimeLimitExceededjI UtrB(j=X@TaskPool.Pool.Supervisor (class in celery.concurrency.processes)jw UtrB(j=XEbody() (celery.concurrency.processes.TaskPool.Pool.Supervisor method)j UtrB(j=XATaskPool.Pool.TaskHandler (class in celery.concurrency.processes)j/ UtrB(j=XFbody() (celery.concurrency.processes.TaskPool.Pool.TaskHandler method)j^ UtrB(j=XDTaskPool.Pool.TimeoutHandler (class in celery.concurrency.processes)j UtrB(j=XIbody() (celery.concurrency.processes.TaskPool.Pool.TimeoutHandler method)jUtrB(j=X;apply() (celery.concurrency.processes.TaskPool.Pool method)jFUtrB(j=XAapply_async() (celery.concurrency.processes.TaskPool.Pool method)j] UtrB(j=X;close() (celery.concurrency.processes.TaskPool.Pool method)jk UtrB(j=X:imap() (celery.concurrency.processes.TaskPool.Pool method)j< UtrB(j=XDimap_unordered() (celery.concurrency.processes.TaskPool.Pool method)j UtrB(j=X:join() (celery.concurrency.processes.TaskPool.Pool method)jW UtrB(j=X9map() (celery.concurrency.processes.TaskPool.Pool method)j^ UtrB(j=X?map_async() (celery.concurrency.processes.TaskPool.Pool method)j UtrB(j=X?terminate() (celery.concurrency.processes.TaskPool.Pool method)j4 UtrB(j=X<apply_async() (celery.concurrency.processes.TaskPool method)j> UtrB(j=X6info (celery.concurrency.processes.TaskPool attribute)jUtrB(j=X9on_ready() (celery.concurrency.processes.TaskPool method)j UtrB(j=X@on_worker_error() (celery.concurrency.processes.TaskPool method)jM UtrB(j=XDsafe_apply_callback() (celery.concurrency.processes.TaskPool method)j UtrB(j=X6start() (celery.concurrency.processes.TaskPool method)js UtrB(j=X5stop() (celery.concurrency.processes.TaskPool method)jbUtrB(j=X:terminate() (celery.concurrency.processes.TaskPool method)j8 UtrB(j=X3pingback() (in module celery.concurrency.processes)j UtrBej]j]rB((j=Xcelery.utils.patch (module)Xmodule-celery.utils.patchUtrB(j=X<ensure_process_aware_logger() (in module celery.utils.patch)j UtrBej]rB((j=Xcelery.routes (module)Xmodule-celery.routesUtrB(j=X!MapRoute (class in celery.routes)jUtrB(j=X0route_for_task() (celery.routes.MapRoute method)jUtrB(j=XRouter (class in celery.routes)j' UtrB(j=X)add_queue() (celery.routes.Router method)j UtrB(j=X2expand_destination() (celery.routes.Router method)jUtrB(j=X,lookup_route() (celery.routes.Router method)j UtrB(j=X%route() (celery.routes.Router method)j UtrB(j=X!merge() (in module celery.routes)j@ UtrB(j=X#prepare() (in module celery.routes)j& UtrBej]j]j]rB((j=Xcelery.apps.worker (module)Xmodule-celery.apps.workerUtrB(j=X$Worker (class in celery.apps.worker)j UtrB(j=X3Worker.WorkController (class in celery.apps.worker)jiUtrB(j=X@concurrency (celery.apps.worker.Worker.WorkController attribute)j UtrB(j=X=loglevel (celery.apps.worker.Worker.WorkController attribute)jRUtrB(j=X<logfile (celery.apps.worker.Worker.WorkController attribute)j UtrB(j=XGembed_clockservice (celery.apps.worker.Worker.WorkController attribute)j`UtrB(j=X@send_events (celery.apps.worker.Worker.WorkController attribute)j UtrB(j=X;logger (celery.apps.worker.Worker.WorkController attribute)j UtrB(j=X9pool (celery.apps.worker.Worker.WorkController attribute)j` UtrB(j=X@ready_queue (celery.apps.worker.Worker.WorkController attribute)j UtrB(j=XHschedule_controller (celery.apps.worker.Worker.WorkController attribute)jUtrB(j=X=mediator (celery.apps.worker.Worker.WorkController attribute)j UtrB(j=X=listener (celery.apps.worker.Worker.WorkController attribute)jN UtrB(j=X@concurrency (celery.apps.worker.Worker.WorkController attribute)X4celery.apps.worker.Worker.WorkController.concurrencyUtrB(j=X<logfile (celery.apps.worker.Worker.WorkController attribute)X0celery.apps.worker.Worker.WorkController.logfileUtrB(j=X=loglevel (celery.apps.worker.Worker.WorkController attribute)X1celery.apps.worker.Worker.WorkController.loglevelUtrB(j=XBon_timer_error() (celery.apps.worker.Worker.WorkController method)jc UtrB(j=XAon_timer_tick() (celery.apps.worker.Worker.WorkController method)j UtrB(j=X@process_task() (celery.apps.worker.Worker.WorkController method)j UtrB(j=X9start() (celery.apps.worker.Worker.WorkController method)j UtrB(j=X8stop() (celery.apps.worker.Worker.WorkController method)jUtrC(j=X=terminate() (celery.apps.worker.Worker.WorkController method)jUtrC(j=X(die() (celery.apps.worker.Worker method)j UtrC(j=X0init_loader() (celery.apps.worker.Worker method)j<UtrC(j=X0init_queues() (celery.apps.worker.Worker method)j( UtrC(j=X<install_platform_tweaks() (celery.apps.worker.Worker method)j UtrC(j=X6on_listener_ready() (celery.apps.worker.Worker method)j UtrC(j=XCosx_proxy_detection_workaround() (celery.apps.worker.Worker method)j# UtrC(j=X3purge_messages() (celery.apps.worker.Worker method)j UtrC(j=X?redirect_stdouts_to_logger() (celery.apps.worker.Worker method)jE Utr C(j=X(run() (celery.apps.worker.Worker method)j& Utr C(j=X/run_worker() (celery.apps.worker.Worker method)j_ Utr C(j=X7set_process_status() (celery.apps.worker.Worker method)jUtr C(j=X1startup_info() (celery.apps.worker.Worker method)jUtr C(j=X-tasklist() (celery.apps.worker.Worker method)jUtrC(j=X0worker_init() (celery.apps.worker.Worker method)j[UtrC(j=XBinstall_HUP_not_supported_handler() (in module celery.apps.worker)j4 UtrC(j=XAinstall_worker_int_again_handler() (in module celery.apps.worker)jUtrC(j=X;install_worker_int_handler() (in module celery.apps.worker)j( UtrC(j=X?install_worker_restart_handler() (in module celery.apps.worker)j UtrC(j=X<install_worker_term_handler() (in module celery.apps.worker)jUtrC(j=X+run_worker() (in module celery.apps.worker)j UtrCej]rC((j=Xcelery.task (module)Xmodule-celery.taskUtrC(j=XTask (class in celery.task)jK UtrC(j=X!name (celery.task.Task attribute)j UtrC(j=X%abstract (celery.task.Task attribute)j UtrC(j=X!type (celery.task.Task attribute)j UtrC(j=X"queue (celery.task.Task attribute)jUtrC(j=X(routing_key (celery.task.Task attribute)jUtrC(j=X%exchange (celery.task.Task attribute)jUtrC(j=X*exchange_type (celery.task.Task attribute)jUtrC(j=X*delivery_mode (celery.task.Task attribute)jUtr C(j=X&mandatory (celery.task.Task attribute)j@Utr!C(j=X(max_retries (celery.task.Task attribute)j Utr"C(j=X0default_retry_delay (celery.task.Task attribute)j Utr#C(j=X'rate_limit (celery.task.Task attribute)jUtr$C(j=X*ignore_result (celery.task.Task attribute)j Utr%C(j=X9store_errors_even_if_ignored (celery.task.Task attribute)j Utr&C(j=X.send_error_emails (celery.task.Task attribute)j Utr'C(j=X,error_whitelist (celery.task.Task attribute)j Utr(C(j=X'serializer (celery.task.Task attribute)jO Utr)C(j=X$backend (celery.task.Task attribute)j Utr*C(j=X)autoregister (celery.task.Task attribute)j| Utr+C(j=X*track_started (celery.task.Task attribute)j Utr,C(j=X&acks_late (celery.task.Task attribute)jP Utr-C(j=X$expires (celery.task.Task attribute)j Utr.C(j=X-AsyncResult() (celery.task.Task class method)j Utr/C(j=XTask.MaxRetriesExceededErrorj Utr0C(j=X&acks_late (celery.task.Task attribute)Xcelery.task.Task.acks_lateUtr1C(j=X(after_return() (celery.task.Task method)jUtr2C(j=X'apply() (celery.task.Task class method)j Utr3C(j=X-apply_async() (celery.task.Task class method)j? Utr4C(j=X)autoregister (celery.task.Task attribute)Xcelery.task.Task.autoregisterUtr5C(j=X$backend (celery.task.Task attribute)Xcelery.task.Task.backendUtr6C(j=X0default_retry_delay (celery.task.Task attribute)X$celery.task.Task.default_retry_delayUtr7C(j=X'delay() (celery.task.Task class method)j Utr8C(j=X*delivery_mode (celery.task.Task attribute)Xcelery.task.Task.delivery_modeUtr9C(j=X1disable_error_emails (celery.task.Task attribute)jUtr:C(j=X,error_whitelist (celery.task.Task attribute)X celery.task.Task.error_whitelistUtr;C(j=X6establish_connection() (celery.task.Task class method)j UtrC(j=X#execute() (celery.task.Task method)j Utr?C(j=X$expires (celery.task.Task attribute)Xcelery.task.Task.expiresUtr@C(j=X.get_consumer() (celery.task.Task class method)j2 UtrAC(j=X,get_logger() (celery.task.Task class method)j9 UtrBC(j=X/get_publisher() (celery.task.Task class method)j UtrCC(j=X*ignore_result (celery.task.Task attribute)Xcelery.task.Task.ignore_resultUtrDC(j=X&immediate (celery.task.Task attribute)jUtrEC(j=X&mandatory (celery.task.Task attribute)Xcelery.task.Task.mandatoryUtrFC(j=X(max_retries (celery.task.Task attribute)Xcelery.task.Task.max_retriesUtrGC(j=X!name (celery.task.Task attribute)Xcelery.task.Task.nameUtrHC(j=X&on_failure() (celery.task.Task method)j+ UtrIC(j=X$on_retry() (celery.task.Task method)j; UtrJC(j=X&on_success() (celery.task.Task method)j UtrKC(j=X%priority (celery.task.Task attribute)j UtrLC(j=X"queue (celery.task.Task attribute)Xcelery.task.Task.queueUtrMC(j=X'rate_limit (celery.task.Task attribute)Xcelery.task.Task.rate_limitUtrNC(j=X'retry() (celery.task.Task class method)jG UtrOC(j=X(routing_key (celery.task.Task attribute)Xcelery.task.Task.routing_keyUtrPC(j=Xrun() (celery.task.Task method)j UtrQC(j=X.send_error_emails (celery.task.Task attribute)X"celery.task.Task.send_error_emailsUtrRC(j=X'serializer (celery.task.Task attribute)Xcelery.task.Task.serializerUtrSC(j=X9store_errors_even_if_ignored (celery.task.Task attribute)X-celery.task.Task.store_errors_even_if_ignoredUtrTC(j=X)subtask() (celery.task.Task class method)jk UtrUC(j=X*track_started (celery.task.Task attribute)Xcelery.task.Task.track_startedUtrVC(j=X!type (celery.task.Task attribute)Xcelery.task.Task.typeUtrWC(j=X(update_state() (celery.task.Task method)jS UtrXC(j=XTaskSet (class in celery.task)jF UtrYC(j=X%total (celery.task.TaskSet attribute)j UtrZC(j=X)Publisher (celery.task.TaskSet attribute)j Utr[C(j=X$apply() (celery.task.TaskSet method)j}Utr\C(j=X*apply_async() (celery.task.TaskSet method)jUtr]C(j=X$task (celery.task.TaskSet attribute)j Utr^C(j=X)task_name (celery.task.TaskSet attribute)jUtr_C(j=X%tasks (celery.task.TaskSet attribute)j Utr`C(j=X#PeriodicTask (class in celery.task)jg UtraC(j=X.run_every (celery.task.PeriodicTask attribute)jy UtrbC(j=X-relative (celery.task.PeriodicTask attribute)jUtrcC(j=X2ignore_result (celery.task.PeriodicTask attribute)jb UtrdC(j=X*is_due() (celery.task.PeriodicTask method)j8 UtreC(j=X-relative (celery.task.PeriodicTask attribute)X!celery.task.PeriodicTask.relativeUtrfC(j=X6remaining_estimate() (celery.task.PeriodicTask method)jm UtrgC(j=X5timedelta_seconds() (celery.task.PeriodicTask method)j UtrhC(j=X)type (celery.task.PeriodicTask attribute)j UtriC(j=X%discard_all() (in module celery.task)j UtrjC(j=Xdmap() (in module celery.task)j UtrkC(j=X$dmap_async() (in module celery.task)j UtrlC(j=X(execute_remote() (in module celery.task)j' UtrmC(j=Xping() (in module celery.task)j UtrnC(j=X'HttpDispatchTask (class in celery.task)j UtroC(j=X,url (celery.task.HttpDispatchTask attribute)jUtrpC(j=X/method (celery.task.HttpDispatchTask attribute)jUtrqC(j=X/method (celery.task.HttpDispatchTask attribute)X#celery.task.HttpDispatchTask.methodUtrrC(j=X-name (celery.task.HttpDispatchTask attribute)j= UtrsC(j=X+run() (celery.task.HttpDispatchTask method)jUtrtC(j=X,url (celery.task.HttpDispatchTask attribute)X celery.task.HttpDispatchTask.urlUtruCej]rvC(j=Xcelery.utils.dispatch (module)Xmodule-celery.utils.dispatchUtrwCaj ]rxC((j=Xcelery.backends.cache (module)Xmodule-celery.backends.cacheUtryC(j=X-CacheBackend (class in celery.backends.cache)jUtrzC(j=X5client (celery.backends.cache.CacheBackend attribute)j Utr{C(j=X4delete() (celery.backends.cache.CacheBackend method)j Utr|C(j=X1get() (celery.backends.cache.CacheBackend method)j8Utr}C(j=X1set() (celery.backends.cache.CacheBackend method)j Utr~C(j=X,DummyClient (class in celery.backends.cache)j UtrC(j=X3delete() (celery.backends.cache.DummyClient method)jL UtrC(j=X0get() (celery.backends.cache.DummyClient method)j[ UtrC(j=X0set() (celery.backends.cache.DummyClient method)j UtrC(j=X5get_best_memcache() (in module celery.backends.cache)j UtrCej)]rC((j=Xcelery.registry (module)Xmodule-celery.registryUtrC(j=X'TaskRegistry (class in celery.registry)j9 UtrC(j=XTaskRegistry.NotRegisteredj UtrC(j=X4filter_types() (celery.registry.TaskRegistry method)jh UtrC(j=X0periodic() (celery.registry.TaskRegistry method)j UtrC(j=X+pop() (celery.registry.TaskRegistry method)jUtrC(j=X0register() (celery.registry.TaskRegistry method)j UtrC(j=X/regular() (celery.registry.TaskRegistry method)jr UtrC(j=X2unregister() (celery.registry.TaskRegistry method)j UtrCej2]rC((j=Xcelery.apps.beat (module)Xmodule-celery.apps.beatUtrC(j=X Beat (class in celery.apps.beat)jUtrC(j=X(Beat.Service (class in celery.apps.beat)jL UtrC(j=X6get_scheduler() (celery.apps.beat.Beat.Service method)jUtrC(j=X3scheduler (celery.apps.beat.Beat.Service attribute)jBUtrC(j=X7scheduler_cls (celery.apps.beat.Beat.Service attribute)j UtrC(j=X.start() (celery.apps.beat.Beat.Service method)jf UtrC(j=X-stop() (celery.apps.beat.Beat.Service method)j UtrC(j=X-sync() (celery.apps.beat.Beat.Service method)j4 UtrC(j=X,init_loader() (celery.apps.beat.Beat method)jZ UtrC(j=X5install_sync_handler() (celery.apps.beat.Beat method)j* UtrC(j=X$run() (celery.apps.beat.Beat method)j UtrC(j=X2set_process_title() (celery.apps.beat.Beat method)j UtrC(j=X.setup_logging() (celery.apps.beat.Beat method)j-UtrC(j=X0start_scheduler() (celery.apps.beat.Beat method)jUtrC(j=X-startup_info() (celery.apps.beat.Beat method)jUtrC(j=X-run_celerybeat() (in module celery.apps.beat)j) UtrCej;]rC((j=Xcelery.worker.control (module)Xmodule-celery.worker.controlUtrC(j=X0ControlDispatch (class in celery.worker.control)jU UtrC(j=X6ControlDispatch.Panel (class in celery.worker.control)jUtrC(j=X<data (celery.worker.control.ControlDispatch.Panel attribute)jUtrC(j=XEregister() (celery.worker.control.ControlDispatch.Panel class method)j UtrC(j=X@ReplyPublisher (celery.worker.control.ControlDispatch attribute)j= UtrC(j=XFdispatch_from_message() (celery.worker.control.ControlDispatch method)jp UtrC(j=X8execute() (celery.worker.control.ControlDispatch method)j UtrC(j=X6reply() (celery.worker.control.ControlDispatch method)jU UtrCejD]jM]rC((j=X!celery.backends.database (module)Xmodule-celery.backends.databaseUtrC(j=X3DatabaseBackend (class in celery.backends.database)jZ UtrC(j=XAResultSession() (celery.backends.database.DatabaseBackend method)jB UtrC(j=X;cleanup() (celery.backends.database.DatabaseBackend method)j UtrCejV]j_]rC((j=Xcelery.backends.amqp (module)Xmodule-celery.backends.amqpUtrC(j=X+AMQPBackend (class in celery.backends.amqp)jo UtrC(j=X1close() (celery.backends.amqp.AMQPBackend method)j UtrC(j=X7connection (celery.backends.amqp.AMQPBackend attribute)j UtrC(j=X3consume() (celery.backends.amqp.AMQPBackend method)ju UtrC(j=X9get_task_meta() (celery.backends.amqp.AMQPBackend method)j7 UtrC(j=X0poll() (celery.backends.amqp.AMQPBackend method)j UtrC(j=X>reload_task_result() (celery.backends.amqp.AMQPBackend method)jUtrC(j=XAreload_taskset_result() (celery.backends.amqp.AMQPBackend method)j UtrC(j=X;restore_taskset() (celery.backends.amqp.AMQPBackend method)jUtrC(j=X8save_taskset() (celery.backends.amqp.AMQPBackend method)j UtrC(j=X8store_result() (celery.backends.amqp.AMQPBackend method)j UtrC(j=X4wait_for() (celery.backends.amqp.AMQPBackend method)jzUtrC(j=XAMQResultWarningjUtrC(j=X.ResultConsumer (class in celery.backends.amqp)j UtrC(j=X;auto_delete (celery.backends.amqp.ResultConsumer attribute)j UtrC(j=X7durable (celery.backends.amqp.ResultConsumer attribute)j UtrC(j=X8exchange (celery.backends.amqp.ResultConsumer attribute)jj UtrC(j=X=exchange_type (celery.backends.amqp.ResultConsumer attribute)jW UtrC(j=X6no_ack (celery.backends.amqp.ResultConsumer attribute)j UtrC(j=X/ResultPublisher (class in celery.backends.amqp)jA UtrC(j=X<auto_delete (celery.backends.amqp.ResultPublisher attribute)jm UtrC(j=X>delivery_mode (celery.backends.amqp.ResultPublisher attribute)jjUtrC(j=X8durable (celery.backends.amqp.ResultPublisher attribute)j UtrC(j=X9exchange (celery.backends.amqp.ResultPublisher attribute)j UtrC(j=X>exchange_type (celery.backends.amqp.ResultPublisher attribute)jH UtrC(j=X;serializer (celery.backends.amqp.ResultPublisher attribute)jUtrCejh]rC((j=X"celery.backends.cassandra (module)X module-celery.backends.cassandraUtrC(j=X5CassandraBackend (class in celery.backends.cassandra)j UtrC(j=X>servers (celery.backends.cassandra.CassandraBackend attribute)j UtrC(j=X=cleanup() (celery.backends.cassandra.CassandraBackend method)j UtrC(j=XDcolumn_family (celery.backends.cassandra.CassandraBackend attribute)jh UtrC(j=X8i (celery.backends.cassandra.CassandraBackend attribute)j1 UtrC(j=X?keyspace (celery.backends.cassandra.CassandraBackend attribute)j0 UtrC(j=XEprocess_cleanup() (celery.backends.cassandra.CassandraBackend method)j UtrC(j=X>servers (celery.backends.cassandra.CassandraBackend attribute)X2celery.backends.cassandra.CassandraBackend.serversUtrCejq]jz]rC((j=Xcelery.backends.tyrant (module)Xmodule-celery.backends.tyrantUtrC(j=X/TyrantBackend (class in celery.backends.tyrant)j' UtrC(j=X<tyrant_host (celery.backends.tyrant.TyrantBackend attribute)jUtrC(j=X<tyrant_port (celery.backends.tyrant.TyrantBackend attribute)j, UtrC(j=X5close() (celery.backends.tyrant.TyrantBackend method)j UtrC(j=X6delete() (celery.backends.tyrant.TyrantBackend method)jUtrC(j=X3get() (celery.backends.tyrant.TyrantBackend method)j UtrC(j=X4open() (celery.backends.tyrant.TyrantBackend method)j UtrC(j=X?process_cleanup() (celery.backends.tyrant.TyrantBackend method)j UtrC(j=X3set() (celery.backends.tyrant.TyrantBackend method)j` UtrC(j=X<tyrant_host (celery.backends.tyrant.TyrantBackend attribute)X0celery.backends.tyrant.TyrantBackend.tyrant_hostUtrC(j=X<tyrant_port (celery.backends.tyrant.TyrantBackend attribute)X0celery.backends.tyrant.TyrantBackend.tyrant_portUtrCej]j]rC((j=Xcelery.worker.state (module)Xmodule-celery.worker.stateUtrC(j=X)Persistent (class in celery.worker.state)jUtrC(j=X/close() (celery.worker.state.Persistent method)j UtrC(j=X-db (celery.worker.state.Persistent attribute)j UtrC(j=X/merge() (celery.worker.state.Persistent method)j/ UtrC(j=X.open() (celery.worker.state.Persistent method)j UtrC(j=X.save() (celery.worker.state.Persistent method)j UtrC(j=X2storage (celery.worker.state.Persistent attribute)j UtrC(j=X.sync() (celery.worker.state.Persistent method)j? UtrC(j=X.REVOKE_EXPIRES (in module celery.worker.state)jUtrC(j=X/active_requests (in module celery.worker.state)j UtrC(j=X+total_count (in module celery.worker.state)jf UtrC(j=X'revoked (in module celery.worker.state)j UtrC(j=X/task_accepted() (in module celery.worker.state)jUtrC(j=X,task_ready() (in module celery.worker.state)j UtrCej]rC((j=X'celery.worker.control.registry (module)X%module-celery.worker.control.registryUtrC(j=X/Panel (class in celery.worker.control.registry)jUtrC(j=X5data (celery.worker.control.registry.Panel attribute)j UtrC(j=X>register() (celery.worker.control.registry.Panel class method)jx UtrCej]j]rC((j=Xcelery.backends.base (module)Xmodule-celery.backends.baseUtrC(j=X+BaseBackend (class in celery.backends.base)jUtrC(j=X=EXCEPTION_STATES (celery.backends.base.BaseBackend attribute)jUtrC(j=X9READY_STATES (celery.backends.base.BaseBackend attribute)jUtrC(j=XBaseBackend.TimeoutErrorj UtrC(j=X;UNREADY_STATES (celery.backends.base.BaseBackend attribute)j> UtrC(j=X3cleanup() (celery.backends.base.BaseBackend method)jR UtrC(j=X9encode_result() (celery.backends.base.BaseBackend method)jUtrC(j=X?exception_to_python() (celery.backends.base.BaseBackend method)jUtrD(j=X2forget() (celery.backends.base.BaseBackend method)j UtrD(j=X6get_result() (celery.backends.base.BaseBackend method)j UtrD(j=X6get_status() (celery.backends.base.BaseBackend method)j UtrD(j=X9get_traceback() (celery.backends.base.BaseBackend method)jW UtrD(j=X8mark_as_done() (celery.backends.base.BaseBackend method)j UtrD(j=X;mark_as_failure() (celery.backends.base.BaseBackend method)j UtrD(j=X9mark_as_retry() (celery.backends.base.BaseBackend method)jV UtrD(j=X;mark_as_revoked() (celery.backends.base.BaseBackend method)j< UtrD(j=X;mark_as_started() (celery.backends.base.BaseBackend method)j Utr D(j=X=prepare_exception() (celery.backends.base.BaseBackend method)j Utr D(j=X9prepare_value() (celery.backends.base.BaseBackend method)jUtr D(j=X;process_cleanup() (celery.backends.base.BaseBackend method)jUtr D(j=X>reload_task_result() (celery.backends.base.BaseBackend method)j Utr D(j=XAreload_taskset_result() (celery.backends.base.BaseBackend method)j0 UtrD(j=X;restore_taskset() (celery.backends.base.BaseBackend method)j UtrD(j=X8save_taskset() (celery.backends.base.BaseBackend method)jUtrD(j=X8store_result() (celery.backends.base.BaseBackend method)j UtrD(j=X4wait_for() (celery.backends.base.BaseBackend method)js UtrD(j=X/BaseDictBackend (class in celery.backends.base)j UtrD(j=X6forget() (celery.backends.base.BaseDictBackend method)j UtrD(j=X:get_result() (celery.backends.base.BaseDictBackend method)jL UtrD(j=X:get_status() (celery.backends.base.BaseDictBackend method)j UtrD(j=X=get_task_meta() (celery.backends.base.BaseDictBackend method)j UtrD(j=X@get_taskset_meta() (celery.backends.base.BaseDictBackend method)jUtrD(j=X=get_traceback() (celery.backends.base.BaseDictBackend method)j UtrD(j=XBreload_task_result() (celery.backends.base.BaseDictBackend method)j UtrD(j=XEreload_taskset_result() (celery.backends.base.BaseDictBackend method)jp UtrD(j=X?restore_taskset() (celery.backends.base.BaseDictBackend method)jgUtrD(j=X<save_taskset() (celery.backends.base.BaseDictBackend method)jJ UtrD(j=X<store_result() (celery.backends.base.BaseDictBackend method)jEUtrD(j=X4KeyValueStoreBackend (class in celery.backends.base)j UtrD(j=X;delete() (celery.backends.base.KeyValueStoreBackend method)j Utr D(j=X8get() (celery.backends.base.KeyValueStoreBackend method)j Utr!D(j=XEget_key_for_task() (celery.backends.base.KeyValueStoreBackend method)js Utr"D(j=XHget_key_for_taskset() (celery.backends.base.KeyValueStoreBackend method)j Utr#D(j=X8set() (celery.backends.base.KeyValueStoreBackend method)j Utr$Dej]r%D((j=Xcelery.beat (module)Xmodule-celery.beatUtr&D(j=X)EmbeddedService() (in module celery.beat)j[ Utr'D(j=X*PersistentScheduler (class in celery.beat)jUtr(D(j=X0close() (celery.beat.PersistentScheduler method)j Utr)D(j=X0info (celery.beat.PersistentScheduler attribute)jUtr*D(j=X7persistence (celery.beat.PersistentScheduler attribute)jUtr+D(j=X9setup_schedule() (celery.beat.PersistentScheduler method)j Utr,D(j=X/sync() (celery.beat.PersistentScheduler method)jw Utr-D(j=X$ScheduleEntry (class in celery.beat)j Utr.D(j=X*name (celery.beat.ScheduleEntry attribute)j Utr/D(j=X.schedule (celery.beat.ScheduleEntry attribute)j Utr0D(j=X*args (celery.beat.ScheduleEntry attribute)j7 Utr1D(j=X,kwargs (celery.beat.ScheduleEntry attribute)j Utr2D(j=X1last_run_at (celery.beat.ScheduleEntry attribute)jUtr3D(j=X5total_run_count (celery.beat.ScheduleEntry attribute)j Utr4D(j=X+is_due() (celery.beat.ScheduleEntry method)j Utr5D(j=X)next() (celery.beat.ScheduleEntry method)j Utr6D(j=X+update() (celery.beat.ScheduleEntry method)j\ Utr7D(j=X Scheduler (class in celery.beat)j Utr8D(j=X*schedule (celery.beat.Scheduler attribute)j_Utr9D(j=X(logger (celery.beat.Scheduler attribute)j Utr:D(j=X.max_interval (celery.beat.Scheduler attribute)j Utr;D(j=X'Entry (celery.beat.Scheduler attribute)jk UtrD(j=X,apply_async() (celery.beat.Scheduler method)jUtr?D(j=X&close() (celery.beat.Scheduler method)jUtr@D(j=X-get_schedule() (celery.beat.Scheduler method)jUtrAD(j=X&info (celery.beat.Scheduler attribute)j UtrBD(j=X*maybe_due() (celery.beat.Scheduler method)jR UtrCD(j=X.merge_inplace() (celery.beat.Scheduler method)jX UtrDD(j=X(reserve() (celery.beat.Scheduler method)jc UtrED(j=X*schedule (celery.beat.Scheduler attribute)Xcelery.beat.Scheduler.scheduleUtrFD(j=X*send_task() (celery.beat.Scheduler method)jUtrGD(j=X/setup_schedule() (celery.beat.Scheduler method)jG UtrHD(j=X%sync() (celery.beat.Scheduler method)j UtrID(j=X%tick() (celery.beat.Scheduler method)jUtrJD(j=X1update_from_dict() (celery.beat.Scheduler method)j~ UtrKD(j=XSchedulingErrorj UtrLD(j=XService (class in celery.beat)j; UtrMD(j=X,get_scheduler() (celery.beat.Service method)j/ UtrND(j=X)scheduler (celery.beat.Service attribute)j UtrOD(j=X-scheduler_cls (celery.beat.Service attribute)jt UtrPD(j=X$start() (celery.beat.Service method)j UtrQD(j=X#stop() (celery.beat.Service method)jq UtrRD(j=X#sync() (celery.beat.Service method)j UtrSDej]rTD((j=Xcelery.bin.base (module)Xmodule-celery.bin.baseUtrUD(j=X"Command (class in celery.bin.base)j UtrVD(j=X*Parser (celery.bin.base.Command attribute)j UtrWD(j=X(args (celery.bin.base.Command attribute)jl UtrXD(j=X0create_parser() (celery.bin.base.Command method)jUtrYD(j=X;execute_from_commandline() (celery.bin.base.Command method)j UtrZD(j=X.get_options() (celery.bin.base.Command method)jR Utr[D(j=X/option_list (celery.bin.base.Command attribute)jUtr\D(j=X0parse_options() (celery.bin.base.Command method)jUtr]D(j=X&run() (celery.bin.base.Command method)j Utr^D(j=X(usage() (celery.bin.base.Command method)jz Utr_D(j=X+version (celery.bin.base.Command attribute)j Utr`Dej]raD((j=X#celery.concurrency.threads (module)X!module-celery.concurrency.threadsUtrbD(j=X.TaskPool (class in celery.concurrency.threads)j UtrcD(j=X:apply_async() (celery.concurrency.threads.TaskPool method)jUtrdD(j=X7on_ready() (celery.concurrency.threads.TaskPool method)jUtreD(j=X4start() (celery.concurrency.threads.TaskPool method)jUtrfD(j=X3stop() (celery.concurrency.threads.TaskPool method)j UtrgD(j=X0do_work() (in module celery.concurrency.threads)j UtrhDej]riD((j=X celery.backends.mongodb (module)Xmodule-celery.backends.mongodbUtrjD(j=X(Bunch (class in celery.backends.mongodb)j UtrkD(j=X/MongoBackend (class in celery.backends.mongodb)j UtrlD(j=X7cleanup() (celery.backends.mongodb.MongoBackend method)jW UtrmD(j=XAmongodb_database (celery.backends.mongodb.MongoBackend attribute)j UtrnD(j=X=mongodb_host (celery.backends.mongodb.MongoBackend attribute)j" UtroD(j=XAmongodb_password (celery.backends.mongodb.MongoBackend attribute)jT UtrpD(j=X=mongodb_port (celery.backends.mongodb.MongoBackend attribute)jQUtrqD(j=XLmongodb_taskmeta_collection (celery.backends.mongodb.MongoBackend attribute)jUtrrD(j=X=mongodb_user (celery.backends.mongodb.MongoBackend attribute)j UtrsD(j=X?process_cleanup() (celery.backends.mongodb.MongoBackend method)j UtrtDej]j]ruD((j=Xcelery.bin.celeryctl (module)Xmodule-celery.bin.celeryctlUtrvD(j=X'Command (class in celery.bin.celeryctl)j] UtrwD(j=X-args (celery.bin.celeryctl.Command attribute)j9 UtrxD(j=X5create_parser() (celery.bin.celeryctl.Command method)j UtryD(j=X-error() (celery.bin.celeryctl.Command method)j UtrzD(j=X-help (celery.bin.celeryctl.Command attribute)jUtr{D(j=X4option_list (celery.bin.celeryctl.Command attribute)jGUtr|D(j=X+out() (celery.bin.celeryctl.Command method)j Utr}D(j=X0prettify() (celery.bin.celeryctl.Command method)j Utr~D(j=X>prettify_dict_ok_error() (celery.bin.celeryctl.Command method)j UtrD(j=X5prettify_list() (celery.bin.celeryctl.Command method)j UtrD(j=X+run() (celery.bin.celeryctl.Command method)j UtrD(j=X5run_from_argv() (celery.bin.celeryctl.Command method)j UtrD(j=X-usage() (celery.bin.celeryctl.Command method)js UtrD(j=X0version (celery.bin.celeryctl.Command attribute)j UtrD(j=XErrorj UtrD(j=X%apply (class in celery.bin.celeryctl)j UtrD(j=X+args (celery.bin.celeryctl.apply attribute)j UtrD(j=X2option_list (celery.bin.celeryctl.apply attribute)j UtrD(j=X)run() (celery.bin.celeryctl.apply method)jW UtrD(j=X)celeryctl (class in celery.bin.celeryctl)jK UtrD(j=X3commands (celery.bin.celeryctl.celeryctl attribute)j UtrD(j=X1execute() (celery.bin.celeryctl.celeryctl method)j UtrD(j=XBexecute_from_commandline() (celery.bin.celeryctl.celeryctl method)j UtrD(j=X*command() (in module celery.bin.celeryctl)jP UtrD(j=X$help (class in celery.bin.celeryctl)j5 UtrD(j=X(run() (celery.bin.celeryctl.help method)j UtrD(j=X*usage() (celery.bin.celeryctl.help method)jD UtrD(j=X)indent() (in module celery.bin.celeryctl)j UtrD(j=X'inspect (class in celery.bin.celeryctl)j5 UtrD(j=X0choices (celery.bin.celeryctl.inspect attribute)jyUtrD(j=X4option_list (celery.bin.celeryctl.inspect attribute)jh UtrD(j=X+run() (celery.bin.celeryctl.inspect method)j5UtrD(j=X+say() (celery.bin.celeryctl.inspect method)j UtrD(j=X-usage() (celery.bin.celeryctl.inspect method)j UtrD(j=X'main() (in module celery.bin.celeryctl)j UtrD(j=X&result (class in celery.bin.celeryctl)j UtrD(j=X,args (celery.bin.celeryctl.result attribute)j UtrD(j=X3option_list (celery.bin.celeryctl.result attribute)jUtrD(j=X*run() (celery.bin.celeryctl.result method)j;UtrD(j=X&status (class in celery.bin.celeryctl)j^ UtrD(j=X3option_list (celery.bin.celeryctl.status attribute)j UtrD(j=X*run() (celery.bin.celeryctl.status method)j UtrDej]rD((j=Xcelery.utils (module)Xmodule-celery.utilsUtrD(j=Xabbr() (in module celery.utils)j UtrD(j=X#abbrtask() (in module celery.utils)j2 UtrD(j=X!chunks() (in module celery.utils)j UtrD(j=X first() (in module celery.utils)jc UtrD(j=X&firstmethod() (in module celery.utils)j UtrD(j=X+fun_takes_kwargs() (in module celery.utils)j UtrD(j=X(gen_unique_id() (in module celery.utils)jUtrD(j=X*get_cls_by_name() (in module celery.utils)j UtrD(j=X,get_full_cls_name() (in module celery.utils)j UtrD(j=X&instantiate() (in module celery.utils)jaUtrD(j=X&is_iterable() (in module celery.utils)jUtrD(j=X!kwdict() (in module celery.utils)j UtrD(j=X&mattrgetter() (in module celery.utils)ja UtrD(j=X(maybe_iso8601() (in module celery.utils)j UtrD(j=X(maybe_promise() (in module celery.utils)jm UtrD(j=X&mitemgetter() (in module celery.utils)j UtrD(j=X mpromise (class in celery.utils)jS UtrD(j=X+evaluated (celery.utils.mpromise attribute)jUtrD(j=X)evaluate() (celery.utils.mpromise method)j UtrD(j=X+evaluated (celery.utils.mpromise attribute)Xcelery.utils.mpromise.evaluatedUtrD(j=Xnoop() (in module celery.utils)j! UtrD(j=X"padlist() (in module celery.utils)jUtrD(j=Xpromise (class in celery.utils)jN UtrD(j=X(evaluate() (celery.utils.promise method)jx UtrD(j=X%repeatlast() (in module celery.utils)j UtrD(j=X*retry_over_time() (in module celery.utils)j UtrD(j=X(truncate_text() (in module celery.utils)jUtrDej]rD((j=X celery.worker.heartbeat (module)Xmodule-celery.worker.heartbeatUtrD(j=X(Heart (class in celery.worker.heartbeat)jO UtrD(j=X-bpm (celery.worker.heartbeat.Heart attribute)jV UtrD(j=X-bpm (celery.worker.heartbeat.Heart attribute)X!celery.worker.heartbeat.Heart.bpmUtrD(j=X,run() (celery.worker.heartbeat.Heart method)j UtrD(j=X-stop() (celery.worker.heartbeat.Heart method)j UtrDej]j]rD((j=Xcelery.loaders (module)Xmodule-celery.loadersUtrD(j=X+current_loader() (in module celery.loaders)jO UtrD(j=X+get_loader_cls() (in module celery.loaders)j UtrD(j=X*load_settings() (in module celery.loaders)j UtrD(j=X)setup_loader() (in module celery.loaders)j UtrDej]rD((j=Xcelery.bin.camqadm (module)Xmodule-celery.bin.camqadmUtrD(j=X'AMQPAdmin (class in celery.bin.camqadm)jD UtrD(j=X/connect() (celery.bin.camqadm.AMQPAdmin method)j UtrD(j=X+run() (celery.bin.camqadm.AMQPAdmin method)j UtrD(j=X+say() (celery.bin.camqadm.AMQPAdmin method)jz UtrD(j=X&AMQShell (class in celery.bin.camqadm)j UtrD(j=X,amqp (celery.bin.camqadm.AMQShell attribute)jvUtrD(j=X,amqp (celery.bin.camqadm.AMQShell attribute)X celery.bin.camqadm.AMQShell.amqpUtrD(j=X0builtins (celery.bin.camqadm.AMQShell attribute)j UtrD(j=X,chan (celery.bin.camqadm.AMQShell attribute)j UtrD(j=X4completenames() (celery.bin.camqadm.AMQShell method)j UtrD(j=X,conn (celery.bin.camqadm.AMQShell attribute)jfUtrD(j=X/counter (celery.bin.camqadm.AMQShell attribute)jUtrD(j=X.default() (celery.bin.camqadm.AMQShell method)j# UtrD(j=X/dispatch() (celery.bin.camqadm.AMQShell method)j UtrD(j=X;display_command_help() (celery.bin.camqadm.AMQShell method)jUtrD(j=X.do_exit() (celery.bin.camqadm.AMQShell method)jx UtrD(j=X.do_help() (celery.bin.camqadm.AMQShell method)joUtrD(j=X;get_amqp_api_command() (celery.bin.camqadm.AMQShell method)jo UtrD(j=X0get_names() (celery.bin.camqadm.AMQShell method)j UtrD(j=X2identchars (celery.bin.camqadm.AMQShell attribute)j UtrD(j=X3inc_counter (celery.bin.camqadm.AMQShell attribute)j UtrD(j=X7needs_reconnect (celery.bin.camqadm.AMQShell attribute)j UtrD(j=X-onecmd() (celery.bin.camqadm.AMQShell method)j UtrD(j=X0parseline() (celery.bin.camqadm.AMQShell method)jG UtrD(j=X.prompt (celery.bin.camqadm.AMQShell attribute)j UtrD(j=X2prompt_fmt (celery.bin.camqadm.AMQShell attribute)j UtrD(j=X.respond() (celery.bin.camqadm.AMQShell method)j` UtrD(j=X*say() (celery.bin.camqadm.AMQShell method)j UtrD(j=X"Spec (class in celery.bin.camqadm)j UtrD(j=X)coerce() (celery.bin.camqadm.Spec method)jUtrD(j=X-format_arg() (celery.bin.camqadm.Spec method)j UtrD(j=X2format_response() (celery.bin.camqadm.Spec method)j UtrD(j=X3format_signature() (celery.bin.camqadm.Spec method)j9 UtrD(j=X5str_args_to_python() (celery.bin.camqadm.Spec method)jR UtrD(j=X(camqadm() (in module celery.bin.camqadm)jWUtrD(j=X-dump_message() (in module celery.bin.camqadm)jUtrD(j=X5format_declare_queue() (in module celery.bin.camqadm)jIUtrD(j=X%main() (in module celery.bin.camqadm)j UtrD(j=X.parse_options() (in module celery.bin.camqadm)j UtrD(j=X$say() (in module celery.bin.camqadm)j@ UtrDej!]rD((j=Xcelery.schedules (module)Xmodule-celery.schedulesUtrD(j=X#crontab (class in celery.schedules)j UtrD(j=X+minute (celery.schedules.crontab attribute)j UtrD(j=X)hour (celery.schedules.crontab attribute)jTUtrD(j=X0day_of_week (celery.schedules.crontab attribute)jUtrD(j=X*is_due() (celery.schedules.crontab method)j UtrD(j=X6remaining_estimate() (celery.schedules.crontab method)j UtrD(j=X*crontab_parser (class in celery.schedules)j UtrD(j=X0parse() (celery.schedules.crontab_parser method)j+ UtrD(j=X-maybe_schedule() (in module celery.schedules)jV UtrD(j=X$schedule (class in celery.schedules)jUtrE(j=X+is_due() (celery.schedules.schedule method)j> UtrE(j=X.relative (celery.schedules.schedule attribute)jq UtrE(j=X7remaining_estimate() (celery.schedules.schedule method)j UtrEej*]rE((j=Xcelery.decorators (module)Xmodule-celery.decoratorsUtrE(j=X-periodic_task() (in module celery.decorators)j'UtrE(j=X$task() (in module celery.decorators)j UtrEeuUall_docsrE}r E(h GAԼH3%h#GAԼH2-h,GAԼH ɸh5GAԼHbNh>GAԼH {_hGGAԼH ,shPGAԼHF~JhYGAԼH hbGAԼH ʸ=hkGAԼHjhtGAԼH 6h}GAԼH)hGAԼHd:hGAԼH hGAԼHCIohGAԼH+hGAԼHhGAԼHFfhGAԼHXhGAԼH MhGAԼH lhGAԼH)yhGAԼH{WhGAԼH  hGAԼHhGAԼHSHjGAԼHQMjj GAԼHK9jGAԼH FjGAԼH6j(GAԼHJj1GAԼH_j:GAԼHjCGAԼH#8&jLGAԼHjUGAԼH Վj^GAԼHjgGAԼH&gbjpGAԼH oPjyGAԼH ojGAԼH jGAԼHJjGAԼHnjGAԼHjGAԼH ijGAԼH yjGAԼH ,jGAԼH(jGAԼH 7jGAԼHjGAԼH jGAԼHSjGAԼH jrjGAԼH jjGAԼH Dj GAԼH wZWjGAԼH1jGAԼH N8j$GAԼH tj-GAԼHj6GAԼH!W*j?GAԼHʒjHGAԼHXjQGAԼHZjZGAԼH =jcGAԼH[hjlGAԼH [+juGAԼHR/j~GAԼH GjGAԼH _XjGAԼHjxjGAԼHjGAԼHnDjGAԼH fwjGAԼH8jGAԼH jGAԼH@jGAԼH >jGAԼH œjGAԼHyOjGAԼH Ϧ]jGAԼH jGAԼHqjGAԼHϞjGAԼHfjGAԼH j GAԼH j)GAԼHsj2GAԼH4j;GAԼHZEjDGAԼH%JjMGAԼH NjVGAԼHj_GAԼH ߰jhGAԼH jqGAԼHOjzGAԼH 1jGAԼH jGAԼHVjGAԼHfƋjGAԼHbjGAԼH jGAԼH /'jGAԼH-jGAԼH d5HjGAԼH jGAԼH ;jGAԼHjGAԼH JjGAԼHnjGAԼH BjGAԼHS\jGAԼH&[j!GAԼH6Tj*GAԼH+uUsettingsr E}r E(Ucloak_email_addressesr EUtrim_footnote_reference_spacer EU halt_levelrEKUsectsubtitle_xformrEUembed_stylesheetrEU pep_base_urlrEUhttp://www.python.org/dev/peps/rEUdoctitle_xformrEUwarning_streamrEcsphinx.util.nodes WarningStream rE)rE}rE(U_rerEcre _compile rEU+\((DEBUG|INFO|WARNING|ERROR|SEVERE)/[0-4]\)rEKRrEUwarnfuncrENubUenvrEhU rfc_base_urlrEUhttp://tools.ietf.org/html/rEUfile_insertion_enabledr EUgettext_compactr!EUinput_encodingr"EU utf-8-sigr#EuUfiles_to_rebuildr$E}r%E(jh]r&EjaRr'Ejh]r(EjVaRr)Ejh]r*EjVaRr+Ej`h]r,EjyaRr-Ejh]r.EjVaRr/Ejh]r0EjaRr1Ejfh]r2EjyaRr3Ejh]r4EhYaRr5Ejrh]r6EhaRr7Ejh]r8EjVaRr9Ej{h]r:EhaRr;Ejh]rEjVaRr?Ejh]r@EjVaRrAEjeh]rBEjyaRrCEjh]rDEjVaRrEEjh]rFEhaRrGEjh]rHEjVaRrIEjh]rJEjVaRrKEjdh]rLEjyaRrMEjh]rNEjaRrOEjh]rPEjVaRrQEjh]rREjaRrSEjth]rTEhaRrUEjh]rVEjaRrWEjmh]rXEhaRrYEjh]rZEjaRr[Ejgh]r\EjyaRr]Ejh]r^EjVaRr_Ejnh]r`EhaRraEjh]rbEjaRrcEjh]rdEjaRreEjph]rfEhaRrgEjqh]rhEhaRriEjh]rjEjVaRrkEjkh]rlEhaRrmEjh]rnEjaRroEjh]rpEjVaRrqEjh]rrEjaRrsEjuh]rtEhaRruEj|h]rvEhaRrwEjch]rxEjyaRryEjbh]rzEjyaRr{Ejh]r|EhYaRr}Ejh]r~EjVaRrEjh]rEjVaRrEj}h]rEhaRrEjh]rEjVaRrEjh]rEhaRrEjh]rEjVaRrEjh]rEjVaRrEj_h]rEjyaRrEjh]rEjVaRrEjh]rEjVaRrEjh]rEjVaRrEjzh]rEhaRrEjh]rEh>aRrEjh]rEjVaRrEjh]rEhaRrEjh]rEjaRrEjh]rEjVaRrEjxh]rEhaRrEjvh]rEhaRrEjh]rEhYaRrEjyh]rEhaRrEjah]rEjyaRrEjlh]rEhaRrEjh]rEjaRrEjh]rEjVaRrEjh]rEjVaRrEjh]rEjVaRrEjh]rEhaRrEjh]rEjaRrEjh]rEjVaRrEjh]rEjVaRrEjh]rEhaRrEjh]rEjVaRrEj^h]rEjyaRrEjh]rEjVaRrEjh]rEhYaRrEjh]rEhYaRrEjh]rEhaRrEjoh]rEhaRrEjh]rEjVaRrEjh]rEjVaRrEj~h]rEhaRrEjh]rEhaRrEjh]rEjVaRrEjhh]rEjyaRrEjh]rEjVaRrEjh]rEhYaRrEjh]rEjVaRrEjh]rEjVaRrEjh]rEjaRrEjh]rEjVaRrEj]h]rEjyaRrEjh]rEjVaRrEjh]rEjVaRrEjh]rEjaRrEjh]rEjVaRrEjh]rEjVaRrEjh]rEhaRrEjh]rEjVaRrEjh]rEjVaRrEjh]rEh>aRrEjh]rEhaRrEjh]rEjVaRrEjh]rEjVaRrEjh]rEjaRrEjwh]rFhaRrFjh]rFhaRrFjsh]rFhaRrFjjh]rFhaRrFuUtoc_secnumbersrF}U_nitpick_ignorer Fh]Rr Fub.PKYDD/D7D7+celery-2.1-archived/.doctrees/links.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xrabbitmq munin plug-insqXshovelqXamqpqNXlinksq Xinteresting linksq NXconyq Xrabbitmqq Xceleryq NXmuninqXlinks-rabbitmqqXtrixxqX links-amqpqX links-celeryqXrabbitmq-shovelquUsubstitution_defsq}qUparse_messagesq]qcdocutils.nodes system_message q)q}q(U rawsourceqUUparentqcdocutils.nodes section q)q}q(hUU referencedq Khh)q!}q"(hUhhUsourceq#cdocutils.nodes reprunicode q$XC/var/build/user_builds/celery/checkouts/2.1-archived/docs/links.rstq%q&}q'bUexpect_referenced_by_nameq(}q)h cdocutils.nodes target q*)q+}q,(hX .. _links:hhh#h&Utagnameq-Utargetq.U attributesq/}q0(Uidsq1]Ubackrefsq2]Udupnamesq3]Uclassesq4]Unamesq5]Urefidq6Ulinksq7uUlineq8KUdocumentq9hUchildrenq:]ubsh-Usectionq;h/}q<(h3]h4]h2]h1]q=(Uinteresting-linksq>h7eh5]q?(h h euh8Kh9hUexpect_referenced_by_idq@}qAh7h+sh:]qB(cdocutils.nodes title qC)qD}qE(hXInteresting LinksqFhh!h#h&h-UtitleqGh/}qH(h3]h4]h2]h1]h5]uh8Kh9hh:]qIcdocutils.nodes Text qJXInteresting LinksqKqL}qM(hhFhhDubaubh*)qN}qO(hX.. _links-celery:hh!h#h&h-h.h/}qP(h1]h2]h3]h4]h5]h6U links-celeryqQuh8Kh9hh:]ubh)qR}qS(hUhh!h#h&h(}qThhNsh-h;h/}qU(h3]h4]h2]h1]qV(UceleryqWhQeh5]qX(h heuh8K h9hh@}qYhQhNsh:]qZ(hC)q[}q\(hXceleryq]hhRh#h&h-hGh/}q^(h3]h4]h2]h1]h5]uh8K h9hh:]q_hJXceleryq`qa}qb(hh]hh[ubaubcdocutils.nodes bullet_list qc)qd}qe(hUhhRh#h&h-U bullet_listqfh/}qg(UbulletqhX*h1]h2]h3]h4]h5]uh8K h9hh:]qicdocutils.nodes list_item qj)qk}ql(hXRIRC logs from ``#celery`` (Freenode): http://botland.oebfare.com/logger/celery/ hhdh#Nh-U list_itemqmh/}qn(h3]h4]h2]h1]h5]uh8Nh9hh:]qocdocutils.nodes definition_list qp)qq}qr(hUh/}qs(h3]h4]h2]h1]h5]uhhkh:]qtcdocutils.nodes definition_list_item qu)qv}qw(hXPIRC logs from ``#celery`` (Freenode): http://botland.oebfare.com/logger/celery/ hhqh#h&h-Udefinition_list_itemqxh/}qy(h3]h4]h2]h1]h5]uh8K h:]qz(cdocutils.nodes term q{)q|}q}(hX%IRC logs from ``#celery`` (Freenode):hhvh#h&h-Utermq~h/}q(h3]h4]h2]h1]h5]uh8K h:]q(hJXIRC logs from qq}q(hXIRC logs from hh|ubcdocutils.nodes literal q)q}q(hX ``#celery``h/}q(h3]h4]h2]h1]h5]uhh|h:]qhJX#celeryqq}q(hUhhubah-UliteralqubhJX (Freenode):qq}q(hX (Freenode):hh|ubeubcdocutils.nodes definition q)q}q(hUh/}q(h3]h4]h2]h1]h5]uhhvh:]qcdocutils.nodes paragraph q)q}q(hX)http://botland.oebfare.com/logger/celery/qhhh#h&h-U paragraphqh/}q(h3]h4]h2]h1]h5]uh8K h:]qcdocutils.nodes reference q)q}q(hhh/}q(Urefurihh1]h2]h3]h4]h5]uhhh:]qhJX)http://botland.oebfare.com/logger/celery/qq}q(hUhhubah-U referencequbaubah-U definitionqubeubah-Udefinition_listqubaubaubh*)q}q(hX.. _links-amqp:hhRh#h&h-h.h/}q(h1]h2]h3]h4]h5]h6U links-amqpquh8Kh9hh:]ubeubh)q}q(hUhh!h#h&h(}qhhsh-h;h/}q(h3]h4]h2]h1]q(Uamqpqheh5]q(hheuh8Kh9hh@}qhhsh:]q(hC)q}q(hXAMQPqhhh#h&h-hGh/}q(h3]h4]h2]h1]h5]uh8Kh9hh:]qhJXAMQPqq}q(hhhhubaubhc)q}q(hUhhh#h&h-hfh/}q(hhX*h1]h2]h3]h4]h5]uh8Kh9hh:]q(hj)q}q(hXK`RabbitMQ-shovel`: Message Relocation Equipment (as a plug-in to RabbitMQ) hhh#h&h-hmh/}q(h3]h4]h2]h1]h5]uh8Nh9hh:]qh)q}q(hXJ`RabbitMQ-shovel`: Message Relocation Equipment (as a plug-in to RabbitMQ)hhh#h&h-hh/}q(h3]h4]h2]h1]h5]uh8Kh:]q(cdocutils.nodes title_reference q)q}q(hX`RabbitMQ-shovel`h/}q(h3]h4]h2]h1]h5]uhhh:]qhJXRabbitMQ-shovelqͅq}q(hUhhubah-Utitle_referencequbhJX9: Message Relocation Equipment (as a plug-in to RabbitMQ)qхq}q(hX9: Message Relocation Equipment (as a plug-in to RabbitMQ)hhubeubaubhj)q}q(hX/`Shovel`_: An AMQP Relay (generic AMQP shovel) hhh#h&h-hmh/}q(h3]h4]h2]h1]h5]uh8Nh9hh:]qh)q}q(hX.`Shovel`_: An AMQP Relay (generic AMQP shovel)hhh#h&h-hh/}q(h3]h4]h2]h1]h5]uh8Kh:]q(h)q}q(hX `Shovel`_UresolvedqKhhh-hh/}q(UnameXShovelUrefuriqXhttp://bit.ly/xFEdeqh1]h2]h3]h4]h5]uh:]qhJXShovelqㅁq}q(hUhhubaubhJX%: An AMQP Relay (generic AMQP shovel)q慁q}q(hX%: An AMQP Relay (generic AMQP shovel)hhubeubaubeubh*)q}q(hX+.. _`RabbitMQ-shovel`: http://bit.ly/b1hVW2hhh#h&h-h.h/}q(hXhttp://bit.ly/b1hVW2h1]qUrabbitmq-shovelqah2]h3]h4]h5]qhauh8Kh9hh:]ubh*)q}q(hX!.. _`Shovel`: http://bit.ly/xFEdeh Khhh#h&h-h.h/}q(hhh1]qUshovelqah2]h3]h4]h5]qhauh8Kh9hh:]ubh*)q}q(hX.. _links-rabbitmq:hhh#h&h-h.h/}q(h1]h2]h3]h4]h5]h6Ulinks-rabbitmqquh8Kh9hh:]ubeubheubh#h&h(}qhhsh-h;h/}q(h3]qXrabbitmqqah4]h2]h1]q(Urabbitmqqheh5]qhauh8Kh9hh@}rhhsh:]r(hC)r}r(hXRabbitMQrhhh#h&h-hGh/}r(h3]h4]h2]h1]h5]uh8Kh9hh:]rhJXRabbitMQrr}r (hjhjubaubhc)r }r (hUhhh#h&h-hfh/}r (hhX*h1]h2]h3]h4]h5]uh8K!h9hh:]r (hj)r}r(hXQ`Trixx`_: Administration and Monitoring tool for `RabbitMQ`_ (in development). hj h#Nh-hmh/}r(h3]h4]h2]h1]h5]uh8Nh9hh:]rhp)r}r(hUh/}r(h3]h4]h2]h1]h5]uhjh:]rhu)r}r(hXO`Trixx`_: Administration and Monitoring tool for `RabbitMQ`_ (in development). hjh#h&h-hxh/}r(h3]h4]h2]h1]h5]uh8K"h:]r(h{)r}r(hX@`Trixx`_: Administration and Monitoring tool for `RabbitMQ`_ (inhjh#h&h-h~h/}r(h3]h4]h2]h1]h5]uh8K"h:]r(h)r}r(hX`Trixx`_hKhjh-hh/}r (UnameXTrixxhX-http://github.com/aaronfeng/trixx/tree/masterr!h1]h2]h3]h4]h5]uh:]r"hJXTrixxr#r$}r%(hUhjubaubhJX): Administration and Monitoring tool for r&r'}r((hX): Administration and Monitoring tool for hjubh)r)}r*(hX `RabbitMQ`_hKhjh-hh/}r+(UnameXRabbitMQhXhttp://rabbitmq.com/r,h1]h2]h3]h4]h5]uh:]r-hJXRabbitMQr.r/}r0(hUhj)ubaubhJX (inr1r2}r3(hX (inhjubeubh)r4}r5(hUh/}r6(h3]h4]h2]h1]h5]uhjh:]r7h)r8}r9(hX development).r:hj4h#h&h-hh/}r;(h3]h4]h2]h1]h5]uh8K"h:]r<hJX development).r=r>}r?(hj:hj8ubaubah-hubeubah-hubaubhj)r@}rA(hXX`Cony`_: HTTP based service for providing insight into running `RabbitMQ`_ processes. hj h#Nh-hmh/}rB(h3]h4]h2]h1]h5]uh8Nh9hh:]rChp)rD}rE(hUh/}rF(h3]h4]h2]h1]h5]uhj@h:]rGhu)rH}rI(hXV`Cony`_: HTTP based service for providing insight into running `RabbitMQ`_ processes. hjDh#h&h-hxh/}rJ(h3]h4]h2]h1]h5]uh8K%h:]rK(h{)rL}rM(hX>`Cony`_: HTTP based service for providing insight into runninghjHh#h&h-h~h/}rN(h3]h4]h2]h1]h5]uh8K%h:]rO(h)rP}rQ(hX`Cony`_hKhjLh-hh/}rR(UnameXConyhX&http://github.com/gmr/Cony/tree/masterrSh1]h2]h3]h4]h5]uh:]rThJXConyrUrV}rW(hUhjPubaubhJX7: HTTP based service for providing insight into runningrXrY}rZ(hX7: HTTP based service for providing insight into runninghjLubeubh)r[}r\(hUh/}r](h3]h4]h2]h1]h5]uhjHh:]r^h)r_}r`(hX`RabbitMQ`_ processes.hj[h#h&h-hh/}ra(h3]h4]h2]h1]h5]uh8K%h:]rb(h)rc}rd(hX `RabbitMQ`_hKhj_h-hh/}re(UnameXRabbitMQhj,h1]h2]h3]h4]h5]uh:]rfhJXRabbitMQrgrh}ri(hUhjcubaubhJX processes.rjrk}rl(hX processes.hj_ubeubah-hubeubah-hubaubhj)rm}rn(hXa`RabbitMQ Munin Plug-ins`_: Use `Munin`_ to monitor `RabbitMQ`_, and alert on critical events. hj h#Nh-hmh/}ro(h3]h4]h2]h1]h5]uh8Nh9hh:]rphp)rq}rr(hUh/}rs(h3]h4]h2]h1]h5]uhjmh:]rthu)ru}rv(hX_`RabbitMQ Munin Plug-ins`_: Use `Munin`_ to monitor `RabbitMQ`_, and alert on critical events. hjqh#h&h-hxh/}rw(h3]h4]h2]h1]h5]uh8K(h:]rx(h{)ry}rz(hXJ`RabbitMQ Munin Plug-ins`_: Use `Munin`_ to monitor `RabbitMQ`_, and alertr{hjuh#h&h-h~h/}r|(h3]h4]h2]h1]h5]uh8K(h:]r}(h)r~}r(hX`RabbitMQ Munin Plug-ins`_hKhjyh-hh/}r(UnameXRabbitMQ Munin Plug-inshX%http://github.com/ask/rabbitmq-munin/rh1]h2]h3]h4]h5]uh:]rhJXRabbitMQ Munin Plug-insrr}r(hUhj~ubaubhJX: Use rr}r(hX: Use hjyubh)r}r(hX`Munin`_hKhjyh-hh/}r(UnameXMuninhX http://munin.projects.linpro.no/rh1]h2]h3]h4]h5]uh:]rhJXMuninrr}r(hUhjubaubhJX to monitor rr}r(hX to monitor hjyubh)r}r(hX `RabbitMQ`_hKhjyh-hh/}r(UnameXRabbitMQhj,h1]h2]h3]h4]h5]uh:]rhJXRabbitMQrr}r(hUhjubaubhJX , and alertrr}r(hX , and alerthjyubeubh)r}r(hUh/}r(h3]h4]h2]h1]h5]uhjuh:]rh)r}r(hXon critical events.rhjh#h&h-hh/}r(h3]h4]h2]h1]h5]uh8K(h:]rhJXon critical events.rr}r(hjhjubaubah-hubeubah-hubaubeubh*)r}r(hX:.. _`Trixx`: http://github.com/aaronfeng/trixx/tree/masterh Khhh#h&h-h.h/}r(hj!h1]rUtrixxrah2]h3]h4]h5]rhauh8K*h9hh:]ubh*)r}r(hX2.. _`Cony`: http://github.com/gmr/Cony/tree/masterh Khhh#h&h-h.h/}r(hjSh1]rUconyrah2]h3]h4]h5]rh auh8K+h9hh:]ubh*)r}r(hX$.. _`RabbitMQ`: http://rabbitmq.com/h Khhh#h&h-h.h/}r(hj,h1]rUid1rah2]h3]h4]h5]rhauh8K,h9hh:]ubh*)r}r(hXD.. _`RabbitMQ Munin Plug-ins`: http://github.com/ask/rabbitmq-munin/h Khhh#h&h-h.h/}r(hjh1]rUrabbitmq-munin-plug-insrah2]h3]h4]h5]rhauh8K-h9hh:]ubh*)r}r(hX-.. _`Munin`: http://munin.projects.linpro.no/h Khhh#h&h-h.h/}r(hjh1]rUmuninrah2]h3]h4]h5]rhauh8K.h9hh:]ubeubh#h&h-Usystem_messagerh/}r(h3]UlevelKh1]h2]rjaUsourceh&h4]h5]UlineK,UtypeUINFOruh8K,h9hh:]rh)r}r(hUh/}r(h3]h4]h2]h1]h5]uhhh:]rhJX+Duplicate implicit target name: "rabbitmq".rr}r(hUhjubah-hubaubaUcurrent_sourcerNU decorationrNUautofootnote_startrKUnameidsr}r(hjhhhhh h7h h>h jh jh hWhjhhhjhhhhQhhuh:]r(h+h!ehUU transformerrNU footnote_refsr}rUrefnamesr}r(Xrabbitmq munin plug-ins]rj~aXshovel]rhaXmunin]rjaXcony]rjPaXrabbitmq]r(j)jcjeXtrixx]rjauUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh9hU current_linerNUtransform_messagesr]r(h)r}r(hUh/}r(h3]UlevelKh1]h2]Usourceh&h4]h5]UlineKUtypejuh:]rh)r}r(hUh/}r(h3]h4]h2]h1]h5]uhjh:]rhJX+Hyperlink target "links" is not referenced.rr}r(hUhjubah-hubah-jubh)r}r(hUh/}r(h3]UlevelKh1]h2]Usourceh&h4]h5]UlineKUtypejuh:]rh)r}r(hUh/}r(h3]h4]h2]h1]h5]uhjh:]rhJX2Hyperlink target "links-celery" is not referenced.rr}r(hUhjubah-hubah-jubh)r}r(hUh/}r(h3]UlevelKh1]h2]Usourceh&h4]h5]UlineKUtypejuh:]r h)r }r (hUh/}r (h3]h4]h2]h1]h5]uhjh:]r hJX0Hyperlink target "links-amqp" is not referenced.rr}r(hUhj ubah-hubah-jubh)r}r(hUh/}r(h3]UlevelKh1]h2]Usourceh&h4]h5]UlineKUtypejuh:]rh)r}r(hUh/}r(h3]h4]h2]h1]h5]uhjh:]rhJX5Hyperlink target "rabbitmq-shovel" is not referenced.rr}r(hUhjubah-hubah-jubh)r}r(hUh/}r(h3]UlevelKh1]h2]Usourceh&h4]h5]UlineKUtypejuh:]rh)r }r!(hUh/}r"(h3]h4]h2]h1]h5]uhjh:]r#hJX4Hyperlink target "links-rabbitmq" is not referenced.r$r%}r&(hUhj ubah-hubah-jubeUreporterr'NUid_startr(KU autofootnotesr)]r*U citation_refsr+}r,Uindirect_targetsr-]r.Usettingsr/(cdocutils.frontend Values r0or1}r2(Ufootnote_backlinksr3KUrecord_dependenciesr4NU rfc_base_urlr5Uhttp://tools.ietf.org/html/r6U tracebackr7Upep_referencesr8NUstrip_commentsr9NU toc_backlinksr:Uentryr;U language_coder<Uenr=U datestampr>NU report_levelr?KU _destinationr@NU halt_levelrAKU strip_classesrBNhGNUerror_encoding_error_handlerrCUbackslashreplacerDUdebugrENUembed_stylesheetrFUoutput_encoding_error_handlerrGUstrictrHU sectnum_xformrIKUdump_transformsrJNU docinfo_xformrKKUwarning_streamrLNUpep_file_url_templaterMUpep-%04drNUexit_status_levelrOKUconfigrPNUstrict_visitorrQNUcloak_email_addressesrRUtrim_footnote_reference_spacerSUenvrTNUdump_pseudo_xmlrUNUexpose_internalsrVNUsectsubtitle_xformrWU source_linkrXNUrfc_referencesrYNUoutput_encodingrZUutf-8r[U source_urlr\NUinput_encodingr]U utf-8-sigr^U_disable_configr_NU id_prefixr`UU tab_widthraKUerror_encodingrbUUTF-8rcU_sourcerdUC/var/build/user_builds/celery/checkouts/2.1-archived/docs/links.rstreUgettext_compactrfU generatorrgNUdump_internalsrhNU smart_quotesriU pep_base_urlrjUhttp://www.python.org/dev/peps/rkUsyntax_highlightrlUlongrmUinput_encoding_error_handlerrnjHUauto_id_prefixroUidrpUdoctitle_xformrqUstrip_elements_with_classesrrNU _config_filesrs]rtUfile_insertion_enabledruU raw_enabledrvKU dump_settingsrwNubUsymbol_footnote_startrxKUidsry}rz(hhhhh7h!jjjjh>h!hhjjhWhRhhjjhhjjhQhRhhuUsubstitution_namesr{}r|h-h9h/}r}(h3]h1]h2]Usourceh&h4]h5]uU footnotesr~]rUrefidsr}r(h]rhahQ]rhNah7]rh+ah]rhauub.PKYDDǨjxx)celery-2.1-archived/.doctrees/faq.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X4how can i run a task once another task has finished?qNXfaq-mysql-deadlocksqXfaq-acks_late-vs-retryqXfaq-task-routingq X%queue everything and delight everyoneq X faq-windows-worker-embedded-beatq X faq-generalq Xresultsq NXuser guide: remote tasksqXfaq-task-callbacksqX"django-celery can't find settings?qNXfaq-task-prioritiesqX8can i change the interval of a periodic task at runtime?qNXis celery dependent on pickle?qNX>why aren't my remote control commands received by all workers?qNXHi've discarded messages, but there are still messages left in the queue?qNX#how do i discard all waiting tasks?qNX+can i send some tasks to only some servers?qNXfaqqXdo i have to use amqp/rabbitmq?qNXfaq-schedule-at-specific-timeqXcan messages be encrypted?qNXfaq-serializion-is-a-choiceqX can i use decorators with tasks?qNXfrequently asked questionsqNX1mysql is throwing deadlock errors, what can i do?qNX+celeryd keeps spawning processes at startupq NX.why is task.delay/apply*/celeryd just hanging?q!NXfaq-get-result-by-task-idq"X django-celeryq#Xsecurityq$NXtroubleshootingq%NXfaq-worker-stops-processingq&X5how do i run celeryd in the background on [platform]?q'NX faq-tasksq(X faq-securityq)X&isn't using pickle a security concern?q*NXis celery for django only?q+NXcan i use natural task ids?q,NXwhy won't my periodic task run?q-NX+celeryd is not doing anything, just hangingq.NX should i use retry or acks_late?q/NXfaq-celeryd-on-freebsdq0Xfaq-worker-hangingq1Xfaq-execute-task-by-nameq2X faq-brokersq3X"how do i shut down celeryd safely?q4NXstompyq5X%can i cancel the execution of a task?q6NXfaq-safe-worker-shutdownq7X faq-resultsq8Xfaq-duplicate-key-errorsq9Xfaq-is-celery-for-django-onlyq:Xfaq-custom-task-idsq;Xfaq-publish-hangingqNX0mysql - the innodb transaction model and lockingq?Xtasksq@NX9what features are not supported when using ghettoq/stomp?qANXEhow do i get the result of a task if i have the id that points there?qBNX5i'm having integrityerror: duplicate key errors. why?qCNXfaq-purge-the-queueqDX$does celery support task priorities?qENX-what kinds of things should i use celery for?qFNX8how can i reuse the same connection when applying tasks?qGNXfaq-windows-worker-spawn-loopqHX!why won't celeryd run on freebsd?qINXfaq-windows-django-settingsqJXfaq-troubleshootingqKX%can i use celery with activemq/stomp?qLNX faq-windowsqMX)faq-node-not-receiving-broadcast-commandsqNXcan i execute a task by name?qONXfaq-when-to-useqPXbrokersqQNXfaq-use-celery-with-stompqRXfaq-tasks-connection-reuseqSXfaq-is-celery-multilingualqTXwhy won't my task run?qUNXwhy aren't my tasks processed?qVNXgeneralqWNXfaq-misconceptionsqXUcontentsqYNXfaq-is-celery-for-rabbitmq-onlyqZX3can i schedule tasks to execute at a specific time?q[NXfaq-cancel-taskq\X/the -b / --beat option to celeryd doesn't work?q]NX.how can i get the task id of the current task?q^NXfaq-natural-task-idsq_Xmisconceptionsq`NXfaq-stomp-missing-featuresqaXusing other queuesqbXfaq-periodic-task-does-not-runqcXfaq-get-current-task-idqdXfaq-messages-left-after-purgeqeXwindowsqfNXfaq-task-does-not-runqgXis celery multilingual?qhNXwhy is rabbitmq crashing?qiNX,faq-change-periodic-task-interval-at-runtimeqjXcan i specify a custom task_id?qkNuUsubstitution_defsql}qmUparse_messagesqn]qoUcurrent_sourceqpNU decorationqqNUautofootnote_startqrKUnameidsqs}qt(hU3how-can-i-run-a-task-once-another-task-has-finishedquhUfaq-mysql-deadlocksqvhUfaq-acks-late-vs-retryqwh Ufaq-task-routingqxh U%queue-everything-and-delight-everyoneqyh U faq-windows-worker-embedded-beatqzh U faq-generalq{h Uresultsq|hUuser-guide-remote-tasksq}hUfaq-task-callbacksq~hU!django-celery-can-t-find-settingsqhUfaq-task-prioritiesqhU7can-i-change-the-interval-of-a-periodic-task-at-runtimeqhUis-celery-dependent-on-pickleqhU=why-aren-t-my-remote-control-commands-received-by-all-workersqhUFi-ve-discarded-messages-but-there-are-still-messages-left-in-the-queueqhU"how-do-i-discard-all-waiting-tasksqhU*can-i-send-some-tasks-to-only-some-serversqhUfaqqhUdo-i-have-to-use-amqp-rabbitmqqhUfaq-schedule-at-specific-timeqhUcan-messages-be-encryptedqhUfaq-serializion-is-a-choiceqhUcan-i-use-decorators-with-tasksqhUfrequently-asked-questionsqhU/mysql-is-throwing-deadlock-errors-what-can-i-doqh U+celeryd-keeps-spawning-processes-at-startupqh!U,why-is-task-delay-apply-celeryd-just-hangingqh"Ufaq-get-result-by-task-idqh#U django-celeryqh$Usecurityqh%Utroubleshootingqh&Ufaq-worker-stops-processingqh'U2how-do-i-run-celeryd-in-the-background-on-platformqh(U faq-tasksqh)U faq-securityqh*U%isn-t-using-pickle-a-security-concernqh+Uis-celery-for-django-onlyqh,Ucan-i-use-natural-task-idsqh-Uwhy-won-t-my-periodic-task-runqh.U*celeryd-is-not-doing-anything-just-hangingqh/Ushould-i-use-retry-or-acks-lateqh0Ufaq-celeryd-on-freebsdqh1Ufaq-worker-hangingqh2Ufaq-execute-task-by-nameqh3U faq-brokersqh4U!how-do-i-shut-down-celeryd-safelyqh5Ustompyqh6U$can-i-cancel-the-execution-of-a-taskqh7Ufaq-safe-worker-shutdownqh8U faq-resultsqh9Ufaq-duplicate-key-errorsqh:Ufaq-is-celery-for-django-onlyqh;Ufaq-custom-task-idsqhU!is-it-safe-to-run-celeryd-as-rootqh?U.mysql-the-innodb-transaction-model-and-lockingqh@UtasksqhAU8what-features-are-not-supported-when-using-ghettoq-stompqhBUDhow-do-i-get-the-result-of-a-task-if-i-have-the-id-that-points-thereqhCU2i-m-having-integrityerror-duplicate-key-errors-whyqhDUfaq-purge-the-queueqhEU#does-celery-support-task-prioritiesqhFU,what-kinds-of-things-should-i-use-celery-forqhGU7how-can-i-reuse-the-same-connection-when-applying-tasksqhHUfaq-windows-worker-spawn-loopqhIU why-won-t-celeryd-run-on-freebsdqhJUfaq-windows-django-settingsqhKUfaq-troubleshootingqhLU$can-i-use-celery-with-activemq-stompqhMU faq-windowsqhNU)faq-node-not-receiving-broadcast-commandsqhOUcan-i-execute-a-task-by-nameqhPUfaq-when-to-useqhQUbrokersqhRUfaq-use-celery-with-stompqhSUfaq-tasks-connection-reuseqhTUfaq-is-celery-multilingualqhUUwhy-won-t-my-task-runqhVUwhy-aren-t-my-tasks-processedqhWUgeneralqhXUfaq-misconceptionsqhYUcontentsqhZUfaq-is-celery-for-rabbitmq-onlyqh[U2can-i-schedule-tasks-to-execute-at-a-specific-timeqh\Ufaq-cancel-taskqh]U)the-b-beat-option-to-celeryd-doesn-t-workqh^U-how-can-i-get-the-task-id-of-the-current-taskqh_Ufaq-natural-task-idsqh`UmisconceptionsqhaUfaq-stomp-missing-featuresqhbUusing-other-queuesqhcUfaq-periodic-task-does-not-runqhdUfaq-get-current-task-idqheUfaq-messages-left-after-purgeqhfUwindowsqhgUfaq-task-does-not-runqhhUis-celery-multilingualqhiUwhy-is-rabbitmq-crashingqhjU,faq-change-periodic-task-interval-at-runtimeqhkUcan-i-specify-a-custom-task-idquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX.. _faq:UparentqhUsourceqcdocutils.nodes reprunicode qXA/var/build/user_builds/celery/checkouts/2.1-archived/docs/faq.rstq䅁q}qbUtagnameqUtargetqU attributesq}q(Uidsq]Ubackrefsq]Udupnamesq]Uclassesq]Unamesq]UrefidqhuUlineqKUdocumentqhh]ubcdocutils.nodes section q)q}q(hUhhhhUexpect_referenced_by_nameq}qhhshUsectionqh}q(h]h]h]h]q(hheh]q(hheuhKhhUexpect_referenced_by_idq}qhhsh]q(cdocutils.nodes title q)r}r(hXFrequently Asked QuestionsrhhhhhUtitlerh}r(h]h]h]h]h]uhKhhh]rcdocutils.nodes Text rXFrequently Asked Questionsrr}r (hjhjubaubcdocutils.nodes topic r )r }r (hUhhhhhUtopicr h}r(h]h]r(UcontentsrUlocalreh]h]rhah]rhYauhKhhh]rcdocutils.nodes bullet_list r)r}r(hUhj hNhU bullet_listrh}r(h]h]h]h]h]uhNhhh]r(cdocutils.nodes list_item r)r}r(hUh}r(h]h]h]h]h]uhjh]r(cdocutils.nodes paragraph r )r!}r"(hUh}r#(h]h]h]h]h]uhjh]r$cdocutils.nodes reference r%)r&}r'(hUh}r((h]r)Uid1r*ah]h]h]h]Urefidhuhj!h]r+jXGeneralr,r-}r.(hXGeneralr/hj&ubahU referencer0ubahU paragraphr1ubj)r2}r3(hUh}r4(h]h]h]h]h]uhjh]r5j)r6}r7(hUh}r8(h]h]h]h]h]uhj2h]r9j )r:}r;(hUh}r<(h]h]h]h]h]uhj6h]r=j%)r>}r?(hUh}r@(h]rAUid2rBah]h]h]h]Urefidhuhj:h]rCjX-What kinds of things should I use Celery for?rDrE}rF(hX-What kinds of things should I use Celery for?rGhj>ubahj0ubahj1ubahU list_itemrHubahjubehjHubj)rI}rJ(hUh}rK(h]h]h]h]h]uhjh]rL(j )rM}rN(hUh}rO(h]h]h]h]h]uhjIh]rPj%)rQ}rR(hUh}rS(h]rTUid3rUah]h]h]h]UrefidhuhjMh]rVjXMisconceptionsrWrX}rY(hXMisconceptionsrZhjQubahj0ubahj1ubj)r[}r\(hUh}r](h]h]h]h]h]uhjIh]r^(j)r_}r`(hUh}ra(h]h]h]h]h]uhj[h]rbj )rc}rd(hUh}re(h]h]h]h]h]uhj_h]rfj%)rg}rh(hUh}ri(h]rjUid4rkah]h]h]h]Urefidhuhjch]rljXIs Celery dependent on pickle?rmrn}ro(hXIs Celery dependent on pickle?rphjgubahj0ubahj1ubahjHubj)rq}rr(hUh}rs(h]h]h]h]h]uhj[h]rtj )ru}rv(hUh}rw(h]h]h]h]h]uhjqh]rxj%)ry}rz(hUh}r{(h]r|Uid5r}ah]h]h]h]Urefidhuhjuh]r~jXIs Celery for Django only?rr}r(hXIs Celery for Django only?rhjyubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhj[h]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid6rah]h]h]h]Urefidhuhjh]rjXDo I have to use AMQP/RabbitMQ?rr}r(hXDo I have to use AMQP/RabbitMQ?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhj[h]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid7rah]h]h]h]Urefidhuhjh]rjXIs Celery multilingual?rr}r(hXIs Celery multilingual?rhjubahj0ubahj1ubahjHubehjubehjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(j )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid8rah]h]h]h]Urefidhuhjh]rjXTroubleshootingrr}r(hXTroubleshootingrhjubahj0ubahj1ubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(j)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid9rah]h]h]h]Urefidhuhjh]rjX1MySQL is throwing deadlock errors, what can I do?rr}r(hX1MySQL is throwing deadlock errors, what can I do?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid10rah]h]h]h]Urefidhuhjh]rjX+celeryd is not doing anything, just hangingrr}r(hX+celeryd is not doing anything, just hangingrhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid11rah]h]h]h]Urefidhuhjh]rjX.Why is Task.delay/apply*/celeryd just hanging?rr}r(hX/Why is Task.delay/apply\*/celeryd just hanging?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid12rah]h]h]h]Urefidhuhjh]rjX!Why won't celeryd run on FreeBSD?rr}r(hX!Why won't celeryd run on FreeBSD?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r }r (hUh}r (h]h]h]h]h]uhjh]r j%)r }r(hUh}r(h]rUid13rah]h]h]h]Urefidhuhj h]r(jX I'm having rr}r(hX I'm having rhj ubcdocutils.nodes literal r)r}r(hX!``IntegrityError: Duplicate Key``rh}r(h]h]h]h]h]uhj h]rjXIntegrityError: Duplicate Keyrr}r(hUhjubahUliteralr ubjX errors. Why?r!r"}r#(hX errors. Why?r$hj ubehj0ubahj1ubahjHubj)r%}r&(hUh}r'(h]h]h]h]h]uhjh]r(j )r)}r*(hUh}r+(h]h]h]h]h]uhj%h]r,j%)r-}r.(hUh}r/(h]r0Uid14r1ah]h]h]h]Urefidhuhj)h]r2jXWhy aren't my tasks processed?r3r4}r5(hXWhy aren't my tasks processed?r6hj-ubahj0ubahj1ubahjHubj)r7}r8(hUh}r9(h]h]h]h]h]uhjh]r:j )r;}r<(hUh}r=(h]h]h]h]h]uhj7h]r>j%)r?}r@(hUh}rA(h]rBUid15rCah]h]h]h]Urefidhuhj;h]rDjXWhy won't my Task run?rErF}rG(hXWhy won't my Task run?rHhj?ubahj0ubahj1ubahjHubj)rI}rJ(hUh}rK(h]h]h]h]h]uhjh]rLj )rM}rN(hUh}rO(h]h]h]h]h]uhjIh]rPj%)rQ}rR(hUh}rS(h]rTUid16rUah]h]h]h]UrefidhuhjMh]rVjXWhy won't my Periodic Task run?rWrX}rY(hXWhy won't my Periodic Task run?rZhjQubahj0ubahj1ubahjHubj)r[}r\(hUh}r](h]h]h]h]h]uhjh]r^j )r_}r`(hUh}ra(h]h]h]h]h]uhj[h]rbj%)rc}rd(hUh}re(h]rfUid17rgah]h]h]h]Urefidhuhj_h]rhjX#How do I discard all waiting tasks?rirj}rk(hX#How do I discard all waiting tasks?rlhjcubahj0ubahj1ubahjHubj)rm}rn(hUh}ro(h]h]h]h]h]uhjh]rpj )rq}rr(hUh}rs(h]h]h]h]h]uhjmh]rtj%)ru}rv(hUh}rw(h]rxUid18ryah]h]h]h]Urefidhuhjqh]rzjXHI've discarded messages, but there are still messages left in the queue?r{r|}r}(hXHI've discarded messages, but there are still messages left in the queue?r~hjuubahj0ubahj1ubahjHubehjubehjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(j )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid19rah]h]h]h]Urefidh|uhjh]rjXResultsrr}r(hXResultsrhjubahj0ubahj1ubj)r}r(hUh}r(h]h]h]h]h]uhjh]rj)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid20rah]h]h]h]Urefidhuhjh]rjXEHow do I get the result of a task if I have the ID that points there?rr}r(hXEHow do I get the result of a task if I have the ID that points there?rhjubahj0ubahj1ubahjHubahjubehjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(j )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid21rah]h]h]h]Urefidhuhjh]rjXSecurityrr}r(hXSecurityrhjubahj0ubahj1ubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(j)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid22rah]h]h]h]Urefidhuhjh]r(jX Isn't using rr}r(hX Isn't using rhjubcdocutils.nodes title_reference r)r}r(hX`pickle`rh}r(h]h]h]h]h]uhjh]rjXpicklerr}r(hUhjubahUtitle_referencerubjX a security concern?rr}r(hX a security concern?rhjubehj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid23rah]h]h]h]Urefidhuhjh]rjXCan messages be encrypted?rr}r(hXCan messages be encrypted?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid24rah]h]h]h]Urefidhuhjh]r(jXIs it safe to run rr}r(hXIs it safe to run rhjubcdocutils.nodes strong r)r}r(hX:program:`celeryd`rh}r(h]h]rUprogramrah]h]h]uhjh]rjXcelerydr r }r (hUhjubahUstrongr ubjX as root?r r}r(hX as root?rhjubehj0ubahj1ubahjHubehjubehjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(j )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid25rah]h]h]h]Urefidhuhjh]rjXBrokersrr }r!(hXBrokersr"hjubahj0ubahj1ubj)r#}r$(hUh}r%(h]h]h]h]h]uhjh]r&(j)r'}r((hUh}r)(h]h]h]h]h]uhj#h]r*j )r+}r,(hUh}r-(h]h]h]h]h]uhj'h]r.j%)r/}r0(hUh}r1(h]r2Uid26r3ah]h]h]h]Urefidhuhj+h]r4jXWhy is RabbitMQ crashing?r5r6}r7(hXWhy is RabbitMQ crashing?r8hj/ubahj0ubahj1ubahjHubj)r9}r:(hUh}r;(h]h]h]h]h]uhj#h]r<j )r=}r>(hUh}r?(h]h]h]h]h]uhj9h]r@j%)rA}rB(hUh}rC(h]rDUid27rEah]h]h]h]Urefidhuhj=h]rFjX%Can I use Celery with ActiveMQ/STOMP?rGrH}rI(hX%Can I use Celery with ActiveMQ/STOMP?rJhjAubahj0ubahj1ubahjHubj)rK}rL(hUh}rM(h]h]h]h]h]uhj#h]rNj )rO}rP(hUh}rQ(h]h]h]h]h]uhjKh]rRj%)rS}rT(hUh}rU(h]rVUid28rWah]h]h]h]UrefidhuhjOh]rXjX9What features are not supported when using ghettoq/STOMP?rYrZ}r[(hX9What features are not supported when using ghettoq/STOMP?r\hjSubahj0ubahj1ubahjHubehjubehjHubj)r]}r^(hUh}r_(h]h]h]h]h]uhjh]r`(j )ra}rb(hUh}rc(h]h]h]h]h]uhj]h]rdj%)re}rf(hUh}rg(h]rhUid29riah]h]h]h]Urefidhuhjah]rjjXTasksrkrl}rm(hXTasksrnhjeubahj0ubahj1ubj)ro}rp(hUh}rq(h]h]h]h]h]uhj]h]rr(j)rs}rt(hUh}ru(h]h]h]h]h]uhjoh]rvj )rw}rx(hUh}ry(h]h]h]h]h]uhjsh]rzj%)r{}r|(hUh}r}(h]r~Uid30rah]h]h]h]Urefidhuhjwh]rjX8How can I reuse the same connection when applying tasks?rr}r(hX8How can I reuse the same connection when applying tasks?rhj{ubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjoh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid31rah]h]h]h]Urefidhuhjh]rjXCan I execute a task by name?rr}r(hXCan I execute a task by name?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjoh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid32rah]h]h]h]Urefidhuhjh]rjX.How can I get the task id of the current task?rr}r(hX.How can I get the task id of the current task?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjoh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid33rah]h]h]h]Urefidhuhjh]rjXCan I specify a custom task_id?rr}r(hXCan I specify a custom task_id?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjoh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid34rah]h]h]h]Urefidhuhjh]rjX Can I use decorators with tasks?rr}r(hX Can I use decorators with tasks?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjoh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid35rah]h]h]h]Urefidhuhjh]rjXCan I use natural task ids?rr}r(hXCan I use natural task ids?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjoh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid36rah]h]h]h]Urefidhuuhjh]rjX4How can I run a task once another task has finished?rr}r(hX4How can I run a task once another task has finished?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjoh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid37rah]h]h]h]Urefidhuhjh]rjX%Can I cancel the execution of a task?rr}r(hX%Can I cancel the execution of a task?rhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjoh]rj )r}r(hUh}r (h]h]h]h]h]uhjh]r j%)r }r (hUh}r (h]rUid38rah]h]h]h]Urefidhuhjh]rjX>Why aren't my remote control commands received by all workers?rr}r(hX>Why aren't my remote control commands received by all workers?rhj ubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjoh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]r Uid39r!ah]h]h]h]Urefidhuhjh]r"jX+Can I send some tasks to only some servers?r#r$}r%(hX+Can I send some tasks to only some servers?r&hjubahj0ubahj1ubahjHubj)r'}r((hUh}r)(h]h]h]h]h]uhjoh]r*j )r+}r,(hUh}r-(h]h]h]h]h]uhj'h]r.j%)r/}r0(hUh}r1(h]r2Uid40r3ah]h]h]h]Urefidhuhj+h]r4jX8Can I change the interval of a periodic task at runtime?r5r6}r7(hX8Can I change the interval of a periodic task at runtime?r8hj/ubahj0ubahj1ubahjHubj)r9}r:(hUh}r;(h]h]h]h]h]uhjoh]r<j )r=}r>(hUh}r?(h]h]h]h]h]uhj9h]r@j%)rA}rB(hUh}rC(h]rDUid41rEah]h]h]h]Urefidhuhj=h]rFjX$Does celery support task priorities?rGrH}rI(hX$Does celery support task priorities?rJhjAubahj0ubahj1ubahjHubj)rK}rL(hUh}rM(h]h]h]h]h]uhjoh]rNj )rO}rP(hUh}rQ(h]h]h]h]h]uhjKh]rRj%)rS}rT(hUh}rU(h]rVUid42rWah]h]h]h]UrefidhuhjOh]rXjX Should I use retry or acks_late?rYrZ}r[(hX Should I use retry or acks_late?r\hjSubahj0ubahj1ubahjHubj)r]}r^(hUh}r_(h]h]h]h]h]uhjoh]r`j )ra}rb(hUh}rc(h]h]h]h]h]uhj]h]rdj%)re}rf(hUh}rg(h]rhUid43riah]h]h]h]UrefidXmodule-celery.task.baserjuhjah]rkjX3Can I schedule tasks to execute at a specific time?rlrm}rn(hX3Can I schedule tasks to execute at a specific time?rohjeubahj0ubahj1ubahjHubj)rp}rq(hUh}rr(h]h]h]h]h]uhjoh]rsj )rt}ru(hUh}rv(h]h]h]h]h]uhjph]rwj%)rx}ry(hUh}rz(h]r{Uid44r|ah]h]h]h]Urefidhuhjth]r}(jXHow do I shut down r~r}r(hXHow do I shut down rhjxubj)r}r(hX ``celeryd``rh}r(h]h]h]h]h]uhjxh]rjXcelerydrr}r(hUhjubahj ubjX safely?rr}r(hX safely?rhjxubehj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjoh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid45rah]h]h]h]Urefidhuhjh]rjX5How do I run celeryd in the background on [platform]?rr}r(hX5How do I run celeryd in the background on [platform]?rhjubahj0ubahj1ubahjHubehjubehjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(j )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid46rah]h]h]h]Urefidhuhjh]rjXWindowsrr}r(hXWindowsrhjubahj0ubahj1ubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(j)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid47rah]h]h]h]Urefidhuhjh]rjX+celeryd keeps spawning processes at startuprr}r(hX+celeryd keeps spawning processes at startuprhjubahj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid48rah]h]h]h]Urefidhuhjh]r(jXThe rr}r(hXThe rhjubj)r}r(hX``-B``rh}r(h]h]h]h]h]uhjh]rjX-Brr}r(hUhjubahj ubjX / rr}r(hX / rhjubj)r}r(hX ``--beat``rh}r(h]h]h]h]h]uhjh]rjX--beatrr}r(hUhjubahj ubjX option to celeryd doesn't work?rr}r(hX option to celeryd doesn't work?rhjubehj0ubahj1ubahjHubj)r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj%)r}r(hUh}r(h]rUid49rah]h]h]h]Urefidhuhjh]r(j)r}r(hX`django-celery`rh}r(h]h]h]h]h]uhjh]rjX django-celeryrr}r(hUhjubahjubjX can't find settings?rr }r (hX can't find settings?r hjubehj0ubahj1ubahjHubehjubehjHubeubaubh)r }r (hX.. _faq-general:hhhhhhh}r(h]h]h]h]h]hh{uhK hhh]ubh)r}r(hUhhhhh}rh j shhh}r(h]h]h]h]r(hh{eh]r(hWh euhK hhh}rh{j sh]r(h)r}r(hj/hjhhhjh}r(h]h]h]h]h]hj*uhK hhh]rjXGeneralrr}r(hj/hjubaubh)r}r(hX.. _faq-when-to-use:hjhhhhh}r (h]h]h]h]h]hhuhKhhh]ubh)r!}r"(hUhjhhh}r#hPjshhh}r$(h]h]h]h]r%(hheh]r&(hFhPeuhKhhh}r'hjsh]r((h)r)}r*(hjGhj!hhhjh}r+(h]h]h]h]h]hjBuhKhhh]r,jX-What kinds of things should I use Celery for?r-r.}r/(hjGhj)ubaubj )r0}r1(hX}**Answer:** `Queue everything and delight everyone`_ is a good article describing why you would use a queue in a web context.hj!hhhj1h}r2(h]h]h]h]h]uhKhhh]r3(j)r4}r5(hX **Answer:**h}r6(h]h]h]h]h]uhj0h]r7jXAnswer:r8r9}r:(hUhj4ubahj ubjX r;}r<(hX hj0ubj%)r=}r>(hX(`Queue everything and delight everyone`_Uresolvedr?Khj0hj0h}r@(UnameX%Queue everything and delight everyoneUrefurirAXIhttp://decafbad.com/blog/2008/07/04/queue-everything-and-delight-everyonerBh]h]h]h]h]uh]rCjX%Queue everything and delight everyonerDrE}rF(hUhj=ubaubjXI is a good article describing why you would use a queue in a web context.rGrH}rI(hXI is a good article describing why you would use a queue in a web context.hj0ubeubh)rJ}rK(hXz.. _`Queue everything and delight everyone`: http://decafbad.com/blog/2008/07/04/queue-everything-and-delight-everyoneU referencedrLKhj!hhhhh}rM(jAjBh]rNhyah]h]h]h]rOh auhKhhh]ubj )rP}rQ(hX These are some common use cases:rRhj!hhhj1h}rS(h]h]h]h]h]uhKhhh]rTjX These are some common use cases:rUrV}rW(hjRhjPubaubj)rX}rY(hUhj!hhhjh}rZ(Ubulletr[X*h]h]h]h]h]uhKhhh]r\(j)r]}r^(hX Running something in the background. For example, to finish the web request as soon as possible, then update the users page incrementally. This gives the user the impression of good performance and "snappiness", even though the real work might actually take some time. hjXhhhjHh}r_(h]h]h]h]h]uhNhhh]r`j )ra}rb(hX Running something in the background. For example, to finish the web request as soon as possible, then update the users page incrementally. This gives the user the impression of good performance and "snappiness", even though the real work might actually take some time.rchj]hhhj1h}rd(h]h]h]h]h]uhKh]rejX Running something in the background. For example, to finish the web request as soon as possible, then update the users page incrementally. This gives the user the impression of good performance and "snappiness", even though the real work might actually take some time.rfrg}rh(hjchjaubaubaubj)ri}rj(hX6Running something after the web request has finished. hjXhhhjHh}rk(h]h]h]h]h]uhNhhh]rlj )rm}rn(hX5Running something after the web request has finished.rohjihhhj1h}rp(h]h]h]h]h]uhK!h]rqjX5Running something after the web request has finished.rrrs}rt(hjohjmubaubaubj)ru}rv(hXQMaking sure something is done, by executing it asynchronously and using retries. hjXhhhjHh}rw(h]h]h]h]h]uhNhhh]rxj )ry}rz(hXPMaking sure something is done, by executing it asynchronously and using retries.r{hjuhhhj1h}r|(h]h]h]h]h]uhK#h]r}jXPMaking sure something is done, by executing it asynchronously and using retries.r~r}r(hj{hjyubaubaubj)r}r(hXScheduling periodic work. hjXhhhjHh}r(h]h]h]h]h]uhNhhh]rj )r}r(hXScheduling periodic work.rhjhhhj1h}r(h]h]h]h]h]uhK&h]rjXScheduling periodic work.rr}r(hjhjubaubaubeubj )r}r(hXAnd to some degree:rhj!hhhj1h}r(h]h]h]h]h]uhK(hhh]rjXAnd to some degree:rr}r(hjhjubaubj)r}r(hUhj!hhhjh}r(j[X*h]h]h]h]h]uhK*hhh]r(j)r}r(hXDistributed computing. hjhhhjHh}r(h]h]h]h]h]uhNhhh]rj )r}r(hXDistributed computing.rhjhhhj1h}r(h]h]h]h]h]uhK*h]rjXDistributed computing.rr}r(hjhjubaubaubj)r}r(hXParallel execution. hjhhhjHh}r(h]h]h]h]h]uhNhhh]rj )r}r(hXParallel execution.rhjhhhj1h}r(h]h]h]h]h]uhK,h]rjXParallel execution.rr}r(hjhjubaubaubeubh)r}r(hX.. _faq-misconceptions:hj!hhhhh}r(h]h]h]h]h]hhuhK.hhh]ubeubeubh)r}r(hUhhhhh}rhXjshhh}r(h]h]h]h]r(hheh]r(h`hXeuhK1hhh}rhjsh]r(h)r}r(hjZhjhhhjh}r(h]h]h]h]h]hjUuhK1hhh]rjXMisconceptionsrr}r(hjZhjubaubh)r}r(hX .. _faq-serializion-is-a-choice:hjhhhhh}r(h]h]h]h]h]hhuhK3hhh]ubh)r}r(hUhjhhh}rhjshhh}r(h]h]h]h]r(hheh]r(hheuhK6hhh}rhjsh]r(h)r}r(hjphjhhhjh}r(h]h]h]h]h]hjkuhK6hhh]rjXIs Celery dependent on pickle?rr}r(hjphjubaubj )r}r(hX**Answer:** No.rhjhhhj1h}r(h]h]h]h]h]uhK8hhh]r(j)r}r(hX **Answer:**h}r(h]h]h]h]h]uhjh]rjXAnswer:rr}r(hUhjubahj ubjX No.rr}r(hX No.hjubeubj )r}r(hXvCelery can support any serialization scheme and has support for JSON/YAML and Pickle by default. You can even send one task using pickle, and another one with JSON seamlessly, this is because every task is associated with a content-type. The default serialization scheme is pickle because it's the most used, and it has support for sending complex objects as task arguments.rhjhhhj1h}r(h]h]h]h]h]uhK:hhh]rjXvCelery can support any serialization scheme and has support for JSON/YAML and Pickle by default. You can even send one task using pickle, and another one with JSON seamlessly, this is because every task is associated with a content-type. The default serialization scheme is pickle because it's the most used, and it has support for sending complex objects as task arguments.rr}r(hjhjubaubj )r}r(hXYou can set a global default serializer, the default serializer for a particular Task, or even what serializer to use when sending a single task instance.rhjhhhj1h}r(h]h]h]h]h]uhK@hhh]rjXYou can set a global default serializer, the default serializer for a particular Task, or even what serializer to use when sending a single task instance.rr}r(hjhjubaubh)r}r(hX".. _faq-is-celery-for-django-only:hjhhhhh}r(h]h]h]h]h]hhuhKDhhh]ubeubh)r}r(hUhjhhh}rh:jshhh}r(h]h]h]h]r(hheh]r(h+h:euhKGhhh}rhjsh]r(h)r}r(hjhjhhhjh}r(h]h]h]h]h]hj}uhKGhhh]rjXIs Celery for Django only?rr}r(hjhjubaubj )r}r(hX**Answer:** No.rhjhhhj1h}r (h]h]h]h]h]uhKIhhh]r (j)r }r (hX **Answer:**h}r (h]h]h]h]h]uhjh]rjXAnswer:rr}r(hUhj ubahj ubjX No.rr}r(hX No.hjubeubj )r}r(hXqCelery does not depend on Django anymore. To use Celery with Django you have to use the `django-celery`_ package.hjhhhj1h}r(h]h]h]h]h]uhKKhhh]r(jXXCelery does not depend on Django anymore. To use Celery with Django you have to use the rr}r(hXXCelery does not depend on Django anymore. To use Celery with Django you have to use the hjubj%)r}r(hX`django-celery`_j?Khjhj0h}r(UnameX django-celeryrjAX)http://pypi.python.org/pypi/django-celeryr h]h]h]h]h]uh]r!jX django-celeryr"r#}r$(hUhjubaubjX package.r%r&}r'(hX package.hjubeubh)r(}r)(hX>.. _`django-celery`: http://pypi.python.org/pypi/django-celeryjLKhjhhhhh}r*(jAj h]r+hah]h]h]h]r,h#auhKNhhh]ubh)r-}r.(hX$.. _faq-is-celery-for-rabbitmq-only:hjhhhhh}r/(h]h]h]h]h]hhuhKPhhh]ubeubh)r0}r1(hUhjhhh}r2hZj-shhh}r3(h]h]h]h]r4(hheh]r5(hhZeuhKShhh}r6hj-sh]r7(h)r8}r9(hjhj0hhhjh}r:(h]h]h]h]h]hjuhKShhh]r;jXDo I have to use AMQP/RabbitMQ?r<r=}r>(hjhj8ubaubj )r?}r@(hX**Answer**: No.rAhj0hhhj1h}rB(h]h]h]h]h]uhKUhhh]rC(j)rD}rE(hX **Answer**h}rF(h]h]h]h]h]uhj?h]rGjXAnswerrHrI}rJ(hUhjDubahj ubjX: No.rKrL}rM(hX: No.hj?ubeubj )rN}rO(hXEYou can also use Redis or an SQL database, see `Using other queues`_.hj0hhhj1h}rP(h]h]h]h]h]uhKWhhh]rQ(jX/You can also use Redis or an SQL database, see rRrS}rT(hX/You can also use Redis or an SQL database, see hjNubj%)rU}rV(hX`Using other queues`_j?KhjNhj0h}rW(UnameXUsing other queuesjAX7http://ask.github.com/celery/tutorials/otherqueues.htmlrXh]h]h]h]h]uh]rYjXUsing other queuesrZr[}r\(hUhjUubaubjX.r]}r^(hX.hjNubeubh)r_}r`(hXU.. _`Using other queues`: http://ask.github.com/celery/tutorials/otherqueues.htmljLKhj0hhhhh}ra(jAjXh]rbhah]h]h]h]rchbauhKZhhh]ubj )rd}re(hX?Redis or a database won't perform as well as an AMQP broker. If you have strict reliability requirements you are encouraged to use RabbitMQ or another AMQP broker. Redis/database also use polling, so they are likely to consume more resources. However, if you for some reason are not able to use AMQP, feel free to use these alternatives. They will probably work fine for most use cases, and note that the above points are not specific to Celery; If using Redis/database as a queue worked fine for you before, it probably will now. You can always upgrade later if you need to.rfhj0hhhj1h}rg(h]h]h]h]h]uhK]hhh]rhjX?Redis or a database won't perform as well as an AMQP broker. If you have strict reliability requirements you are encouraged to use RabbitMQ or another AMQP broker. Redis/database also use polling, so they are likely to consume more resources. However, if you for some reason are not able to use AMQP, feel free to use these alternatives. They will probably work fine for most use cases, and note that the above points are not specific to Celery; If using Redis/database as a queue worked fine for you before, it probably will now. You can always upgrade later if you need to.rirj}rk(hjfhjdubaubh)rl}rm(hX.. _faq-is-celery-multilingual:hj0hhhhh}rn(h]h]h]h]h]hhuhKghhh]ubeubh)ro}rp(hUhjhhh}rqhTjlshhh}rr(h]h]h]h]rs(hheh]rt(hhhTeuhKjhhh}ruhjlsh]rv(h)rw}rx(hjhjohhhjh}ry(h]h]h]h]h]hjuhKjhhh]rzjXIs Celery multilingual?r{r|}r}(hjhjwubaubj )r~}r(hX**Answer:** Yes.rhjohhhj1h}r(h]h]h]h]h]uhKlhhh]r(j)r}r(hX **Answer:**h}r(h]h]h]h]h]uhj~h]rjXAnswer:rr}r(hUhjubahj ubjX Yes.rr}r(hX Yes.hj~ubeubj )r}r(hX:mod:`~celery.bin.celeryd` is an implementation of Celery in python. If the language has an AMQP client, there shouldn't be much work to create a worker in your language. A Celery worker is just a program connecting to the broker to process messages.hjohhhj1h}r(h]h]h]h]h]uhKnhhh]r(csphinx.addnodes pending_xref r)r}r(hX:mod:`~celery.bin.celeryd`rhjhhhU pending_xrefrh}r(UreftypeXmodUrefwarnrU reftargetrXcelery.bin.celerydU refdomainXpyrh]h]U refexplicith]h]h]UrefdocrXfaqrUpy:classrNU py:modulerNuhKnh]rj)r}r(hjh}r(h]h]r(UxrefrjXpy-modreh]h]h]uhjh]rjXcelerydrr}r(hUhjubahj ubaubjX is an implementation of Celery in python. If the language has an AMQP client, there shouldn't be much work to create a worker in your language. A Celery worker is just a program connecting to the broker to process messages.rr}r(hX is an implementation of Celery in python. If the language has an AMQP client, there shouldn't be much work to create a worker in your language. A Celery worker is just a program connecting to the broker to process messages.hjubeubj )r}r(hXAlso, there's another way to be language independent, and that is to use REST tasks, instead of your tasks being functions, they're URLs. With this information you can even create simple web servers that enable preloading of code. See: `User Guide: Remote Tasks`_.hjohhhj1h}r(h]h]h]h]h]uhKshhh]r(jXAlso, there's another way to be language independent, and that is to use REST tasks, instead of your tasks being functions, they're URLs. With this information you can even create simple web servers that enable preloading of code. See: rr}r(hXAlso, there's another way to be language independent, and that is to use REST tasks, instead of your tasks being functions, they're URLs. With this information you can even create simple web servers that enable preloading of code. See: hjubj%)r}r(hX`User Guide: Remote Tasks`_j?Khjhj0h}r(UnameXUser Guide: Remote TasksjAX8http://ask.github.com/celery/userguide/remote-tasks.htmlrh]h]h]h]h]uh]rjXUser Guide: Remote Tasksrr}r(hUhjubaubjX.r}r(hX.hjubeubh)r}r(hX\.. _`User Guide: Remote Tasks`: http://ask.github.com/celery/userguide/remote-tasks.htmljLKhjohhhhh}r(jAjh]rh}ah]h]h]h]rhauhKxhhh]ubh)r}r(hX.. _faq-troubleshooting:hjohhhhh}r(h]h]h]h]h]hhuhK{hhh]ubeubeubh)r}r(hUhhhhh}rhKjshhh}r(h]h]h]h]r(hheh]r(h%hKeuhK~hhh}rhjsh]r(h)r}r(hjhjhhhjh}r(h]h]h]h]h]hjuhK~hhh]rjXTroubleshootingrr}r(hjhjubaubh)r}r(hX.. _faq-mysql-deadlocks:hjhhhhh}r(h]h]h]h]h]hhvuhKhhh]ubh)r}r(hUjLKhjhhh}rhjshhh}r(h]h]h]h]r(hhveh]r(hheuhKhhh}rhvjsh]r(h)r}r(hjhjhhhjh}r(h]h]h]h]h]hjuhKhhh]rjX1MySQL is throwing deadlock errors, what can I do?rr}r(hjhjubaubj )r}r(hX**Answer:** MySQL has default isolation level set to ``REPEATABLE-READ``, if you don't really need that, set it to ``READ-COMMITTED``. You can do that by adding the following to your :file:`my.cnf`::hjhhhj1h}r(h]h]h]h]h]uhKhhh]r(j)r}r(hX **Answer:**h}r(h]h]h]h]h]uhjh]rjXAnswer:rr}r(hUhjubahj ubjX* MySQL has default isolation level set to rr}r(hX* MySQL has default isolation level set to hjubj)r}r(hX``REPEATABLE-READ``h}r(h]h]h]h]h]uhjh]rjXREPEATABLE-READrr}r(hUhjubahj ubjX+, if you don't really need that, set it to rr}r(hX+, if you don't really need that, set it to hjubj)r}r(hX``READ-COMMITTED``h}r(h]h]h]h]h]uhjh]rjXREAD-COMMITTEDrr}r(hUhjubahj ubjX2. You can do that by adding the following to your rr}r(hX2. You can do that by adding the following to your hjubj)r}r (hUh}r (h]h]h]h]r Xfiler aUrolej h]uhjh]r jXmy.cnfrr}r(hXmy.cnfhjubahj ubjX:r}r(hX:hjubeubcdocutils.nodes literal_block r)r}r(hX/[mysqld] transaction-isolation = READ-COMMITTEDhjhhhU literal_blockrh}r(U xml:spacerUpreserverh]h]h]h]h]uhKhhh]rjX/[mysqld] transaction-isolation = READ-COMMITTEDrr}r(hUhjubaubj )r}r(hXFor more information about InnoDB`s transaction model see `MySQL - The InnoDB Transaction Model and Locking`_ in the MySQL user manual.hjhhhj1h}r (h]h]h]h]h]uhKhhh]r!(jX:For more information about InnoDB`s transaction model see r"r#}r$(hX:For more information about InnoDB`s transaction model see hjubj%)r%}r&(hX3`MySQL - The InnoDB Transaction Model and Locking`_j?Khjhj0h}r'(UnameX0MySQL - The InnoDB Transaction Model and LockingjAXDhttp://dev.mysql.com/doc/refman/5.1/en/innodb-transaction-model.htmlr(h]h]h]h]h]uh]r)jX0MySQL - The InnoDB Transaction Model and Lockingr*r+}r,(hUhj%ubaubjX in the MySQL user manual.r-r.}r/(hX in the MySQL user manual.hjubeubj )r0}r1(hX=(Thanks to Honza Kral and Anton Tsigularov for this solution)r2hjhhhj1h}r3(h]h]h]h]h]uhKhhh]r4jX=(Thanks to Honza Kral and Anton Tsigularov for this solution)r5r6}r7(hj2hj0ubaubh)r8}r9(hX|.. _`MySQL - The InnoDB Transaction Model and Locking`: http://dev.mysql.com/doc/refman/5.1/en/innodb-transaction-model.htmljLKhjhhhhh}r:(jAj(h]r;hah]h]h]h]r<h?auhKhhh]ubh)r=}r>(hX.. _faq-worker-hanging:hjhhhhh}r?(h]h]h]h]h]hhuhKhhh]ubeubh)r@}rA(hUhjhhh}rBh1j=shhh}rC(h]h]h]h]rD(hheh]rE(h.h1euhKhhh}rFhj=sh]rG(h)rH}rI(hjhj@hhhjh}rJ(h]h]h]h]h]hjuhKhhh]rKjX+celeryd is not doing anything, just hangingrLrM}rN(hjhjHubaubcdocutils.nodes definition_list rO)rP}rQ(hUhj@hhhUdefinition_listrRh}rS(h]h]h]h]h]uhNhhh]rTcdocutils.nodes definition_list_item rU)rV}rW(hXt**Answer:** See `MySQL is throwing deadlock errors, what can I do?`_. or `Why is Task.delay/apply\* just hanging?`. hjPhhhUdefinition_list_itemrXh}rY(h]h]h]h]h]uhKh]rZ(cdocutils.nodes term r[)r\}r](hXE**Answer:** See `MySQL is throwing deadlock errors, what can I do?`_.r^hjVhhhUtermr_h}r`(h]h]h]h]h]uhKh]ra(j)rb}rc(hX **Answer:**h}rd(h]h]h]h]h]uhj\h]rejXAnswer:rfrg}rh(hUhjbubahj ubjX See rirj}rk(hX See hj\ubj%)rl}rm(hX4`MySQL is throwing deadlock errors, what can I do?`_j?Khj\hj0h}rn(UnameX1MySQL is throwing deadlock errors, what can I do?h]h]h]h]h]hhuh]rojX1MySQL is throwing deadlock errors, what can I do?rprq}rr(hUhjlubaubjX.rs}rt(hX.hj\ubeubcdocutils.nodes definition ru)rv}rw(hUh}rx(h]h]h]h]h]uhjVh]ryj )rz}r{(hX-or `Why is Task.delay/apply\* just hanging?`.hjvhhhj1h}r|(h]h]h]h]h]uhKh]r}(jXor r~r}r(hXor hjzubj)r}r(hX)`Why is Task.delay/apply\* just hanging?`h}r(h]h]h]h]h]uhjzh]rjX&Why is Task.delay/apply* just hanging?rr}r(hUhjubahjubjX.r}r(hX.hjzubeubahU definitionrubeubaubh)r}r(hX.. _faq-publish-hanging:hj@hhhhh}r(h]h]h]h]h]hhuhKhhh]ubeubh)r}r(hUhjhhh}rh name messages consumers Listing queues ... celery 2891 2hjhhhjh}r>(jjh]h]h]h]h]uhKhhh]r?jXf$ rabbitmqctl list_queues -p name messages consumers Listing queues ... celery 2891 2r@rA}rB(hUhj<ubaubj )rC}rD(hX}This shows that there's 2891 messages waiting to be processed in the task queue, and there are two consumers processing them.rEhjhhhj1h}rF(h]h]h]h]h]uhKhhh]rGjX}This shows that there's 2891 messages waiting to be processed in the task queue, and there are two consumers processing them.rHrI}rJ(hjEhjCubaubj )rK}rL(hXOne reason that the queue is never emptied could be that you have a stale worker process taking the messages hostage. This could happen if celeryd wasn't properly shut down.rMhjhhhj1h}rN(h]h]h]h]h]uhKhhh]rOjXOne reason that the queue is never emptied could be that you have a stale worker process taking the messages hostage. This could happen if celeryd wasn't properly shut down.rPrQ}rR(hjMhjKubaubj )rS}rT(hXWhen a message is received by a worker the broker waits for it to be acknowledged before marking the message as processed. The broker will not re-send that message to another consumer until the consumer is shut down properly.rUhjhhhj1h}rV(h]h]h]h]h]uhKhhh]rWjXWhen a message is received by a worker the broker waits for it to be acknowledged before marking the message as processed. The broker will not re-send that message to another consumer until the consumer is shut down properly.rXrY}rZ(hjUhjSubaubj )r[}r\(hXPIf you hit this problem you have to kill all workers manually and restart them::hjhhhj1h}r](h]h]h]h]h]uhKhhh]r^jXOIf you hit this problem you have to kill all workers manually and restart them:r_r`}ra(hXOIf you hit this problem you have to kill all workers manually and restart them:hj[ubaubj)rb}rc(hX7ps auxww | grep celeryd | awk '{print $2}' | xargs killhjhhhjh}rd(jjh]h]h]h]h]uhKhhh]rejX7ps auxww | grep celeryd | awk '{print $2}' | xargs killrfrg}rh(hUhjbubaubj )ri}rj(hXYou might have to wait a while until all workers have finished the work they're doing. If it's still hanging after a long time you can kill them by force with::hjhhhj1h}rk(h]h]h]h]h]uhKhhh]rljXYou might have to wait a while until all workers have finished the work they're doing. If it's still hanging after a long time you can kill them by force with:rmrn}ro(hXYou might have to wait a while until all workers have finished the work they're doing. If it's still hanging after a long time you can kill them by force with:hjiubaubj)rp}rq(hX:ps auxww | grep celeryd | awk '{print $2}' | xargs kill -9hjhhhjh}rr(jjh]h]h]h]h]uhKhhh]rsjX:ps auxww | grep celeryd | awk '{print $2}' | xargs kill -9rtru}rv(hUhjpubaubh)rw}rx(hX.. _faq-task-does-not-run:hjhhhhh}ry(h]h]h]h]h]hhuhKhhh]ubeubh)rz}r{(hUjLKhjhhh}r|hgjwshhh}r}(h]h]h]h]r~(hheh]r(hUhgeuhKhhh}rhjwsh]r(h)r}r(hjHhjzhhhjh}r(h]h]h]h]h]hjCuhKhhh]rjXWhy won't my Task run?rr}r(hjHhjubaubj )r}r(hXT**Answer:** There might be syntax errors preventing the tasks module being imported.rhjzhhhj1h}r(h]h]h]h]h]uhKhhh]r(j)r}r(hX **Answer:**h}r(h]h]h]h]h]uhjh]rjXAnswer:rr}r(hUhjubahj ubjXI There might be syntax errors preventing the tasks module being imported.rr}r(hXI There might be syntax errors preventing the tasks module being imported.hjubeubj )r}r(hXRYou can find out if Celery is able to run the task by executing the task manually:rhjzhhhj1h}r(h]h]h]h]h]uhKhhh]rjXRYou can find out if Celery is able to run the task by executing the task manually:rr}r(hjhjubaubcdocutils.nodes doctest_block r)r}r(hXE>>> from myapp.tasks import MyPeriodicTask >>> MyPeriodicTask.delay()hjzhNhU doctest_blockrh}r(jjh]h]h]h]h]uhNhhh]rjXE>>> from myapp.tasks import MyPeriodicTask >>> MyPeriodicTask.delay()rr}r(hUhjubaubj )r}r(hXcWatch celeryd`s log file to see if it's able to find the task, or if some other error is happening.rhjzhhhj1h}r(h]h]h]h]h]uhKhhh]rjXcWatch celeryd`s log file to see if it's able to find the task, or if some other error is happening.rr}r(hjhjubaubh)r}r(hX#.. _faq-periodic-task-does-not-run:hjzhhhhh}r(h]h]h]h]h]hhuhKhhh]ubeubh)r}r(hUhjhhh}rhcjshhh}r(h]h]h]h]r(hheh]r(h-hceuhKhhh}rhjsh]r(h)r}r(hjZhjhhhjh}r(h]h]h]h]h]hjUuhKhhh]rjXWhy won't my Periodic Task run?rr}r(hjZhjubaubj )r}r(hX***Answer:** See `Why won't my Task run?`_.rhjhhhj1h}r(h]h]h]h]h]uhKhhh]r(j)r}r(hX **Answer:**h}r(h]h]h]h]h]uhjh]rjXAnswer:rr}r(hUhjubahj ubjX See rr}r(hX See hjubj%)r}r(hX`Why won't my Task run?`_j?Khjhj0h}r(UnameXWhy won't my Task run?h]h]h]h]h]hhuh]rjXWhy won't my Task run?rr}r(hUhjubaubjX.r}r(hX.hjubeubh)r}r(hX.. _faq-purge-the-queue:hjhhhhh}r(h]h]h]h]h]hhuhKhhh]ubeubh)r}r(hUhjhhh}rhDjshhh}r(h]h]h]h]r(hheh]r(hhDeuhKhhh}rhjsh]r(h)r}r(hjlhjhhhjh}r(h]h]h]h]h]hjguhKhhh]rjX#How do I discard all waiting tasks?rr}r(hjlhjubaubj )r}r(hXD**Answer:** Use :func:`~celery.task.control.discard_all`, like this:rhjhhhj1h}r(h]h]h]h]h]uhKhhh]r(j)r}r(hX **Answer:**h}r(h]h]h]h]h]uhjh]rjXAnswer:rr}r(hUhjubahj ubjX Use rr}r(hX Use hjubj)r}r(hX(:func:`~celery.task.control.discard_all`rhjhhhjh}r(UreftypeXfuncjjXcelery.task.control.discard_allU refdomainXpyr h]h]U refexplicith]h]h]jjjNjNuhKh]r j)r }r (hjh}r (h]h]r (jj Xpy-funcr eh]h]h]uhjh]r jX discard_all()r r }r (hUhj ubahj ubaubjX , like this:r r }r (hX , like this:hjubeubj)r }r (hXF>>> from celery.task.control import discard_all >>> discard_all() 1753hjhNhjh}r (jjh]h]h]h]h]uhNhhh]r jXF>>> from celery.task.control import discard_all >>> discard_all() 1753r r }r (hUhj ubaubj )r }r (hX2The number 1753 is the number of messages deleted.r hjhhhj1h}r (h]h]h]h]h]uhMhhh]r jX2The number 1753 is the number of messages deleted.r r }r (hj hj ubaubj )r }r (hXyYou can also start :mod:`~celery.bin.celeryd` with the :option:`--discard` argument which will accomplish the same thing.hjhhhj1h}r (h]h]h]h]h]uhMhhh]r (jXYou can also start r! r" }r# (hXYou can also start hj ubj)r$ }r% (hX:mod:`~celery.bin.celeryd`r& hj hhhjh}r' (UreftypeXmodjjXcelery.bin.celerydU refdomainXpyr( h]h]U refexplicith]h]h]jjjNjNuhMh]r) j)r* }r+ (hj& h}r, (h]h]r- (jj( Xpy-modr. eh]h]h]uhj$ h]r/ jXcelerydr0 r1 }r2 (hUhj* ubahj ubaubjX with the r3 r4 }r5 (hX with the hj ubj)r6 }r7 (hX:option:`--discard`r8 hj hhhjh}r9 (UreftypeXoptionjjX --discardU refdomainXstdr: U refprogramr; Nh]h]U refexplicith]h]h]jjuhMh]r< csphinx.addnodes literal_emphasis r= )r> }r? (hj8 h}r@ (h]h]rA (jj: X std-optionrB eh]h]h]uhj6 h]rC jX --discardrD rE }rF (hUhj> ubahUliteral_emphasisrG ubaubjX/ argument which will accomplish the same thing.rH rI }rJ (hX/ argument which will accomplish the same thing.hj ubeubh)rK }rL (hX".. _faq-messages-left-after-purge:hjhhhhh}rM (h]h]h]h]h]hhuhMhhh]ubeubh)rN }rO (hUhjhhh}rP hejK shhh}rQ (h]h]h]h]rR (hheh]rS (hheeuhMhhh}rT hjK sh]rU (h)rV }rW (hj~hjN hhhjh}rX (h]h]h]h]h]hjyuhMhhh]rY jXHI've discarded messages, but there are still messages left in the queue?rZ r[ }r\ (hj~hjV ubaubj )r] }r^ (hX**Answer:** Tasks are acknowledged (removed from the queue) as soon as they are actually executed. After the worker has received a task, it will take some time until it is actually executed, especially if there are a lot of tasks already waiting for execution. Messages that are not acknowledged are held on to by the worker until it closes the connection to the broker (AMQP server). When that connection is closed (e.g. because the worker was stopped) the tasks will be re-sent by the broker to the next available worker (or the same worker when it has been restarted), so to properly purge the queue of waiting tasks you have to stop all the workers, and then discard the tasks using :func:`~celery.task.control.discard_all`.hjN hhhj1h}r_ (h]h]h]h]h]uhM hhh]r` (j)ra }rb (hX **Answer:**h}rc (h]h]h]h]h]uhj] h]rd jXAnswer:re rf }rg (hUhja ubahj ubjX Tasks are acknowledged (removed from the queue) as soon as they are actually executed. After the worker has received a task, it will take some time until it is actually executed, especially if there are a lot of tasks already waiting for execution. Messages that are not acknowledged are held on to by the worker until it closes the connection to the broker (AMQP server). When that connection is closed (e.g. because the worker was stopped) the tasks will be re-sent by the broker to the next available worker (or the same worker when it has been restarted), so to properly purge the queue of waiting tasks you have to stop all the workers, and then discard the tasks using rh ri }rj (hX Tasks are acknowledged (removed from the queue) as soon as they are actually executed. After the worker has received a task, it will take some time until it is actually executed, especially if there are a lot of tasks already waiting for execution. Messages that are not acknowledged are held on to by the worker until it closes the connection to the broker (AMQP server). When that connection is closed (e.g. because the worker was stopped) the tasks will be re-sent by the broker to the next available worker (or the same worker when it has been restarted), so to properly purge the queue of waiting tasks you have to stop all the workers, and then discard the tasks using hj] ubj)rk }rl (hX(:func:`~celery.task.control.discard_all`rm hj] hhhjh}rn (UreftypeXfuncjjXcelery.task.control.discard_allU refdomainXpyro h]h]U refexplicith]h]h]jjjNjNuhM h]rp j)rq }rr (hjm h}rs (h]h]rt (jjo Xpy-funcru eh]h]h]uhjk h]rv jX discard_all()rw rx }ry (hUhjq ubahj ubaubjX.rz }r{ (hX.hj] ubeubh)r| }r} (hX.. _faq-results:hjN hhhhh}r~ (h]h]h]h]h]hhuhMhhh]ubeubeubh)r }r (hUhhhhh}r h8j| shhh}r (h]h]h]h]r (h|heh]r (h h8euhMhhh}r hj| sh]r (h)r }r (hjhj hhhjh}r (h]h]h]h]h]hjuhMhhh]r jXResultsr r }r (hjhj ubaubh)r }r (hX.. _faq-get-result-by-task-id:hj hhhhh}r (h]h]h]h]h]hhuhMhhh]ubh)r }r (hUhj hhh}r h"j shhh}r (h]h]h]h]r (hheh]r (hBh"euhMhhh}r hj sh]r (h)r }r (hjhj hhhjh}r (h]h]h]h]h]hjuhMhhh]r jXEHow do I get the result of a task if I have the ID that points there?r r }r (hjhj ubaubj )r }r (hX&**Answer**: Use ``Task.AsyncResult``::r hj hhhj1h}r (h]h]h]h]h]uhMhhh]r (j)r }r (hX **Answer**h}r (h]h]h]h]h]uhj h]r jXAnswerr r }r (hUhj ubahj ubjX: Use r r }r (hX: Use hj ubj)r }r (hX``Task.AsyncResult``h}r (h]h]h]h]h]uhj h]r jXTask.AsyncResultr r }r (hUhj ubahj ubjX:r }r (hX:hj ubeubj)r }r (hX9>>> result = MyTask.AsyncResult(task_id) >>> result.get()hj hhhjh}r (jjh]h]h]h]h]uhM!hhh]r jX9>>> result = MyTask.AsyncResult(task_id) >>> result.get()r r }r (hUhj ubaubj )r }r (hXmThis will give you a :class:`~celery.result.BaseAsyncResult` instance using the tasks current result backend.hj hhhj1h}r (h]h]h]h]h]uhM$hhh]r (jXThis will give you a r r }r (hXThis will give you a hj ubj)r }r (hX':class:`~celery.result.BaseAsyncResult`r hj hhhjh}r (UreftypeXclassjjXcelery.result.BaseAsyncResultU refdomainXpyr h]h]U refexplicith]h]h]jjjNjNuhM$h]r j)r }r (hj h}r (h]h]r (jj Xpy-classr eh]h]h]uhj h]r jXBaseAsyncResultr r }r (hUhj ubahj ubaubjX1 instance using the tasks current result backend.r r }r (hX1 instance using the tasks current result backend.hj ubeubj )r }r (hXoIf you need to specify a custom result backend you should use :class:`celery.result.BaseAsyncResult` directly::hj hhhj1h}r (h]h]h]h]h]uhM'hhh]r (jX>If you need to specify a custom result backend you should use r r }r (hX>If you need to specify a custom result backend you should use hj ubj)r }r (hX&:class:`celery.result.BaseAsyncResult`r hj hhhjh}r (UreftypeXclassjjXcelery.result.BaseAsyncResultU refdomainXpyr h]h]U refexplicith]h]h]jjjNjNuhM'h]r j)r }r (hj h}r (h]h]r (jj Xpy-classr eh]h]h]uhj h]r jXcelery.result.BaseAsyncResultr r }r (hUhj ubahj ubaubjX directly:r r }r (hX directly:hj ubeubj)r }r (hXq>>> from celery.result import BaseAsyncResult >>> result = BaseAsyncResult(task_id, backend=...) >>> result.get()hj hhhjh}r (jjh]h]h]h]h]uhM*hhh]r jXq>>> from celery.result import BaseAsyncResult >>> result = BaseAsyncResult(task_id, backend=...) >>> result.get()r r }r (hUhj ubaubh)r }r (hX.. _faq-security:hj hhhhh}r (h]h]h]h]h]hhuhM.hhh]ubeubeubh)r }r (hUhhhhh}r h)j shhh}r (h]h]h]h]r (hheh]r (h$h)euhM1hhh}r hj sh]r (h)r }r (hjhj hhhjh}r (h]h]h]h]h]hjuhM1hhh]r jXSecurityr r }r (hjhj ubaubh)r }r (hUhj hhhhh}r (h]h]h]h]r hah]r h*auhM4hhh]r (h)r }r (hX(Isn't using `pickle` a security concern?r hj hhhjh}r (h]h]h]h]h]hjuhM4hhh]r (jX Isn't using r r }r (hjhj ubj)r }r (hjh}r (h]h]h]h]h]uhj h]r jXpickler r }r (hUhj ubahjubjX a security concern?r r }r! (hjhj ubeubj )r" }r# (hX**Answer**: Yes, indeed it is.r$ hj hhhj1h}r% (h]h]h]h]h]uhM6hhh]r& (j)r' }r( (hX **Answer**h}r) (h]h]h]h]h]uhj" h]r* jXAnswerr+ r, }r- (hUhj' ubahj ubjX: Yes, indeed it is.r. r/ }r0 (hX: Yes, indeed it is.hj" ubeubj )r1 }r2 (hXYou are right to have a security concern, as this can indeed be a real issue. It is essential that you protect against unauthorized access to your broker, databases and other services transmitting pickled data.r3 hj hhhj1h}r4 (h]h]h]h]h]uhM8hhh]r5 jXYou are right to have a security concern, as this can indeed be a real issue. It is essential that you protect against unauthorized access to your broker, databases and other services transmitting pickled data.r6 r7 }r8 (hj3 hj1 ubaubj )r9 }r: (hXFor the task messages you can set the :setting:`CELERY_TASK_SERIALIZER` setting to "json" or "yaml" instead of pickle. There is currently no alternative solution for task results (but writing a custom result backend using JSON is a simple task)hj hhhj1h}r; (h]h]h]h]h]uhM=hhh]r< (jX&For the task messages you can set the r= r> }r? (hX&For the task messages you can set the hj9 ubj)r@ }rA (hX!:setting:`CELERY_TASK_SERIALIZER`rB hj9 hhhjh}rC (UreftypeXsettingjjXCELERY_TASK_SERIALIZERU refdomainXstdrD h]h]U refexplicith]h]h]jjuhM=h]rE j)rF }rG (hjB h}rH (h]h]rI (jjD X std-settingrJ eh]h]h]uhj@ h]rK jXCELERY_TASK_SERIALIZERrL rM }rN (hUhjF ubahj ubaubjX setting to "json" or "yaml" instead of pickle. There is currently no alternative solution for task results (but writing a custom result backend using JSON is a simple task)rO rP }rQ (hX setting to "json" or "yaml" instead of pickle. There is currently no alternative solution for task results (but writing a custom result backend using JSON is a simple task)hj9 ubeubj )rR }rS (hXNote that this is not just something you should be aware of with Celery, for example also Django uses pickle for its cache client.rT hj hhhj1h}rU (h]h]h]h]h]uhMBhhh]rV jXNote that this is not just something you should be aware of with Celery, for example also Django uses pickle for its cache client.rW rX }rY (hjT hjR ubaubeubh)rZ }r[ (hUhj hhhhh}r\ (h]h]h]h]r] hah]r^ hauhMFhhh]r_ (h)r` }ra (hjhjZ hhhjh}rb (h]h]h]h]h]hjuhMFhhh]rc jXCan messages be encrypted?rd re }rf (hjhj` ubaubj )rg }rh (hX**Answer**: Some AMQP brokers supports using SSL (including RabbitMQ). You can enable this using the :setting:`BROKER_USE_SSL` setting.hjZ hhhj1h}ri (h]h]h]h]h]uhMHhhh]rj (j)rk }rl (hX **Answer**h}rm (h]h]h]h]h]uhjg h]rn jXAnswerro rp }rq (hUhjk ubahj ubjX[: Some AMQP brokers supports using SSL (including RabbitMQ). You can enable this using the rr rs }rt (hX[: Some AMQP brokers supports using SSL (including RabbitMQ). You can enable this using the hjg ubj)ru }rv (hX:setting:`BROKER_USE_SSL`rw hjg hhhjh}rx (UreftypeXsettingjjXBROKER_USE_SSLU refdomainXstdry h]h]U refexplicith]h]h]jjuhMHh]rz j)r{ }r| (hjw h}r} (h]h]r~ (jjy X std-settingr eh]h]h]uhju h]r jXBROKER_USE_SSLr r }r (hUhj{ ubahj ubaubjX setting.r r }r (hX setting.hjg ubeubj )r }r (hXIt is also possible to add additional encryption and security to messages, if you have a need for this then you should contact the :ref:`mailing-list`.hjZ hhhj1h}r (h]h]h]h]h]uhMKhhh]r (jXIt is also possible to add additional encryption and security to messages, if you have a need for this then you should contact the r r }r (hXIt is also possible to add additional encryption and security to messages, if you have a need for this then you should contact the hj ubj)r }r (hX:ref:`mailing-list`r hj hhhjh}r (UreftypeXrefjjX mailing-listU refdomainXstdr h]h]U refexplicith]h]h]jjuhMKh]r cdocutils.nodes emphasis r )r }r (hj h}r (h]h]r (jj Xstd-refr eh]h]h]uhj h]r jX mailing-listr r }r (hUhj ubahUemphasisr ubaubjX.r }r (hX.hj ubeubeubh)r }r (hUhj hhhhh}r (h]h]h]h]r hah]r h>auhMOhhh]r (h)r }r (hX-Is it safe to run :program:`celeryd` as root?r hj hhhjh}r (h]h]h]h]h]hjuhMOhhh]r (jXIs it safe to run r r }r (hjhj ubj)r }r (hjh}r (h]h]r jah]h]h]uhj h]r jXcelerydr r }r (hUhj ubahj ubjX as root?r r }r (hjhj ubeubj )r }r (hX**Answer**: No!r hj hhhj1h}r (h]h]h]h]h]uhMQhhh]r (j)r }r (hX **Answer**h}r (h]h]h]h]h]uhj h]r jXAnswerr r }r (hUhj ubahj ubjX: No!r r }r (hX: No!hj ubeubj )r }r (hXWe're not currently aware of any security issues, but it would be incredibly naive to assume that they don't exist, so running the Celery services (:program:`celeryd`, :program:`celerybeat`, :program:`celeryev`, etc) as an unprivileged user is recommended.hj hhhj1h}r (h]h]h]h]h]uhMShhh]r (jXWe're not currently aware of any security issues, but it would be incredibly naive to assume that they don't exist, so running the Celery services (r r }r (hXWe're not currently aware of any security issues, but it would be incredibly naive to assume that they don't exist, so running the Celery services (hj ubj)r }r (hX:program:`celeryd`h}r (h]h]r jah]h]h]uhj h]r jXcelerydr r }r (hUhj ubahj ubjX, r r }r (hX, hj ubj)r }r (hX:program:`celerybeat`h}r (h]h]r jah]h]h]uhj h]r jX celerybeatr r }r (hUhj ubahj ubjX, r r }r (hX, hj ubj)r }r (hX:program:`celeryev`h}r (h]h]r jah]h]h]uhj h]r jXceleryevr r }r (hUhj ubahj ubjX., etc) as an unprivileged user is recommended.r r }r (hX., etc) as an unprivileged user is recommended.hj ubeubh)r }r (hX.. _faq-brokers:hj hhhhh}r (h]h]h]h]h]hhuhMXhhh]ubeubeubh)r }r (hUhhhhh}r h3j shhh}r (h]h]h]h]r (hheh]r (hQh3euhM[hhh}r hj sh]r (h)r }r (hj"hj hhhjh}r (h]h]h]h]h]hjuhM[hhh]r jXBrokersr r }r (hj"hj ubaubh)r }r (hUhj hhhhh}r (h]h]h]h]r hah]r hiauhM^hhh]r (h)r }r (hj8hj hhhjh}r (h]h]h]h]h]hj3uhM^hhh]r jXWhy is RabbitMQ crashing?r r }r (hj8hj ubaubj )r }r (hX**Answer:** RabbitMQ will crash if it runs out of memory. This will be fixed in a future release of RabbitMQ. please refer to the RabbitMQ FAQ: http://www.rabbitmq.com/faq.html#node-runs-out-of-memoryhj hhhj1h}r (h]h]h]h]h]uhM`hhh]r (j)r }r (hX **Answer:**h}r (h]h]h]h]h]uhj h]r jXAnswer:r r }r (hUhj ubahj ubjX RabbitMQ will crash if it runs out of memory. This will be fixed in a future release of RabbitMQ. please refer to the RabbitMQ FAQ: r r }r (hX RabbitMQ will crash if it runs out of memory. This will be fixed in a future release of RabbitMQ. please refer to the RabbitMQ FAQ: hj ubj%)r }r (hX8http://www.rabbitmq.com/faq.html#node-runs-out-of-memoryr h}r! (Urefurij h]h]h]h]h]uhj h]r" jX8http://www.rabbitmq.com/faq.html#node-runs-out-of-memoryr# r$ }r% (hUhj ubahj0ubeubcdocutils.nodes note r& )r' }r( (hXThis is no longer the case, RabbitMQ versions 2.0 and above includes a new persister, that is tolerant to out of memory errors. RabbitMQ 2.1 or higher is recommended for Celery. If you're still running an older version of RabbitMQ and experience crashes, then please upgrade!hj hhhUnoter) h}r* (h]h]h]h]h]uhNhhh]r+ (j )r, }r- (hXThis is no longer the case, RabbitMQ versions 2.0 and above includes a new persister, that is tolerant to out of memory errors. RabbitMQ 2.1 or higher is recommended for Celery.r. hj' hhhj1h}r/ (h]h]h]h]h]uhMfh]r0 jXThis is no longer the case, RabbitMQ versions 2.0 and above includes a new persister, that is tolerant to out of memory errors. RabbitMQ 2.1 or higher is recommended for Celery.r1 r2 }r3 (hj. hj, ubaubj )r4 }r5 (hXaIf you're still running an older version of RabbitMQ and experience crashes, then please upgrade!r6 hj' hhhj1h}r7 (h]h]h]h]h]uhMjh]r8 jXaIf you're still running an older version of RabbitMQ and experience crashes, then please upgrade!r9 r: }r; (hj6 hj4 ubaubeubj )r< }r= (hXMisconfiguration of Celery can eventually lead to a crash on older version of RabbitMQ. Even if it doesn't crash, this can still consume a lot of resources, so it is very important that you are aware of the common pitfalls.r> hj hhhj1h}r? (h]h]h]h]h]uhMmhhh]r@ jXMisconfiguration of Celery can eventually lead to a crash on older version of RabbitMQ. Even if it doesn't crash, this can still consume a lot of resources, so it is very important that you are aware of the common pitfalls.rA rB }rC (hj> hj< ubaubj)rD }rE (hUhj hhhjh}rF (j[X*h]h]h]h]h]uhMrhhh]rG j)rH }rI (hXEvents. hjD hhhjHh}rJ (h]h]h]h]h]uhNhhh]rK j )rL }rM (hXEvents.rN hjH hhhj1h}rO (h]h]h]h]h]uhMrh]rP jXEvents.rQ rR }rS (hjN hjL ubaubaubaubj )rT }rU (hXRunning :mod:`~celery.bin.celeryd` with the :option:`-E`/:option:`--events` option will send messages for events happening inside of the worker.hj hhhj1h}rV (h]h]h]h]h]uhMthhh]rW (jXRunning rX rY }rZ (hXRunning hjT ubj)r[ }r\ (hX:mod:`~celery.bin.celeryd`r] hjT hhhjh}r^ (UreftypeXmodjjXcelery.bin.celerydU refdomainXpyr_ h]h]U refexplicith]h]h]jjjNjNuhMth]r` j)ra }rb (hj] h}rc (h]h]rd (jj_ Xpy-modre eh]h]h]uhj[ h]rf jXcelerydrg rh }ri (hUhja ubahj ubaubjX with the rj rk }rl (hX with the hjT ubj)rm }rn (hX :option:`-E`ro hjT hhhjh}rp (UreftypeXoptionjjX-EU refdomainXstdrq j; Nh]h]U refexplicith]h]h]jjuhMth]rr j= )rs }rt (hjo h}ru (h]h]rv (jjq X std-optionrw eh]h]h]uhjm h]rx jX-Ery rz }r{ (hUhjs ubahjG ubaubjX/r| }r} (hX/hjT ubj)r~ }r (hX:option:`--events`r hjT hhhjh}r (UreftypeXoptionjjX--eventsU refdomainXstdr j; Nh]h]U refexplicith]h]h]jjuhMth]r j= )r }r (hj h}r (h]h]r (jj X std-optionr eh]h]h]uhj~ h]r jX--eventsr r }r (hUhj ubahjG ubaubjXE option will send messages for events happening inside of the worker.r r }r (hXE option will send messages for events happening inside of the worker.hjT ubeubj )r }r (hXyEvents should only be enabled if you have an active monitor consuming them, or if you purge the event queue periodically.r hj hhhj1h}r (h]h]h]h]h]uhMwhhh]r jXyEvents should only be enabled if you have an active monitor consuming them, or if you purge the event queue periodically.r r }r (hj hj ubaubj)r }r (hUhj hhhjh}r (j[X*h]h]h]h]h]uhMzhhh]r j)r }r (hXAMQP backend results. hj hhhjHh}r (h]h]h]h]h]uhNhhh]r j )r }r (hXAMQP backend results.r hj hhhj1h}r (h]h]h]h]h]uhMzh]r jXAMQP backend results.r r }r (hj hj ubaubaubaubj )r }r (hXWhen running with the AMQP result backend, every task result will be sent as a message. If you don't collect these results, they will build up and RabbitMQ will eventually run out of memory.r hj hhhj1h}r (h]h]h]h]h]uhM|hhh]r jXWhen running with the AMQP result backend, every task result will be sent as a message. If you don't collect these results, they will build up and RabbitMQ will eventually run out of memory.r r }r (hj hj ubaubj )r }r (hXXIf you don't use the results for a task, make sure you set the ``ignore_result`` option:hj hhhj1h}r (h]h]h]h]h]uhMhhh]r (jX?If you don't use the results for a task, make sure you set the r r }r (hX?If you don't use the results for a task, make sure you set the hj ubj)r }r (hX``ignore_result``h}r (h]h]h]h]h]uhj h]r jX ignore_resultr r }r (hUhj ubahj ubjX option:r r }r (hX option:hj ubeubcdocutils.nodes comment r )r }r (hXpcode-block python @task(ignore_result=True) def mytask(): ... class MyTask(Task): ignore_result = Truehj hhhUcommentr h}r (jjh]h]h]h]h]uhMhhh]r jXpcode-block python @task(ignore_result=True) def mytask(): ... class MyTask(Task): ignore_result = Truer r }r (hUhj ubaubj )r }r (hXXResults can also be disabled globally using the :setting:`CELERY_IGNORE_RESULT` setting.hj hhhj1h}r (h]h]h]h]h]uhMhhh]r (jX0Results can also be disabled globally using the r r }r (hX0Results can also be disabled globally using the hj ubj)r }r (hX:setting:`CELERY_IGNORE_RESULT`r hj hhhjh}r (UreftypeXsettingjjXCELERY_IGNORE_RESULTU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r j)r }r (hj h}r (h]h]r (jj X std-settingr eh]h]h]uhj h]r jXCELERY_IGNORE_RESULTr r }r (hUhj ubahj ubaubjX setting.r r }r (hX setting.hj ubeubj& )r }r (hXCelery version 2.1 added support for automatic expiration of AMQP result backend results. To use this you need to run RabbitMQ 2.1 or higher and enable the :setting:`CELERY_AMQP_TASK_RESULT_EXPIRES` setting.hj hhhj) h}r (h]h]h]h]h]uhNhhh]r (j )r }r (hXYCelery version 2.1 added support for automatic expiration of AMQP result backend results.r hj hhhj1h}r (h]h]h]h]h]uhMh]r jXYCelery version 2.1 added support for automatic expiration of AMQP result backend results.r r }r (hj hj ubaubj )r }r (hXuTo use this you need to run RabbitMQ 2.1 or higher and enable the :setting:`CELERY_AMQP_TASK_RESULT_EXPIRES` setting.hj hhhj1h}r (h]h]h]h]h]uhMh]r (jXBTo use this you need to run RabbitMQ 2.1 or higher and enable the r r }r (hXBTo use this you need to run RabbitMQ 2.1 or higher and enable the hj ubj)r }r (hX*:setting:`CELERY_AMQP_TASK_RESULT_EXPIRES`r hj hhhjh}r (UreftypeXsettingjjXCELERY_AMQP_TASK_RESULT_EXPIRESU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r j)r }r (hj h}r (h]h]r (jj X std-settingr eh]h]h]uhj h]r jXCELERY_AMQP_TASK_RESULT_EXPIRESr r }r (hUhj ubahj ubaubjX setting.r r }r (hX setting.hj ubeubeubh)r }r (hX.. _faq-use-celery-with-stomp:hj hhhhh}r (h]h]h]h]h]hhuhMhhh]ubeubh)r }r (hUhj hhh}r hRj shhh}r (h]h]h]h]r (hheh]r (hLhReuhMhhh}r hj sh]r (h)r }r (hjJhj hhhjh}r (h]h]h]h]h]hjEuhMhhh]r jX%Can I use Celery with ActiveMQ/STOMP?r r }r (hjJhj ubaubj )r }r (hX**Answer**: Yes, but this is somewhat experimental for now. It is working ok in a test configuration, but it has not been tested in production. If you have any problems using STOMP with Celery, please report an issue here::hj hhhj1h}r (h]h]h]h]h]uhMhhh]r (j)r }r (hX **Answer**h}r (h]h]h]h]h]uhj h]r! jXAnswerr" r# }r$ (hUhj ubahj ubjX: Yes, but this is somewhat experimental for now. It is working ok in a test configuration, but it has not been tested in production. If you have any problems using STOMP with Celery, please report an issue here:r% r& }r' (hX: Yes, but this is somewhat experimental for now. It is working ok in a test configuration, but it has not been tested in production. If you have any problems using STOMP with Celery, please report an issue here:hj ubeubj)r( }r) (hX$http://github.com/ask/celery/issues/hj hhhjh}r* (jjh]h]h]h]h]uhMhhh]r+ jX$http://github.com/ask/celery/issues/r, r- }r. (hUhj( ubaubj )r/ }r0 (hX9The STOMP carrot backend requires the `stompy`_ library::r1 hj hhhj1h}r2 (h]h]h]h]h]uhMhhh]r3 (jX&The STOMP carrot backend requires the r4 r5 }r6 (hX&The STOMP carrot backend requires the hj/ ubj%)r7 }r8 (hX `stompy`_j?Khj/ hj0h}r9 (UnameXstompyr: jAX"http://pypi.python.org/pypi/stompyr; h]h]h]h]h]uh]r< jXstompyr= r> }r? (hUhj7 ubaubjX library:r@ rA }rB (hX library:hj/ ubeubj)rC }rD (hXM$ pip install stompy $ cd python-stomp $ sudo python setup.py install $ cd ..hj hhhjh}rE (jjh]h]h]h]h]uhMhhh]rF jXM$ pip install stompy $ cd python-stomp $ sudo python setup.py install $ cd ..rG rH }rI (hUhjC ubaubh)rJ }rK (hX0.. _`stompy`: http://pypi.python.org/pypi/stompyjLKhj hhhhh}rL (jAj; h]rM hah]h]h]h]rN h5auhMhhh]ubj )rO }rP (hXkIn this example we will use a queue called ``celery`` which we created in the ActiveMQ web admin interface.hj hhhj1h}rQ (h]h]h]h]h]uhMhhh]rR (jX+In this example we will use a queue called rS rT }rU (hX+In this example we will use a queue called hjO ubj)rV }rW (hX ``celery``h}rX (h]h]h]h]h]uhjO h]rY jXceleryrZ r[ }r\ (hUhjV ubahj ubjX6 which we created in the ActiveMQ web admin interface.r] r^ }r_ (hX6 which we created in the ActiveMQ web admin interface.hjO ubeubj )r` }ra (hX**Note**: When using ActiveMQ the queue name needs to have ``"/queue/"`` prepended to it. i.e. the queue ``celery`` becomes ``/queue/celery``.hj hhhj1h}rb (h]h]h]h]h]uhMhhh]rc (j)rd }re (hX**Note**h}rf (h]h]h]h]h]uhj` h]rg jXNoterh ri }rj (hUhjd ubahj ubjX3: When using ActiveMQ the queue name needs to have rk rl }rm (hX3: When using ActiveMQ the queue name needs to have hj` ubj)rn }ro (hX ``"/queue/"``h}rp (h]h]h]h]h]uhj` h]rq jX "/queue/"rr rs }rt (hUhjn ubahj ubjX! prepended to it. i.e. the queue ru rv }rw (hX! prepended to it. i.e. the queue hj` ubj)rx }ry (hX ``celery``h}rz (h]h]h]h]h]uhj` h]r{ jXceleryr| r} }r~ (hUhjx ubahj ubjX becomes r r }r (hX becomes hj` ubj)r }r (hX``/queue/celery``h}r (h]h]h]h]h]uhj` h]r jX /queue/celeryr r }r (hUhj ubahj ubjX.r }r (hX.hj` ubeubj )r }r (hXSince STOMP doesn't have exchanges and the routing capabilities of AMQP, you need to set ``exchange`` name to the same as the queue name. This is a minor inconvenience since carrot needs to maintain the same interface for both AMQP and STOMP.hj hhhj1h}r (h]h]h]h]h]uhMhhh]r (jXYSince STOMP doesn't have exchanges and the routing capabilities of AMQP, you need to set r r }r (hXYSince STOMP doesn't have exchanges and the routing capabilities of AMQP, you need to set hj ubj)r }r (hX ``exchange``h}r (h]h]h]h]h]uhj h]r jXexchanger r }r (hUhj ubahj ubjX name to the same as the queue name. This is a minor inconvenience since carrot needs to maintain the same interface for both AMQP and STOMP.r r }r (hX name to the same as the queue name. This is a minor inconvenience since carrot needs to maintain the same interface for both AMQP and STOMP.hj ubeubj )r }r (hXWUse the following settings in your :file:`celeryconfig.py`/ django :file:`settings.py`:hj hhhj1h}r (h]h]h]h]h]uhMhhh]r (jX#Use the following settings in your r r }r (hX#Use the following settings in your hj ubj)r }r (hUh}r (h]h]h]h]r Xfiler aUrolej h]uhj h]r jXceleryconfig.pyr r }r (hXceleryconfig.pyhj ubahj ubjX / django r r }r (hX / django hj ubj)r }r (hUh}r (h]h]h]h]r Xfiler aUrolej h]uhj h]r jX settings.pyr r }r (hX settings.pyhj ubahj ubjX:r }r (hX:hj ubeubj)r }r (hX# Use the stomp carrot backend. CARROT_BACKEND = "stomp" # STOMP hostname and port settings. BROKER_HOST = "localhost" BROKER_PORT = 61613 # The queue name to use (the exchange *must* be set to the # same as the queue name when using STOMP) CELERY_DEFAULT_QUEUE = "/queue/celery" CELERY_DEFAULT_EXCHANGE = "/queue/celery" CELERY_QUEUES = { "/queue/celery": {"exchange": "/queue/celery"} }hj hhhjh}r (Ulinenosr Ulanguager Xpythonjjh]h]h]h]h]uhMhhh]r jX# Use the stomp carrot backend. CARROT_BACKEND = "stomp" # STOMP hostname and port settings. BROKER_HOST = "localhost" BROKER_PORT = 61613 # The queue name to use (the exchange *must* be set to the # same as the queue name when using STOMP) CELERY_DEFAULT_QUEUE = "/queue/celery" CELERY_DEFAULT_EXCHANGE = "/queue/celery" CELERY_QUEUES = { "/queue/celery": {"exchange": "/queue/celery"} }r r }r (hUhj ubaubh)r }r (hX.. _faq-stomp-missing-features:hj hhhhh}r (h]h]h]h]h]hhuhMhhh]ubeubh)r }r (hUhj hhh}r haj shhh}r (h]h]h]h]r (hheh]r (hAhaeuhMhhh}r hj sh]r (h)r }r (hj\hj hhhjh}r (h]h]h]h]h]hjWuhMhhh]r jX9What features are not supported when using ghettoq/STOMP?r r }r (hj\hj ubaubj )r }r (hX\This is a (possible incomplete) list of features not available when using the STOMP backend:r hj hhhj1h}r (h]h]h]h]h]uhMhhh]r jX\This is a (possible incomplete) list of features not available when using the STOMP backend:r r }r (hj hj ubaubcdocutils.nodes block_quote r )r }r (hUhj hNhU block_quoter h}r (h]h]h]h]h]uhNhhh]r j)r }r (hUh}r (j[X*h]h]h]h]h]uhj h]r (j)r }r (hX routing keys h}r (h]h]h]h]h]uhj h]r j )r }r (hX routing keysr hj hhhj1h}r (h]h]h]h]h]uhMh]r jX routing keysr r }r (hj hj ubaubahjHubj)r }r (hX-exchange types (direct, topic, headers, etc) h}r (h]h]h]h]h]uhj h]r j )r }r (hX,exchange types (direct, topic, headers, etc)r hj hhhj1h}r (h]h]h]h]h]uhMh]r jX,exchange types (direct, topic, headers, etc)r r }r (hj hj ubaubahjHubj)r }r (hX immediate h}r (h]h]h]h]h]uhj h]r j )r }r (hX immediater hj hhhj1h}r (h]h]h]h]h]uhMh]r jX immediater r }r (hj hj ubaubahjHubj)r }r (hX mandatory h}r (h]h]h]h]h]uhj h]r j )r }r (hX mandatoryr hj hhhj1h}r (h]h]h]h]h]uhMh]r jX mandatoryr r }r (hj hj ubaubahjHubehjubaubh)r }r (hX.. _faq-tasks:hj hhhhh}r (h]h]h]h]h]hhuhMhhh]ubeubeubh)r }r (hUhhhhh}r h(j shhh}r (h]h]h]h]r (hheh]r (h@h(euhMhhh}r hj sh]r! (h)r" }r# (hjnhj hhhjh}r$ (h]h]h]h]h]hjiuhMhhh]r% jXTasksr& r' }r( (hjnhj" ubaubh)r) }r* (hX.. _faq-tasks-connection-reuse:hj hhhhh}r+ (h]h]h]h]h]hhuhMhhh]ubh)r, }r- (hUhj hhh}r. hSj) shhh}r/ (h]h]h]h]r0 (hheh]r1 (hGhSeuhMhhh}r2 hj) sh]r3 (h)r4 }r5 (hjhj, hhhjh}r6 (h]h]h]h]h]hjuhMhhh]r7 jX8How can I reuse the same connection when applying tasks?r8 r9 }r: (hjhj4 ubaubj )r; }r< (hX-**Answer**: See :ref:`executing-connections`.r= hj, hhhj1h}r> (h]h]h]h]h]uhMhhh]r? (j)r@ }rA (hX **Answer**h}rB (h]h]h]h]h]uhj; h]rC jXAnswerrD rE }rF (hUhj@ ubahj ubjX: See rG rH }rI (hX: See hj; ubj)rJ }rK (hX:ref:`executing-connections`rL hj; hhhjh}rM (UreftypeXrefjjXexecuting-connectionsU refdomainXstdrN h]h]U refexplicith]h]h]jjuhMh]rO j )rP }rQ (hjL h}rR (h]h]rS (jjN Xstd-refrT eh]h]h]uhjJ h]rU jXexecuting-connectionsrV rW }rX (hUhjP ubahj ubaubjX.rY }rZ (hX.hj; ubeubh)r[ }r\ (hX.. _faq-execute-task-by-name:hj, hhhhh}r] (h]h]h]h]h]hhuhMhhh]ubeubh)r^ }r_ (hUhj hhh}r` h2j[ shhh}ra (h]h]h]h]rb (hheh]rc (hOh2euhMhhh}rd hj[ sh]re (h)rf }rg (hjhj^ hhhjh}rh (h]h]h]h]h]hjuhMhhh]ri jXCan I execute a task by name?rj rk }rl (hjhjf ubaubj )rm }rn (hX**Answer**: Yes. Use :func:`celery.execute.send_task`. You can also execute a task by name from any language that has an AMQP client.hj^ hhhj1h}ro (h]h]h]h]h]uhMhhh]rp (j)rq }rr (hX **Answer**h}rs (h]h]h]h]h]uhjm h]rt jXAnswerru rv }rw (hUhjq ubahj ubjX : Yes. Use rx ry }rz (hX : Yes. Use hjm ubj)r{ }r| (hX :func:`celery.execute.send_task`r} hjm hhhjh}r~ (UreftypeXfuncjjXcelery.execute.send_taskU refdomainXpyr h]h]U refexplicith]h]h]jjjNjNuhMh]r j)r }r (hj} h}r (h]h]r (jj Xpy-funcr eh]h]h]uhj{ h]r jXcelery.execute.send_task()r r }r (hUhj ubahj ubaubjXP. You can also execute a task by name from any language that has an AMQP client.r r }r (hXP. You can also execute a task by name from any language that has an AMQP client.hjm ubeubj)r }r (hX>>> from celery.execute import send_task >>> send_task("tasks.add", args=[2, 2], kwargs={}) hj^ hNhjh}r (jjh]h]h]h]h]uhNhhh]r jX>>> from celery.execute import send_task >>> send_task("tasks.add", args=[2, 2], kwargs={}) r r }r (hUhj ubaubh)r }r (hX.. _faq-get-current-task-id:hj^ hhhhh}r (h]h]h]h]h]hhuhMhhh]ubeubh)r }r (hUhj hhh}r hdj shhh}r (h]h]h]h]r (hheh]r (h^hdeuhMhhh}r hj sh]r (h)r }r (hjhj hhhjh}r (h]h]h]h]h]hjuhMhhh]r jX.How can I get the task id of the current task?r r }r (hjhj ubaubj )r }r (hX**Answer**: Celery does set some default keyword arguments if the task accepts them (you can accept them by either using ``**kwargs``, or list them specifically)::hj hhhj1h}r (h]h]h]h]h]uhMhhh]r (j)r }r (hX **Answer**h}r (h]h]h]h]h]uhj h]r jXAnswerr r }r (hUhj ubahj ubjXo: Celery does set some default keyword arguments if the task accepts them (you can accept them by either using r r }r (hXo: Celery does set some default keyword arguments if the task accepts them (you can accept them by either using hj ubj)r }r (hX ``**kwargs``h}r (h]h]h]h]h]uhj h]r jX**kwargsr r }r (hUhj ubahj ubjX, or list them specifically):r r }r (hX, or list them specifically):hj ubeubj)r }r (hXA@task def mytask(task_id=None): cache.set(task_id, "Running")hj hhhjh}r (jjh]h]h]h]h]uhMhhh]r jXA@task def mytask(task_id=None): cache.set(task_id, "Running")r r }r (hUhj ubaubj )r }r (hXyThe default keyword arguments are documented here: http://celeryq.org/docs/userguide/tasks.html#default-keyword-argumentshj hhhj1h}r (h]h]h]h]h]uhMhhh]r (jX3The default keyword arguments are documented here: r r }r (hX3The default keyword arguments are documented here: hj ubj%)r }r (hXFhttp://celeryq.org/docs/userguide/tasks.html#default-keyword-argumentsr h}r (Urefurij h]h]h]h]h]uhj h]r jXFhttp://celeryq.org/docs/userguide/tasks.html#default-keyword-argumentsr r }r (hUhj ubahj0ubeubh)r }r (hX.. _faq-custom-task-ids:hj hhhhh}r (h]h]h]h]h]hhuhMhhh]ubeubh)r }r (hUhj hhh}r h;j shhh}r (h]h]h]h]r (hheh]r (hkh;euhMhhh}r hj sh]r (h)r }r (hjhj hhhjh}r (h]h]h]h]h]hjuhMhhh]r jXCan I specify a custom task_id?r r }r (hjhj ubaubj )r }r (hXW**Answer**: Yes. Use the ``task_id`` argument to :meth:`~celery.execute.apply_async`::hj hhhj1h}r (h]h]h]h]h]uhM hhh]r (j)r }r (hX **Answer**h}r (h]h]h]h]h]uhj h]r jXAnswerr r }r (hUhj ubahj ubjX: Yes. Use the r r }r (hX: Yes. Use the hj ubj)r }r (hX ``task_id``h}r (h]h]h]h]h]uhj h]r jXtask_idr r }r (hUhj ubahj ubjX argument to r r }r (hX argument to hj ubj)r }r (hX#:meth:`~celery.execute.apply_async`rhj hhhjh}r(UreftypeXmethjjXcelery.execute.apply_asyncU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhM h]rj)r}r(hjh}r(h]h]r(jjXpy-methreh]h]h]uhj h]r jX apply_async()r r }r (hUhjubahj ubaubjX:r }r(hX:hj ubeubj)r}r(hX1>>> task.apply_async(args, kwargs, task_id="...")hj hhhjh}r(jjh]h]h]h]h]uhM hhh]rjX1>>> task.apply_async(args, kwargs, task_id="...")rr}r(hUhjubaubeubh)r}r(hUhj hhhhh}r(h]h]h]h]rhah]rhauhMhhh]r(h)r}r(hjhjhhhjh}r(h]h]h]h]h]hjuhMhhh]rjX Can I use decorators with tasks?r r!}r"(hjhjubaubj )r#}r$(hXA**Answer**: Yes. But please see note at :ref:`tasks-decorating`.r%hjhhhj1h}r&(h]h]h]h]h]uhMhhh]r'(j)r(}r)(hX **Answer**h}r*(h]h]h]h]h]uhj#h]r+jXAnswerr,r-}r.(hUhj(ubahj ubjX: Yes. But please see note at r/r0}r1(hX: Yes. But please see note at hj#ubj)r2}r3(hX:ref:`tasks-decorating`r4hj#hhhjh}r5(UreftypeXrefjjXtasks-decoratingU refdomainXstdr6h]h]U refexplicith]h]h]jjuhMh]r7j )r8}r9(hj4h}r:(h]h]r;(jj6Xstd-refr<eh]h]h]uhj2h]r=jXtasks-decoratingr>r?}r@(hUhj8ubahj ubaubjX.rA}rB(hX.hj#ubeubh)rC}rD(hX.. _faq-natural-task-ids:hjhhhhh}rE(h]h]h]h]h]hhuhMhhh]ubeubh)rF}rG(hUhj hhh}rHh_jCshhh}rI(h]h]h]h]rJ(hheh]rK(h,h_euhMhhh}rLhjCsh]rM(h)rN}rO(hjhjFhhhjh}rP(h]h]h]h]h]hjuhMhhh]rQjXCan I use natural task ids?rRrS}rT(hjhjNubaubj )rU}rV(hXr**Answer**: Yes, but make sure it is unique, as the behavior for two tasks existing with the same id is undefined.hjFhhhj1h}rW(h]h]h]h]h]uhMhhh]rX(j)rY}rZ(hX **Answer**h}r[(h]h]h]h]h]uhjUh]r\jXAnswerr]r^}r_(hUhjYubahj ubjXh: Yes, but make sure it is unique, as the behavior for two tasks existing with the same id is undefined.r`ra}rb(hXh: Yes, but make sure it is unique, as the behavior for two tasks existing with the same id is undefined.hjUubeubj )rc}rd(hX]The world will probably not explode, but at the worst they can overwrite each others results.rehjFhhhj1h}rf(h]h]h]h]h]uhMhhh]rgjX]The world will probably not explode, but at the worst they can overwrite each others results.rhri}rj(hjehjcubaubh)rk}rl(hX.. _faq-task-callbacks:hjFhhhhh}rm(h]h]h]h]h]hh~uhM hhh]ubeubh)rn}ro(hUhj hhh}rphjkshhh}rq(h]h]h]h]rr(huh~eh]rs(hheuhM#hhh}rth~jksh]ru(h)rv}rw(hjhjnhhhjh}rx(h]h]h]h]h]hjuhM#hhh]ryjX4How can I run a task once another task has finished?rzr{}r|(hjhjvubaubj )r}}r~(hXh**Answer**: You can safely launch a task inside a task. Also, a common pattern is to use callback tasks:hjnhhhj1h}r(h]h]h]h]h]uhM%hhh]r(j)r}r(hX **Answer**h}r(h]h]h]h]h]uhj}h]rjXAnswerrr}r(hUhjubahj ubjX^: You can safely launch a task inside a task. Also, a common pattern is to use callback tasks:rr}r(hX^: You can safely launch a task inside a task. Also, a common pattern is to use callback tasks:hj}ubeubj)r}r(hX!@task() def add(x, y, callback=None): result = x + y if callback: subtask(callback).delay(result) return result @task(ignore_result=True) def log_result(result, **kwargs): logger = log_result.get_logger(**kwargs) logger.info("log_result got: %s" % (result, ))hjnhhhjh}r(j j Xpythonjjh]h]h]h]h]uhM(hhh]rjX!@task() def add(x, y, callback=None): result = x + y if callback: subtask(callback).delay(result) return result @task(ignore_result=True) def log_result(result, **kwargs): logger = log_result.get_logger(**kwargs) logger.info("log_result got: %s" % (result, ))rr}r(hUhjubaubj )r}r(hX Invocation::rhjnhhhj1h}r(h]h]h]h]h]uhM7hhh]rjX Invocation:rr}r(hX Invocation:hjubaubj)r}r(hX2>>> add.delay(2, 2, callback=log_result.subtask())hjnhhhjh}r(jjh]h]h]h]h]uhM9hhh]rjX2>>> add.delay(2, 2, callback=log_result.subtask())rr}r(hUhjubaubj )r}r(hX3See :doc:`userguide/tasksets` for more information.rhjnhhhj1h}r(h]h]h]h]h]uhM;hhh]r(jXSee rr}r(hXSee hjubj)r}r(hX:doc:`userguide/tasksets`rhjhhhjh}r(UreftypeXdocrjjXuserguide/tasksetsU refdomainUh]h]U refexplicith]h]h]jjuhM;h]rj)r}r(hjh}r(h]h]r(jjeh]h]h]uhjh]rjXuserguide/tasksetsrr}r(hUhjubahj ubaubjX for more information.rr}r(hX for more information.hjubeubh)r}r(hX.. _faq-cancel-task:hjnhhhhh}r(h]h]h]h]h]hhuhM=hhh]ubeubh)r}r(hUhj hhh}rh\jshhh}r(h]h]h]h]r(hheh]r(h6h\euhM@hhh}rhjsh]r(h)r}r(hjhjhhhjh}r(h]h]h]h]h]hjuhM@hhh]rjX%Can I cancel the execution of a task?rr}r(hjhjubaubj )r}r(hX(**Answer**: Yes. Use ``result.revoke``::rhjhhhj1h}r(h]h]h]h]h]uhMAhhh]r(j)r}r(hX **Answer**h}r(h]h]h]h]h]uhjh]rjXAnswerrr}r(hUhjubahj ubjX : Yes. Use rr}r(hX : Yes. Use hjubj)r}r(hX``result.revoke``h}r(h]h]h]h]h]uhjh]rjX result.revokerr}r(hUhjubahj ubjX:r}r(hX:hjubeubj)r}r(hXL>>> result = add.apply_async(args=[2, 2], countdown=120) >>> result.revoke()hjhhhjh}r(jjh]h]h]h]h]uhMChhh]rjXL>>> result = add.apply_async(args=[2, 2], countdown=120) >>> result.revoke()rr}r(hUhjubaubj )r}r(hX!or if you only have the task id::rhjhhhj1h}r(h]h]h]h]h]uhMFhhh]rjX or if you only have the task id:rr}r(hX or if you only have the task id:hjubaubj)r}r(hX>>>> from celery.task.control import revoke >>> revoke(task_id)hjhhhjh}r(jjh]h]h]h]h]uhMHhhh]rjX>>>> from celery.task.control import revoke >>> revoke(task_id)rr}r(hUhjubaubh)r}r(hX... _faq-node-not-receiving-broadcast-commands:hjhhhhh}r(h]h]h]h]h]hhuhMKhhh]ubeubh)r}r(hUhj hhh}rhNjshhh}r(h]h]h]h]r(hheh]r(hhNeuhMNhhh}rhjsh]r(h)r}r(hjhjhhhjh}r(h]h]h]h]h]hjuhMNhhh]rjX>Why aren't my remote control commands received by all workers?r r }r (hjhjubaubj )r }r (hX **Answer**: To receive broadcast remote control commands, every worker node uses its host name to create a unique queue name to listen to, so if you have more than one worker with the same host name, the control commands will be received in round-robin between them.hjhhhj1h}r(h]h]h]h]h]uhMPhhh]r(j)r}r(hX **Answer**h}r(h]h]h]h]h]uhj h]rjXAnswerrr}r(hUhjubahj ubjX: To receive broadcast remote control commands, every worker node uses its host name to create a unique queue name to listen to, so if you have more than one worker with the same host name, the control commands will be received in round-robin between them.rr}r(hX: To receive broadcast remote control commands, every worker node uses its host name to create a unique queue name to listen to, so if you have more than one worker with the same host name, the control commands will be received in round-robin between them.hj ubeubj )r}r(hXTo work around this you can explicitly set the host name for every worker using the :option:`--hostname` argument to :mod:`~celery.bin.celeryd`::hjhhhj1h}r(h]h]h]h]h]uhMUhhh]r(jXTTo work around this you can explicitly set the host name for every worker using the rr}r (hXTTo work around this you can explicitly set the host name for every worker using the hjubj)r!}r"(hX:option:`--hostname`r#hjhhhjh}r$(UreftypeXoptionjjX --hostnameU refdomainXstdr%j; Nh]h]U refexplicith]h]h]jjuhMUh]r&j= )r'}r((hj#h}r)(h]h]r*(jj%X std-optionr+eh]h]h]uhj!h]r,jX --hostnamer-r.}r/(hUhj'ubahjG ubaubjX argument to r0r1}r2(hX argument to hjubj)r3}r4(hX:mod:`~celery.bin.celeryd`r5hjhhhjh}r6(UreftypeXmodjjXcelery.bin.celerydU refdomainXpyr7h]h]U refexplicith]h]h]jjjNjNuhMUh]r8j)r9}r:(hj5h}r;(h]h]r<(jj7Xpy-modr=eh]h]h]uhj3h]r>jXcelerydr?r@}rA(hUhj9ubahj ubaubjX:rB}rC(hX:hjubeubj)rD}rE(hXE$ celeryd --hostname=$(hostname).1 $ celeryd --hostname=$(hostname).2hjhhhjh}rF(jjh]h]h]h]h]uhMXhhh]rGjXE$ celeryd --hostname=$(hostname).1 $ celeryd --hostname=$(hostname).2rHrI}rJ(hUhjDubaubj )rK}rL(hX etc., etc...rMhjhhhj1h}rN(h]h]h]h]h]uhM[hhh]rOjX etc., etc...rPrQ}rR(hjMhjKubaubh)rS}rT(hX.. _faq-task-routing:hjhhhhh}rU(h]h]h]h]h]hhxuhM]hhh]ubeubh)rV}rW(hUhj hhh}rXh jSshhh}rY(h]h]h]h]rZ(hhxeh]r[(hh euhM`hhh}r\hxjSsh]r](h)r^}r_(hj&hjVhhhjh}r`(h]h]h]h]h]hj!uhM`hhh]rajX+Can I send some tasks to only some servers?rbrc}rd(hj&hj^ubaubj )re}rf(hX|**Answer:** Yes. You can route tasks to an arbitrary server using AMQP, and a worker can bind to as many queues as it wants.hjVhhhj1h}rg(h]h]h]h]h]uhMbhhh]rh(j)ri}rj(hX **Answer:**h}rk(h]h]h]h]h]uhjeh]rljXAnswer:rmrn}ro(hUhjiubahj ubjXq Yes. You can route tasks to an arbitrary server using AMQP, and a worker can bind to as many queues as it wants.rprq}rr(hXq Yes. You can route tasks to an arbitrary server using AMQP, and a worker can bind to as many queues as it wants.hjeubeubj )rs}rt(hX2See :doc:`userguide/routing` for more information.ruhjVhhhj1h}rv(h]h]h]h]h]uhMehhh]rw(jXSee rxry}rz(hXSee hjsubj)r{}r|(hX:doc:`userguide/routing`r}hjshhhjh}r~(UreftypeXdocrjjXuserguide/routingU refdomainUh]h]U refexplicith]h]h]jjuhMeh]rj)r}r(hj}h}r(h]h]r(jjeh]h]h]uhj{h]rjXuserguide/routingrr}r(hUhjubahj ubaubjX for more information.rr}r(hX for more information.hjsubeubh)r}r(hX1.. _faq-change-periodic-task-interval-at-runtime:hjVhhhhh}r(h]h]h]h]h]hhuhMghhh]ubeubh)r}r(hUhj hhh}rhjjshhh}r(h]h]h]h]r(hheh]r(hhjeuhMjhhh}rhjsh]r(h)r}r(hj8hjhhhjh}r(h]h]h]h]h]hj3uhMjhhh]rjX8Can I change the interval of a periodic task at runtime?rr}r(hj8hjubaubj )r}r(hXm**Answer**: Yes. You can override ``PeriodicTask.is_due`` or turn ``PeriodicTask.run_every`` into a property:hjhhhj1h}r(h]h]h]h]h]uhMlhhh]r(j)r}r(hX **Answer**h}r(h]h]h]h]h]uhjh]rjXAnswerrr}r(hUhjubahj ubjX: Yes. You can override rr}r(hX: Yes. You can override hjubj)r}r(hX``PeriodicTask.is_due``h}r(h]h]h]h]h]uhjh]rjXPeriodicTask.is_duerr}r(hUhjubahj ubjX or turn rr}r(hX or turn hjubj)r}r(hX``PeriodicTask.run_every``h}r(h]h]h]h]h]uhjh]rjXPeriodicTask.run_everyrr}r(hUhjubahj ubjX into a property:rr}r(hX into a property:hjubeubj)r}r(hXclass MyPeriodic(PeriodicTask): def run(self): # ... @property def run_every(self): return get_interval_from_database(...)hjhhhjh}r(j j Xpythonjjh]h]h]h]h]uhMohhh]rjXclass MyPeriodic(PeriodicTask): def run(self): # ... @property def run_every(self): return get_interval_from_database(...)rr}r(hUhjubaubh)r}r(hX.. _faq-task-priorities:hjhhhhh}r(h]h]h]h]h]hhuhMzhhh]ubeubh)r}r(hUhj hhh}rhjshhh}r(h]h]h]h]r(hheh]r(hEheuhM}hhh}rhjsh]r(h)r}r(hjJhjhhhjh}r(h]h]h]h]h]hjEuhM}hhh]rjX$Does celery support task priorities?rr}r(hjJhjubaubj )r}r(hXi**Answer**: No. In theory, yes, as AMQP supports priorities. However RabbitMQ doesn't implement them yet.hjhhhj1h}r(h]h]h]h]h]uhMhhh]r(j)r}r(hX **Answer**h}r(h]h]h]h]h]uhjh]rjXAnswerrr}r(hUhjubahj ubjX_: No. In theory, yes, as AMQP supports priorities. However RabbitMQ doesn't implement them yet.rr}r(hX_: No. In theory, yes, as AMQP supports priorities. However RabbitMQ doesn't implement them yet.hjubeubj )r}r(hXThe usual way to prioritize work in Celery, is to route high priority tasks to different servers. In the real world this may actually work better than per message priorities. You can use this in combination with rate limiting to achieve a highly responsive system.rhjhhhj1h}r(h]h]h]h]h]uhMhhh]rjXThe usual way to prioritize work in Celery, is to route high priority tasks to different servers. In the real world this may actually work better than per message priorities. You can use this in combination with rate limiting to achieve a highly responsive system.rr}r(hjhjubaubh)r}r(hX.. _faq-acks_late-vs-retry:hjhhhhh}r(h]h]h]h]h]hhwuhMhhh]ubeubh)r}r(hUhj hhh}rhjshhh}r(h]h]h]h]r(hhweh]r(h/heuhMhhh}rhwjsh]r(h)r}r(hj\hjhhhjh}r(h]h]h]h]h]hjWuhMhhh]rjX Should I use retry or acks_late?rr}r(hj\hjubaubj )r}r(hXU**Answer**: Depends. It's not necessarily one or the other, you may want to use both.hjhhhj1h}r(h]h]h]h]h]uhMhhh]r(j)r}r(hX **Answer**h}r(h]h]h]h]h]uhjh]rjXAnswerr r }r (hUhjubahj ubjXK: Depends. It's not necessarily one or the other, you may want to use both.r r }r(hXK: Depends. It's not necessarily one or the other, you may want to use both.hjubeubj )r}r(hX`Task.retry` is used to retry tasks, notably for expected errors that is catchable with the `try:` block. The AMQP transaction is not used for these errors: **if the task raises an exception it is still acknowledged!**.hjhhhj1h}r(h]h]h]h]h]uhMhhh]r(j)r}r(hX `Task.retry`h}r(h]h]h]h]h]uhjh]rjX Task.retryrr}r(hUhjubahjubjXP is used to retry tasks, notably for expected errors that is catchable with the rr}r(hXP is used to retry tasks, notably for expected errors that is catchable with the hjubj)r}r(hX`try:`h}r(h]h]h]h]h]uhjh]r jXtry:r!r"}r#(hUhjubahjubjX; block. The AMQP transaction is not used for these errors: r$r%}r&(hX; block. The AMQP transaction is not used for these errors: hjubj)r'}r((hX=**if the task raises an exception it is still acknowledged!**h}r)(h]h]h]h]h]uhjh]r*jX9if the task raises an exception it is still acknowledged!r+r,}r-(hUhj'ubahj ubjX.r.}r/(hX.hjubeubj )r0}r1(hX@The ``acks_late`` setting would be used when you need the task to be executed again if the worker (for some reason) crashes mid-execution. It's important to note that the worker is not known to crash, and if it does it is usually an unrecoverable error that requires human intervention (bug in the worker, or task code).hjhhhj1h}r2(h]h]h]h]h]uhMhhh]r3(jXThe r4r5}r6(hXThe hj0ubj)r7}r8(hX ``acks_late``h}r9(h]h]h]h]h]uhj0h]r:jX acks_later;r<}r=(hUhj7ubahj ubjX/ setting would be used when you need the task to be executed again if the worker (for some reason) crashes mid-execution. It's important to note that the worker is not known to crash, and if it does it is usually an unrecoverable error that requires human intervention (bug in the worker, or task code).r>r?}r@(hX/ setting would be used when you need the task to be executed again if the worker (for some reason) crashes mid-execution. It's important to note that the worker is not known to crash, and if it does it is usually an unrecoverable error that requires human intervention (bug in the worker, or task code).hj0ubeubj )rA}rB(hX{In an ideal world you could safely retry any task that has failed, but this is rarely the case. Imagine the following task:rChjhhhj1h}rD(h]h]h]h]h]uhMhhh]rEjX{In an ideal world you could safely retry any task that has failed, but this is rarely the case. Imagine the following task:rFrG}rH(hjChjAubaubj)rI}rJ(hX@task() def process_upload(filename, tmpfile): # Increment a file count stored in a database increment_file_counter() add_file_metadata_to_db(filename, tmpfile) copy_file_to_destination(filename, tmpfile)hjhhhjh}rK(j j Xpythonjjh]h]h]h]h]uhMhhh]rLjX@task() def process_upload(filename, tmpfile): # Increment a file count stored in a database increment_file_counter() add_file_metadata_to_db(filename, tmpfile) copy_file_to_destination(filename, tmpfile)rMrN}rO(hUhjIubaubj )rP}rQ(hXIf this crashed in the middle of copying the file to its destination the world would contain incomplete state. This is not a critical scenario of course, but you can probably imagine something far more sinister. So for ease of programming we have less reliability; It's a good default, users who require it and know what they are doing can still enable acks_late (and in the future hopefully use manual acknowledgement)rRhjhhhj1h}rS(h]h]h]h]h]uhMhhh]rTjXIf this crashed in the middle of copying the file to its destination the world would contain incomplete state. This is not a critical scenario of course, but you can probably imagine something far more sinister. So for ease of programming we have less reliability; It's a good default, users who require it and know what they are doing can still enable acks_late (and in the future hopefully use manual acknowledgement)rUrV}rW(hjRhjPubaubj )rX}rY(hXtIn addition ``Task.retry`` has features not available in AMQP transactions: delay between retries, max retries, etc.hjhhhj1h}rZ(h]h]h]h]h]uhMhhh]r[(jX In addition r\r]}r^(hX In addition hjXubj)r_}r`(hX``Task.retry``h}ra(h]h]h]h]h]uhjXh]rbjX Task.retryrcrd}re(hUhj_ubahj ubjXZ has features not available in AMQP transactions: delay between retries, max retries, etc.rfrg}rh(hXZ has features not available in AMQP transactions: delay between retries, max retries, etc.hjXubeubj )ri}rj(hXSo use retry for Python errors, and if your task is reentrant combine that with ``acks_late`` if that level of reliability is required.hjhhhj1h}rk(h]h]h]h]h]uhMhhh]rl(jXPSo use retry for Python errors, and if your task is reentrant combine that with rmrn}ro(hXPSo use retry for Python errors, and if your task is reentrant combine that with hjiubj)rp}rq(hX ``acks_late``h}rr(h]h]h]h]h]uhjih]rsjX acks_latertru}rv(hUhjpubahj ubjX* if that level of reliability is required.rwrx}ry(hX* if that level of reliability is required.hjiubeubh)rz}r{(hX".. _faq-schedule-at-specific-time:hjhhhhh}r|(h]h]h]h]h]hhuhMhhh]ubeubh)r}}r~(hUhj hhh}rhjzshhh}r(h]h]h]h]r(jjhheh]r(h[heuhMhhh}rhjzsh]r(h)r}r(hjohj}hhhjh}r(h]h]h]h]h]hjiuhMhhh]rjX3Can I schedule tasks to execute at a specific time?rr}r(hjohjubaubcsphinx.addnodes index r)r}r(hUhj}hhhUindexrh}r(h]h]h]h]h]Uentries]r(UsinglerXcelery.task.base (module)Xmodule-celery.task.baseUtrauhMhhh]ubj )r}r(hXN**Answer**: Yes. You can use the ``eta`` argument of :meth:`Task.apply_async`.rhj}hhhj1h}r(h]h]h]h]h]uhMhhh]r(j)r}r(hX **Answer**h}r(h]h]h]h]h]uhjh]rjXAnswerrr}r(hUhjubahj ubjX: Yes. You can use the rr}r(hX: Yes. You can use the hjubj)r}r(hX``eta``h}r(h]h]h]h]h]uhjh]rjXetarr}r(hUhjubahj ubjX argument of rr}r(hX argument of hjubj)r}r(hX:meth:`Task.apply_async`rhjhhhjh}r(UreftypeXmethjjXTask.apply_asyncU refdomainXpyrh]h]U refexplicith]h]h]jjjNjXcelery.task.baseruhMh]rj)r}r(hjh}r(h]h]r(jjXpy-methreh]h]h]uhjh]rjXTask.apply_async()rr}r(hUhjubahj ubaubjX.r}r(hX.hjubeubj )r}r(hXtOr to schedule a periodic task at a specific time, use the :class:`celery.task.schedules.crontab` schedule behavior:hj}hhhj1h}r(h]h]h]h]h]uhMhhh]r(jX;Or to schedule a periodic task at a specific time, use the rr}r(hX;Or to schedule a periodic task at a specific time, use the hjubj)r}r(hX&:class:`celery.task.schedules.crontab`rhjhhhjh}r(UreftypeXclassjjXcelery.task.schedules.crontabU refdomainXpyrh]h]U refexplicith]h]h]jjjNjjuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rjXcelery.task.schedules.crontabrr}r(hUhjubahj ubaubjX schedule behavior:rr}r(hX schedule behavior:hjubeubj)r}r(hXfrom celery.task.schedules import crontab from celery.decorators import periodic_task @periodic_task(run_every=crontab(hours=7, minute=30, day_of_week="mon")) def every_monday_morning(): print("This is run every Monday morning at 7:30")hj}hhhjh}r(j j Xpythonjjh]h]h]h]h]uhMhhh]rjXfrom celery.task.schedules import crontab from celery.decorators import periodic_task @periodic_task(run_every=crontab(hours=7, minute=30, day_of_week="mon")) def every_monday_morning(): print("This is run every Monday morning at 7:30")rr}r(hUhjubaubh)r}r(hX.. _faq-safe-worker-shutdown:hj}hhhhh}r(h]h]h]h]h]hhuhMhhh]ubeubh)r}r(hUhj hhh}rh7jshhh}r(h]h]h]h]r(hheh]r(h4h7euhMhhh}rhjsh]r(h)r}r(hX&How do I shut down ``celeryd`` safely?rhjhhhjh}r(h]h]h]h]h]hj|uhMhhh]r(jXHow do I shut down rr}r(hjhjubj)r}r(hjh}r(h]h]h]h]h]uhjh]rjXcelerydrr}r(hUhjubahj ubjX safely?rr}r(hjhjubeubj )r}r(hX**Answer**: Use the :sig:`TERM` signal, and the worker will finish all currently executing jobs and shut down as soon as possible. No tasks should be lost.hjhhhj1h}r(h]h]h]h]h]uhMhhh]r(j)r}r(hX **Answer**h}r(h]h]h]h]h]uhjh]rjXAnswerrr}r(hUhjubahj ubjX : Use the rr}r (hX : Use the hjubj)r }r (hX :sig:`TERM`r hjhhhjh}r (UreftypeXsigjjXTERMU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj)r}r(hj h}r(h]h]r(jjXstd-sigreh]h]h]uhj h]rjXTERMrr}r(hUhjubahj ubaubjX| signal, and the worker will finish all currently executing jobs and shut down as soon as possible. No tasks should be lost.rr}r(hX| signal, and the worker will finish all currently executing jobs and shut down as soon as possible. No tasks should be lost.hjubeubj )r}r(hXxYou should never stop :mod:`~celery.bin.celeryd` with the :sig:`KILL` signal (:option:`-9`), unless you've tried :sig:`TERM` a few times and waited a few minutes to let it get a chance to shut down. As if you do tasks may be terminated mid-execution, and they will not be re-run unless you have the ``acks_late`` option set (``Task.acks_late`` / :setting:`CELERY_ACKS_LATE`).hjhhhj1h}r(h]h]h]h]h]uhMhhh]r(jXYou should never stop r r!}r"(hXYou should never stop hjubj)r#}r$(hX:mod:`~celery.bin.celeryd`r%hjhhhjh}r&(UreftypeXmodjjXcelery.bin.celerydU refdomainXpyr'h]h]U refexplicith]h]h]jjjNjjuhMh]r(j)r)}r*(hj%h}r+(h]h]r,(jj'Xpy-modr-eh]h]h]uhj#h]r.jXcelerydr/r0}r1(hUhj)ubahj ubaubjX with the r2r3}r4(hX with the hjubj)r5}r6(hX :sig:`KILL`r7hjhhhjh}r8(UreftypeXsigjjXKILLU refdomainXstdr9h]h]U refexplicith]h]h]jjuhMh]r:j)r;}r<(hj7h}r=(h]h]r>(jj9Xstd-sigr?eh]h]h]uhj5h]r@jXKILLrArB}rC(hUhj;ubahj ubaubjX signal (rDrE}rF(hX signal (hjubj)rG}rH(hX :option:`-9`rIhjhhhjh}rJ(UreftypeXoptionjjX-9U refdomainXstdrKj; Nh]h]U refexplicith]h]h]jjuhMh]rLj= )rM}rN(hjIh}rO(h]h]rP(jjKX std-optionrQeh]h]h]uhjGh]rRjX-9rSrT}rU(hUhjMubahjG ubaubjX), unless you've tried rVrW}rX(hX), unless you've tried hjubj)rY}rZ(hX :sig:`TERM`r[hjhhhjh}r\(UreftypeXsigjjXTERMU refdomainXstdr]h]h]U refexplicith]h]h]jjuhMh]r^j)r_}r`(hj[h}ra(h]h]rb(jj]Xstd-sigrceh]h]h]uhjYh]rdjXTERMrerf}rg(hUhj_ubahj ubaubjX a few times and waited a few minutes to let it get a chance to shut down. As if you do tasks may be terminated mid-execution, and they will not be re-run unless you have the rhri}rj(hX a few times and waited a few minutes to let it get a chance to shut down. As if you do tasks may be terminated mid-execution, and they will not be re-run unless you have the hjubj)rk}rl(hX ``acks_late``h}rm(h]h]h]h]h]uhjh]rnjX acks_laterorp}rq(hUhjkubahj ubjX option set (rrrs}rt(hX option set (hjubj)ru}rv(hX``Task.acks_late``h}rw(h]h]h]h]h]uhjh]rxjXTask.acks_lateryrz}r{(hUhjuubahj ubjX / r|r}}r~(hX / hjubj)r}r(hX:setting:`CELERY_ACKS_LATE`rhjhhhjh}r(UreftypeXsettingjjXCELERY_ACKS_LATEU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj)r}r(hjh}r(h]h]r(jjX std-settingreh]h]h]uhjh]rjXCELERY_ACKS_LATErr}r(hUhjubahj ubaubjX).rr}r(hX).hjubeubcsphinx.addnodes seealso r)r}r(hX:ref:`worker-stopping`rhjhhhUseealsorh}r(h]h]h]h]h]uhNhhh]rj )r}r(hjhjhhhj1h}r(h]h]h]h]h]uhMh]rj)r}r(hjhjhhhjh}r(UreftypeXrefjjXworker-stoppingU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj )r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rjXworker-stoppingrr}r(hUhjubahj ubaubaubaubh)r}r(hX.. _faq-daemonizing:hjhhhhh}r(h]h]h]h]h]hhuhMhhh]ubeubh)r}r(hUhj hhh}rh=jshhh}r(h]h]h]h]r(hheh]r(h'h=euhMhhh}rhjsh]r(h)r}r(hjhjhhhjh}r(h]h]h]h]h]hjuhMhhh]rjX5How do I run celeryd in the background on [platform]?rr}r(hjhjubaubj )r}r(hX***Answer**: Please see :ref:`daemonizing`.rhjhhhj1h}r(h]h]h]h]h]uhMhhh]r(j)r}r(hX **Answer**h}r(h]h]h]h]h]uhjh]rjXAnswerrr}r(hUhjubahj ubjX : Please see rr}r(hX : Please see hjubj)r}r(hX:ref:`daemonizing`rhjhhhjh}r(UreftypeXrefjjX daemonizingU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj )r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rjX daemonizingrr}r(hUhjubahj ubaubjX.r}r(hX.hjubeubh)r}r(hX.. _faq-windows:hjhhhhh}r(h]h]h]h]h]hhuhMhhh]ubeubeubh)r}r(hUhhhhh}rhMjshhh}r(h]h]h]h]r(hheh]r(hfhMeuhMhhh}rhjsh]r(h)r}r(hjhjhhhjh}r(h]h]h]h]h]hjuhMhhh]rjXWindowsrr}r(hjhjubaubh)r}r(hX".. _faq-windows-worker-spawn-loop:hjhhhhh}r(h]h]h]h]h]hhuhMhhh]ubh)r}r(hUhjhhh}rhHjshhh}r(h]h]h]h]r(hheh]r(h hHeuhMhhh}rhjsh]r(h)r}r(hjhjhhhjh}r(h]h]h]h]h]hjuhMhhh]rjX+celeryd keeps spawning processes at startuprr}r(hjhjubaubj )r}r(hXZ**Answer**: This is a known issue on Windows. You have to start celeryd with the command::hjhhhj1h}r(h]h]h]h]h]uhMhhh]r(j)r}r(hX **Answer**h}r(h]h]h]h]h]uhjh]rjXAnswerrr }r (hUhjubahj ubjXO: This is a known issue on Windows. You have to start celeryd with the command:r r }r (hXO: This is a known issue on Windows. You have to start celeryd with the command:hjubeubj)r}r(hX$ python -m celeryd.bin.celerydhjhhhjh}r(jjh]h]h]h]h]uhMhhh]rjX$ python -m celeryd.bin.celerydrr}r(hUhjubaubj )r}r(hX9Any additional arguments can be appended to this command.rhjhhhj1h}r(h]h]h]h]h]uhMhhh]rjX9Any additional arguments can be appended to this command.rr}r(hjhjubaubj )r}r(hXSee http://bit.ly/bo9RSwrhjhhhj1h}r (h]h]h]h]h]uhMhhh]r!(jXSee r"r#}r$(hXSee hjubj%)r%}r&(hXhttp://bit.ly/bo9RSwr'h}r((Urefurij'h]h]h]h]h]uhjh]r)jXhttp://bit.ly/bo9RSwr*r+}r,(hUhj%ubahj0ubeubh)r-}r.(hX%.. _faq-windows-worker-embedded-beat:hjhhhhh}r/(h]h]h]h]h]hhzuhMhhh]ubeubh)r0}r1(hUhjhhh}r2h j-shhh}r3(h]h]h]h]r4(hhzeh]r5(h]h euhMhhh}r6hzj-sh]r7(h)r8}r9(hX7The ``-B`` / ``--beat`` option to celeryd doesn't work?r:hj0hhhjh}r;(h]h]h]h]h]hjuhMhhh]r<(jXThe r=r>}r?(hjhj8ubj)r@}rA(hjh}rB(h]h]h]h]h]uhj8h]rCjX-BrDrE}rF(hUhj@ubahj ubjX / rGrH}rI(hjhj8ubj)rJ}rK(hjh}rL(h]h]h]h]h]uhj8h]rMjX--beatrNrO}rP(hUhjJubahj ubjX option to celeryd doesn't work?rQrR}rS(hjhj8ubeubj )rT}rU(hXZ**Answer**: That's right. Run ``celerybeat`` and ``celeryd`` as separate services instead.hj0hhhj1h}rV(h]h]h]h]h]uhMhhh]rW(j)rX}rY(hX **Answer**h}rZ(h]h]h]h]h]uhjTh]r[jXAnswerr\r]}r^(hUhjXubahj ubjX: That's right. Run r_r`}ra(hX: That's right. Run hjTubj)rb}rc(hX``celerybeat``h}rd(h]h]h]h]h]uhjTh]rejX celerybeatrfrg}rh(hUhjbubahj ubjX and rirj}rk(hX and hjTubj)rl}rm(hX ``celeryd``h}rn(h]h]h]h]h]uhjTh]rojXcelerydrprq}rr(hUhjlubahj ubjX as separate services instead.rsrt}ru(hX as separate services instead.hjTubeubh)rv}rw(hX .. _faq-windows-django-settings:hj0hhhhh}rx(h]h]h]h]h]hhuhMhhh]ubeubh)ry}rz(hUhjhhh}r{hJjvshhh}r|(h]h]h]h]r}(hheh]r~(hhJeuhMhhh}rhjvsh]r(h)r}r(hX$`django-celery` can't find settings?rhjyhhhjh}r(h]h]h]h]h]hjuhMhhh]r(j)r}r(hjh}r(h]h]h]h]h]uhjh]rjX django-celeryrr}r(hUhjubahjubjX can't find settings?rr}r(hj hjubeubj )r}r(hX[**Answer**: You need to specify the :option:`--settings` argument to :program:`manage.py`::hjyhhhj1h}r(h]h]h]h]h]uhMhhh]r(j)r}r(hX **Answer**h}r(h]h]h]h]h]uhjh]rjXAnswerrr}r(hUhjubahj ubjX: You need to specify the rr}r(hX: You need to specify the hjubj)r}r(hX:option:`--settings`rhjhhhjh}r(UreftypeXoptionjjX --settingsU refdomainXstdrj; Nh]h]U refexplicith]h]h]jjuhMh]rj= )r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhjh]rjX --settingsrr}r(hUhjubahjG ubaubjX argument to rr}r(hX argument to hjubj)r}r(hX:program:`manage.py`h}r(h]h]rjah]h]h]uhjh]rjX manage.pyrr}r(hUhjubahj ubjX:r}r(hX:hjubeubj)r}r(hX4$ python manage.py celeryd start --settings=settingshjyhhhjh}r(jjh]h]h]h]h]uhMhhh]rjX4$ python manage.py celeryd start --settings=settingsrr}r(hUhjubaubj )r}r(hXSee http://bit.ly/bo9RSwrhjyhhhj1h}r(h]h]h]h]h]uhMhhh]r(jXSee rr}r(hXSee hjubj%)r}r(hXhttp://bit.ly/bo9RSwrh}r(Urefurijh]h]h]h]h]uhjh]rjXhttp://bit.ly/bo9RSwrr}r(hUhjubahj0ubeubeubeubeubehUU transformerrNU footnote_refsr}rUrefnamesr}r(X%queue everything and delight everyone]rj=aX1mysql is throwing deadlock errors, what can i do?]r(jljej: ]rj7 aXwhy won't my task run?]rjaXuser guide: remote tasks]rjaj]rjaXusing other queues]rjUaX0mysql - the innodb transaction model and locking]rj%auUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhhU current_linerNUtransform_messagesr]r(cdocutils.nodes system_message r)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypeUINFOruh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX)Hyperlink target "faq" is not referenced.rr}r(hUhjubahj1ubahUsystem_messagerubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineK Utypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX1Hyperlink target "faq-general" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]r jX5Hyperlink target "faq-when-to-use" is not referenced.r r }r (hUhjubahj1ubahjubj)r }r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineK.Utypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhj h]rjX8Hyperlink target "faq-misconceptions" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineK3Utypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjXAHyperlink target "faq-serializion-is-a-choice" is not referenced.r r!}r"(hUhjubahj1ubahjubj)r#}r$(hUh}r%(h]UlevelKh]h]Usourcehh]h]UlineKDUtypejuh]r&j )r'}r((hUh}r)(h]h]h]h]h]uhj#h]r*jXCHyperlink target "faq-is-celery-for-django-only" is not referenced.r+r,}r-(hUhj'ubahj1ubahjubj)r.}r/(hUh}r0(h]UlevelKh]h]Usourcehh]h]UlineKPUtypejuh]r1j )r2}r3(hUh}r4(h]h]h]h]h]uhj.h]r5jXEHyperlink target "faq-is-celery-for-rabbitmq-only" is not referenced.r6r7}r8(hUhj2ubahj1ubahjubj)r9}r:(hUh}r;(h]UlevelKh]h]Usourcehh]h]UlineKgUtypejuh]r<j )r=}r>(hUh}r?(h]h]h]h]h]uhj9h]r@jX@Hyperlink target "faq-is-celery-multilingual" is not referenced.rArB}rC(hUhj=ubahj1ubahjubj)rD}rE(hUh}rF(h]UlevelKh]h]Usourcehh]h]UlineK{Utypejuh]rGj )rH}rI(hUh}rJ(h]h]h]h]h]uhjDh]rKjX9Hyperlink target "faq-troubleshooting" is not referenced.rLrM}rN(hUhjHubahj1ubahjubj)rO}rP(hUh}rQ(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rRj )rS}rT(hUh}rU(h]h]h]h]h]uhjOh]rVjX9Hyperlink target "faq-mysql-deadlocks" is not referenced.rWrX}rY(hUhjSubahj1ubahjubj)rZ}r[(hUh}r\(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]r]j )r^}r_(hUh}r`(h]h]h]h]h]uhjZh]rajX8Hyperlink target "faq-worker-hanging" is not referenced.rbrc}rd(hUhj^ubahj1ubahjubj)re}rf(hUh}rg(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rhj )ri}rj(hUh}rk(h]h]h]h]h]uhjeh]rljX9Hyperlink target "faq-publish-hanging" is not referenced.rmrn}ro(hUhjiubahj1ubahjubj)rp}rq(hUh}rr(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rsj )rt}ru(hUh}rv(h]h]h]h]h]uhjph]rwjX<Hyperlink target "faq-celeryd-on-freebsd" is not referenced.rxry}rz(hUhjtubahj1ubahjubj)r{}r|(hUh}r}(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]r~j )r}r(hUh}r(h]h]h]h]h]uhj{h]rjX>Hyperlink target "faq-duplicate-key-errors" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjXAHyperlink target "faq-worker-stops-processing" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX;Hyperlink target "faq-task-does-not-run" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjXDHyperlink target "faq-periodic-task-does-not-run" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX9Hyperlink target "faq-purge-the-queue" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjXCHyperlink target "faq-messages-left-after-purge" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX1Hyperlink target "faq-results" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX?Hyperlink target "faq-get-result-by-task-id" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineM.Utypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX2Hyperlink target "faq-security" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMXUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX1Hyperlink target "faq-brokers" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX?Hyperlink target "faq-use-celery-with-stomp" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX@Hyperlink target "faq-stomp-missing-features" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX/Hyperlink target "faq-tasks" is not referenced.rr}r (hUhjubahj1ubahjubj)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r j )r}r(hUh}r(h]h]h]h]h]uhj h]rjX@Hyperlink target "faq-tasks-connection-reuse" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX>Hyperlink target "faq-execute-task-by-name" is not referenced.rr}r(hUhjubahj1ubahjubj)r }r!(hUh}r"(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r#j )r$}r%(hUh}r&(h]h]h]h]h]uhj h]r'jX=Hyperlink target "faq-get-current-task-id" is not referenced.r(r)}r*(hUhj$ubahj1ubahjubj)r+}r,(hUh}r-(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r.j )r/}r0(hUh}r1(h]h]h]h]h]uhj+h]r2jX9Hyperlink target "faq-custom-task-ids" is not referenced.r3r4}r5(hUhj/ubahj1ubahjubj)r6}r7(hUh}r8(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r9j )r:}r;(hUh}r<(h]h]h]h]h]uhj6h]r=jX:Hyperlink target "faq-natural-task-ids" is not referenced.r>r?}r@(hUhj:ubahj1ubahjubj)rA}rB(hUh}rC(h]UlevelKh]h]Usourcehh]h]UlineM Utypejuh]rDj )rE}rF(hUh}rG(h]h]h]h]h]uhjAh]rHjX8Hyperlink target "faq-task-callbacks" is not referenced.rIrJ}rK(hUhjEubahj1ubahjubj)rL}rM(hUh}rN(h]UlevelKh]h]Usourcehh]h]UlineM=Utypejuh]rOj )rP}rQ(hUh}rR(h]h]h]h]h]uhjLh]rSjX5Hyperlink target "faq-cancel-task" is not referenced.rTrU}rV(hUhjPubahj1ubahjubj)rW}rX(hUh}rY(h]UlevelKh]h]Usourcehh]h]UlineMKUtypejuh]rZj )r[}r\(hUh}r](h]h]h]h]h]uhjWh]r^jXOHyperlink target "faq-node-not-receiving-broadcast-commands" is not referenced.r_r`}ra(hUhj[ubahj1ubahjubj)rb}rc(hUh}rd(h]UlevelKh]h]Usourcehh]h]UlineM]Utypejuh]rej )rf}rg(hUh}rh(h]h]h]h]h]uhjbh]rijX6Hyperlink target "faq-task-routing" is not referenced.rjrk}rl(hUhjfubahj1ubahjubj)rm}rn(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineMgUtypejuh]rpj )rq}rr(hUh}rs(h]h]h]h]h]uhjmh]rtjXRHyperlink target "faq-change-periodic-task-interval-at-runtime" is not referenced.rurv}rw(hUhjqubahj1ubahjubj)rx}ry(hUh}rz(h]UlevelKh]h]Usourcehh]h]UlineMzUtypejuh]r{j )r|}r}(hUh}r~(h]h]h]h]h]uhjxh]rjX9Hyperlink target "faq-task-priorities" is not referenced.rr}r(hUhj|ubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX<Hyperlink target "faq-acks-late-vs-retry" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjXCHyperlink target "faq-schedule-at-specific-time" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX>Hyperlink target "faq-safe-worker-shutdown" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX5Hyperlink target "faq-daemonizing" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjX1Hyperlink target "faq-windows" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjXCHyperlink target "faq-windows-worker-spawn-loop" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjXFHyperlink target "faq-windows-worker-embedded-beat" is not referenced.rr}r(hUhjubahj1ubahjubj)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rjXAHyperlink target "faq-windows-django-settings" is not referenced.rr}r(hUhjubahj1ubahjubeUreporterrNUid_startrK2U autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNjNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUA/var/build/user_builds/celery/checkouts/2.1-archived/docs/faq.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightr Ulongr!Uinput_encoding_error_handlerr"jUauto_id_prefixr#Uidr$Udoctitle_xformr%Ustrip_elements_with_classesr&NU _config_filesr']Ufile_insertion_enabledr(U raw_enabledr)KU dump_settingsr*NubUsymbol_footnote_startr+KUidsr,}r-(hvjhyjJhj0hxjVjjjBj>jjhzj0h{jh|j jEjAj3j/hjh~jnjjjjhjjjj|jxjj hjohhjWjSjjhj, jjhj}hjhjyhjjjhj^ jijejjhj_hj hj(hj hjhjjjh)r.}r/(hUhj}hhhhh}r0(h]h]r1jjah]Uismodh]h]uhMhhh]ubhj hj hjN hj0jjjjjjhj jkjghj hjzjUjQj*j&hjhj@hj^ hj hj hjJ h}jj!jhjhj hj8hjhjhjhj hj hjhjhj hj, hj!hjhjhjhjFhjjjjjhjZ hj hjjjjj j1j-jCj?jUjQjgjcjyjuhjyhjhjhjhj!hj hj hjhjhj hjohj@hjhjhjVhhhjhj hjhjhjhj}hj hj0hujnhwjhjhjhjFhjhjjjhj jjhjjj{jjj}jyhjhjhjhj jjhjN hjhjzjjjijejWjShjhj jjjjjjhjjjjjjjjEjAj3j/uUsubstitution_namesr2}r3hhh}r4(h]h]h]Usourcehh]h]uU footnotesr5]r6Urefidsr7}r8(hv]r9jah]r:jahx]r;jSahz]r<j-ah{]r=j ah]r>j ah]r?jah]r@jah]rAjah]rBj-ah~]rCjkahw]rDjah]rEjah]rFjah]rGjah]rHj=ah]rIj[ ah]rJjCah]rKjah]rLjvah]rMj ah]rNjah]rOj ah]rPjah]rQj ah]rRhah]rSjah]rTj) ah]rUjah]rVj ah]rWjzah]rXj ah]rYjah]rZj| ah]r[jah]r\jK ah]r]jlah]r^jah]r_jah]r`jwah]raj ah]rbj ah]rcjah]rdjah]rejauub.PKYDD3celery-2.1-archived/.doctrees/configuration.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xbroker_passwordqNXbroker_connection_timeoutqNXtt_portqNXcelerybeat_schedule_filenameq NX#custom component classes (advanced)q NXceleryd_max_tasks_per_childq NXcelery_acks_lateq NXtask result backend settingsq NXcelery_cache_backend_optionsqNXconf-task-executionqXcelery_max_cached_resultsqNXredis_dbqNX error e-mailsqNXconf-broker-connectionqXmail_host_userqNXcelery_result_serializerqNXbroker_use_sslqNXconf-error-mailsqX broker_vhostqNXcelery_cache_backendqNXcelery_default_delivery_modeqNXcelery_event_exchange_typeqNXconf-result-backendqXcelery_ignore_resultqNXceleryd_eta_schedulerqNXcelery_mongodb_backend_settingsqNX redis_hostq NXadminsq!NXcelerybeat_log_levelq"NXconf-example-error-mail-configq#Xcelery_broadcast_exchangeq$NXcelerybeat_log_fileq%NX broker_userq&NXcelery_broadcast_queueq'NXmongodb backend settingsq(NXceleryd_listenerq)NXcelery_default_queueq*NX broker_portq+NXcelery_default_exchangeq,NXconf-custom-componentsq-Xcelery_importsq.NXredisq/Xcelery_create_missing_queuesq0NXceleryd_concurrencyq1NX celery_routesq2NXbroker_backendq3NXceleryd_eta_scheduler_precisionq4NXcelery_result_exchangeq5NXpylibmcq6Xcelery_send_task_error_emailsq7NX memcachedq8Xexample configuration fileq9NXconf-messaging-routingq:Xtokyo tyrant backend settingsq;NXcelery_default_rate_limitqNXbroadcast commandsq?NXexample configurationq@NX broker_hostqANXconf-database-result-backendqBX configurationqCX conf-eventsqDXloggingqENXcelerybeat_scheduleqFNXceleryd_log_formatqGNX"celery_eager_propagates_exceptionsqHNXcelery_redirect_stdouts_levelqINX celeryd_poolqJNXconf-tyrant-result-backendqKXconfiguration and defaultsqLNXcelery_result_backendqMNXmail_host_passwordqNNXcelery_send_eventsqONXcelerybeat_schedulerqPNXcelery_task_error_whitelistqQNX$celery_broker_connection_max_retriesqRNXexample e-mail configurationqSNXconf-cache-result-backendqTXexample-mongodb-result-configqUXcelery_event_routing_keyqVNXcelery_result_exchange_typeqWNXceleryd_task_time_limitqXNXceleryd_log_fileqYNXsupported databasesqZXconfiguration directivesq[NXcelery_default_routing_keyq\NXtt_hostq]NXcelery_always_eagerq^NXcelerymon_log_fileq_NXmessage routingq`NXcelery_disable_rate_limitsqaNXceleryd_state_dbqbNXcelery_result_persistentqcNX mail_portqdNXcelerybeat_max_loop_intervalqeNXcelery_redirect_stdoutsqfNX sqlalchemyqgXconf-celerybeatqhX tokyo tyrantqiXconf-broadcastqjXconf-messagingqkXconf-celerymonqlXceleryd_task_soft_time_limitqmNXconnection stringqnXconf-mongodb-result-backendqoXcelery_result_engine_optionsqpNXcelery_event_queueqqNXcelery_task_result_expiresqrNX mail_hostqsNXcelery_track_startedqtNXcelerymon_log_levelquNXconf-amqp-result-backendqvX celery_queuesqwNXredis_passwordqxNXworker: celerydqyNXcelery_broadcast_exchange_typeqzNXcelery_result_dburiq{NXdatabase backend settingsq|NXconf-redis-result-backendq}Xceleryd_prefetch_multiplierq~NX conf-exampleqXconf-concurrencyqUcontentsqNXtask execution settingsqNXcelery_amqp_task_result_expiresqNX conf-loggingqXbroker_connection_retryqNXcelery_task_serializerqNXeventsqNX server_emailqNXcelery_default_exchange_typeqNXmongodbqXconcurrency settingsqNXredis backend settingsqNXamqp backend settingsqNXmonitor server: celerymonqNX periodic task server: celerybeatqNXcelery_event_exchangeqNXceleryd_mediatorqNXceleryd_log_levelqNXcache backend settingsqNX conf-celerydqXbroker settingsqNX redis_portqNXceleryd_task_log_formatqNuUsubstitution_defsq}qUparse_messagesq]q(cdocutils.nodes system_message q)q}q(U rawsourceqUUparentqcdocutils.nodes section q)q}q(hUU referencedqKhh)q}q(hUhh)q}q(hUhh)q}q(hUhhUsourceqcdocutils.nodes reprunicode qXK/var/build/user_builds/celery/checkouts/2.1-archived/docs/configuration.rstqq}qbUexpect_referenced_by_nameq}qhCcdocutils.nodes target q)q}q(hX.. _configuration:hhhhUtagnameqUtargetqU attributesq}q(Uidsq]Ubackrefsq]Udupnamesq]Uclassesq]Unamesq]UrefidqU configurationquUlineqKUdocumentqhUchildrenq]ubshUsectionqh}q(h]h]h]h]q(Uconfiguration-and-defaultsqheh]q(hLhCeuhKhhUexpect_referenced_by_idq}qhhsh]q(cdocutils.nodes title q)q}q(hXConfiguration and defaultsqhhhhhUtitleqh}q(h]h]h]h]h]uhKhhh]qcdocutils.nodes Text qXConfiguration and defaultsqӅq}q(hhhhubaubcdocutils.nodes paragraph q)q}q(hX<This document describes the configuration options available.qhhhhhU paragraphqh}q(h]h]h]h]h]uhKhhh]qhX<This document describes the configuration options available.q݅q}q(hhhhubaubh)q}q(hXIf you're using the default loader, you must create the :file:`celeryconfig.py` module and make sure it is available on the Python path.hhhhhhh}q(h]h]h]h]h]uhK hhh]q(hX8If you're using the default loader, you must create the q䅁q}q(hX8If you're using the default loader, you must create the hhubcdocutils.nodes literal q)q}q(hUh}q(h]h]h]h]qXfileqaUrolehh]uhhh]qhXceleryconfig.pyqq}q(hXceleryconfig.pyhhubahUliteralqubhX9 module and make sure it is available on the Python path.qq}q(hX9 module and make sure it is available on the Python path.hhubeubcdocutils.nodes topic q)q}q(hUhhhhhUtopicqh}q(h]h]q(UcontentsqUlocalqeh]h]qUcontentsqah]qhauhKhhh]rcdocutils.nodes bullet_list r)r}r(hUhhhNhU bullet_listrh}r(h]h]h]h]h]uhNhhh]r(cdocutils.nodes list_item r)r}r (hUh}r (h]h]h]h]h]uhjh]r h)r }r (hUh}r(h]h]h]h]h]uhjh]rcdocutils.nodes reference r)r}r(hUh}r(h]rUid5rah]h]h]h]UrefidUexample-configuration-fileruhj h]rhXExample configuration filerr}r(hXExample configuration filerhjubahU referencerubahhubahU list_itemrubj)r}r(hUh}r (h]h]h]h]h]uhjh]r!(h)r"}r#(hUh}r$(h]h]h]h]h]uhjh]r%j)r&}r'(hUh}r((h]r)Uid6r*ah]h]h]h]UrefidUconfiguration-directivesr+uhj"h]r,hXConfiguration Directivesr-r.}r/(hXConfiguration Directivesr0hj&ubahjubahhubj)r1}r2(hUh}r3(h]h]h]h]h]uhjh]r4(j)r5}r6(hUh}r7(h]h]h]h]h]uhj1h]r8h)r9}r:(hUh}r;(h]h]h]h]h]uhj5h]r<j)r=}r>(hUh}r?(h]r@Uid7rAah]h]h]h]UrefidUconcurrency-settingsrBuhj9h]rChXConcurrency settingsrDrE}rF(hXConcurrency settingsrGhj=ubahjubahhubahjubj)rH}rI(hUh}rJ(h]h]h]h]h]uhj1h]rKh)rL}rM(hUh}rN(h]h]h]h]h]uhjHh]rOj)rP}rQ(hUh}rR(h]rSUid8rTah]h]h]h]UrefidUtask-result-backend-settingsrUuhjLh]rVhXTask result backend settingsrWrX}rY(hXTask result backend settingsrZhjPubahjubahhubahjubj)r[}r\(hUh}r](h]h]h]h]h]uhj1h]r^h)r_}r`(hUh}ra(h]h]h]h]h]uhj[h]rbj)rc}rd(hUh}re(h]rfUid9rgah]h]h]h]UrefidUdatabase-backend-settingsrhuhj_h]rihXDatabase backend settingsrjrk}rl(hXDatabase backend settingsrmhjcubahjubahhubahjubj)rn}ro(hUh}rp(h]h]h]h]h]uhj1h]rqh)rr}rs(hUh}rt(h]h]h]h]h]uhjnh]ruj)rv}rw(hUh}rx(h]ryUid10rzah]h]h]h]UrefidUamqp-backend-settingsr{uhjrh]r|hXAMQP backend settingsr}r~}r(hXAMQP backend settingsrhjvubahjubahhubahjubj)r}r(hUh}r(h]h]h]h]h]uhj1h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rj)r}r(hUh}r(h]rUid11rah]h]h]h]UrefidUcache-backend-settingsruhjh]rhXCache backend settingsrr}r(hXCache backend settingsrhjubahjubahhubahjubj)r}r(hUh}r(h]h]h]h]h]uhj1h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rj)r}r(hUh}r(h]rUid12rah]h]h]h]UrefidUtokyo-tyrant-backend-settingsruhjh]rhXTokyo Tyrant backend settingsrr}r(hXTokyo Tyrant backend settingsrhjubahjubahhubahjubj)r}r(hUh}r(h]h]h]h]h]uhj1h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rj)r}r(hUh}r(h]rUid13rah]h]h]h]UrefidUredis-backend-settingsruhjh]rhXRedis backend settingsrr}r(hXRedis backend settingsrhjubahjubahhubahjubj)r}r(hUh}r(h]h]h]h]h]uhj1h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rj)r}r(hUh}r(h]rUid14rah]h]h]h]UrefidUmongodb-backend-settingsruhjh]rhXMongoDB backend settingsrr}r(hXMongoDB backend settingsrhjubahjubahhubahjubj)r}r(hUh}r(h]h]h]h]h]uhj1h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rj)r}r(hUh}r(h]rUid15rah]h]h]h]UrefidUmessage-routingruhjh]rhXMessage Routingrr}r(hXMessage Routingrhjubahjubahhubahjubj)r}r(hUh}r(h]h]h]h]h]uhj1h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rj)r}r(hUh}r(h]rUid16rah]h]h]h]UrefidUbroker-settingsruhjh]rhXBroker Settingsrr}r(hXBroker Settingsrhjubahjubahhubahjubj)r}r(hUh}r(h]h]h]h]h]uhj1h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rj)r}r(hUh}r(h]rUid17rah]h]h]h]UrefidUtask-execution-settingsruhjh]rhXTask execution settingsrr}r(hXTask execution settingsrhjubahjubahhubahjubj)r}r(hUh}r(h]h]h]h]h]uhj1h]r h)r }r (hUh}r (h]h]h]h]h]uhjh]r j)r}r(hUh}r(h]rUid18rah]h]h]h]UrefidUworker-celerydruhj h]rhXWorker: celerydrr}r(hXWorker: celerydrhjubahjubahhubahjubj)r}r(hUh}r(h]h]h]h]h]uhj1h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]r j)r!}r"(hUh}r#(h]r$Uid19r%ah]h]h]h]UrefidU error-e-mailsr&uhjh]r'hX Error E-Mailsr(r)}r*(hX Error E-Mailsr+hj!ubahjubahhubahjubj)r,}r-(hUh}r.(h]h]h]h]h]uhj1h]r/h)r0}r1(hUh}r2(h]h]h]h]h]uhj,h]r3j)r4}r5(hUh}r6(h]r7Uid20r8ah]h]h]h]UrefidUeventsr9uhj0h]r:hXEventsr;r<}r=(hXEventsr>hj4ubahjubahhubahjubj)r?}r@(hUh}rA(h]h]h]h]h]uhj1h]rBh)rC}rD(hUh}rE(h]h]h]h]h]uhj?h]rFj)rG}rH(hUh}rI(h]rJUid21rKah]h]h]h]UrefidUbroadcast-commandsrLuhjCh]rMhXBroadcast CommandsrNrO}rP(hXBroadcast CommandsrQhjGubahjubahhubahjubj)rR}rS(hUh}rT(h]h]h]h]h]uhj1h]rUh)rV}rW(hUh}rX(h]h]h]h]h]uhjRh]rYj)rZ}r[(hUh}r\(h]r]Uid22r^ah]h]h]h]UrefidUloggingr_uhjVh]r`hXLoggingrarb}rc(hXLoggingrdhjZubahjubahhubahjubj)re}rf(hUh}rg(h]h]h]h]h]uhj1h]rhh)ri}rj(hUh}rk(h]h]h]h]h]uhjeh]rlj)rm}rn(hUh}ro(h]rpUid23rqah]h]h]h]UrefidU!custom-component-classes-advancedrruhjih]rshX#Custom Component Classes (advanced)rtru}rv(hX#Custom Component Classes (advanced)rwhjmubahjubahhubahjubj)rx}ry(hUh}rz(h]h]h]h]h]uhj1h]r{h)r|}r}(hUh}r~(h]h]h]h]h]uhjxh]rj)r}r(hUh}r(h]rUid24rah]h]h]h]UrefidUperiodic-task-server-celerybeatruhj|h]rhX Periodic Task Server: celerybeatrr}r(hX Periodic Task Server: celerybeatrhjubahjubahhubahjubj)r}r(hUh}r(h]h]h]h]h]uhj1h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rj)r}r(hUh}r(h]rUid25rah]h]h]h]UrefidUmonitor-server-celerymonruhjh]rhXMonitor Server: celerymonrr}r(hXMonitor Server: celerymonrhjubahjubahhubahjubehjubehjubeubaubh)r}r(hX.. _conf-example:hhhhhhh}r(h]h]h]h]h]hU conf-exampleruhKhhh]ubh)r}r(hUhhhhh}rhjshhh}r(h]h]h]h]r(jjeh]r(h9heuhKhhh}rjjsh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKhhh]rhXExample configuration filerr}r(hjhjubaubh)r}r(hXvThis is an example configuration file to get you started. It should contain all you need to run a basic Celery set-up.rhjhhhhh}r(h]h]h]h]h]uhKhhh]rhXvThis is an example configuration file to get you started. It should contain all you need to run a basic Celery set-up.rr}r(hjhjubaubcdocutils.nodes literal_block r)r}r(hX# List of modules to import when celery starts. CELERY_IMPORTS = ("myapp.tasks", ) ## Result store settings. CELERY_RESULT_BACKEND = "database" CELERY_RESULT_DBURI = "sqlite:///mydatabase.db" ## Broker settings. BROKER_HOST = "localhost" BROKER_PORT = 5672 BROKER_VHOST = "/" BROKER_USER = "guest" BROKER_PASSWORD = "guest" ## Worker settings ## If you're doing mostly I/O you can have more processes, ## but if mostly spending CPU, try to keep it close to the ## number of CPUs on your machine. If not set, the number of CPUs/cores ## available will be used. CELERYD_CONCURRENCY = 10 # CELERYD_LOG_FILE = "celeryd.log" # CELERYD_LOG_LEVEL = "INFO"hjhhhU literal_blockrh}r(UlinenosrUlanguagerXpythonU xml:spacerUpreserverh]h]h]h]h]uhKhhh]rhX# List of modules to import when celery starts. CELERY_IMPORTS = ("myapp.tasks", ) ## Result store settings. CELERY_RESULT_BACKEND = "database" CELERY_RESULT_DBURI = "sqlite:///mydatabase.db" ## Broker settings. BROKER_HOST = "localhost" BROKER_PORT = 5672 BROKER_VHOST = "/" BROKER_USER = "guest" BROKER_PASSWORD = "guest" ## Worker settings ## If you're doing mostly I/O you can have more processes, ## but if mostly spending CPU, try to keep it close to the ## number of CPUs on your machine. If not set, the number of CPUs/cores ## available will be used. CELERYD_CONCURRENCY = 10 # CELERYD_LOG_FILE = "celeryd.log" # CELERYD_LOG_LEVEL = "INFO"rr}r(hUhjubaubeubheubhhhhh}r(h]h]h]h]rj+ah]rh[auhK3hhh]r(h)r}r(hj0hhhhhhh}r(h]h]h]h]h]hj*uhK3hhh]rhXConfiguration Directivesrr}r(hj0hjubaubh)r}r(hX.. _conf-concurrency:hhhhhhh}r(h]h]h]h]h]hUconf-concurrencyruhK5hhh]ubh)r}r(hUhhhhh}rhjshhh}r(h]h]h]h]r(jBjeh]r(hheuhK8hhh}rjjsh]r(h)r}r(hjGhjhhhhh}r(h]h]h]h]h]hjAuhK8hhh]rhXConcurrency settingsrr}r(hjGhjubaubcsphinx.addnodes index r)r}r(hUhjhhhUindexrh}r(h]h]h]h]h]Uentries]r(XpairXCELERYD_CONCURRENCY; settingXstd:setting-CELERYD_CONCURRENCYrUtrauhK;hhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhK;hhh]ubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Uceleryd-concurrencyrjeh]rh1auhK=hhh}rjjsh]r(h)r}r(hXCELERYD_CONCURRENCYrhjhhhhh}r(h]h]h]h]h]uhK=hhh]rhXCELERYD_CONCURRENCYrr}r(hjhjubaubh)r}r(hXJThe number of concurrent worker processes, executing tasks simultaneously.rhjhhhhh}r(h]h]h]h]h]uhK?hhh]rhXJThe number of concurrent worker processes, executing tasks simultaneously.rr}r(hjhjubaubh)r}r(hX/Defaults to the number of CPUs/cores available.r hjhhhhh}r (h]h]h]h]h]uhKAhhh]r hX/Defaults to the number of CPUs/cores available.r r }r(hj hjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairX$CELERYD_PREFETCH_MULTIPLIER; settingX'std:setting-CELERYD_PREFETCH_MULTIPLIERrUtrauhKDhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhKDhhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Uceleryd-prefetch-multiplierrjeh]rh~auhKFhhh}rjjsh]r(h)r }r!(hXCELERYD_PREFETCH_MULTIPLIERr"hjhhhhh}r#(h]h]h]h]h]uhKFhhh]r$hXCELERYD_PREFETCH_MULTIPLIERr%r&}r'(hj"hj ubaubh)r(}r)(hXHow many messages to prefetch at a time multiplied by the number of concurrent processes. The default is 4 (four messages for each process). The default setting is usually a good choice, however -- if you have very long running tasks waiting in the queue and you have to start the workers, note that the first worker to start will receive four times the number of messages initially. Thus the tasks may not be fairly distributed to the workers.r*hjhhhhh}r+(h]h]h]h]h]uhKHhhh]r,hXHow many messages to prefetch at a time multiplied by the number of concurrent processes. The default is 4 (four messages for each process). The default setting is usually a good choice, however -- if you have very long running tasks waiting in the queue and you have to start the workers, note that the first worker to start will receive four times the number of messages initially. Thus the tasks may not be fairly distributed to the workers.r-r.}r/(hj*hj(ubaubh)r0}r1(hX.. _conf-result-backend:hjhhhhh}r2(h]h]h]h]h]hUconf-result-backendr3uhKPhhh]ubeubeubh)r4}r5(hUhhhhh}r6hj0shhh}r7(h]h]h]h]r8(jUj3eh]r9(h heuhKShhh}r:j3j0sh]r;(h)r<}r=(hjZhj4hhhhh}r>(h]h]h]h]h]hjTuhKShhh]r?hXTask result backend settingsr@rA}rB(hjZhj<ubaubj)rC}rD(hUhj4hhhjh}rE(h]h]h]h]h]Uentries]rF(XpairXCELERY_RESULT_BACKEND; settingX!std:setting-CELERY_RESULT_BACKENDrGUtrHauhKVhhh]ubh)rI}rJ(hUhj4hhhhh}rK(h]h]h]h]h]hjGuhKVhhh]ubh)rL}rM(hUhj4hhh}hhh}rN(h]h]h]h]rO(Ucelery-result-backendrPjGeh]rQhMauhKXhhh}rRjGjIsh]rS(h)rT}rU(hXCELERY_RESULT_BACKENDrVhjLhhhhh}rW(h]h]h]h]h]uhKXhhh]rXhXCELERY_RESULT_BACKENDrYrZ}r[(hjVhjTubaubh)r\}r](hXQThe backend used to store task results (tombstones). Can be one of the following:r^hjLhhhhh}r_(h]h]h]h]h]uhKZhhh]r`hXQThe backend used to store task results (tombstones). Can be one of the following:rarb}rc(hj^hj\ubaubj)rd}re(hUhjLhhhjh}rf(UbulletrgX*h]h]h]h]h]uhK]hhh]rh(j)ri}rj(hXvdatabase (default) Use a relational database supported by `SQLAlchemy`_. See :ref:`conf-database-result-backend`. hjdhNhjh}rk(h]h]h]h]h]uhNhhh]rlcdocutils.nodes definition_list rm)rn}ro(hUh}rp(h]h]h]h]h]uhjih]rqcdocutils.nodes definition_list_item rr)rs}rt(hXrdatabase (default) Use a relational database supported by `SQLAlchemy`_. See :ref:`conf-database-result-backend`. hjnhhhUdefinition_list_itemruh}rv(h]h]h]h]h]uhK_h]rw(cdocutils.nodes term rx)ry}rz(hXdatabase (default)r{hjshhhUtermr|h}r}(h]h]h]h]h]uhK_h]r~hXdatabase (default)rr}r(hj{hjyubaubcdocutils.nodes definition r)r}r(hUh}r(h]h]h]h]h]uhjsh]rh)r}r(hX^Use a relational database supported by `SQLAlchemy`_. See :ref:`conf-database-result-backend`.hjhhhhh}r(h]h]h]h]h]uhK^h]r(hX'Use a relational database supported by rr}r(hX'Use a relational database supported by hjubj)r}r(hX `SQLAlchemy`_UresolvedrKhjhjh}r(UnameX SQLAlchemyUrefurirXhttp://sqlalchemy.orgrh]h]h]h]h]uh]rhX SQLAlchemyrr}r(hUhjubaubhX. See rr}r(hX. See hjubcsphinx.addnodes pending_xref r)r}r(hX#:ref:`conf-database-result-backend`rhjhhhU pending_xrefrh}r(UreftypeXrefUrefwarnrU reftargetrXconf-database-result-backendU refdomainXstdrh]h]U refexplicith]h]h]UrefdocrX configurationruhK^h]rcdocutils.nodes emphasis r)r}r(hjh}r(h]h]r(UxrefrjXstd-refreh]h]h]uhjh]rhXconf-database-result-backendrr}r(hUhjubahUemphasisrubaubhX.r}r(hX.hjubeubahU definitionrubeubahUdefinition_listrubaubj)r}r(hXWcache Use `memcached`_ to store the results. See :ref:`conf-cache-result-backend`. hjdhNhjh}r(h]h]h]h]h]uhNhhh]rjm)r}r(hUh}r(h]h]h]h]h]uhjh]rjr)r}r(hXScache Use `memcached`_ to store the results. See :ref:`conf-cache-result-backend`. hjhhhjuh}r(h]h]h]h]h]uhKch]r(jx)r}r(hXcacherhjhhhj|h}r(h]h]h]h]h]uhKch]rhXcacherr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hXLUse `memcached`_ to store the results. See :ref:`conf-cache-result-backend`.hjhhhhh}r(h]h]h]h]h]uhKbh]r(hXUse rr}r(hXUse hjubj)r}r(hX `memcached`_jKhjhjh}r(UnameX memcachedrjXhttp://memcached.orgrh]h]h]h]h]uh]rhX memcachedrr}r(hUhjubaubhX to store the results. See rr}r(hX to store the results. See hjubj)r}r(hX :ref:`conf-cache-result-backend`rhjhhhjh}r(UreftypeXrefjjXconf-cache-result-backendU refdomainXstdrh]h]U refexplicith]h]h]jjuhKbh]rj)r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhXconf-cache-result-backendrr}r(hUhjubahjubaubhX.r}r(hX.hjubeubahjubeubahjubaubj)r}r(hXYmongodb Use `MongoDB`_ to store the results. See :ref:`conf-mongodb-result-backend`. hjdhNhjh}r(h]h]h]h]h]uhNhhh]rjm)r}r(hUh}r(h]h]h]h]h]uhjh]rjr)r}r(hXUmongodb Use `MongoDB`_ to store the results. See :ref:`conf-mongodb-result-backend`. hjhhhjuh}r(h]h]h]h]h]uhKgh]r(jx)r}r(hXmongodbrhjhhhj|h}r(h]h]h]h]h]uhKgh]rhXmongodbrr}r(hjhjubaubj)r}r(hUh}r (h]h]h]h]h]uhjh]r h)r }r (hXLUse `MongoDB`_ to store the results. See :ref:`conf-mongodb-result-backend`.hjhhhhh}r (h]h]h]h]h]uhKfh]r(hXUse rr}r(hXUse hj ubj)r}r(hX `MongoDB`_jKhj hjh}r(UnameXMongoDBjXhttp://mongodb.orgrh]h]h]h]h]uh]rhXMongoDBrr}r(hUhjubaubhX to store the results. See rr}r(hX to store the results. See hj ubj)r}r(hX":ref:`conf-mongodb-result-backend`rhj hhhjh}r (UreftypeXrefjjXconf-mongodb-result-backendU refdomainXstdr!h]h]U refexplicith]h]h]jjuhKfh]r"j)r#}r$(hjh}r%(h]h]r&(jj!Xstd-refr'eh]h]h]uhjh]r(hXconf-mongodb-result-backendr)r*}r+(hUhj#ubahjubaubhX.r,}r-(hX.hj ubeubahjubeubahjubaubj)r.}r/(hXSredis Use `Redis`_ to store the results. See :ref:`conf-redis-result-backend`. hjdhNhjh}r0(h]h]h]h]h]uhNhhh]r1jm)r2}r3(hUh}r4(h]h]h]h]h]uhj.h]r5jr)r6}r7(hXOredis Use `Redis`_ to store the results. See :ref:`conf-redis-result-backend`. hj2hhhjuh}r8(h]h]h]h]h]uhKkh]r9(jx)r:}r;(hXredisr<hj6hhhj|h}r=(h]h]h]h]h]uhKkh]r>hXredisr?r@}rA(hj<hj:ubaubj)rB}rC(hUh}rD(h]h]h]h]h]uhj6h]rEh)rF}rG(hXHUse `Redis`_ to store the results. See :ref:`conf-redis-result-backend`.hjBhhhhh}rH(h]h]h]h]h]uhKjh]rI(hXUse rJrK}rL(hXUse hjFubj)rM}rN(hX`Redis`_jKhjFhjh}rO(UnameXRedisjXhttp://code.google.com/p/redis/rPh]h]h]h]h]uh]rQhXRedisrRrS}rT(hUhjMubaubhX to store the results. See rUrV}rW(hX to store the results. See hjFubj)rX}rY(hX :ref:`conf-redis-result-backend`rZhjFhhhjh}r[(UreftypeXrefjjXconf-redis-result-backendU refdomainXstdr\h]h]U refexplicith]h]h]jjuhKjh]r]j)r^}r_(hjZh}r`(h]h]ra(jj\Xstd-refrbeh]h]h]uhjXh]rchXconf-redis-result-backendrdre}rf(hUhj^ubahjubaubhX.rg}rh(hX.hjFubeubahjubeubahjubaubj)ri}rj(hX\tyrant Use `Tokyo Tyrant`_ to store the results. See :ref:`conf-tyrant-result-backend`. hjdhNhjh}rk(h]h]h]h]h]uhNhhh]rljm)rm}rn(hUh}ro(h]h]h]h]h]uhjih]rpjr)rq}rr(hXXtyrant Use `Tokyo Tyrant`_ to store the results. See :ref:`conf-tyrant-result-backend`. hjmhhhjuh}rs(h]h]h]h]h]uhKoh]rt(jx)ru}rv(hXtyrantrwhjqhhhj|h}rx(h]h]h]h]h]uhKoh]ryhXtyrantrzr{}r|(hjwhjuubaubj)r}}r~(hUh}r(h]h]h]h]h]uhjqh]rh)r}r(hXPUse `Tokyo Tyrant`_ to store the results. See :ref:`conf-tyrant-result-backend`.hj}hhhhh}r(h]h]h]h]h]uhKnh]r(hXUse rr}r(hXUse hjubj)r}r(hX`Tokyo Tyrant`_jKhjhjh}r(UnameX Tokyo TyrantjXhttp://1978th.net/tokyotyrant/rh]h]h]h]h]uh]rhX Tokyo Tyrantrr}r(hUhjubaubhX to store the results. See rr}r(hX to store the results. See hjubj)r}r(hX!:ref:`conf-tyrant-result-backend`rhjhhhjh}r(UreftypeXrefjjXconf-tyrant-result-backendU refdomainXstdrh]h]U refexplicith]h]h]jjuhKnh]rj)r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhXconf-tyrant-result-backendrr}r(hUhjubahjubaubhX.r}r(hX.hjubeubahjubeubahjubaubj)r}r(hXQamqp Send results back as AMQP messages See :ref:`conf-amqp-result-backend`. hjdhNhjh}r(h]h]h]h]h]uhNhhh]rjm)r}r(hUh}r(h]h]h]h]h]uhjh]rjr)r}r(hXMamqp Send results back as AMQP messages See :ref:`conf-amqp-result-backend`. hjhhhjuh}r(h]h]h]h]h]uhKsh]r(jx)r}r(hXamqprhjhhhj|h}r(h]h]h]h]h]uhKsh]rhXamqprr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hXGSend results back as AMQP messages See :ref:`conf-amqp-result-backend`.hjhhhhh}r(h]h]h]h]h]uhKrh]r(hX'Send results back as AMQP messages See rr}r(hX'Send results back as AMQP messages See hjubj)r}r(hX:ref:`conf-amqp-result-backend`rhjhhhjh}r(UreftypeXrefjjXconf-amqp-result-backendU refdomainXstdrh]h]U refexplicith]h]h]jjuhKrh]rj)r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhXconf-amqp-result-backendrr}r(hUhjubahjubaubhX.r}r(hX.hjubeubahjubeubahjubaubeubcdocutils.nodes comment r)r}r(hXwarning: While the AMQP result backend is very efficient, you must make sure you only receive the same result once. See :doc:`userguide/executing`).hjLhhhUcommentrh}r(jjh]h]h]h]h]uhKyhhh]rhXwarning: While the AMQP result backend is very efficient, you must make sure you only receive the same result once. See :doc:`userguide/executing`).rr}r(hUhjubaubh)r}r(hX'.. _`SQLAlchemy`: http://sqlalchemy.orghKhjLhhhhh}r(jjh]rU sqlalchemyrah]h]h]h]rhgauhKzhhh]ubh)r}r(hX%.. _`memcached`: http://memcached.orghKhjLhhhhh}r(jjh]rU memcachedrah]h]h]h]rh8auhK{hhh]ubh)r}r(hX!.. _`MongoDB`: http://mongodb.orghKhjLhhhhh}r(jjh]rUmongodbrah]h]h]h]rhauhK|hhh]ubh)r}r(hX,.. _`Redis`: http://code.google.com/p/redis/hKhjLhhhhh}r(jjPh]rUredisrah]h]h]h]rh/auhK}hhh]ubh)r}r(hX2.. _`Tokyo Tyrant`: http://1978th.net/tokyotyrant/hKhjLhhhhh}r(jjh]rU tokyo-tyrantrah]h]h]h]rhiauhK~hhh]ubh)r}r(hX!.. _conf-database-result-backend:hjLhhhhh}r(h]h]h]h]h]hUconf-database-result-backendruhKhhh]ubeubeubh)r}r(hUhhhhh}rhBjshhh}r(h]h]h]h]r(jhjeh]r(h|hBeuhKhhh}rjjsh]r(h)r}r(hjmhjhhhhh}r (h]h]h]h]h]hjguhKhhh]r hXDatabase backend settingsr r }r (hjmhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERY_RESULT_DBURI; settingXstd:setting-CELERY_RESULT_DBURIrUtrauhKhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhKhhh]ubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Ucelery-result-dburirjeh]rh{auhKhhh}rjjsh]r(h)r}r (hXCELERY_RESULT_DBURIr!hjhhhhh}r"(h]h]h]h]h]uhKhhh]r#hXCELERY_RESULT_DBURIr$r%}r&(hj!hjubaubh)r'}r((hXPlease see `Supported Databases`_ for a table of supported databases. To use this backend you need to configure it with an `Connection String`_, some examples include:hjhhhhh}r)(h]h]h]h]h]uhKhhh]r*(hX Please see r+r,}r-(hX Please see hj'ubj)r.}r/(hX`Supported Databases`_jKhj'hjh}r0(UnameXSupported DatabasesjX@http://www.sqlalchemy.org/docs/dbengine.html#supported-databasesr1h]h]h]h]h]uh]r2hXSupported Databasesr3r4}r5(hUhj.ubaubhXZ for a table of supported databases. To use this backend you need to configure it with an r6r7}r8(hXZ for a table of supported databases. To use this backend you need to configure it with an hj'ubj)r9}r:(hX`Connection String`_jKhj'hjh}r;(UnameXConnection StringjXHhttp://www.sqlalchemy.org/docs/dbengine.html#create-engine-url-argumentsr<h]h]h]h]h]uh]r=hXConnection Stringr>r?}r@(hUhj9ubaubhX, some examples include:rArB}rC(hX, some examples include:hj'ubeubj)rD}rE(hX*# sqlite (filename) CELERY_RESULT_DBURI = "sqlite:///celerydb.sqlite" # mysql CELERY_RESULT_DBURI = "mysql://scott:tiger@localhost/foo" # postgresql CELERY_RESULT_DBURI = "postgresql://scott:tiger@localhost/mydatabase" # oracle CELERY_RESULT_DBURI = "oracle://scott:tiger@127.0.0.1:1521/sidname"hjhhhjh}rF(jjXpythonjjh]h]h]h]h]uhKhhh]rGhX*# sqlite (filename) CELERY_RESULT_DBURI = "sqlite:///celerydb.sqlite" # mysql CELERY_RESULT_DBURI = "mysql://scott:tiger@localhost/foo" # postgresql CELERY_RESULT_DBURI = "postgresql://scott:tiger@localhost/mydatabase" # oracle CELERY_RESULT_DBURI = "oracle://scott:tiger@127.0.0.1:1521/sidname"rHrI}rJ(hUhjDubaubh)rK}rL(hXGSee `Connection String`_ for more information about connection strings.hjhhhhh}rM(h]h]h]h]h]uhKhhh]rN(hXSee rOrP}rQ(hXSee hjKubj)rR}rS(hX`Connection String`_jKhjKhjh}rT(UnameXConnection Stringjj<h]h]h]h]h]uh]rUhXConnection StringrVrW}rX(hUhjRubaubhX/ for more information about connection strings.rYrZ}r[(hX/ for more information about connection strings.hjKubeubj)r\}r](hUhjhhhjh}r^(h]h]h]h]h]Uentries]r_(XpairX%CELERY_RESULT_ENGINE_OPTIONS; settingX(std:setting-CELERY_RESULT_ENGINE_OPTIONSr`UtraauhKhhh]ubh)rb}rc(hUhjhhhhh}rd(h]h]h]h]h]hj`uhKhhh]ubeubh)re}rf(hUhjhhh}hhh}rg(h]h]h]h]rh(Ucelery-result-engine-optionsrij`eh]rjhpauhKhhh}rkj`jbsh]rl(h)rm}rn(hXCELERY_RESULT_ENGINE_OPTIONSrohjehhhhh}rp(h]h]h]h]h]uhKhhh]rqhXCELERY_RESULT_ENGINE_OPTIONSrrrs}rt(hjohjmubaubh)ru}rv(hXzTo specify additional SQLAlchemy database engine options you can use the :setting:`CELERY_RESULT_ENGINE_OPTIONS` setting::hjehhhhh}rw(h]h]h]h]h]uhKhhh]rx(hXITo specify additional SQLAlchemy database engine options you can use the ryrz}r{(hXITo specify additional SQLAlchemy database engine options you can use the hjuubj)r|}r}(hX':setting:`CELERY_RESULT_ENGINE_OPTIONS`r~hjuhhhjh}r(UreftypeXsettingjjXCELERY_RESULT_ENGINE_OPTIONSU refdomainXstdrh]h]U refexplicith]h]h]jjuhKh]rh)r}r(hj~h}r(h]h]r(jjX std-settingreh]h]h]uhj|h]rhXCELERY_RESULT_ENGINE_OPTIONSrr}r(hUhjubahhubaubhX setting:rr}r(hX setting:hjuubeubj)r}r(hX]# echo enables verbose logging from SQLAlchemy. CELERY_RESULT_ENGINE_OPTIONS = {"echo": True}hjehhhjh}r(jjh]h]h]h]h]uhKhhh]rhX]# echo enables verbose logging from SQLAlchemy. CELERY_RESULT_ENGINE_OPTIONS = {"echo": True}rr}r(hUhjubaubh)r}r(hX_.. _`Supported Databases`: http://www.sqlalchemy.org/docs/dbengine.html#supported-databaseshKhjehhhhh}r(jj1h]rUsupported-databasesrah]h]h]h]rhZauhKhhh]ubh)r}r(hXe.. _`Connection String`: http://www.sqlalchemy.org/docs/dbengine.html#create-engine-url-argumentshKhjehhhhh}r(jj<h]rUconnection-stringrah]h]h]h]rhnauhKhhh]ubeubh)r}r(hUhKhjhhhhh}r(h]rXexample configurationrah]h]h]rUexample-configurationrah]uhKhhh]r(h)r}r(hXExample configurationrhjhhhhh}r(h]h]h]h]h]uhKhhh]rhXExample configurationrr}r(hjhjubaubj)r}r(hX\CELERY_RESULT_BACKEND = "database" CELERY_RESULT_DBURI = "mysql://user:password@host/dbname"hjhhhjh}r(jjXpythonjjh]h]h]h]h]uhKhhh]rhX\CELERY_RESULT_BACKEND = "database" CELERY_RESULT_DBURI = "mysql://user:password@host/dbname"rr}r(hUhjubaubh)r}r(hX.. _conf-amqp-result-backend:hjhhhhh}r(h]h]h]h]h]hUconf-amqp-result-backendruhKhhh]ubeubeubhh)r}r(hUhhhhh}rhTh)r}r(hX.. _conf-cache-result-backend:hhhhhhh}r(h]h]h]h]h]hUconf-cache-result-backendruhKhhh]ubshhh}r(h]h]h]h]r(jjeh]r(hhTeuhKhhh}rjjsh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKhhh]rhXCache backend settingsrr}r(hjhjubaubcdocutils.nodes note r)r}r(hXThe cache backend supports the `pylibmc`_ and `python-memcached` libraries. The latter is used only if `pylibmc`_ is not installed.hjhhhUnoterh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXThe cache backend supports the `pylibmc`_ and `python-memcached` libraries. The latter is used only if `pylibmc`_ is not installed.hjhhhhh}r(h]h]h]h]h]uhKh]r(hXThe cache backend supports the rr}r(hXThe cache backend supports the hjubj)r}r(hX `pylibmc`_jKhjhjh}r(UnameXpylibmcrjX&http://sendapatch.se/projects/pylibmc/rh]h]h]h]h]uh]rhXpylibmcrr}r(hUhjubaubhX and rr}r(hX and hjubcdocutils.nodes title_reference r)r}r(hX`python-memcached`h}r(h]h]h]h]h]uhjh]rhXpython-memcachedrr}r(hUhjubahUtitle_referencerubhX( libraries. The latter is used only if rr}r(hX( libraries. The latter is used only if hjubj)r}r(hX `pylibmc`_jKhjhjh}r(UnameXpylibmcjjh]h]h]h]h]uh]rhXpylibmcrr}r(hUhjubaubhX is not installed.rr}r(hX is not installed.hjubeubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERY_CACHE_BACKEND; settingX std:setting-CELERY_CACHE_BACKENDrUtrauhKhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhKhhh]ubh)r}r(hUhjhhh}hhh}r (h]h]h]h]r (Ucelery-cache-backendr jeh]r hauhKhhh}r jjsh]r(h)r}r(hXCELERY_CACHE_BACKENDrhjhhhhh}r(h]h]h]h]h]uhKhhh]rhXCELERY_CACHE_BACKENDrr}r(hjhjubaubh)r}r(hX Using a single memcached server:rhjhhhhh}r(h]h]h]h]h]uhKhhh]rhX Using a single memcached server:rr}r(hjhjubaubj)r}r (hX5CELERY_CACHE_BACKEND = 'memcached://127.0.0.1:11211/'hjhhhjh}r!(jjXpythonjjh]h]h]h]h]uhMhhh]r"hX5CELERY_CACHE_BACKEND = 'memcached://127.0.0.1:11211/'r#r$}r%(hUhjubaubh)r&}r'(hX!Using multiple memcached servers:r(hjhhhhh}r)(h]h]h]h]h]uhMhhh]r*hX!Using multiple memcached servers:r+r,}r-(hj(hj&ubaubj)r.}r/(hXmCELERY_RESULT_BACKEND = "cache" CELERY_CACHE_BACKEND = 'memcached://172.19.26.240:11211;172.19.26.242:11211/'hjhhhjh}r0(jjXpythonjjh]h]h]h]h]uhMhhh]r1hXmCELERY_RESULT_BACKEND = "cache" CELERY_CACHE_BACKEND = 'memcached://172.19.26.240:11211;172.19.26.242:11211/'r2r3}r4(hUhj.ubaubj)r5}r6(hUhjhhhjh}r7(h]h]h]h]h]Uentries]r8(XpairX%CELERY_CACHE_BACKEND_OPTIONS; settingX(std:setting-CELERY_CACHE_BACKEND_OPTIONSr9Utr:auhM hhh]ubh)r;}r<(hUhjhhhhh}r=(h]h]h]h]h]hj9uhM hhh]ubeubh)r>}r?(hUhjhhh}hhh}r@(h]h]h]h]rA(Ucelery-cache-backend-optionsrBj9eh]rChauhMhhh}rDj9j;sh]rE(h)rF}rG(hXCELERY_CACHE_BACKEND_OPTIONSrHhj>hhhhh}rI(h]h]h]h]h]uhMhhh]rJhXCELERY_CACHE_BACKEND_OPTIONSrKrL}rM(hjHhjFubaubh)rN}rO(hXVYou can set pylibmc options using the :setting:`CELERY_CACHE_BACKEND_OPTIONS` setting:hj>hhhhh}rP(h]h]h]h]h]uhMhhh]rQ(hX&You can set pylibmc options using the rRrS}rT(hX&You can set pylibmc options using the hjNubj)rU}rV(hX':setting:`CELERY_CACHE_BACKEND_OPTIONS`rWhjNhhhjh}rX(UreftypeXsettingjjXCELERY_CACHE_BACKEND_OPTIONSU refdomainXstdrYh]h]U refexplicith]h]h]jjuhMh]rZh)r[}r\(hjWh}r](h]h]r^(jjYX std-settingr_eh]h]h]uhjUh]r`hXCELERY_CACHE_BACKEND_OPTIONSrarb}rc(hUhj[ubahhubaubhX setting:rdre}rf(hX setting:hjNubeubj)rg}rh(hXsCELERY_CACHE_BACKEND_OPTIONS = {"binary": True, "behaviors": {"tcp_nodelay": True}}hj>hhhjh}ri(jjXpythonjjh]h]h]h]h]uhMhhh]rjhXsCELERY_CACHE_BACKEND_OPTIONS = {"binary": True, "behaviors": {"tcp_nodelay": True}}rkrl}rm(hUhjgubaubh)rn}ro(hX5.. _`pylibmc`: http://sendapatch.se/projects/pylibmc/hKhj>hhhhh}rp(jjh]rqUpylibmcrrah]h]h]h]rsh6auhMhhh]ubh)rt}ru(hX.. _conf-tyrant-result-backend:hj>hhhhh}rv(h]h]h]h]h]hUconf-tyrant-result-backendrwuhMhhh]ubeubeubh)rx}ry(hUhhhhh}rzhKjtshhh}r{(h]h]h]h]r|(jjweh]r}(h;hKeuhMhhh}r~jwjtsh]r(h)r}r(hjhjxhhhhh}r(h]h]h]h]h]hjuhMhhh]rhXTokyo Tyrant backend settingsrr}r(hjhjubaubj)r}r(hXdThe Tokyo Tyrant backend requires the :mod:`pytyrant` library: http://pypi.python.org/pypi/pytyrant/hjxhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXdThe Tokyo Tyrant backend requires the :mod:`pytyrant` library: http://pypi.python.org/pypi/pytyrant/hjhhhhh}r(h]h]h]h]h]uhM"h]r(hX&The Tokyo Tyrant backend requires the rr}r(hX&The Tokyo Tyrant backend requires the hjubj)r}r(hX:mod:`pytyrant`rhjhhhjh}r(UreftypeXmodjjXpytyrantU refdomainXpyrh]h]U refexplicith]h]h]jjUpy:classrNU py:modulerNuhM"h]rh)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhjh]rhXpytyrantrr}r(hUhjubahhubaubhX library: rr}r(hX library: hjubj)r}r(hX%http://pypi.python.org/pypi/pytyrant/rh}r(Urefurijh]h]h]h]h]uhjh]rhX%http://pypi.python.org/pypi/pytyrant/rr}r(hUhjubahjubeubaubh)r}r(hXGThis backend requires the following configuration directives to be set:rhjxhhhhh}r(h]h]h]h]h]uhM%hhh]rhXGThis backend requires the following configuration directives to be set:rr}r(hjhjubaubj)r}r(hUhjxhhhjh}r(h]h]h]h]h]Uentries]r(XpairXTT_HOST; settingXstd:setting-TT_HOSTrUtrauhM(hhh]ubh)r}r(hUhjxhhhhh}r(h]h]h]h]h]hjuhM(hhh]ubh)r}r(hUhjxhhh}hhh}r(h]h]h]h]r(Utt-hostrjeh]rh]auhM*hhh}rjjsh]r(h)r}r(hXTT_HOSTrhjhhhhh}r(h]h]h]h]h]uhM*hhh]rhXTT_HOSTrr}r(hjhjubaubh)r}r(hX%Host name of the Tokyo Tyrant server.rhjhhhhh}r(h]h]h]h]h]uhM,hhh]rhX%Host name of the Tokyo Tyrant server.rr}r(hjhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXTT_PORT; settingXstd:setting-TT_PORTrUtrauhM/hhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhM/hhh]ubeubh)r}r(hUhjxhhh}hhh}r(h]h]h]h]r(Utt-portrjeh]rhauhM1hhh}rjjsh]r(h)r}r(hXTT_PORTrhjhhhhh}r(h]h]h]h]h]uhM1hhh]rhXTT_PORTrr}r(hjhjubaubh)r}r(hX1The port the Tokyo Tyrant server is listening to.rhjhhhhh}r(h]h]h]h]h]uhM3hhh]rhX1The port the Tokyo Tyrant server is listening to.rr}r(hjhjubaubeubh)r}r(hUhKhjxhhhhh}r(h]rXexample configurationrah]h]h]rUid2rah]uhM7hhh]r(h)r}r(hXExample configurationrhjhhhhh}r(h]h]h]h]h]uhM7hhh]rhXExample configurationrr}r(hjhjubaubj)r}r (hXECELERY_RESULT_BACKEND = "tyrant" TT_HOST = "localhost" TT_PORT = 1978hjhhhjh}r (jjXpythonjjh]h]h]h]h]uhM9hhh]r hXECELERY_RESULT_BACKEND = "tyrant" TT_HOST = "localhost" TT_PORT = 1978r r }r(hUhjubaubh)r}r(hX.. _conf-redis-result-backend:hjhhhhh}r(h]h]h]h]h]hUconf-redis-result-backendruhM?hhh]ubeubeubh)r}r(hUhhhhh}rh}jshhh}r(h]h]h]h]r(jjeh]r(hh}euhMBhhh}rjjsh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhMBhhh]rhXRedis backend settingsrr }r!(hjhjubaubj)r"}r#(hXThe Redis backend requires the :mod:`redis` library: http://pypi.python.org/pypi/redis/0.5.5 To install the redis package use ``pip`` or ``easy_install``:: $ pip install redishjhhhjh}r$(h]h]h]h]h]uhNhhh]r%(h)r&}r'(hX\The Redis backend requires the :mod:`redis` library: http://pypi.python.org/pypi/redis/0.5.5hj"hhhhh}r((h]h]h]h]h]uhMFh]r)(hXThe Redis backend requires the r*r+}r,(hXThe Redis backend requires the hj&ubj)r-}r.(hX :mod:`redis`r/hj&hhhjh}r0(UreftypeXmodjjXredisU refdomainXpyr1h]h]U refexplicith]h]h]jjjNjNuhMFh]r2h)r3}r4(hj/h}r5(h]h]r6(jj1Xpy-modr7eh]h]h]uhj-h]r8hXredisr9r:}r;(hUhj3ubahhubaubhX library: r<r=}r>(hX library: hj&ubj)r?}r@(hX'http://pypi.python.org/pypi/redis/0.5.5rAh}rB(UrefurijAh]h]h]h]h]uhj&h]rChX'http://pypi.python.org/pypi/redis/0.5.5rDrE}rF(hUhj?ubahjubeubh)rG}rH(hX>To install the redis package use ``pip`` or ``easy_install``::hj"hhhhh}rI(h]h]h]h]h]uhMIh]rJ(hX!To install the redis package use rKrL}rM(hX!To install the redis package use hjGubh)rN}rO(hX``pip``h}rP(h]h]h]h]h]uhjGh]rQhXpiprRrS}rT(hUhjNubahhubhX or rUrV}rW(hX or hjGubh)rX}rY(hX``easy_install``h}rZ(h]h]h]h]h]uhjGh]r[hX easy_installr\r]}r^(hUhjXubahhubhX:r_}r`(hX:hjGubeubj)ra}rb(hX$ pip install redishj"hjh}rc(jjh]h]h]h]h]uhMKh]rdhX$ pip install redisrerf}rg(hUhjaubaubeubh)rh}ri(hXGThis backend requires the following configuration directives to be set.rjhjhhhhh}rk(h]h]h]h]h]uhMMhhh]rlhXGThis backend requires the following configuration directives to be set.rmrn}ro(hjjhjhubaubj)rp}rq(hUhjhhhjh}rr(h]h]h]h]h]Uentries]rs(XpairXREDIS_HOST; settingXstd:setting-REDIS_HOSTrtUtruauhMPhhh]ubh)rv}rw(hUhjhhhhh}rx(h]h]h]h]h]hjtuhMPhhh]ubh)ry}rz(hUhjhhh}hhh}r{(h]h]h]h]r|(U redis-hostr}jteh]r~h auhMRhhh}rjtjvsh]r(h)r}r(hX REDIS_HOSTrhjyhhhhh}r(h]h]h]h]h]uhMRhhh]rhX REDIS_HOSTrr}r(hjhjubaubh)r}r(hX;Host name of the Redis database server. e.g. `"localhost"`.rhjyhhhhh}r(h]h]h]h]h]uhMThhh]r(hX-Host name of the Redis database server. e.g. rr}r(hX-Host name of the Redis database server. e.g. hjubj)r}r(hX `"localhost"`h}r(h]h]h]h]h]uhjh]rhX "localhost"rr}r(hUhjubahjubhX.r}r(hX.hjubeubj)r}r(hUhjyhhhjh}r(h]h]h]h]h]Uentries]r(XpairXREDIS_PORT; settingXstd:setting-REDIS_PORTrUtrauhMWhhh]ubh)r}r(hUhjyhhhhh}r(h]h]h]h]h]hjuhMWhhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(U redis-portrjeh]rhauhMYhhh}rjjsh]r(h)r}r(hX REDIS_PORTrhjhhhhh}r(h]h]h]h]h]uhMYhhh]rhX REDIS_PORTrr}r(hjhjubaubh)r}r(hX1Port to the Redis database server. e.g. ``6379``.rhjhhhhh}r(h]h]h]h]h]uhM[hhh]r(hX(Port to the Redis database server. e.g. rr}r(hX(Port to the Redis database server. e.g. hjubh)r}r(hX``6379``h}r(h]h]h]h]h]uhjh]rhX6379rr}r(hUhjubahhubhX.r}r(hX.hjubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXREDIS_DB; settingXstd:setting-REDIS_DBrUtrauhM^hhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhM^hhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Uredis-dbrjeh]rhauhM`hhh}rjjsh]r(h)r}r(hXREDIS_DBrhjhhhhh}r(h]h]h]h]h]uhM`hhh]rhXREDIS_DBrr}r(hjhjubaubh)r}r(hX$Database number to use. Default is 0rhjhhhhh}r(h]h]h]h]h]uhMbhhh]rhX$Database number to use. Default is 0rr}r(hjhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXREDIS_PASSWORD; settingXstd:setting-REDIS_PASSWORDrUtrauhMehhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMehhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Uredis-passwordrjeh]rhxauhMghhh}rjjsh]r(h)r}r(hXREDIS_PASSWORDrhjhhhhh}r(h]h]h]h]h]uhMghhh]rhXREDIS_PASSWORDrr}r(hjhjubaubh)r}r(hX)Password used to connect to the database.rhjhhhhh}r(h]h]h]h]h]uhMihhh]rhX)Password used to connect to the database.rr}r(hjhjubaubeubh)r}r(hUhKhjhhhhh}r(h]r Xexample configurationr ah]h]h]r Uid3r ah]uhMlhhh]r (h)r}r(hXExample configurationrhjhhhhh}r(h]h]h]h]h]uhMlhhh]rhXExample configurationrr}r(hjhjubaubj)r}r(hXrCELERY_RESULT_BACKEND = "redis" REDIS_HOST = "localhost" REDIS_PORT = 6379 REDIS_DB = 0 REDIS_CONNECT_RETRY = Truehjhhhjh}r(jjXpythonjjh]h]h]h]h]uhMnhhh]rhXrCELERY_RESULT_BACKEND = "redis" REDIS_HOST = "localhost" REDIS_PORT = 6379 REDIS_DB = 0 REDIS_CONNECT_RETRY = Truerr}r(hUhjubaubh)r}r(hX .. _conf-mongodb-result-backend:hjhhhhh}r(h]h]h]h]h]hUconf-mongodb-result-backendr uhMvhhh]ubeubeubh)r!}r"(hUhhhhh}r#hojshhh}r$(h]h]h]h]r%(jj eh]r&(h(hoeuhMyhhh}r'j jsh]r((h)r)}r*(hjhj!hhhhh}r+(h]h]h]h]h]hjuhMyhhh]r,hXMongoDB backend settingsr-r.}r/(hjhj)ubaubj)r0}r1(hXrThe MongoDB backend requires the :mod:`pymongo` library: http://github.com/mongodb/mongo-python-driver/tree/masterhj!hhhjh}r2(h]h]h]h]h]uhNhhh]r3h)r4}r5(hXrThe MongoDB backend requires the :mod:`pymongo` library: http://github.com/mongodb/mongo-python-driver/tree/masterhj0hhhhh}r6(h]h]h]h]h]uhM}h]r7(hX!The MongoDB backend requires the r8r9}r:(hX!The MongoDB backend requires the hj4ubj)r;}r<(hX:mod:`pymongo`r=hj4hhhjh}r>(UreftypeXmodjjXpymongoU refdomainXpyr?h]h]U refexplicith]h]h]jjjNjNuhM}h]r@h)rA}rB(hj=h}rC(h]h]rD(jj?Xpy-modrEeh]h]h]uhj;h]rFhXpymongorGrH}rI(hUhjAubahhubaubhX library: rJrK}rL(hX library: hj4ubj)rM}rN(hX9http://github.com/mongodb/mongo-python-driver/tree/masterrOh}rP(UrefurijOh]h]h]h]h]uhj4h]rQhX9http://github.com/mongodb/mongo-python-driver/tree/masterrRrS}rT(hUhjMubahjubeubaubj)rU}rV(hUhj!hhhjh}rW(h]h]h]h]h]Uentries]rX(XpairX(CELERY_MONGODB_BACKEND_SETTINGS; settingX+std:setting-CELERY_MONGODB_BACKEND_SETTINGSrYUtrZauhMhhh]ubh)r[}r\(hUhj!hhhhh}r](h]h]h]h]h]hjYuhMhhh]ubh)r^}r_(hUhj!hhh}hhh}r`(h]h]h]h]ra(Ucelery-mongodb-backend-settingsrbjYeh]rchauhMhhh}rdjYj[sh]re(h)rf}rg(hXCELERY_MONGODB_BACKEND_SETTINGSrhhj^hhhhh}ri(h]h]h]h]h]uhMhhh]rjhXCELERY_MONGODB_BACKEND_SETTINGSrkrl}rm(hjhhjfubaubh)rn}ro(hX-This is a dict supporting the following keys:rphj^hhhhh}rq(h]h]h]h]h]uhMhhh]rrhX-This is a dict supporting the following keys:rsrt}ru(hjphjnubaubj)rv}rw(hUhj^hhhjh}rx(jgX*h]h]h]h]h]uhMhhh]ry(j)rz}r{(hXAhost Host name of the MongoDB server. Defaults to "localhost". hjvhNhjh}r|(h]h]h]h]h]uhNhhh]r}jm)r~}r(hUh}r(h]h]h]h]h]uhjzh]rjr)r}r(hX?host Host name of the MongoDB server. Defaults to "localhost". hj~hhhjuh}r(h]h]h]h]h]uhMh]r(jx)r}r(hXhostrhjhhhj|h}r(h]h]h]h]h]uhMh]rhXhostrr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX9Host name of the MongoDB server. Defaults to "localhost".rhjhhhhh}r(h]h]h]h]h]uhMh]rhX9Host name of the MongoDB server. Defaults to "localhost".rr}r(hjhjubaubahjubeubahjubaubj)r}r(hXGport The port the MongoDB server is listening to. Defaults to 27017. hjvhNhjh}r(h]h]h]h]h]uhNhhh]rjm)r}r(hUh}r(h]h]h]h]h]uhjh]rjr)r}r(hXEport The port the MongoDB server is listening to. Defaults to 27017. hjhhhjuh}r(h]h]h]h]h]uhMh]r(jx)r}r(hXportrhjhhhj|h}r(h]h]h]h]h]uhMh]rhXportrr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX?The port the MongoDB server is listening to. Defaults to 27017.rhjhhhhh}r(h]h]h]h]h]uhMh]rhX?The port the MongoDB server is listening to. Defaults to 27017.rr}r(hjhjubaubahjubeubahjubaubj)r}r(hXFuser User name to authenticate to the MongoDB server as (optional). hjvhNhjh}r(h]h]h]h]h]uhNhhh]rjm)r}r(hUh}r(h]h]h]h]h]uhjh]rjr)r}r(hXDuser User name to authenticate to the MongoDB server as (optional). hjhhhjuh}r(h]h]h]h]h]uhMh]r(jx)r}r(hXuserrhjhhhj|h}r(h]h]h]h]h]uhMh]rhXuserrr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX>User name to authenticate to the MongoDB server as (optional).rhjhhhhh}r(h]h]h]h]h]uhMh]rhX>User name to authenticate to the MongoDB server as (optional).rr}r(hjhjubaubahjubeubahjubaubj)r}r(hXFpassword Password to authenticate to the MongoDB server (optional). hjvhNhjh}r(h]h]h]h]h]uhNhhh]rjm)r}r(hUh}r(h]h]h]h]h]uhjh]rjr)r}r(hXDpassword Password to authenticate to the MongoDB server (optional). hjhhhjuh}r(h]h]h]h]h]uhMh]r(jx)r}r(hXpasswordrhjhhhj|h}r(h]h]h]h]h]uhMh]rhXpasswordrr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX:Password to authenticate to the MongoDB server (optional).rhjhhhhh}r(h]h]h]h]h]uhMh]rhX:Password to authenticate to the MongoDB server (optional).rr}r(hjhjubaubahjubeubahjubaubj)r}r(hXBdatabase The database name to connect to. Defaults to "celery". hjvhNhjh}r(h]h]h]h]h]uhNhhh]rjm)r}r(hUh}r (h]h]h]h]h]uhjh]r jr)r }r (hX@database The database name to connect to. Defaults to "celery". hjhhhjuh}r (h]h]h]h]h]uhMh]r (jx)r }r (hXdatabaser hj hhhj|h}r (h]h]h]h]h]uhMh]r hXdatabaser r }r (hj hj ubaubj)r }r (hUh}r (h]h]h]h]h]uhj h]r h)r }r (hX6The database name to connect to. Defaults to "celery".r hj hhhhh}r (h]h]h]h]h]uhMh]r hX6The database name to connect to. Defaults to "celery".r r }r (hj hj ubaubahjubeubahjubaubj)r }r (hXdtaskmeta_collection The collection name to store task meta data. Defaults to "celery_taskmeta". hjvhNhjh}r (h]h]h]h]h]uhNhhh]r jm)r }r (hUh}r (h]h]h]h]h]uhj h]r! jr)r" }r# (hX`taskmeta_collection The collection name to store task meta data. Defaults to "celery_taskmeta". hj hhhjuh}r$ (h]h]h]h]h]uhMh]r% (jx)r& }r' (hXtaskmeta_collectionr( hj" hhhj|h}r) (h]h]h]h]h]uhMh]r* hXtaskmeta_collectionr+ r, }r- (hj( hj& ubaubj)r. }r/ (hUh}r0 (h]h]h]h]h]uhj" h]r1 h)r2 }r3 (hXKThe collection name to store task meta data. Defaults to "celery_taskmeta".r4 hj. hhhhh}r5 (h]h]h]h]h]uhMh]r6 hXKThe collection name to store task meta data. Defaults to "celery_taskmeta".r7 r8 }r9 (hj4 hj2 ubaubahjubeubahjubaubeubh)r: }r; (hX".. _example-mongodb-result-config:hj^hhhhh}r< (h]h]h]h]h]hUexample-mongodb-result-configr= uhMhhh]ubeubh)r> }r? (hUhKhj!hhh}r@ hUj: shhh}rA (h]rB Xexample configurationrC ah]h]h]rD (j= Uid4rE eh]rF hUauhMhhh}rG j= j: sh]rH (h)rI }rJ (hXExample configurationrK hj> hhhhh}rL (h]h]h]h]h]uhMhhh]rM hXExample configurationrN rO }rP (hjK hjI ubaubj)rQ }rR (hXCELERY_RESULT_BACKEND = "mongodb" CELERY_MONGODB_BACKEND_SETTINGS = { "host": "192.168.1.100", "port": 30000, "database": "mydb", "taskmeta_collection": "my_taskmeta_collection", }hj> hhhjh}rS (jjXpythonjjh]h]h]h]h]uhMhhh]rT hXCELERY_RESULT_BACKEND = "mongodb" CELERY_MONGODB_BACKEND_SETTINGS = { "host": "192.168.1.100", "port": 30000, "database": "mydb", "taskmeta_collection": "my_taskmeta_collection", }rU rV }rW (hUhjQ ubaubh)rX }rY (hX.. _conf-messaging:hj> hhhhh}rZ (h]h]h]h]h]hUconf-messagingr[ uhMhhh]ubeubeubh)r\ }r] (hUhhhhh}r^ hkjX shhh}r_ (h]h]h]h]r` (jj[ eh]ra (h`hkeuhMhhh}rb j[ jX sh]rc (h)rd }re (hjhj\ hhhhh}rf (h]h]h]h]h]hjuhMhhh]rg hXMessage Routingrh ri }rj (hjhjd ubaubh)rk }rl (hX.. _conf-messaging-routing:hj\ hhhhh}rm (h]h]h]h]rn Uconf-messaging-routingro ah]rp h:auhMhhh]ubj)rq }rr (hUhj\ hhhjh}rs (h]h]h]h]h]Uentries]rt (XpairXCELERY_QUEUES; settingXstd:setting-CELERY_QUEUESru Utrv auhMhhh]ubh)rw }rx (hUhj\ hhhhh}ry (h]h]h]h]h]hju uhMhhh]ubh)rz }r{ (hUhj\ hhh}hhh}r| (h]h]h]h]r} (U celery-queuesr~ ju eh]r hwauhMhhh}r ju jw sh]r (h)r }r (hX CELERY_QUEUESr hjz hhhhh}r (h]h]h]h]h]uhMhhh]r hX CELERY_QUEUESr r }r (hj hj ubaubh)r }r (hXThe mapping of queues the worker consumes from. This is a dictionary of queue name/options. See :ref:`guide-routing` for more information.hjz hhhhh}r (h]h]h]h]h]uhMhhh]r (hXbThe mapping of queues the worker consumes from. This is a dictionary of queue name/options. See r r }r (hXbThe mapping of queues the worker consumes from. This is a dictionary of queue name/options. See hj ubj)r }r (hX:ref:`guide-routing`r hj hhhjh}r (UreftypeXrefjjX guide-routingU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r j)r }r (hj h}r (h]h]r (jj Xstd-refr eh]h]h]uhj h]r hX guide-routingr r }r (hUhj ubahjubaubhX for more information.r r }r (hX for more information.hj ubeubh)r }r (hX[The default is a queue/exchange/binding key of ``"celery"``, with exchange type ``direct``.hjz hhhhh}r (h]h]h]h]h]uhMhhh]r (hX/The default is a queue/exchange/binding key of r r }r (hX/The default is a queue/exchange/binding key of hj ubh)r }r (hX ``"celery"``h}r (h]h]h]h]h]uhj h]r hX"celery"r r }r (hUhj ubahhubhX, with exchange type r r }r (hX, with exchange type hj ubh)r }r (hX ``direct``h}r (h]h]h]h]h]uhj h]r hXdirectr r }r (hUhj ubahhubhX.r }r (hX.hj ubeubh)r }r (hXLYou don't have to care about this unless you want custom routing facilities.r hjz hhhhh}r (h]h]h]h]h]uhMhhh]r hXLYou don't have to care about this unless you want custom routing facilities.r r }r (hj hj ubaubj)r }r (hUhjz hhhjh}r (h]h]h]h]h]Uentries]r (XpairXCELERY_ROUTES; settingXstd:setting-CELERY_ROUTESr Utr auhMhhh]ubh)r }r (hUhjz hhhhh}r (h]h]h]h]h]hj uhMhhh]ubeubh)r }r (hUhj\ hhh}hhh}r (h]h]h]h]r (U celery-routesr j eh]r h2auhMhhh}r j j sh]r (h)r }r (hX CELERY_ROUTESr hj hhhhh}r (h]h]h]h]h]uhMhhh]r hX CELERY_ROUTESr r }r (hj hj ubaubh)r }r (hXA list of routers, or a single router used to route tasks to queues. When deciding the final destination of a task the routers are consulted in order. See :ref:`routers` for more information.hj hhhhh}r (h]h]h]h]h]uhMhhh]r (hXA list of routers, or a single router used to route tasks to queues. When deciding the final destination of a task the routers are consulted in order. See r r }r (hXA list of routers, or a single router used to route tasks to queues. When deciding the final destination of a task the routers are consulted in order. See hj ubj)r }r (hX:ref:`routers`r hj hhhjh}r (UreftypeXrefjjXroutersU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r j)r }r (hj h}r (h]h]r (jj Xstd-refr eh]h]h]uhj h]r hXroutersr r }r (hUhj ubahjubaubhX for more information.r r }r (hX for more information.hj ubeubj)r }r (hUhj hhhjh}r (h]h]h]h]h]Uentries]r (XpairX%CELERY_CREATE_MISSING_QUEUES; settingX(std:setting-CELERY_CREATE_MISSING_QUEUESr Utr auhMhhh]ubh)r }r (hUhj hhhhh}r (h]h]h]h]h]hj uhMhhh]ubeubh)r }r (hUhj\ hhh}hhh}r (h]h]h]h]r (Ucelery-create-missing-queuesr j eh]r h0auhMhhh}r j j sh]r (h)r }r (hXCELERY_CREATE_MISSING_QUEUESr hj hhhhh}r (h]h]h]h]h]uhMhhh]r hXCELERY_CREATE_MISSING_QUEUESr r }r (hj hj ubaubh)r }r (hXIf enabled (default), any queues specified that is not defined in :setting:`CELERY_QUEUES` will be automatically created. See :ref:`routing-automatic`.hj hhhhh}r (h]h]h]h]h]uhMhhh]r (hXBIf enabled (default), any queues specified that is not defined in r r }r (hXBIf enabled (default), any queues specified that is not defined in hj ubj)r }r (hX:setting:`CELERY_QUEUES`r hj hhhjh}r (UreftypeXsettingjjX CELERY_QUEUESU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r h)r }r (hj h}r (h]h]r (jj X std-settingr! eh]h]h]uhj h]r" hX CELERY_QUEUESr# r$ }r% (hUhj ubahhubaubhX$ will be automatically created. See r& r' }r( (hX$ will be automatically created. See hj ubj)r) }r* (hX:ref:`routing-automatic`r+ hj hhhjh}r, (UreftypeXrefjjXrouting-automaticU refdomainXstdr- h]h]U refexplicith]h]h]jjuhMh]r. j)r/ }r0 (hj+ h}r1 (h]h]r2 (jj- Xstd-refr3 eh]h]h]uhj) h]r4 hXrouting-automaticr5 r6 }r7 (hUhj/ ubahjubaubhX.r8 }r9 (hX.hj ubeubj)r: }r; (hUhj hhhjh}r< (h]h]h]h]h]Uentries]r= (XpairXCELERY_DEFAULT_QUEUE; settingX std:setting-CELERY_DEFAULT_QUEUEr> Utr? auhMhhh]ubh)r@ }rA (hUhj hhhhh}rB (h]h]h]h]h]hj> uhMhhh]ubeubh)rC }rD (hUhj\ hhh}hhh}rE (h]h]h]h]rF (Ucelery-default-queuerG j> eh]rH h*auhMhhh}rI j> j@ sh]rJ (h)rK }rL (hXCELERY_DEFAULT_QUEUErM hjC hhhhh}rN (h]h]h]h]h]uhMhhh]rO hXCELERY_DEFAULT_QUEUErP rQ }rR (hjM hjK ubaubh)rS }rT (hXThe queue used by default, if no custom queue is specified. This queue must be listed in :setting:`CELERY_QUEUES`. The default is: ``celery``.hjC hhhhh}rU (h]h]h]h]h]uhMhhh]rV (hXZThe queue used by default, if no custom queue is specified. This queue must be listed in rW rX }rY (hXZThe queue used by default, if no custom queue is specified. This queue must be listed in hjS ubj)rZ }r[ (hX:setting:`CELERY_QUEUES`r\ hjS hhhjh}r] (UreftypeXsettingjjX CELERY_QUEUESU refdomainXstdr^ h]h]U refexplicith]h]h]jjuhMh]r_ h)r` }ra (hj\ h}rb (h]h]rc (jj^ X std-settingrd eh]h]h]uhjZ h]re hX CELERY_QUEUESrf rg }rh (hUhj` ubahhubaubhX. The default is: ri rj }rk (hX. The default is: hjS ubh)rl }rm (hX ``celery``h}rn (h]h]h]h]h]uhjS h]ro hXceleryrp rq }rr (hUhjl ubahhubhX.rs }rt (hX.hjS ubeubcsphinx.addnodes seealso ru )rv }rw (hX%:ref:`routing-changing-default-queue`rx hjC hhhUseealsory h}rz (h]h]h]h]h]uhNhhh]r{ h)r| }r} (hjx hjv hhhhh}r~ (h]h]h]h]h]uhMh]r j)r }r (hjx hj| hhhjh}r (UreftypeXrefjjXrouting-changing-default-queueU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r j)r }r (hjx h}r (h]h]r (jj Xstd-refr eh]h]h]uhj h]r hXrouting-changing-default-queuer r }r (hUhj ubahjubaubaubaubj)r }r (hUhjC hhhjh}r (h]h]h]h]h]Uentries]r (XpairX CELERY_DEFAULT_EXCHANGE; settingX#std:setting-CELERY_DEFAULT_EXCHANGEr Utr auhMhhh]ubh)r }r (hUhjC hhhhh}r (h]h]h]h]h]hj uhMhhh]ubeubh)r }r (hUhj\ hhh}hhh}r (h]h]h]h]r (Ucelery-default-exchanger j eh]r h,auhMhhh}r j j sh]r (h)r }r (hXCELERY_DEFAULT_EXCHANGEr hj hhhhh}r (h]h]h]h]h]uhMhhh]r hXCELERY_DEFAULT_EXCHANGEr r }r (hj hj ubaubh)r }r (hXfName of the default exchange to use when no custom exchange is specified. The default is: ``celery``.hj hhhhh}r (h]h]h]h]h]uhMhhh]r (hX[Name of the default exchange to use when no custom exchange is specified. The default is: r r }r (hX[Name of the default exchange to use when no custom exchange is specified. The default is: hj ubh)r }r (hX ``celery``h}r (h]h]h]h]h]uhj h]r hXceleryr r }r (hUhj ubahhubhX.r }r (hX.hj ubeubj)r }r (hUhj hhhjh}r (h]h]h]h]h]Uentries]r (XpairX%CELERY_DEFAULT_EXCHANGE_TYPE; settingX(std:setting-CELERY_DEFAULT_EXCHANGE_TYPEr Utr auhMhhh]ubh)r }r (hUhj hhhhh}r (h]h]h]h]h]hj uhMhhh]ubeubh)r }r (hUhj\ hhh}hhh}r (h]h]h]h]r (Ucelery-default-exchange-typer j eh]r hauhMhhh}r j j sh]r (h)r }r (hXCELERY_DEFAULT_EXCHANGE_TYPEr hj hhhhh}r (h]h]h]h]h]uhMhhh]r hXCELERY_DEFAULT_EXCHANGE_TYPEr r }r (hj hj ubaubh)r }r (hX\Default exchange type used when no custom exchange is specified. The default is: ``direct``.hj hhhhh}r (h]h]h]h]h]uhMhhh]r (hXQDefault exchange type used when no custom exchange is specified. The default is: r r }r (hXQDefault exchange type used when no custom exchange is specified. The default is: hj ubh)r }r (hX ``direct``h}r (h]h]h]h]h]uhj h]r hXdirectr r }r (hUhj ubahhubhX.r }r (hX.hj ubeubj)r }r (hUhj hhhjh}r (h]h]h]h]h]Uentries]r (XpairX#CELERY_DEFAULT_ROUTING_KEY; settingX&std:setting-CELERY_DEFAULT_ROUTING_KEYr Utr auhMhhh]ubh)r }r (hUhj hhhhh}r (h]h]h]h]h]hj uhMhhh]ubeubh)r }r (hUhj\ hhh}hhh}r (h]h]h]h]r (Ucelery-default-routing-keyr j eh]r h\auhMhhh}r j j sh]r (h)r }r (hXCELERY_DEFAULT_ROUTING_KEYr hj hhhhh}r (h]h]h]h]h]uhMhhh]r hXCELERY_DEFAULT_ROUTING_KEYr r }r (hj hj ubaubh)r }r (hXLThe default routing key used when sending tasks. The default is: ``celery``.hj hhhhh}r (h]h]h]h]h]uhMhhh]r (hXAThe default routing key used when sending tasks. The default is: r r }r (hXAThe default routing key used when sending tasks. The default is: hj ubh)r }r (hX ``celery``h}r (h]h]h]h]h]uhj h]r hXceleryr r }r (hUhj ubahhubhX.r }r (hX.hj ubeubj)r }r (hUhj hhhjh}r (h]h]h]h]h]Uentries]r (XpairX%CELERY_DEFAULT_DELIVERY_MODE; settingX(std:setting-CELERY_DEFAULT_DELIVERY_MODEr Utr auhMhhh]ubh)r }r (hUhj hhhhh}r (h]h]h]h]h]hj uhMhhh]ubeubh)r }r (hUhj\ hhh}hhh}r (h]h]h]h]r (Ucelery-default-delivery-moder j eh]r hauhMhhh}r j j sh]r (h)r }r (hXCELERY_DEFAULT_DELIVERY_MODEr hj hhhhh}r (h]h]h]h]h]uhMhhh]r hXCELERY_DEFAULT_DELIVERY_MODEr r }r! (hj hj ubaubh)r" }r# (hXTCan be ``transient`` or ``persistent``. The default is to send persistent messages.hj hhhhh}r$ (h]h]h]h]h]uhMhhh]r% (hXCan be r& r' }r( (hXCan be hj" ubh)r) }r* (hX ``transient``h}r+ (h]h]h]h]h]uhj" h]r, hX transientr- r. }r/ (hUhj) ubahhubhX or r0 r1 }r2 (hX or hj" ubh)r3 }r4 (hX``persistent``h}r5 (h]h]h]h]h]uhj" h]r6 hX persistentr7 r8 }r9 (hUhj3 ubahhubhX.. The default is to send persistent messages.r: r; }r< (hX.. The default is to send persistent messages.hj" ubeubh)r= }r> (hX.. _conf-broker-connection:hj hhhhh}r? (h]h]h]h]h]hUconf-broker-connectionr@ uhMhhh]ubeubeubh)rA }rB (hUhhhhh}rC hj= shhh}rD (h]h]h]h]rE (jj@ eh]rF (hheuhMhhh}rG j@ j= sh]rH (h)rI }rJ (hjhjA hhhhh}rK (h]h]h]h]h]hjuhMhhh]rL hXBroker SettingsrM rN }rO (hjhjI ubaubj)rP }rQ (hUhjA hhhjh}rR (h]h]h]h]h]Uentries]rS (XpairXBROKER_BACKEND; settingXstd:setting-BROKER_BACKENDrT UtrU auhMhhh]ubh)rV }rW (hUhjA hhhhh}rX (h]h]h]h]h]hjT uhMhhh]ubh)rY }rZ (hUhjA hhh}hhh}r[ (h]h]h]h]r\ (Ubroker-backendr] jT eh]r^ h3auhMhhh}r_ jT jV sh]r` (h)ra }rb (hXBROKER_BACKENDrc hjY hhhhh}rd (h]h]h]h]h]uhMhhh]re hXBROKER_BACKENDrf rg }rh (hjc hja ubaubh)ri }rj (hX7The messaging backend to use. Default is ``"amqplib"``.rk hjY hhhhh}rl (h]h]h]h]h]uhMhhh]rm (hX)The messaging backend to use. Default is rn ro }rp (hX)The messaging backend to use. Default is hji ubh)rq }rr (hX ``"amqplib"``h}rs (h]h]h]h]h]uhji h]rt hX "amqplib"ru rv }rw (hUhjq ubahhubhX.rx }ry (hX.hji ubeubj)rz }r{ (hUhjY hhhjh}r| (h]h]h]h]h]Uentries]r} (XpairXBROKER_HOST; settingXstd:setting-BROKER_HOSTr~ Utr auhMhhh]ubh)r }r (hUhjY hhhhh}r (h]h]h]h]h]hj~ uhMhhh]ubeubh)r }r (hUhjA hhh}hhh}r (h]h]h]h]r (U broker-hostr j~ eh]r hAauhM hhh}r j~ j sh]r (h)r }r (hX BROKER_HOSTr hj hhhhh}r (h]h]h]h]h]uhM hhh]r hX BROKER_HOSTr r }r (hj hj ubaubh)r }r (hXHostname of the broker.r hj hhhhh}r (h]h]h]h]h]uhM hhh]r hXHostname of the broker.r r }r (hj hj ubaubj)r }r (hUhj hhhjh}r (h]h]h]h]h]Uentries]r (XpairXBROKER_PORT; settingXstd:setting-BROKER_PORTr Utr auhMhhh]ubh)r }r (hUhj hhhhh}r (h]h]h]h]h]hj uhMhhh]ubeubh)r }r (hUhjA hhh}hhh}r (h]h]h]h]r (U broker-portr j eh]r h+auhMhhh}r j j sh]r (h)r }r (hX BROKER_PORTr hj hhhhh}r (h]h]h]h]h]uhMhhh]r hX BROKER_PORTr r }r (hj hj ubaubh)r }r (hXXCustom port of the broker. Default is to use the default port for the selected backend.r hj hhhhh}r (h]h]h]h]h]uhMhhh]r hXXCustom port of the broker. Default is to use the default port for the selected backend.r r }r (hj hj ubaubj)r }r (hUhj hhhjh}r (h]h]h]h]h]Uentries]r (XpairXBROKER_USER; settingXstd:setting-BROKER_USERr Utr auhMhhh]ubh)r }r (hUhj hhhhh}r (h]h]h]h]h]hj uhMhhh]ubeubh)r }r (hUhjA hhh}hhh}r (h]h]h]h]r (U broker-userr j eh]r h&auhMhhh}r j j sh]r (h)r }r (hX BROKER_USERr hj hhhhh}r (h]h]h]h]h]uhMhhh]r hX BROKER_USERr r }r (hj hj ubaubh)r }r (hXUsername to connect as.r hj hhhhh}r (h]h]h]h]h]uhMhhh]r hXUsername to connect as.r r }r (hj hj ubaubj)r }r (hUhj hhhjh}r (h]h]h]h]h]Uentries]r (XpairXBROKER_PASSWORD; settingXstd:setting-BROKER_PASSWORDr Utr auhMhhh]ubh)r }r (hUhj hhhhh}r (h]h]h]h]h]hj uhMhhh]ubeubh)r }r (hUhjA hhh}hhh}r (h]h]h]h]r (Ubroker-passwordr j eh]r hauhM hhh}r j j sh]r (h)r }r (hXBROKER_PASSWORDr hj hhhhh}r (h]h]h]h]h]uhM hhh]r hXBROKER_PASSWORDr r }r (hj hj ubaubh)r }r (hXPassword to connect with.r hj hhhhh}r (h]h]h]h]h]uhM"hhh]r hXPassword to connect with.r r }r (hj hj ubaubj)r }r (hUhj hhhjh}r (h]h]h]h]h]Uentries]r (XpairXBROKER_VHOST; settingXstd:setting-BROKER_VHOSTr Utr auhM%hhh]ubh)r }r (hUhj hhhhh}r (h]h]h]h]h]hj uhM%hhh]ubeubh)r }r (hUhjA hhh}hhh}r (h]h]h]h]r (U broker-vhostr j eh]r hauhM'hhh}r j j sh]r (h)r }r (hX BROKER_VHOSTr hj hhhhh}r (h]h]h]h]h]uhM'hhh]r hX BROKER_VHOSTr r }r (hj hj ubaubh)r }r (hX"Virtual host. Default is ``"/"``.r hj hhhhh}r (h]h]h]h]h]uhM)hhh]r (hXVirtual host. Default is r r }r (hXVirtual host. Default is hj ubh)r }r (hX``"/"``h}r! (h]h]h]h]h]uhj h]r" hX"/"r# r$ }r% (hUhj ubahhubhX.r& }r' (hX.hj ubeubj)r( }r) (hUhj hhhjh}r* (h]h]h]h]h]Uentries]r+ (XpairXBROKER_USE_SSL; settingXstd:setting-BROKER_USE_SSLr, Utr- auhM,hhh]ubh)r. }r/ (hUhj hhhhh}r0 (h]h]h]h]h]hj, uhM,hhh]ubeubh)r1 }r2 (hUhjA hhh}hhh}r3 (h]h]h]h]r4 (Ubroker-use-sslr5 j, eh]r6 hauhM.hhh}r7 j, j. sh]r8 (h)r9 }r: (hXBROKER_USE_SSLr; hj1 hhhhh}r< (h]h]h]h]h]uhM.hhh]r= hXBROKER_USE_SSLr> r? }r@ (hj; hj9 ubaubh)rA }rB (hX`Use SSL to connect to the broker. Off by default. This may not be supported by all transports.rC hj1 hhhhh}rD (h]h]h]h]h]uhM0hhh]rE hX`Use SSL to connect to the broker. Off by default. This may not be supported by all transports.rF rG }rH (hjC hjA ubaubj)rI }rJ (hUhj1 hhhjh}rK (h]h]h]h]h]Uentries]rL (XpairX"BROKER_CONNECTION_TIMEOUT; settingX%std:setting-BROKER_CONNECTION_TIMEOUTrM UtrN auhM4hhh]ubh)rO }rP (hUhj1 hhhhh}rQ (h]h]h]h]h]hjM uhM4hhh]ubeubh)rR }rS (hUhjA hhh}hhh}rT (h]h]h]h]rU (Ubroker-connection-timeoutrV jM eh]rW hauhM6hhh}rX jM jO sh]rY (h)rZ }r[ (hXBROKER_CONNECTION_TIMEOUTr\ hjR hhhhh}r] (h]h]h]h]h]uhM6hhh]r^ hXBROKER_CONNECTION_TIMEOUTr_ r` }ra (hj\ hjZ ubaubh)rb }rc (hXuThe default timeout in seconds before we give up establishing a connection to the AMQP server. Default is 4 seconds.rd hjR hhhhh}re (h]h]h]h]h]uhM8hhh]rf hXuThe default timeout in seconds before we give up establishing a connection to the AMQP server. Default is 4 seconds.rg rh }ri (hjd hjb ubaubj)rj }rk (hUhjR hhhjh}rl (h]h]h]h]h]Uentries]rm (XpairX'CELERY_BROKER_CONNECTION_RETRY; settingX*std:setting-CELERY_BROKER_CONNECTION_RETRYrn Utro auhM<hhh]ubh)rp }rq (hUhjR hhhhh}rr (h]h]h]h]h]hjn uhM<hhh]ubeubh)rs }rt (hUhjA hhh}hhh}ru (h]h]h]h]rv (Ubroker-connection-retryrw jn eh]rx hauhM>hhh}ry jn jp sh]rz (h)r{ }r| (hXBROKER_CONNECTION_RETRYr} hjs hhhhh}r~ (h]h]h]h]h]uhM>hhh]r hXBROKER_CONNECTION_RETRYr r }r (hj} hj{ ubaubh)r }r (hXLAutomatically try to re-establish the connection to the AMQP broker if lost.r hjs hhhhh}r (h]h]h]h]h]uhM@hhh]r hXLAutomatically try to re-establish the connection to the AMQP broker if lost.r r }r (hj hj ubaubh)r }r (hXThe time between retries is increased for each retry, and is not exhausted before :setting:`CELERY_BROKER_CONNECTION_MAX_RETRIES` is exceeded.hjs hhhhh}r (h]h]h]h]h]uhMBhhh]r (hXRThe time between retries is increased for each retry, and is not exhausted before r r }r (hXRThe time between retries is increased for each retry, and is not exhausted before hj ubj)r }r (hX/:setting:`CELERY_BROKER_CONNECTION_MAX_RETRIES`r hj hhhjh}r (UreftypeXsettingjjX$CELERY_BROKER_CONNECTION_MAX_RETRIESU refdomainXstdr h]h]U refexplicith]h]h]jjuhMBh]r h)r }r (hj h}r (h]h]r (jj X std-settingr eh]h]h]uhj h]r hX$CELERY_BROKER_CONNECTION_MAX_RETRIESr r }r (hUhj ubahhubaubhX is exceeded.r r }r (hX is exceeded.hj ubeubh)r }r (hXThis behavior is on by default.r hjs hhhhh}r (h]h]h]h]h]uhMFhhh]r hXThis behavior is on by default.r r }r (hj hj ubaubj)r }r (hUhjs hhhjh}r (h]h]h]h]h]Uentries]r (XpairX-CELERY_BROKER_CONNECTION_MAX_RETRIES; settingX0std:setting-CELERY_BROKER_CONNECTION_MAX_RETRIESr Utr auhMIhhh]ubh)r }r (hUhjs hhhhh}r (h]h]h]h]h]hj uhMIhhh]ubeubh)r }r (hUhjA hhh}hhh}r (h]h]h]h]r (U$celery-broker-connection-max-retriesr j eh]r hRauhMKhhh}r j j sh]r (h)r }r (hX$CELERY_BROKER_CONNECTION_MAX_RETRIESr hj hhhhh}r (h]h]h]h]h]uhMKhhh]r hX$CELERY_BROKER_CONNECTION_MAX_RETRIESr r }r (hj hj ubaubh)r }r (hX\Maximum number of retries before we give up re-establishing a connection to the AMQP broker.r hj hhhhh}r (h]h]h]h]h]uhMMhhh]r hX\Maximum number of retries before we give up re-establishing a connection to the AMQP broker.r r }r (hj hj ubaubh)r }r (hXEIf this is set to :const:`0` or :const:`None`, we will retry forever.r hj hhhhh}r (h]h]h]h]h]uhMPhhh]r (hXIf this is set to r r }r (hXIf this is set to hj ubj)r }r (hX :const:`0`r hj hhhjh}r (UreftypeXconstjjX0U refdomainXpyr h]h]U refexplicith]h]h]jjjNjNuhMPh]r h)r }r (hj h}r (h]h]r (jj Xpy-constr eh]h]h]uhj h]r hX0r }r (hUhj ubahhubaubhX or r r }r (hX or hj ubj)r }r (hX :const:`None`r hj hhhjh}r (UreftypeXconstjjXNoneU refdomainXpyr h]h]U refexplicith]h]h]jjjNjNuhMPh]r h)r }r (hj h}r (h]h]r (jj Xpy-constr eh]h]h]uhj h]r hXNoner r }r (hUhj ubahhubaubhX, we will retry forever.r r }r (hX, we will retry forever.hj ubeubh)r }r (hXDefault is 100 retries.r hj hhhhh}r (h]h]h]h]h]uhMRhhh]r hXDefault is 100 retries.r r }r (hj hj ubaubh)r }r (hX.. _conf-task-execution:hj hhhhh}r (h]h]h]h]h]hUconf-task-executionr uhMThhh]ubeubeubh)r }r (hUhhhhh}r hj shhh}r (h]h]h]h]r (jj eh]r (hheuhMWhhh}r j j sh]r (h)r }r (hjhj hhhhh}r (h]h]h]h]h]hjuhMWhhh]r hXTask execution settingsr r }r (hjhj ubaubj)r }r (hUhj hhhjh}r (h]h]h]h]h]Uentries]r (XpairXCELERY_ALWAYS_EAGER; settingXstd:setting-CELERY_ALWAYS_EAGERr Utr auhMZhhh]ubh)r }r (hUhj hhhhh}r (h]h]h]h]h]hj uhMZhhh]ubh)r }r (hUhj hhh}hhh}r (h]h]h]h]r (Ucelery-always-eagerr j eh]r! h^auhM\hhh}r" j j sh]r# (h)r$ }r% (hXCELERY_ALWAYS_EAGERr& hj hhhhh}r' (h]h]h]h]h]uhM\hhh]r( hXCELERY_ALWAYS_EAGERr) r* }r+ (hj& hj$ ubaubh)r, }r- (hX&If this is :const:`True`, all tasks will be executed locally by blocking until it is finished. ``apply_async`` and ``Task.delay`` will return a :class:`~celery.result.EagerResult` which emulates the behavior of :class:`~celery.result.AsyncResult`, except the result has already been evaluated.hj hhhhh}r. (h]h]h]h]h]uhM^hhh]r/ (hX If this is r0 r1 }r2 (hX If this is hj, ubj)r3 }r4 (hX :const:`True`r5 hj, hhhjh}r6 (UreftypeXconstjjXTrueU refdomainXpyr7 h]h]U refexplicith]h]h]jjjNjNuhM^h]r8 h)r9 }r: (hj5 h}r; (h]h]r< (jj7 Xpy-constr= eh]h]h]uhj3 h]r> hXTruer? r@ }rA (hUhj9 ubahhubaubhXH, all tasks will be executed locally by blocking until it is finished. rB rC }rD (hXH, all tasks will be executed locally by blocking until it is finished. hj, ubh)rE }rF (hX``apply_async``h}rG (h]h]h]h]h]uhj, h]rH hX apply_asyncrI rJ }rK (hUhjE ubahhubhX and rL rM }rN (hX and hj, ubh)rO }rP (hX``Task.delay``h}rQ (h]h]h]h]h]uhj, h]rR hX Task.delayrS rT }rU (hUhjO ubahhubhX will return a rV rW }rX (hX will return a hj, ubj)rY }rZ (hX#:class:`~celery.result.EagerResult`r[ hj, hhhjh}r\ (UreftypeXclassjjXcelery.result.EagerResultU refdomainXpyr] h]h]U refexplicith]h]h]jjjNjNuhM^h]r^ h)r_ }r` (hj[ h}ra (h]h]rb (jj] Xpy-classrc eh]h]h]uhjY h]rd hX EagerResultre rf }rg (hUhj_ ubahhubaubhX which emulates the behavior of rh ri }rj (hX which emulates the behavior of hj, ubj)rk }rl (hX#:class:`~celery.result.AsyncResult`rm hj, hhhjh}rn (UreftypeXclassjjXcelery.result.AsyncResultU refdomainXpyro h]h]U refexplicith]h]h]jjjNjNuhM^h]rp h)rq }rr (hjm h}rs (h]h]rt (jjo Xpy-classru eh]h]h]uhjk h]rv hX AsyncResultrw rx }ry (hUhjq ubahhubaubhX/, except the result has already been evaluated.rz r{ }r| (hX/, except the result has already been evaluated.hj, ubeubh)r} }r~ (hXDTasks will never be sent to the queue, but executed locally instead.r hj hhhhh}r (h]h]h]h]h]uhMdhhh]r hXDTasks will never be sent to the queue, but executed locally instead.r r }r (hj hj} ubaubj)r }r (hUhj hhhjh}r (h]h]h]h]h]Uentries]r (XpairX+CELERY_EAGER_PROPAGATES_EXCEPTIONS; settingX.std:setting-CELERY_EAGER_PROPAGATES_EXCEPTIONSr Utr auhMhhhh]ubh)r }r (hUhj hhhhh}r (h]h]h]h]h]hj uhMhhhh]ubeubh)r }r (hUhj hhh}hhh}r (h]h]h]h]r (U"celery-eager-propagates-exceptionsr j eh]r hHauhMjhhh}r j j sh]r (h)r }r (hX"CELERY_EAGER_PROPAGATES_EXCEPTIONSr hj hhhhh}r (h]h]h]h]h]uhMjhhh]r hX"CELERY_EAGER_PROPAGATES_EXCEPTIONSr r }r (hj hj ubaubh)r }r (hXIf this is :const:`True`, eagerly executed tasks (using ``.apply``, or with :setting:`CELERY_ALWAYS_EAGER` on), will raise exceptions.hj hhhhh}r (h]h]h]h]h]uhMlhhh]r (hX If this is r r }r (hX If this is hj ubj)r }r (hX :const:`True`r hj hhhjh}r (UreftypeXconstjjXTrueU refdomainXpyr h]h]U refexplicith]h]h]jjjNjNuhMlh]r h)r }r (hj h}r (h]h]r (jj Xpy-constr eh]h]h]uhj h]r hXTruer r }r (hUhj ubahhubaubhX , eagerly executed tasks (using r r }r (hX , eagerly executed tasks (using hj ubh)r }r (hX ``.apply``h}r (h]h]h]h]h]uhj h]r hX.applyr r }r (hUhj ubahhubhX , or with r r }r (hX , or with hj ubj)r }r (hX:setting:`CELERY_ALWAYS_EAGER`r hj hhhjh}r (UreftypeXsettingjjXCELERY_ALWAYS_EAGERU refdomainXstdr h]h]U refexplicith]h]h]jjuhMlh]r h)r }r (hj h}r (h]h]r (jj X std-settingr eh]h]h]uhj h]r hXCELERY_ALWAYS_EAGERr r }r (hUhj ubahhubaubhX on), will raise exceptions.r r }r (hX on), will raise exceptions.hj ubeubh)r }r (hX>It's the same as always running ``apply`` with ``throw=True``.r hj hhhhh}r (h]h]h]h]h]uhMohhh]r (hX It's the same as always running r r }r (hX It's the same as always running hj ubh)r }r (hX ``apply``h}r (h]h]h]h]h]uhj h]r hXapplyr r }r (hUhj ubahhubhX with r r }r (hX with hj ubh)r }r (hX``throw=True``h}r (h]h]h]h]h]uhj h]r hX throw=Truer r }r (hUhj ubahhubhX.r }r (hX.hj ubeubj)r }r (hUhj hhhjh}r (h]h]h]h]h]Uentries]r (XpairXCELERY_IGNORE_RESULT; settingX std:setting-CELERY_IGNORE_RESULTr Utr auhMrhhh]ubh)r }r (hUhj hhhhh}r (h]h]h]h]h]hj uhMrhhh]ubeubh)r }r (hUhj hhh}hhh}r (h]h]h]h]r (Ucelery-ignore-resultr j eh]r hauhMthhh}r j j sh]r (h)r }r(hXCELERY_IGNORE_RESULTrhj hhhhh}r(h]h]h]h]h]uhMthhh]rhXCELERY_IGNORE_RESULTrr}r(hjhj ubaubh)r}r(hXWhether to store the task return values or not (tombstones). If you still want to store errors, just not successful return values, you can set :setting:`CELERY_STORE_ERRORS_EVEN_IF_IGNORED`.hj hhhhh}r (h]h]h]h]h]uhMvhhh]r (hXWhether to store the task return values or not (tombstones). If you still want to store errors, just not successful return values, you can set r r }r (hXWhether to store the task return values or not (tombstones). If you still want to store errors, just not successful return values, you can set hjubj)r}r(hX.:setting:`CELERY_STORE_ERRORS_EVEN_IF_IGNORED`rhjhhhjh}r(UreftypeXsettingjjX#CELERY_STORE_ERRORS_EVEN_IF_IGNOREDU refdomainXstdrh]h]U refexplicith]h]h]jjuhMvh]rh)r}r(hjh}r(h]h]r(jjX std-settingreh]h]h]uhjh]rhX#CELERY_STORE_ERRORS_EVEN_IF_IGNOREDrr}r(hUhjubahhubaubhX.r}r(hX.hjubeubj)r}r (hUhj hhhjh}r!(h]h]h]h]h]Uentries]r"(XpairX#CELERY_TASK_RESULT_EXPIRES; settingX&std:setting-CELERY_TASK_RESULT_EXPIRESr#Utr$auhM{hhh]ubh)r%}r&(hUhj hhhhh}r'(h]h]h]h]h]hj#uhM{hhh]ubeubh)r(}r)(hUhj hhh}hhh}r*(h]h]h]h]r+(Ucelery-task-result-expiresr,j#eh]r-hrauhM}hhh}r.j#j%sh]r/(h)r0}r1(hXCELERY_TASK_RESULT_EXPIRESr2hj(hhhhh}r3(h]h]h]h]h]uhM}hhh]r4hXCELERY_TASK_RESULT_EXPIRESr5r6}r7(hj2hj0ubaubh)r8}r9(hXrTime (in seconds, or a :class:`~datetime.timedelta` object) for when after stored task tombstones will be deleted.hj(hhhhh}r:(h]h]h]h]h]uhMhhh]r;(hXTime (in seconds, or a r<r=}r>(hXTime (in seconds, or a hj8ubj)r?}r@(hX:class:`~datetime.timedelta`rAhj8hhhjh}rB(UreftypeXclassjjXdatetime.timedeltaU refdomainXpyrCh]h]U refexplicith]h]h]jjjNjNuhMh]rDh)rE}rF(hjAh}rG(h]h]rH(jjCXpy-classrIeh]h]h]uhj?h]rJhX timedeltarKrL}rM(hUhjEubahhubaubhX? object) for when after stored task tombstones will be deleted.rNrO}rP(hX? object) for when after stored task tombstones will be deleted.hj8ubeubh)rQ}rR(hXqA built-in periodic task will delete the results after this time (:class:`celery.task.builtins.backend_cleanup`).hj(hhhhh}rS(h]h]h]h]h]uhMhhh]rT(hXBA built-in periodic task will delete the results after this time (rUrV}rW(hXBA built-in periodic task will delete the results after this time (hjQubj)rX}rY(hX-:class:`celery.task.builtins.backend_cleanup`rZhjQhhhjh}r[(UreftypeXclassjjX$celery.task.builtins.backend_cleanupU refdomainXpyr\h]h]U refexplicith]h]h]jjjNjNuhMh]r]h)r^}r_(hjZh}r`(h]h]ra(jj\Xpy-classrbeh]h]h]uhjXh]rchX$celery.task.builtins.backend_cleanuprdre}rf(hUhj^ubahhubaubhX).rgrh}ri(hX).hjQubeubj)rj}rk(hXFor the moment this only works with the database, cache, redis and MongoDB backends. For the AMQP backend see :setting:`CELERY_AMQP_TASK_RESULT_EXPIRES`. When using the database or MongoDB backends, ``celerybeat`` must be running for the results to be expired.hj(hhhjh}rl(h]h]h]h]h]uhNhhh]rm(h)rn}ro(hXFor the moment this only works with the database, cache, redis and MongoDB backends. For the AMQP backend see :setting:`CELERY_AMQP_TASK_RESULT_EXPIRES`.hjjhhhhh}rp(h]h]h]h]h]uhMh]rq(hXnFor the moment this only works with the database, cache, redis and MongoDB backends. For the AMQP backend see rrrs}rt(hXnFor the moment this only works with the database, cache, redis and MongoDB backends. For the AMQP backend see hjnubj)ru}rv(hX*:setting:`CELERY_AMQP_TASK_RESULT_EXPIRES`rwhjnhhhjh}rx(UreftypeXsettingjjXCELERY_AMQP_TASK_RESULT_EXPIRESU refdomainXstdryh]h]U refexplicith]h]h]jjuhMh]rzh)r{}r|(hjwh}r}(h]h]r~(jjyX std-settingreh]h]h]uhjuh]rhXCELERY_AMQP_TASK_RESULT_EXPIRESrr}r(hUhj{ubahhubaubhX.r}r(hX.hjnubeubh)r}r(hXjWhen using the database or MongoDB backends, ``celerybeat`` must be running for the results to be expired.hjjhhhhh}r(h]h]h]h]h]uhMh]r(hX-When using the database or MongoDB backends, rr}r(hX-When using the database or MongoDB backends, hjubh)r}r(hX``celerybeat``h}r(h]h]h]h]h]uhjh]rhX celerybeatrr}r(hUhjubahhubhX/ must be running for the results to be expired.rr}r(hX/ must be running for the results to be expired.hjubeubeubj)r}r(hUhj(hhhjh}r(h]h]h]h]h]Uentries]r(XpairX"CELERY_MAX_CACHED_RESULTS; settingX%std:setting-CELERY_MAX_CACHED_RESULTSrUtrauhMhhh]ubh)r}r(hUhj(hhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhj hhh}hhh}r(h]h]h]h]r(Ucelery-max-cached-resultsrjeh]rhauhMhhh}rjjsh]r(h)r}r(hXCELERY_MAX_CACHED_RESULTSrhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERY_MAX_CACHED_RESULTSrr}r(hjhjubaubh)r}r(hXhTotal number of results to store before results are evicted from the result cache. The default is 5000.rhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXhTotal number of results to store before results are evicted from the result cache. The default is 5000.rr}r(hjhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERY_TRACK_STARTED; settingX std:setting-CELERY_TRACK_STARTEDrUtrauhMhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhj hhh}hhh}r(h]h]h]h]r(Ucelery-track-startedrjeh]rhtauhMhhh}rjjsh]r(h)r}r(hXCELERY_TRACK_STARTEDrhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERY_TRACK_STARTEDrr}r(hjhjubaubh)r}r(hXIf :const:`True` the task will report its status as "started" when the task is executed by a worker. The default value is :const:`False` as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" state can be useful for when there are long running tasks and there is a need to report which task is currently running.hjhhhhh}r(h]h]h]h]h]uhMhhh]r(hXIf rr}r(hXIf hjubj)r}r(hX :const:`True`rhjhhhjh}r(UreftypeXconstjjXTrueU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXTruerr}r(hUhjubahhubaubhXk the task will report its status as "started" when the task is executed by a worker. The default value is rr}r(hXk the task will report its status as "started" when the task is executed by a worker. The default value is hjubj)r}r(hX:const:`False`rhjhhhjh}r(UreftypeXconstjjXFalseU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXFalserr}r(hUhjubahhubaubhX as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" state can be useful for when there are long running tasks and there is a need to report which task is currently running.rr}r(hX as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" state can be useful for when there are long running tasks and there is a need to report which task is currently running.hjubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERY_TASK_SERIALIZER; settingX"std:setting-CELERY_TASK_SERIALIZERrUtrauhMhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhj hhh}hhh}r(h]h]h]h]r(Ucelery-task-serializerr jeh]r hauhMhhh}r jjsh]r (h)r }r(hXCELERY_TASK_SERIALIZERrhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERY_TASK_SERIALIZERrr}r(hjhj ubaubh)r}r(hXA string identifying the default serialization method to use. Can be ``pickle`` (default), ``json``, ``yaml``, or any custom serialization methods that have been registered with :mod:`carrot.serialization.registry`.hjhhhhh}r(h]h]h]h]h]uhMhhh]r(hXFA string identifying the default serialization method to use. Can be rr}r(hXFA string identifying the default serialization method to use. Can be hjubh)r}r(hX ``pickle``h}r(h]h]h]h]h]uhjh]rhXpickler r!}r"(hUhjubahhubhX (default), r#r$}r%(hX (default), hjubh)r&}r'(hX``json``h}r((h]h]h]h]h]uhjh]r)hXjsonr*r+}r,(hUhj&ubahhubhX, r-r.}r/(hX, hjubh)r0}r1(hX``yaml``h}r2(h]h]h]h]h]uhjh]r3hXyamlr4r5}r6(hUhj0ubahhubhXE, or any custom serialization methods that have been registered with r7r8}r9(hXE, or any custom serialization methods that have been registered with hjubj)r:}r;(hX$:mod:`carrot.serialization.registry`r<hjhhhjh}r=(UreftypeXmodjjXcarrot.serialization.registryU refdomainXpyr>h]h]U refexplicith]h]h]jjjNjNuhMh]r?h)r@}rA(hj<h}rB(h]h]rC(jj>Xpy-modrDeh]h]h]uhj:h]rEhXcarrot.serialization.registryrFrG}rH(hUhj@ubahhubaubhX.rI}rJ(hX.hjubeubju )rK}rL(hX:ref:`executing-serializers`.rMhjhhhjy h}rN(h]h]h]h]h]uhNhhh]rOh)rP}rQ(hjMhjKhhhhh}rR(h]h]h]h]h]uhMh]rS(j)rT}rU(hX:ref:`executing-serializers`rVhjPhhhjh}rW(UreftypeXrefjjXexecuting-serializersU refdomainXstdrXh]h]U refexplicith]h]h]jjuhMh]rYj)rZ}r[(hjVh}r\(h]h]r](jjXXstd-refr^eh]h]h]uhjTh]r_hXexecuting-serializersr`ra}rb(hUhjZubahjubaubhX.rc}rd(hX.hjPubeubaubj)re}rf(hUhjhhhjh}rg(h]h]h]h]h]Uentries]rh(XpairX"CELERY_DEFAULT_RATE_LIMIT; settingX%std:setting-CELERY_DEFAULT_RATE_LIMITriUtrjauhMhhh]ubh)rk}rl(hUhjhhhhh}rm(h]h]h]h]h]hjiuhMhhh]ubeubh)rn}ro(hUhj hhh}hhh}rp(h]h]h]h]rq(Ucelery-default-rate-limitrrjieh]rshA sequence of modules to import when the celery daemon starts.r0hjhhhhh}r1(h]h]h]h]h]uhMhhh]r2hX>A sequence of modules to import when the celery daemon starts.r3r4}r5(hj0hj.ubaubh)r6}r7(hXThis is used to specify the task modules to import, but also to import signal handlers and additional remote control commands, etc.r8hjhhhhh}r9(h]h]h]h]h]uhMhhh]r:hXThis is used to specify the task modules to import, but also to import signal handlers and additional remote control commands, etc.r;r<}r=(hj8hj6ubaubj)r>}r?(hUhjhhhjh}r@(h]h]h]h]h]Uentries]rA(XpairX$CELERYD_MAX_TASKS_PER_CHILD; settingX'std:setting-CELERYD_MAX_TASKS_PER_CHILDrBUtrCauhMhhh]ubh)rD}rE(hUhjhhhhh}rF(h]h]h]h]h]hjBuhMhhh]ubeubh)rG}rH(hUhjhhh}hhh}rI(h]h]h]h]rJ(Uceleryd-max-tasks-per-childrKjBeh]rLh auhMhhh}rMjBjDsh]rN(h)rO}rP(hXCELERYD_MAX_TASKS_PER_CHILDrQhjGhhhhh}rR(h]h]h]h]h]uhMhhh]rShXCELERYD_MAX_TASKS_PER_CHILDrTrU}rV(hjQhjOubaubh)rW}rX(hXtMaximum number of tasks a pool worker process can execute before it's replaced with a new one. Default is no limit.rYhjGhhhhh}rZ(h]h]h]h]h]uhMhhh]r[hXtMaximum number of tasks a pool worker process can execute before it's replaced with a new one. Default is no limit.r\r]}r^(hjYhjWubaubj)r_}r`(hUhjGhhhjh}ra(h]h]h]h]h]Uentries]rb(XpairX CELERYD_TASK_TIME_LIMIT; settingX#std:setting-CELERYD_TASK_TIME_LIMITrcUtrdauhMhhh]ubh)re}rf(hUhjGhhhhh}rg(h]h]h]h]h]hjcuhMhhh]ubeubh)rh}ri(hUhjhhh}hhh}rj(h]h]h]h]rk(Uceleryd-task-time-limitrljceh]rmhXauhMhhh}rnjcjesh]ro(h)rp}rq(hXCELERYD_TASK_TIME_LIMITrrhjhhhhhh}rs(h]h]h]h]h]uhMhhh]rthXCELERYD_TASK_TIME_LIMITrurv}rw(hjrhjpubaubh)rx}ry(hXTask hard time limit in seconds. The worker processing the task will be killed and replaced with a new one when this is exceeded.rzhjhhhhhh}r{(h]h]h]h]h]uhMhhh]r|hXTask hard time limit in seconds. The worker processing the task will be killed and replaced with a new one when this is exceeded.r}r~}r(hjzhjxubaubj)r}r(hUhjhhhhjh}r(h]h]h]h]h]Uentries]r(XpairX%CELERYD_TASK_SOFT_TIME_LIMIT; settingX(std:setting-CELERYD_TASK_SOFT_TIME_LIMITrUtrauhMhhh]ubh)r}r(hUhjhhhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Uceleryd-task-soft-time-limitrjeh]rhmauhMhhh}rjjsh]r(h)r}r(hXCELERYD_TASK_SOFT_TIME_LIMITrhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERYD_TASK_SOFT_TIME_LIMITrr}r(hjhjubaubh)r}r(hX Task soft time limit in seconds.rhjhhhhh}r(h]h]h]h]h]uhMhhh]rhX Task soft time limit in seconds.rr}r(hjhjubaubh)r}r(hXThe :exc:`~celery.exceptions.SoftTimeLimitExceeded` exception will be raised when this is exceeded. The task can catch this to e.g. clean up before the hard time limit comes.hjhhhhh}r(h]h]h]h]h]uhMhhh]r(hXThe rr}r(hXThe hjubj)r}r(hX/:exc:`~celery.exceptions.SoftTimeLimitExceeded`rhjhhhjh}r(UreftypeXexcjjX'celery.exceptions.SoftTimeLimitExceededU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-excreh]h]h]uhjh]rhXSoftTimeLimitExceededrr}r(hUhjubahhubaubhX| exception will be raised when this is exceeded. The task can catch this to e.g. clean up before the hard time limit comes.rr}r(hX| exception will be raised when this is exceeded. The task can catch this to e.g. clean up before the hard time limit comes.hjubeubh)r}r(hXExample:rhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXExample:rr}r(hjhjubaubj)r}r(hXfrom celery.decorators import task from celery.exceptions import SoftTimeLimitExceeded @task() def mytask(): try: return do_work() except SoftTimeLimitExceeded: cleanup_in_a_hurry()hjhhhjh}r(jjXpythonjjh]h]h]h]h]uhMhhh]rhXfrom celery.decorators import task from celery.exceptions import SoftTimeLimitExceeded @task() def mytask(): try: return do_work() except SoftTimeLimitExceeded: cleanup_in_a_hurry()rr}r(hUhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairX,CELERY_STORE_ERRORS_EVEN_IF_IGNORED; settingX/std:setting-CELERY_STORE_ERRORS_EVEN_IF_IGNOREDrUtrauhMhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(U#celery-store-errors-even-if-ignoredrjeh]rh>auhMhhh}rjjsh]r(h)r}r(hX#CELERY_STORE_ERRORS_EVEN_IF_IGNOREDrhjhhhhh}r(h]h]h]h]h]uhMhhh]rhX#CELERY_STORE_ERRORS_EVEN_IF_IGNOREDrr}r(hjhjubaubh)r}r(hXIf set, the worker stores all task errors in the result store even if :attr:`Task.ignore_result ` is on.hjhhhhh}r(h]h]h]h]h]uhM hhh]r(hXFIf set, the worker stores all task errors in the result store even if rr}r(hXFIf set, the worker stores all task errors in the result store even if hjubj)r}r(hX@:attr:`Task.ignore_result `rhjhhhjh}r(UreftypeXattrjjX#celery.task.base.Task.ignore_resultU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhM h]rh)r}r(hjh}r(h]h]r(jjXpy-attrreh]h]h]uhjh]rhXTask.ignore_resultrr}r(hUhjubahhubaubhX is on.rr}r(hX is on.hjubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERYD_STATE_DB; settingXstd:setting-CELERYD_STATE_DBrUtrauhMhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Uceleryd-state-dbrjeh]r hbauhMhhh}r jjsh]r (h)r }r (hXCELERYD_STATE_DBrhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERYD_STATE_DBrr}r(hjhj ubaubh)r}r(hXName of the file used to stores persistent worker state (like revoked tasks). Can be a relative or absolute path, but be aware that the suffix ``.db`` may be appended to the file name (depending on Python version).hjhhhhh}r(h]h]h]h]h]uhMhhh]r(hXName of the file used to stores persistent worker state (like revoked tasks). Can be a relative or absolute path, but be aware that the suffix rr}r(hXName of the file used to stores persistent worker state (like revoked tasks). Can be a relative or absolute path, but be aware that the suffix hjubh)r}r(hX``.db``h}r(h]h]h]h]h]uhjh]rhX.dbrr }r!(hUhjubahhubhX@ may be appended to the file name (depending on Python version).r"r#}r$(hX@ may be appended to the file name (depending on Python version).hjubeubh)r%}r&(hXSCan also be set via the :option:`--statedb` argument to :mod:`~celery.bin.celeryd`.hjhhhhh}r'(h]h]h]h]h]uhMhhh]r((hXCan also be set via the r)r*}r+(hXCan also be set via the hj%ubj)r,}r-(hX:option:`--statedb`r.hj%hhhjh}r/(UreftypeXoptionjjX --statedbU refdomainXstdr0U refprogramr1Nh]h]U refexplicith]h]h]jjuhMh]r2csphinx.addnodes literal_emphasis r3)r4}r5(hj.h}r6(h]h]r7(jj0X std-optionr8eh]h]h]uhj,h]r9hX --statedbr:r;}r<(hUhj4ubahUliteral_emphasisr=ubaubhX argument to r>r?}r@(hX argument to hj%ubj)rA}rB(hX:mod:`~celery.bin.celeryd`rChj%hhhjh}rD(UreftypeXmodjjXcelery.bin.celerydU refdomainXpyrEh]h]U refexplicith]h]h]jjjNjNuhMh]rFh)rG}rH(hjCh}rI(h]h]rJ(jjEXpy-modrKeh]h]h]uhjAh]rLhXcelerydrMrN}rO(hUhjGubahhubaubhX.rP}rQ(hX.hj%ubeubh)rR}rS(hXNot enabled by default.rThjhhhhh}rU(h]h]h]h]h]uhMhhh]rVhXNot enabled by default.rWrX}rY(hjThjRubaubj)rZ}r[(hUhjhhhjh}r\(h]h]h]h]h]Uentries]r](XpairX(CELERYD_ETA_SCHEDULER_PRECISION; settingX+std:setting-CELERYD_ETA_SCHEDULER_PRECISIONr^Utr_auhMhhh]ubh)r`}ra(hUhjhhhhh}rb(h]h]h]h]h]hj^uhMhhh]ubeubh)rc}rd(hUhjhhh}hhh}re(h]h]h]h]rf(Uceleryd-eta-scheduler-precisionrgj^eh]rhh4auhMhhh}rij^j`sh]rj(h)rk}rl(hXCELERYD_ETA_SCHEDULER_PRECISIONrmhjchhhhh}rn(h]h]h]h]h]uhMhhh]rohXCELERYD_ETA_SCHEDULER_PRECISIONrprq}rr(hjmhjkubaubh)rs}rt(hXwSet the maximum time in seconds that the ETA scheduler can sleep between rechecking the schedule. Default is 1 second.ruhjchhhhh}rv(h]h]h]h]h]uhM hhh]rwhXwSet the maximum time in seconds that the ETA scheduler can sleep between rechecking the schedule. Default is 1 second.rxry}rz(hjuhjsubaubh)r{}r|(hXSetting this value to 1 second means the schedulers precision will be 1 second. If you need near millisecond precision you can set this to 0.1.r}hjchhhhh}r~(h]h]h]h]h]uhM#hhh]rhXSetting this value to 1 second means the schedulers precision will be 1 second. If you need near millisecond precision you can set this to 0.1.rr}r(hj}hj{ubaubh)r}r(hX.. _conf-error-mails:hjchhhhh}r(h]h]h]h]h]hUconf-error-mailsruhM&hhh]ubeubeubh)r}r(hUhhhhh}rhjshhh}r(h]h]h]h]r(j&jeh]r(hheuhM)hhh}rjjsh]r(h)r}r(hj+hjhhhhh}r(h]h]h]h]h]hj%uhM)hhh]rhX Error E-Mailsrr}r(hj+hjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairX'CELERYD_SEND_TASK_ERROR_EMAILS; settingX*std:setting-CELERYD_SEND_TASK_ERROR_EMAILSrUtrauhM,hhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhM,hhh]ubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Ucelery-send-task-error-emailsrjeh]rh7auhM.hhh}rjjsh]r(h)r}r(hXCELERY_SEND_TASK_ERROR_EMAILSrhjhhhhh}r(h]h]h]h]h]uhM.hhh]rhXCELERY_SEND_TASK_ERROR_EMAILSrr}r(hjhjubaubh)r}r(hXThe default value for the `Task.send_error_emails` attribute, which if set to :const:`True` means errors occurring during task execution will be sent to :setting:`ADMINS` by e-mail.hjhhhhh}r(h]h]h]h]h]uhM0hhh]r(hXThe default value for the rr}r(hXThe default value for the hjubj)r}r(hX`Task.send_error_emails`h}r(h]h]h]h]h]uhjh]rhXTask.send_error_emailsrr}r(hUhjubahjubhX attribute, which if set to rr}r(hX attribute, which if set to hjubj)r}r(hX :const:`True`rhjhhhjh}r(UreftypeXconstjjXTrueU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhM0h]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXTruerr}r(hUhjubahhubaubhX> means errors occurring during task execution will be sent to rr}r(hX> means errors occurring during task execution will be sent to hjubj)r}r(hX:setting:`ADMINS`rhjhhhjh}r(UreftypeXsettingjjXADMINSU refdomainXstdrh]h]U refexplicith]h]h]jjuhM0h]rh)r}r(hjh}r(h]h]r(jjX std-settingreh]h]h]uhjh]rhXADMINSrr}r(hUhjubahhubaubhX by e-mail.rr}r(hX by e-mail.hjubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairX$CELERY_TASK_ERROR_WHITELIST; settingX'std:setting-CELERY_TASK_ERROR_WHITELISTrUtrauhM5hhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhM5hhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Ucelery-task-error-whitelistrjeh]rhQauhM7hhh}rjjsh]r(h)r}r(hXCELERY_TASK_ERROR_WHITELISTrhjhhhhh}r(h]h]h]h]h]uhM7hhh]rhXCELERY_TASK_ERROR_WHITELISTrr}r(hjhjubaubh)r}r(hX5A white list of exceptions to send error e-mails for.rhjhhhhh}r(h]h]h]h]h]uhM9hhh]rhX5A white list of exceptions to send error e-mails for.rr}r(hjhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXADMINS; settingXstd:setting-ADMINSr Utr auhM<hhh]ubh)r }r (hUhjhhhhh}r (h]h]h]h]h]hj uhM<hhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Uadminsrj eh]rh!auhM>hhh}rj j sh]r(h)r}r(hXADMINSrhjhhhhh}r(h]h]h]h]h]uhM>hhh]rhXADMINSrr}r(hjhjubaubh)r}r(hX`List of `(name, email_address)` tuples for the administrators that should receive error e-mails.hjhhhhh}r (h]h]h]h]h]uhM@hhh]r!(hXList of r"r#}r$(hXList of hjubj)r%}r&(hX`(name, email_address)`h}r'(h]h]h]h]h]uhjh]r(hX(name, email_address)r)r*}r+(hUhj%ubahjubhXA tuples for the administrators that should receive error e-mails.r,r-}r.(hXA tuples for the administrators that should receive error e-mails.hjubeubj)r/}r0(hUhjhhhjh}r1(h]h]h]h]h]Uentries]r2(XpairXSERVER_EMAIL; settingXstd:setting-SERVER_EMAILr3Utr4auhMDhhh]ubh)r5}r6(hUhjhhhhh}r7(h]h]h]h]h]hj3uhMDhhh]ubeubh)r8}r9(hUhjhhh}hhh}r:(h]h]h]h]r;(U server-emailr<j3eh]r=hauhMFhhh}r>j3j5sh]r?(h)r@}rA(hX SERVER_EMAILrBhj8hhhhh}rC(h]h]h]h]h]uhMFhhh]rDhX SERVER_EMAILrErF}rG(hjBhj@ubaubh)rH}rI(hXOThe e-mail address this worker sends e-mails from. Default is celery@localhost.hj8hhhhh}rJ(h]h]h]h]h]uhMHhhh]rK(hX>The e-mail address this worker sends e-mails from. Default is rLrM}rN(hX>The e-mail address this worker sends e-mails from. Default is hjHubj)rO}rP(hXcelery@localhosth}rQ(UrefuriXmailto:celery@localhosth]h]h]h]h]uhjHh]rRhXcelery@localhostrSrT}rU(hUhjOubahjubhX.rV}rW(hX.hjHubeubj)rX}rY(hUhj8hhhjh}rZ(h]h]h]h]h]Uentries]r[(XpairXMAIL_HOST; settingXstd:setting-MAIL_HOSTr\Utr]auhMLhhh]ubh)r^}r_(hUhj8hhhhh}r`(h]h]h]h]h]hj\uhMLhhh]ubeubh)ra}rb(hUhjhhh}hhh}rc(h]h]h]h]rd(U mail-hostrej\eh]rfhsauhMNhhh}rgj\j^sh]rh(h)ri}rj(hX MAIL_HOSTrkhjahhhhh}rl(h]h]h]h]h]uhMNhhh]rmhX MAIL_HOSTrnro}rp(hjkhjiubaubh)rq}rr(hX4The mail server to use. Default is ``"localhost"``.rshjahhhhh}rt(h]h]h]h]h]uhMPhhh]ru(hX$The mail server to use. Default is rvrw}rx(hX$The mail server to use. Default is hjqubh)ry}rz(hX``"localhost"``h}r{(h]h]h]h]h]uhjqh]r|hX "localhost"r}r~}r(hUhjyubahhubhX.r}r(hX.hjqubeubj)r}r(hUhjahhhjh}r(h]h]h]h]h]Uentries]r(XpairXMAIL_HOST_USER; settingXstd:setting-MAIL_HOST_USERrUtrauhMShhh]ubh)r}r(hUhjahhhhh}r(h]h]h]h]h]hjuhMShhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Umail-host-userrjeh]rhauhMUhhh}rjjsh]r(h)r}r(hXMAIL_HOST_USERrhjhhhhh}r(h]h]h]h]h]uhMUhhh]rhXMAIL_HOST_USERrr}r(hjhjubaubh)r}r(hX:User name (if required) to log on to the mail server with.rhjhhhhh}r(h]h]h]h]h]uhMWhhh]rhX:User name (if required) to log on to the mail server with.rr}r(hjhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXMAIL_HOST_PASSWORD; settingXstd:setting-MAIL_HOST_PASSWORDrUtrauhMZhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMZhhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Umail-host-passwordrjeh]rhNauhM\hhh}rjjsh]r(h)r}r(hXMAIL_HOST_PASSWORDrhjhhhhh}r(h]h]h]h]h]uhM\hhh]rhXMAIL_HOST_PASSWORDrr}r(hjhjubaubh)r}r(hX9Password (if required) to log on to the mail server with.rhjhhhhh}r(h]h]h]h]h]uhM^hhh]rhX9Password (if required) to log on to the mail server with.rr}r(hjhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXMAIL_PORT; settingXstd:setting-MAIL_PORTrUtrauhMahhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMahhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(U mail-portrjeh]rhdauhMchhh}rjjsh]r(h)r}r(hX MAIL_PORTrhjhhhhh}r(h]h]h]h]h]uhMchhh]rhX MAIL_PORTrr}r(hjhjubaubh)r}r(hX=The port the mail server is listening on. Default is ``25``.rhjhhhhh}r(h]h]h]h]h]uhMehhh]r(hX6The port the mail server is listening on. Default is rr}r(hX6The port the mail server is listening on. Default is hjubh)r}r(hX``25``h}r(h]h]h]h]h]uhjh]rhX25rr}r(hUhjubahhubhX.r}r(hX.hjubeubh)r}r(hX#.. _conf-example-error-mail-config:hjhhhhh}r(h]h]h]h]h]hUconf-example-error-mail-configruhMghhh]ubeubh)r}r(hUhjhhh}rh#jshhh}r(h]h]h]h]r(Uexample-e-mail-configurationrjeh]r(hSh#euhMjhhh}rjjsh]r(h)r}r(hXExample E-Mail configurationrhjhhhhh}r(h]h]h]h]h]uhMjhhh]rhXExample E-Mail configurationrr}r(hjhjubaubh)r}r(hXgThis configuration enables the sending of error e-mails to george@vandelay.com and kramer@vandelay.com:hjhhhhh}r(h]h]h]h]h]uhMlhhh]r(hX;This configuration enables the sending of error e-mails to rr}r (hX;This configuration enables the sending of error e-mails to hjubj)r }r (hXgeorge@vandelay.comh}r (UrefuriXmailto:george@vandelay.comh]h]h]h]h]uhjh]r hXgeorge@vandelay.comrr}r(hUhj ubahjubhX and rr}r(hX and hjubj)r}r(hXkramer@vandelay.comh}r(UrefuriXmailto:kramer@vandelay.comh]h]h]h]h]uhjh]rhXkramer@vandelay.comrr}r(hUhjubahjubhX:r}r(hX:hjubeubj)r}r(hX# Enables error e-mails. CELERY_SEND_TASK_ERROR_EMAILS = True # Name and e-mail addresses of recipients ADMINS = ( ("George Costanza", "george@vandelay.com"), ("Cosmo Kramer", "kosmo@vandelay.com"), ) # E-mail address used as sender (From field). SERVER_EMAIL = "no-reply@vandelay.com" # Mailserver configuration EMAIL_HOST = "mail.vandelay.com" EMAIL_PORT = 25 # EMAIL_HOST_USER = "servers" # EMAIL_HOST_PASSWORD = "s3cr3t" EMAIL_TIMEOUT = 2 # two seconds is the defaulthjhhhjh}r(jjXpythonjjh]h]h]h]h]uhMohhh]r hX# Enables error e-mails. CELERY_SEND_TASK_ERROR_EMAILS = True # Name and e-mail addresses of recipients ADMINS = ( ("George Costanza", "george@vandelay.com"), ("Cosmo Kramer", "kosmo@vandelay.com"), ) # E-mail address used as sender (From field). SERVER_EMAIL = "no-reply@vandelay.com" # Mailserver configuration EMAIL_HOST = "mail.vandelay.com" EMAIL_PORT = 25 # EMAIL_HOST_USER = "servers" # EMAIL_HOST_PASSWORD = "s3cr3t" EMAIL_TIMEOUT = 2 # two seconds is the defaultr!r"}r#(hUhjubaubh)r$}r%(hX.. _conf-events:hjhhhhh}r&(h]h]h]h]h]hU conf-eventsr'uhMhhh]ubeubeubh)r(}r)(hUhhhhh}r*hDj$shhh}r+(h]h]h]h]r,(j9j'eh]r-(hhDeuhMhhh}r.j'j$sh]r/(h)r0}r1(hj>hj(hhhhh}r2(h]h]h]h]h]hj8uhMhhh]r3hXEventsr4r5}r6(hj>hj0ubaubj)r7}r8(hUhj(hhhjh}r9(h]h]h]h]h]Uentries]r:(XpairXCELERY_SEND_EVENTS; settingXstd:setting-CELERY_SEND_EVENTSr;Utr<auhMhhh]ubh)r=}r>(hUhj(hhhhh}r?(h]h]h]h]h]hj;uhMhhh]ubh)r@}rA(hUhj(hhh}hhh}rB(h]h]h]h]rC(Ucelery-send-eventsrDj;eh]rEhOauhMhhh}rFj;j=sh]rG(h)rH}rI(hXCELERY_SEND_EVENTSrJhj@hhhhh}rK(h]h]h]h]h]uhMhhh]rLhXCELERY_SEND_EVENTSrMrN}rO(hjJhjHubaubh)rP}rQ(hXGSend events so the worker can be monitored by tools like ``celerymon``.rRhj@hhhhh}rS(h]h]h]h]h]uhMhhh]rT(hX9Send events so the worker can be monitored by tools like rUrV}rW(hX9Send events so the worker can be monitored by tools like hjPubh)rX}rY(hX ``celerymon``h}rZ(h]h]h]h]h]uhjPh]r[hX celerymonr\r]}r^(hUhjXubahhubhX.r_}r`(hX.hjPubeubj)ra}rb(hUhj@hhhjh}rc(h]h]h]h]h]Uentries]rd(XpairXCELERY_EVENT_QUEUE; settingXstd:setting-CELERY_EVENT_QUEUEreUtrfauhMhhh]ubh)rg}rh(hUhj@hhhhh}ri(h]h]h]h]h]hjeuhMhhh]ubeubh)rj}rk(hUhj(hhh}hhh}rl(h]h]h]h]rm(Ucelery-event-queuernjeeh]rohqauhMhhh}rpjejgsh]rq(h)rr}rs(hXCELERY_EVENT_QUEUErthjjhhhhh}ru(h]h]h]h]h]uhMhhh]rvhXCELERY_EVENT_QUEUErwrx}ry(hjthjrubaubh)rz}r{(hXOName of the queue to consume event messages from. Default is ``"celeryevent"``.hjjhhhhh}r|(h]h]h]h]h]uhMhhh]r}(hX=Name of the queue to consume event messages from. Default is r~r}r(hX=Name of the queue to consume event messages from. Default is hjzubh)r}r(hX``"celeryevent"``h}r(h]h]h]h]h]uhjzh]rhX "celeryevent"rr}r(hUhjubahhubhX.r}r(hX.hjzubeubj)r}r(hUhjjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERY_EVENT_EXCHANGE; settingX!std:setting-CELERY_EVENT_EXCHANGErUtrauhMhhh]ubh)r}r(hUhjjhhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhj(hhh}hhh}r(h]h]h]h]r(Ucelery-event-exchangerjeh]rhauhMhhh}rjjsh]r(h)r}r(hXCELERY_EVENT_EXCHANGErhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERY_EVENT_EXCHANGErr}r(hjhjubaubh)r}r(hXNName of the exchange to send event messages to. Default is ``"celeryevent"``.rhjhhhhh}r(h]h]h]h]h]uhMhhh]r(hX<Name of the exchange to send event messages to. Default is rr}r(hX<Name of the exchange to send event messages to. Default is hjubh)r}r(hX``"celeryevent"``h}r(h]h]h]h]h]uhjh]rhX "celeryevent"rr}r(hUhjubahhubhX.r}r(hX.hjubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairX#CELERY_EVENT_EXCHANGE_TYPE; settingX&std:setting-CELERY_EVENT_EXCHANGE_TYPErUtrauhMhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhj(hhh}hhh}r(h]h]h]h]r(Ucelery-event-exchange-typerjeh]rhauhMhhh}rjjsh]r(h)r}r(hXCELERY_EVENT_EXCHANGE_TYPErhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERY_EVENT_EXCHANGE_TYPErr}r(hjhjubaubh)r}r(hXTThe exchange type of the event exchange. Default is to use a ``"direct"`` exchange.hjhhhhh}r(h]h]h]h]h]uhMhhh]r(hX>The exchange type of the event exchange. Default is to use a rr}r(hX>The exchange type of the event exchange. Default is to use a hjubh)r}r(hX ``"direct"``h}r(h]h]h]h]h]uhjh]rhX"direct"rr}r(hUhjubahhubhX exchange.rr}r(hX exchange.hjubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairX!CELERY_EVENT_ROUTING_KEY; settingX$std:setting-CELERY_EVENT_ROUTING_KEYrUtrauhMhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhj(hhh}hhh}r(h]h]h]h]r(Ucelery-event-routing-keyrjeh]rhVauhMhhh}rjjsh]r(h)r}r(hXCELERY_EVENT_ROUTING_KEYrhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERY_EVENT_ROUTING_KEYrr}r(hjhjubaubh)r}r(hXLRouting key used when sending event messages. Default is ``"celeryevent"``.rhjhhhhh}r(h]h]h]h]h]uhMhhh]r(hX:Routing key used when sending event messages. Default is rr}r(hX:Routing key used when sending event messages. Default is hjubh)r}r(hX``"celeryevent"``h}r(h]h]h]h]h]uhjh]rhX "celeryevent"rr}r(hUhjubahhubhX.r}r(hX.hjubeubj)r}r (hUhjhhhjh}r (h]h]h]h]h]Uentries]r (XpairX CELERY_EVENT_SERIALIZER; settingX#std:setting-CELERY_EVENT_SERIALIZERr Utr auhMhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hj uhMhhh]ubeubh)r}r(hUhj(hhh}hhh}r(h]h]h]h]r(Ucelery-event-serializerrj eh]rh=auhMhhh}rj jsh]r(h)r}r(hXCELERY_EVENT_SERIALIZERrhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERY_EVENT_SERIALIZERrr}r (hjhjubaubh)r!}r"(hXwMessage serialization format used when sending event messages. Default is ``"json"``. See :ref:`executing-serializers`.hjhhhhh}r#(h]h]h]h]h]uhMhhh]r$(hXJMessage serialization format used when sending event messages. Default is r%r&}r'(hXJMessage serialization format used when sending event messages. Default is hj!ubh)r(}r)(hX ``"json"``h}r*(h]h]h]h]h]uhj!h]r+hX"json"r,r-}r.(hUhj(ubahhubhX. See r/r0}r1(hX. See hj!ubj)r2}r3(hX:ref:`executing-serializers`r4hj!hhhjh}r5(UreftypeXrefjjXexecuting-serializersU refdomainXstdr6h]h]U refexplicith]h]h]jjuhMh]r7j)r8}r9(hj4h}r:(h]h]r;(jj6Xstd-refr<eh]h]h]uhj2h]r=hXexecuting-serializersr>r?}r@(hUhj8ubahjubaubhX.rA}rB(hX.hj!ubeubh)rC}rD(hX.. _conf-broadcast:hjhhhhh}rE(h]h]h]h]h]hUconf-broadcastrFuhMhhh]ubeubeubh)rG}rH(hUhhhhh}rIhjjCshhh}rJ(h]h]h]h]rK(jLjFeh]rL(h?hjeuhMhhh}rMjFjCsh]rN(h)rO}rP(hjQhjGhhhhh}rQ(h]h]h]h]h]hjKuhMhhh]rRhXBroadcast CommandsrSrT}rU(hjQhjOubaubj)rV}rW(hUhjGhhhjh}rX(h]h]h]h]h]Uentries]rY(XpairXCELERY_BROADCAST_QUEUE; settingX"std:setting-CELERY_BROADCAST_QUEUErZUtr[auhMhhh]ubh)r\}r](hUhjGhhhhh}r^(h]h]h]h]h]hjZuhMhhh]ubh)r_}r`(hUhjGhhh}hhh}ra(h]h]h]h]rb(Ucelery-broadcast-queuercjZeh]rdh'auhMhhh}rejZj\sh]rf(h)rg}rh(hXCELERY_BROADCAST_QUEUErihj_hhhhh}rj(h]h]h]h]h]uhMhhh]rkhXCELERY_BROADCAST_QUEUErlrm}rn(hjihjgubaubh)ro}rp(hXName prefix for the queue used when listening for broadcast messages. The workers host name will be appended to the prefix to create the final queue name.rqhj_hhhhh}rr(h]h]h]h]h]uhMhhh]rshXName prefix for the queue used when listening for broadcast messages. The workers host name will be appended to the prefix to create the final queue name.rtru}rv(hjqhjoubaubh)rw}rx(hXDefault is ``"celeryctl"``.ryhj_hhhhh}rz(h]h]h]h]h]uhMhhh]r{(hX Default is r|r}}r~(hX Default is hjwubh)r}r(hX``"celeryctl"``h}r(h]h]h]h]h]uhjwh]rhX "celeryctl"rr}r(hUhjubahhubhX.r}r(hX.hjwubeubj)r}r(hUhj_hhhjh}r(h]h]h]h]h]Uentries]r(XpairX#CELERY_BROADCASTS_EXCHANGE; settingX&std:setting-CELERY_BROADCASTS_EXCHANGErUtrauhMhhh]ubh)r}r(hUhj_hhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhjGhhh}hhh}r(h]h]h]h]r(Ucelery-broadcast-exchangerjeh]rh$auhMhhh}rjjsh]r(h)r}r(hXCELERY_BROADCAST_EXCHANGErhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERY_BROADCAST_EXCHANGErr}r(hjhjubaubh)r}r(hX1Name of the exchange used for broadcast messages.rhjhhhhh}r(h]h]h]h]h]uhMhhh]rhX1Name of the exchange used for broadcast messages.rr}r(hjhjubaubh)r}r(hXDefault is ``"celeryctl"``.rhjhhhhh}r(h]h]h]h]h]uhMhhh]r(hX Default is rr}r(hX Default is hjubh)r}r(hX``"celeryctl"``h}r(h]h]h]h]h]uhjh]rhX "celeryctl"rr}r(hUhjubahhubhX.r}r(hX.hjubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairX'CELERY_BROADCAST_EXCHANGE_TYPE; settingX*std:setting-CELERY_BROADCAST_EXCHANGE_TYPErUtrauhMhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhjGhhh}hhh}r(h]h]h]h]r(Ucelery-broadcast-exchange-typerjeh]rhzauhMhhh}rjjsh]r(h)r}r(hXCELERY_BROADCAST_EXCHANGE_TYPErhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERY_BROADCAST_EXCHANGE_TYPErr}r(hjhjubaubh)r}r(hXDExchange type used for broadcast messages. Default is ``"fanout"``.rhjhhhhh}r(h]h]h]h]h]uhMhhh]r(hX7Exchange type used for broadcast messages. Default is rr}r(hX7Exchange type used for broadcast messages. Default is hjubh)r}r(hX ``"fanout"``h}r(h]h]h]h]h]uhjh]rhX"fanout"rr}r(hUhjubahhubhX.r}r(hX.hjubeubh)r}r(hX.. _conf-logging:hjhhhhh}r(h]h]h]h]h]hU conf-loggingruhMhhh]ubeubeubh)r}r(hUhhhhh}rhjshhh}r(h]h]h]h]r(j_jeh]r(hEheuhMhhh}rjjsh]r(h)r}r(hjdhjhhhhh}r(h]h]h]h]h]hj^uhMhhh]rhXLoggingrr}r(hjdhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERYD_LOG_FILE; settingXstd:setting-CELERYD_LOG_FILErUtrauhMhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMhhh]ubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Uceleryd-log-filerjeh]rhYauhMhhh}rjjsh]r(h)r}r (hXCELERYD_LOG_FILEr hjhhhhh}r (h]h]h]h]h]uhMhhh]r hXCELERYD_LOG_FILEr r}r(hj hjubaubh)r}r(hXThe default file name the worker daemon logs messages to. Can be overridden using the :option:`--logfile` option to :mod:`~celery.bin.celeryd`.hjhhhhh}r(h]h]h]h]h]uhMhhh]r(hXWThe default file name the worker daemon logs messages to. Can be overridden using the rr}r(hXWThe default file name the worker daemon logs messages to. Can be overridden using the hjubj)r}r(hX:option:`--logfile`rhjhhhjh}r(UreftypeXoptionjjX --logfileU refdomainXstdrj1Nh]h]U refexplicith]h]h]jjuhMh]rj3)r}r(hjh}r(h]h]r (jjX std-optionr!eh]h]h]uhjh]r"hX --logfiler#r$}r%(hUhjubahj=ubaubhX option to r&r'}r((hX option to hjubj)r)}r*(hX:mod:`~celery.bin.celeryd`r+hjhhhjh}r,(UreftypeXmodjjXcelery.bin.celerydU refdomainXpyr-h]h]U refexplicith]h]h]jjjNjNuhMh]r.h)r/}r0(hj+h}r1(h]h]r2(jj-Xpy-modr3eh]h]h]uhj)h]r4hXcelerydr5r6}r7(hUhj/ubahhubaubhX.r8}r9(hX.hjubeubh)r:}r;(hX)The default is :const:`None` (``stderr``)r<hjhhhhh}r=(h]h]h]h]h]uhMhhh]r>(hXThe default is r?r@}rA(hXThe default is hj:ubj)rB}rC(hX :const:`None`rDhj:hhhjh}rE(UreftypeXconstjjXNoneU refdomainXpyrFh]h]U refexplicith]h]h]jjjNjNuhMh]rGh)rH}rI(hjDh}rJ(h]h]rK(jjFXpy-constrLeh]h]h]uhjBh]rMhXNonerNrO}rP(hUhjHubahhubaubhX (rQrR}rS(hX (hj:ubh)rT}rU(hX ``stderr``h}rV(h]h]h]h]h]uhj:h]rWhXstderrrXrY}rZ(hUhjTubahhubhX)r[}r\(hX)hj:ubeubj)r]}r^(hUhjhhhjh}r_(h]h]h]h]h]Uentries]r`(XpairXCELERYD_LOG_LEVEL; settingXstd:setting-CELERYD_LOG_LEVELraUtrbauhMhhh]ubh)rc}rd(hUhjhhhhh}re(h]h]h]h]h]hjauhMhhh]ubeubh)rf}rg(hUhjhhh}hhh}rh(h]h]h]h]ri(Uceleryd-log-levelrjjaeh]rkhauhMhhh}rljajcsh]rm(h)rn}ro(hXCELERYD_LOG_LEVELrphjfhhhhh}rq(h]h]h]h]h]uhMhhh]rrhXCELERYD_LOG_LEVELrsrt}ru(hjphjnubaubh)rv}rw(hXuWorker log level, can be one of :const:`DEBUG`, :const:`INFO`, :const:`WARNING`, :const:`ERROR` or :const:`CRITICAL`.hjfhhhhh}rx(h]h]h]h]h]uhMhhh]ry(hX Worker log level, can be one of rzr{}r|(hX Worker log level, can be one of hjvubj)r}}r~(hX:const:`DEBUG`rhjvhhhjh}r(UreftypeXconstjjXDEBUGU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhj}h]rhXDEBUGrr}r(hUhjubahhubaubhX, rr}r(hX, hjvubj)r}r(hX :const:`INFO`rhjvhhhjh}r(UreftypeXconstjjXINFOU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXINFOrr}r(hUhjubahhubaubhX, rr}r(hX, hjvubj)r}r(hX:const:`WARNING`rhjvhhhjh}r(UreftypeXconstjjXWARNINGU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXWARNINGrr}r(hUhjubahhubaubhX, rr}r(hX, hjvubj)r}r(hX:const:`ERROR`rhjvhhhjh}r(UreftypeXconstjjXERRORU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXERRORrr}r(hUhjubahhubaubhX or rr}r(hX or hjvubj)r}r(hX:const:`CRITICAL`rhjvhhhjh}r(UreftypeXconstjjXCRITICALU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXCRITICALrr}r(hUhjubahhubaubhX.r}r(hX.hjvubeubh)r}r(hXTCan also be set via the :option:`--loglevel` argument to :mod:`~celery.bin.celeryd`.hjfhhhhh}r(h]h]h]h]h]uhMhhh]r(hXCan also be set via the rr}r(hXCan also be set via the hjubj)r}r(hX:option:`--loglevel`rhjhhhjh}r(UreftypeXoptionjjX --loglevelU refdomainXstdrj1Nh]h]U refexplicith]h]h]jjuhMh]rj3)r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhjh]rhX --loglevelrr}r(hUhjubahj=ubaubhX argument to rr}r(hX argument to hjubj)r}r(hX:mod:`~celery.bin.celeryd`rhjhhhjh}r(UreftypeXmodjjXcelery.bin.celerydU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhjh]rhXcelerydrr}r(hUhjubahhubaubhX.r}r(hX.hjubeubh)r}r(hX3See the :mod:`logging` module for more information.rhjfhhhhh}r(h]h]h]h]h]uhMhhh]r(hXSee the rr}r(hXSee the hjubj)r}r (hX:mod:`logging`r hjhhhjh}r (UreftypeXmodjjXloggingU refdomainXpyr h]h]U refexplicith]h]h]jjjNjNuhMh]r h)r}r(hj h}r(h]h]r(jj Xpy-modreh]h]h]uhjh]rhXloggingrr}r(hUhjubahhubaubhX module for more information.rr}r(hX module for more information.hjubeubj)r}r(hUhjfhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERYD_LOG_FORMAT; settingXstd:setting-CELERYD_LOG_FORMATrUtrauhMhhh]ubh)r }r!(hUhjfhhhhh}r"(h]h]h]h]h]hjuhMhhh]ubeubh)r#}r$(hUhjhhh}hhh}r%(h]h]h]h]r&(Uceleryd-log-formatr'jeh]r(hGauhMhhh}r)jj sh]r*(h)r+}r,(hXCELERYD_LOG_FORMATr-hj#hhhhh}r.(h]h]h]h]h]uhMhhh]r/hXCELERYD_LOG_FORMATr0r1}r2(hj-hj+ubaubh)r3}r4(hX#The format to use for log messages.r5hj#hhhhh}r6(h]h]h]h]h]uhMhhh]r7hX#The format to use for log messages.r8r9}r:(hj5hj3ubaubh)r;}r<(hXGDefault is ``[%(asctime)s: %(levelname)s/%(processName)s] %(message)s``r=hj#hhhhh}r>(h]h]h]h]h]uhMhhh]r?(hX Default is r@rA}rB(hX Default is hj;ubh)rC}rD(hX<``[%(asctime)s: %(levelname)s/%(processName)s] %(message)s``h}rE(h]h]h]h]h]uhj;h]rFhX8[%(asctime)s: %(levelname)s/%(processName)s] %(message)srGrH}rI(hUhjCubahhubeubh)rJ}rK(hXLSee the Python :mod:`logging` module for more information about log formats.hj#hhhhh}rL(h]h]h]h]h]uhMhhh]rM(hXSee the Python rNrO}rP(hXSee the Python hjJubj)rQ}rR(hX:mod:`logging`rShjJhhhjh}rT(UreftypeXmodjjXloggingU refdomainXpyrUh]h]U refexplicith]h]h]jjjNjNuhMh]rVh)rW}rX(hjSh}rY(h]h]rZ(jjUXpy-modr[eh]h]h]uhjQh]r\hXloggingr]r^}r_(hUhjWubahhubaubhX/ module for more information about log formats.r`ra}rb(hX/ module for more information about log formats.hjJubeubj)rc}rd(hUhj#hhhjh}re(h]h]h]h]h]Uentries]rf(XpairX CELERYD_TASK_LOG_FORMAT; settingX#std:setting-CELERYD_TASK_LOG_FORMATrgUtrhauhMhhh]ubh)ri}rj(hUhj#hhhhh}rk(h]h]h]h]h]hjguhMhhh]ubeubh)rl}rm(hUhjhhh}hhh}rn(h]h]h]h]ro(Uceleryd-task-log-formatrpjgeh]rqhauhMhhh}rrjgjish]rs(h)rt}ru(hXCELERYD_TASK_LOG_FORMATrvhjlhhhhh}rw(h]h]h]h]h]uhMhhh]rxhXCELERYD_TASK_LOG_FORMATryrz}r{(hjvhjtubaubh)r|}r}(hXThe format to use for log messages logged in tasks. Can be overridden using the :option:`--loglevel` option to :mod:`~celery.bin.celeryd`.hjlhhhhh}r~(h]h]h]h]h]uhMhhh]r(hXQThe format to use for log messages logged in tasks. Can be overridden using the rr}r(hXQThe format to use for log messages logged in tasks. Can be overridden using the hj|ubj)r}r(hX:option:`--loglevel`rhj|hhhjh}r(UreftypeXoptionjjX --loglevelU refdomainXstdrj1Nh]h]U refexplicith]h]h]jjuhMh]rj3)r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhjh]rhX --loglevelrr}r(hUhjubahj=ubaubhX option to rr}r(hX option to hj|ubj)r}r(hX:mod:`~celery.bin.celeryd`rhj|hhhjh}r(UreftypeXmodjjXcelery.bin.celerydU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhjh]rhXcelerydrr}r(hUhjubahhubaubhX.r}r(hX.hj|ubeubh)r}r(hX Default is::rhjlhhhhh}r(h]h]h]h]h]uhMhhh]rhX Default is:rr}r(hX Default is:hjubaubj)r}r(hXY[%(asctime)s: %(levelname)s/%(processName)s] [%(task_name)s(%(task_id)s)] %(message)shjlhhhjh}r(jjh]h]h]h]h]uhM hhh]rhXY[%(asctime)s: %(levelname)s/%(processName)s] [%(task_name)s(%(task_id)s)] %(message)srr}r(hUhjubaubh)r}r(hXLSee the Python :mod:`logging` module for more information about log formats.hjlhhhhh}r(h]h]h]h]h]uhM hhh]r(hXSee the Python rr}r(hXSee the Python hjubj)r}r(hX:mod:`logging`rhjhhhjh}r(UreftypeXmodjjXloggingU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhM h]rh)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhjh]rhXloggingrr}r(hUhjubahhubaubhX/ module for more information about log formats.rr}r(hX/ module for more information about log formats.hjubeubj)r}r(hUhjlhhhjh}r(h]h]h]h]h]Uentries]r(XpairX CELERY_REDIRECT_STDOUTS; settingX#std:setting-CELERY_REDIRECT_STDOUTSrUtrauhMhhh]ubh)r}r(hUhjlhhhhh}r(h]h]h]h]h]hjuhMhhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Ucelery-redirect-stdoutsrjeh]rhfauhMhhh}rjjsh]r(h)r}r(hXCELERY_REDIRECT_STDOUTSrhjhhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERY_REDIRECT_STDOUTSrr}r(hjhjubaubh)r}r(hXNIf enabled ``stdout`` and ``stderr`` will be redirected to the current logger.hjhhhhh}r(h]h]h]h]h]uhMhhh]r(hX If enabled rr}r(hX If enabled hjubh)r}r(hX ``stdout``h}r(h]h]h]h]h]uhjh]rhXstdoutrr}r(hUhjubahhubhX and rr}r(hX and hjubh)r}r(hX ``stderr``h}r(h]h]h]h]h]uhjh]rhXstderrrr}r(hUhjubahhubhX* will be redirected to the current logger.rr}r(hX* will be redirected to the current logger.hjubeubh)r}r(hXIEnabled by default. Used by :program:`celeryd` and :program:`celerybeat`.hjhhhhh}r(h]h]h]h]h]uhMhhh]r(hXEnabled by default. Used by rr}r(hXEnabled by default. Used by hjubj)r }r (hX:program:`celeryd`h}r (h]h]r Uprogramr ah]h]h]uhjh]rhXcelerydrr}r(hUhj ubahjubhX and rr}r(hX and hjubj)r}r(hX:program:`celerybeat`h}r(h]h]rj ah]h]h]uhjh]rhX celerybeatrr}r(hUhjubahjubhX.r}r(hX.hjubeubj)r}r (hUhjhhhjh}r!(h]h]h]h]h]Uentries]r"(XpairX&CELERY_REDIRECT_STDOUTS_LEVEL; settingX)std:setting-CELERY_REDIRECT_STDOUTS_LEVELr#Utr$auhMhhh]ubh)r%}r&(hUhjhhhhh}r'(h]h]h]h]h]hj#uhMhhh]ubeubh)r(}r)(hUhjhhh}hhh}r*(h]h]h]h]r+(Ucelery-redirect-stdouts-levelr,j#eh]r-hIauhMhhh}r.j#j%sh]r/(h)r0}r1(hXCELERY_REDIRECT_STDOUTS_LEVELr2hj(hhhhh}r3(h]h]h]h]h]uhMhhh]r4hXCELERY_REDIRECT_STDOUTS_LEVELr5r6}r7(hj2hj0ubaubh)r8}r9(hXThe log level output to `stdout` and `stderr` is logged as. Can be one of :const:`DEBUG`, :const:`INFO`, :const:`WARNING`, :const:`ERROR` or :const:`CRITICAL`.hj(hhhhh}r:(h]h]h]h]h]uhMhhh]r;(hXThe log level output to r<r=}r>(hXThe log level output to hj8ubj)r?}r@(hX`stdout`h}rA(h]h]h]h]h]uhj8h]rBhXstdoutrCrD}rE(hUhj?ubahjubhX and rFrG}rH(hX and hj8ubj)rI}rJ(hX`stderr`h}rK(h]h]h]h]h]uhj8h]rLhXstderrrMrN}rO(hUhjIubahjubhX is logged as. Can be one of rPrQ}rR(hX is logged as. Can be one of hj8ubj)rS}rT(hX:const:`DEBUG`rUhj8hhhjh}rV(UreftypeXconstjjXDEBUGU refdomainXpyrWh]h]U refexplicith]h]h]jjjNjNuhMh]rXh)rY}rZ(hjUh}r[(h]h]r\(jjWXpy-constr]eh]h]h]uhjSh]r^hXDEBUGr_r`}ra(hUhjYubahhubaubhX, rbrc}rd(hX, hj8ubj)re}rf(hX :const:`INFO`rghj8hhhjh}rh(UreftypeXconstjjXINFOU refdomainXpyrih]h]U refexplicith]h]h]jjjNjNuhMh]rjh)rk}rl(hjgh}rm(h]h]rn(jjiXpy-constroeh]h]h]uhjeh]rphXINFOrqrr}rs(hUhjkubahhubaubhX, rtru}rv(hX, hj8ubj)rw}rx(hX:const:`WARNING`ryhj8hhhjh}rz(UreftypeXconstjjXWARNINGU refdomainXpyr{h]h]U refexplicith]h]h]jjjNjNuhMh]r|h)r}}r~(hjyh}r(h]h]r(jj{Xpy-constreh]h]h]uhjwh]rhXWARNINGrr}r(hUhj}ubahhubaubhX, rr}r(hX, hj8ubj)r}r(hX:const:`ERROR`rhj8hhhjh}r(UreftypeXconstjjXERRORU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXERRORrr}r(hUhjubahhubaubhX or rr}r(hX or hj8ubj)r}r(hX:const:`CRITICAL`rhj8hhhjh}r(UreftypeXconstjjXCRITICALU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXCRITICALrr}r(hUhjubahhubaubhX.r}r(hX.hj8ubeubh)r}r(hXDefault is :const:`WARNING`.rhj(hhhhh}r(h]h]h]h]h]uhM#hhh]r(hX Default is rr}r(hX Default is hjubj)r}r(hX:const:`WARNING`rhjhhhjh}r(UreftypeXconstjjXWARNINGU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhM#h]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXWARNINGrr}r(hUhjubahhubaubhX.r}r(hX.hjubeubh)r}r(hX.. _conf-custom-components:hj(hhhhh}r(h]h]h]h]h]hUconf-custom-componentsruhM%hhh]ubeubeubh)r}r(hUhhhhh}rh-jshhh}r(h]h]h]h]r(jrjeh]r(h h-euhM(hhh}rjjsh]r(h)r}r(hjwhjhhhhh}r(h]h]h]h]h]hjquhM(hhh]rhX#Custom Component Classes (advanced)rr}r(hjwhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERYD_POOL; settingXstd:setting-CELERYD_POOLrUtrauhM+hhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhM+hhh]ubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(U celeryd-poolrjeh]rhJauhM-hhh}rjjsh]r(h)r}r(hX CELERYD_POOLrhjhhhhh}r(h]h]h]h]h]uhM-hhh]rhX CELERYD_POOLrr}r(hjhjubaubh)r}r(hXjName of the task pool class used by the worker. Default is :class:`celery.concurrency.processes.TaskPool`.hjhhhhh}r(h]h]h]h]h]uhM/hhh]r(hX;Name of the task pool class used by the worker. Default is rr}r(hX;Name of the task pool class used by the worker. Default is hjubj)r}r(hX.:class:`celery.concurrency.processes.TaskPool`rhjhhhjh}r(UreftypeXclassjjX%celery.concurrency.processes.TaskPoolU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhM/h]rh)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhX%celery.concurrency.processes.TaskPoolrr}r(hUhjubahhubaubhX.r}r(hX.hjubeubj)r }r (hUhjhhhjh}r (h]h]h]h]h]Uentries]r (XpairXCELERYD_LISTENER; settingXstd:setting-CELERYD_LISTENERr UtrauhM3hhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hj uhM3hhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Uceleryd-listenerrj eh]rh)auhM5hhh}rj jsh]r(h)r}r(hXCELERYD_LISTENERrhjhhhhh}r(h]h]h]h]h]uhM5hhh]rhXCELERYD_LISTENERrr }r!(hjhjubaubh)r"}r#(hXiName of the listener class used by the worker. Default is :class:`celery.worker.listener.CarrotListener`.hjhhhhh}r$(h]h]h]h]h]uhM7hhh]r%(hX:Name of the listener class used by the worker. Default is r&r'}r((hX:Name of the listener class used by the worker. Default is hj"ubj)r)}r*(hX.:class:`celery.worker.listener.CarrotListener`r+hj"hhhjh}r,(UreftypeXclassjjX%celery.worker.listener.CarrotListenerU refdomainXpyr-h]h]U refexplicith]h]h]jjjNjNuhM7h]r.h)r/}r0(hj+h}r1(h]h]r2(jj-Xpy-classr3eh]h]h]uhj)h]r4hX%celery.worker.listener.CarrotListenerr5r6}r7(hUhj/ubahhubaubhX.r8}r9(hX.hj"ubeubj)r:}r;(hUhjhhhjh}r<(h]h]h]h]h]Uentries]r=(XpairXCELERYD_MEDIATOR; settingXstd:setting-CELERYD_MEDIATORr>Utr?auhM;hhh]ubh)r@}rA(hUhjhhhhh}rB(h]h]h]h]h]hj>uhM;hhh]ubeubh)rC}rD(hUhjhhh}hhh}rE(h]h]h]h]rF(Uceleryd-mediatorrGj>eh]rHhauhM=hhh}rIj>j@sh]rJ(h)rK}rL(hXCELERYD_MEDIATORrMhjChhhhh}rN(h]h]h]h]h]uhM=hhh]rOhXCELERYD_MEDIATORrPrQ}rR(hjMhjKubaubh)rS}rT(hXfName of the mediator class used by the worker. Default is :class:`celery.worker.controllers.Mediator`.hjChhhhh}rU(h]h]h]h]h]uhM?hhh]rV(hX:Name of the mediator class used by the worker. Default is rWrX}rY(hX:Name of the mediator class used by the worker. Default is hjSubj)rZ}r[(hX+:class:`celery.worker.controllers.Mediator`r\hjShhhjh}r](UreftypeXclassjjX"celery.worker.controllers.MediatorU refdomainXpyr^h]h]U refexplicith]h]h]jjjNjNuhM?h]r_h)r`}ra(hj\h}rb(h]h]rc(jj^Xpy-classrdeh]h]h]uhjZh]rehX"celery.worker.controllers.Mediatorrfrg}rh(hUhj`ubahhubaubhX.ri}rj(hX.hjSubeubj)rk}rl(hUhjChhhjh}rm(h]h]h]h]h]Uentries]rn(XpairXCELERYD_ETA_SCHEDULER; settingX!std:setting-CELERYD_ETA_SCHEDULERroUtrpauhMChhh]ubh)rq}rr(hUhjChhhhh}rs(h]h]h]h]h]hjouhMChhh]ubeubh)rt}ru(hUhjhhh}hhh}rv(h]h]h]h]rw(Uceleryd-eta-schedulerrxjoeh]ryhauhMEhhh}rzjojqsh]r{(h)r|}r}(hXCELERYD_ETA_SCHEDULERr~hjthhhhh}r(h]h]h]h]h]uhMEhhh]rhXCELERYD_ETA_SCHEDULERrr}r(hj~hj|ubaubh)r}r(hXuName of the ETA scheduler class used by the worker. Default is :class:`celery.worker.controllers.ScheduleController`.hjthhhhh}r(h]h]h]h]h]uhMGhhh]r(hX?Name of the ETA scheduler class used by the worker. Default is rr}r(hX?Name of the ETA scheduler class used by the worker. Default is hjubj)r}r(hX5:class:`celery.worker.controllers.ScheduleController`rhjhhhjh}r(UreftypeXclassjjX,celery.worker.controllers.ScheduleControllerU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMGh]rh)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhX,celery.worker.controllers.ScheduleControllerrr}r(hUhjubahhubaubhX.r}r(hX.hjubeubh)r}r(hX.. _conf-celerybeat:hjthhhhh}r(h]h]h]h]h]hUconf-celerybeatruhMJhhh]ubeubeubh)r}r(hUhhhhh}rhhjshhh}r(h]h]h]h]r(jjeh]r(hhheuhMMhhh}rjjsh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhMMhhh]rhX Periodic Task Server: celerybeatrr}r(hjhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERYBEAT_SCHEDULE; settingXstd:setting-CELERYBEAT_SCHEDULErUtrauhMPhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMPhhh]ubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Ucelerybeat-schedulerjeh]rhFauhMRhhh}rjjsh]r(h)r}r(hXCELERYBEAT_SCHEDULErhjhhhhh}r(h]h]h]h]h]uhMRhhh]rhXCELERYBEAT_SCHEDULErr}r(hjhjubaubh)r}r(hXZThe periodic task schedule used by :mod:`~celery.bin.celerybeat`. See :ref:`beat-entries`.hjhhhhh}r(h]h]h]h]h]uhMThhh]r(hX#The periodic task schedule used by rr}r(hX#The periodic task schedule used by hjubj)r}r(hX:mod:`~celery.bin.celerybeat`rhjhhhjh}r(UreftypeXmodjjXcelery.bin.celerybeatU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMTh]rh)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhjh]rhX celerybeatrr}r(hUhjubahhubaubhX. See rr}r(hX. See hjubj)r}r(hX:ref:`beat-entries`rhjhhhjh}r(UreftypeXrefjjX beat-entriesU refdomainXstdrh]h]U refexplicith]h]h]jjuhMTh]rj)r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhX beat-entriesrr}r(hUhjubahjubaubhX.r}r(hX.hjubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERYBEAT_SCHEDULER; settingX std:setting-CELERYBEAT_SCHEDULERrUtrauhMXhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMXhhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Ucelerybeat-schedulerrjeh]rhPauhMZhhh}rjjsh]r(h)r}r(hXCELERYBEAT_SCHEDULERrhjhhhhh}r(h]h]h]h]h]uhMZhhh]rhXCELERYBEAT_SCHEDULERrr }r (hjhjubaubh)r }r (hXOThe default scheduler class. Default is ``"celery.beat.PersistentScheduler"``.hjhhhhh}r (h]h]h]h]h]uhM\hhh]r(hX)The default scheduler class. Default is rr}r(hX)The default scheduler class. Default is hj ubh)r}r(hX%``"celery.beat.PersistentScheduler"``h}r(h]h]h]h]h]uhj h]rhX!"celery.beat.PersistentScheduler"rr}r(hUhjubahhubhX.r}r(hX.hj ubeubh)r}r(hXOCan also be set via the :option:`-S` argument to :mod:`~celery.bin.celerybeat`.hjhhhhh}r(h]h]h]h]h]uhM_hhh]r(hXCan also be set via the rr }r!(hXCan also be set via the hjubj)r"}r#(hX :option:`-S`r$hjhhhjh}r%(UreftypeXoptionjjX-SU refdomainXstdr&j1Nh]h]U refexplicith]h]h]jjuhM_h]r'j3)r(}r)(hj$h}r*(h]h]r+(jj&X std-optionr,eh]h]h]uhj"h]r-hX-Sr.r/}r0(hUhj(ubahj=ubaubhX argument to r1r2}r3(hX argument to hjubj)r4}r5(hX:mod:`~celery.bin.celerybeat`r6hjhhhjh}r7(UreftypeXmodjjXcelery.bin.celerybeatU refdomainXpyr8h]h]U refexplicith]h]h]jjjNjNuhM_h]r9h)r:}r;(hj6h}r<(h]h]r=(jj8Xpy-modr>eh]h]h]uhj4h]r?hX celerybeatr@rA}rB(hUhj:ubahhubaubhX.rC}rD(hX.hjubeubj)rE}rF(hUhjhhhjh}rG(h]h]h]h]h]Uentries]rH(XpairX%CELERYBEAT_SCHEDULE_FILENAME; settingX(std:setting-CELERYBEAT_SCHEDULE_FILENAMErIUtrJauhMchhh]ubh)rK}rL(hUhjhhhhh}rM(h]h]h]h]h]hjIuhMchhh]ubeubh)rN}rO(hUhjhhh}hhh}rP(h]h]h]h]rQ(Ucelerybeat-schedule-filenamerRjIeh]rSh auhMehhh}rTjIjKsh]rU(h)rV}rW(hXCELERYBEAT_SCHEDULE_FILENAMErXhjNhhhhh}rY(h]h]h]h]h]uhMehhh]rZhXCELERYBEAT_SCHEDULE_FILENAMEr[r\}r](hjXhjVubaubh)r^}r_(hXName of the file used by ``PersistentScheduler`` to store the last run times of periodic tasks. Can be a relative or absolute path, but be aware that the suffix ``.db`` may be appended to the file name (depending on Python version).hjNhhhhh}r`(h]h]h]h]h]uhMghhh]ra(hXName of the file used by rbrc}rd(hXName of the file used by hj^ubh)re}rf(hX``PersistentScheduler``h}rg(h]h]h]h]h]uhj^h]rhhXPersistentSchedulerrirj}rk(hUhjeubahhubhXr to store the last run times of periodic tasks. Can be a relative or absolute path, but be aware that the suffix rlrm}rn(hXr to store the last run times of periodic tasks. Can be a relative or absolute path, but be aware that the suffix hj^ubh)ro}rp(hX``.db``h}rq(h]h]h]h]h]uhj^h]rrhX.dbrsrt}ru(hUhjoubahhubhX@ may be appended to the file name (depending on Python version).rvrw}rx(hX@ may be appended to the file name (depending on Python version).hj^ubeubh)ry}rz(hXWCan also be set via the :option:`--schedule` argument to :mod:`~celery.bin.celerybeat`.hjNhhhhh}r{(h]h]h]h]h]uhMkhhh]r|(hXCan also be set via the r}r~}r(hXCan also be set via the hjyubj)r}r(hX:option:`--schedule`rhjyhhhjh}r(UreftypeXoptionjjX --scheduleU refdomainXstdrj1Nh]h]U refexplicith]h]h]jjuhMkh]rj3)r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhjh]rhX --schedulerr}r(hUhjubahj=ubaubhX argument to rr}r(hX argument to hjyubj)r}r(hX:mod:`~celery.bin.celerybeat`rhjyhhhjh}r(UreftypeXmodjjXcelery.bin.celerybeatU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMkh]rh)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhjh]rhX celerybeatrr}r(hUhjubahhubaubhX.r}r(hX.hjyubeubj)r}r(hUhjNhhhjh}r(h]h]h]h]h]Uentries]r(XpairX%CELERYBEAT_MAX_LOOP_INTERVAL; settingX(std:setting-CELERYBEAT_MAX_LOOP_INTERVALrUtrauhMohhh]ubh)r}r(hUhjNhhhhh}r(h]h]h]h]h]hjuhMohhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Ucelerybeat-max-loop-intervalrjeh]rheauhMqhhh}rjjsh]r(h)r}r(hXCELERYBEAT_MAX_LOOP_INTERVALrhjhhhhh}r(h]h]h]h]h]uhMqhhh]rhXCELERYBEAT_MAX_LOOP_INTERVALrr}r(hjhjubaubh)r}r(hXThe maximum number of seconds :mod:`~celery.bin.celerybeat` can sleep between checking the schedule. Default is 300 seconds (5 minutes).hjhhhhh}r(h]h]h]h]h]uhMshhh]r(hXThe maximum number of seconds rr}r(hXThe maximum number of seconds hjubj)r}r(hX:mod:`~celery.bin.celerybeat`rhjhhhjh}r(UreftypeXmodjjXcelery.bin.celerybeatU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMsh]rh)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhjh]rhX celerybeatrr}r(hUhjubahhubaubhXN can sleep between checking the schedule. Default is 300 seconds (5 minutes).rr}r(hXN can sleep between checking the schedule. Default is 300 seconds (5 minutes).hjubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERYBEAT_LOG_FILE; settingXstd:setting-CELERYBEAT_LOG_FILErUtrauhMwhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhMwhhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(Ucelerybeat-log-filerjeh]rh%auhMyhhh}rjjsh]r(h)r}r(hXCELERYBEAT_LOG_FILErhjhhhhh}r(h]h]h]h]h]uhMyhhh]rhXCELERYBEAT_LOG_FILErr}r(hjhjubaubh)r}r(hX|The default file name to log messages to. Can be overridden using the `--logfile`` option to :mod:`~celery.bin.celerybeat`.hjhhhhh}r(h]h]h]h]h]uhM{hhh]r(hXGThe default file name to log messages to. Can be overridden using the rr}r(hXGThe default file name to log messages to. Can be overridden using the hjubj)r}r(hX `--logfile``h}r(h]h]h]h]h]uhjh]rhX --logfile`rr}r(hUhjubahjubhX option to rr}r(hX option to hjubj)r}r(hX:mod:`~celery.bin.celerybeat`rhjhhhjh}r(UreftypeXmodjjXcelery.bin.celerybeatU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhM{h]rh)r}r(hjh}r(h]h]r(jjXpy-modr eh]h]h]uhjh]r hX celerybeatr r }r (hUhjubahhubaubhX.r}r(hX.hjubeubh)r}r(hX*The default is :const:`None` (``stderr``).rhjhhhhh}r(h]h]h]h]h]uhM~hhh]r(hXThe default is rr}r(hXThe default is hjubj)r}r(hX :const:`None`rhjhhhjh}r(UreftypeXconstjjXNoneU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhM~h]rh)r}r(hjh}r (h]h]r!(jjXpy-constr"eh]h]h]uhjh]r#hXNoner$r%}r&(hUhjubahhubaubhX (r'r(}r)(hX (hjubh)r*}r+(hX ``stderr``h}r,(h]h]h]h]h]uhjh]r-hXstderrr.r/}r0(hUhj*ubahhubhX).r1r2}r3(hX).hjubeubj)r4}r5(hUhjhhhjh}r6(h]h]h]h]h]Uentries]r7(XpairXCELERYBEAT_LOG_LEVEL; settingX std:setting-CELERYBEAT_LOG_LEVELr8Utr9auhMhhh]ubh)r:}r;(hUhjhhhhh}r<(h]h]h]h]h]hj8uhMhhh]ubeubh)r=}r>(hUhjhhh}hhh}r?(h]h]h]h]r@(Ucelerybeat-log-levelrAj8eh]rBh"auhMhhh}rCj8j:sh]rD(h)rE}rF(hXCELERYBEAT_LOG_LEVELrGhj=hhhhh}rH(h]h]h]h]h]uhMhhh]rIhXCELERYBEAT_LOG_LEVELrJrK}rL(hjGhjEubaubh)rM}rN(hXsLogging level. Can be any of :const:`DEBUG`, :const:`INFO`, :const:`WARNING`, :const:`ERROR`, or :const:`CRITICAL`.hj=hhhhh}rO(h]h]h]h]h]uhMhhh]rP(hXLogging level. Can be any of rQrR}rS(hXLogging level. Can be any of hjMubj)rT}rU(hX:const:`DEBUG`rVhjMhhhjh}rW(UreftypeXconstjjXDEBUGU refdomainXpyrXh]h]U refexplicith]h]h]jjjNjNuhMh]rYh)rZ}r[(hjVh}r\(h]h]r](jjXXpy-constr^eh]h]h]uhjTh]r_hXDEBUGr`ra}rb(hUhjZubahhubaubhX, rcrd}re(hX, hjMubj)rf}rg(hX :const:`INFO`rhhjMhhhjh}ri(UreftypeXconstjjXINFOU refdomainXpyrjh]h]U refexplicith]h]h]jjjNjNuhMh]rkh)rl}rm(hjhh}rn(h]h]ro(jjjXpy-constrpeh]h]h]uhjfh]rqhXINFOrrrs}rt(hUhjlubahhubaubhX, rurv}rw(hX, hjMubj)rx}ry(hX:const:`WARNING`rzhjMhhhjh}r{(UreftypeXconstjjXWARNINGU refdomainXpyr|h]h]U refexplicith]h]h]jjjNjNuhMh]r}h)r~}r(hjzh}r(h]h]r(jj|Xpy-constreh]h]h]uhjxh]rhXWARNINGrr}r(hUhj~ubahhubaubhX, rr}r(hX, hjMubj)r}r(hX:const:`ERROR`rhjMhhhjh}r(UreftypeXconstjjXERRORU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXERRORrr}r(hUhjubahhubaubhX, or rr}r(hX, or hjMubj)r}r(hX:const:`CRITICAL`rhjMhhhjh}r(UreftypeXconstjjXCRITICALU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXCRITICALrr}r(hUhjubahhubaubhX.r}r(hX.hjMubeubh)r}r(hXWCan also be set via the :option:`--loglevel` argument to :mod:`~celery.bin.celerybeat`.hj=hhhhh}r(h]h]h]h]h]uhMhhh]r(hXCan also be set via the rr}r(hXCan also be set via the hjubj)r}r(hX:option:`--loglevel`rhjhhhjh}r(UreftypeXoptionjjX --loglevelU refdomainXstdrj1Nh]h]U refexplicith]h]h]jjuhMh]rj3)r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhjh]rhX --loglevelrr}r(hUhjubahj=ubaubhX argument to rr}r(hX argument to hjubj)r}r(hX:mod:`~celery.bin.celerybeat`rhjhhhjh}r(UreftypeXmodjjXcelery.bin.celerybeatU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhjh]rhX celerybeatrr}r(hUhjubahhubaubhX.r}r(hX.hjubeubh)r}r(hX3See the :mod:`logging` module for more information.rhj=hhhhh}r(h]h]h]h]h]uhMhhh]r(hXSee the rr}r(hXSee the hjubj)r}r(hX:mod:`logging`rhjhhhjh}r(UreftypeXmodjjXloggingU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhjh]rhXloggingrr}r(hUhjubahhubaubhX module for more information.rr}r(hX module for more information.hjubeubh)r}r(hX.. _conf-celerymon:hj=hhhhh}r(h]h]h]h]h]hUconf-celerymonruhMhhh]ubeubeubh)r}r(hUhhhhh}rhljshhh}r(h]h]h]h]r(jjeh]r(hhleuhMhhh}rjjsh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhMhhh]rhXMonitor Server: celerymonrr}r(hjhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairXCELERYMON_LOG_FILE; settingXstd:setting-CELERYMON_LOG_FILErUtr auhMhhh]ubh)r }r (hUhjhhhhh}r (h]h]h]h]h]hjuhMhhh]ubh)r }r(hUhjhhh}hhh}r(h]h]h]h]r(Ucelerymon-log-filerjeh]rh_auhMhhh}rjj sh]r(h)r}r(hXCELERYMON_LOG_FILErhj hhhhh}r(h]h]h]h]h]uhMhhh]rhXCELERYMON_LOG_FILErr}r(hjhjubaubh)r}r(hXuThe default file name to log messages to. Can be overridden using the :option:`--logfile` argument to ``celerymon``.hj hhhhh}r(h]h]h]h]h]uhMhhh]r (hXGThe default file name to log messages to. Can be overridden using the r!r"}r#(hXGThe default file name to log messages to. Can be overridden using the hjubj)r$}r%(hX:option:`--logfile`r&hjhhhjh}r'(UreftypeXoptionjjX --logfileU refdomainXstdr(j1Nh]h]U refexplicith]h]h]jjuhMh]r)j3)r*}r+(hj&h}r,(h]h]r-(jj(X std-optionr.eh]h]h]uhj$h]r/hX --logfiler0r1}r2(hUhj*ubahj=ubaubhX argument to r3r4}r5(hX argument to hjubh)r6}r7(hX ``celerymon``h}r8(h]h]h]h]h]uhjh]r9hX celerymonr:r;}r<(hUhj6ubahhubhX.r=}r>(hX.hjubeubh)r?}r@(hX)The default is :const:`None` (``stderr``)rAhj hhhhh}rB(h]h]h]h]h]uhMhhh]rC(hXThe default is rDrE}rF(hXThe default is hj?ubj)rG}rH(hX :const:`None`rIhj?hhhjh}rJ(UreftypeXconstjjXNoneU refdomainXpyrKh]h]U refexplicith]h]h]jjjNjNuhMh]rLh)rM}rN(hjIh}rO(h]h]rP(jjKXpy-constrQeh]h]h]uhjGh]rRhXNonerSrT}rU(hUhjMubahhubaubhX (rVrW}rX(hX (hj?ubh)rY}rZ(hX ``stderr``h}r[(h]h]h]h]h]uhj?h]r\hXstderrr]r^}r_(hUhjYubahhubhX)r`}ra(hX)hj?ubeubj)rb}rc(hUhj hhhjh}rd(h]h]h]h]h]Uentries]re(XpairXCELERYMON_LOG_LEVEL; settingXstd:setting-CELERYMON_LOG_LEVELrfUtrgauhMhhh]ubh)rh}ri(hUhj hhhhh}rj(h]h]h]h]h]hjfuhMhhh]ubeubh)rk}rl(hUhjhhh}hhh}rm(h]h]h]h]rn(Ucelerymon-log-levelrojfeh]rphuauhMhhh}rqjfjhsh]rr(h)rs}rt(hXCELERYMON_LOG_LEVELruhjkhhhhh}rv(h]h]h]h]h]uhMhhh]rwhXCELERYMON_LOG_LEVELrxry}rz(hjuhjsubaubh)r{}r|(hXsLogging level. Can be any of :const:`DEBUG`, :const:`INFO`, :const:`WARNING`, :const:`ERROR`, or :const:`CRITICAL`.hjkhhhhh}r}(h]h]h]h]h]uhMhhh]r~(hXLogging level. Can be any of rr}r(hXLogging level. Can be any of hj{ubj)r}r(hX:const:`DEBUG`rhj{hhhjh}r(UreftypeXconstjjXDEBUGU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXDEBUGrr}r(hUhjubahhubaubhX, rr}r(hX, hj{ubj)r}r(hX :const:`INFO`rhj{hhhjh}r(UreftypeXconstjjXINFOU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXINFOrr}r(hUhjubahhubaubhX, rr}r(hX, hj{ubj)r}r(hX:const:`WARNING`rhj{hhhjh}r(UreftypeXconstjjXWARNINGU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXWARNINGrr}r(hUhjubahhubaubhX, rr}r(hX, hj{ubj)r}r(hX:const:`ERROR`rhj{hhhjh}r(UreftypeXconstjjXERRORU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXERRORrr}r(hUhjubahhubaubhX, or rr}r(hX, or hj{ubj)r}r(hX:const:`CRITICAL`rhj{hhhjh}r(UreftypeXconstjjXCRITICALU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXCRITICALrr}r(hUhjubahhubaubhX.r}r(hX.hj{ubeubh)r}r(hX3See the :mod:`logging` module for more information.rhjkhhhhh}r(h]h]h]h]h]uhMhhh]r(hXSee the rr}r(hXSee the hjubj)r}r(hX:mod:`logging`rhjhhhjh}r(UreftypeXmodjjXloggingU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rh)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhjh]rhXloggingrr}r(hUhjubahhubaubhX module for more information.rr}r(hX module for more information.hjubeubeubeubeubhhh}rhvjshhh}r(h]h]h]h]r(j{jeh]r(hhveuhKhhh}rjjsh]r(h)r}r(hjhhhhhhh}r(h]h]h]h]h]hjzuhKhhh]rhXAMQP backend settingsrr}r(hjhjubaubj)r}r(hUhhhhhjh}r(h]h]h]h]h]Uentries]r(XpairX(CELERY_AMQP_TASK_RESULT_EXPIRES; settingX+std:setting-CELERY_AMQP_TASK_RESULT_EXPIRESrUtrauhKhhh]ubh)r}r (hUhhhhhhh}r (h]h]h]h]h]hjuhKhhh]ubh)r }r (hUhhhhh}hhh}r (h]h]h]h]r(Ucelery-amqp-task-result-expiresrjeh]rhauhKhhh}rjjsh]r(h)r}r(hXCELERY_AMQP_TASK_RESULT_EXPIRESrhj hhhhh}r(h]h]h]h]h]uhKhhh]rhXCELERY_AMQP_TASK_RESULT_EXPIRESrr}r(hjhjubaubh)r}r(hXBThe time in seconds of which the task result queues should expire.rhj hhhhh}r(h]h]h]h]h]uhKhhh]rhXBThe time in seconds of which the task result queues should expire.r r!}r"(hjhjubaubj)r#}r$(hXCAMQP result expiration requires RabbitMQ versions 2.1.0 and higher.r%hj hhhjh}r&(h]h]h]h]h]uhNhhh]r'h)r(}r)(hj%hj#hhhhh}r*(h]h]h]h]h]uhKh]r+hXCAMQP result expiration requires RabbitMQ versions 2.1.0 and higher.r,r-}r.(hj%hj(ubaubaubj)r/}r0(hUhj hhhjh}r1(h]h]h]h]h]Uentries]r2(XpairXCELERY_RESULT_EXCHANGE; settingX"std:setting-CELERY_RESULT_EXCHANGEr3Utr4auhKhhh]ubh)r5}r6(hUhj hhhhh}r7(h]h]h]h]h]hj3uhKhhh]ubeubh)r8}r9(hUhhhhh}hhh}r:(h]h]h]h]r;(Ucelery-result-exchanger<j3eh]r=h5auhKhhh}r>j3j5sh]r?(h)r@}rA(hXCELERY_RESULT_EXCHANGErBhj8hhhhh}rC(h]h]h]h]h]uhKhhh]rDhXCELERY_RESULT_EXCHANGErErF}rG(hjBhj@ubaubh)rH}rI(hXLName of the exchange to publish results in. Default is ``"celeryresults"``.rJhj8hhhhh}rK(h]h]h]h]h]uhKhhh]rL(hX8Name of the exchange to publish results in. Default is rMrN}rO(hX8Name of the exchange to publish results in. Default is hjHubh)rP}rQ(hX``"celeryresults"``h}rR(h]h]h]h]h]uhjHh]rShX"celeryresults"rTrU}rV(hUhjPubahhubhX.rW}rX(hX.hjHubeubj)rY}rZ(hUhj8hhhjh}r[(h]h]h]h]h]Uentries]r\(XpairX$CELERY_RESULT_EXCHANGE_TYPE; settingX'std:setting-CELERY_RESULT_EXCHANGE_TYPEr]Utr^auhKhhh]ubh)r_}r`(hUhj8hhhhh}ra(h]h]h]h]h]hj]uhKhhh]ubeubh)rb}rc(hUhhhhh}hhh}rd(h]h]h]h]re(Ucelery-result-exchange-typerfj]eh]rghWauhKhhh}rhj]j_sh]ri(h)rj}rk(hXCELERY_RESULT_EXCHANGE_TYPErlhjbhhhhh}rm(h]h]h]h]h]uhKhhh]rnhXCELERY_RESULT_EXCHANGE_TYPErorp}rq(hjlhjjubaubh)rr}rs(hXSThe exchange type of the result exchange. Default is to use a ``direct`` exchange.hjbhhhhh}rt(h]h]h]h]h]uhKhhh]ru(hX?The exchange type of the result exchange. Default is to use a rvrw}rx(hX?The exchange type of the result exchange. Default is to use a hjrubh)ry}rz(hX ``direct``h}r{(h]h]h]h]h]uhjrh]r|hXdirectr}r~}r(hUhjyubahhubhX exchange.rr}r(hX exchange.hjrubeubj)r}r(hUhjbhhhjh}r(h]h]h]h]h]Uentries]r(XpairX!CELERY_RESULT_SERIALIZER; settingX$std:setting-CELERY_RESULT_SERIALIZERrUtrauhKhhh]ubh)r}r(hUhjbhhhhh}r(h]h]h]h]h]hjuhKhhh]ubeubh)r}r(hUhhhhh}hhh}r(h]h]h]h]r(Ucelery-result-serializerrjeh]rhauhKhhh}rjjsh]r(h)r}r(hXCELERY_RESULT_SERIALIZERrhjhhhhh}r(h]h]h]h]h]uhKhhh]rhXCELERY_RESULT_SERIALIZERrr}r(hjhjubaubh)r}r(hX`Result message serialization format. Default is ``"pickle"``. See :ref:`executing-serializers`.hjhhhhh}r(h]h]h]h]h]uhKhhh]r(hX1Result message serialization format. Default is rr}r(hX1Result message serialization format. Default is hjubh)r}r(hX ``"pickle"``h}r(h]h]h]h]h]uhjh]rhX"pickle"rr}r(hUhjubahhubhX. See rr}r(hX. See hjubj)r}r(hX:ref:`executing-serializers`rhjhhhjh}r(UreftypeXrefjjXexecuting-serializersU refdomainXstdrh]h]U refexplicith]h]h]jjuhKh]rj)r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhXexecuting-serializersrr}r(hUhjubahjubaubhX.r}r(hX.hjubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(XpairX!CELERY_RESULT_PERSISTENT; settingX$std:setting-CELERY_RESULT_PERSISTENTrUtrauhKhhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hjuhKhhh]ubeubh)r}r(hUhhhhh}hhh}r(h]h]h]h]r(Ucelery-result-persistentrjeh]rhcauhKhhh}rjjsh]r(h)r}r(hXCELERY_RESULT_PERSISTENTrhjhhhhh}r(h]h]h]h]h]uhKhhh]rhXCELERY_RESULT_PERSISTENTrr}r(hjhjubaubh)r}r(hXIf set to :const:`True`, result messages will be persistent. This means the messages will not be lost after a broker restart. The default is for the results to be transient.hjhhhhh}r(h]h]h]h]h]uhKhhh]r(hX If set to rr}r(hX If set to hjubj)r}r(hX :const:`True`rhjhhhjh}r(UreftypeXconstjjXTrueU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhKh]rh)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXTruerr}r(hUhjubahhubaubhX, result messages will be persistent. This means the messages will not be lost after a broker restart. The default is for the results to be transient.rr}r(hX, result messages will be persistent. This means the messages will not be lost after a broker restart. The default is for the results to be transient.hjubeubeubheubhhhhh}r(h]rjah]h]h]rUid1rah]uhKhhh]r(h)r}r(hXExample configurationrhhhhhhh}r(h]h]h]h]h]uhKhhh]rhXExample configurationrr}r(hjhjubaubj)r}r(hXRCELERY_RESULT_BACKEND = "amqp" CELERY_AMQP_TASK_RESULT_EXPIRES = 18000 # 5 hours.hhhhhjh}r(jjXpythonjjh]h]h]h]h]uhKhhh]rhXRCELERY_RESULT_BACKEND = "amqp" CELERY_AMQP_TASK_RESULT_EXPIRES = 18000 # 5 hours.rr}r(hUhjubaubjeubhhhUsystem_messagerh}r(h]UlevelKh]h]rjaUsourcehh]h]UlineKUtypeUINFOruhKhhh]rh)r }r (hUh}r (h]h]h]h]h]uhhh]r hX8Duplicate implicit target name: "example configuration".r r}r(hUhj ubahhubaubh)r}r(hUhjhhhjh}r(h]UlevelKh]h]rjaUsourcehh]h]UlineM7UtypejuhM7hhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX8Duplicate implicit target name: "example configuration".rr}r(hUhjubahhubaubh)r}r(hUhjhhhjh}r(h]UlevelKh]h]rj aUsourcehh]h]UlineMlUtypejuhMlhhh]r h)r!}r"(hUh}r#(h]h]h]h]h]uhjh]r$hX8Duplicate implicit target name: "example configuration".r%r&}r'(hUhj!ubahhubaubh)r(}r)(hUhj> hhhjh}r*(h]UlevelKh]h]r+jE aUsourcehh]h]UlineMUtypejuhMhhh]r,h)r-}r.(hUh}r/(h]h]h]h]h]uhj(h]r0hX8Duplicate implicit target name: "example configuration".r1r2}r3(hUhj-ubahhubaubeUcurrent_sourcer4NU decorationr5NUautofootnote_startr6KUnameidsr7}r8(hj hjV hjh jRh jrh jKh jh jUhjBhj hjhjhj&hj@ hjhjhj5 hjhj hj hj hjhj3hj hjxhjbh j}h!jh"jAh#jh$jh%jh&j h'jch(jh)jh*jG h+j h,j h-jh.j"h/jh0j h1jh2j h3j] h4jgh5j<h6jrh7jh8jh9jh:jo h;jhjh?jLh@NhAj hBjhChhDj'hEj_hFjhGj'hHj hIj,hJjhKjwhLhhMjPhNjhOjDhPjhQjhRj hSjhTjhUj= hVjhWjfhXjlhYjhZjh[j+h\j h]jh^j h_jh`jhajhbjhcjhdjhejhfjhgjhhjhijhjjFhkj[ hljhmjhnjhoj hpjihqjnhrj,hsjehtjhujohvjhwj~ hxjhyjhzjh{jh|jhh}jh~jhjhjhhhjhjhjhjw hj hj9hj<hj hjhjBhjhj{hjhjhjhjGhjjhjhjhjhjhjpuh]r9(hhehUU transformerr:NU footnote_refsr;}r<Urefnamesr=}r>(X sqlalchemy]r?jaXmongodb]r@jaX tokyo tyrant]rAjaXredis]rBjMaj]rC(jjeXconnection string]rD(j9jRej]rEjaXsupported databases]rFj.auUsymbol_footnotesrG]rHUautofootnote_refsrI]rJUsymbol_footnote_refsrK]rLU citationsrM]rNhhU current_linerONUtransform_messagesrP]rQ(h)rR}rS(hUh}rT(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rUh)rV}rW(hUh}rX(h]h]h]h]h]uhjRh]rYhX3Hyperlink target "configuration" is not referenced.rZr[}r\(hUhjVubahhubahjubh)r]}r^(hUh}r_(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]r`h)ra}rb(hUh}rc(h]h]h]h]h]uhj]h]rdhX2Hyperlink target "conf-example" is not referenced.rerf}rg(hUhjaubahhubahjubh)rh}ri(hUh}rj(h]UlevelKh]h]Usourcehh]h]UlineK5Utypejuh]rkh)rl}rm(hUh}rn(h]h]h]h]h]uhjhh]rohX6Hyperlink target "conf-concurrency" is not referenced.rprq}rr(hUhjlubahhubahjubh)rs}rt(hUh}ru(h]UlevelKh]h]Usourcehh]h]UlineK;Utypejuh]rvh)rw}rx(hUh}ry(h]h]h]h]h]uhjsh]rzhXEHyperlink target "std:setting-CELERYD_CONCURRENCY" is not referenced.r{r|}r}(hUhjwubahhubahjubh)r~}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKDUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhj~h]rhXMHyperlink target "std:setting-CELERYD_PREFETCH_MULTIPLIER" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKPUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX9Hyperlink target "conf-result-backend" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKVUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXGHyperlink target "std:setting-CELERY_RESULT_BACKEND" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXBHyperlink target "conf-database-result-backend" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXEHyperlink target "std:setting-CELERY_RESULT_DBURI" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXNHyperlink target "std:setting-CELERY_RESULT_ENGINE_OPTIONS" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX>Hyperlink target "conf-amqp-result-backend" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXQHyperlink target "std:setting-CELERY_AMQP_TASK_RESULT_EXPIRES" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXHHyperlink target "std:setting-CELERY_RESULT_EXCHANGE" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXMHyperlink target "std:setting-CELERY_RESULT_EXCHANGE_TYPE" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXJHyperlink target "std:setting-CELERY_RESULT_SERIALIZER" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXJHyperlink target "std:setting-CELERY_RESULT_PERSISTENT" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]r hX?Hyperlink target "conf-cache-result-backend" is not referenced.r r }r (hUhjubahhubahjubh)r }r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhj h]rhXFHyperlink target "std:setting-CELERY_CACHE_BACKEND" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineM Utypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXNHyperlink target "std:setting-CELERY_CACHE_BACKEND_OPTIONS" is not referenced.r r!}r"(hUhjubahhubahjubh)r#}r$(hUh}r%(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r&h)r'}r((hUh}r)(h]h]h]h]h]uhj#h]r*hX@Hyperlink target "conf-tyrant-result-backend" is not referenced.r+r,}r-(hUhj'ubahhubahjubh)r.}r/(hUh}r0(h]UlevelKh]h]Usourcehh]h]UlineM(Utypejuh]r1h)r2}r3(hUh}r4(h]h]h]h]h]uhj.h]r5hX9Hyperlink target "std:setting-TT_HOST" is not referenced.r6r7}r8(hUhj2ubahhubahjubh)r9}r:(hUh}r;(h]UlevelKh]h]Usourcehh]h]UlineM/Utypejuh]r<h)r=}r>(hUh}r?(h]h]h]h]h]uhj9h]r@hX9Hyperlink target "std:setting-TT_PORT" is not referenced.rArB}rC(hUhj=ubahhubahjubh)rD}rE(hUh}rF(h]UlevelKh]h]Usourcehh]h]UlineM?Utypejuh]rGh)rH}rI(hUh}rJ(h]h]h]h]h]uhjDh]rKhX?Hyperlink target "conf-redis-result-backend" is not referenced.rLrM}rN(hUhjHubahhubahjubh)rO}rP(hUh}rQ(h]UlevelKh]h]Usourcehh]h]UlineMPUtypejuh]rRh)rS}rT(hUh}rU(h]h]h]h]h]uhjOh]rVhX<Hyperlink target "std:setting-REDIS_HOST" is not referenced.rWrX}rY(hUhjSubahhubahjubh)rZ}r[(hUh}r\(h]UlevelKh]h]Usourcehh]h]UlineMWUtypejuh]r]h)r^}r_(hUh}r`(h]h]h]h]h]uhjZh]rahX<Hyperlink target "std:setting-REDIS_PORT" is not referenced.rbrc}rd(hUhj^ubahhubahjubh)re}rf(hUh}rg(h]UlevelKh]h]Usourcehh]h]UlineM^Utypejuh]rhh)ri}rj(hUh}rk(h]h]h]h]h]uhjeh]rlhX:Hyperlink target "std:setting-REDIS_DB" is not referenced.rmrn}ro(hUhjiubahhubahjubh)rp}rq(hUh}rr(h]UlevelKh]h]Usourcehh]h]UlineMeUtypejuh]rsh)rt}ru(hUh}rv(h]h]h]h]h]uhjph]rwhX@Hyperlink target "std:setting-REDIS_PASSWORD" is not referenced.rxry}rz(hUhjtubahhubahjubh)r{}r|(hUh}r}(h]UlevelKh]h]Usourcehh]h]UlineMvUtypejuh]r~h)r}r(hUh}r(h]h]h]h]h]uhj{h]rhXAHyperlink target "conf-mongodb-result-backend" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXQHyperlink target "std:setting-CELERY_MONGODB_BACKEND_SETTINGS" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXCHyperlink target "example-mongodb-result-config" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX4Hyperlink target "conf-messaging" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX<Hyperlink target "conf-messaging-routing" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX?Hyperlink target "std:setting-CELERY_QUEUES" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX?Hyperlink target "std:setting-CELERY_ROUTES" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXNHyperlink target "std:setting-CELERY_CREATE_MISSING_QUEUES" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXFHyperlink target "std:setting-CELERY_DEFAULT_QUEUE" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXIHyperlink target "std:setting-CELERY_DEFAULT_EXCHANGE" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXNHyperlink target "std:setting-CELERY_DEFAULT_EXCHANGE_TYPE" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXLHyperlink target "std:setting-CELERY_DEFAULT_ROUTING_KEY" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXNHyperlink target "std:setting-CELERY_DEFAULT_DELIVERY_MODE" is not referenced.rr}r (hUhjubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r h)r}r(hUh}r(h]h]h]h]h]uhj h]rhX<Hyperlink target "conf-broker-connection" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX@Hyperlink target "std:setting-BROKER_BACKEND" is not referenced.rr}r(hUhjubahhubahjubh)r }r!(hUh}r"(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r#h)r$}r%(hUh}r&(h]h]h]h]h]uhj h]r'hX=Hyperlink target "std:setting-BROKER_HOST" is not referenced.r(r)}r*(hUhj$ubahhubahjubh)r+}r,(hUh}r-(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r.h)r/}r0(hUh}r1(h]h]h]h]h]uhj+h]r2hX=Hyperlink target "std:setting-BROKER_PORT" is not referenced.r3r4}r5(hUhj/ubahhubahjubh)r6}r7(hUh}r8(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r9h)r:}r;(hUh}r<(h]h]h]h]h]uhj6h]r=hX=Hyperlink target "std:setting-BROKER_USER" is not referenced.r>r?}r@(hUhj:ubahhubahjubh)rA}rB(hUh}rC(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rDh)rE}rF(hUh}rG(h]h]h]h]h]uhjAh]rHhXAHyperlink target "std:setting-BROKER_PASSWORD" is not referenced.rIrJ}rK(hUhjEubahhubahjubh)rL}rM(hUh}rN(h]UlevelKh]h]Usourcehh]h]UlineM%Utypejuh]rOh)rP}rQ(hUh}rR(h]h]h]h]h]uhjLh]rShX>Hyperlink target "std:setting-BROKER_VHOST" is not referenced.rTrU}rV(hUhjPubahhubahjubh)rW}rX(hUh}rY(h]UlevelKh]h]Usourcehh]h]UlineM,Utypejuh]rZh)r[}r\(hUh}r](h]h]h]h]h]uhjWh]r^hX@Hyperlink target "std:setting-BROKER_USE_SSL" is not referenced.r_r`}ra(hUhj[ubahhubahjubh)rb}rc(hUh}rd(h]UlevelKh]h]Usourcehh]h]UlineM4Utypejuh]reh)rf}rg(hUh}rh(h]h]h]h]h]uhjbh]rihXKHyperlink target "std:setting-BROKER_CONNECTION_TIMEOUT" is not referenced.rjrk}rl(hUhjfubahhubahjubh)rm}rn(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineM<Utypejuh]rph)rq}rr(hUh}rs(h]h]h]h]h]uhjmh]rthXPHyperlink target "std:setting-CELERY_BROKER_CONNECTION_RETRY" is not referenced.rurv}rw(hUhjqubahhubahjubh)rx}ry(hUh}rz(h]UlevelKh]h]Usourcehh]h]UlineMIUtypejuh]r{h)r|}r}(hUh}r~(h]h]h]h]h]uhjxh]rhXVHyperlink target "std:setting-CELERY_BROKER_CONNECTION_MAX_RETRIES" is not referenced.rr}r(hUhj|ubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMTUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX9Hyperlink target "conf-task-execution" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMZUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXEHyperlink target "std:setting-CELERY_ALWAYS_EAGER" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMhUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXTHyperlink target "std:setting-CELERY_EAGER_PROPAGATES_EXCEPTIONS" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMrUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXFHyperlink target "std:setting-CELERY_IGNORE_RESULT" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineM{Utypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXLHyperlink target "std:setting-CELERY_TASK_RESULT_EXPIRES" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXKHyperlink target "std:setting-CELERY_MAX_CACHED_RESULTS" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXFHyperlink target "std:setting-CELERY_TRACK_STARTED" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXHHyperlink target "std:setting-CELERY_TASK_SERIALIZER" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXKHyperlink target "std:setting-CELERY_DEFAULT_RATE_LIMIT" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXLHyperlink target "std:setting-CELERY_DISABLE_RATE_LIMITS" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXBHyperlink target "std:setting-CELERY_ACKS_LATE" is not referenced.rr}r(hUhjubahhubahjubh)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rh)r }r (hUh}r (h]h]h]h]h]uhjh]r hX2Hyperlink target "conf-celeryd" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hX@Hyperlink target "std:setting-CELERY_IMPORTS" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hXMHyperlink target "std:setting-CELERYD_MAX_TASKS_PER_CHILD" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r h)r! }r" (hUh}r# (h]h]h]h]h]uhj h]r$ hXIHyperlink target "std:setting-CELERYD_TASK_TIME_LIMIT" is not referenced.r% r& }r' (hUhj! ubahhubahjubh)r( }r) (hUh}r* (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r+ h)r, }r- (hUh}r. (h]h]h]h]h]uhj( h]r/ hXNHyperlink target "std:setting-CELERYD_TASK_SOFT_TIME_LIMIT" is not referenced.r0 r1 }r2 (hUhj, ubahhubahjubh)r3 }r4 (hUh}r5 (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r6 h)r7 }r8 (hUh}r9 (h]h]h]h]h]uhj3 h]r: hXUHyperlink target "std:setting-CELERY_STORE_ERRORS_EVEN_IF_IGNORED" is not referenced.r; r< }r= (hUhj7 ubahhubahjubh)r> }r? (hUh}r@ (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rA h)rB }rC (hUh}rD (h]h]h]h]h]uhj> h]rE hXBHyperlink target "std:setting-CELERYD_STATE_DB" is not referenced.rF rG }rH (hUhjB ubahhubahjubh)rI }rJ (hUh}rK (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rL h)rM }rN (hUh}rO (h]h]h]h]h]uhjI h]rP hXQHyperlink target "std:setting-CELERYD_ETA_SCHEDULER_PRECISION" is not referenced.rQ rR }rS (hUhjM ubahhubahjubh)rT }rU (hUh}rV (h]UlevelKh]h]Usourcehh]h]UlineM&Utypejuh]rW h)rX }rY (hUh}rZ (h]h]h]h]h]uhjT h]r[ hX6Hyperlink target "conf-error-mails" is not referenced.r\ r] }r^ (hUhjX ubahhubahjubh)r_ }r` (hUh}ra (h]UlevelKh]h]Usourcehh]h]UlineM,Utypejuh]rb h)rc }rd (hUh}re (h]h]h]h]h]uhj_ h]rf hXPHyperlink target "std:setting-CELERYD_SEND_TASK_ERROR_EMAILS" is not referenced.rg rh }ri (hUhjc ubahhubahjubh)rj }rk (hUh}rl (h]UlevelKh]h]Usourcehh]h]UlineM5Utypejuh]rm h)rn }ro (hUh}rp (h]h]h]h]h]uhjj h]rq hXMHyperlink target "std:setting-CELERY_TASK_ERROR_WHITELIST" is not referenced.rr rs }rt (hUhjn ubahhubahjubh)ru }rv (hUh}rw (h]UlevelKh]h]Usourcehh]h]UlineM<Utypejuh]rx h)ry }rz (hUh}r{ (h]h]h]h]h]uhju h]r| hX8Hyperlink target "std:setting-ADMINS" is not referenced.r} r~ }r (hUhjy ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMDUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hX>Hyperlink target "std:setting-SERVER_EMAIL" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMLUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hX;Hyperlink target "std:setting-MAIL_HOST" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMSUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hX@Hyperlink target "std:setting-MAIL_HOST_USER" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMZUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hXDHyperlink target "std:setting-MAIL_HOST_PASSWORD" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMaUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hX;Hyperlink target "std:setting-MAIL_PORT" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMgUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hXDHyperlink target "conf-example-error-mail-config" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hX1Hyperlink target "conf-events" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hXDHyperlink target "std:setting-CELERY_SEND_EVENTS" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hXDHyperlink target "std:setting-CELERY_EVENT_QUEUE" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hXGHyperlink target "std:setting-CELERY_EVENT_EXCHANGE" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r hXLHyperlink target "std:setting-CELERY_EVENT_EXCHANGE_TYPE" is not referenced.r r }r (hUhj ubahhubahjubh)r }r (hUh}r (h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r h)r }r (hUh}r (h]h]h]h]h]uhj h]r!hXJHyperlink target "std:setting-CELERY_EVENT_ROUTING_KEY" is not referenced.r!r!}r!(hUhj ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r!h)r!}r !(hUh}r !(h]h]h]h]h]uhj!h]r !hXIHyperlink target "std:setting-CELERY_EVENT_SERIALIZER" is not referenced.r !r !}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hX4Hyperlink target "conf-broadcast" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r!h)r!}r!(hUh}r !(h]h]h]h]h]uhj!h]r!!hXHHyperlink target "std:setting-CELERY_BROADCAST_QUEUE" is not referenced.r"!r#!}r$!(hUhj!ubahhubahjubh)r%!}r&!(hUh}r'!(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r(!h)r)!}r*!(hUh}r+!(h]h]h]h]h]uhj%!h]r,!hXLHyperlink target "std:setting-CELERY_BROADCASTS_EXCHANGE" is not referenced.r-!r.!}r/!(hUhj)!ubahhubahjubh)r0!}r1!(hUh}r2!(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r3!h)r4!}r5!(hUh}r6!(h]h]h]h]h]uhj0!h]r7!hXPHyperlink target "std:setting-CELERY_BROADCAST_EXCHANGE_TYPE" is not referenced.r8!r9!}r:!(hUhj4!ubahhubahjubh)r;!}r!h)r?!}r@!(hUh}rA!(h]h]h]h]h]uhj;!h]rB!hX2Hyperlink target "conf-logging" is not referenced.rC!rD!}rE!(hUhj?!ubahhubahjubh)rF!}rG!(hUh}rH!(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rI!h)rJ!}rK!(hUh}rL!(h]h]h]h]h]uhjF!h]rM!hXBHyperlink target "std:setting-CELERYD_LOG_FILE" is not referenced.rN!rO!}rP!(hUhjJ!ubahhubahjubh)rQ!}rR!(hUh}rS!(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rT!h)rU!}rV!(hUh}rW!(h]h]h]h]h]uhjQ!h]rX!hXCHyperlink target "std:setting-CELERYD_LOG_LEVEL" is not referenced.rY!rZ!}r[!(hUhjU!ubahhubahjubh)r\!}r]!(hUh}r^!(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r_!h)r`!}ra!(hUh}rb!(h]h]h]h]h]uhj\!h]rc!hXDHyperlink target "std:setting-CELERYD_LOG_FORMAT" is not referenced.rd!re!}rf!(hUhj`!ubahhubahjubh)rg!}rh!(hUh}ri!(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]rj!h)rk!}rl!(hUh}rm!(h]h]h]h]h]uhjg!h]rn!hXIHyperlink target "std:setting-CELERYD_TASK_LOG_FORMAT" is not referenced.ro!rp!}rq!(hUhjk!ubahhubahjubh)rr!}rs!(hUh}rt!(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]ru!h)rv!}rw!(hUh}rx!(h]h]h]h]h]uhjr!h]ry!hXIHyperlink target "std:setting-CELERY_REDIRECT_STDOUTS" is not referenced.rz!r{!}r|!(hUhjv!ubahhubahjubh)r}!}r~!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj}!h]r!hXOHyperlink target "std:setting-CELERY_REDIRECT_STDOUTS_LEVEL" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineM%Utypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hX<Hyperlink target "conf-custom-components" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineM+Utypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hX>Hyperlink target "std:setting-CELERYD_POOL" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineM3Utypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hXBHyperlink target "std:setting-CELERYD_LISTENER" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineM;Utypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hXBHyperlink target "std:setting-CELERYD_MEDIATOR" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineMCUtypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hXGHyperlink target "std:setting-CELERYD_ETA_SCHEDULER" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineMJUtypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hX5Hyperlink target "conf-celerybeat" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineMPUtypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hXEHyperlink target "std:setting-CELERYBEAT_SCHEDULE" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineMXUtypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hXFHyperlink target "std:setting-CELERYBEAT_SCHEDULER" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineMcUtypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hXNHyperlink target "std:setting-CELERYBEAT_SCHEDULE_FILENAME" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineMoUtypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hXNHyperlink target "std:setting-CELERYBEAT_MAX_LOOP_INTERVAL" is not referenced.r!r!}r!(hUhj!ubahhubahjubh)r!}r!(hUh}r!(h]UlevelKh]h]Usourcehh]h]UlineMwUtypejuh]r!h)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!hXEHyperlink target "std:setting-CELERYBEAT_LOG_FILE" is not referenced.r!r!}r"(hUhj!ubahhubahjubh)r"}r"(hUh}r"(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r"h)r"}r"(hUh}r"(h]h]h]h]h]uhj"h]r"hXFHyperlink target "std:setting-CELERYBEAT_LOG_LEVEL" is not referenced.r "r "}r "(hUhj"ubahhubahjubh)r "}r "(hUh}r"(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r"h)r"}r"(hUh}r"(h]h]h]h]h]uhj "h]r"hX4Hyperlink target "conf-celerymon" is not referenced.r"r"}r"(hUhj"ubahhubahjubh)r"}r"(hUh}r"(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r"h)r"}r"(hUh}r"(h]h]h]h]h]uhj"h]r"hXDHyperlink target "std:setting-CELERYMON_LOG_FILE" is not referenced.r"r "}r!"(hUhj"ubahhubahjubh)r""}r#"(hUh}r$"(h]UlevelKh]h]Usourcehh]h]UlineMUtypejuh]r%"h)r&"}r'"(hUh}r("(h]h]h]h]h]uhj""h]r)"hXEHyperlink target "std:setting-CELERYMON_LOG_LEVEL" is not referenced.r*"r+"}r,"(hUhj&"ubahhubahjubeUreporterr-"NUid_startr."KU autofootnotesr/"]r0"U citation_refsr1"}r2"Uindirect_targetsr3"]r4"Usettingsr5"(cdocutils.frontend Values r6"or7"}r8"(Ufootnote_backlinksr9"KUrecord_dependenciesr:"NU rfc_base_urlr;"Uhttp://tools.ietf.org/html/r<"U tracebackr="Upep_referencesr>"NUstrip_commentsr?"NU toc_backlinksr@"UentryrA"U language_coderB"UenrC"U datestamprD"NU report_levelrE"KU _destinationrF"NU halt_levelrG"KU strip_classesrH"NhNUerror_encoding_error_handlerrI"UbackslashreplacerJ"UdebugrK"NUembed_stylesheetrL"Uoutput_encoding_error_handlerrM"UstrictrN"U sectnum_xformrO"KUdump_transformsrP"NU docinfo_xformrQ"KUwarning_streamrR"NUpep_file_url_templaterS"Upep-%04drT"Uexit_status_levelrU"KUconfigrV"NUstrict_visitorrW"NUcloak_email_addressesrX"Utrim_footnote_reference_spacerY"UenvrZ"NUdump_pseudo_xmlr["NUexpose_internalsr\"NUsectsubtitle_xformr]"U source_linkr^"NUrfc_referencesr_"NUoutput_encodingr`"Uutf-8ra"U source_urlrb"NUinput_encodingrc"U utf-8-sigrd"U_disable_configre"NU id_prefixrf"UU tab_widthrg"KUerror_encodingrh"UUTF-8ri"U_sourcerj"UK/var/build/user_builds/celery/checkouts/2.1-archived/docs/configuration.rstrk"Ugettext_compactrl"U generatorrm"NUdump_internalsrn"NU smart_quotesro"U pep_base_urlrp"Uhttp://www.python.org/dev/peps/rq"Usyntax_highlightrr"Ulongrs"Uinput_encoding_error_handlerrt"jN"Uauto_id_prefixru"Uidrv"Udoctitle_xformrw"Ustrip_elements_with_classesrx"NU _config_filesry"]Ufile_insertion_enabledrz"U raw_enabledr{"KU dump_settingsr|"NubUsymbol_footnote_startr}"KUidsr~"}r"(j j jtjyjjj j jhjjnjjjjjjj8j4j,j(jjjw js jjj j j j jjj> jC j5 j1 j j j j jrjnjjj jj@ jA j'j#jj#jAj=jjA jjjjjjjjjjjjjjj"jjjj8j=jjj#j(jjjjjjju jz j3j4jBj>jijejjjfjjjDj@j j j j jgjljjjjjjj<j8jrjjjjjjjjYj^jjjjjZj_jjj^jcj j jj jjjjj,j(j jjjjjjjjBjjjjjxjjjjjjjjjjjTjPjgjcj*j&jAj=jE j> jjjjj jjojkjhj`jej9j(jKjGj j jrjnjjjjjjjPjLjo jk jjjgjcjjj jj]jbjLjGjjjxjtjjj j j;j@jRjNjjhhjjjjj j j_jj j jUj4jV jR j~ j jjjjjljhjjjwjxj j jjj j j#j(jGjCjjj j j9j>j j jjjjj, j1 jjj= j> jjj] jY jjjjjjj j jjjGjLjzjvjjjjhhjjjjjjjjjjjjj3j8jjjjjjjjjjjjjijnj[ j\ j jjjjjj>jCjT jY jajfj j j j jejjjjjj\ jG jC jjj j jjjjjjj j jpjlj}jyjhjj jjjj jjj'j(jbj^j~ jz j j!jjjejajj jjj<j8j{hjjjjjjjjhhjjjjjjjj!jjj\jaj j jjj j jjjojtj+hjcjhjjjcj_j j jjjIjNjjj j jn js jKjGj&jjFjGj3j8j j j j jBjGjjjfjbj j jjjjj jjj j%j!jjjjjjjjjfjkjM jR jjjjjqjmj^jZj j jjuUsubstitution_namesr"}r"hhh}r"(h]h]h]Usourcehh]h]uU footnotesr"]r"Urefidsr"}r"(jt]r"jvaj ]r"j aj]r"jaj]r"jaj]r"jaj> ]r"j@ aj ]r"j aj@ ]r"j= aj]r"j ajI]r"jKaj]r"jaj]r"jaj]r"jaj]r"jaj]r"jaj8]r"j:aj]r"jaj#]r"j%aj ]r"j aju ]r"jw aj3]r"j0aj ]r"j aj ]r"j aj ]r"jaj]r"jaj]r"jajY]r"j[aj]r"jaj]r"jajZ]r"j\aj^]r"j`aj ]r"j aj ]r"j aj]r"jaj\]r"j^aj]r"jaj]r"jaj]r"jaj#]r"j%aj`]r"jbajo]r"jqaj]r"jaj]r"jaj]r"jaj]]r"j_aj]r"jaj ]r"j aj;]r"j=aj]r"jah]r"haj]r"jaj']r"j$aj]r"jaj~ ]r"j aj]r"jajw]r"jtaj]r"jaj ]r"j aj]r"jaj9]r"j;aj ]r"j aj]r"jaj]r"jaj, ]r"j. aj]r"jaj= ]r"j: aj ]r"j ajG]r"jIaj3]r"j5aj]r"jaj]r"jaji]r"jkaj[ ]r"jX aj]r"jajT ]r"jV aj ]r"jaja]r"jcajg]r"jiaj ]r"j aje]r"jgaj]r"jaj ]r"j aj]r"jaj]r"jaj]r"jaj]r"jaj]r"jaj]r"jaj]r"jaj]r"jaj]r"jajB]r"jDajM ]r"jO aj]r"jaj]r"jajc]r"jeaj ]r"j aj]r"jajn ]r"jp aj]r"jajF]r"jCaj3]r"j5aj ]r"j aj]r"jaj>]r"j@aj ]r"j aj]r"jaj ]r"jaj]r"j aj]r"jaj]r"jajf]r"jhauub.PKYDD$x+celery-2.1-archived/.doctrees/index.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery - distributed task queueqNXindices and tablesqNuUsubstitution_defsq}q Uparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startqKUnameidsq}q(hUcelery-distributed-task-queueqhUindices-and-tablesquUchildrenq]q(cdocutils.nodes image q)q}q(U rawsourceqX?.. image:: images/celery_favicon_128.png :class: celerylogo UparentqhUsourceqcdocutils.nodes reprunicode qXC/var/build/user_builds/celery/checkouts/2.1-archived/docs/index.rstqq}qbUtagnameqUimageq U attributesq!}q"(UuriXimages/celery_favicon_128.pngq#Uidsq$]Ubackrefsq%]Udupnamesq&]Uclassesq']q(U celerylogoq)aU candidatesq*}q+U*h#sUnamesq,]uUlineq-NUdocumentq.hh]ubcdocutils.nodes section q/)q0}q1(hUhhhhhUsectionq2h!}q3(h&]h']h%]h$]q4hah,]q5hauh-Kh.hh]q6(cdocutils.nodes title q7)q8}q9(hXCelery - Distributed Task Queueq:hh0hhhUtitleq;h!}q<(h&]h']h%]h$]h,]uh-Kh.hh]q=cdocutils.nodes Text q>XCelery - Distributed Task Queueq?q@}qA(hh:hh8ubaubcdocutils.nodes paragraph qB)qC}qD(hX Contents:qEhh0hhhU paragraphqFh!}qG(h&]h']h%]h$]h,]uh-Kh.hh]qHh>X Contents:qIqJ}qK(hhEhhCubaubcdocutils.nodes compound qL)qM}qN(hUhh0hhhUcompoundqOh!}qP(h&]h']qQUtoctree-wrapperqRah%]h$]h,]uh-Nh.hh]qScsphinx.addnodes toctree qT)qU}qV(hUhhMhhhUtoctreeqWh!}qX(UnumberedqYKU includehiddenqZhXindexq[U titlesonlyq\Uglobq]h$]h%]h&]h']h,]Uentriesq^]q_(NXgetting-started/indexq`qaNXuserguide/indexqbqcNX configurationqdqeNXcookbook/indexqfqgNX communityqhqiNX contributingqjqkNXtutorials/indexqlqmNXfaqqnqoNXreference/indexqpqqNXinternals/indexqrqsNX changelogqtquNXlinksqvqweUhiddenqxU includefilesqy]qz(h`hbhdhfhhhjhlhnhphrhthveUmaxdepthq{Kuh-K h]ubaubh/)q|}q}(hUhh0hhhh2h!}q~(h&]h']h%]h$]qhah,]qhauh-Kh.hh]q(h7)q}q(hXIndices and tablesqhh|hhhh;h!}q(h&]h']h%]h$]h,]uh-Kh.hh]qh>XIndices and tablesqq}q(hhhhubaubcdocutils.nodes bullet_list q)q}q(hUhh|hhhU bullet_listqh!}q(UbulletqX*h$]h%]h&]h']h,]uh-Kh.hh]q(cdocutils.nodes list_item q)q}q(hX:ref:`genindex`qhhhhhU list_itemqh!}q(h&]h']h%]h$]h,]uh-Nh.hh]qhB)q}q(hhhhhhhhFh!}q(h&]h']h%]h$]h,]uh-Kh]qcsphinx.addnodes pending_xref q)q}q(hhhhhhhU pending_xrefqh!}q(UreftypeXrefUrefwarnqU reftargetqXgenindexU refdomainXstdqh$]h%]U refexplicith&]h']h,]Urefdocqh[uh-Kh]qcdocutils.nodes emphasis q)q}q(hhh!}q(h&]h']q(UxrefqhXstd-refqeh%]h$]h,]uhhh]qh>Xgenindexqq}q(hUhhubahUemphasisqubaubaubaubh)q}q(hX:ref:`modindex`qhhhhhhh!}q(h&]h']h%]h$]h,]uh-Nh.hh]qhB)q}q(hhhhhhhhFh!}q(h&]h']h%]h$]h,]uh-Kh]qh)q}q(hhhhhhhhh!}q(UreftypeXrefhhXmodindexU refdomainXstdqh$]h%]U refexplicith&]h']h,]hh[uh-Kh]qh)q}q(hhh!}q(h&]h']q(hhXstd-refqeh%]h$]h,]uhhh]qh>Xmodindexqƅq}q(hUhhubahhubaubaubaubh)q}q(hX:ref:`search` hhhhhhh!}q(h&]h']h%]h$]h,]uh-Nh.hh]qhB)q}q(hX :ref:`search`qhhhhhhFh!}q(h&]h']h%]h$]h,]uh-K h]qh)q}q(hhhhhhhhh!}q(UreftypeXrefhhXsearchU refdomainXstdqh$]h%]U refexplicith&]h']h,]hh[uh-K h]qh)q}q(hhh!}q(h&]h']q(hhXstd-refqeh%]h$]h,]uhhh]qh>Xsearchq݅q}q(hUhhubahhubaubaubaubeubeubeubehUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh.hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationr NU halt_levelr KU strip_classesr Nh;NUerror_encoding_error_handlerr Ubackslashreplacer UdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformr U source_linkr!NUrfc_referencesr"NUoutput_encodingr#Uutf-8r$U source_urlr%NUinput_encodingr&U utf-8-sigr'U_disable_configr(NU id_prefixr)UU tab_widthr*KUerror_encodingr+UUTF-8r,U_sourcer-UC/var/build/user_builds/celery/checkouts/2.1-archived/docs/index.rstr.Ugettext_compactr/U generatorr0NUdump_internalsr1NU smart_quotesr2U pep_base_urlr3Uhttp://www.python.org/dev/peps/r4Usyntax_highlightr5Ulongr6Uinput_encoding_error_handlerr7jUauto_id_prefixr8Uidr9Udoctitle_xformr:Ustrip_elements_with_classesr;NU _config_filesr<]Ufile_insertion_enabledr=U raw_enabledr>KU dump_settingsr?NubUsymbol_footnote_startr@KUidsrA}rB(hh|hh0uUsubstitution_namesrC}rDhh.h!}rE(h&]h$]h%]Usourcehh']h,]uU footnotesrF]rGUrefidsrH}rIub.PKYDD>Ǔ /celery-2.1-archived/.doctrees/changelog.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xv210-importantqX1.0.5qNX1.0.6qNX1.0.0q NX1.0.1q NX1.0.2q NX1.0.3q NXv100-documentationq Ximportant notesqNX+can i send some tasks to only some servers?qXv103-importantqXbackward incompatible changesqNX v203-fixesqX v103-newsqXv081-importantqX0.3.3qNX0.3.0qNX0.3.1qNXsqlalchemy connection stringsqX0.3.7qNXState.freeze_whileqXvery important noteqNX version-0.8.4qX version-0.8.2qX version-0.8.3qX version-0.8.0qX version-0.8.1q Xfaqq!Xupgrading for django-usersq"NXpylibmcq#Xfixesq$NX version-0.6.0q%X django-celeryq&Xv203-documentationq'Xsemverq(X v213-fixesq)X flask-celeryq*Xversion-0.1.13q+Xv103-remote-controlq,Xversion-0.1.11q-Xversion-0.1.10q.Xversion-0.1.15q/Xversion-0.1.14q0Xv200-upgrade-databaseq1Xv200-django-upgradeq2Ximportant changesq3NX v210-newsq4Xcriticalq5NX version-1.0.6q6X version-1.0.5q7X version-1.0.4q8X version-1.0.3q9X version-1.0.2q:X version-1.0.1q;X version-1.0.0qXversion-0.3.20q?Xdatabase result backendq@NX v200-newsqAXnewsqBNX v200-upgradeqCXv080-incompatibleqDX v105-changesqEX v060-newsqFXv214-importantqGX0.3.2qHNX version-0.1.8qIX v105-criticalqJX0.1.6qKNX 0.2.0-pre1qLNX 0.2.0-pre2qMNX 0.2.0-pre3qNNXchangesqONX version-0.1.6qPX experimentalqQNX version-0.3.2qRX2.0.3qSNX2.0.2qTNX2.0.1qUNX2.0.0qVNX v100-bugsqWX v081-changesqXXv081-very-importantqYXcancel_consumerqZXv060-importantq[Xsupported databasesq\X deprecationsq]NXv200-incompatibleq^X version-0.3.1q_X version-0.3.0q`X version-0.3.3qaX0.6.0qbNX version-0.3.7qcXremote control commandsqdNX0.4.1qeNX0.4.0qfNXv210-documentationqgX sqlalchemyqhX State.freezeqiX0.8.4qjNX0.8.1qkNXupgrading for othersqlNX0.8.3qmNX0.8.2qnNXversion-0.2.0-pre1qoXversion-0.2.0-pre3qpXversion-0.2.0-pre2qqX version-0.4.0qrX version-0.4.1qsXcookbook: retrying tasksqtX v212-fixesquX0.1.14qvNX v211-newsqwXv100-deprecationsqxX State.thawqyX django-sentryqzX version-2.1.1q{X version-2.1.0q|X version-2.1.3q}X version-2.1.2q~X version-2.1.5qX version-2.1.4qXsqlalchemy connection stringqXv210-experimentalqX0.1.8qNX0.1.0qNXv080-importantqX0.2.0qNX2.1.2qNX2.1.3qNX2.1.0qNX2.1.1qNUcontentsqNX2.1.5qNXv100-incompatibleqX version-0.2.0qX0.1.7qNX2.1.4qNX v100-changesqXcache result backendqNX v103-fixesqX v211-fixesqX v214-fixesqX0.8.0qNX v080-newsqXversion-0.1.12qX v210-fixesqX0.1.12qNX0.1.13qNX0.1.10qNX0.1.11qNXv200-upgrade-cacheqX1.0.4qNX0.1.15qNX version-0.1.7qX documentationqNXv214-documentationqXbugsqNXdeprecation timelineqX0.3.20qNXchange historyqNXpython-memcachedqX version-2.0.0qX version-2.0.1qX version-2.0.2qX version-2.0.3quUsubstitution_defsq}qUparse_messagesq]q(cdocutils.nodes system_message q)q}q(U rawsourceqUUparentqcdocutils.nodes section q)q}q(hUU referencedqKhh)q}q(hUhh)q}q(hUhhUsourceqcdocutils.nodes reprunicode qXG/var/build/user_builds/celery/checkouts/2.1-archived/docs/changelog.rstqq}qbUtagnameqUsectionqU attributesq}q(Udupnamesq]Uclassesq]Ubackrefsq]Uidsq]qUchange-historyqaUnamesq]qhauUlineqKUdocumentqhUchildrenq]q(cdocutils.nodes title q)q}q(hXChange historyqhhhhhUtitleqh}q(h]h]h]h]h]uhKhhh]qcdocutils.nodes Text qXChange historyqۅq}q(hhhhubaubcdocutils.nodes topic q)q}q(hUhhhhhUtopicqh}q(h]h]q(UcontentsqUlocalqeh]h]qUcontentsqah]qhauhKhhh]qcdocutils.nodes bullet_list q)q}q(hUhhhNhU bullet_listqh}q(h]h]h]h]h]uhNhhh]q(cdocutils.nodes list_item q)q}q(hUh}q(h]h]h]h]h]uhhh]qcdocutils.nodes paragraph q)q}q(hUh}q(h]h]h]h]h]uhhh]qcdocutils.nodes reference q)q}q(hUh}q(h]qUid64qah]h]h]h]UrefidU version-2-1-5ruhhh]rhX2.1.5rr}r(hX2.1.5rhhubahU referencerubahU paragraphrubahU list_itemrubh)r }r (hUh}r (h]h]h]h]h]uhhh]r (h)r }r(hUh}r(h]h]h]h]h]uhj h]rh)r}r(hUh}r(h]rUid65rah]h]h]h]UrefidU version-2-1-4ruhj h]rhX2.1.4rr}r(hX2.1.4rhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhj h]r(h)r }r!(hUh}r"(h]h]h]h]h]uhjh]r#h)r$}r%(hUh}r&(h]h]h]h]h]uhj h]r'h)r(}r)(hUh}r*(h]r+Uid66r,ah]h]h]h]UrefidUfixesr-uhj$h]r.hXFixesr/r0}r1(hXFixesr2hj(ubahjubahjubahjubh)r3}r4(hUh}r5(h]h]h]h]h]uhjh]r6h)r7}r8(hUh}r9(h]h]h]h]h]uhj3h]r:h)r;}r<(hUh}r=(h]r>Uid67r?ah]h]h]h]UrefidU documentationr@uhj7h]rAhX DocumentationrBrC}rD(hX DocumentationrEhj;ubahjubahjubahjubehhubehjubh)rF}rG(hUh}rH(h]h]h]h]h]uhhh]rIh)rJ}rK(hUh}rL(h]h]h]h]h]uhjFh]rMh)rN}rO(hUh}rP(h]rQUid68rRah]h]h]h]UrefidU version-2-1-3rSuhjJh]rThX2.1.3rUrV}rW(hX2.1.3rXhjNubahjubahjubahjubh)rY}rZ(hUh}r[(h]h]h]h]h]uhhh]r\(h)r]}r^(hUh}r_(h]h]h]h]h]uhjYh]r`h)ra}rb(hUh}rc(h]rdUid69reah]h]h]h]UrefidU version-2-1-2rfuhj]h]rghX2.1.2rhri}rj(hX2.1.2rkhjaubahjubahjubh)rl}rm(hUh}rn(h]h]h]h]h]uhjYh]roh)rp}rq(hUh}rr(h]h]h]h]h]uhjlh]rsh)rt}ru(hUh}rv(h]h]h]h]h]uhjph]rwh)rx}ry(hUh}rz(h]r{Uid70r|ah]h]h]h]UrefidU v212-fixesr}uhjth]r~hXFixesrr}r(hXFixesrhjxubahjubahjubahjubahhubehjubh)r}r(hUh}r(h]h]h]h]h]uhhh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid71rah]h]h]h]UrefidU version-2-1-1ruhjh]rhX2.1.1rr}r(hX2.1.1rhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid72rah]h]h]h]UrefidU v211-fixesruhjh]rhXFixesrr}r(hXFixesrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid73rah]h]h]h]UrefidUnewsruhjh]rhXNewsrr}r(hXNewsrhjubahjubahjubahjubehhubehjubh)r}r(hUh}r(h]h]h]h]h]uhhh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid74rah]h]h]h]UrefidU version-2-1-0ruhjh]rhX2.1.0rr}r(hX2.1.0rhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid75rah]h]h]h]UrefidUimportant-notesruhjh]rhXImportant Notesrr}r(hXImportant Notesrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid76rah]h]h]h]UrefidU v210-newsruhjh]rhXNewsrr}r(hXNewsrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid77r ah]h]h]h]UrefidU v210-fixesr uhjh]r hXFixesr r }r(hXFixesrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid78rah]h]h]h]UrefidU experimentalruhjh]rhX Experimentalrr }r!(hX Experimentalr"hjubahjubahjubahjubh)r#}r$(hUh}r%(h]h]h]h]h]uhjh]r&h)r'}r((hUh}r)(h]h]h]h]h]uhj#h]r*h)r+}r,(hUh}r-(h]r.Uid79r/ah]h]h]h]UrefidUv210-documentationr0uhj'h]r1hX Documentationr2r3}r4(hX Documentationr5hj+ubahjubahjubahjubehhubehjubh)r6}r7(hUh}r8(h]h]h]h]h]uhhh]r9(h)r:}r;(hUh}r<(h]h]h]h]h]uhj6h]r=h)r>}r?(hUh}r@(h]rAUid80rBah]h]h]h]UrefidU version-2-0-3rCuhj:h]rDhX2.0.3rErF}rG(hX2.0.3rHhj>ubahjubahjubh)rI}rJ(hUh}rK(h]h]h]h]h]uhj6h]rL(h)rM}rN(hUh}rO(h]h]h]h]h]uhjIh]rPh)rQ}rR(hUh}rS(h]h]h]h]h]uhjMh]rTh)rU}rV(hUh}rW(h]rXUid81rYah]h]h]h]UrefidU v203-fixesrZuhjQh]r[hXFixesr\r]}r^(hXFixesr_hjUubahjubahjubahjubh)r`}ra(hUh}rb(h]h]h]h]h]uhjIh]rch)rd}re(hUh}rf(h]h]h]h]h]uhj`h]rgh)rh}ri(hUh}rj(h]rkUid82rlah]h]h]h]UrefidUv203-documentationrmuhjdh]rnhX Documentationrorp}rq(hX Documentationrrhjhubahjubahjubahjubehhubehjubh)rs}rt(hUh}ru(h]h]h]h]h]uhhh]rvh)rw}rx(hUh}ry(h]h]h]h]h]uhjsh]rzh)r{}r|(hUh}r}(h]r~Uid83rah]h]h]h]UrefidU version-2-0-2ruhjwh]rhX2.0.2rr}r(hX2.0.2rhj{ubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid84rah]h]h]h]UrefidU version-2-0-1ruhjh]rhX2.0.1rr}r(hX2.0.1rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid85rah]h]h]h]UrefidU version-2-0-0ruhjh]rhX2.0.0rr}r(hX2.0.0rhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid86rah]h]h]h]UrefidUforewordruhjh]rhXForewordrr}r(hXForewordrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid87rah]h]h]h]UrefidUupgrading-for-django-usersruhjh]rhXUpgrading for Django-usersrr}r(hXUpgrading for Django-usersrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid88rah]h]h]h]UrefidUupgrading-for-othersruhjh]rhXUpgrading for othersrr}r(hXUpgrading for othersrhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid89rah]h]h]h]UrefidUdatabase-result-backendruhjh]rhXDatabase result backendrr}r(hXDatabase result backendrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r (hUh}r (h]r Uid90r ah]h]h]h]UrefidUcache-result-backendr uhjh]rhXCache result backendrr}r(hXCache result backendrhjubahjubahjubahjubehhubehjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid91rah]h]h]h]UrefidUbackward-incompatible-changesr uhjh]r!hXBackward incompatible changesr"r#}r$(hXBackward incompatible changesr%hjubahjubahjubahjubh)r&}r'(hUh}r((h]h]h]h]h]uhjh]r)h)r*}r+(hUh}r,(h]h]h]h]h]uhj&h]r-h)r.}r/(hUh}r0(h]r1Uid92r2ah]h]h]h]UrefidU v200-newsr3uhj*h]r4hXNewsr5r6}r7(hXNewsr8hj.ubahjubahjubahjubehhubehjubh)r9}r:(hUh}r;(h]h]h]h]h]uhhh]r<h)r=}r>(hUh}r?(h]h]h]h]h]uhj9h]r@h)rA}rB(hUh}rC(h]rDUid93rEah]h]h]h]UrefidU version-1-0-6rFuhj=h]rGhX1.0.6rHrI}rJ(hX1.0.6rKhjAubahjubahjubahjubh)rL}rM(hUh}rN(h]h]h]h]h]uhhh]rO(h)rP}rQ(hUh}rR(h]h]h]h]h]uhjLh]rSh)rT}rU(hUh}rV(h]rWUid94rXah]h]h]h]UrefidU version-1-0-5rYuhjPh]rZhX1.0.5r[r\}r](hX1.0.5r^hjTubahjubahjubh)r_}r`(hUh}ra(h]h]h]h]h]uhjLh]rb(h)rc}rd(hUh}re(h]h]h]h]h]uhj_h]rfh)rg}rh(hUh}ri(h]h]h]h]h]uhjch]rjh)rk}rl(hUh}rm(h]rnUid95roah]h]h]h]UrefidUcriticalrpuhjgh]rqhXCriticalrrrs}rt(hXCriticalruhjkubahjubahjubahjubh)rv}rw(hUh}rx(h]h]h]h]h]uhj_h]ryh)rz}r{(hUh}r|(h]h]h]h]h]uhjvh]r}h)r~}r(hUh}r(h]rUid96rah]h]h]h]UrefidUchangesruhjzh]rhXChangesrr}r(hXChangesrhj~ubahjubahjubahjubehhubehjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid97rah]h]h]h]UrefidU version-1-0-4ruhjh]rhX1.0.4rr}r(hX1.0.4rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid98rah]h]h]h]UrefidU version-1-0-3ruhjh]rhX1.0.3rr}r(hX1.0.3rhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid99rah]h]h]h]UrefidUv103-importantruhjh]rhXImportant notesrr}r(hXImportant notesrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid100rah]h]h]h]UrefidU v103-newsruhjh]rhXNewsrr}r(hXNewsrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid101rah]h]h]h]UrefidUremote-control-commandsruhjh]rhXRemote control commandsrr}r(hXRemote control commandsrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid102rah]h]h]h]UrefidU v103-fixesruhjh]rhXFixesrr}r(hXFixesrhjubahjubahjubahjubehhubehjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r (h]r Uid103r ah]h]h]h]UrefidU version-1-0-2r uhjh]r hX1.0.2rr}r(hX1.0.2rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid104rah]h]h]h]UrefidU version-1-0-1ruhjh]r hX1.0.1r!r"}r#(hX1.0.1r$hjubahjubahjubahjubh)r%}r&(hUh}r'(h]h]h]h]h]uhhh]r((h)r)}r*(hUh}r+(h]h]h]h]h]uhj%h]r,h)r-}r.(hUh}r/(h]r0Uid105r1ah]h]h]h]UrefidU version-1-0-0r2uhj)h]r3hX1.0.0r4r5}r6(hX1.0.0r7hj-ubahjubahjubh)r8}r9(hUh}r:(h]h]h]h]h]uhj%h]r;(h)r<}r=(hUh}r>(h]h]h]h]h]uhj8h]r?h)r@}rA(hUh}rB(h]h]h]h]h]uhj<h]rCh)rD}rE(hUh}rF(h]rGUid106rHah]h]h]h]UrefidUv100-incompatiblerIuhj@h]rJhXBackward incompatible changesrKrL}rM(hXBackward incompatible changesrNhjDubahjubahjubahjubh)rO}rP(hUh}rQ(h]h]h]h]h]uhj8h]rRh)rS}rT(hUh}rU(h]h]h]h]h]uhjOh]rVh)rW}rX(hUh}rY(h]rZUid107r[ah]h]h]h]UrefidU deprecationsr\uhjSh]r]hX Deprecationsr^r_}r`(hX DeprecationsrahjWubahjubahjubahjubh)rb}rc(hUh}rd(h]h]h]h]h]uhj8h]reh)rf}rg(hUh}rh(h]h]h]h]h]uhjbh]rih)rj}rk(hUh}rl(h]rmUid108rnah]h]h]h]UrefidUid30rouhjfh]rphXNewsrqrr}rs(hXNewsrthjjubahjubahjubahjubh)ru}rv(hUh}rw(h]h]h]h]h]uhj8h]rxh)ry}rz(hUh}r{(h]h]h]h]h]uhjuh]r|h)r}}r~(hUh}r(h]rUid109rah]h]h]h]UrefidU v100-changesruhjyh]rhXChangesrr}r(hXChangesrhj}ubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhj8h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid110rah]h]h]h]UrefidUbugsruhjh]rhXBugsrr}r(hXBugsrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhj8h]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid111rah]h]h]h]UrefidUv100-documentationruhjh]rhX Documentationrr}r(hX Documentationrhjubahjubahjubahjubehhubehjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid112rah]h]h]h]UrefidU version-0-8-4ruhjh]rhX0.8.4rr}r(hX0.8.4rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid113rah]h]h]h]UrefidU version-0-8-3ruhjh]rhX0.8.3rr}r(hX0.8.3rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid114rah]h]h]h]UrefidU version-0-8-2ruhjh]rhX0.8.2rr}r(hX0.8.2rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid115rah]h]h]h]UrefidU version-0-8-1ruhjh]rhX0.8.1rr}r(hX0.8.1rhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]r Uid116r ah]h]h]h]UrefidUvery-important-noter uhjh]r hXVery important noter r}r(hXVery important noterhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid117rah]h]h]h]UrefidUimportant-changesruhjh]rhXImportant changesr r!}r"(hXImportant changesr#hjubahjubahjubahjubh)r$}r%(hUh}r&(h]h]h]h]h]uhjh]r'h)r(}r)(hUh}r*(h]h]h]h]h]uhj$h]r+h)r,}r-(hUh}r.(h]r/Uid118r0ah]h]h]h]UrefidU v081-changesr1uhj(h]r2hXChangesr3r4}r5(hXChangesr6hj,ubahjubahjubahjubehhubehjubh)r7}r8(hUh}r9(h]h]h]h]h]uhhh]r:(h)r;}r<(hUh}r=(h]h]h]h]h]uhj7h]r>h)r?}r@(hUh}rA(h]rBUid119rCah]h]h]h]UrefidU version-0-8-0rDuhj;h]rEhX0.8.0rFrG}rH(hX0.8.0rIhj?ubahjubahjubh)rJ}rK(hUh}rL(h]h]h]h]h]uhj7h]rM(h)rN}rO(hUh}rP(h]h]h]h]h]uhjJh]rQh)rR}rS(hUh}rT(h]h]h]h]h]uhjNh]rUh)rV}rW(hUh}rX(h]rYUid120rZah]h]h]h]UrefidUv080-incompatibler[uhjRh]r\hXBackward incompatible changesr]r^}r_(hXBackward incompatible changesr`hjVubahjubahjubahjubh)ra}rb(hUh}rc(h]h]h]h]h]uhjJh]rdh)re}rf(hUh}rg(h]h]h]h]h]uhjah]rhh)ri}rj(hUh}rk(h]rlUid121rmah]h]h]h]UrefidUv080-importantrnuhjeh]rohXImportant changesrprq}rr(hXImportant changesrshjiubahjubahjubahjubh)rt}ru(hUh}rv(h]h]h]h]h]uhjJh]rwh)rx}ry(hUh}rz(h]h]h]h]h]uhjth]r{h)r|}r}(hUh}r~(h]rUid122rah]h]h]h]UrefidU v080-newsruhjxh]rhXNewsrr}r(hXNewsrhj|ubahjubahjubahjubehhubehjubh)r}r(hUh}r(h]h]h]h]h]uhhh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid123rah]h]h]h]UrefidU version-0-6-0ruhjh]rhX0.6.0rr}r(hX0.6.0rhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid124rah]h]h]h]UrefidUv060-importantruhjh]rhXImportant changesrr}r(hXImportant changesrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid125rah]h]h]h]UrefidU v060-newsruhjh]rhXNewsrr}r(hXNewsrhjubahjubahjubahjubehhubehjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid126rah]h]h]h]UrefidU version-0-4-1ruhjh]rhX0.4.1rr}r(hX0.4.1rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid127rah]h]h]h]UrefidU version-0-4-0ruhjh]rhX0.4.0rr}r(hX0.4.0rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid128rah]h]h]h]UrefidUversion-0-3-20ruhjh]rhX0.3.20rr}r(hX0.3.20rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid129r ah]h]h]h]UrefidU version-0-3-7r uhjh]r hX0.3.7r r }r(hX0.3.7rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid130rah]h]h]h]UrefidU version-0-3-3ruhjh]rhX0.3.3rr }r!(hX0.3.3r"hjubahjubahjubahjubh)r#}r$(hUh}r%(h]h]h]h]h]uhhh]r&h)r'}r((hUh}r)(h]h]h]h]h]uhj#h]r*h)r+}r,(hUh}r-(h]r.Uid131r/ah]h]h]h]UrefidU version-0-3-2r0uhj'h]r1hX0.3.2r2r3}r4(hX0.3.2r5hj+ubahjubahjubahjubh)r6}r7(hUh}r8(h]h]h]h]h]uhhh]r9h)r:}r;(hUh}r<(h]h]h]h]h]uhj6h]r=h)r>}r?(hUh}r@(h]rAUid132rBah]h]h]h]UrefidU version-0-3-1rCuhj:h]rDhX0.3.1rErF}rG(hX0.3.1rHhj>ubahjubahjubahjubh)rI}rJ(hUh}rK(h]h]h]h]h]uhhh]rLh)rM}rN(hUh}rO(h]h]h]h]h]uhjIh]rPh)rQ}rR(hUh}rS(h]rTUid133rUah]h]h]h]UrefidU version-0-3-0rVuhjMh]rWhX0.3.0rXrY}rZ(hX0.3.0r[hjQubahjubahjubahjubh)r\}r](hUh}r^(h]h]h]h]h]uhhh]r_h)r`}ra(hUh}rb(h]h]h]h]h]uhj\h]rch)rd}re(hUh}rf(h]rgUid134rhah]h]h]h]UrefidU version-0-2-0riuhj`h]rjhX0.2.0rkrl}rm(hX0.2.0rnhjdubahjubahjubahjubh)ro}rp(hUh}rq(h]h]h]h]h]uhhh]rrh)rs}rt(hUh}ru(h]h]h]h]h]uhjoh]rvh)rw}rx(hUh}ry(h]rzUid135r{ah]h]h]h]UrefidUpre3r|uhjsh]r}hX 0.2.0-pre3r~r}r(hX 0.2.0-pre3rhjwubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid136rah]h]h]h]UrefidUpre2ruhjh]rhX 0.2.0-pre2rr}r(hX 0.2.0-pre2rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid137rah]h]h]h]UrefidUpre1ruhjh]rhX 0.2.0-pre1rr}r(hX 0.2.0-pre1rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid138rah]h]h]h]UrefidUversion-0-1-15ruhjh]rhX0.1.15rr}r(hX0.1.15rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid139rah]h]h]h]UrefidUversion-0-1-14ruhjh]rhX0.1.14rr}r(hX0.1.14rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid140rah]h]h]h]UrefidUversion-0-1-13ruhjh]rhX0.1.13rr}r(hX0.1.13rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid141rah]h]h]h]UrefidUversion-0-1-12ruhjh]rhX0.1.12rr}r(hX0.1.12rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid142rah]h]h]h]UrefidUversion-0-1-11ruhjh]rhX0.1.11rr}r(hX0.1.11rhjubahjubahjubahjubh)r}r(hUh}r (h]h]h]h]h]uhhh]r h)r }r (hUh}r (h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid143rah]h]h]h]UrefidUversion-0-1-10ruhj h]rhX0.1.10rr}r(hX0.1.10rhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r (h]h]h]h]h]uhjh]r!h)r"}r#(hUh}r$(h]r%Uid144r&ah]h]h]h]UrefidU version-0-1-8r'uhjh]r(hX0.1.8r)r*}r+(hX0.1.8r,hj"ubahjubahjubahjubh)r-}r.(hUh}r/(h]h]h]h]h]uhhh]r0h)r1}r2(hUh}r3(h]h]h]h]h]uhj-h]r4h)r5}r6(hUh}r7(h]r8Uid145r9ah]h]h]h]UrefidU version-0-1-7r:uhj1h]r;hX0.1.7r<r=}r>(hX0.1.7r?hj5ubahjubahjubahjubh)r@}rA(hUh}rB(h]h]h]h]h]uhhh]rCh)rD}rE(hUh}rF(h]h]h]h]h]uhj@h]rGh)rH}rI(hUh}rJ(h]rKUid146rLah]h]h]h]UrefidU version-0-1-6rMuhjDh]rNhX0.1.6rOrP}rQ(hX0.1.6rRhjHubahjubahjubahjubh)rS}rT(hUh}rU(h]h]h]h]h]uhhh]rVh)rW}rX(hUh}rY(h]h]h]h]h]uhjSh]rZh)r[}r\(hUh}r](h]r^Uid147r_ah]h]h]h]UrefidU version-0-1-0r`uhjWh]rahX0.1.0rbrc}rd(hX0.1.0rehj[ubahjubahjubahjubeubaubcdocutils.nodes target rf)rg}rh(hX.. _version-2.1.5:hhhhhUtargetrih}rj(h]h]h]h]h]UrefidrkjuhKhhh]ubh)rl}rm(hUhhhhUexpect_referenced_by_namern}rohjgshhh}rp(h]h]h]h]rq(jUid1rreh]rs(hheuhK hhUexpect_referenced_by_idrt}rujjgsh]rv(h)rw}rx(hjhjlhhhhh}ry(h]h]h]h]h]jkhuhK hhh]rzhX2.1.5r{r|}r}(hjhjwubaubh)r~}r(hUhjlhhhhh}r(UbulletrX*h]h]h]h]h]uhKhhh]rh)r}r(hXIn 2.2 remote control commands are not persistent anymore. There is now a new setting you can use to disable persistence in 2.1 as well: the :setting:`CELERY_BROADCAST_PERSISTENT` setting. This setting will not have any effect in 2.2. hj~hhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXIn 2.2 remote control commands are not persistent anymore. There is now a new setting you can use to disable persistence in 2.1 as well: the :setting:`CELERY_BROADCAST_PERSISTENT` setting.hjhhhjh}r(h]h]h]h]h]uhKh]r(hXIn 2.2 remote control commands are not persistent anymore. There is now a new setting you can use to disable persistence in 2.1 as well: the rr}r(hXIn 2.2 remote control commands are not persistent anymore. There is now a new setting you can use to disable persistence in 2.1 as well: the hjubcsphinx.addnodes pending_xref r)r}r(hX&:setting:`CELERY_BROADCAST_PERSISTENT`rhjhhhU pending_xrefrh}r(UreftypeXsettingUrefwarnrU reftargetrXCELERY_BROADCAST_PERSISTENTU refdomainXstdrh]h]U refexplicith]h]h]UrefdocrX changelogruhKh]rcdocutils.nodes literal r)r}r(hjh}r(h]h]r(UxrefrjX std-settingreh]h]h]uhjh]rhXCELERY_BROADCAST_PERSISTENTrr}r(hUhjubahUliteralrubaubhX setting.rr}r(hX setting.hjubeubcdocutils.nodes block_quote r)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX-This setting will not have any effect in 2.2.rhjhhhjh}r(h]h]h]h]h]uhKh]rhX-This setting will not have any effect in 2.2.rr}r(hjhjubaubahU block_quoterubeubaubjf)r}r(hX.. _version-2.1.4:hjlhhhjih}r(h]h]h]h]h]jkjuhKhhh]ubeubh)r}r(hUhhhhjn}rhjshhh}r(h]h]h]h]r(jUid2reh]r(hheuhKhhjt}rjjsh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]jkjuhKhhh]rhX2.1.4rr}r(hjhjubaubcdocutils.nodes field_list r)r}r(hUhjhhhU field_listrh}r(h]h]h]h]h]uhKhhh]rcdocutils.nodes field r)r}r(hUhjhhhUfieldrh}r(h]h]h]h]h]uhKhhh]r(cdocutils.nodes field_name r)r}r(hX release-daterh}r(h]h]h]h]h]uhjh]rhX release-daterr}r(hjhjubahU field_namerubcdocutils.nodes field_body r)r}r(hX2010-12-03 12:00 PM CEST h}r(h]h]h]h]h]uhjh]rh)r}r(hX2010-12-03 12:00 PM CESTrhjhhhjh}r(h]h]h]h]h]uhKh]rhX2010-12-03 12:00 PM CESTrr}r(hjhjubaubahU field_bodyrubeubaubjf)r}r(hX.. _v214-important:hjhhhjih}r(h]h]h]h]h]jkUv214-importantruhKhhh]ubh)r}r(hUhjhhjn}rhGjshhh}r(jX*h]rjah]h]h]h]rhGauhKhhjt}rjjsh]rh)r}r(hX4Celery programs now hijacks the root logger by default (Issue #250). In 2.1 logging behavior was changed to not configure logging if it was already configured. The problem is that some libraries does not play nice and hijack the root logger, or use `logging.basicConfig` -- resulting in users not getting any output or logs. So instead we now always hijack the root logger, but if you want the previous behavior you can disable the :setting:`CELERYD_HIJACK_ROOT_LOGGER` setting: .. code-block:: python CELERYD_HIJACK_ROOT_LOGGER = False hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXDCelery programs now hijacks the root logger by default (Issue #250).hjhhhjh}r(h]h]h]h]h]uhKh]r(hX>Celery programs now hijacks the root logger by default (Issue rr}r(hUhjubj)r}r(hUh}r(UreftypeXissuerU trackerconfigcsphinxcontrib.issuetracker TrackerConfig r XCeleryr Nr }r bU reftargetX250r h]h]h]h]h]uhjh]rcdocutils.nodes inline r)r}r(hX#250h}r(h]h]r(Xxrefrjeh]h]h]uhjh]rhX#250rr}r(hUhjubahUinlinerubahjubhX).rr}r(hUhjubeubj)r}r(hUh}r(h]h]h]h]h]uhjh]r (h)r!}r"(hXIn 2.1 logging behavior was changed to not configure logging if it was already configured. The problem is that some libraries does not play nice and hijack the root logger, or use `logging.basicConfig` -- resulting in users not getting any output or logs.hjhhhjh}r#(h]h]h]h]h]uhKh]r$(hXIn 2.1 logging behavior was changed to not configure logging if it was already configured. The problem is that some libraries does not play nice and hijack the root logger, or use r%r&}r'(hXIn 2.1 logging behavior was changed to not configure logging if it was already configured. The problem is that some libraries does not play nice and hijack the root logger, or use hj!ubcdocutils.nodes title_reference r()r)}r*(hX`logging.basicConfig`h}r+(h]h]h]h]h]uhj!h]r,hXlogging.basicConfigr-r.}r/(hUhj)ubahUtitle_referencer0ubhX6 -- resulting in users not getting any output or logs.r1r2}r3(hX6 -- resulting in users not getting any output or logs.hj!ubeubh)r4}r5(hXSo instead we now always hijack the root logger, but if you want the previous behavior you can disable the :setting:`CELERYD_HIJACK_ROOT_LOGGER` setting:hjhhhjh}r6(h]h]h]h]h]uhK#h]r7(hXkSo instead we now always hijack the root logger, but if you want the previous behavior you can disable the r8r9}r:(hXkSo instead we now always hijack the root logger, but if you want the previous behavior you can disable the hj4ubj)r;}r<(hX%:setting:`CELERYD_HIJACK_ROOT_LOGGER`r=hj4hhhjh}r>(UreftypeXsettingjjXCELERYD_HIJACK_ROOT_LOGGERU refdomainXstdr?h]h]U refexplicith]h]h]jjuhK#h]r@j)rA}rB(hj=h}rC(h]h]rD(jj?X std-settingrEeh]h]h]uhj;h]rFhXCELERYD_HIJACK_ROOT_LOGGERrGrH}rI(hUhjAubahjubaubhX setting:rJrK}rL(hX setting:hj4ubeubcdocutils.nodes literal_block rM)rN}rO(hX"CELERYD_HIJACK_ROOT_LOGGER = FalsehjhhhU literal_blockrPh}rQ(UlinenosrRUlanguagerSXpythonU xml:spacerTUpreserverUh]h]h]h]h]uhK'h]rVhX"CELERYD_HIJACK_ROOT_LOGGER = FalserWrX}rY(hUhjNubaubehjubeubaubjf)rZ}r[(hX.. _v214-fixes:hjhhhjih}r\(h]h]h]h]h]jkU v214-fixesr]uhK+hhh]ubh)r^}r_(hUhKhjhhjn}r`hjZshhh}ra(h]rbXfixesrcah]h]h]rd(j-j]eh]rehauhK.hhjt}rfj]jZsh]rg(h)rh}ri(hj2hj^hhhhh}rj(h]h]h]h]h]jkj,uhK.hhh]rkhXFixesrlrm}rn(hj2hjhubaubh)ro}rp(hUhj^hhhhh}rq(jX*h]h]h]h]h]uhK0hhh]rr(h)rs}rt(hXExecution options to `apply_async` now takes precedence over options returned by active routers. This was a regression introduced recently (Issue #244). hjohhhjh}ru(h]h]h]h]h]uhNhhh]rvh)rw}rx(hXExecution options to `apply_async` now takes precedence over options returned by active routers. This was a regression introduced recently (Issue #244).hjshhhjh}ry(h]h]h]h]h]uhK0h]rz(hXExecution options to r{r|}r}(hXExecution options to hjwubj()r~}r(hX `apply_async`h}r(h]h]h]h]h]uhjwh]rhX apply_asyncrr}r(hUhj~ubahj0ubhXq now takes precedence over options returned by active routers. This was a regression introduced recently (Issue rr}r(hUhjwubj)r}r(hUh}r(UreftypejU trackerconfigj U reftargetX244rh]h]h]h]h]uhjwh]rj)r}r(hX#244h}r(h]h]r(jjeh]h]h]uhjh]rhX#244rr}r(hUhjubahjubahjubhX).rr}r(hUhjwubeubaubh)r}r(hX~`celeryev` curses monitor: Long arguments are now truncated so curses doesn't crash with out of bounds errors. (Issue #235). hjohhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hX}`celeryev` curses monitor: Long arguments are now truncated so curses doesn't crash with out of bounds errors. (Issue #235).hjhhhjh}r(h]h]h]h]h]uhK4h]r(j()r}r(hX `celeryev`h}r(h]h]h]h]h]uhjh]rhXceleryevrr}r(hUhjubahj0ubhXm curses monitor: Long arguments are now truncated so curses doesn't crash with out of bounds errors. (Issue rr}r(hUhjubj)r}r(hUh}r(UreftypejU trackerconfigj U reftargetX235rh]h]h]h]h]uhjh]rj)r}r(hX#235h}r(h]h]r(jjeh]h]h]uhjh]rhX#235rr}r(hUhjubahjubahjubhX).rr}r(hUhjubeubaubh)r}r(hX`celeryd`: Channel errors occurring while handling control commands no longer crash the worker but are instead logged with severity error. hjohhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hX`celeryd`: Channel errors occurring while handling control commands no longer crash the worker but are instead logged with severity error.hjhhhjh}r(h]h]h]h]h]uhK7h]r(j()r}r(hX `celeryd`h}r(h]h]h]h]h]uhjh]rhXcelerydrr}r(hUhjubahj0ubhX: Channel errors occurring while handling control commands no longer crash the worker but are instead logged with severity error.rr}r(hX: Channel errors occurring while handling control commands no longer crash the worker but are instead logged with severity error.hjubeubaubh)r}r(hXSQLAlchemy database backend: Fixed a race condition occurring when the client wrote the pending state. Just like the Django database backend, it does no longer save the pending state (Issue #261 + Issue #262). hjohhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXSQLAlchemy database backend: Fixed a race condition occurring when the client wrote the pending state. Just like the Django database backend, it does no longer save the pending state (Issue #261 + Issue #262).hjhhhjh}r(h]h]h]h]h]uhK:h]r(hXSQLAlchemy database backend: Fixed a race condition occurring when the client wrote the pending state. Just like the Django database backend, it does no longer save the pending state (Issue rr}r(hUhjubj)r}r(hUh}r(UreftypejU trackerconfigj U reftargetX261rh]h]h]h]h]uhjh]rj)r}r(hX#261h}r(h]h]r(jjeh]h]h]uhjh]rhX#261rr}r(hUhjubahjubahjubhX + Issue rr}r(hUhjubj)r}r(hUh}r(UreftypejU trackerconfigj U reftargetX262rh]h]h]h]h]uhjh]rj)r}r(hX#262h}r(h]h]r(jjeh]h]h]uhjh]rhX#262rr}r(hUhjubahjubahjubhX).rr}r(hUhjubeubaubh)r}r(hXx`task.apply`: `propagate=True` now raises exceptions from the original frame, keeping the same stacktrace (Issue #256). hjohhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXw`task.apply`: `propagate=True` now raises exceptions from the original frame, keeping the same stacktrace (Issue #256).hjhhhjh}r(h]h]h]h]h]uhK>h]r(j()r}r (hX `task.apply`h}r (h]h]h]h]h]uhjh]r hX task.applyr r }r (hUhjubahj0ubhX: r r }r (hX: hjubj()r }r (hX`propagate=True`h}r (h]h]h]h]h]uhjh]r hXpropagate=Truer r }r (hUhj ubahj0ubhXS now raises exceptions from the original frame, keeping the same stacktrace (Issue r r }r (hUhjubj)r }r (hUh}r (UreftypejU trackerconfigj U reftargetX256r h]h]h]h]h]uhjh]r j)r }r (hX#256h}r (h]h]r (jjeh]h]h]uhj h]r hX#256r r }r (hUhj ubahjubahjubhX).r r! }r" (hUhjubeubaubh)r# }r$ (hXError email body now uses `repr(exception)` instead of `str(exception)`, as the latter could result in Unicode decode errors (Issue #245). hjohhhjh}r% (h]h]h]h]h]uhNhhh]r& h)r' }r( (hXError email body now uses `repr(exception)` instead of `str(exception)`, as the latter could result in Unicode decode errors (Issue #245).hj# hhhjh}r) (h]h]h]h]h]uhKAh]r* (hXError email body now uses r+ r, }r- (hXError email body now uses hj' ubj()r. }r/ (hX`repr(exception)`h}r0 (h]h]h]h]h]uhj' h]r1 hXrepr(exception)r2 r3 }r4 (hUhj. ubahj0ubhX instead of r5 r6 }r7 (hX instead of hj' ubj()r8 }r9 (hX`str(exception)`h}r: (h]h]h]h]h]uhj' h]r; hXstr(exception)r< r= }r> (hUhj8 ubahj0ubhX=, as the latter could result in Unicode decode errors (Issue r? r@ }rA (hUhj' ubj)rB }rC (hUh}rD (UreftypejU trackerconfigj U reftargetX245rE h]h]h]h]h]uhj' h]rF j)rG }rH (hX#245h}rI (h]h]rJ (jjeh]h]h]uhjB h]rK hX#245rL rM }rN (hUhjG ubahjubahjubhX).rO rP }rQ (hUhj' ubeubaubh)rR }rS (hX^Error e-mail timeout value is now configurable by using the :setting:`EMAIL_TIMEOUT` setting. hjohhhjh}rT (h]h]h]h]h]uhNhhh]rU h)rV }rW (hX]Error e-mail timeout value is now configurable by using the :setting:`EMAIL_TIMEOUT` setting.hjR hhhjh}rX (h]h]h]h]h]uhKDh]rY (hX<Error e-mail timeout value is now configurable by using the rZ r[ }r\ (hX<Error e-mail timeout value is now configurable by using the hjV ubj)r] }r^ (hX:setting:`EMAIL_TIMEOUT`r_ hjV hhhjh}r` (UreftypeXsettingjjX EMAIL_TIMEOUTU refdomainXstdra h]h]U refexplicith]h]h]jjuhKDh]rb j)rc }rd (hj_ h}re (h]h]rf (jja X std-settingrg eh]h]h]uhj] h]rh hX EMAIL_TIMEOUTri rj }rk (hUhjc ubahjubaubhX setting.rl rm }rn (hX setting.hjV ubeubaubh)ro }rp (hX\`celeryev`: Now works on Windows (but the curses monitor won't work without having curses). hjohhhjh}rq (h]h]h]h]h]uhNhhh]rr h)rs }rt (hX[`celeryev`: Now works on Windows (but the curses monitor won't work without having curses).hjo hhhjh}ru (h]h]h]h]h]uhKGh]rv (j()rw }rx (hX `celeryev`h}ry (h]h]h]h]h]uhjs h]rz hXceleryevr{ r| }r} (hUhjw ubahj0ubhXQ: Now works on Windows (but the curses monitor won't work without having curses).r~ r }r (hXQ: Now works on Windows (but the curses monitor won't work without having curses).hjs ubeubaubh)r }r (hX:Unit test output no longer emits non-standard characters. hjohhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hX9Unit test output no longer emits non-standard characters.r hj hhhjh}r (h]h]h]h]h]uhKJh]r hX9Unit test output no longer emits non-standard characters.r r }r (hj hj ubaubaubh)r }r (hXL`celeryd`: The broadcast consumer is now closed if the connection is reset. hjohhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hXK`celeryd`: The broadcast consumer is now closed if the connection is reset.hj hhhjh}r (h]h]h]h]h]uhKLh]r (j()r }r (hX `celeryd`h}r (h]h]h]h]h]uhj h]r hXcelerydr r }r (hUhj ubahj0ubhXB: The broadcast consumer is now closed if the connection is reset.r r }r (hXB: The broadcast consumer is now closed if the connection is reset.hj ubeubaubh)r }r (hXZ`celeryd`: Now properly handles errors occurring while trying to acknowledge the message. hjohhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hXY`celeryd`: Now properly handles errors occurring while trying to acknowledge the message.hj hhhjh}r (h]h]h]h]h]uhKNh]r (j()r }r (hX `celeryd`h}r (h]h]h]h]h]uhj h]r hXcelerydr r }r (hUhj ubahj0ubhXP: Now properly handles errors occurring while trying to acknowledge the message.r r }r (hXP: Now properly handles errors occurring while trying to acknowledge the message.hj ubeubaubh)r }r (hXHappy holidays :) hjohhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hXHappy holidays :)r hj hhhjh}r (h]h]h]h]h]uhKQh]r hXHappy holidays :)r r }r (hj hj ubaubaubeubjf)r }r (hX.. _v214-documentation:hj^hhhjih}r (h]h]h]h]h]jkUv214-documentationr uhKShhh]ubeubh)r }r (hUhKhjhhjn}r hj shhh}r (h]r X documentationr ah]h]h]r (j@j eh]r hauhKVhhjt}r j j sh]r (h)r }r (hjEhj hhhhh}r (h]h]h]h]h]jkj?uhKVhhh]r hX Documentationr r }r (hjEhj ubaubh)r }r (hUhj hhhhh}r (jX*h]h]h]h]h]uhKXhhh]r (h)r }r (hXAdding :ref:`contributing`. hj hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hXAdding :ref:`contributing`.hj hhhjh}r (h]h]h]h]h]uhKXh]r (hXAdding r r }r (hXAdding hj ubj)r }r (hX:ref:`contributing`r hj hhhjh}r (UreftypeXrefjjX contributingU refdomainXstdr h]h]U refexplicith]h]h]jjuhKXh]r cdocutils.nodes emphasis r )r }r (hj h}r (h]h]r (jj Xstd-refr eh]h]h]uhj h]r hX contributingr r }r (hUhj ubahUemphasisr ubaubhX.r }r (hX.hj ubeubaubh)r }r (hXAdded :ref:`guide-optimizing`. hj hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hXAdded :ref:`guide-optimizing`.hj hhhjh}r (h]h]h]h]h]uhKZh]r (hXAdded r r }r (hXAdded hj ubj)r }r (hX:ref:`guide-optimizing`r hj hhhjh}r (UreftypeXrefjjXguide-optimizingU refdomainXstdr h]h]U refexplicith]h]h]jjuhKZh]r j )r }r (hj h}r (h]h]r (jj Xstd-refr eh]h]h]uhj h]r hXguide-optimizingr r }r (hUhj ubahj ubaubhX.r }r (hX.hj ubeubaubh)r }r (hX.Added :ref:`faq-security` section to the FAQ. hj hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hX-Added :ref:`faq-security` section to the FAQ.hj hhhjh}r (h]h]h]h]h]uhK\h]r (hXAdded r r }r (hXAdded hj ubj)r }r (hX:ref:`faq-security`r hj hhhjh}r (UreftypeXrefjjX faq-securityU refdomainXstdr h]h]U refexplicith]h]h]jjuhK\h]r j )r! }r" (hj h}r# (h]h]r$ (jj Xstd-refr% eh]h]h]uhj h]r& hX faq-securityr' r( }r) (hUhj! ubahj ubaubhX section to the FAQ.r* r+ }r, (hX section to the FAQ.hj ubeubaubh)r- }r. (hXLPeriodic Task User Guide: Fixed typo in crontab example table (Issue #239). hj hhhjh}r/ (h]h]h]h]h]uhNhhh]r0 h)r1 }r2 (hXKPeriodic Task User Guide: Fixed typo in crontab example table (Issue #239).hj- hhhjh}r3 (h]h]h]h]h]uhK^h]r4 (hXEPeriodic Task User Guide: Fixed typo in crontab example table (Issue r5 r6 }r7 (hUhj1 ubj)r8 }r9 (hUh}r: (UreftypejU trackerconfigj U reftargetX239r; h]h]h]h]h]uhj1 h]r< j)r= }r> (hX#239h}r? (h]h]r@ (jjeh]h]h]uhj8 h]rA hX#239rB rC }rD (hUhj= ubahjubahjubhX).rE rF }rG (hUhj1 ubeubaubeubjf)rH }rI (hX.. _version-2.1.3:hj hhhjih}rJ (h]h]h]h]h]jkjSuhK`hhh]ubeubeubh)rK }rL (hUhhhhjn}rM h}jH shhh}rN (h]h]h]h]rO (jSUid3rP eh]rQ (hh}euhKchhjt}rR jSjH sh]rS (h)rT }rU (hjXhjK hhhhh}rV (h]h]h]h]h]jkjRuhKchhh]rW hX2.1.3rX rY }rZ (hjXhjT ubaubj)r[ }r\ (hUhjK hhhjh}r] (h]h]h]h]h]uhKdhhh]r^ j)r_ }r` (hUhj[ hhhjh}ra (h]h]h]h]h]uhKdhhh]rb (j)rc }rd (hX release-datere h}rf (h]h]h]h]h]uhj_ h]rg hX release-daterh ri }rj (hje hjc ubahjubj)rk }rl (hX2010-11-09 17:00 PM CEST h}rm (h]h]h]h]h]uhj_ h]rn h)ro }rp (hX2010-11-09 17:00 PM CESTrq hjk hhhjh}rr (h]h]h]h]h]uhKdh]rs hX2010-11-09 17:00 PM CESTrt ru }rv (hjq hjo ubaubahjubeubaubjf)rw }rx (hX.. _v213-fixes:hjK hhhjih}ry (h]h]h]h]h]jkU v213-fixesrz uhKfhhh]ubh)r{ }r| (hUhjK hhjn}r} h)jw shhh}r~ (jX*h]r jz ah]h]h]h]r h)auhKhhhjt}r jz jw sh]r (h)r }r (hXUFixed deadlocks in `timer2` which could lead to `djcelerymon`/`celeryev -c` hanging. hj{ hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hXTFixed deadlocks in `timer2` which could lead to `djcelerymon`/`celeryev -c` hanging.hj hhhjh}r (h]h]h]h]h]uhKhh]r (hXFixed deadlocks in r r }r (hXFixed deadlocks in hj ubj()r }r (hX`timer2`h}r (h]h]h]h]h]uhj h]r hXtimer2r r }r (hUhj ubahj0ubhX which could lead to r r }r (hX which could lead to hj ubj()r }r (hX `djcelerymon`h}r (h]h]h]h]h]uhj h]r hX djcelerymonr r }r (hUhj ubahj0ubhX/r }r (hX/hj ubj()r }r (hX `celeryev -c`h}r (h]h]h]h]h]uhj h]r hX celeryev -cr r }r (hUhj ubahj0ubhX hanging.r r }r (hX hanging.hj ubeubaubh)r }r (hX`EventReceiver`: now sends heartbeat request to find workers. This means :program:`celeryev` and friends finds workers immediately at startup. hj{ hhhjh}r (h]h]h]h]h]uhNhhh]r (h)r }r (hX=`EventReceiver`: now sends heartbeat request to find workers.hj hhhjh}r (h]h]h]h]h]uhKkh]r (j()r }r (hX`EventReceiver`h}r (h]h]h]h]h]uhj h]r hX EventReceiverr r }r (hUhj ubahj0ubhX.: now sends heartbeat request to find workers.r r }r (hX.: now sends heartbeat request to find workers.hj ubeubj)r }r (hUh}r (h]h]h]h]h]uhj h]r h)r }r (hXPThis means :program:`celeryev` and friends finds workers immediately at startup.hj hhhjh}r (h]h]h]h]h]uhKmh]r (hX This means r r }r (hX This means hj ubcdocutils.nodes strong r )r }r (hX:program:`celeryev`h}r (h]h]r Uprogramr ah]h]h]uhj h]r hXceleryevr r }r (hUhj ubahUstrongr ubhX2 and friends finds workers immediately at startup.r r }r (hX2 and friends finds workers immediately at startup.hj ubeubahjubeubh)r }r (hXRceleryev cursesmon: Set screen_delay to 10ms, so the screen refreshes more often. hj{ hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hXQceleryev cursesmon: Set screen_delay to 10ms, so the screen refreshes more often.r hj hhhjh}r (h]h]h]h]h]uhKph]r hXQceleryev cursesmon: Set screen_delay to 10ms, so the screen refreshes more often.r r }r (hj hj ubaubaubh)r }r (hXSFixed pickling errors when pickling :class:`AsyncResult` on older Python versions. hj{ hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hXRFixed pickling errors when pickling :class:`AsyncResult` on older Python versions.hj hhhjh}r (h]h]h]h]h]uhKsh]r (hX$Fixed pickling errors when pickling r r }r (hX$Fixed pickling errors when pickling hj ubj)r }r (hX:class:`AsyncResult`r hj hhhjh}r (UreftypeXclassjjX AsyncResultU refdomainXpyr h]h]U refexplicith]h]h]jjUpy:classr NU py:moduler NuhKsh]r j)r }r (hj h}r (h]h]r (jj Xpy-classr eh]h]h]uhj h]r hX AsyncResultr r }r (hUhj ubahjubaubhX on older Python versions.r r }r (hX on older Python versions.hj ubeubaubh)r }r (hXcceleryd: prefetch count was decremented by eta tasks even if there were no active prefetch limits. hj{ hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hXbceleryd: prefetch count was decremented by eta tasks even if there were no active prefetch limits.r hj hhhjh}r (h]h]h]h]h]uhKvh]r hXbceleryd: prefetch count was decremented by eta tasks even if there were no active prefetch limits.r r }r (hj hj ubaubaubeubjf)r }r (hX.. _version-2.1.2:hjK hhhjih}r (h]h]h]h]h]jkjfuhKyhhh]ubeubhh)r }r (hUhhhhjn}r h{jf)r }r (hX.. _version-2.1.1:hhhhhjih}r (h]h]h]h]h]jkjuhKhhh]ubshhh}r (h]h]h]h]r (jUid6r eh]r (hh{euhKhhjt}r jj sh]r (h)r }r (hjhj hhhhh}r (h]h]h]h]h]jkjuhKhhh]r hX2.1.1r r! }r" (hjhj ubaubj)r# }r$ (hUhj hhhjh}r% (h]h]h]h]h]uhKhhh]r& j)r' }r( (hUhj# hhhjh}r) (h]h]h]h]h]uhKhhh]r* (j)r+ }r, (hX release-dater- h}r. (h]h]h]h]h]uhj' h]r/ hX release-dater0 r1 }r2 (hj- hj+ ubahjubj)r3 }r4 (hX2010-10-14 14:00 PM CEST h}r5 (h]h]h]h]h]uhj' h]r6 h)r7 }r8 (hX2010-10-14 14:00 PM CESTr9 hj3 hhhjh}r: (h]h]h]h]h]uhKh]r; hX2010-10-14 14:00 PM CESTr< r= }r> (hj9 hj7 ubaubahjubeubaubjf)r? }r@ (hX.. _v211-fixes:hj hhhjih}rA (h]h]h]h]h]jkjuhKhhh]ubh)rB }rC (hUhKhj hhjn}rD hj? shhh}rE (h]rF XfixesrG ah]h]h]rH (jUid7rI eh]rJ hauhKhhjt}rK jj? sh]rL (h)rM }rN (hjhjB hhhhh}rO (h]h]h]h]h]jkjuhKhhh]rP hXFixesrQ rR }rS (hjhjM ubaubh)rT }rU (hUhjB hhhhh}rV (jX*h]h]h]h]h]uhKhhh]rW (h)rX }rY (hXKNow working on Windows again. Removed dependency on the pwd/grp modules. hjT hhhjh}rZ (h]h]h]h]h]uhNhhh]r[ (h)r\ }r] (hXNow working on Windows again.r^ hjX hhhjh}r_ (h]h]h]h]h]uhKh]r` hXNow working on Windows again.ra rb }rc (hj^ hj\ ubaubj)rd }re (hUh}rf (h]h]h]h]h]uhjX h]rg h)rh }ri (hX*Removed dependency on the pwd/grp modules.rj hjd hhhjh}rk (h]h]h]h]h]uhKh]rl hX*Removed dependency on the pwd/grp modules.rm rn }ro (hjj hjh ubaubahjubeubh)rp }rq (hX;snapshots: Fixed race condition leading to loss of events. hjT hhhjh}rr (h]h]h]h]h]uhNhhh]rs h)rt }ru (hX:snapshots: Fixed race condition leading to loss of events.rv hjp hhhjh}rw (h]h]h]h]h]uhKh]rx hX:snapshots: Fixed race condition leading to loss of events.ry rz }r{ (hjv hjt ubaubaubh)r| }r} (hX^celeryd: Reject tasks with an eta that cannot be converted to a time stamp. See issue #209 hjT hhhjh}r~ (h]h]h]h]h]uhNhhh]r (h)r }r (hXKceleryd: Reject tasks with an eta that cannot be converted to a time stamp.r hj| hhhjh}r (h]h]h]h]h]uhKh]r hXKceleryd: Reject tasks with an eta that cannot be converted to a time stamp.r r }r (hj hj ubaubj)r }r (hUh}r (h]h]h]h]h]uhj| h]r h)r }r (hXSee issue #209hj hhhjh}r (h]h]h]h]h]uhKh]r (hX See issue r r }r (hUhj ubj)r }r (hUh}r (UreftypejU trackerconfigj U reftargetX209r h]h]h]h]h]uhj h]r j)r }r (hX#209h}r (h]h]r (jjeh]h]h]uhj h]r hX#209r r }r (hUhj ubahjubahjubeubahjubeubh)r }r (hXconcurrency.processes.pool: The semaphore was released twice for each task (both at ACK and result ready). This has been fixed, and it is now released only once per task. hjT hhhjh}r (h]h]h]h]h]uhNhhh]r (h)r }r (hXjconcurrency.processes.pool: The semaphore was released twice for each task (both at ACK and result ready).r hj hhhjh}r (h]h]h]h]h]uhKh]r hXjconcurrency.processes.pool: The semaphore was released twice for each task (both at ACK and result ready).r r }r (hj hj ubaubj)r }r (hUh}r (h]h]h]h]h]uhj h]r h)r }r (hX?This has been fixed, and it is now released only once per task.r hj hhhjh}r (h]h]h]h]h]uhKh]r hX?This has been fixed, and it is now released only once per task.r r }r (hj hj ubaubahjubeubh)r }r (hX~docs/configuration: Fixed typo ``CELERYD_SOFT_TASK_TIME_LIMIT`` -> :setting:`CELERYD_TASK_SOFT_TIME_LIMIT`. See issue #214 hjT hhhjh}r (h]h]h]h]h]uhNhhh]r (h)r }r (hXkdocs/configuration: Fixed typo ``CELERYD_SOFT_TASK_TIME_LIMIT`` -> :setting:`CELERYD_TASK_SOFT_TIME_LIMIT`.hj hhhjh}r (h]h]h]h]h]uhKh]r (hXdocs/configuration: Fixed typo r r }r (hXdocs/configuration: Fixed typo hj ubj)r }r (hX ``CELERYD_SOFT_TASK_TIME_LIMIT``h}r (h]h]h]h]h]uhj h]r hXCELERYD_SOFT_TASK_TIME_LIMITr r }r (hUhj ubahjubhX -> r r }r (hX -> hj ubj)r }r (hX':setting:`CELERYD_TASK_SOFT_TIME_LIMIT`r hj hhhjh}r (UreftypeXsettingjjXCELERYD_TASK_SOFT_TIME_LIMITU refdomainXstdr h]h]U refexplicith]h]h]jjuhKh]r j)r }r (hj h}r (h]h]r (jj X std-settingr eh]h]h]uhj h]r hXCELERYD_TASK_SOFT_TIME_LIMITr r }r (hUhj ubahjubaubhX.r }r (hX.hj ubeubj)r }r (hUh}r (h]h]h]h]h]uhj h]r h)r }r (hXSee issue #214hj hhhjh}r (h]h]h]h]h]uhKh]r (hX See issue r r }r (hUhj ubj)r }r (hUh}r (UreftypejU trackerconfigj U reftargetX214r h]h]h]h]h]uhj h]r j)r }r (hX#214h}r (h]h]r (jjeh]h]h]uhj h]r hX#214r r }r (hUhj ubahjubahjubeubahjubeubh)r }r (hXBcontrol command ``dump_scheduled``: was using old .info attribute hjT hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hXAcontrol command ``dump_scheduled``: was using old .info attributehj hhhjh}r (h]h]h]h]h]uhKh]r (hXcontrol command r r }r (hXcontrol command hj ubj)r }r (hX``dump_scheduled``h}r (h]h]h]h]h]uhj h]r hXdump_scheduledr r }r (hUhj ubahjubhX: was using old .info attributer r }r (hX: was using old .info attributehj ubeubaubh)r }r (hXn:program:`celeryd-multi`: Fixed ``set changed size during iteration`` bug occurring in the restart command. hjT hNhjh}r (h]h]h]h]h]uhNhhh]r cdocutils.nodes definition_list r )r }r (hUh}r (h]h]h]h]h]uhj h]r cdocutils.nodes definition_list_item r )r }r (hXl:program:`celeryd-multi`: Fixed ``set changed size during iteration`` bug occurring in the restart command. hj hhhUdefinition_list_itemr h}r (h]h]h]h]h]uhKh]r (cdocutils.nodes term r )r }r (hXI:program:`celeryd-multi`: Fixed ``set changed size during iteration`` bughj hhhUtermr h}r (h]h]h]h]h]uhKh]r (j )r }r! (hX:program:`celeryd-multi`h}r" (h]h]r# j ah]h]h]uhj h]r$ hX celeryd-multir% r& }r' (hUhj ubahj ubhX: Fixed r( r) }r* (hX: Fixed hj ubj)r+ }r, (hX%``set changed size during iteration``h}r- (h]h]h]h]h]uhj h]r. hX!set changed size during iterationr/ r0 }r1 (hUhj+ ubahjubhX bugr2 r3 }r4 (hX bughj ubeubcdocutils.nodes definition r5 )r6 }r7 (hUh}r8 (h]h]h]h]h]uhj h]r9 h)r: }r; (hX!occurring in the restart command.r< hj6 hhhjh}r= (h]h]h]h]h]uhKh]r> hX!occurring in the restart command.r? r@ }rA (hj< hj: ubaubahU definitionrB ubeubahUdefinition_listrC ubaubh)rD }rE (hXceleryd: Accidentally tried to use additional command line arguments. This would lead to an error like: ``got multiple values for keyword argument 'concurrency'``. Additional command line arguments are now ignored, and does not produce this error. However -- we do reserve the right to use positional arguments in the future, so please do not depend on this behavior. hjT hhhjh}rF (h]h]h]h]h]uhNhhh]rG (h)rH }rI (hXEceleryd: Accidentally tried to use additional command line arguments.rJ hjD hhhjh}rK (h]h]h]h]h]uhKh]rL hXEceleryd: Accidentally tried to use additional command line arguments.rM rN }rO (hjJ hjH ubaubj)rP }rQ (hUh}rR (h]h]h]h]h]uhjD h]rS (h)rT }rU (hX!This would lead to an error like:rV hjP hhhjh}rW (h]h]h]h]h]uhKh]rX hX!This would lead to an error like:rY rZ }r[ (hjV hjT ubaubj)r\ }r] (hUh}r^ (h]h]h]h]h]uhjP h]r_ (h)r` }ra (hX;``got multiple values for keyword argument 'concurrency'``.hj\ hhhjh}rb (h]h]h]h]h]uhKh]rc (j)rd }re (hX:``got multiple values for keyword argument 'concurrency'``h}rf (h]h]h]h]h]uhj` h]rg hX6got multiple values for keyword argument 'concurrency'rh ri }rj (hUhjd ubahjubhX.rk }rl (hX.hj` ubeubh)rm }rn (hXAdditional command line arguments are now ignored, and does not produce this error. However -- we do reserve the right to use positional arguments in the future, so please do not depend on this behavior.ro hj\ hhhjh}rp (h]h]h]h]h]uhKh]rq hXAdditional command line arguments are now ignored, and does not produce this error. However -- we do reserve the right to use positional arguments in the future, so please do not depend on this behavior.rr rs }rt (hjo hjm ubaubehjubehjubeubh)ru }rv (hXCcelerybeat: Now respects routers and task execution options again. hjT hhhjh}rw (h]h]h]h]h]uhNhhh]rx h)ry }rz (hXBcelerybeat: Now respects routers and task execution options again.r{ hju hhhjh}r| (h]h]h]h]h]uhKh]r} hXBcelerybeat: Now respects routers and task execution options again.r~ r }r (hj{ hjy ubaubaubh)r }r (hX@celerybeat: Now reuses the publisher instead of the connection. hjT hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hX?celerybeat: Now reuses the publisher instead of the connection.r hj hhhjh}r (h]h]h]h]h]uhKh]r hX?celerybeat: Now reuses the publisher instead of the connection.r r }r (hj hj ubaubaubh)r }r (hXCache result backend: Using :class:`float` as the expires argument to ``cache.set`` is deprecated by the memcached libraries, so we now automatically cast to :class:`int`. hjT hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hXCache result backend: Using :class:`float` as the expires argument to ``cache.set`` is deprecated by the memcached libraries, so we now automatically cast to :class:`int`.hj hhhjh}r (h]h]h]h]h]uhKh]r (hXCache result backend: Using r r }r (hXCache result backend: Using hj ubj)r }r (hX:class:`float`r hj hhhjh}r (UreftypeXclassjjXfloatU refdomainXpyr h]h]U refexplicith]h]h]jjj Nj NuhKh]r j)r }r (hj h}r (h]h]r (jj Xpy-classr eh]h]h]uhj h]r hXfloatr r }r (hUhj ubahjubaubhX as the expires argument to r r }r (hX as the expires argument to hj ubj)r }r (hX ``cache.set``h}r (h]h]h]h]h]uhj h]r hX cache.setr r }r (hUhj ubahjubhXK is deprecated by the memcached libraries, so we now automatically cast to r r }r (hXK is deprecated by the memcached libraries, so we now automatically cast to hj ubj)r }r (hX :class:`int`r hj hhhjh}r (UreftypeXclassjjXintU refdomainXpyr h]h]U refexplicith]h]h]jjj Nj NuhKh]r j)r }r (hj h}r (h]h]r (jj Xpy-classr eh]h]h]uhj h]r hXintr r }r (hUhj ubahjubaubhX.r }r (hX.hj ubeubaubh)r }r (hXAunit tests: No longer emits logging and warnings in test output. hjT hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hX@unit tests: No longer emits logging and warnings in test output.r hj hhhjh}r (h]h]h]h]h]uhKh]r hX@unit tests: No longer emits logging and warnings in test output.r r }r (hj hj ubaubaubeubjf)r }r (hX.. _v211-news:hjB hhhjih}r (h]h]h]h]h]jkU v211-newsr uhMhhh]ubeubh)r }r (hUhKhj hhjn}r hwj shhh}r (h]r Xnewsr ah]h]h]r (jj eh]r hwauhMhhjt}r j j sh]r (h)r }r (hjhj hhhhh}r (h]h]h]h]h]jkjuhMhhh]r hXNewsr r }r (hjhj ubaubh)r }r (hUhj hhhhh}r (jX*h]h]h]h]h]uhMhhh]r (h)r }r (hX&Now depends on carrot version 0.10.7. hj hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hX%Now depends on carrot version 0.10.7.r hj hhhjh}r (h]h]h]h]h]uhMh]r hX%Now depends on carrot version 0.10.7.r r }r (hj hj ubaubaubh)r }r (hXAdded :setting:`CELERY_REDIRECT_STDOUTS`, and :setting:`CELERYD_REDIRECT_STDOUTS_LEVEL` settings. :setting:`CELERY_REDIRECT_STDOUTS` is used by :program:`celeryd` and :program:`celerybeat`. All output to ``stdout`` and ``stderr`` will be redirected to the current logger if enabled. :setting:`CELERY_REDIRECT_STDOUTS_LEVEL` decides the log level used and is :const:`WARNING` by default. hj hhhjh}r (h]h]h]h]h]uhNhhh]r (h)r }r (hXaAdded :setting:`CELERY_REDIRECT_STDOUTS`, and :setting:`CELERYD_REDIRECT_STDOUTS_LEVEL` settings.hj hhhjh}r (h]h]h]h]h]uhMh]r (hXAdded r r }r (hXAdded hj ubj)r }r (hX":setting:`CELERY_REDIRECT_STDOUTS`r hj hhhjh}r (UreftypeXsettingjjXCELERY_REDIRECT_STDOUTSU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r j)r }r (hj h}r (h]h]r (jj X std-settingr eh]h]h]uhj h]r hXCELERY_REDIRECT_STDOUTSr r }r (hUhj ubahjubaubhX, and r r }r (hX, and hj ubj)r }r (hX):setting:`CELERYD_REDIRECT_STDOUTS_LEVEL`r hj hhhjh}r (UreftypeXsettingjjXCELERYD_REDIRECT_STDOUTS_LEVELU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r j)r }r (hj h}r (h]h]r (jj X std-settingr eh]h]h]uhj h]r hXCELERYD_REDIRECT_STDOUTS_LEVELr r }r! (hUhj ubahjubaubhX settings.r" r# }r$ (hX settings.hj ubeubj)r% }r& (hUh}r' (h]h]h]h]h]uhj h]r( (h)r) }r* (hX:setting:`CELERY_REDIRECT_STDOUTS` is used by :program:`celeryd` and :program:`celerybeat`. All output to ``stdout`` and ``stderr`` will be redirected to the current logger if enabled.hj% hhhjh}r+ (h]h]h]h]h]uhM h]r, (j)r- }r. (hX":setting:`CELERY_REDIRECT_STDOUTS`r/ hj) hhhjh}r0 (UreftypeXsettingjjXCELERY_REDIRECT_STDOUTSU refdomainXstdr1 h]h]U refexplicith]h]h]jjuhM h]r2 j)r3 }r4 (hj/ h}r5 (h]h]r6 (jj1 X std-settingr7 eh]h]h]uhj- h]r8 hXCELERY_REDIRECT_STDOUTSr9 r: }r; (hUhj3 ubahjubaubhX is used by r< r= }r> (hX is used by hj) ubj )r? }r@ (hX:program:`celeryd`h}rA (h]h]rB j ah]h]h]uhj) h]rC hXcelerydrD rE }rF (hUhj? ubahj ubhX and rG rH }rI (hX and hj) ubj )rJ }rK (hX:program:`celerybeat`h}rL (h]h]rM j ah]h]h]uhj) h]rN hX celerybeatrO rP }rQ (hUhjJ ubahj ubhX. All output to rR rS }rT (hX. All output to hj) ubj)rU }rV (hX ``stdout``h}rW (h]h]h]h]h]uhj) h]rX hXstdoutrY rZ }r[ (hUhjU ubahjubhX and r\ r] }r^ (hX and hj) ubj)r_ }r` (hX ``stderr``h}ra (h]h]h]h]h]uhj) h]rb hXstderrrc rd }re (hUhj_ ubahjubhX5 will be redirected to the current logger if enabled.rf rg }rh (hX5 will be redirected to the current logger if enabled.hj) ubeubh)ri }rj (hXg:setting:`CELERY_REDIRECT_STDOUTS_LEVEL` decides the log level used and is :const:`WARNING` by default.hj% hhhjh}rk (h]h]h]h]h]uhMh]rl (j)rm }rn (hX(:setting:`CELERY_REDIRECT_STDOUTS_LEVEL`ro hji hhhjh}rp (UreftypeXsettingjjXCELERY_REDIRECT_STDOUTS_LEVELU refdomainXstdrq h]h]U refexplicith]h]h]jjuhMh]rr j)rs }rt (hjo h}ru (h]h]rv (jjq X std-settingrw eh]h]h]uhjm h]rx hXCELERY_REDIRECT_STDOUTS_LEVELry rz }r{ (hUhjs ubahjubaubhX# decides the log level used and is r| r} }r~ (hX# decides the log level used and is hji ubj)r }r (hX:const:`WARNING`r hji hhhjh}r (UreftypeXconstjjXWARNINGU refdomainXpyr h]h]U refexplicith]h]h]jjj Nj NuhMh]r j)r }r (hj h}r (h]h]r (jj Xpy-constr eh]h]h]uhj h]r hXWARNINGr r }r (hUhj ubahjubaubhX by default.r r }r (hX by default.hji ubeubehjubeubh)r }r (hXAdded :setting:`CELERYBEAT_SCHEDULER` setting. This setting is used to define the default for the -S option to :program:`celerybeat`. Example: .. code-block:: python CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler" hj hhhjh}r (h]h]h]h]h]uhNhhh]r (h)r }r (hX.Added :setting:`CELERYBEAT_SCHEDULER` setting.hj hhhjh}r (h]h]h]h]h]uhMh]r (hXAdded r r }r (hXAdded hj ubj)r }r (hX:setting:`CELERYBEAT_SCHEDULER`r hj hhhjh}r (UreftypeXsettingjjXCELERYBEAT_SCHEDULERU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r j)r }r (hj h}r (h]h]r (jj X std-settingr eh]h]h]uhj h]r hXCELERYBEAT_SCHEDULERr r }r (hUhj ubahjubaubhX setting.r r }r (hX setting.hj ubeubj)r }r (hUh}r (h]h]h]h]h]uhj h]r (h)r }r (hXVThis setting is used to define the default for the -S option to :program:`celerybeat`.hj hhhjh}r (h]h]h]h]h]uhMh]r (hX@This setting is used to define the default for the -S option to r r }r (hX@This setting is used to define the default for the -S option to hj ubj )r }r (hX:program:`celerybeat`h}r (h]h]r j ah]h]h]uhj h]r hX celerybeatr r }r (hUhj ubahj ubhX.r }r (hX.hj ubeubh)r }r (hXExample:r hj hhhjh}r (h]h]h]h]h]uhMh]r hXExample:r r }r (hj hj ubaubjM)r }r (hX>CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"hj hhhjPh}r (jRjSXpythonjTjUh]h]h]h]h]uhMh]r hX>CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"r r }r (hUhj ubaubehjubeubh)r }r (hX?Added Task.expires: Used to set default expiry time for tasks. hj hhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r (hX>Added Task.expires: Used to set default expiry time for tasks.r hj hhhjh}r (h]h]h]h]h]uhMh]r hX>Added Task.expires: Used to set default expiry time for tasks.r r }r (hj hj ubaubaubh)r }r (hXNew remote control commands: ``add_consumer`` and ``cancel_consumer``. .. method:: add_consumer(queue, exchange, exchange_type, routing_key, **options) :module: Tells the worker to declare and consume from the specified declaration. .. method:: cancel_consumer(queue_name) :module: Tells the worker to stop consuming from queue (by queue name). Commands also added to :program:`celeryctl` and :class:`~celery.task.control.inspect`. Example using celeryctl to start consuming from queue "queue", in exchange "exchange", of type "direct" using binding key "key":: $ celeryctl inspect add_consumer queue exchange direct key $ celeryctl inspect cancel_consumer queue See :ref:`monitoring-celeryctl` for more information about the :program:`celeryctl` program. Another example using :class:`~celery.task.control.inspect`: .. code-block:: python >>> from celery.task.control import inspect >>> inspect.add_consumer(queue="queue", exchange="exchange", ... exchange_type="direct", ... routing_key="key", ... durable=False, ... auto_delete=True) >>> inspect.cancel_consumer("queue") hj hhhjh}r (h]h]h]h]h]uhNhhh]r (h)r }r (hXFNew remote control commands: ``add_consumer`` and ``cancel_consumer``.hj hhhjh}r (h]h]h]h]h]uhMh]r (hXNew remote control commands: r r }r (hXNew remote control commands: hj ubj)r }r (hX``add_consumer``h}r (h]h]h]h]h]uhj h]r hX add_consumerr r }r (hUhj ubahjubhX and r r }r (hX and hj ubj)r }r (hX``cancel_consumer``h}r (h]h]h]h]h]uhj h]r hXcancel_consumerr r }r (hUhj ubahjubhX.r }r (hX.hj ubeubj)r }r (hUh}r (h]h]h]h]h]uhj h]r (csphinx.addnodes index r)r}r(hUh}r(h]h]h]h]h]Uentries]uhj h]hUindexrubcsphinx.addnodes desc r)r}r(hUhj hUdescrh}r (Unoindexr Udomainr Xpyh]h]h]h]h]Uobjtyper Xmethodr Udesctyperj uhhh]r(csphinx.addnodes desc_signature r)r}r(hX9add_consumer(queue, exchange, exchange_type, routing_key,rhjhhhUdesc_signaturerh}r(h]h]h]h]h]UfirstruhNhhh]rcsphinx.addnodes desc_name r)r}r(hjhjhhhU desc_namerh}r(h]h]h]h]h]uhNhhh]rhX9add_consumer(queue, exchange, exchange_type, routing_key,rr}r (hUhjubaubaubj)r!}r"(hX **options)r#hjhhhjh}r$(h]h]h]h]h]juhNhhh]r%j)r&}r'(hj#hj!hhhjh}r((h]h]h]h]h]uhNhhh]r)hX **options)r*r+}r,(hUhj&ubaubaubcsphinx.addnodes desc_content r-)r.}r/(hUhjhhhU desc_contentr0h}r1(h]h]h]h]h]uhNhhh]r2h)r3}r4(hXGTells the worker to declare and consume from the specified declaration.r5hj.hhhjh}r6(h]h]h]h]h]uhM$hhh]r7hXGTells the worker to declare and consume from the specified declaration.r8r9}r:(hj5hj3ubaubaubeubj)r;}r<(hUh}r=(h]h]h]h]h]Uentries]r>(Usingler?Xcancel_consumer()hZUtr@auhj h]hjubj)rA}rB(hUhj hjh}rC(j j Xpyh]h]h]h]h]j XmethodrDjjDuhhh]rE(j)rF}rG(hXcancel_consumer(queue_name)hjAhhhjh}rH(h]rIhZaUmodulerJXh]h]h]h]rKhZaUfullnamerLhZUclassrMUjuhNhhh]rN(j)rO}rP(hhZhjFhhhjh}rQ(h]h]h]h]h]uhNhhh]rRhXcancel_consumerrSrT}rU(hUhjOubaubcsphinx.addnodes desc_parameterlist rV)rW}rX(hUhjFhhhUdesc_parameterlistrYh}rZ(h]h]h]h]h]uhNhhh]r[csphinx.addnodes desc_parameter r\)r]}r^(hX queue_nameh}r_(h]h]h]h]h]uhjWh]r`hX queue_namerarb}rc(hUhj]ubahUdesc_parameterrdubaubeubj-)re}rf(hUhjAhhhj0h}rg(h]h]h]h]h]uhNhhh]rhh)ri}rj(hX>Tells the worker to stop consuming from queue (by queue name).rkhjehhhjh}rl(h]h]h]h]h]uhM*hhh]rmhX>Tells the worker to stop consuming from queue (by queue name).rnro}rp(hjkhjiubaubaubeubh)rq}rr(hXVCommands also added to :program:`celeryctl` and :class:`~celery.task.control.inspect`.hj hhhjh}rs(h]h]h]h]h]uhM-h]rt(hXCommands also added to rurv}rw(hXCommands also added to hjqubj )rx}ry(hX:program:`celeryctl`h}rz(h]h]r{j ah]h]h]uhjqh]r|hX celeryctlr}r~}r(hUhjxubahj ubhX and rr}r(hX and hjqubj)r}r(hX%:class:`~celery.task.control.inspect`rhjqhhhjh}r(UreftypeXclassjjXcelery.task.control.inspectU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhM-h]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhXinspectrr}r(hUhjubahjubaubhX.r}r(hX.hjqubeubh)r}r(hXExample using celeryctl to start consuming from queue "queue", in exchange "exchange", of type "direct" using binding key "key"::hj hhhjh}r(h]h]h]h]h]uhM1h]rhXExample using celeryctl to start consuming from queue "queue", in exchange "exchange", of type "direct" using binding key "key":rr}r(hXExample using celeryctl to start consuming from queue "queue", in exchange "exchange", of type "direct" using binding key "key":hjubaubjM)r}r(hXd$ celeryctl inspect add_consumer queue exchange direct key $ celeryctl inspect cancel_consumer queuehj hjPh}r(jTjUh]h]h]h]h]uhM4h]rhXd$ celeryctl inspect add_consumer queue exchange direct key $ celeryctl inspect cancel_consumer queuerr}r(hUhjubaubh)r}r(hX\See :ref:`monitoring-celeryctl` for more information about the :program:`celeryctl` program.hj hhhjh}r(h]h]h]h]h]uhM7h]r(hXSee rr}r(hXSee hjubj)r}r(hX:ref:`monitoring-celeryctl`rhjhhhjh}r(UreftypeXrefjjXmonitoring-celeryctlU refdomainXstdrh]h]U refexplicith]h]h]jjuhM7h]rj )r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhXmonitoring-celeryctlrr}r(hUhjubahj ubaubhX for more information about the rr}r(hX for more information about the hjubj )r}r(hX:program:`celeryctl`h}r(h]h]rj ah]h]h]uhjh]rhX celeryctlrr}r(hUhjubahj ubhX program.rr}r(hX program.hjubeubh)r}r(hX<Another example using :class:`~celery.task.control.inspect`:hj hhhjh}r(h]h]h]h]h]uhM;h]r(hXAnother example using rr}r(hXAnother example using hjubj)r}r(hX%:class:`~celery.task.control.inspect`rhjhhhjh}r(UreftypeXclassjjXcelery.task.control.inspectU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhM;h]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhXinspectrr}r(hUhjubahjubaubhX:r}r(hX:hjubeubjM)r}r(hX>>>> from celery.task.control import inspect >>> inspect.add_consumer(queue="queue", exchange="exchange", ... exchange_type="direct", ... routing_key="key", ... durable=False, ... auto_delete=True) >>> inspect.cancel_consumer("queue")hj hhhjPh}r(jRjSXpythonjTjUh]h]h]h]h]uhM=h]rhX>>>> from celery.task.control import inspect >>> inspect.add_consumer(queue="queue", exchange="exchange", ... exchange_type="direct", ... routing_key="key", ... durable=False, ... auto_delete=True) >>> inspect.cancel_consumer("queue")rr}r(hUhjubaubehjubeubh)r}r(hX?celerybeat: Now logs the traceback if a message can't be sent. hj hhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hX>celerybeat: Now logs the traceback if a message can't be sent.rhjhhhjh}r(h]h]h]h]h]uhMHh]rhX>celerybeat: Now logs the traceback if a message can't be sent.rr}r(hjhjubaubaubh)r}r(hX@celerybeat: Now enables a default socket timeout of 30 seconds. hj hhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hX?celerybeat: Now enables a default socket timeout of 30 seconds.rhjhhhjh}r(h]h]h]h]h]uhMJh]rhX?celerybeat: Now enables a default socket timeout of 30 seconds.rr}r(hjhjubaubaubh)r}r(hX=README/introduction/homepage: Added link to `Flask-Celery`_. hj hhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hX<README/introduction/homepage: Added link to `Flask-Celery`_.hjhhhjh}r(h]h]h]h]h]uhMLh]r(hX,README/introduction/homepage: Added link to rr}r(hX,README/introduction/homepage: Added link to hjubh)r}r (hX`Flask-Celery`_Uresolvedr Khjhjh}r (UnameX Flask-CeleryUrefurir X"http://github.com/ask/flask-celeryr h]h]h]h]h]uh]rhX Flask-Celeryrr}r(hUhjubaubhX.r}r(hX.hjubeubaubeubjf)r}r(hX6.. _`Flask-Celery`: http://github.com/ask/flask-celeryhKhj hhhjih}r(j j h]rU flask-celeryrah]h]h]h]rh*auhMNhhh]ubjf)r}r(hX.. _version-2.1.0:hj hhhjih}r(h]h]h]h]h]jkjuhMRhhh]ubeubeubh)r}r(hUhhhhjn}rh|jshhh}r (h]h]h]h]r!(jUid8r"eh]r#(hh|euhMUhhjt}r$jjsh]r%(h)r&}r'(hjhjhhhhh}r((h]h]h]h]h]jkjuhMUhhh]r)hX2.1.0r*r+}r,(hjhj&ubaubj)r-}r.(hUhjhhhjh}r/(h]h]h]h]h]uhMVhhh]r0j)r1}r2(hUhj-hhhjh}r3(h]h]h]h]h]uhMVhhh]r4(j)r5}r6(hX release-dater7h}r8(h]h]h]h]h]uhj1h]r9hX release-dater:r;}r<(hj7hj5ubahjubj)r=}r>(hX2010-10-08 12:00 PM CEST h}r?(h]h]h]h]h]uhj1h]r@h)rA}rB(hX2010-10-08 12:00 PM CESTrChj=hhhjh}rD(h]h]h]h]h]uhMVh]rEhX2010-10-08 12:00 PM CESTrFrG}rH(hjChjAubaubahjubeubaubjf)rI}rJ(hX.. _v210-important:hjhhhjih}rK(h]h]h]h]h]jkUv210-importantrLuhMXhhh]ubh)rM}rN(hUhKhjhhjn}rOhjIshhh}rP(h]rQXimportant notesrRah]h]h]rS(jjLeh]rThauhM[hhjt}rUjLjIsh]rV(h)rW}rX(hjhjMhhhhh}rY(h]h]h]h]h]jkjuhM[hhh]rZhXImportant Notesr[r\}r](hjhjWubaubh)r^}r_(hUhjMhhhhh}r`(jX*h]h]h]h]h]uhM]hhh]rah)rb}rc(hXCelery is now following the versioning semantics defined by `semver`_. This means we are no longer allowed to use odd/even versioning semantics By our previous versioning scheme this stable release should have been version 2.2. hj^hhhjh}rd(h]h]h]h]h]uhNhhh]re(h)rf}rg(hXFCelery is now following the versioning semantics defined by `semver`_.hjbhhhjh}rh(h]h]h]h]h]uhM]h]ri(hX<Celery is now following the versioning semantics defined by rjrk}rl(hX<Celery is now following the versioning semantics defined by hjfubh)rm}rn(hX `semver`_j Khjfhjh}ro(UnameXsemverrpj Xhttp://semver.orgrqh]h]h]h]h]uh]rrhXsemverrsrt}ru(hUhjmubaubhX.rv}rw(hX.hjfubeubj)rx}ry(hUh}rz(h]h]h]h]h]uhjbh]r{h)r|}r}(hXThis means we are no longer allowed to use odd/even versioning semantics By our previous versioning scheme this stable release should have been version 2.2.r~hjxhhhjh}r(h]h]h]h]h]uhM_h]rhXThis means we are no longer allowed to use odd/even versioning semantics By our previous versioning scheme this stable release should have been version 2.2.rr}r(hj~hj|ubaubahjubeubaubjf)r}r(hX.. _`semver`: http://semver.orghKhjMhhhjih}r(j jqh]rUsemverrah]h]h]h]rh(auhMchhh]ubh)r}r(hUhjMhhhhh}r(jX*h]h]h]h]h]uhMehhh]r(h)r}r(hXNow depends on Carrot 0.10.7. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXNow depends on Carrot 0.10.7.rhjhhhjh}r(h]h]h]h]h]uhMeh]rhXNow depends on Carrot 0.10.7.rr}r(hjhjubaubaubh)r}r(hXoNo longer depends on SQLAlchemy, this needs to be installed separately if the database result backend is used. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXnNo longer depends on SQLAlchemy, this needs to be installed separately if the database result backend is used.rhjhhhjh}r(h]h]h]h]h]uhMgh]rhXnNo longer depends on SQLAlchemy, this needs to be installed separately if the database result backend is used.rr}r(hjhjubaubaubh)r}r(hXdjango-celery now comes with a monitor for the Django Admin interface. This can also be used if you're not a Django user. See :ref:`monitoring-django-admin` and :ref:`monitoring-nodjango` for more information. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXdjango-celery now comes with a monitor for the Django Admin interface. This can also be used if you're not a Django user. See :ref:`monitoring-django-admin` and :ref:`monitoring-nodjango` for more information.hjhhhjh}r(h]h]h]h]h]uhMjh]r(hXdjango-celery now comes with a monitor for the Django Admin interface. This can also be used if you're not a Django user. See rr}r(hXdjango-celery now comes with a monitor for the Django Admin interface. This can also be used if you're not a Django user. See hjubj)r}r(hX:ref:`monitoring-django-admin`rhjhhhjh}r(UreftypeXrefjjXmonitoring-django-adminU refdomainXstdrh]h]U refexplicith]h]h]jjuhMjh]rj )r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhXmonitoring-django-adminrr}r(hUhjubahj ubaubhX and rr}r(hX and hjubj)r}r(hX:ref:`monitoring-nodjango`rhjhhhjh}r(UreftypeXrefjjXmonitoring-nodjangoU refdomainXstdrh]h]U refexplicith]h]h]jjuhMjh]rj )r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhXmonitoring-nodjangorr}r(hUhjubahj ubaubhX for more information.rr}r(hX for more information.hjubeubaubh)r}r(hXIf you get an error after upgrading saying: ``AttributeError: 'module' object has no attribute 'system'``, Then this is because the ``celery.platform`` module has been renamed to ``celery.platforms`` to not collide with the built-in :mod:`platform` module. You have to remove the old :file:`platform.py` (and maybe :file:`platform.pyc`) file from your previous Celery installation. To do this use :program:`python` to find the location of this module:: $ python >>> import celery.platform >>> celery.platform Here the compiled module is in :file:`/opt/devel/celery/celery/`, to remove the offending files do:: $ rm -f /opt/devel/celery/celery/platform.py* hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXjIf you get an error after upgrading saying: ``AttributeError: 'module' object has no attribute 'system'``,hjhhhjh}r(h]h]h]h]h]uhMnh]r(hX,If you get an error after upgrading saying: rr}r(hX,If you get an error after upgrading saying: hjubj)r}r(hX=``AttributeError: 'module' object has no attribute 'system'``h}r(h]h]h]h]h]uhjh]rhX9AttributeError: 'module' object has no attribute 'system'rr}r(hUhjubahjubhX,r}r(hX,hjubeubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hXThen this is because the ``celery.platform`` module has been renamed to ``celery.platforms`` to not collide with the built-in :mod:`platform` module.hjhhhjh}r(h]h]h]h]h]uhMqh]r(hXThen this is because the rr}r(hXThen this is because the hjubj)r}r(hX``celery.platform``h}r(h]h]h]h]h]uhjh]rhXcelery.platformrr}r(hUhjubahjubhX module has been renamed to rr}r(hX module has been renamed to hjubj)r}r(hX``celery.platforms``h}r(h]h]h]h]h]uhjh]rhXcelery.platformsrr}r(hUhjubahjubhX" to not collide with the built-in rr}r(hX" to not collide with the built-in hjubj)r}r (hX:mod:`platform`r hjhhhjh}r (UreftypeXmodjjXplatformU refdomainXpyr h]h]U refexplicith]h]h]jjj Nj NuhMqh]r j)r}r(hj h}r(h]h]r(jj Xpy-modreh]h]h]uhjh]rhXplatformrr}r(hUhjubahjubaubhX module.rr}r(hX module.hjubeubh)r}r(hX|You have to remove the old :file:`platform.py` (and maybe :file:`platform.pyc`) file from your previous Celery installation.hjhhhjh}r(h]h]h]h]h]uhMuh]r(hXYou have to remove the old rr}r (hXYou have to remove the old hjubj)r!}r"(hUh}r#(h]h]h]h]r$Xfiler%aUrolej%h]uhjh]r&hX platform.pyr'r(}r)(hX platform.pyhj!ubahjubhX (and maybe r*r+}r,(hX (and maybe hjubj)r-}r.(hUh}r/(h]h]h]h]r0Xfiler1aUrolej1h]uhjh]r2hX platform.pycr3r4}r5(hX platform.pychj-ubahjubhX.) file from your previous Celery installation.r6r7}r8(hX.) file from your previous Celery installation.hjubeubh)r9}r:(hXFTo do this use :program:`python` to find the location of this module::hjhhhjh}r;(h]h]h]h]h]uhMxh]r<(hXTo do this use r=r>}r?(hXTo do this use hj9ubj )r@}rA(hX:program:`python`h}rB(h]h]rCj ah]h]h]uhj9h]rDhXpythonrErF}rG(hUhj@ubahj ubhX% to find the location of this module:rHrI}rJ(hX% to find the location of this module:hj9ubeubjM)rK}rL(hX$ python >>> import celery.platform >>> celery.platform hjhjPh}rM(jTjUh]h]h]h]h]uhM{h]rNhX$ python >>> import celery.platform >>> celery.platform rOrP}rQ(hUhjKubaubh)rR}rS(hXdHere the compiled module is in :file:`/opt/devel/celery/celery/`, to remove the offending files do::hjhhhjh}rT(h]h]h]h]h]uhMh]rU(hXHere the compiled module is in rVrW}rX(hXHere the compiled module is in hjRubj)rY}rZ(hUh}r[(h]h]h]h]r\Xfiler]aUrolej]h]uhjRh]r^hX/opt/devel/celery/celery/r_r`}ra(hX/opt/devel/celery/celery/hjYubahjubhX#, to remove the offending files do:rbrc}rd(hX#, to remove the offending files do:hjRubeubjM)re}rf(hX-$ rm -f /opt/devel/celery/celery/platform.py*hjhjPh}rg(jTjUh]h]h]h]h]uhMh]rhhX-$ rm -f /opt/devel/celery/celery/platform.py*rirj}rk(hUhjeubaubehjubeubeubjf)rl}rm(hX.. _v210-news:hjMhhhjih}rn(h]h]h]h]h]jkjuhMhhh]ubeubh)ro}rp(hUhKhjhhjn}rqh4jlshhh}rr(h]rsj ah]h]h]rt(jUid9rueh]rvh4auhMhhjt}rwjjlsh]rx(h)ry}rz(hjhjohhhhh}r{(h]h]h]h]h]jkjuhMhhh]r|hXNewsr}r~}r(hjhjyubaubh)r}r(hUhjohhhhh}r(jX*h]h]h]h]h]uhMhhh]r(h)r}r(hX`Added support for expiration of AMQP results (requires RabbitMQ 2.1.0) The new configuration option :setting:`CELERY_AMQP_TASK_RESULT_EXPIRES` sets the expiry time in seconds (can be int or float): .. code-block:: python CELERY_AMQP_TASK_RESULT_EXPIRES = 30 * 60 # 30 minutes. CELERY_AMQP_TASK_RESULT_EXPIRES = 0.80 # 800 ms. hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXFAdded support for expiration of AMQP results (requires RabbitMQ 2.1.0)rhjhhhjh}r(h]h]h]h]h]uhMh]rhXFAdded support for expiration of AMQP results (requires RabbitMQ 2.1.0)rr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hX~The new configuration option :setting:`CELERY_AMQP_TASK_RESULT_EXPIRES` sets the expiry time in seconds (can be int or float):hjhhhjh}r(h]h]h]h]h]uhMh]r(hXThe new configuration option rr}r(hXThe new configuration option hjubj)r}r(hX*:setting:`CELERY_AMQP_TASK_RESULT_EXPIRES`rhjhhhjh}r(UreftypeXsettingjjXCELERY_AMQP_TASK_RESULT_EXPIRESU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj)r}r(hjh}r(h]h]r(jjX std-settingreh]h]h]uhjh]rhXCELERY_AMQP_TASK_RESULT_EXPIRESrr}r(hUhjubahjubaubhX7 sets the expiry time in seconds (can be int or float):rr}r(hX7 sets the expiry time in seconds (can be int or float):hjubeubjM)r}r(hXmCELERY_AMQP_TASK_RESULT_EXPIRES = 30 * 60 # 30 minutes. CELERY_AMQP_TASK_RESULT_EXPIRES = 0.80 # 800 ms.hjhhhjPh}r(jRjSXpythonjTjUh]h]h]h]h]uhMh]rhXmCELERY_AMQP_TASK_RESULT_EXPIRES = 30 * 60 # 30 minutes. CELERY_AMQP_TASK_RESULT_EXPIRES = 0.80 # 800 ms.rr}r(hUhjubaubehjubeubh)r}r(hX celeryev: Event Snapshots If enabled, :program:`celeryd` sends messages about what the worker is doing. These messages are called "events". The events are used by real-time monitors to show what the cluster is doing, but they are not very useful for monitoring over a longer period of time. Snapshots lets you take "pictures" of the clusters state at regular intervals. This can then be stored in a database to generate statistics with, or even monitoring over longer time periods. django-celery now comes with a Celery monitor for the Django Admin interface. To use this you need to run the django-celery snapshot camera, which stores snapshots to the database at configurable intervals. See :ref:`monitoring-nodjango` for information about using this monitor if you're not using Django. To use the Django admin monitor you need to do the following: 1. Create the new database tables. $ python manage.py syncdb 2. Start the django-celery snapshot camera:: $ python manage.py celerycam 3. Open up the django admin to monitor your cluster. The admin interface shows tasks, worker nodes, and even lets you perform some actions, like revoking and rate limiting tasks, and shutting down worker nodes. There's also a Debian init.d script for :mod:`~celery.bin.celeryev` available, see :doc:`cookbook/daemonizing` for more information. New command line arguments to celeryev: * :option:`-c|--camera`: Snapshot camera class to use. * :option:`--logfile|-f`: Log file * :option:`--loglevel|-l`: Log level * :option:`--maxrate|-r`: Shutter rate limit. * :option:`--freq|-F`: Shutter frequency The :option:`--camera` argument is the name of a class used to take snapshots with. It must support the interface defined by :class:`celery.events.snapshot.Polaroid`. Shutter frequency controls how often the camera thread wakes up, while the rate limit controls how often it will actually take a snapshot. The rate limit can be an integer (snapshots/s), or a rate limit string which has the same syntax as the task rate limit strings (``"200/m"``, ``"10/s"``, ``"1/h",`` etc). For the Django camera case, this rate limit can be used to control how often the snapshots are written to the database, and the frequency used to control how often the thread wakes up to check if there's anything new. The rate limit is off by default, which means it will take a snapshot for every :option:`--frequency` seconds. hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXceleryev: Event Snapshotsrhjhhhjh}r(h]h]h]h]h]uhMh]rhXceleryev: Event Snapshotsrr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hXIf enabled, :program:`celeryd` sends messages about what the worker is doing. These messages are called "events". The events are used by real-time monitors to show what the cluster is doing, but they are not very useful for monitoring over a longer period of time. Snapshots lets you take "pictures" of the clusters state at regular intervals. This can then be stored in a database to generate statistics with, or even monitoring over longer time periods.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX If enabled, rr}r(hX If enabled, hjubj )r}r(hX:program:`celeryd`h}r(h]h]rj ah]h]h]uhjh]rhXcelerydrr}r(hUhjubahj ubhX sends messages about what the worker is doing. These messages are called "events". The events are used by real-time monitors to show what the cluster is doing, but they are not very useful for monitoring over a longer period of time. Snapshots lets you take "pictures" of the clusters state at regular intervals. This can then be stored in a database to generate statistics with, or even monitoring over longer time periods.rr}r(hX sends messages about what the worker is doing. These messages are called "events". The events are used by real-time monitors to show what the cluster is doing, but they are not very useful for monitoring over a longer period of time. Snapshots lets you take "pictures" of the clusters state at regular intervals. This can then be stored in a database to generate statistics with, or even monitoring over longer time periods.hjubeubh)r}r(hX3django-celery now comes with a Celery monitor for the Django Admin interface. To use this you need to run the django-celery snapshot camera, which stores snapshots to the database at configurable intervals. See :ref:`monitoring-nodjango` for information about using this monitor if you're not using Django.hjhhhjh}r(h]h]h]h]h]uhMh]r(hXdjango-celery now comes with a Celery monitor for the Django Admin interface. To use this you need to run the django-celery snapshot camera, which stores snapshots to the database at configurable intervals. See rr}r(hXdjango-celery now comes with a Celery monitor for the Django Admin interface. To use this you need to run the django-celery snapshot camera, which stores snapshots to the database at configurable intervals. See hjubj)r}r(hX:ref:`monitoring-nodjango`rhjhhhjh}r(UreftypeXrefjjXmonitoring-nodjangoU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj )r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhXmonitoring-nodjangorr}r(hUhjubahj ubaubhXE for information about using this monitor if you're not using Django.rr}r(hXE for information about using this monitor if you're not using Django.hjubeubh)r}r(hX=To use the Django admin monitor you need to do the following:rhjhhhjh}r(h]h]h]h]h]uhMh]rhX=To use the Django admin monitor you need to do the following:rr}r(hjhjubaubcdocutils.nodes enumerated_list r)r}r(hUh}r(UsuffixrU.h]h]h]UprefixrUh]h]UenumtyperUarabicruhjh]r(h)r}r(hX<Create the new database tables. $ python manage.py syncdb h}r(h]h]h]h]h]uhjh]r(h)r}r(hXCreate the new database tables.rhjhhhjh}r(h]h]h]h]h]uhMh]rhXCreate the new database tables.r r }r (hjhjubaubj)r }r (hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX$ python manage.py syncdbrhj hhhjh}r(h]h]h]h]h]uhMh]rhX$ python manage.py syncdbrr}r(hjhjubaubahjubehjubh)r}r(hXIStart the django-celery snapshot camera:: $ python manage.py celerycam h}r(h]h]h]h]h]uhjh]r(h)r}r(hX)Start the django-celery snapshot camera::hjhhhjh}r(h]h]h]h]h]uhMh]rhX(Start the django-celery snapshot camera:r r!}r"(hX(Start the django-celery snapshot camera:hjubaubjM)r#}r$(hX$ python manage.py celerycamhjhjPh}r%(jTjUh]h]h]h]h]uhMh]r&hX$ python manage.py celerycamr'r(}r)(hUhj#ubaubehjubh)r*}r+(hX2Open up the django admin to monitor your cluster. h}r,(h]h]h]h]h]uhjh]r-h)r.}r/(hX1Open up the django admin to monitor your cluster.r0hj*hhhjh}r1(h]h]h]h]h]uhMh]r2hX1Open up the django admin to monitor your cluster.r3r4}r5(hj0hj.ubaubahjubehUenumerated_listr6ubh)r7}r8(hXThe admin interface shows tasks, worker nodes, and even lets you perform some actions, like revoking and rate limiting tasks, and shutting down worker nodes.r9hjhhhjh}r:(h]h]h]h]h]uhMh]r;hXThe admin interface shows tasks, worker nodes, and even lets you perform some actions, like revoking and rate limiting tasks, and shutting down worker nodes.r<r=}r>(hj9hj7ubaubh)r?}r@(hXThere's also a Debian init.d script for :mod:`~celery.bin.celeryev` available, see :doc:`cookbook/daemonizing` for more information.hjhhhjh}rA(h]h]h]h]h]uhMh]rB(hX(There's also a Debian init.d script for rCrD}rE(hX(There's also a Debian init.d script for hj?ubj)rF}rG(hX:mod:`~celery.bin.celeryev`rHhj?hhhjh}rI(UreftypeXmodjjXcelery.bin.celeryevU refdomainXpyrJh]h]U refexplicith]h]h]jjj Nj NuhMh]rKj)rL}rM(hjHh}rN(h]h]rO(jjJXpy-modrPeh]h]h]uhjFh]rQhXceleryevrRrS}rT(hUhjLubahjubaubhX available, see rUrV}rW(hX available, see hj?ubj)rX}rY(hX:doc:`cookbook/daemonizing`rZhj?hhhjh}r[(UreftypeXdocr\jjXcookbook/daemonizingU refdomainUh]h]U refexplicith]h]h]jjuhMh]r]j)r^}r_(hjZh}r`(h]h]ra(jj\eh]h]h]uhjXh]rbhXcookbook/daemonizingrcrd}re(hUhj^ubahjubaubhX for more information.rfrg}rh(hX for more information.hj?ubeubh)ri}rj(hX'New command line arguments to celeryev:rkhjhhhjh}rl(h]h]h]h]h]uhMh]rmhX'New command line arguments to celeryev:rnro}rp(hjkhjiubaubj)rq}rr(hUh}rs(h]h]h]h]h]uhjh]rth)ru}rv(hUh}rw(jX*h]h]h]h]h]uhjqh]rx(h)ry}rz(hX4:option:`-c|--camera`: Snapshot camera class to use.r{h}r|(h]h]h]h]h]uhjuh]r}h)r~}r(hj{hjyhhhjh}r(h]h]h]h]h]uhMh]r(j)r}r(hX:option:`-c|--camera`rhj~hhhjh}r(UreftypeXoptionjjX -c|--cameraU refdomainXstdrU refprogramrNh]h]U refexplicith]h]h]jjuhMh]rcsphinx.addnodes literal_emphasis r)r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhjh]rhX -c|--camerarr}r(hUhjubahUliteral_emphasisrubaubhX: Snapshot camera class to use.rr}r(hX: Snapshot camera class to use.hj~ubeubahjubh)r}r(hX :option:`--logfile|-f`: Log filerh}r(h]h]h]h]h]uhjuh]rh)r}r(hjhjhhhjh}r(h]h]h]h]h]uhMh]r(j)r}r(hX:option:`--logfile|-f`rhjhhhjh}r(UreftypeXoptionjjX --logfile|-fU refdomainXstdrjNh]h]U refexplicith]h]h]jjuhMh]rj)r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhjh]rhX --logfile|-frr}r(hUhjubahjubaubhX : Log filerr}r(hX : Log filehjubeubahjubh)r}r(hX":option:`--loglevel|-l`: Log levelrh}r(h]h]h]h]h]uhjuh]rh)r}r(hjhjhhhjh}r(h]h]h]h]h]uhMh]r(j)r}r(hX:option:`--loglevel|-l`rhjhhhjh}r(UreftypeXoptionjjX --loglevel|-lU refdomainXstdrjNh]h]U refexplicith]h]h]jjuhMh]rj)r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhjh]rhX --loglevel|-lrr}r(hUhjubahjubaubhX : Log levelrr}r(hX : Log levelhjubeubahjubh)r}r(hX+:option:`--maxrate|-r`: Shutter rate limit.rh}r(h]h]h]h]h]uhjuh]rh)r}r(hjhjhhhjh}r(h]h]h]h]h]uhMh]r(j)r}r(hX:option:`--maxrate|-r`rhjhhhjh}r(UreftypeXoptionjjX --maxrate|-rU refdomainXstdrjNh]h]U refexplicith]h]h]jjuhMh]rj)r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhjh]rhX --maxrate|-rrr}r(hUhjubahjubaubhX: Shutter rate limit.rr}r(hX: Shutter rate limit.hjubeubahjubh)r}r(hX':option:`--freq|-F`: Shutter frequency h}r(h]h]h]h]h]uhjuh]rh)r}r(hX&:option:`--freq|-F`: Shutter frequencyhjhhhjh}r(h]h]h]h]h]uhMh]r(j)r}r(hX:option:`--freq|-F`rhjhhhjh}r(UreftypeXoptionjjX --freq|-FU refdomainXstdrjNh]h]U refexplicith]h]h]jjuhMh]rj)r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhjh]rhX --freq|-Frr}r(hUhjubahjubaubhX: Shutter frequencyrr}r(hX: Shutter frequencyhjubeubahjubehhubahjubh)r}r(hXThe :option:`--camera` argument is the name of a class used to take snapshots with. It must support the interface defined by :class:`celery.events.snapshot.Polaroid`.hjhhhjh}r(h]h]h]h]h]uhMh]r(hXThe rr}r(hXThe hjubj)r }r (hX:option:`--camera`r hjhhhjh}r (UreftypeXoptionjjX--cameraU refdomainXstdr jNh]h]U refexplicith]h]h]jjuhMh]rj)r}r(hj h}r(h]h]r(jj X std-optionreh]h]h]uhj h]rhX--camerarr}r(hUhjubahjubaubhXg argument is the name of a class used to take snapshots with. It must support the interface defined by rr}r(hXg argument is the name of a class used to take snapshots with. It must support the interface defined by hjubj)r}r(hX(:class:`celery.events.snapshot.Polaroid`rhjhhhjh}r(UreftypeXclassjjXcelery.events.snapshot.PolaroidU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhMh]r j)r!}r"(hjh}r#(h]h]r$(jjXpy-classr%eh]h]h]uhjh]r&hXcelery.events.snapshot.Polaroidr'r(}r)(hUhj!ubahjubaubhX.r*}r+(hX.hjubeubh)r,}r-(hX5Shutter frequency controls how often the camera thread wakes up, while the rate limit controls how often it will actually take a snapshot. The rate limit can be an integer (snapshots/s), or a rate limit string which has the same syntax as the task rate limit strings (``"200/m"``, ``"10/s"``, ``"1/h",`` etc).hjhhhjh}r.(h]h]h]h]h]uhMh]r/(hX Shutter frequency controls how often the camera thread wakes up, while the rate limit controls how often it will actually take a snapshot. The rate limit can be an integer (snapshots/s), or a rate limit string which has the same syntax as the task rate limit strings (r0r1}r2(hX Shutter frequency controls how often the camera thread wakes up, while the rate limit controls how often it will actually take a snapshot. The rate limit can be an integer (snapshots/s), or a rate limit string which has the same syntax as the task rate limit strings (hj,ubj)r3}r4(hX ``"200/m"``h}r5(h]h]h]h]h]uhj,h]r6hX"200/m"r7r8}r9(hUhj3ubahjubhX, r:r;}r<(hX, hj,ubj)r=}r>(hX ``"10/s"``h}r?(h]h]h]h]h]uhj,h]r@hX"10/s"rArB}rC(hUhj=ubahjubhX, rDrE}rF(hX, hj,ubj)rG}rH(hX ``"1/h",``h}rI(h]h]h]h]h]uhj,h]rJhX"1/h",rKrL}rM(hUhjGubahjubhX etc).rNrO}rP(hX etc).hj,ubeubh)rQ}rR(hXFor the Django camera case, this rate limit can be used to control how often the snapshots are written to the database, and the frequency used to control how often the thread wakes up to check if there's anything new.rShjhhhjh}rT(h]h]h]h]h]uhMh]rUhXFor the Django camera case, this rate limit can be used to control how often the snapshots are written to the database, and the frequency used to control how often the thread wakes up to check if there's anything new.rVrW}rX(hjShjQubaubh)rY}rZ(hXnThe rate limit is off by default, which means it will take a snapshot for every :option:`--frequency` seconds.hjhhhjh}r[(h]h]h]h]h]uhMh]r\(hXPThe rate limit is off by default, which means it will take a snapshot for every r]r^}r_(hXPThe rate limit is off by default, which means it will take a snapshot for every hjYubj)r`}ra(hX:option:`--frequency`rbhjYhhhjh}rc(UreftypeXoptionjjX --frequencyU refdomainXstdrdjNh]h]U refexplicith]h]h]jjuhMh]rej)rf}rg(hjbh}rh(h]h]ri(jjdX std-optionrjeh]h]h]uhj`h]rkhX --frequencyrlrm}rn(hUhjfubahjubaubhX seconds.rorp}rq(hX seconds.hjYubeubehjubeubeubcsphinx.addnodes seealso rr)rs}rt(hX?:ref:`monitoring-django-admin` and :ref:`monitoring-snapshots`.ruhjohhhUseealsorvh}rw(h]h]h]h]h]uhNhhh]rxh)ry}rz(hjuhjshhhjh}r{(h]h]h]h]h]uhMh]r|(j)r}}r~(hX:ref:`monitoring-django-admin`rhjyhhhjh}r(UreftypeXrefjjXmonitoring-django-adminU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj )r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhj}h]rhXmonitoring-django-adminrr}r(hUhjubahj ubaubhX and rr}r(hX and hjyubj)r}r(hX:ref:`monitoring-snapshots`rhjyhhhjh}r(UreftypeXrefjjXmonitoring-snapshotsU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj )r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhXmonitoring-snapshotsrr}r(hUhjubahj ubaubhX.r}r(hX.hjyubeubaubh)r}r(hUhjohhhhh}r(jX*h]h]h]h]h]uhMhhh]r(h)r}r(hX:func:`~celery.task.control.broadcast`: Added callback argument, this can be used to process replies immediately as they arrive. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hX:func:`~celery.task.control.broadcast`: Added callback argument, this can be used to process replies immediately as they arrive.hjhhhjh}r(h]h]h]h]h]uhMh]r(j)r}r(hX&:func:`~celery.task.control.broadcast`rhjhhhjh}r(UreftypeXfuncjjXcelery.task.control.broadcastU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-funcreh]h]h]uhjh]rhX broadcast()rr}r(hUhjubahjubaubhXZ: Added callback argument, this can be used to process replies immediately as they arrive.rr}r(hXZ: Added callback argument, this can be used to process replies immediately as they arrive.hjubeubaubh)r}r(hXceleryctl: New command-line utility to manage and inspect worker nodes, apply tasks and inspect the results of tasks. .. seealso:: The :ref:`monitoring-celeryctl` section in the :ref:`guide`. Some examples:: $ celeryctl apply tasks.add -a '[2, 2]' --countdown=10 $ celeryctl inspect active $ celeryctl inspect registered_tasks $ celeryctl inspect scheduled $ celeryctl inspect --help $ celeryctl apply --help hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXuceleryctl: New command-line utility to manage and inspect worker nodes, apply tasks and inspect the results of tasks.rhjhhhjh}r(h]h]h]h]h]uhMh]rhXuceleryctl: New command-line utility to manage and inspect worker nodes, apply tasks and inspect the results of tasks.rr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(jr)r}r(hX<The :ref:`monitoring-celeryctl` section in the :ref:`guide`.rh}r(h]h]h]h]h]uhjh]rh)r}r(hjhjhhhjh}r(h]h]h]h]h]uhMh]r(hXThe rr}r(hXThe hjubj)r}r(hX:ref:`monitoring-celeryctl`rhjhhhjh}r(UreftypeXrefjjXmonitoring-celeryctlU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj )r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhXmonitoring-celeryctlrr}r(hUhjubahj ubaubhX section in the rr}r(hX section in the hjubj)r}r(hX :ref:`guide`rhjhhhjh}r(UreftypeXrefjjXguideU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj )r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhXguiderr}r(hUhjubahj ubaubhX.r}r(hX.hjubeubahjvubh)r}r(hXSome examples::hjhhhjh}r(h]h]h]h]h]uhMh]rhXSome examples:rr}r(hXSome examples:hjubaubjM)r}r(hX$ celeryctl apply tasks.add -a '[2, 2]' --countdown=10 $ celeryctl inspect active $ celeryctl inspect registered_tasks $ celeryctl inspect scheduled $ celeryctl inspect --help $ celeryctl apply --helphjhjPh}r(jTjUh]h]h]h]h]uhMh]rhX$ celeryctl apply tasks.add -a '[2, 2]' --countdown=10 $ celeryctl inspect active $ celeryctl inspect registered_tasks $ celeryctl inspect scheduled $ celeryctl inspect --help $ celeryctl apply --helprr }r (hUhjubaubehjubeubh)r }r (hXAdded the ability to set an expiry date and time for tasks. Example:: >>> # Task expires after one minute from now. >>> task.apply_async(args, kwargs, expires=60) >>> # Also supports datetime >>> task.apply_async(args, kwargs, ... expires=datetime.now() + timedelta(days=1) When a worker receives a task that has been expired it will be marked as revoked (:exc:`celery.exceptions.TaskRevokedError`). hjhhhjh}r (h]h]h]h]h]uhNhhh]r(h)r}r(hX;Added the ability to set an expiry date and time for tasks.rhj hhhjh}r(h]h]h]h]h]uhMh]rhX;Added the ability to set an expiry date and time for tasks.rr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhj h]r(h)r}r(hX Example::hjhhhjh}r(h]h]h]h]h]uhMh]rhXExample:rr }r!(hXExample:hjubaubjM)r"}r#(hX>>> # Task expires after one minute from now. >>> task.apply_async(args, kwargs, expires=60) >>> # Also supports datetime >>> task.apply_async(args, kwargs, ... expires=datetime.now() + timedelta(days=1)hjhjPh}r$(jTjUh]h]h]h]h]uhMh]r%hX>>> # Task expires after one minute from now. >>> task.apply_async(args, kwargs, expires=60) >>> # Also supports datetime >>> task.apply_async(args, kwargs, ... expires=datetime.now() + timedelta(days=1)r&r'}r((hUhj"ubaubh)r)}r*(hX}When a worker receives a task that has been expired it will be marked as revoked (:exc:`celery.exceptions.TaskRevokedError`).hjhhhjh}r+(h]h]h]h]h]uhMh]r,(hXRWhen a worker receives a task that has been expired it will be marked as revoked (r-r.}r/(hXRWhen a worker receives a task that has been expired it will be marked as revoked (hj)ubj)r0}r1(hX):exc:`celery.exceptions.TaskRevokedError`r2hj)hhhjh}r3(UreftypeXexcjjX"celery.exceptions.TaskRevokedErrorU refdomainXpyr4h]h]U refexplicith]h]h]jjj Nj NuhMh]r5j)r6}r7(hj2h}r8(h]h]r9(jj4Xpy-excr:eh]h]h]uhj0h]r;hX"celery.exceptions.TaskRevokedErrorr<r=}r>(hUhj6ubahjubaubhX).r?r@}rA(hX).hj)ubeubehjubeubh)rB}rC(hXChanged the way logging is configured. We now configure the root logger instead of only configuring our custom logger. In addition we don't hijack the multiprocessing logger anymore, but instead use a custom logger name for different applications: ===================================== ===================================== **Application** **Logger Name** ===================================== ===================================== ``celeryd`` "celery" ``celerybeat`` "celery.beat" ``celeryev`` "celery.ev" ===================================== ===================================== This means that the ``loglevel`` and ``logfile`` arguments will affect all registered loggers (even those from 3rd party libraries). Unless you configure the loggers manually as shown below, that is. *Users can choose to configure logging by subscribing to the :data:`~celery.signals.setup_logging` signal:* .. code-block:: python from logging.config import fileConfig from celery import signals def setup_logging(**kwargs): fileConfig("logging.conf") signals.setup_logging.connect(setup_logging) If there are no receivers for this signal, the logging subsystem will be configured using the :option:`--loglevel`/:option:`--logfile` argument, this will be used for *all defined loggers*. Remember that celeryd also redirects stdout and stderr to the celery logger, if manually configure logging you also need to redirect the stdouts manually: .. code-block:: python from logging.config import fileConfig from celery import log def setup_logging(**kwargs): import logging fileConfig("logging.conf") stdouts = logging.getLogger("mystdoutslogger") log.redirect_stdouts_to_logger(stdouts, loglevel=logging.WARNING) hjhhhjh}rD(h]h]h]h]h]uhNhhh]rE(h)rF}rG(hX&Changed the way logging is configured.rHhjBhhhjh}rI(h]h]h]h]h]uhMh]rJhX&Changed the way logging is configured.rKrL}rM(hjHhjFubaubj)rN}rO(hUh}rP(h]h]h]h]h]uhjBh]rQ(h)rR}rS(hXWe now configure the root logger instead of only configuring our custom logger. In addition we don't hijack the multiprocessing logger anymore, but instead use a custom logger name for different applications:rThjNhhhjh}rU(h]h]h]h]h]uhMh]rVhXWe now configure the root logger instead of only configuring our custom logger. In addition we don't hijack the multiprocessing logger anymore, but instead use a custom logger name for different applications:rWrX}rY(hjThjRubaubcdocutils.nodes table rZ)r[}r\(hUh}r](h]h]h]h]h]uhjNh]r^cdocutils.nodes tgroup r_)r`}ra(hUh}rb(h]h]h]h]h]UcolsKuhj[h]rc(cdocutils.nodes colspec rd)re}rf(hUh}rg(h]h]h]h]h]UcolwidthK%uhj`h]hUcolspecrhubjd)ri}rj(hUh}rk(h]h]h]h]h]UcolwidthK%uhj`h]hjhubcdocutils.nodes thead rl)rm}rn(hUh}ro(h]h]h]h]h]uhj`h]rpcdocutils.nodes row rq)rr}rs(hUh}rt(h]h]h]h]h]uhjmh]ru(cdocutils.nodes entry rv)rw}rx(hUh}ry(h]h]h]h]h]uhjrh]rzh)r{}r|(hX**Application**r}hjwhhhjh}r~(h]h]h]h]h]uhMh]rj )r}r(hj}h}r(h]h]h]h]h]uhj{h]rhX Applicationrr}r(hUhjubahj ubaubahUentryrubjv)r}r(hUh}r(h]h]h]h]h]uhjrh]rh)r}r(hX**Logger Name**rhjhhhjh}r(h]h]h]h]h]uhMh]rj )r}r(hjh}r(h]h]h]h]h]uhjh]rhX Logger Namerr}r(hUhjubahj ubaubahjubehUrowrubahUtheadrubcdocutils.nodes tbody r)r}r(hUh}r(h]h]h]h]h]uhj`h]r(jq)r}r(hUh}r(h]h]h]h]h]uhjh]r(jv)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX ``celeryd``rhjhhhjh}r(h]h]h]h]h]uhMh]rj)r}r(hjh}r(h]h]h]h]h]uhjh]rhXcelerydrr}r(hUhjubahjubaubahjubjv)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX"celery"rhjhhhjh}r(h]h]h]h]h]uhMh]rhX"celery"rr}r(hjhjubaubahjubehjubjq)r}r(hUh}r(h]h]h]h]h]uhjh]r(jv)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX``celerybeat``rhjhhhjh}r(h]h]h]h]h]uhMh]rj)r}r(hjh}r(h]h]h]h]h]uhjh]rhX celerybeatrr}r(hUhjubahjubaubahjubjv)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX "celery.beat"rhjhhhjh}r(h]h]h]h]h]uhMh]rhX "celery.beat"rr}r(hjhjubaubahjubehjubjq)r}r(hUh}r(h]h]h]h]h]uhjh]r(jv)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX ``celeryev``rhjhhhjh}r(h]h]h]h]h]uhMh]rj)r}r(hjh}r(h]h]h]h]h]uhjh]rhXceleryevrr}r(hUhjubahjubaubahjubjv)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX "celery.ev"rhjhhhjh}r(h]h]h]h]h]uhMh]rhX "celery.ev"rr}r(hjhjubaubahjubehjubehUtbodyrubehUtgrouprubahUtablerubh)r}r(hXThis means that the ``loglevel`` and ``logfile`` arguments will affect all registered loggers (even those from 3rd party libraries). Unless you configure the loggers manually as shown below, that is.hjNhhhjh}r(h]h]h]h]h]uhMh]r(hXThis means that the rr}r(hXThis means that the hjubj)r }r (hX ``loglevel``h}r (h]h]h]h]h]uhjh]r hXloglevelr r}r(hUhj ubahjubhX and rr}r(hX and hjubj)r}r(hX ``logfile``h}r(h]h]h]h]h]uhjh]rhXlogfilerr}r(hUhjubahjubhX arguments will affect all registered loggers (even those from 3rd party libraries). Unless you configure the loggers manually as shown below, that is.rr}r(hX arguments will affect all registered loggers (even those from 3rd party libraries). Unless you configure the loggers manually as shown below, that is.hjubeubh)r}r(hXk*Users can choose to configure logging by subscribing to the :data:`~celery.signals.setup_logging` signal:*rhjNhhhjh}r (h]h]h]h]h]uhM h]r!j )r"}r#(hjh}r$(h]h]h]h]h]uhjh]r%hXiUsers can choose to configure logging by subscribing to the :data:`~celery.signals.setup_logging` signal:r&r'}r((hUhj"ubahj ubaubjM)r)}r*(hXfrom logging.config import fileConfig from celery import signals def setup_logging(**kwargs): fileConfig("logging.conf") signals.setup_logging.connect(setup_logging)hjNhhhjPh}r+(jRjSXpythonjTjUh]h]h]h]h]uhM h]r,hXfrom logging.config import fileConfig from celery import signals def setup_logging(**kwargs): fileConfig("logging.conf") signals.setup_logging.connect(setup_logging)r-r.}r/(hUhj)ubaubh)r0}r1(hXIf there are no receivers for this signal, the logging subsystem will be configured using the :option:`--loglevel`/:option:`--logfile` argument, this will be used for *all defined loggers*.hjNhhhjh}r2(h]h]h]h]h]uhMh]r3(hX^If there are no receivers for this signal, the logging subsystem will be configured using the r4r5}r6(hX^If there are no receivers for this signal, the logging subsystem will be configured using the hj0ubj)r7}r8(hX:option:`--loglevel`r9hj0hhhjh}r:(UreftypeXoptionjjX --loglevelU refdomainXstdr;jNh]h]U refexplicith]h]h]jjuhMh]r<j)r=}r>(hj9h}r?(h]h]r@(jj;X std-optionrAeh]h]h]uhj7h]rBhX --loglevelrCrD}rE(hUhj=ubahjubaubhX/rF}rG(hX/hj0ubj)rH}rI(hX:option:`--logfile`rJhj0hhhjh}rK(UreftypeXoptionjjX --logfileU refdomainXstdrLjNh]h]U refexplicith]h]h]jjuhMh]rMj)rN}rO(hjJh}rP(h]h]rQ(jjLX std-optionrReh]h]h]uhjHh]rShX --logfilerTrU}rV(hUhjNubahjubaubhX! argument, this will be used for rWrX}rY(hX! argument, this will be used for hj0ubj )rZ}r[(hX*all defined loggers*h}r\(h]h]h]h]h]uhj0h]r]hXall defined loggersr^r_}r`(hUhjZubahj ubhX.ra}rb(hX.hj0ubeubh)rc}rd(hXRemember that celeryd also redirects stdout and stderr to the celery logger, if manually configure logging you also need to redirect the stdouts manually:rehjNhhhjh}rf(h]h]h]h]h]uhMh]rghXRemember that celeryd also redirects stdout and stderr to the celery logger, if manually configure logging you also need to redirect the stdouts manually:rhri}rj(hjehjcubaubjM)rk}rl(hX  from logging.config import fileConfig from celery import log def setup_logging(**kwargs): import logging fileConfig("logging.conf") stdouts = logging.getLogger("mystdoutslogger") log.redirect_stdouts_to_logger(stdouts, loglevel=logging.WARNING)hjNhhhjPh}rm(jRjSXpythonjTjUh]h]h]h]h]uhMh]rnhX  from logging.config import fileConfig from celery import log def setup_logging(**kwargs): import logging fileConfig("logging.conf") stdouts = logging.getLogger("mystdoutslogger") log.redirect_stdouts_to_logger(stdouts, loglevel=logging.WARNING)rorp}rq(hUhjkubaubehjubeubh)rr}rs(hXceleryd: Added command-line option :option:`-I`/:option:`--include`: A comma separated list of (task) modules to be imported. Example:: $ celeryd -I app1.tasks,app2.tasks hjhhhjh}rt(h]h]h]h]h]uhNhhh]ru(h)rv}rw(hXDceleryd: Added command-line option :option:`-I`/:option:`--include`:hjrhhhjh}rx(h]h]h]h]h]uhM)h]ry(hX#celeryd: Added command-line option rzr{}r|(hX#celeryd: Added command-line option hjvubj)r}}r~(hX :option:`-I`rhjvhhhjh}r(UreftypeXoptionjjX-IU refdomainXstdrjNh]h]U refexplicith]h]h]jjuhM)h]rj)r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhj}h]rhX-Irr}r(hUhjubahjubaubhX/r}r(hX/hjvubj)r}r(hX:option:`--include`rhjvhhhjh}r(UreftypeXoptionjjX --includeU refdomainXstdrjNh]h]U refexplicith]h]h]jjuhM)h]rj)r}r(hjh}r(h]h]r(jjX std-optionreh]h]h]uhjh]rhX --includerr}r(hUhjubahjubaubhX:r}r(hX:hjvubeubj)r}r(hUh}r(h]h]h]h]h]uhjrh]r(h)r}r(hX8A comma separated list of (task) modules to be imported.rhjhhhjh}r(h]h]h]h]h]uhM+h]rhX8A comma separated list of (task) modules to be imported.rr}r(hjhjubaubh)r}r(hX Example::hjhhhjh}r(h]h]h]h]h]uhM-h]rhXExample:rr}r(hXExample:hjubaubjM)r}r(hX"$ celeryd -I app1.tasks,app2.taskshjhjPh}r(jTjUh]h]h]h]h]uhM/h]rhX"$ celeryd -I app1.tasks,app2.tasksrr}r(hUhjubaubehjubeubh)r}r(hXFceleryd: now emits a warning if running as the root user (euid is 0). hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXEceleryd: now emits a warning if running as the root user (euid is 0).rhjhhhjh}r(h]h]h]h]h]uhM1h]rhXEceleryd: now emits a warning if running as the root user (euid is 0).rr}r(hjhjubaubaubh)r}r(hXt:func:`celery.messaging.establish_connection`: Ability to override defaults used using keyword argument "defaults". hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXs:func:`celery.messaging.establish_connection`: Ability to override defaults used using keyword argument "defaults".hjhhhjh}r(h]h]h]h]h]uhM3h]r(j)r}r(hX-:func:`celery.messaging.establish_connection`rhjhhhjh}r(UreftypeXfuncjjX%celery.messaging.establish_connectionU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhM3h]rj)r}r(hjh}r(h]h]r(jjXpy-funcreh]h]h]uhjh]rhX'celery.messaging.establish_connection()rr}r(hUhjubahjubaubhXF: Ability to override defaults used using keyword argument "defaults".rr}r(hXF: Ability to override defaults used using keyword argument "defaults".hjubeubaubh)r}r(hXceleryd: Now uses ``multiprocessing.freeze_support()`` so that it should work with **py2exe**, **PyInstaller**, **cx_Freeze**, etc. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXceleryd: Now uses ``multiprocessing.freeze_support()`` so that it should work with **py2exe**, **PyInstaller**, **cx_Freeze**, etc.hjhhhjh}r(h]h]h]h]h]uhM6h]r(hXceleryd: Now uses rr}r(hXceleryd: Now uses hjubj)r}r(hX$``multiprocessing.freeze_support()``h}r(h]h]h]h]h]uhjh]rhX multiprocessing.freeze_support()rr}r(hUhjubahjubhX so that it should work with rr}r(hX so that it should work with hjubj )r}r(hX **py2exe**h}r(h]h]h]h]h]uhjh]rhXpy2exerr}r(hUhjubahj ubhX, rr}r(hX, hjubj )r}r(hX**PyInstaller**h}r(h]h]h]h]h]uhjh]rhX PyInstallerrr}r(hUhjubahj ubhX, rr}r(hX, hjubj )r}r (hX **cx_Freeze**h}r (h]h]h]h]h]uhjh]r hX cx_Freezer r }r(hUhjubahj ubhX, etc.rr}r(hX, etc.hjubeubaubh)r}r(hXceleryd: Now includes more metadata for the :state:`STARTED` state: PID and host name of the worker that started the task. See issue #181 hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXzceleryd: Now includes more metadata for the :state:`STARTED` state: PID and host name of the worker that started the task.hjhhhjh}r(h]h]h]h]h]uhM9h]r(hX,celeryd: Now includes more metadata for the rr}r(hX,celeryd: Now includes more metadata for the hjubj)r}r(hX:state:`STARTED`rhjhhhjh}r (UreftypeXstatejjXSTARTEDU refdomainXstdr!h]h]U refexplicith]h]h]jjuhM9h]r"j)r#}r$(hjh}r%(h]h]r&(jj!X std-stater'eh]h]h]uhjh]r(hXSTARTEDr)r*}r+(hUhj#ubahjubaubhX> state: PID and host name of the worker that started the task.r,r-}r.(hX> state: PID and host name of the worker that started the task.hjubeubj)r/}r0(hUh}r1(h]h]h]h]h]uhjh]r2h)r3}r4(hXSee issue #181hj/hhhjh}r5(h]h]h]h]h]uhM<h]r6(hX See issue r7r8}r9(hUhj3ubj)r:}r;(hUh}r<(UreftypejU trackerconfigj U reftargetX181r=h]h]h]h]h]uhj3h]r>j)r?}r@(hX#181h}rA(h]h]rB(jjeh]h]h]uhj:h]rChX#181rDrE}rF(hUhj?ubahjubahjubeubahjubeubh)rG}rH(hXsubtask: Merge additional keyword arguments to ``subtask()`` into task keyword arguments. e.g.: >>> s = subtask((1, 2), {"foo": "bar"}, baz=1) >>> s.args (1, 2) >>> s.kwargs {"foo": "bar", "baz": 1} See issue #182. hjhhhjh}rI(h]h]h]h]h]uhNhhh]rJ(h)rK}rL(hXYsubtask: Merge additional keyword arguments to ``subtask()`` into task keyword arguments.hjGhhhjh}rM(h]h]h]h]h]uhM>h]rN(hX/subtask: Merge additional keyword arguments to rOrP}rQ(hX/subtask: Merge additional keyword arguments to hjKubj)rR}rS(hX ``subtask()``h}rT(h]h]h]h]h]uhjKh]rUhX subtask()rVrW}rX(hUhjRubahjubhX into task keyword arguments.rYrZ}r[(hX into task keyword arguments.hjKubeubj)r\}r](hUh}r^(h]h]h]h]h]uhjGh]r_(h)r`}ra(hXe.g.:rbhj\hhhjh}rc(h]h]h]h]h]uhMAh]rdhXe.g.:rerf}rg(hjbhj`ubaubcdocutils.nodes doctest_block rh)ri}rj(hXf>>> s = subtask((1, 2), {"foo": "bar"}, baz=1) >>> s.args (1, 2) >>> s.kwargs {"foo": "bar", "baz": 1}h}rk(jTjUh]h]h]h]h]uhj\h]rlhXf>>> s = subtask((1, 2), {"foo": "bar"}, baz=1) >>> s.args (1, 2) >>> s.kwargs {"foo": "bar", "baz": 1}rmrn}ro(hUhjiubahU doctest_blockrpubh)rq}rr(hXSee issue #182.hj\hhhjh}rs(h]h]h]h]h]uhMIh]rt(hX See issue rurv}rw(hUhjqubj)rx}ry(hUh}rz(UreftypejU trackerconfigj U reftargetX182r{h]h]h]h]h]uhjqh]r|j)r}}r~(hX#182h}r(h]h]r(jjeh]h]h]uhjxh]rhX#182rr}r(hUhj}ubahjubahjubhX.r}r(hUhjqubeubehjubeubh)r}r(hXuceleryd: Now emits a warning if there is already a worker node using the same name running on the same virtual host. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXtceleryd: Now emits a warning if there is already a worker node using the same name running on the same virtual host.rhjhhhjh}r(h]h]h]h]h]uhMKh]rhXtceleryd: Now emits a warning if there is already a worker node using the same name running on the same virtual host.rr}r(hjhjubaubaubh)r}r(hXSAMQP result backend: Sending of results are now retried if the connection is down. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXRAMQP result backend: Sending of results are now retried if the connection is down.rhjhhhjh}r(h]h]h]h]h]uhMNh]rhXRAMQP result backend: Sending of results are now retried if the connection is down.rr}r(hjhjubaubaubh)r}r(hXuAMQP result backend: ``result.get()``: Wait for next state if state is not in :data:`~celery.states.READY_STATES`. hjhNhjh}r(h]h]h]h]h]uhNhhh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hXsAMQP result backend: ``result.get()``: Wait for next state if state is not in :data:`~celery.states.READY_STATES`. hjhhhj h}r(h]h]h]h]h]uhMRh]r(j )r}r(hXJAMQP result backend: ``result.get()``: Wait for next state if state is nothjhhhj h}r(h]h]h]h]h]uhMRh]r(hXAMQP result backend: rr}r(hXAMQP result backend: hjubj)r}r(hX``result.get()``h}r(h]h]h]h]h]uhjh]rhX result.get()rr}r(hUhjubahjubhX%: Wait for next state if state is notrr}r(hX%: Wait for next state if state is nothjubeubj5 )r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX'in :data:`~celery.states.READY_STATES`.hjhhhjh}r(h]h]h]h]h]uhMRh]r(hXin rr}r(hXin hjubj)r}r(hX#:data:`~celery.states.READY_STATES`rhjhhhjh}r(UreftypeXdatajjXcelery.states.READY_STATESU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhMRh]rj)r}r(hjh}r(h]h]r(jjXpy-datareh]h]h]uhjh]rhX READY_STATESrr}r(hUhjubahjubaubhX.r}r(hX.hjubeubahjB ubeubahjC ubaubh)r}r(hXtTaskSetResult now supports subscription. :: >>> res = TaskSet(tasks).apply_async() >>> res[0].get() hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hX(TaskSetResult now supports subscription.rhjhhhjh}r(h]h]h]h]h]uhMTh]rhX(TaskSetResult now supports subscription.rr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]rjM)r}r(hX7>>> res = TaskSet(tasks).apply_async() >>> res[0].get()hjhjPh}r(jTjUh]h]h]h]h]uhMXh]rhX7>>> res = TaskSet(tasks).apply_async() >>> res[0].get()rr}r(hUhjubaubahjubeubh)r}r(hXAdded ``Task.send_error_emails`` + ``Task.error_whitelist``, so these can be configured per task instead of just by the global setting. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXAdded ``Task.send_error_emails`` + ``Task.error_whitelist``, so these can be configured per task instead of just by the global setting.hjhhhjh}r(h]h]h]h]h]uhM[h]r(hXAdded rr}r(hXAdded hjubj)r}r(hX``Task.send_error_emails``h}r(h]h]h]h]h]uhjh]rhXTask.send_error_emailsrr}r(hUhjubahjubhX + rr}r(hX + hjubj)r}r(hX``Task.error_whitelist``h}r(h]h]h]h]h]uhjh]rhXTask.error_whitelistrr }r (hUhjubahjubhXL, so these can be configured per task instead of just by the global setting.r r }r (hXL, so these can be configured per task instead of just by the global setting.hjubeubaubh)r}r(hXlAdded ``Task.store_errors_even_if_ignored``, so it can be changed per Task, not just by the global setting. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXkAdded ``Task.store_errors_even_if_ignored``, so it can be changed per Task, not just by the global setting.hjhhhjh}r(h]h]h]h]h]uhM^h]r(hXAdded rr}r(hXAdded hjubj)r}r(hX%``Task.store_errors_even_if_ignored``h}r(h]h]h]h]h]uhjh]rhX!Task.store_errors_even_if_ignoredrr}r(hUhjubahjubhX@, so it can be changed per Task, not just by the global setting.r r!}r"(hX@, so it can be changed per Task, not just by the global setting.hjubeubaubh)r#}r$(hXoThe crontab scheduler no longer wakes up every second, but implements ``remaining_estimate`` (*Optimization*). hjhhhjh}r%(h]h]h]h]h]uhNhhh]r&h)r'}r((hXnThe crontab scheduler no longer wakes up every second, but implements ``remaining_estimate`` (*Optimization*).hj#hhhjh}r)(h]h]h]h]h]uhMah]r*(hXFThe crontab scheduler no longer wakes up every second, but implements r+r,}r-(hXFThe crontab scheduler no longer wakes up every second, but implements hj'ubj)r.}r/(hX``remaining_estimate``h}r0(h]h]h]h]h]uhj'h]r1hXremaining_estimater2r3}r4(hUhj.ubahjubhX (r5r6}r7(hX (hj'ubj )r8}r9(hX*Optimization*h}r:(h]h]h]h]h]uhj'h]r;hX Optimizationr<r=}r>(hUhj8ubahj ubhX).r?r@}rA(hX).hj'ubeubaubh)rB}rC(hXceleryd: Store :state:`FAILURE` result if the :exc:`~celery.exceptions.WorkerLostError` exception occurs (worker process disappeared). hjhNhjh}rD(h]h]h]h]h]uhNhhh]rEj )rF}rG(hUh}rH(h]h]h]h]h]uhjBh]rIj )rJ}rK(hXceleryd: Store :state:`FAILURE` result if the :exc:`~celery.exceptions.WorkerLostError` exception occurs (worker process disappeared). hjFhhhj h}rL(h]h]h]h]h]uhMfh]rM(j )rN}rO(hX.celeryd: Store :state:`FAILURE` result if thehjJhhhj h}rP(h]h]h]h]h]uhMfh]rQ(hXceleryd: Store rRrS}rT(hXceleryd: Store hjNubj)rU}rV(hX:state:`FAILURE`rWhjNhhhjh}rX(UreftypeXstatejjXFAILUREU refdomainXstdrYh]h]U refexplicith]h]h]jjuhMfh]rZj)r[}r\(hjWh}r](h]h]r^(jjYX std-stater_eh]h]h]uhjUh]r`hXFAILURErarb}rc(hUhj[ubahjubaubhX result if therdre}rf(hX result if thehjNubeubj5 )rg}rh(hUh}ri(h]h]h]h]h]uhjJh]rjh)rk}rl(hXX:exc:`~celery.exceptions.WorkerLostError` exception occurs (worker process disappeared).hjghhhjh}rm(h]h]h]h]h]uhMeh]rn(j)ro}rp(hX):exc:`~celery.exceptions.WorkerLostError`rqhjkhhhjh}rr(UreftypeXexcjjX!celery.exceptions.WorkerLostErrorU refdomainXpyrsh]h]U refexplicith]h]h]jjj Nj NuhMeh]rtj)ru}rv(hjqh}rw(h]h]rx(jjsXpy-excryeh]h]h]uhjoh]rzhXWorkerLostErrorr{r|}r}(hUhjuubahjubaubhX/ exception occurs (worker process disappeared).r~r}r(hX/ exception occurs (worker process disappeared).hjkubeubahjB ubeubahjC ubaubh)r}r(hX_celeryd: Store :state:`FAILURE` result if one of the ``*TimeLimitExceeded`` exceptions occurs. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hX^celeryd: Store :state:`FAILURE` result if one of the ``*TimeLimitExceeded`` exceptions occurs.hjhhhjh}r(h]h]h]h]h]uhMhh]r(hXceleryd: Store rr}r(hXceleryd: Store hjubj)r}r(hX:state:`FAILURE`rhjhhhjh}r(UreftypeXstatejjXFAILUREU refdomainXstdrh]h]U refexplicith]h]h]jjuhMhh]rj)r}r(hjh}r(h]h]r(jjX std-statereh]h]h]uhjh]rhXFAILURErr}r(hUhjubahjubaubhX result if one of the rr}r(hX result if one of the hjubj)r}r(hX``*TimeLimitExceeded``h}r(h]h]h]h]h]uhjh]rhX*TimeLimitExceededrr}r(hUhjubahjubhX exceptions occurs.rr}r(hX exceptions occurs.hjubeubaubh)r}r(hXRefactored the periodic task responsible for cleaning up results. * The backend cleanup task is now only added to the schedule if :setting:`CELERY_TASK_RESULT_EXPIRES` is set. * If the schedule already contains a periodic task named "celery.backend_cleanup" it won't change it, so the behavior of the backend cleanup task can be easily changed. * The task is now run every day at 4:00 AM, rather than every day since the first time it was run (using crontab schedule instead of ``run_every``) * Renamed ``celery.task.builtins.DeleteExpiredTaskMetaTask`` -> :class:`celery.task.builtins.backend_cleanup` * The task itself has been renamed from "celery.delete_expired_task_meta" to "celery.backend_cleanup" See issue #134. hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXARefactored the periodic task responsible for cleaning up results.rhjhhhjh}r(h]h]h]h]h]uhMkh]rhXARefactored the periodic task responsible for cleaning up results.rr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(jX*h]h]h]h]h]uhjh]r(h)r}r(hXnThe backend cleanup task is now only added to the schedule if :setting:`CELERY_TASK_RESULT_EXPIRES` is set. h}r(h]h]h]h]h]uhjh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hXlThe backend cleanup task is now only added to the schedule if :setting:`CELERY_TASK_RESULT_EXPIRES` is set. hjhhhj h}r(h]h]h]h]h]uhMnh]r(j )r}r(hX=The backend cleanup task is now only added to the schedule ifrhjhhhj h}r(h]h]h]h]h]uhMnh]rhX=The backend cleanup task is now only added to the schedule ifrr}r(hjhjubaubj5 )r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX-:setting:`CELERY_TASK_RESULT_EXPIRES` is set.hjhhhjh}r(h]h]h]h]h]uhMnh]r(j)r}r(hX%:setting:`CELERY_TASK_RESULT_EXPIRES`rhjhhhjh}r(UreftypeXsettingjjXCELERY_TASK_RESULT_EXPIRESU refdomainXstdrh]h]U refexplicith]h]h]jjuhMnh]rj)r}r(hjh}r(h]h]r(jjX std-settingreh]h]h]uhjh]rhXCELERY_TASK_RESULT_EXPIRESrr}r(hUhjubahjubaubhX is set.rr}r(hX is set.hjubeubahjB ubeubahjC ubahjubh)r}r(hXIf the schedule already contains a periodic task named "celery.backend_cleanup" it won't change it, so the behavior of the backend cleanup task can be easily changed. h}r(h]h]h]h]h]uhjh]rh)r}r(hXIf the schedule already contains a periodic task named "celery.backend_cleanup" it won't change it, so the behavior of the backend cleanup task can be easily changed.rhjhhhjh}r(h]h]h]h]h]uhMph]rhXIf the schedule already contains a periodic task named "celery.backend_cleanup" it won't change it, so the behavior of the backend cleanup task can be easily changed.rr}r(hjhjubaubahjubh)r}r(hXThe task is now run every day at 4:00 AM, rather than every day since the first time it was run (using crontab schedule instead of ``run_every``) h}r(h]h]h]h]h]uhjh]rh)r}r(hXThe task is now run every day at 4:00 AM, rather than every day since the first time it was run (using crontab schedule instead of ``run_every``)hjhhhjh}r(h]h]h]h]h]uhMth]r(hXThe task is now run every day at 4:00 AM, rather than every day since the first time it was run (using crontab schedule instead of rr}r(hXThe task is now run every day at 4:00 AM, rather than every day since the first time it was run (using crontab schedule instead of hjubj)r}r(hX ``run_every``h}r(h]h]h]h]h]uhjh]rhX run_everyrr}r(hUhjubahjubhX)r}r (hX)hjubeubahjubh)r }r (hXnRenamed ``celery.task.builtins.DeleteExpiredTaskMetaTask`` -> :class:`celery.task.builtins.backend_cleanup` h}r (h]h]h]h]h]uhjh]r j )r}r(hUh}r(h]h]h]h]h]uhj h]rj )r}r(hXlRenamed ``celery.task.builtins.DeleteExpiredTaskMetaTask`` -> :class:`celery.task.builtins.backend_cleanup` hjhhhj h}r(h]h]h]h]h]uhMyh]r(j )r}r(hX:Renamed ``celery.task.builtins.DeleteExpiredTaskMetaTask``hjhhhj h}r(h]h]h]h]h]uhMyh]r(hXRenamed rr}r(hXRenamed hjubj)r}r(hX2``celery.task.builtins.DeleteExpiredTaskMetaTask``h}r(h]h]h]h]h]uhjh]r hX.celery.task.builtins.DeleteExpiredTaskMetaTaskr!r"}r#(hUhjubahjubeubj5 )r$}r%(hUh}r&(h]h]h]h]h]uhjh]r'h)r(}r)(hX0-> :class:`celery.task.builtins.backend_cleanup`hj$hhhjh}r*(h]h]h]h]h]uhMyh]r+(hX-> r,r-}r.(hX-> hj(ubj)r/}r0(hX-:class:`celery.task.builtins.backend_cleanup`r1hj(hhhjh}r2(UreftypeXclassjjX$celery.task.builtins.backend_cleanupU refdomainXpyr3h]h]U refexplicith]h]h]jjj Nj NuhMyh]r4j)r5}r6(hj1h}r7(h]h]r8(jj3Xpy-classr9eh]h]h]uhj/h]r:hX$celery.task.builtins.backend_cleanupr;r<}r=(hUhj5ubahjubaubeubahjB ubeubahjC ubahjubh)r>}r?(hXdThe task itself has been renamed from "celery.delete_expired_task_meta" to "celery.backend_cleanup" h}r@(h]h]h]h]h]uhjh]rAh)rB}rC(hXcThe task itself has been renamed from "celery.delete_expired_task_meta" to "celery.backend_cleanup"rDhj>hhhjh}rE(h]h]h]h]h]uhM{h]rFhXcThe task itself has been renamed from "celery.delete_expired_task_meta" to "celery.backend_cleanup"rGrH}rI(hjDhjBubaubahjubehhubh)rJ}rK(hXSee issue #134.hjhhhjh}rL(h]h]h]h]h]uhM~h]rM(hX See issue rNrO}rP(hUhjJubj)rQ}rR(hUh}rS(UreftypejU trackerconfigj U reftargetX134rTh]h]h]h]h]uhjJh]rUj)rV}rW(hX#134h}rX(h]h]rY(jjeh]h]h]uhjQh]rZhX#134r[r\}r](hUhjVubahjubahjubhX.r^}r_(hUhjJubeubehjubeubh)r`}ra(hX}Implemented ``AsyncResult.forget`` for sqla/cache/redis/tyrant backends. (Forget and remove task result). See issue #184. hjhhhjh}rb(h]h]h]h]h]uhNhhh]rc(h)rd}re(hXiImplemented ``AsyncResult.forget`` for sqla/cache/redis/tyrant backends. (Forget and remove task result).hj`hhhjh}rf(h]h]h]h]h]uhMh]rg(hX Implemented rhri}rj(hX Implemented hjdubj)rk}rl(hX``AsyncResult.forget``h}rm(h]h]h]h]h]uhjdh]rnhXAsyncResult.forgetrorp}rq(hUhjkubahjubhXG for sqla/cache/redis/tyrant backends. (Forget and remove task result).rrrs}rt(hXG for sqla/cache/redis/tyrant backends. (Forget and remove task result).hjdubeubj)ru}rv(hUh}rw(h]h]h]h]h]uhj`h]rxh)ry}rz(hXSee issue #184.hjuhhhjh}r{(h]h]h]h]h]uhMh]r|(hX See issue r}r~}r(hUhjyubj)r}r(hUh}r(UreftypejU trackerconfigj U reftargetX184rh]h]h]h]h]uhjyh]rj)r}r(hX#184h}r(h]h]r(jjeh]h]h]uhjh]rhX#184rr}r(hUhjubahjubahjubhX.r}r(hUhjyubeubahjubeubh)r}r(hX:meth:`TaskSetResult.join `: Added 'propagate=True' argument. When set to :const:`False` exceptions occurring in subtasks will not be re-raised. hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hX_:meth:`TaskSetResult.join `: Added 'propagate=True' argument.hjhhhjh}r(h]h]h]h]h]uhMh]r(j)r}r(hX=:meth:`TaskSetResult.join `rhjhhhjh}r(UreftypeXmethjjX celery.result.TaskSetResult.joinU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-methreh]h]h]uhjh]rhXTaskSetResult.joinrr}r(hUhjubahjubaubhX": Added 'propagate=True' argument.rr}r(hX": Added 'propagate=True' argument.hjubeubh)r}r(hXRWhen set to :const:`False` exceptions occurring in subtasks will not be re-raised.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX When set to rr}r(hX When set to hjubj)r}r(hX:const:`False`rhjhhhjh}r(UreftypeXconstjjXFalseU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXFalserr}r(hUhjubahjubaubhX8 exceptions occurring in subtasks will not be re-raised.rr}r(hX8 exceptions occurring in subtasks will not be re-raised.hjubeubeubh)r}r(hX Added ``Task.update_state(task_id, state, meta)`` as a shortcut to ``task.backend.store_result(task_id, meta, state)``. The backend interface is "private" and the terminology outdated, so better to move this to :class:`~celery.task.base.Task` so it can be used. hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXwAdded ``Task.update_state(task_id, state, meta)`` as a shortcut to ``task.backend.store_result(task_id, meta, state)``.hjhhhjh}r(h]h]h]h]h]uhMh]r(hXAdded rr}r(hXAdded hjubj)r}r(hX+``Task.update_state(task_id, state, meta)``h}r(h]h]h]h]h]uhjh]rhX'Task.update_state(task_id, state, meta)rr}r(hUhjubahjubhX as a shortcut to rr}r(hX as a shortcut to hjubj)r}r(hX3``task.backend.store_result(task_id, meta, state)``h}r(h]h]h]h]h]uhjh]rhX/task.backend.store_result(task_id, meta, state)rr}r(hUhjubahjubhX.r}r(hX.hjubeubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hXThe backend interface is "private" and the terminology outdated, so better to move this to :class:`~celery.task.base.Task` so it can be used.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX[The backend interface is "private" and the terminology outdated, so better to move this to rr}r(hX[The backend interface is "private" and the terminology outdated, so better to move this to hjubj)r}r(hX:class:`~celery.task.base.Task`rhjhhhjh}r(UreftypeXclassjjXcelery.task.base.TaskU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhXTaskrr}r(hUhjubahjubaubhX so it can be used.rr}r(hX so it can be used.hjubeubahjubeubh)r}r(hXtimer2: Set ``self.running=False`` in :meth:`~celery.utils.timer2.Timer.stop` so it won't try to join again on subsequent calls to ``stop()``. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXtimer2: Set ``self.running=False`` in :meth:`~celery.utils.timer2.Timer.stop` so it won't try to join again on subsequent calls to ``stop()``.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX timer2: Set rr}r(hX timer2: Set hjubj)r}r (hX``self.running=False``h}r (h]h]h]h]h]uhjh]r hXself.running=Falser r }r(hUhjubahjubhX in rr}r(hX in hjubj)r}r(hX':meth:`~celery.utils.timer2.Timer.stop`rhjhhhjh}r(UreftypeXmethjjXcelery.utils.timer2.Timer.stopU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-methreh]h]h]uhjh]rhXstop()rr}r (hUhjubahjubaubhX6 so it won't try to join again on subsequent calls to r!r"}r#(hX6 so it won't try to join again on subsequent calls to hjubj)r$}r%(hX ``stop()``h}r&(h]h]h]h]h]uhjh]r'hXstop()r(r)}r*(hUhj$ubahjubhX.r+}r,(hX.hjubeubaubh)r-}r.(hX3Log colors are now disabled by default on Windows. hjhhhjh}r/(h]h]h]h]h]uhNhhh]r0h)r1}r2(hX2Log colors are now disabled by default on Windows.r3hj-hhhjh}r4(h]h]h]h]h]uhMh]r5hX2Log colors are now disabled by default on Windows.r6r7}r8(hj3hj1ubaubaubh)r9}r:(hXx``celery.platform`` renamed to :mod:`celery.platforms`, so it doesn't collide with the built-in :mod:`platform` module. hjhhhjh}r;(h]h]h]h]h]uhNhhh]r<h)r=}r>(hXw``celery.platform`` renamed to :mod:`celery.platforms`, so it doesn't collide with the built-in :mod:`platform` module.hj9hhhjh}r?(h]h]h]h]h]uhMh]r@(j)rA}rB(hX``celery.platform``h}rC(h]h]h]h]h]uhj=h]rDhXcelery.platformrErF}rG(hUhjAubahjubhX renamed to rHrI}rJ(hX renamed to hj=ubj)rK}rL(hX:mod:`celery.platforms`rMhj=hhhjh}rN(UreftypeXmodjjXcelery.platformsU refdomainXpyrOh]h]U refexplicith]h]h]jjj Nj NuhMh]rPj)rQ}rR(hjMh}rS(h]h]rT(jjOXpy-modrUeh]h]h]uhjKh]rVhXcelery.platformsrWrX}rY(hUhjQubahjubaubhX*, so it doesn't collide with the built-in rZr[}r\(hX*, so it doesn't collide with the built-in hj=ubj)r]}r^(hX:mod:`platform`r_hj=hhhjh}r`(UreftypeXmodjjXplatformU refdomainXpyrah]h]U refexplicith]h]h]jjj Nj NuhMh]rbj)rc}rd(hj_h}re(h]h]rf(jjaXpy-modrgeh]h]h]uhj]h]rhhXplatformrirj}rk(hUhjcubahjubaubhX module.rlrm}rn(hX module.hj=ubeubaubh)ro}rp(hXmExceptions occurring in Mediator+Pool callbacks are now caught and logged instead of taking down the worker. hjhhhjh}rq(h]h]h]h]h]uhNhhh]rrh)rs}rt(hXlExceptions occurring in Mediator+Pool callbacks are now caught and logged instead of taking down the worker.ruhjohhhjh}rv(h]h]h]h]h]uhMh]rwhXlExceptions occurring in Mediator+Pool callbacks are now caught and logged instead of taking down the worker.rxry}rz(hjuhjsubaubaubh)r{}r|(hXYRedis result backend: Now supports result expiration using the Redis ``EXPIRE`` command. hjhhhjh}r}(h]h]h]h]h]uhNhhh]r~h)r}r(hXXRedis result backend: Now supports result expiration using the Redis ``EXPIRE`` command.hj{hhhjh}r(h]h]h]h]h]uhMh]r(hXERedis result backend: Now supports result expiration using the Redis rr}r(hXERedis result backend: Now supports result expiration using the Redis hjubj)r}r(hX ``EXPIRE``h}r(h]h]h]h]h]uhjh]rhXEXPIRErr}r(hUhjubahjubhX command.rr}r(hX command.hjubeubaubh)r}r(hX6unit tests: Don't leave threads running at tear down. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hX5unit tests: Don't leave threads running at tear down.rhjhhhjh}r(h]h]h]h]h]uhMh]rhX5unit tests: Don't leave threads running at tear down.rr}r(hjhjubaubaubh)r}r(hXCceleryd: Task results shown in logs are now truncated to 46 chars. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXBceleryd: Task results shown in logs are now truncated to 46 chars.rhjhhhjh}r(h]h]h]h]h]uhMh]rhXBceleryd: Task results shown in logs are now truncated to 46 chars.rr}r(hjhjubaubaubh)r}r(hX{``Task.__name__`` is now an alias to ``self.__class__.__name__``. This way tasks introspects more like regular functions. hjhNhjh}r(h]h]h]h]h]uhNhhh]rj )r}r(hUh}r(h]h]h]h]h]uhjh]rj )r}r(hXz``Task.__name__`` is now an alias to ``self.__class__.__name__``. This way tasks introspects more like regular functions. hjhhhj h}r(h]h]h]h]h]uhMh]r(j )r}r(hXA``Task.__name__`` is now an alias to ``self.__class__.__name__``.hjhhhj h}r(h]h]h]h]h]uhMh]r(j)r}r(hX``Task.__name__``h}r(h]h]h]h]h]uhjh]rhX Task.__name__rr}r(hUhjubahjubhX is now an alias to rr}r(hX is now an alias to hjubj)r}r(hX``self.__class__.__name__``h}r(h]h]h]h]h]uhjh]rhXself.__class__.__name__rr}r(hUhjubahjubhX.r}r(hX.hjubeubj5 )r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX7This way tasks introspects more like regular functions.rhjhhhjh}r(h]h]h]h]h]uhMh]rhX7This way tasks introspects more like regular functions.rr}r(hjhjubaubahjB ubeubahjC ubaubh)r}r(hX\``Task.retry``: Now raises :exc:`TypeError` if kwargs argument is empty. See issue #164. hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXH``Task.retry``: Now raises :exc:`TypeError` if kwargs argument is empty.hjhhhjh}r(h]h]h]h]h]uhMh]r(j)r}r(hX``Task.retry``h}r(h]h]h]h]h]uhjh]rhX Task.retryrr}r(hUhjubahjubhX : Now raises rr}r(hX : Now raises hjubj)r}r(hX:exc:`TypeError`rhjhhhjh}r(UreftypeXexcjjX TypeErrorU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-excreh]h]h]uhjh]rhX TypeErrorrr}r(hUhjubahjubaubhX if kwargs argument is empty.rr}r(hX if kwargs argument is empty.hjubeubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hXSee issue #164.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX See issue rr}r(hUhjubj)r}r(hUh}r(UreftypejU trackerconfigj U reftargetX164r h]h]h]h]h]uhjh]r j)r }r (hX#164h}r (h]h]r(jjeh]h]h]uhjh]rhX#164rr}r(hUhj ubahjubahjubhX.r}r(hUhjubeubahjubeubh)r}r(hXLtimedelta_seconds: Use ``timedelta.total_seconds`` if running on Python 2.7 hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXKtimedelta_seconds: Use ``timedelta.total_seconds`` if running on Python 2.7hjhhhjh}r(h]h]h]h]h]uhMh]r(hXtimedelta_seconds: Use rr}r(hXtimedelta_seconds: Use hjubj)r }r!(hX``timedelta.total_seconds``h}r"(h]h]h]h]h]uhjh]r#hXtimedelta.total_secondsr$r%}r&(hUhj ubahjubhX if running on Python 2.7r'r(}r)(hX if running on Python 2.7hjubeubaubh)r*}r+(hXL:class:`~celery.datastructures.TokenBucket`: Generic Token Bucket algorithm hjhhhjh}r,(h]h]h]h]h]uhNhhh]r-h)r.}r/(hXK:class:`~celery.datastructures.TokenBucket`: Generic Token Bucket algorithmhj*hhhjh}r0(h]h]h]h]h]uhMh]r1(j)r2}r3(hX+:class:`~celery.datastructures.TokenBucket`r4hj.hhhjh}r5(UreftypeXclassjjX!celery.datastructures.TokenBucketU refdomainXpyr6h]h]U refexplicith]h]h]jjj Nj NuhMh]r7j)r8}r9(hj4h}r:(h]h]r;(jj6Xpy-classr<eh]h]h]uhj2h]r=hX TokenBucketr>r?}r@(hUhj8ubahjubaubhX : Generic Token Bucket algorithmrArB}rC(hX : Generic Token Bucket algorithmhj.ubeubaubh)rD}rE(hXo:mod:`celery.events.state`: Recording of cluster state can now be paused and resumed, including support for buffering. .. method:: State.freeze(buffer=True) Pauses recording of the stream. If ``buffer`` is true, events received while being frozen will be buffered, and may be replayed later. .. method:: State.thaw(replay=True) Resumes recording of the stream. If ``replay`` is true, then the recorded buffer will be applied. .. method:: State.freeze_while(fun) With a function to apply, freezes the stream before, and replays the buffer after the function returns. hjhhhjh}rF(h]h]h]h]h]uhNhhh]rG(h)rH}rI(hXv:mod:`celery.events.state`: Recording of cluster state can now be paused and resumed, including support for buffering.hjDhhhjh}rJ(h]h]h]h]h]uhMh]rK(j)rL}rM(hX:mod:`celery.events.state`rNhjHhhhjh}rO(UreftypeXmodjjXcelery.events.stateU refdomainXpyrPh]h]U refexplicith]h]h]jjj Nj NuhMh]rQj)rR}rS(hjNh}rT(h]h]rU(jjPXpy-modrVeh]h]h]uhjLh]rWhXcelery.events.staterXrY}rZ(hUhjRubahjubaubhX\: Recording of cluster state can now be paused and resumed, including support for buffering.r[r\}r](hX\: Recording of cluster state can now be paused and resumed, including support for buffering.hjHubeubj)r^}r_(hUh}r`(h]h]h]h]h]uhjDh]ra(j)rb}rc(hUh}rd(h]h]h]h]h]Uentries]re(j?Xfreeze() (State method)hiUtrfauhj^h]hjubj)rg}rh(hUhj^hjh}ri(j j Xpyh]h]h]h]h]j Xmethodrjjjjuhhh]rk(j)rl}rm(hXState.freeze(buffer=True)hjghhhjh}rn(h]rohiajJNh]h]h]h]rphiajLhijMXStatejuhMhhh]rq(csphinx.addnodes desc_addname rr)rs}rt(hXState.hjlhhhU desc_addnameruh}rv(h]h]h]h]h]uhMhhh]rwhXState.rxry}rz(hUhjsubaubj)r{}r|(hXfreezehjlhhhjh}r}(h]h]h]h]h]uhMhhh]r~hXfreezerr}r(hUhj{ubaubjV)r}r(hUhjlhhhjYh}r(h]h]h]h]h]uhMhhh]rj\)r}r(hX buffer=Trueh}r(h]h]h]h]h]uhjh]rhX buffer=Truerr}r(hUhjubahjdubaubeubj-)r}r(hUhjghhhj0h}r(h]h]h]h]h]uhMhhh]r(h)r}r(hXPauses recording of the stream.rhjhhhjh}r(h]h]h]h]h]uhMhhh]rhXPauses recording of the stream.rr}r(hjhjubaubh)r}r(hXfIf ``buffer`` is true, events received while being frozen will be buffered, and may be replayed later.hjhhhjh}r(h]h]h]h]h]uhMhhh]r(hXIf rr}r(hXIf hjubj)r}r(hX ``buffer``h}r(h]h]h]h]h]uhjh]rhXbufferrr}r(hUhjubahjubhXY is true, events received while being frozen will be buffered, and may be replayed later.rr}r(hXY is true, events received while being frozen will be buffered, and may be replayed later.hjubeubeubeubj)r}r(hUh}r(h]h]h]h]h]Uentries]r(j?Xthaw() (State method)hyUtrauhj^h]hjubj)r}r(hUhj^hjh}r(j j Xpyh]h]h]h]h]j Xmethodrjjuhhh]r(j)r}r(hXState.thaw(replay=True)hjhhhjh}r(h]rhyajJNh]h]h]h]rhyajLhyjMXStatejuhMhhh]r(jr)r}r(hXState.hjhhhjuh}r(h]h]h]h]h]uhMhhh]rhXState.rr}r(hUhjubaubj)r}r(hXthawhjhhhjh}r(h]h]h]h]h]uhMhhh]rhXthawrr}r(hUhjubaubjV)r}r(hUhjhhhjYh}r(h]h]h]h]h]uhMhhh]rj\)r}r(hX replay=Trueh}r(h]h]h]h]h]uhjh]rhX replay=Truerr}r(hUhjubahjdubaubeubj-)r}r(hUhjhhhj0h}r(h]h]h]h]h]uhMhhh]r(h)r}r(hX Resumes recording of the stream.rhjhhhjh}r(h]h]h]h]h]uhMhhh]rhX Resumes recording of the stream.rr}r(hjhjubaubh)r}r(hX@If ``replay`` is true, then the recorded buffer will be applied.hjhhhjh}r(h]h]h]h]h]uhMhhh]r(hXIf rr}r(hXIf hjubj)r}r(hX ``replay``h}r(h]h]h]h]h]uhjh]rhXreplayrr}r(hUhjubahjubhX3 is true, then the recorded buffer will be applied.rr}r(hX3 is true, then the recorded buffer will be applied.hjubeubeubeubj)r}r(hUh}r(h]h]h]h]h]Uentries]r(j?Xfreeze_while() (State method)hUtrauhj^h]hjubj)r}r(hUhj^hjh}r(j j Xpyh]h]h]h]h]j Xmethodrjjuhhh]r(j)r}r(hXState.freeze_while(fun)hjhhhjh}r(h]rhajJNh]h]h]h]rhajLhjMXStatejuhMhhh]r(jr)r}r(hXState.hjhhhjuh}r(h]h]h]h]h]uhMhhh]rhXState.rr}r(hUhjubaubj)r}r(hX freeze_whilehjhhhjh}r (h]h]h]h]h]uhMhhh]r hX freeze_whiler r }r (hUhjubaubjV)r}r(hUhjhhhjYh}r(h]h]h]h]h]uhMhhh]rj\)r}r(hXfunh}r(h]h]h]h]h]uhjh]rhXfunrr}r(hUhjubahjdubaubeubj-)r}r(hUhjhhhj0h}r(h]h]h]h]h]uhMhhh]rh)r}r(hXgWith a function to apply, freezes the stream before, and replays the buffer after the function returns.rhjhhhjh}r (h]h]h]h]h]uhMhhh]r!hXgWith a function to apply, freezes the stream before, and replays the buffer after the function returns.r"r#}r$(hjhjubaubaubeubehjubeubh)r%}r&(hXm:meth:`EventReceiver.capture ` Now supports a timeout keyword argument. hjhhhjh}r'(h]h]h]h]h]uhNhhh]r(h)r)}r*(hXl:meth:`EventReceiver.capture ` Now supports a timeout keyword argument.hj%hhhjh}r+(h]h]h]h]h]uhMh]r,(j)r-}r.(hXC:meth:`EventReceiver.capture `r/hj)hhhjh}r0(UreftypeXmethjjX#celery.events.EventReceiver.captureU refdomainXpyr1h]h]U refexplicith]h]h]jjj Nj NuhMh]r2j)r3}r4(hj/h}r5(h]h]r6(jj1Xpy-methr7eh]h]h]uhj-h]r8hXEventReceiver.capturer9r:}r;(hUhj3ubahjubaubhX) Now supports a timeout keyword argument.r<r=}r>(hX) Now supports a timeout keyword argument.hj)ubeubaubh)r?}r@(hXceleryd: The mediator thread is now disabled if :setting:`CELERY_RATE_LIMITS` is enabled, and tasks are directly sent to the pool without going through the ready queue (*Optimization*). hjhhhjh}rA(h]h]h]h]h]uhNhhh]rBh)rC}rD(hXceleryd: The mediator thread is now disabled if :setting:`CELERY_RATE_LIMITS` is enabled, and tasks are directly sent to the pool without going through the ready queue (*Optimization*).hj?hhhjh}rE(h]h]h]h]h]uhMh]rF(hX0celeryd: The mediator thread is now disabled if rGrH}rI(hX0celeryd: The mediator thread is now disabled if hjCubj)rJ}rK(hX:setting:`CELERY_RATE_LIMITS`rLhjChhhjh}rM(UreftypeXsettingjjXCELERY_RATE_LIMITSU refdomainXstdrNh]h]U refexplicith]h]h]jjuhMh]rOj)rP}rQ(hjLh}rR(h]h]rS(jjNX std-settingrTeh]h]h]uhjJh]rUhXCELERY_RATE_LIMITSrVrW}rX(hUhjPubahjubaubhX\ is enabled, and tasks are directly sent to the pool without going through the ready queue (rYrZ}r[(hX\ is enabled, and tasks are directly sent to the pool without going through the ready queue (hjCubj )r\}r](hX*Optimization*h}r^(h]h]h]h]h]uhjCh]r_hX Optimizationr`ra}rb(hUhj\ubahj ubhX).rcrd}re(hX).hjCubeubaubeubjf)rf}rg(hX.. _v210-fixes:hjohhhjih}rh(h]h]h]h]h]jkj uhMhhh]ubeubh)ri}rj(hUhKhjhhjn}rkhjfshhh}rl(h]rmXfixesrnah]h]h]ro(j Uid10rpeh]rqhauhMhhjt}rrj jfsh]rs(h)rt}ru(hjhjihhhhh}rv(h]h]h]h]h]jkj uhMhhh]rwhXFixesrxry}rz(hjhjtubaubh)r{}r|(hUhjihhhhh}r}(jX*h]h]h]h]h]uhMhhh]r~(h)r}r(hXPool: Process timed out by `TimeoutHandler` must be joined by the Supervisor, so don't remove it from the internal process list. See issue #192. hj{hhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXPool: Process timed out by `TimeoutHandler` must be joined by the Supervisor, so don't remove it from the internal process list.hjhhhjh}r(h]h]h]h]h]uhMh]r(hXPool: Process timed out by rr}r(hXPool: Process timed out by hjubj()r}r(hX`TimeoutHandler`h}r(h]h]h]h]h]uhjh]rhXTimeoutHandlerrr}r(hUhjubahj0ubhXU must be joined by the Supervisor, so don't remove it from the internal process list.rr}r(hXU must be joined by the Supervisor, so don't remove it from the internal process list.hjubeubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hXSee issue #192.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX See issue rr}r(hUhjubj)r}r(hUh}r(UreftypejU trackerconfigj U reftargetX192rh]h]h]h]h]uhjh]rj)r}r(hX#192h}r(h]h]r(jjeh]h]h]uhjh]rhX#192rr}r(hUhjubahjubahjubhX.r}r(hUhjubeubahjubeubh)r}r(hX`TaskPublisher.delay_task` now supports exchange argument, so exchange can be overridden when sending tasks in bulk using the same publisher See issue #187. hj{hhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hX`TaskPublisher.delay_task` now supports exchange argument, so exchange can be overridden when sending tasks in bulk using the same publisherhjhhhjh}r(h]h]h]h]h]uhMh]r(j()r}r(hX`TaskPublisher.delay_task`h}r(h]h]h]h]h]uhjh]rhXTaskPublisher.delay_taskrr}r(hUhjubahj0ubhXr now supports exchange argument, so exchange can be overridden when sending tasks in bulk using the same publisherrr}r(hXr now supports exchange argument, so exchange can be overridden when sending tasks in bulk using the same publisherhjubeubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hXSee issue #187.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX See issue rr}r(hUhjubj)r}r(hUh}r(UreftypejU trackerconfigj U reftargetX187rh]h]h]h]h]uhjh]rj)r}r(hX#187h}r(h]h]r(jjeh]h]h]uhjh]rhX#187rr}r(hUhjubahjubahjubhX.r}r(hUhjubeubahjubeubh)r}r(hXkceleryd no longer marks tasks as revoked if :setting:`CELERY_IGNORE_RESULT` is enabled. See issue #207. hj{hhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXWceleryd no longer marks tasks as revoked if :setting:`CELERY_IGNORE_RESULT` is enabled.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX,celeryd no longer marks tasks as revoked if rr}r(hX,celeryd no longer marks tasks as revoked if hjubj)r}r(hX:setting:`CELERY_IGNORE_RESULT`rhjhhhjh}r(UreftypeXsettingjjXCELERY_IGNORE_RESULTU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj)r}r(hjh}r(h]h]r(jjX std-settingreh]h]h]uhjh]rhXCELERY_IGNORE_RESULTrr}r(hUhjubahjubaubhX is enabled.rr}r(hX is enabled.hjubeubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hXSee issue #207.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX See issue rr}r(hUhjubj)r}r(hUh}r(UreftypejU trackerconfigj U reftargetX207rh]h]h]h]h]uhjh]rj)r}r(hX#207h}r (h]h]r (jjeh]h]h]uhjh]r hX#207r r }r(hUhjubahjubahjubhX.r}r(hUhjubeubahjubeubh)r}r(hXAMQP Result backend: Fixed bug with ``result.get()`` if :setting:`CELERY_TRACK_STARTED` enabled. ``result.get()`` would stop consuming after receiving the :state:`STARTED` state. hj{hhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hX`AMQP Result backend: Fixed bug with ``result.get()`` if :setting:`CELERY_TRACK_STARTED` enabled.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX$AMQP Result backend: Fixed bug with rr}r(hX$AMQP Result backend: Fixed bug with hjubj)r}r(hX``result.get()``h}r(h]h]h]h]h]uhjh]rhX result.get()r r!}r"(hUhjubahjubhX if r#r$}r%(hX if hjubj)r&}r'(hX:setting:`CELERY_TRACK_STARTED`r(hjhhhjh}r)(UreftypeXsettingjjXCELERY_TRACK_STARTEDU refdomainXstdr*h]h]U refexplicith]h]h]jjuhMh]r+j)r,}r-(hj(h}r.(h]h]r/(jj*X std-settingr0eh]h]h]uhj&h]r1hXCELERY_TRACK_STARTEDr2r3}r4(hUhj,ubahjubaubhX enabled.r5r6}r7(hX enabled.hjubeubj)r8}r9(hUh}r:(h]h]h]h]h]uhjh]r;h)r<}r=(hXQ``result.get()`` would stop consuming after receiving the :state:`STARTED` state.hj8hhhjh}r>(h]h]h]h]h]uhMh]r?(j)r@}rA(hX``result.get()``h}rB(h]h]h]h]h]uhj<h]rChX result.get()rDrE}rF(hUhj@ubahjubhX* would stop consuming after receiving the rGrH}rI(hX* would stop consuming after receiving the hj<ubj)rJ}rK(hX:state:`STARTED`rLhj<hhhjh}rM(UreftypeXstatejjXSTARTEDU refdomainXstdrNh]h]U refexplicith]h]h]jjuhMh]rOj)rP}rQ(hjLh}rR(h]h]rS(jjNX std-staterTeh]h]h]uhjJh]rUhXSTARTEDrVrW}rX(hUhjPubahjubaubhX state.rYrZ}r[(hX state.hj<ubeubahjubeubh)r\}r](hXFixed bug where new processes created by the pool supervisor becomes stuck while reading from the task Queue. See http://bugs.python.org/issue10037 hj{hhhjh}r^(h]h]h]h]h]uhNhhh]r_(h)r`}ra(hXmFixed bug where new processes created by the pool supervisor becomes stuck while reading from the task Queue.rbhj\hhhjh}rc(h]h]h]h]h]uhMh]rdhXmFixed bug where new processes created by the pool supervisor becomes stuck while reading from the task Queue.rerf}rg(hjbhj`ubaubj)rh}ri(hUh}rj(h]h]h]h]h]uhj\h]rkh)rl}rm(hX%See http://bugs.python.org/issue10037hjhhhhjh}rn(h]h]h]h]h]uhMh]ro(hXSee rprq}rr(hXSee hjlubh)rs}rt(hX!http://bugs.python.org/issue10037ruh}rv(Urefurijuh]h]h]h]h]uhjlh]rwhX!http://bugs.python.org/issue10037rxry}rz(hUhjsubahjubeubahjubeubh)r{}r|(hXFixed timing issue when declaring the remote control command reply queue This issue could result in replies being lost, but have now been fixed. hj{hhhjh}r}(h]h]h]h]h]uhNhhh]r~(h)r}r(hXHFixed timing issue when declaring the remote control command reply queuerhj{hhhjh}r(h]h]h]h]h]uhMh]rhXHFixed timing issue when declaring the remote control command reply queuerr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhj{h]rh)r}r(hXGThis issue could result in replies being lost, but have now been fixed.rhjhhhjh}r(h]h]h]h]h]uhMh]rhXGThis issue could result in replies being lost, but have now been fixed.rr}r(hjhjubaubahjubeubh)r}r(hXBackward compatible `LoggerAdapter` implementation: Now works for Python 2.4. Also added support for several new methods: ``fatal``, ``makeRecord``, ``_log``, ``log``, ``isEnabledFor``, ``addHandler``, ``removeHandler``. hj{hhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXMBackward compatible `LoggerAdapter` implementation: Now works for Python 2.4.hjhhhjh}r(h]h]h]h]h]uhMh]r(hXBackward compatible rr}r(hXBackward compatible hjubj()r}r(hX`LoggerAdapter`h}r(h]h]h]h]h]uhjh]rhX LoggerAdapterrr}r(hUhjubahj0ubhX* implementation: Now works for Python 2.4.rr}r(hX* implementation: Now works for Python 2.4.hjubeubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hXAlso added support for several new methods: ``fatal``, ``makeRecord``, ``_log``, ``log``, ``isEnabledFor``, ``addHandler``, ``removeHandler``.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX,Also added support for several new methods: rr}r(hX,Also added support for several new methods: hjubj)r}r(hX ``fatal``h}r(h]h]h]h]h]uhjh]rhXfatalrr}r(hUhjubahjubhX, rr}r(hX, hjubj)r}r(hX``makeRecord``h}r(h]h]h]h]h]uhjh]rhX makeRecordrr}r(hUhjubahjubhX, rr}r(hX, hjubj)r}r(hX``_log``h}r(h]h]h]h]h]uhjh]rhX_logrr}r(hUhjubahjubhX, rr}r(hX, hjubj)r}r(hX``log``h}r(h]h]h]h]h]uhjh]rhXlogrr}r(hUhjubahjubhX, rr}r(hX, hjubj)r}r(hX``isEnabledFor``h}r(h]h]h]h]h]uhjh]rhX isEnabledForrr}r(hUhjubahjubhX, rr}r(hX, hjubj)r}r(hX``addHandler``h}r(h]h]h]h]h]uhjh]rhX addHandlerrr}r(hUhjubahjubhX, rr}r(hX, hjubj)r}r(hX``removeHandler``h}r(h]h]h]h]h]uhjh]rhX removeHandlerrr}r(hUhjubahjubhX.r}r(hX.hjubeubahjubeubeubjf)r}r(hX.. _v210-experimental:hjihhhjih}r(h]h]h]h]h]jkUv210-experimentalruhMhhh]ubeubh)r}r(hUhjhhjn}rhjshhh}r(h]h]h]h]r(jjeh]r(hQheuhMhhjt}rjjsh]r(h)r}r(hj"hjhhhhh}r(h]h]h]h]h]jkjuhMhhh]rhX Experimentalrr }r (hj"hjubaubh)r }r (hUhjhhhhh}r (jX*h]h]h]h]h]uhMhhh]r(h)r}r(hXceleryd-multi: Added daemonization support. celeryd-multi can now be used to start, stop and restart worker nodes. $ celeryd-multi start jerry elaine george kramer This also creates PID files and log files (:file:`celeryd@jerry.pid`, ..., :file:`celeryd@jerry.log`. To specify a location for these files use the ``--pidfile`` and ``--logfile`` arguments with the ``%n`` format:: $ celeryd-multi start jerry elaine george kramer \ --logfile=/var/log/celeryd@%n.log \ --pidfile=/var/run/celeryd@%n.pid Stopping:: $ celeryd-multi stop jerry elaine george kramer Restarting. The nodes will be restarted one by one as the old ones are shutdown:: $ celeryd-multi restart jerry elaine george kramer Killing the nodes (**WARNING**: Will discard currently executing tasks):: $ celeryd-multi kill jerry elaine george kramer See ``celeryd-multi help`` for help. hj hhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hX+celeryd-multi: Added daemonization support.rhjhhhjh}r(h]h]h]h]h]uhMh]rhX+celeryd-multi: Added daemonization support.rr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r (hXFceleryd-multi can now be used to start, stop and restart worker nodes.r!hjhhhjh}r"(h]h]h]h]h]uhMh]r#hXFceleryd-multi can now be used to start, stop and restart worker nodes.r$r%}r&(hj!hjubaubj)r'}r((hUh}r)(h]h]h]h]h]uhjh]r*h)r+}r,(hX0$ celeryd-multi start jerry elaine george kramerr-hj'hhhjh}r.(h]h]h]h]h]uhMh]r/hX0$ celeryd-multi start jerry elaine george kramerr0r1}r2(hj-hj+ubaubahjubh)r3}r4(hXThis also creates PID files and log files (:file:`celeryd@jerry.pid`, ..., :file:`celeryd@jerry.log`. To specify a location for these files use the ``--pidfile`` and ``--logfile`` arguments with the ``%n`` format::hjhhhjh}r5(h]h]h]h]h]uhMh]r6(hX+This also creates PID files and log files (r7r8}r9(hX+This also creates PID files and log files (hj3ubj)r:}r;(hUh}r<(h]h]h]h]r=Xfiler>aUrolej>h]uhj3h]r?hXceleryd@jerry.pidr@rA}rB(hXceleryd@jerry.pidhj:ubahjubhX, ..., rCrD}rE(hX, ..., hj3ubj)rF}rG(hUh}rH(h]h]h]h]rIXfilerJaUrolejJh]uhj3h]rKhXceleryd@jerry.logrLrM}rN(hXceleryd@jerry.loghjFubahjubhX0. To specify a location for these files use the rOrP}rQ(hX0. To specify a location for these files use the hj3ubj)rR}rS(hX ``--pidfile``h}rT(h]h]h]h]h]uhj3h]rUhX --pidfilerVrW}rX(hUhjRubahjubhX and rYrZ}r[(hX and hj3ubj)r\}r](hX ``--logfile``h}r^(h]h]h]h]h]uhj3h]r_hX --logfiler`ra}rb(hUhj\ubahjubhX arguments with the rcrd}re(hX arguments with the hj3ubj)rf}rg(hX``%n``h}rh(h]h]h]h]h]uhj3h]rihX%nrjrk}rl(hUhjfubahjubhX format:rmrn}ro(hX format:hj3ubeubjM)rp}rq(hX$ celeryd-multi start jerry elaine george kramer \ --logfile=/var/log/celeryd@%n.log \ --pidfile=/var/run/celeryd@%n.pidhjhjPh}rr(jTjUh]h]h]h]h]uhMh]rshX$ celeryd-multi start jerry elaine george kramer \ --logfile=/var/log/celeryd@%n.log \ --pidfile=/var/run/celeryd@%n.pidrtru}rv(hUhjpubaubh)rw}rx(hX Stopping::hjhhhjh}ry(h]h]h]h]h]uhM h]rzhX Stopping:r{r|}r}(hX Stopping:hjwubaubjM)r~}r(hX/$ celeryd-multi stop jerry elaine george kramerhjhjPh}r(jTjUh]h]h]h]h]uhM h]rhX/$ celeryd-multi stop jerry elaine george kramerrr}r(hUhj~ubaubh)r}r(hXQRestarting. The nodes will be restarted one by one as the old ones are shutdown::hjhhhjh}r(h]h]h]h]h]uhMh]rhXPRestarting. The nodes will be restarted one by one as the old ones are shutdown:rr}r(hXPRestarting. The nodes will be restarted one by one as the old ones are shutdown:hjubaubjM)r}r(hX2$ celeryd-multi restart jerry elaine george kramerhjhjPh}r(jTjUh]h]h]h]h]uhMh]rhX2$ celeryd-multi restart jerry elaine george kramerrr}r(hUhjubaubh)r}r(hXIKilling the nodes (**WARNING**: Will discard currently executing tasks)::hjhhhjh}r(h]h]h]h]h]uhMh]r(hXKilling the nodes (rr}r(hXKilling the nodes (hjubj )r}r(hX **WARNING**h}r(h]h]h]h]h]uhjh]rhXWARNINGrr}r(hUhjubahj ubhX*: Will discard currently executing tasks):rr}r(hX*: Will discard currently executing tasks):hjubeubjM)r}r(hX/$ celeryd-multi kill jerry elaine george kramerhjhjPh}r(jTjUh]h]h]h]h]uhMh]rhX/$ celeryd-multi kill jerry elaine george kramerrr}r(hUhjubaubh)r}r(hX$See ``celeryd-multi help`` for help.hjhhhjh}r(h]h]h]h]h]uhMh]r(hXSee rr}r(hXSee hjubj)r}r(hX``celeryd-multi help``h}r(h]h]h]h]h]uhjh]rhXceleryd-multi helprr}r(hUhjubahjubhX for help.rr}r(hX for help.hjubeubehjubeubh)r}r(hXceleryd-multi: ``start`` command renamed to ``show``. ``celeryd-multi start`` will now actually start and detach worker nodes. To just generate the commands you have to use ``celeryd-multi show``. hj hhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hX5celeryd-multi: ``start`` command renamed to ``show``.hjhhhjh}r(h]h]h]h]h]uhMh]r(hXceleryd-multi: rr}r(hXceleryd-multi: hjubj)r}r(hX ``start``h}r(h]h]h]h]h]uhjh]rhXstartrr}r(hUhjubahjubhX command renamed to rr}r(hX command renamed to hjubj)r}r(hX``show``h}r(h]h]h]h]h]uhjh]rhXshowrr}r(hUhjubahjubhX.r}r(hX.hjubeubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX``celeryd-multi start`` will now actually start and detach worker nodes. To just generate the commands you have to use ``celeryd-multi show``.hjhhhjh}r(h]h]h]h]h]uhMh]r(j)r}r(hX``celeryd-multi start``h}r(h]h]h]h]h]uhjh]rhXceleryd-multi startrr}r(hUhjubahjubhX` will now actually start and detach worker nodes. To just generate the commands you have to use rr}r(hX` will now actually start and detach worker nodes. To just generate the commands you have to use hjubj)r}r(hX``celeryd-multi show``h}r(h]h]h]h]h]uhjh]rhXceleryd-multi showrr}r(hUhjubahjubhX.r}r(hX.hjubeubahjubeubh)r}r(hXceleryd: Added ``--pidfile`` argument. The worker will write its pid when it starts. The worker will not be started if this file exists and the pid contained is still alive. hj hhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hX&celeryd: Added ``--pidfile`` argument.hjhhhjh}r(h]h]h]h]h]uhMh]r(hXceleryd: Added rr}r(hXceleryd: Added hjubj)r}r(hX ``--pidfile``h}r(h]h]h]h]h]uhjh]rhX --pidfilerr}r(hUhjubahjubhX argument.rr}r (hX argument.hjubeubj)r }r (hUh}r (h]h]h]h]h]uhjh]r h)r}r(hXThe worker will write its pid when it starts. The worker will not be started if this file exists and the pid contained is still alive.rhj hhhjh}r(h]h]h]h]h]uhM h]rhXThe worker will write its pid when it starts. The worker will not be started if this file exists and the pid contained is still alive.rr}r(hjhjubaubahjubeubh)r}r(hXAdded generic init.d script using ``celeryd-multi`` http://github.com/ask/celery/tree/master/contrib/generic-init.d/celeryd hj hhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hX3Added generic init.d script using ``celeryd-multi``hjhhhjh}r(h]h]h]h]h]uhM#h]r(hX"Added generic init.d script using rr}r (hX"Added generic init.d script using hjubj)r!}r"(hX``celeryd-multi``h}r#(h]h]h]h]h]uhjh]r$hX celeryd-multir%r&}r'(hUhj!ubahjubeubj)r(}r)(hUh}r*(h]h]h]h]h]uhjh]r+h)r,}r-(hXGhttp://github.com/ask/celery/tree/master/contrib/generic-init.d/celerydr.hj(hhhjh}r/(h]h]h]h]h]uhM%h]r0h)r1}r2(hj.h}r3(Urefurij.h]h]h]h]h]uhj,h]r4hXGhttp://github.com/ask/celery/tree/master/contrib/generic-init.d/celerydr5r6}r7(hUhj1ubahjubaubahjubeubeubjf)r8}r9(hX.. _v210-documentation:hjhhhjih}r:(h]h]h]h]h]jkj0uhM'hhh]ubeubh)r;}r<(hUhKhjhhjn}r=hgj8shhh}r>(h]r?j ah]h]h]r@(j0Uid11rAeh]rBhgauhM*hhjt}rCj0j8sh]rD(h)rE}rF(hj5hj;hhhhh}rG(h]h]h]h]h]jkj/uhM*hhh]rHhX DocumentationrIrJ}rK(hj5hjEubaubh)rL}rM(hUhj;hhhhh}rN(jX*h]h]h]h]h]uhM,hhh]rO(h)rP}rQ(hX%Added User guide section: Monitoring hjLhhhjh}rR(h]h]h]h]h]uhNhhh]rSh)rT}rU(hX$Added User guide section: MonitoringrVhjPhhhjh}rW(h]h]h]h]h]uhM,h]rXhX$Added User guide section: MonitoringrYrZ}r[(hjVhjTubaubaubh)r\}r](hXeAdded user guide section: Periodic Tasks Moved from `getting-started/periodic-tasks` and updated. hjLhhhjh}r^(h]h]h]h]h]uhNhhh]r_(h)r`}ra(hX(Added user guide section: Periodic Tasksrbhj\hhhjh}rc(h]h]h]h]h]uhM.h]rdhX(Added user guide section: Periodic Tasksrerf}rg(hjbhj`ubaubj)rh}ri(hUh}rj(h]h]h]h]h]uhj\h]rkh)rl}rm(hX8Moved from `getting-started/periodic-tasks` and updated.hjhhhhjh}rn(h]h]h]h]h]uhM0h]ro(hX Moved from rprq}rr(hX Moved from hjlubj()rs}rt(hX `getting-started/periodic-tasks`h}ru(h]h]h]h]h]uhjlh]rvhXgetting-started/periodic-tasksrwrx}ry(hUhjsubahj0ubhX and updated.rzr{}r|(hX and updated.hjlubeubahjubeubh)r}}r~(hX6tutorials/external moved to new section: "community". hjLhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hX5tutorials/external moved to new section: "community".rhj}hhhjh}r(h]h]h]h]h]uhM2h]rhX5tutorials/external moved to new section: "community".rr}r(hjhjubaubaubh)r}r(hXsReferences has been added to all sections in the documentation. This makes it easier to link between documents. hjLhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hX?References has been added to all sections in the documentation.rhjhhhjh}r(h]h]h]h]h]uhM4h]rhX?References has been added to all sections in the documentation.rr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX/This makes it easier to link between documents.rhjhhhjh}r(h]h]h]h]h]uhM6h]rhX/This makes it easier to link between documents.rr}r(hjhjubaubahjubeubeubjf)r}r(hX.. _version-2.0.3:hj;hhhjih}r(h]h]h]h]h]jkjCuhM8hhh]ubeubeubh)r}r(hUhhhhjn}rhjshhh}r(h]h]h]h]r(jCUid12reh]r(hSheuhM;hhjt}rjCjsh]r(h)r}r(hjHhjhhhhh}r(h]h]h]h]h]jkjBuhM;hhh]rhX2.0.3rr}r(hjHhjubaubj)r}r(hUhjhhhjh}r(h]h]h]h]h]uhM<hhh]rj)r}r(hUhjhhhjh}r(h]h]h]h]h]uhM<hhh]r(j)r}r(hX release-daterh}r(h]h]h]h]h]uhjh]rhX release-daterr}r(hjhjubahjubj)r}r(hX2010-08-27 12:00 P.M CEST h}r(h]h]h]h]h]uhjh]rh)r}r(hX2010-08-27 12:00 P.M CESTrhjhhhjh}r(h]h]h]h]h]uhM<h]rhX2010-08-27 12:00 P.M CESTrr}r(hjhjubaubahjubeubaubjf)r}r(hX.. _v203-fixes:hjhhhjih}r(h]h]h]h]h]jkjZuhM>hhh]ubh)r}r(hUhKhjhhjn}rhjshhh}r(h]rXfixesrah]h]h]r(jZUid13reh]rhauhMAhhjt}rjZjsh]r(h)r}r(hj_hjhhhhh}r(h]h]h]h]h]jkjYuhMAhhh]rhXFixesrr}r(hj_hjubaubh)r}r(hUhjhhhhh}r(jX*h]h]h]h]h]uhMChhh]r(h)r}r(hXNceleryd: Properly handle connection errors happening while closing consumers. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXMceleryd: Properly handle connection errors happening while closing consumers.rhjhhhjh}r(h]h]h]h]h]uhMCh]rhXMceleryd: Properly handle connection errors happening while closing consumers.rr}r(hjhjubaubaubh)r}r(hXmceleryd: Events are now buffered if the connection is down, then sent when the connection is re-established. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXlceleryd: Events are now buffered if the connection is down, then sent when the connection is re-established.rhjhhhjh}r(h]h]h]h]h]uhMFh]rhXlceleryd: Events are now buffered if the connection is down, then sent when the connection is re-established.rr}r(hjhjubaubaubh)r}r(hXNo longer depends on the :mod:`mailer` package. This package had a name space collision with `django-mailer`, so its functionality was replaced. hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hX/No longer depends on the :mod:`mailer` package.hjhhhjh}r(h]h]h]h]h]uhMIh]r(hXNo longer depends on the r r }r (hXNo longer depends on the hjubj)r }r (hX :mod:`mailer`rhjhhhjh}r(UreftypeXmodjjXmailerU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhMIh]rj)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhj h]rhXmailerrr}r(hUhjubahjubaubhX package.rr}r(hX package.hjubeubj)r}r(hUh}r (h]h]h]h]h]uhjh]r!h)r"}r#(hX`This package had a name space collision with `django-mailer`, so its functionality was replaced.hjhhhjh}r$(h]h]h]h]h]uhMKh]r%(hX-This package had a name space collision with r&r'}r((hX-This package had a name space collision with hj"ubj()r)}r*(hX`django-mailer`h}r+(h]h]h]h]h]uhj"h]r,hX django-mailerr-r.}r/(hUhj)ubahj0ubhX$, so its functionality was replaced.r0r1}r2(hX$, so its functionality was replaced.hj"ubeubahjubeubh)r3}r4(hXRedis result backend: Documentation typos: Redis doesn't have database names, but database numbers. The default database is now 0. hjhhhjh}r5(h]h]h]h]h]uhNhhh]r6h)r7}r8(hXRedis result backend: Documentation typos: Redis doesn't have database names, but database numbers. The default database is now 0.r9hj3hhhjh}r:(h]h]h]h]h]uhMNh]r;hXRedis result backend: Documentation typos: Redis doesn't have database names, but database numbers. The default database is now 0.r<r=}r>(hj9hj7ubaubaubh)r?}r@(hX:class:`~celery.task.control.inspect`: ``registered_tasks`` was requesting an invalid command because of a typo. See issue #170. hjhhhjh}rA(h]h]h]h]h]uhNhhh]rB(h)rC}rD(hXp:class:`~celery.task.control.inspect`: ``registered_tasks`` was requesting an invalid command because of a typo.hj?hhhjh}rE(h]h]h]h]h]uhMQh]rF(j)rG}rH(hX%:class:`~celery.task.control.inspect`rIhjChhhjh}rJ(UreftypeXclassjjXcelery.task.control.inspectU refdomainXpyrKh]h]U refexplicith]h]h]jjj Nj NuhMQh]rLj)rM}rN(hjIh}rO(h]h]rP(jjKXpy-classrQeh]h]h]uhjGh]rRhXinspectrSrT}rU(hUhjMubahjubaubhX: rVrW}rX(hX: hjCubj)rY}rZ(hX``registered_tasks``h}r[(h]h]h]h]h]uhjCh]r\hXregistered_tasksr]r^}r_(hUhjYubahjubhX5 was requesting an invalid command because of a typo.r`ra}rb(hX5 was requesting an invalid command because of a typo.hjCubeubj)rc}rd(hUh}re(h]h]h]h]h]uhj?h]rfh)rg}rh(hXSee issue #170.hjchhhjh}ri(h]h]h]h]h]uhMTh]rj(hX See issue rkrl}rm(hUhjgubj)rn}ro(hUh}rp(UreftypejU trackerconfigj U reftargetX170rqh]h]h]h]h]uhjgh]rrj)rs}rt(hX#170h}ru(h]h]rv(jjeh]h]h]uhjnh]rwhX#170rxry}rz(hUhjsubahjubahjubhX.r{}r|(hUhjgubeubahjubeubh)r}}r~(hX:setting:`CELERY_ROUTES`: Values defined in the route should now have precedence over values defined in :setting:`CELERY_QUEUES` when merging the two. With the follow settings:: CELERY_QUEUES = {"cpubound": {"exchange": "cpubound", "routing_key": "cpubound"}} CELERY_ROUTES = {"tasks.add": {"queue": "cpubound", "routing_key": "tasks.add", "serializer": "json"}} The final routing options for ``tasks.add`` will become:: {"exchange": "cpubound", "routing_key": "tasks.add", "serializer": "json"} This was not the case before: the values in :setting:`CELERY_QUEUES` would take precedence. hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hX:setting:`CELERY_ROUTES`: Values defined in the route should now have precedence over values defined in :setting:`CELERY_QUEUES` when merging the two.hj}hhhjh}r(h]h]h]h]h]uhMVh]r(j)r}r(hX:setting:`CELERY_ROUTES`rhjhhhjh}r(UreftypeXsettingjjX CELERY_ROUTESU refdomainXstdrh]h]U refexplicith]h]h]jjuhMVh]rj)r}r(hjh}r(h]h]r(jjX std-settingreh]h]h]uhjh]rhX CELERY_ROUTESrr}r(hUhjubahjubaubhXP: Values defined in the route should now have precedence over values defined in rr}r(hXP: Values defined in the route should now have precedence over values defined in hjubj)r}r(hX:setting:`CELERY_QUEUES`rhjhhhjh}r(UreftypeXsettingjjX CELERY_QUEUESU refdomainXstdrh]h]U refexplicith]h]h]jjuhMVh]rj)r}r(hjh}r(h]h]r(jjX std-settingreh]h]h]uhjh]rhX CELERY_QUEUESrr}r(hUhjubahjubaubhX when merging the two.rr}r(hX when merging the two.hjubeubj)r}r(hUh}r(h]h]h]h]h]uhj}h]r(h)r}r(hXWith the follow settings::hjhhhjh}r(h]h]h]h]h]uhMZh]rhXWith the follow settings:rr}r(hXWith the follow settings:hjubaubjM)r}r(hXCELERY_QUEUES = {"cpubound": {"exchange": "cpubound", "routing_key": "cpubound"}} CELERY_ROUTES = {"tasks.add": {"queue": "cpubound", "routing_key": "tasks.add", "serializer": "json"}}hjhjPh}r(jTjUh]h]h]h]h]uhM\h]rhXCELERY_QUEUES = {"cpubound": {"exchange": "cpubound", "routing_key": "cpubound"}} CELERY_ROUTES = {"tasks.add": {"queue": "cpubound", "routing_key": "tasks.add", "serializer": "json"}}rr}r(hUhjubaubh)r}r(hX9The final routing options for ``tasks.add`` will become::hjhhhjh}r(h]h]h]h]h]uhMch]r(hXThe final routing options for rr}r(hXThe final routing options for hjubj)r}r(hX ``tasks.add``h}r(h]h]h]h]h]uhjh]rhX tasks.addrr}r(hUhjubahjubhX will become:rr}r(hX will become:hjubeubjM)r}r(hXL{"exchange": "cpubound", "routing_key": "tasks.add", "serializer": "json"}hjhjPh}r(jTjUh]h]h]h]h]uhMeh]rhXL{"exchange": "cpubound", "routing_key": "tasks.add", "serializer": "json"}rr}r(hUhjubaubh)r}r(hX[This was not the case before: the values in :setting:`CELERY_QUEUES` would take precedence.hjhhhjh}r(h]h]h]h]h]uhMih]r(hX,This was not the case before: the values in rr}r(hX,This was not the case before: the values in hjubj)r}r(hX:setting:`CELERY_QUEUES`rhjhhhjh}r(UreftypeXsettingjjX CELERY_QUEUESU refdomainXstdrh]h]U refexplicith]h]h]jjuhMih]rj)r}r(hjh}r(h]h]r(jjX std-settingreh]h]h]uhjh]rhX CELERY_QUEUESrr}r(hUhjubahjubaubhX would take precedence.rr}r(hX would take precedence.hjubeubehjubeubh)r}r(hXZWorker crashed if the value of :setting:`CELERY_TASK_ERROR_WHITELIST` was not an iterable hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXYWorker crashed if the value of :setting:`CELERY_TASK_ERROR_WHITELIST` was not an iterablehjhhhjh}r(h]h]h]h]h]uhMlh]r(hXWorker crashed if the value of rr}r(hXWorker crashed if the value of hjubj)r}r(hX&:setting:`CELERY_TASK_ERROR_WHITELIST`rhjhhhjh}r(UreftypeXsettingjjXCELERY_TASK_ERROR_WHITELISTU refdomainXstdrh]h]U refexplicith]h]h]jjuhMlh]rj)r}r(hjh}r(h]h]r(jjX std-settingreh]h]h]uhjh]rhXCELERY_TASK_ERROR_WHITELISTrr}r(hUhjubahjubaubhX was not an iterablerr}r(hX was not an iterablehjubeubaubh)r }r (hXN:func:`~celery.execute.apply`: Make sure ``kwargs["task_id"]`` is always set. hjhhhjh}r (h]h]h]h]h]uhNhhh]r h)r }r(hXM:func:`~celery.execute.apply`: Make sure ``kwargs["task_id"]`` is always set.hj hhhjh}r(h]h]h]h]h]uhMoh]r(j)r}r(hX:func:`~celery.execute.apply`rhj hhhjh}r(UreftypeXfuncjjXcelery.execute.applyU refdomainXpyrh]h]U refexplicith]h]h]jjj Nj NuhMoh]rj)r}r(hjh}r(h]h]r(jjXpy-funcreh]h]h]uhjh]rhXapply()rr}r(hUhjubahjubaubhX : Make sure r r!}r"(hX : Make sure hj ubj)r#}r$(hX``kwargs["task_id"]``h}r%(h]h]h]h]h]uhj h]r&hXkwargs["task_id"]r'r(}r)(hUhj#ubahjubhX is always set.r*r+}r,(hX is always set.hj ubeubaubh)r-}r.(hXr``AsyncResult.traceback``: Now returns :const:`None`, instead of raising :exc:`KeyError` if traceback is missing. hjhhhjh}r/(h]h]h]h]h]uhNhhh]r0h)r1}r2(hXq``AsyncResult.traceback``: Now returns :const:`None`, instead of raising :exc:`KeyError` if traceback is missing.hj-hhhjh}r3(h]h]h]h]h]uhMrh]r4(j)r5}r6(hX``AsyncResult.traceback``h}r7(h]h]h]h]h]uhj1h]r8hXAsyncResult.tracebackr9r:}r;(hUhj5ubahjubhX: Now returns r<r=}r>(hX: Now returns hj1ubj)r?}r@(hX :const:`None`rAhj1hhhjh}rB(UreftypeXconstjjXNoneU refdomainXpyrCh]h]U refexplicith]h]h]jjj Nj NuhMrh]rDj)rE}rF(hjAh}rG(h]h]rH(jjCXpy-constrIeh]h]h]uhj?h]rJhXNonerKrL}rM(hUhjEubahjubaubhX, instead of raising rNrO}rP(hX, instead of raising hj1ubj)rQ}rR(hX:exc:`KeyError`rShj1hhhjh}rT(UreftypeXexcjjXKeyErrorU refdomainXpyrUh]h]U refexplicith]h]h]jjj Nj NuhMrh]rVj)rW}rX(hjSh}rY(h]h]rZ(jjUXpy-excr[eh]h]h]uhjQh]r\hXKeyErrorr]r^}r_(hUhjWubahjubaubhX if traceback is missing.r`ra}rb(hX if traceback is missing.hj1ubeubaubh)rc}rd(hXg:class:`~celery.task.control.inspect`: Replies did not work correctly if no destination was specified. hjhhhjh}re(h]h]h]h]h]uhNhhh]rfh)rg}rh(hXf:class:`~celery.task.control.inspect`: Replies did not work correctly if no destination was specified.hjchhhjh}ri(h]h]h]h]h]uhMuh]rj(j)rk}rl(hX%:class:`~celery.task.control.inspect`rmhjghhhjh}rn(UreftypeXclassjjXcelery.task.control.inspectU refdomainXpyroh]h]U refexplicith]h]h]jjj Nj NuhMuh]rpj)rq}rr(hjmh}rs(h]h]rt(jjoXpy-classrueh]h]h]uhjkh]rvhXinspectrwrx}ry(hUhjqubahjubaubhXA: Replies did not work correctly if no destination was specified.rzr{}r|(hXA: Replies did not work correctly if no destination was specified.hjgubeubaubh)r}}r~(hX1Can now store result/metadata for custom states. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hX0Can now store result/metadata for custom states.rhj}hhhjh}r(h]h]h]h]h]uhMxh]rhX0Can now store result/metadata for custom states.rr}r(hjhjubaubaubh)r}r(hXNceleryd: A warning is now emitted if the sending of task error e-mails fails. hjhhhjh}r(h]h]h]h]h]uhNhhh]rh)r}r(hXMceleryd: A warning is now emitted if the sending of task error e-mails fails.rhjhhhjh}r(h]h]h]h]h]uhMzh]rhXMceleryd: A warning is now emitted if the sending of task error e-mails fails.rr}r(hjhjubaubaubh)r}r(hXaceleryev: Curses monitor no longer crashes if the terminal window is resized. See issue #160. hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXMceleryev: Curses monitor no longer crashes if the terminal window is resized.rhjhhhjh}r(h]h]h]h]h]uhM}h]rhXMceleryev: Curses monitor no longer crashes if the terminal window is resized.rr}r(hjhjubaubj)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hXSee issue #160.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX See issue rr}r(hUhjubj)r}r(hUh}r(UreftypejU trackerconfigj U reftargetX160rh]h]h]h]h]uhjh]rj)r}r(hX#160h}r(h]h]r(jjeh]h]h]uhjh]rhX#160rr}r(hUhjubahjubahjubhX.r}r(hUhjubeubahjubeubh)r}r(hXceleryd: On OS X it is not possible to run ``os.exec*`` in a process that is threaded. This breaks the SIGHUP restart handler, and is now disabled on OS X, emitting a warning instead. See issue #152. hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXVceleryd: On OS X it is not possible to run ``os.exec*`` in a process that is threaded.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX+celeryd: On OS X it is not possible to run rr}r(hX+celeryd: On OS X it is not possible to run hjubj)r}r(hX ``os.exec*``h}r(h]h]h]h]h]uhjh]rhXos.exec*rr}r(hUhjubahjubhX in a process that is threaded.rr}r(hX in a process that is threaded.hjubeubj)r}r(hUh}r(h]h]h]h]h]uhjh]r(j)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hX`This breaks the SIGHUP restart handler, and is now disabled on OS X, emitting a warning instead.rhjhhhjh}r(h]h]h]h]h]uhMh]rhX`This breaks the SIGHUP restart handler, and is now disabled on OS X, emitting a warning instead.rr}r(hjhjubaubahjubh)r}r(hXSee issue #152.hjhhhjh}r(h]h]h]h]h]uhMh]r(hX See issue rr}r(hUhjubj)r}r(hUh}r(UreftypejU trackerconfigj U reftargetX152rh]h]h]h]h]uhjh]rj)r}r(hX#152h}r(h]h]r(jjeh]h]h]uhjh]rhX#152rr}r(hUhjubahjubahjubhX.r}r(hUhjubeubehjubeubh)r}r(hXv:mod:`celery.execute.trace`: Properly handle ``raise(str)``, which is still allowed in Python 2.4. See issue #175. hjhhhjh}r(h]h]h]h]h]uhNhhh]r(h)r}r(hXb:mod:`celery.execute.trace`: Properly handle ``raise(str)``, which is still allowed in Python 2.4.hjhhhjh}r(h]h]h]h]h]uhMh]r(j)r}r(hX:mod:`celery.execute.trace`r hjhhhjh}r (UreftypeXmodjjXcelery.execute.traceU refdomainXpyr h]h]U refexplicith]h]h]jjj Nj NuhMh]r j)r }r (hj h}r (h]h]r (jj Xpy-modr eh]h]h]uhjh]r hXcelery.execute.tracer r }r (hUhj ubahjubaubhX: Properly handle r r }r (hX: Properly handle hjubj)r }r (hX``raise(str)``h}r (h]h]h]h]h]uhjh]r hX raise(str)r r }r (hUhj ubahjubhX', which is still allowed in Python 2.4.r r }r (hX', which is still allowed in Python 2.4.hjubeubj)r }r (hUh}r (h]h]h]h]h]uhjh]r h)r }r (hXSee issue #175.hj hhhjh}r (h]h]h]h]h]uhMh]r! (hX See issue r" r# }r$ (hUhj ubj)r% }r& (hUh}r' (UreftypejU trackerconfigj U reftargetX175r( h]h]h]h]h]uhj h]r) j)r* }r+ (hX#175h}r, (h]h]r- (jjeh]h]h]uhj% h]r. hX#175r/ r0 }r1 (hUhj* ubahjubahjubhX.r2 }r3 (hUhj ubeubahjubeubh)r4 }r5 (hXUsing urllib2 in a periodic task on OS X crashed because of the proxy auto detection used in OS X. This is now fixed by using a workaround. See issue #143. hjhhhjh}r6 (h]h]h]h]h]uhNhhh]r7 (h)r8 }r9 (hXbUsing urllib2 in a periodic task on OS X crashed because of the proxy auto detection used in OS X.r: hj4 hhhjh}r; (h]h]h]h]h]uhMh]r< hXbUsing urllib2 in a periodic task on OS X crashed because of the proxy auto detection used in OS X.r= r> }r? (hj: hj8 ubaubj)r@ }rA (hUh}rB (h]h]h]h]h]uhj4 h]rC h)rD }rE (hX8This is now fixed by using a workaround. See issue #143.hj@ hhhjh}rF (h]h]h]h]h]uhMh]rG (hX3This is now fixed by using a workaround. See issue rH rI }rJ (hUhjD ubj)rK }rL (hUh}rM (UreftypejU trackerconfigj U reftargetX143rN h]h]h]h]h]uhjD h]rO j)rP }rQ (hX#143h}rR (h]h]rS (jjeh]h]h]uhjK h]rT hX#143rU rV }rW (hUhjP ubahjubahjubhX.rX }rY (hUhjD ubeubahjubeubh)rZ }r[ (hXODebian init scripts: Commands should not run in a sub shell See issue #163. hjhhhjh}r\ (h]h]h]h]h]uhNhhh]r] (h)r^ }r_ (hX;Debian init scripts: Commands should not run in a sub shellr` hjZ hhhjh}ra (h]h]h]h]h]uhMh]rb hX;Debian init scripts: Commands should not run in a sub shellrc rd }re (hj` hj^ ubaubj)rf }rg (hUh}rh (h]h]h]h]h]uhjZ h]ri h)rj }rk (hXSee issue #163.hjf hhhjh}rl (h]h]h]h]h]uhMh]rm (hX See issue rn ro }rp (hUhjj ubj)rq }rr (hUh}rs (UreftypejU trackerconfigj U reftargetX163rt h]h]h]h]h]uhjj h]ru j)rv }rw (hX#163h}rx (h]h]ry (jjeh]h]h]uhjq h]rz hX#163r{ r| }r} (hUhjv ubahjubahjubhX.r~ }r (hUhjj ubeubahjubeubh)r }r (hXWDebian init scripts: Use the absolute path of celeryd to allow stat See issue #162. hjhhhjh}r (h]h]h]h]h]uhNhhh]r (h)r }r (hXCDebian init scripts: Use the absolute path of celeryd to allow statr hj hhhjh}r (h]h]h]h]h]uhMh]r hXCDebian init scripts: Use the absolute path of celeryd to allow statr r }r (hj hj ubaubj)r }r (hUh}r (h]h]h]h]h]uhj h]r h)r }r (hXSee issue #162.hj hhhjh}r (h]h]h]h]h]uhMh]r (hX See issue r r }r (hUhj ubj)r }r (hUh}r (UreftypejU trackerconfigj U reftargetX162r h]h]h]h]h]uhj h]r j)r }r (hX#162h}r (h]h]r (jjeh]h]h]uhj h]r hX#162r r }r (hUhj ubahjubahjubhX.r }r (hUhj ubeubahjubeubeubjf)r }r (hX.. _v203-documentation:hjhhhjih}r (h]h]h]h]h]jkjmuhMhhh]ubeubh)r }r (hUhKhjhhjn}r h'j shhh}r (h]r X documentationr ah]h]h]r (jmUid14r eh]r h'auhMhhjt}r jmj sh]r (h)r }r (hjrhj hhhhh}r (h]h]h]h]h]jkjluhMhhh]r hX Documentationr r }r (hjrhj ubaubh)r }r (hUhj hhhhh}r (jX*h]h]h]h]h]uhMhhh]r (h)r }r (hXggetting-started/broker-installation: Fixed typo ``set_permissions ""`` -> ``set_permissions ".*"``. hj hhhjh}r (h]h]h]h]h]uhNhhh]r (h)r }r (hX/getting-started/broker-installation: Fixed typor hj hhhjh}r (h]h]h]h]h]uhMh]r hX/getting-started/broker-installation: Fixed typor r }r (hj hj ubaubj)r }r (hUh}r (h]h]h]h]h]uhj h]r h)r }r (hX3``set_permissions ""`` -> ``set_permissions ".*"``.hj hhhjh}r (h]h]h]h]h]uhMh]r (j)r }r (hX``set_permissions ""``h}r (h]h]h]h]h]uhj h]r hXset_permissions ""r r }r (hUhj ubahjubhX -> r r }r (hX -> hj ubj)r }r (hX``set_permissions ".*"``h}r (h]h]h]h]h]uhj h]r hXset_permissions ".*"r r }r (hUhj ubahjubhX.r }r (hX.hj ubeubahjubeubh)r }r (hXMTasks User Guide: Added section on database transactions. See issue #169. hj hhhjh}r (h]h]h]h]h]uhNhhh]r (h)r }r (hX9Tasks User Guide: Added section on database transactions.r hj hhhjh}r (h]h]h]h]h]uhMh]r hX9Tasks User Guide: Added section on database transactions.r r }r (hj hj ubaubj)r }r (hUh}r (h]h]h]h]h]uhj h]r h)r }r (hXSee issue #169.hj hhhjh}r (h]h]h]h]h]uhMh]r (hX See issue r r }r (hUhj ubj)r }r (hUh}r (UreftypejU trackerconfigj U reftargetX169r!h]h]h]h]h]uhj h]r!j)r!}r!(hX#169h}r!(h]h]r!(jjeh]h]h]uhj h]r!hX#169r!r!}r !(hUhj!ubahjubahjubhX.r !}r !(hUhj ubeubahjubeubh)r !}r !(hXSRouting User Guide: Fixed typo `"feed": -> {"queue": "feeds"}`. See issue #169. hj hhhjh}r!(h]h]h]h]h]uhNhhh]r!(h)r!}r!(hX?Routing User Guide: Fixed typo `"feed": -> {"queue": "feeds"}`.hj !hhhjh}r!(h]h]h]h]h]uhMh]r!(hXRouting User Guide: Fixed typo r!r!}r!(hXRouting User Guide: Fixed typo hj!ubj()r!}r!(hX`"feed": -> {"queue": "feeds"}`h}r!(h]h]h]h]h]uhj!h]r!hX"feed": -> {"queue": "feeds"}r!r!}r!(hUhj!ubahj0ubhX.r!}r!(hX.hj!ubeubj)r !}r!!(hUh}r"!(h]h]h]h]h]uhj !h]r#!h)r$!}r%!(hXSee issue #169.hj !hhhjh}r&!(h]h]h]h]h]uhMh]r'!(hX See issue r(!r)!}r*!(hUhj$!ubj)r+!}r,!(hUh}r-!(UreftypejU trackerconfigj U reftargetX169h]h]h]h]h]uhj$!h]r.!j)r/!}r0!(hX#169h}r1!(h]h]r2!(jjeh]h]h]uhj+!h]r3!hX#169r4!r5!}r6!(hUhj/!ubahjubahjubhX.r7!}r8!(hUhj$!ubeubahjubeubh)r9!}r:!(hXzDocumented the default values for the :setting:`CELERYD_CONCURRENCY` and :setting:`CELERYD_PREFETCH_MULTIPLIER` settings. hj hhhjh}r;!(h]h]h]h]h]uhNhhh]r!(hXyDocumented the default values for the :setting:`CELERYD_CONCURRENCY` and :setting:`CELERYD_PREFETCH_MULTIPLIER` settings.hj9!hhhjh}r?!(h]h]h]h]h]uhMh]r@!(hX&Documented the default values for the rA!rB!}rC!(hX&Documented the default values for the hj=!ubj)rD!}rE!(hX:setting:`CELERYD_CONCURRENCY`rF!hj=!hhhjh}rG!(UreftypeXsettingjjXCELERYD_CONCURRENCYU refdomainXstdrH!h]h]U refexplicith]h]h]jjuhMh]rI!j)rJ!}rK!(hjF!h}rL!(h]h]rM!(jjH!X std-settingrN!eh]h]h]uhjD!h]rO!hXCELERYD_CONCURRENCYrP!rQ!}rR!(hUhjJ!ubahjubaubhX and rS!rT!}rU!(hX and hj=!ubj)rV!}rW!(hX&:setting:`CELERYD_PREFETCH_MULTIPLIER`rX!hj=!hhhjh}rY!(UreftypeXsettingjjXCELERYD_PREFETCH_MULTIPLIERU refdomainXstdrZ!h]h]U refexplicith]h]h]jjuhMh]r[!j)r\!}r]!(hjX!h}r^!(h]h]r_!(jjZ!X std-settingr`!eh]h]h]uhjV!h]ra!hXCELERYD_PREFETCH_MULTIPLIERrb!rc!}rd!(hUhj\!ubahjubaubhX settings.re!rf!}rg!(hX settings.hj=!ubeubaubh)rh!}ri!(hX5Tasks User Guide: Fixed typos in the subtask example hj hhhjh}rj!(h]h]h]h]h]uhNhhh]rk!h)rl!}rm!(hX4Tasks User Guide: Fixed typos in the subtask examplern!hjh!hhhjh}ro!(h]h]h]h]h]uhMh]rp!hX4Tasks User Guide: Fixed typos in the subtask examplerq!rr!}rs!(hjn!hjl!ubaubaubh)rt!}ru!(hX0celery.signals: Documented worker_process_init. hj hhhjh}rv!(h]h]h]h]h]uhNhhh]rw!h)rx!}ry!(hX/celery.signals: Documented worker_process_init.rz!hjt!hhhjh}r{!(h]h]h]h]h]uhMh]r|!hX/celery.signals: Documented worker_process_init.r}!r~!}r!(hjz!hjx!ubaubaubh)r!}r!(hX[Daemonization cookbook: Need to export DJANGO_SETTINGS_MODULE in ``/etc/default/celeryd``. hj hhhjh}r!(h]h]h]h]h]uhNhhh]r!h)r!}r!(hXZDaemonization cookbook: Need to export DJANGO_SETTINGS_MODULE in ``/etc/default/celeryd``.hj!hhhjh}r!(h]h]h]h]h]uhMh]r!(hXADaemonization cookbook: Need to export DJANGO_SETTINGS_MODULE in r!r!}r!(hXADaemonization cookbook: Need to export DJANGO_SETTINGS_MODULE in hj!ubj)r!}r!(hX``/etc/default/celeryd``h}r!(h]h]h]h]h]uhj!h]r!hX/etc/default/celerydr!r!}r!(hUhj!ubahjubhX.r!}r!(hX.hj!ubeubaubh)r!}r!(hX)Added some more FAQs from stack overflow hj hhhjh}r!(h]h]h]h]h]uhNhhh]r!h)r!}r!(hX(Added some more FAQs from stack overflowr!hj!hhhjh}r!(h]h]h]h]h]uhMh]r!hX(Added some more FAQs from stack overflowr!r!}r!(hj!hj!ubaubaubh)r!}r!(hXDaemonization cookbook: Fixed typo ``CELERYD_LOGFILE/CELERYD_PIDFILE`` to ``CELERYD_LOG_FILE`` / ``CELERYD_PID_FILE`` Also added troubleshooting section for the init scripts. hj hhhjh}r!(h]h]h]h]h]uhNhhh]r!(h)r!}r!(hXFDaemonization cookbook: Fixed typo ``CELERYD_LOGFILE/CELERYD_PIDFILE``hj!hhhjh}r!(h]h]h]h]h]uhMh]r!(hX#Daemonization cookbook: Fixed typo r!r!}r!(hX#Daemonization cookbook: Fixed typo hj!ubj)r!}r!(hX#``CELERYD_LOGFILE/CELERYD_PIDFILE``h}r!(h]h]h]h]h]uhj!h]r!hXCELERYD_LOGFILE/CELERYD_PIDFILEr!r!}r!(hUhj!ubahjubeubj)r!}r!(hUh}r!(h]h]h]h]h]uhj!h]r!(h)r!}r!(hX.to ``CELERYD_LOG_FILE`` / ``CELERYD_PID_FILE``hj!hhhjh}r!(h]h]h]h]h]uhMh]r!(hXto r!r!}r!(hXto hj!ubj)r!}r!(hX``CELERYD_LOG_FILE``h}r!(h]h]h]h]h]uhj!h]r!hXCELERYD_LOG_FILEr!r!}r!(hUhj!ubahjubhX / r!r!}r!(hX / hj!ubj)r!}r!(hX``CELERYD_PID_FILE``h}r!(h]h]h]h]h]uhj!h]r!hXCELERYD_PID_FILEr!r!}r!(hUhj!ubahjubeubh)r!}r!(hX8Also added troubleshooting section for the init scripts.r!hj!hhhjh}r!(h]h]h]h]h]uhMh]r!hX8Also added troubleshooting section for the init scripts.r!r!}r!(hj!hj!ubaubehjubeubeubjf)r!}r!(hX.. _version-2.0.2:hj hhhjih}r!(h]h]h]h]h]jkjuhMhhh]ubeubeubh)r!}r!(hUhhhhjn}r!hj!shhh}r!(h]h]h]h]r!(jUid15r!eh]r!(hTheuhMhhjt}r!jj!sh]r!(h)r!}r!(hjhj!hhhhh}r!(h]h]h]h]h]jkjuhMhhh]r!hX2.0.2r!r!}r!(hjhj!ubaubj)r!}r!(hUhj!hhhjh}r!(h]h]h]h]h]uhMhhh]r!j)r!}r!(hUhj!hhhjh}r!(h]h]h]h]h]uhMhhh]r!(j)r!}r!(hX release-dater!h}r!(h]h]h]h]h]uhj!h]r!hX release-dater!r!}r!(hj!hj!ubahjubj)r!}r!(hX2010-07-22 11:31 A.M CEST h}r!(h]h]h]h]h]uhj!h]r!h)r!}r!(hX2010-07-22 11:31 A.M CESTr!hj!hhhjh}r"(h]h]h]h]h]uhMh]r"hX2010-07-22 11:31 A.M CESTr"r"}r"(hj!hj!ubaubahjubeubaubh)r"}r"(hUhj!hhhhh}r"(jX*h]h]h]h]h]uhMhhh]r"(h)r "}r "(hXRoutes: When using the dict route syntax, the exchange for a task could disappear making the task unroutable. See issue #158. hj"hhhjh}r "(h]h]h]h]h]uhNhhh]r "(h)r "}r"(hXmRoutes: When using the dict route syntax, the exchange for a task could disappear making the task unroutable.r"hj "hhhjh}r"(h]h]h]h]h]uhMh]r"hXmRoutes: When using the dict route syntax, the exchange for a task could disappear making the task unroutable.r"r"}r"(hj"hj "ubaubj)r"}r"(hUh}r"(h]h]h]h]h]uhj "h]r"h)r"}r"(hXSee issue #158.hj"hhhjh}r"(h]h]h]h]h]uhMh]r"(hX See issue r"r"}r"(hUhj"ubj)r "}r!"(hUh}r""(UreftypejU trackerconfigj U reftargetX158r#"h]h]h]h]h]uhj"h]r$"j)r%"}r&"(hX#158h}r'"(h]h]r("(jjeh]h]h]uhj "h]r)"hX#158r*"r+"}r,"(hUhj%"ubahjubahjubhX.r-"}r."(hUhj"ubeubahjubeubh)r/"}r0"(hX%Test suite now passing on Python 2.4 hj"hhhjh}r1"(h]h]h]h]h]uhNhhh]r2"h)r3"}r4"(hX$Test suite now passing on Python 2.4r5"hj/"hhhjh}r6"(h]h]h]h]h]uhMh]r7"hX$Test suite now passing on Python 2.4r8"r9"}r:"(hj5"hj3"ubaubaubh)r;"}r<"(hXNo longer have to type `PYTHONPATH=.` to use celeryconfig in the current directory. This is accomplished by the default loader ensuring that the current directory is in ``sys.path`` when loading the config module. ``sys.path`` is reset to its original state after loading. Adding the current working directory to `sys.path` without the user knowing may be a security issue, as this means someone can drop a Python module in the users directory that executes arbitrary commands. This was the original reason not to do this, but if done *only when loading the config module*, this means that the behavior will only apply to the modules imported in the config module, which I think is a good compromise (certainly better than just explicitly setting `PYTHONPATH=.` anyway) hj"hhhjh}r="(h]h]h]h]h]uhNhhh]r>"(h)r?"}r@"(hXSNo longer have to type `PYTHONPATH=.` to use celeryconfig in the current directory.hj;"hhhjh}rA"(h]h]h]h]h]uhMh]rB"(hXNo longer have to type rC"rD"}rE"(hXNo longer have to type hj?"ubj()rF"}rG"(hX`PYTHONPATH=.`h}rH"(h]h]h]h]h]uhj?"h]rI"hX PYTHONPATH=.rJ"rK"}rL"(hUhjF"ubahj0ubhX. to use celeryconfig in the current directory.rM"rN"}rO"(hX. to use celeryconfig in the current directory.hj?"ubeubj)rP"}rQ"(hUh}rR"(h]h]h]h]h]uhj;"h]rS"(h)rT"}rU"(hXThis is accomplished by the default loader ensuring that the current directory is in ``sys.path`` when loading the config module. ``sys.path`` is reset to its original state after loading.hjP"hhhjh}rV"(h]h]h]h]h]uhMh]rW"(hXUThis is accomplished by the default loader ensuring that the current directory is in rX"rY"}rZ"(hXUThis is accomplished by the default loader ensuring that the current directory is in hjT"ubj)r["}r\"(hX ``sys.path``h}r]"(h]h]h]h]h]uhjT"h]r^"hXsys.pathr_"r`"}ra"(hUhj["ubahjubhX! when loading the config module. rb"rc"}rd"(hX! when loading the config module. hjT"ubj)re"}rf"(hX ``sys.path``h}rg"(h]h]h]h]h]uhjT"h]rh"hXsys.pathri"rj"}rk"(hUhje"ubahjubhX. is reset to its original state after loading.rl"rm"}rn"(hX. is reset to its original state after loading.hjT"ubeubh)ro"}rp"(hXAdding the current working directory to `sys.path` without the user knowing may be a security issue, as this means someone can drop a Python module in the users directory that executes arbitrary commands. This was the original reason not to do this, but if done *only when loading the config module*, this means that the behavior will only apply to the modules imported in the config module, which I think is a good compromise (certainly better than just explicitly setting `PYTHONPATH=.` anyway)hjP"hhhjh}rq"(h]h]h]h]h]uhMh]rr"(hX(Adding the current working directory to rs"rt"}ru"(hX(Adding the current working directory to hjo"ubj()rv"}rw"(hX `sys.path`h}rx"(h]h]h]h]h]uhjo"h]ry"hXsys.pathrz"r{"}r|"(hUhjv"ubahj0ubhX without the user knowing may be a security issue, as this means someone can drop a Python module in the users directory that executes arbitrary commands. This was the original reason not to do this, but if done r}"r~"}r"(hX without the user knowing may be a security issue, as this means someone can drop a Python module in the users directory that executes arbitrary commands. This was the original reason not to do this, but if done hjo"ubj )r"}r"(hX%*only when loading the config module*h}r"(h]h]h]h]h]uhjo"h]r"hX#only when loading the config moduler"r"}r"(hUhj"ubahj ubhX, this means that the behavior will only apply to the modules imported in the config module, which I think is a good compromise (certainly better than just explicitly setting r"r"}r"(hX, this means that the behavior will only apply to the modules imported in the config module, which I think is a good compromise (certainly better than just explicitly setting hjo"ubj()r"}r"(hX`PYTHONPATH=.`h}r"(h]h]h]h]h]uhjo"h]r"hX PYTHONPATH=.r"r"}r"(hUhj"ubahj0ubhX anyway)r"r"}r"(hX anyway)hjo"ubeubehjubeubh)r"}r"(hX&Experimental Cassandra backend added. hj"hhhjh}r"(h]h]h]h]h]uhNhhh]r"h)r"}r"(hX%Experimental Cassandra backend added.r"hj"hhhjh}r"(h]h]h]h]h]uhMh]r"hX%Experimental Cassandra backend added.r"r"}r"(hj"hj"ubaubaubh)r"}r"(hXceleryd: SIGHUP handler accidentally propagated to worker pool processes. In combination with 7a7c44e39344789f11b5346e9cc8340f5fe4846c this would make each child process start a new celeryd when the terminal window was closed :/ hj"hhhjh}r"(h]h]h]h]h]uhNhhh]r"(h)r"}r"(hXIceleryd: SIGHUP handler accidentally propagated to worker pool processes.r"hj"hhhjh}r"(h]h]h]h]h]uhMh]r"hXIceleryd: SIGHUP handler accidentally propagated to worker pool processes.r"r"}r"(hj"hj"ubaubj)r"}r"(hUh}r"(h]h]h]h]h]uhj"h]r"h)r"}r"(hXIn combination with 7a7c44e39344789f11b5346e9cc8340f5fe4846c this would make each child process start a new celeryd when the terminal window was closed :/r"hj"hhhjh}r"(h]h]h]h]h]uhMh]r"hXIn combination with 7a7c44e39344789f11b5346e9cc8340f5fe4846c this would make each child process start a new celeryd when the terminal window was closed :/r"r"}r"(hj"hj"ubaubahjubeubh)r"}r"(hXceleryd: Do not install SIGHUP handler if running from a terminal. This fixes the problem where celeryd is launched in the background when closing the terminal. hj"hhhjh}r"(h]h]h]h]h]uhNhhh]r"(h)r"}r"(hXBceleryd: Do not install SIGHUP handler if running from a terminal.r"hj"hhhjh}r"(h]h]h]h]h]uhMh]r"hXBceleryd: Do not install SIGHUP handler if running from a terminal.r"r"}r"(hj"hj"ubaubj)r"}r"(hUh}r"(h]h]h]h]h]uhj"h]r"h)r"}r"(hX]This fixes the problem where celeryd is launched in the background when closing the terminal.r"hj"hhhjh}r"(h]h]h]h]h]uhMh]r"hX]This fixes the problem where celeryd is launched in the background when closing the terminal.r"r"}r"(hj"hj"ubaubahjubeubh)r"}r"(hX;celeryd: Now joins threads at shutdown. See issue #152. hj"hhhjh}r"(h]h]h]h]h]uhNhhh]r"(h)r"}r"(hX'celeryd: Now joins threads at shutdown.r"hj"hhhjh}r"(h]h]h]h]h]uhMh]r"hX'celeryd: Now joins threads at shutdown.r"r"}r"(hj"hj"ubaubj)r"}r"(hUh}r"(h]h]h]h]h]uhj"h]r"h)r"}r"(hXSee issue #152.hj"hhhjh}r"(h]h]h]h]h]uhMh]r"(hX See issue r"r"}r"(hUhj"ubj)r"}r"(hUh}r"(UreftypejU trackerconfigj U reftargetX152h]h]h]h]h]uhj"h]r"j)r"}r"(hX#152h}r"(h]h]r"(jjeh]h]h]uhj"h]r"hX#152r"r"}r"(hUhj"ubahjubahjubhX.r"}r"(hUhj"ubeubahjubeubh)r"}r"(hXeTest tear down: Don't use `atexit` but nose's `teardown()` functionality instead. See issue #154. hj"hhhjh}r"(h]h]h]h]h]uhNhhh]r"(h)r"}r"(hXQTest tear down: Don't use `atexit` but nose's `teardown()` functionality instead.hj"hhhjh}r"(h]h]h]h]h]uhMh]r"(hXTest tear down: Don't use r"r"}r"(hXTest tear down: Don't use hj"ubj()r#}r#(hX`atexit`h}r#(h]h]h]h]h]uhj"h]r#hXatexitr#r#}r#(hUhj#ubahj0ubhX but nose's r#r#}r #(hX but nose's hj"ubj()r #}r #(hX `teardown()`h}r #(h]h]h]h]h]uhj"h]r #hX teardown()r#r#}r#(hUhj #ubahj0ubhX functionality instead.r#r#}r#(hX functionality instead.hj"ubeubj)r#}r#(hUh}r#(h]h]h]h]h]uhj"h]r#h)r#}r#(hXSee issue #154.hj#hhhjh}r#(h]h]h]h]h]uhMh]r#(hX See issue r#r#}r#(hUhj#ubj)r#}r #(hUh}r!#(UreftypejU trackerconfigj U reftargetX154r"#h]h]h]h]h]uhj#h]r##j)r$#}r%#(hX#154h}r&#(h]h]r'#(jjeh]h]h]uhj#h]r(#hX#154r)#r*#}r+#(hUhj$#ubahjubahjubhX.r,#}r-#(hUhj#ubeubahjubeubh)r.#}r/#(hX:Debian init script for celeryd: Stop now works correctly. hj"hhhjh}r0#(h]h]h]h]h]uhNhhh]r1#h)r2#}r3#(hX9Debian init script for celeryd: Stop now works correctly.r4#hj.#hhhjh}r5#(h]h]h]h]h]uhMh]r6#hX9Debian init script for celeryd: Stop now works correctly.r7#r8#}r9#(hj4#hj2#ubaubaubh)r:#}r;#(hX9Task logger: `warn` method added (synonym for `warning`) hj"hhhjh}r<#(h]h]h]h]h]uhNhhh]r=#h)r>#}r?#(hX8Task logger: `warn` method added (synonym for `warning`)hj:#hhhjh}r@#(h]h]h]h]h]uhMh]rA#(hX Task logger: rB#rC#}rD#(hX Task logger: hj>#ubj()rE#}rF#(hX`warn`h}rG#(h]h]h]h]h]uhj>#h]rH#hXwarnrI#rJ#}rK#(hUhjE#ubahj0ubhX method added (synonym for rL#rM#}rN#(hX method added (synonym for hj>#ubj()rO#}rP#(hX `warning`h}rQ#(h]h]h]h]h]uhj>#h]rR#hXwarningrS#rT#}rU#(hUhjO#ubahj0ubhX)rV#}rW#(hX)hj>#ubeubaubh)rX#}rY#(hXCan now define a white list of errors to send error e-mails for. Example:: CELERY_TASK_ERROR_WHITELIST = ('myapp.MalformedInputError') See issue #153. hj"hhhjh}rZ#(h]h]h]h]h]uhNhhh]r[#(h)r\#}r]#(hX@Can now define a white list of errors to send error e-mails for.r^#hjX#hhhjh}r_#(h]h]h]h]h]uhMh]r`#hX@Can now define a white list of errors to send error e-mails for.ra#rb#}rc#(hj^#hj\#ubaubj)rd#}re#(hUh}rf#(h]h]h]h]h]uhjX#h]rg#(h)rh#}ri#(hX Example::hjd#hhhjh}rj#(h]h]h]h]h]uhMh]rk#hXExample:rl#rm#}rn#(hXExample:hjh#ubaubjM)ro#}rp#(hX;CELERY_TASK_ERROR_WHITELIST = ('myapp.MalformedInputError')hjd#hjPh}rq#(jTjUh]h]h]h]h]uhMh]rr#hX;CELERY_TASK_ERROR_WHITELIST = ('myapp.MalformedInputError')rs#rt#}ru#(hUhjo#ubaubh)rv#}rw#(hXSee issue #153.hjd#hhhjh}rx#(h]h]h]h]h]uhMh]ry#(hX See issue rz#r{#}r|#(hUhjv#ubj)r}#}r~#(hUh}r#(UreftypejU trackerconfigj U reftargetX153r#h]h]h]h]h]uhjv#h]r#j)r#}r#(hX#153h}r#(h]h]r#(jjeh]h]h]uhj}#h]r#hX#153r#r#}r#(hUhj#ubahjubahjubhX.r#}r#(hUhjv#ubeubehjubeubh)r#}r#(hXYceleryd: Now handles overflow exceptions in ``time.mktime`` while parsing the ETA field. hj"hhhjh}r#(h]h]h]h]h]uhNhhh]r#h)r#}r#(hXXceleryd: Now handles overflow exceptions in ``time.mktime`` while parsing the ETA field.hj#hhhjh}r#(h]h]h]h]h]uhMh]r#(hX,celeryd: Now handles overflow exceptions in r#r#}r#(hX,celeryd: Now handles overflow exceptions in hj#ubj)r#}r#(hX``time.mktime``h}r#(h]h]h]h]h]uhj#h]r#hX time.mktimer#r#}r#(hUhj#ubahjubhX while parsing the ETA field.r#r#}r#(hX while parsing the ETA field.hj#ubeubaubh)r#}r#(hX\LoggerWrapper: Try to detect loggers logging back to stderr/stdout making an infinite loop. hj"hhhjh}r#(h]h]h]h]h]uhNhhh]r#h)r#}r#(hX[LoggerWrapper: Try to detect loggers logging back to stderr/stdout making an infinite loop.r#hj#hhhjh}r#(h]h]h]h]h]uhMh]r#hX[LoggerWrapper: Try to detect loggers logging back to stderr/stdout making an infinite loop.r#r#}r#(hj#hj#ubaubaubh)r#}r#(hXAdded :class:`celery.task.control.inspect`: Inspects a running worker. Examples:: # Inspect a single worker >>> i = inspect("myworker.example.com") # Inspect several workers >>> i = inspect(["myworker.example.com", "myworker2.example.com"]) # Inspect all workers consuming on this vhost. >>> i = inspect() ### Methods # Get currently executing tasks >>> i.active() # Get currently reserved tasks >>> i.reserved() # Get the current eta schedule >>> i.scheduled() # Worker statistics and info >>> i.stats() # List of currently revoked tasks >>> i.revoked() # List of registered tasks >>> i.registered_tasks() hj"hhhjh}r#(h]h]h]h]h]uhNhhh]r#(h)r#}r#(hXFAdded :class:`celery.task.control.inspect`: Inspects a running worker.hj#hhhjh}r#(h]h]h]h]h]uhMh]r#(hXAdded r#r#}r#(hXAdded hj#ubj)r#}r#(hX$:class:`celery.task.control.inspect`r#hj#hhhjh}r#(UreftypeXclassjjXcelery.task.control.inspectU refdomainXpyr#h]h]U refexplicith]h]h]jjj Nj NuhMh]r#j)r#}r#(hj#h}r#(h]h]r#(jj#Xpy-classr#eh]h]h]uhj#h]r#hXcelery.task.control.inspectr#r#}r#(hUhj#ubahjubaubhX: Inspects a running worker.r#r#}r#(hX: Inspects a running worker.hj#ubeubj)r#}r#(hUh}r#(h]h]h]h]h]uhj#h]r#(h)r#}r#(hX Examples::hj#hhhjh}r#(h]h]h]h]h]uhMh]r#hX Examples:r#r#}r#(hX Examples:hj#ubaubjM)r#}r#(hX# Inspect a single worker >>> i = inspect("myworker.example.com") # Inspect several workers >>> i = inspect(["myworker.example.com", "myworker2.example.com"]) # Inspect all workers consuming on this vhost. >>> i = inspect() ### Methods # Get currently executing tasks >>> i.active() # Get currently reserved tasks >>> i.reserved() # Get the current eta schedule >>> i.scheduled() # Worker statistics and info >>> i.stats() # List of currently revoked tasks >>> i.revoked() # List of registered tasks >>> i.registered_tasks()hj#hjPh}r#(jTjUh]h]h]h]h]uhMh]r#hX# Inspect a single worker >>> i = inspect("myworker.example.com") # Inspect several workers >>> i = inspect(["myworker.example.com", "myworker2.example.com"]) # Inspect all workers consuming on this vhost. >>> i = inspect() ### Methods # Get currently executing tasks >>> i.active() # Get currently reserved tasks >>> i.reserved() # Get the current eta schedule >>> i.scheduled() # Worker statistics and info >>> i.stats() # List of currently revoked tasks >>> i.revoked() # List of registered tasks >>> i.registered_tasks()r#r#}r#(hUhj#ubaubehjubeubh)r#}r#(hX:Remote control commands ``dump_active``/``dump_reserved``/``dump_schedule`` now replies with detailed task requests. Containing the original arguments and fields of the task requested. In addition the remote control command `set_loglevel` has been added, this only changes the log level for the main process. hj"hhhjh}r#(h]h]h]h]h]uhNhhh]r#(h)r#}r#(hXtRemote control commands ``dump_active``/``dump_reserved``/``dump_schedule`` now replies with detailed task requests.hj#hhhjh}r#(h]h]h]h]h]uhM%h]r#(hXRemote control commands r#r#}r#(hXRemote control commands hj#ubj)r#}r#(hX``dump_active``h}r#(h]h]h]h]h]uhj#h]r#hX dump_activer#r#}r#(hUhj#ubahjubhX/r#}r#(hX/hj#ubj)r#}r#(hX``dump_reserved``h}r#(h]h]h]h]h]uhj#h]r#hX dump_reservedr#r#}r#(hUhj#ubahjubhX/r#}r#(hX/hj#ubj)r#}r#(hX``dump_schedule``h}r#(h]h]h]h]h]uhj#h]r#hX dump_scheduler#r#}r#(hUhj#ubahjubhX) now replies with detailed task requests.r$r$}r$(hX) now replies with detailed task requests.hj#ubeubj)r$}r$(hUh}r$(h]h]h]h]h]uhj#h]r$(h)r$}r$(hXCContaining the original arguments and fields of the task requested.r $hj$hhhjh}r $(h]h]h]h]h]uhM(h]r $hXCContaining the original arguments and fields of the task requested.r $r $}r$(hj $hj$ubaubh)r$}r$(hX{In addition the remote control command `set_loglevel` has been added, this only changes the log level for the main process.hj$hhhjh}r$(h]h]h]h]h]uhM*h]r$(hX'In addition the remote control command r$r$}r$(hX'In addition the remote control command hj$ubj()r$}r$(hX`set_loglevel`h}r$(h]h]h]h]h]uhj$h]r$hX set_loglevelr$r$}r$(hUhj$ubahj0ubhXF has been added, this only changes the log level for the main process.r$r$}r$(hXF has been added, this only changes the log level for the main process.hj$ubeubehjubeubh)r $}r!$(hXjWorker control command execution now catches errors and returns their string representation in the reply. hj"hhhjh}r"$(h]h]h]h]h]uhNhhh]r#$h)r$$}r%$(hXiWorker control command execution now catches errors and returns their string representation in the reply.r&$hj $hhhjh}r'$(h]h]h]h]h]uhM-h]r($hXiWorker control command execution now catches errors and returns their string representation in the reply.r)$r*$}r+$(hj&$hj$$ubaubaubh)r,$}r-$(hXFunctional test suite added :mod:`celery.tests.functional.case` contains utilities to start and stop an embedded celeryd process, for use in functional testing. hj"hhhjh}r.$(h]h]h]h]h]uhNhhh]r/$(h)r0$}r1$(hXFunctional test suite addedr2$hj,$hhhjh}r3$(h]h]h]h]h]uhM0h]r4$hXFunctional test suite addedr5$r6$}r7$(hj2$hj0$ubaubj)r8$}r9$(hUh}r:$(h]h]h]h]h]uhj,$h]r;$h)r<$}r=$(hX:mod:`celery.tests.functional.case` contains utilities to start and stop an embedded celeryd process, for use in functional testing.hj8$hhhjh}r>$(h]h]h]h]h]uhM2h]r?$(j)r@$}rA$(hX#:mod:`celery.tests.functional.case`rB$hj<$hhhjh}rC$(UreftypeXmodjjXcelery.tests.functional.caseU refdomainXpyrD$h]h]U refexplicith]h]h]jjj Nj NuhM2h]rE$j)rF$}rG$(hjB$h}rH$(h]h]rI$(jjD$Xpy-modrJ$eh]h]h]uhj@$h]rK$hXcelery.tests.functional.caserL$rM$}rN$(hUhjF$ubahjubaubhXa contains utilities to start and stop an embedded celeryd process, for use in functional testing.rO$rP$}rQ$(hXa contains utilities to start and stop an embedded celeryd process, for use in functional testing.hj<$ubeubahjubeubeubjf)rR$}rS$(hX.. _version-2.0.1:hj!hhhjih}rT$(h]h]h]h]h]jkjuhM5hhh]ubeubh)rU$}rV$(hUhhhhjn}rW$hjR$shhh}rX$(h]h]h]h]rY$(jUid16rZ$eh]r[$(hUheuhM8hhjt}r\$jjR$sh]r]$(h)r^$}r_$(hjhjU$hhhhh}r`$(h]h]h]h]h]jkjuhM8hhh]ra$hX2.0.1rb$rc$}rd$(hjhj^$ubaubj)re$}rf$(hUhjU$hhhjh}rg$(h]h]h]h]h]uhM9hhh]rh$j)ri$}rj$(hUhje$hhhjh}rk$(h]h]h]h]h]uhM9hhh]rl$(j)rm$}rn$(hX release-datero$h}rp$(h]h]h]h]h]uhji$h]rq$hX release-daterr$rs$}rt$(hjo$hjm$ubahjubj)ru$}rv$(hX2010-07-09 03:02 P.M CEST h}rw$(h]h]h]h]h]uhji$h]rx$h)ry$}rz$(hX2010-07-09 03:02 P.M CESTr{$hju$hhhjh}r|$(h]h]h]h]h]uhM9h]r}$hX2010-07-09 03:02 P.M CESTr~$r$}r$(hj{$hjy$ubaubahjubeubaubh)r$}r$(hUhjU$hhhhh}r$(jX*h]h]h]h]h]uhM;hhh]r$(h)r$}r$(hXomultiprocessing.pool: Now handles encoding errors, so that pickling errors doesn't crash the worker processes. hj$hhhjh}r$(h]h]h]h]h]uhNhhh]r$h)r$}r$(hXnmultiprocessing.pool: Now handles encoding errors, so that pickling errors doesn't crash the worker processes.r$hj$hhhjh}r$(h]h]h]h]h]uhM;h]r$hXnmultiprocessing.pool: Now handles encoding errors, so that pickling errors doesn't crash the worker processes.r$r$}r$(hj$hj$ubaubaubh)r$}r$(hX&The remote control command replies was not working with RabbitMQ 1.8.0's stricter equivalence checks. If you've already hit this problem you may have to delete the declaration:: $ camqadm exchange.delete celerycrq or:: $ python manage.py camqadm exchange.delete celerycrq hj$hhhjh}r$(h]h]h]h]h]uhNhhh]r$(h)r$}r$(hXeThe remote control command replies was not working with RabbitMQ 1.8.0's stricter equivalence checks.r$hj$hhhjh}r$(h]h]h]h]h]uhM>h]r$hXeThe remote control command replies was not working with RabbitMQ 1.8.0's stricter equivalence checks.r$r$}r$(hj$hj$ubaubj)r$}r$(hUh}r$(h]h]h]h]h]uhj$h]r$(h)r$}r$(hXKIf you've already hit this problem you may have to delete the declaration::hj$hhhjh}r$(h]h]h]h]h]uhMAh]r$hXJIf you've already hit this problem you may have to delete the declaration:r$r$}r$(hXJIf you've already hit this problem you may have to delete the declaration:hj$ubaubjM)r$}r$(hX#$ camqadm exchange.delete celerycrqhj$hjPh}r$(jTjUh]h]h]h]h]uhMDh]r$hX#$ camqadm exchange.delete celerycrqr$r$}r$(hUhj$ubaubh)r$}r$(hXor::hj$hhhjh}r$(h]h]h]h]h]uhMFh]r$hXor:r$r$}r$(hXor:hj$ubaubjM)r$}r$(hX4$ python manage.py camqadm exchange.delete celerycrqhj$hjPh}r$(jTjUh]h]h]h]h]uhMHh]r$hX4$ python manage.py camqadm exchange.delete celerycrqr$r$}r$(hUhj$ubaubehjubeubh)r$}r$(hXA bug sneaked in the ETA scheduler that made it only able to execute one task per second(!) The scheduler sleeps between iterations so it doesn't consume too much CPU. It keeps a list of the scheduled items sorted by time, at each iteration it sleeps for the remaining time of the item with the nearest deadline. If there are no eta tasks it will sleep for a minimum amount of time, one second by default. A bug sneaked in here, making it sleep for one second for every task that was scheduled. This has been fixed, so now it should move tasks like hot knife through butter. In addition a new setting has been added to control the minimum sleep interval; :setting:`CELERYD_ETA_SCHEDULER_PRECISION`. A good value for this would be a float between 0 and 1, depending on the needed precision. A value of 0.8 means that when the ETA of a task is met, it will take at most 0.8 seconds for the task to be moved to the ready queue. hj$hhhjh}r$(h]h]h]h]h]uhNhhh]r$(h)r$}r$(hX[A bug sneaked in the ETA scheduler that made it only able to execute one task per second(!)r$hj$hhhjh}r$(h]h]h]h]h]uhMJh]r$hX[A bug sneaked in the ETA scheduler that made it only able to execute one task per second(!)r$r$}r$(hj$hj$ubaubj)r$}r$(hUh}r$(h]h]h]h]h]uhj$h]r$(h)r$}r$(hX9The scheduler sleeps between iterations so it doesn't consume too much CPU. It keeps a list of the scheduled items sorted by time, at each iteration it sleeps for the remaining time of the item with the nearest deadline. If there are no eta tasks it will sleep for a minimum amount of time, one second by default.r$hj$hhhjh}r$(h]h]h]h]h]uhMMh]r$hX9The scheduler sleeps between iterations so it doesn't consume too much CPU. It keeps a list of the scheduled items sorted by time, at each iteration it sleeps for the remaining time of the item with the nearest deadline. If there are no eta tasks it will sleep for a minimum amount of time, one second by default.r$r$}r$(hj$hj$ubaubh)r$}r$(hXA bug sneaked in here, making it sleep for one second for every task that was scheduled. This has been fixed, so now it should move tasks like hot knife through butter.r$hj$hhhjh}r$(h]h]h]h]h]uhMSh]r$hXA bug sneaked in here, making it sleep for one second for every task that was scheduled. This has been fixed, so now it should move tasks like hot knife through butter.r$r$}r$(hj$hj$ubaubh)r$}r$(hX]In addition a new setting has been added to control the minimum sleep interval; :setting:`CELERYD_ETA_SCHEDULER_PRECISION`. A good value for this would be a float between 0 and 1, depending on the needed precision. A value of 0.8 means that when the ETA of a task is met, it will take at most 0.8 seconds for the task to be moved to the ready queue.hj$hhhjh}r$(h]h]h]h]h]uhMWh]r$(hXPIn addition a new setting has been added to control the minimum sleep interval; r$r$}r$(hXPIn addition a new setting has been added to control the minimum sleep interval; hj$ubj)r$}r$(hX*:setting:`CELERYD_ETA_SCHEDULER_PRECISION`r$hj$hhhjh}r$(UreftypeXsettingjjXCELERYD_ETA_SCHEDULER_PRECISIONU refdomainXstdr$h]h]U refexplicith]h]h]jjuhMWh]r$j)r$}r$(hj$h}r$(h]h]r$(jj$X std-settingr$eh]h]h]uhj$h]r$hXCELERYD_ETA_SCHEDULER_PRECISIONr$r$}r$(hUhj$ubahjubaubhX. A good value for this would be a float between 0 and 1, depending on the needed precision. A value of 0.8 means that when the ETA of a task is met, it will take at most 0.8 seconds for the task to be moved to the ready queue.r$r$}r$(hX. A good value for this would be a float between 0 and 1, depending on the needed precision. A value of 0.8 means that when the ETA of a task is met, it will take at most 0.8 seconds for the task to be moved to the ready queue.hj$ubeubehjubeubh)r$}r$(hXxPool: Supervisor did not release the semaphore. This would lead to a deadlock if all workers terminated prematurely. hj$hhhjh}r$(h]h]h]h]h]uhNhhh]r$(h)r$}r$(hX/Pool: Supervisor did not release the semaphore.r$hj$hhhjh}r$(h]h]h]h]h]uhM^h]r$hX/Pool: Supervisor did not release the semaphore.r$r%}r%(hj$hj$ubaubj)r%}r%(hUh}r%(h]h]h]h]h]uhj$h]r%h)r%}r%(hXDThis would lead to a deadlock if all workers terminated prematurely.r%hj%hhhjh}r %(h]h]h]h]h]uhM`h]r %hXDThis would lead to a deadlock if all workers terminated prematurely.r %r %}r %(hj%hj%ubaubahjubeubh)r%}r%(hX>Added Python version trove classifiers: 2.4, 2.5, 2.6 and 2.7 hj$hhhjh}r%(h]h]h]h]h]uhNhhh]r%h)r%}r%(hX=Added Python version trove classifiers: 2.4, 2.5, 2.6 and 2.7r%hj%hhhjh}r%(h]h]h]h]h]uhMbh]r%hX=Added Python version trove classifiers: 2.4, 2.5, 2.6 and 2.7r%r%}r%(hj%hj%ubaubaubh)r%}r%(hX!Tests now passing on Python 2.7. hj$hhhjh}r%(h]h]h]h]h]uhNhhh]r%h)r%}r%(hX Tests now passing on Python 2.7.r %hj%hhhjh}r!%(h]h]h]h]h]uhMdh]r"%hX Tests now passing on Python 2.7.r#%r$%}r%%(hj %hj%ubaubaubh)r&%}r'%(hXLTask.__reduce__: Tasks created using the task decorator can now be pickled. hj$hhhjh}r(%(h]h]h]h]h]uhNhhh]r)%h)r*%}r+%(hXKTask.__reduce__: Tasks created using the task decorator can now be pickled.r,%hj&%hhhjh}r-%(h]h]h]h]h]uhMfh]r.%hXKTask.__reduce__: Tasks created using the task decorator can now be pickled.r/%r0%}r1%(hj,%hj*%ubaubaubh)r2%}r3%(hX+setup.py: nose added to ``tests_require``. hj$hhhjh}r4%(h]h]h]h]h]uhNhhh]r5%h)r6%}r7%(hX*setup.py: nose added to ``tests_require``.hj2%hhhjh}r8%(h]h]h]h]h]uhMhh]r9%(hXsetup.py: nose added to r:%r;%}r<%(hXsetup.py: nose added to hj6%ubj)r=%}r>%(hX``tests_require``h}r?%(h]h]h]h]h]uhj6%h]r@%hX tests_requirerA%rB%}rC%(hUhj=%ubahjubhX.rD%}rE%(hX.hj6%ubeubaubh)rF%}rG%(hX-Pickle should now work with SQLAlchemy 0.5.x hj$hhhjh}rH%(h]h]h]h]h]uhNhhh]rI%h)rJ%}rK%(hX,Pickle should now work with SQLAlchemy 0.5.xrL%hjF%hhhjh}rM%(h]h]h]h]h]uhMjh]rN%hX,Pickle should now work with SQLAlchemy 0.5.xrO%rP%}rQ%(hjL%hjJ%ubaubaubh)rR%}rS%(hXDNew homepage design by Jan Henrik Helmers: http://celeryproject.org hj$hhhjh}rT%(h]h]h]h]h]uhNhhh]rU%h)rV%}rW%(hXCNew homepage design by Jan Henrik Helmers: http://celeryproject.orghjR%hhhjh}rX%(h]h]h]h]h]uhMlh]rY%(hX+New homepage design by Jan Henrik Helmers: rZ%r[%}r\%(hX+New homepage design by Jan Henrik Helmers: hjV%ubh)r]%}r^%(hXhttp://celeryproject.orgr_%h}r`%(Urefurij_%h]h]h]h]h]uhjV%h]ra%hXhttp://celeryproject.orgrb%rc%}rd%(hUhj]%ubahjubeubaubh)re%}rf%(hXCNew Sphinx theme by Armin Ronacher: http://docs.celeryproject.org/ hj$hhhjh}rg%(h]h]h]h]h]uhNhhh]rh%h)ri%}rj%(hXBNew Sphinx theme by Armin Ronacher: http://docs.celeryproject.org/hje%hhhjh}rk%(h]h]h]h]h]uhMnh]rl%(hX$New Sphinx theme by Armin Ronacher: rm%rn%}ro%(hX$New Sphinx theme by Armin Ronacher: hji%ubh)rp%}rq%(hXhttp://docs.celeryproject.org/rr%h}rs%(Urefurijr%h]h]h]h]h]uhji%h]rt%hXhttp://docs.celeryproject.org/ru%rv%}rw%(hUhjp%ubahjubeubaubh)rx%}ry%(hXFixed "pending_xref" errors shown in the HTML rendering of the documentation. Apparently this was caused by new changes in Sphinx 1.0b2. hj$hhhjh}rz%(h]h]h]h]h]uhNhhh]r{%h)r|%}r}%(hXFixed "pending_xref" errors shown in the HTML rendering of the documentation. Apparently this was caused by new changes in Sphinx 1.0b2.r~%hjx%hhhjh}r%(h]h]h]h]h]uhMph]r%hXFixed "pending_xref" errors shown in the HTML rendering of the documentation. Apparently this was caused by new changes in Sphinx 1.0b2.r%r%}r%(hj~%hj|%ubaubaubh)r%}r%(hXRouter classes in :setting:`CELERY_ROUTES` are now imported lazily. Importing a router class in a module that also loads the Celery environment would cause a circular dependency. This is solved by importing it when needed after the environment is set up. hj$hhhjh}r%(h]h]h]h]h]uhNhhh]r%(h)r%}r%(hXCRouter classes in :setting:`CELERY_ROUTES` are now imported lazily.hj%hhhjh}r%(h]h]h]h]h]uhMsh]r%(hXRouter classes in r%r%}r%(hXRouter classes in hj%ubj)r%}r%(hX:setting:`CELERY_ROUTES`r%hj%hhhjh}r%(UreftypeXsettingjjX CELERY_ROUTESU refdomainXstdr%h]h]U refexplicith]h]h]jjuhMsh]r%j)r%}r%(hj%h}r%(h]h]r%(jj%X std-settingr%eh]h]h]uhj%h]r%hX CELERY_ROUTESr%r%}r%(hUhj%ubahjubaubhX are now imported lazily.r%r%}r%(hX are now imported lazily.hj%ubeubj)r%}r%(hUh}r%(h]h]h]h]h]uhj%h]r%h)r%}r%(hXImporting a router class in a module that also loads the Celery environment would cause a circular dependency. This is solved by importing it when needed after the environment is set up.r%hj%hhhjh}r%(h]h]h]h]h]uhMuh]r%hXImporting a router class in a module that also loads the Celery environment would cause a circular dependency. This is solved by importing it when needed after the environment is set up.r%r%}r%(hj%hj%ubaubahjubeubh)r%}r%(hX:setting:`CELERY_ROUTES` was broken if set to a single dict. This example in the docs should now work again:: CELERY_ROUTES = {"feed.tasks.import_feed": "feeds"} hj$hhhjh}r%(h]h]h]h]h]uhNhhh]r%(h)r%}r%(hX<:setting:`CELERY_ROUTES` was broken if set to a single dict.hj%hhhjh}r%(h]h]h]h]h]uhMyh]r%(j)r%}r%(hX:setting:`CELERY_ROUTES`r%hj%hhhjh}r%(UreftypeXsettingjjX CELERY_ROUTESU refdomainXstdr%h]h]U refexplicith]h]h]jjuhMyh]r%j)r%}r%(hj%h}r%(h]h]r%(jj%X std-settingr%eh]h]h]uhj%h]r%hX CELERY_ROUTESr%r%}r%(hUhj%ubahjubaubhX$ was broken if set to a single dict.r%r%}r%(hX$ was broken if set to a single dict.hj%ubeubj)r%}r%(hUh}r%(h]h]h]h]h]uhj%h]r%(h)r%}r%(hX0This example in the docs should now work again::hj%hhhjh}r%(h]h]h]h]h]uhM{h]r%hX/This example in the docs should now work again:r%r%}r%(hX/This example in the docs should now work again:hj%ubaubjM)r%}r%(hX3CELERY_ROUTES = {"feed.tasks.import_feed": "feeds"}hj%hjPh}r%(jTjUh]h]h]h]h]uhM}h]r%hX3CELERY_ROUTES = {"feed.tasks.import_feed": "feeds"}r%r%}r%(hUhj%ubaubehjubeubh)r%}r%(hX:``CREATE_MISSING_QUEUES`` was not honored by apply_async. hj$hhhjh}r%(h]h]h]h]h]uhNhhh]r%h)r%}r%(hX9``CREATE_MISSING_QUEUES`` was not honored by apply_async.hj%hhhjh}r%(h]h]h]h]h]uhMh]r%(j)r%}r%(hX``CREATE_MISSING_QUEUES``h}r%(h]h]h]h]h]uhj%h]r%hXCREATE_MISSING_QUEUESr%r%}r%(hUhj%ubahjubhX was not honored by apply_async.r%r%}r%(hX was not honored by apply_async.hj%ubeubaubh)r%}r%(hXNew remote control command: ``stats`` Dumps information about the worker, like pool process ids, and total number of tasks executed by type. Example reply:: [{'worker.local': 'total': {'tasks.sleeptask': 6}, 'pool': {'timeouts': [None, None], 'processes': [60376, 60377], 'max-concurrency': 2, 'max-tasks-per-child': None, 'put-guarded-by-semaphore': True}}] hj$hhhjh}r%(h]h]h]h]h]uhNhhh]r%(h)r%}r%(hX%New remote control command: ``stats``hj%hhhjh}r%(h]h]h]h]h]uhMh]r%(hXNew remote control command: r%r%}r%(hXNew remote control command: hj%ubj)r%}r%(hX ``stats``h}r%(h]h]h]h]h]uhj%h]r%hXstatsr%r%}r%(hUhj%ubahjubeubj)r%}r%(hUh}r%(h]h]h]h]h]uhj%h]r&(h)r&}r&(hXfDumps information about the worker, like pool process ids, and total number of tasks executed by type.r&hj%hhhjh}r&(h]h]h]h]h]uhMh]r&hXfDumps information about the worker, like pool process ids, and total number of tasks executed by type.r&r&}r&(hj&hj&ubaubh)r &}r &(hXExample reply::hj%hhhjh}r &(h]h]h]h]h]uhMh]r &hXExample reply:r &r&}r&(hXExample reply:hj &ubaubjM)r&}r&(hX [{'worker.local': 'total': {'tasks.sleeptask': 6}, 'pool': {'timeouts': [None, None], 'processes': [60376, 60377], 'max-concurrency': 2, 'max-tasks-per-child': None, 'put-guarded-by-semaphore': True}}]hj%hjPh}r&(jTjUh]h]h]h]h]uhMh]r&hX [{'worker.local': 'total': {'tasks.sleeptask': 6}, 'pool': {'timeouts': [None, None], 'processes': [60376, 60377], 'max-concurrency': 2, 'max-tasks-per-child': None, 'put-guarded-by-semaphore': True}}]r&r&}r&(hUhj&ubaubehjubeubh)r&}r&(hXSNew remote control command: ``dump_active`` Gives a list of tasks currently being executed by the worker. By default arguments are passed through repr in case there are arguments that is not JSON encodable. If you know the arguments are JSON safe, you can pass the argument ``safe=True``. Example reply:: >>> broadcast("dump_active", arguments={"safe": False}, reply=True) [{'worker.local': [ {'args': '(1,)', 'time_start': 1278580542.6300001, 'name': 'tasks.sleeptask', 'delivery_info': { 'consumer_tag': '30', 'routing_key': 'celery', 'exchange': 'celery'}, 'hostname': 'casper.local', 'acknowledged': True, 'kwargs': '{}', 'id': '802e93e9-e470-47ed-b913-06de8510aca2', } ]}] hj$hhhjh}r&(h]h]h]h]h]uhNhhh]r&(h)r&}r&(hX+New remote control command: ``dump_active``hj&hhhjh}r&(h]h]h]h]h]uhMh]r&(hXNew remote control command: r&r &}r!&(hXNew remote control command: hj&ubj)r"&}r#&(hX``dump_active``h}r$&(h]h]h]h]h]uhj&h]r%&hX dump_activer&&r'&}r(&(hUhj"&ubahjubeubj)r)&}r*&(hUh}r+&(h]h]h]h]h]uhj&h]r,&(h)r-&}r.&(hXGives a list of tasks currently being executed by the worker. By default arguments are passed through repr in case there are arguments that is not JSON encodable. If you know the arguments are JSON safe, you can pass the argument ``safe=True``.hj)&hhhjh}r/&(h]h]h]h]h]uhMh]r0&(hXGives a list of tasks currently being executed by the worker. By default arguments are passed through repr in case there are arguments that is not JSON encodable. If you know the arguments are JSON safe, you can pass the argument r1&r2&}r3&(hXGives a list of tasks currently being executed by the worker. By default arguments are passed through repr in case there are arguments that is not JSON encodable. If you know the arguments are JSON safe, you can pass the argument hj-&ubj)r4&}r5&(hX ``safe=True``h}r6&(h]h]h]h]h]uhj-&h]r7&hX safe=Truer8&r9&}r:&(hUhj4&ubahjubhX.r;&}r<&(hX.hj-&ubeubh)r=&}r>&(hXExample reply::hj)&hhhjh}r?&(h]h]h]h]h]uhMh]r@&hXExample reply:rA&rB&}rC&(hXExample reply:hj=&ubaubjM)rD&}rE&(hX>>> broadcast("dump_active", arguments={"safe": False}, reply=True) [{'worker.local': [ {'args': '(1,)', 'time_start': 1278580542.6300001, 'name': 'tasks.sleeptask', 'delivery_info': { 'consumer_tag': '30', 'routing_key': 'celery', 'exchange': 'celery'}, 'hostname': 'casper.local', 'acknowledged': True, 'kwargs': '{}', 'id': '802e93e9-e470-47ed-b913-06de8510aca2', } ]}]hj)&hjPh}rF&(jTjUh]h]h]h]h]uhMh]rG&hX>>> broadcast("dump_active", arguments={"safe": False}, reply=True) [{'worker.local': [ {'args': '(1,)', 'time_start': 1278580542.6300001, 'name': 'tasks.sleeptask', 'delivery_info': { 'consumer_tag': '30', 'routing_key': 'celery', 'exchange': 'celery'}, 'hostname': 'casper.local', 'acknowledged': True, 'kwargs': '{}', 'id': '802e93e9-e470-47ed-b913-06de8510aca2', } ]}]rH&rI&}rJ&(hUhjD&ubaubehjubeubh)rK&}rL&(hXAdded experimental support for persistent revokes. Use the ``-S|--statedb`` argument to celeryd to enable it:: $ celeryd --statedb=/var/run/celeryd This will use the file: ``/var/run/celeryd.db``, as the ``shelve`` module automatically adds the ``.db`` suffix. hj$hhhjh}rM&(h]h]h]h]h]uhNhhh]rN&(h)rO&}rP&(hX2Added experimental support for persistent revokes.rQ&hjK&hhhjh}rR&(h]h]h]h]h]uhMh]rS&hX2Added experimental support for persistent revokes.rT&rU&}rV&(hjQ&hjO&ubaubj)rW&}rX&(hUh}rY&(h]h]h]h]h]uhjK&h]rZ&(h)r[&}r\&(hX;Use the ``-S|--statedb`` argument to celeryd to enable it::hjW&hhhjh}r]&(h]h]h]h]h]uhMh]r^&(hXUse the r_&r`&}ra&(hXUse the hj[&ubj)rb&}rc&(hX``-S|--statedb``h}rd&(h]h]h]h]h]uhj[&h]re&hX -S|--statedbrf&rg&}rh&(hUhjb&ubahjubhX" argument to celeryd to enable it:ri&rj&}rk&(hX" argument to celeryd to enable it:hj[&ubeubjM)rl&}rm&(hX$$ celeryd --statedb=/var/run/celerydhjW&hjPh}rn&(jTjUh]h]h]h]h]uhMh]ro&hX$$ celeryd --statedb=/var/run/celerydrp&rq&}rr&(hUhjl&ubaubh)rs&}rt&(hXpThis will use the file: ``/var/run/celeryd.db``, as the ``shelve`` module automatically adds the ``.db`` suffix.hjW&hhhjh}ru&(h]h]h]h]h]uhMh]rv&(hXThis will use the file: rw&rx&}ry&(hXThis will use the file: hjs&ubj)rz&}r{&(hX``/var/run/celeryd.db``h}r|&(h]h]h]h]h]uhjs&h]r}&hX/var/run/celeryd.dbr~&r&}r&(hUhjz&ubahjubhX , as the r&r&}r&(hX , as the hjs&ubj)r&}r&(hX ``shelve``h}r&(h]h]h]h]h]uhjs&h]r&hXshelver&r&}r&(hUhj&ubahjubhX module automatically adds the r&r&}r&(hX module automatically adds the hjs&ubj)r&}r&(hX``.db``h}r&(h]h]h]h]h]uhjs&h]r&hX.dbr&r&}r&(hUhj&ubahjubhX suffix.r&r&}r&(hX suffix.hjs&ubeubehjubeubeubjf)r&}r&(hX.. _version-2.0.0:hjU$hhhjih}r&(h]h]h]h]h]jkjuhMhhh]ubeubh)r&}r&(hUhhhhjn}r&hj&shhh}r&(h]h]h]h]r&(jUid17r&eh]r&(hVheuhMhhjt}r&jj&sh]r&(h)r&}r&(hjhj&hhhhh}r&(h]h]h]h]h]jkjuhMhhh]r&hX2.0.0r&r&}r&(hjhj&ubaubj)r&}r&(hUhj&hhhjh}r&(h]h]h]h]h]uhMhhh]r&j)r&}r&(hUhj&hhhjh}r&(h]h]h]h]h]uhMhhh]r&(j)r&}r&(hX release-dater&h}r&(h]h]h]h]h]uhj&h]r&hX release-dater&r&}r&(hj&hj&ubahjubj)r&}r&(hX2010-07-02 02:30 P.M CEST h}r&(h]h]h]h]h]uhj&h]r&h)r&}r&(hX2010-07-02 02:30 P.M CESTr&hj&hhhjh}r&(h]h]h]h]h]uhMh]r&hX2010-07-02 02:30 P.M CESTr&r&}r&(hj&hj&ubaubahjubeubaubh)r&}r&(hUhj&hhhhh}r&(h]h]h]h]r&jah]r&h=auhMhhh]r&(h)r&}r&(hjhj&hhhhh}r&(h]h]h]h]h]jkjuhMhhh]r&hXForewordr&r&}r&(hjhj&ubaubh)r&}r&(hXCelery 2.0 contains backward incompatible changes, the most important being that the Django dependency has been removed so Celery no longer supports Django out of the box, but instead as an add-on package called `django-celery`_.hj&hhhjh}r&(h]h]h]h]h]uhMhhh]r&(hXCelery 2.0 contains backward incompatible changes, the most important being that the Django dependency has been removed so Celery no longer supports Django out of the box, but instead as an add-on package called r&r&}r&(hXCelery 2.0 contains backward incompatible changes, the most important being that the Django dependency has been removed so Celery no longer supports Django out of the box, but instead as an add-on package called hj&ubh)r&}r&(hX`django-celery`_j Khj&hjh}r&(UnameX django-celeryr&j X)http://pypi.python.org/pypi/django-celeryr&h]h]h]h]h]uh]r&hX django-celeryr&r&}r&(hUhj&ubaubhX.r&}r&(hX.hj&ubeubh)r&}r&(hXWe're very sorry for breaking backwards compatibility, but there's also many new and exciting features to make up for the time you lose upgrading, so be sure to read the :ref:`News ` section.hj&hhhjh}r&(h]h]h]h]h]uhMhhh]r&(hXWe're very sorry for breaking backwards compatibility, but there's also many new and exciting features to make up for the time you lose upgrading, so be sure to read the r&r&}r&(hXWe're very sorry for breaking backwards compatibility, but there's also many new and exciting features to make up for the time you lose upgrading, so be sure to read the hj&ubj)r&}r&(hX:ref:`News `r&hj&hhhjh}r&(UreftypeXrefjjX v200-newsU refdomainXstdr&h]h]U refexplicith]h]h]jjuhMh]r&j )r&}r&(hj&h}r&(h]h]r&(jj&Xstd-refr&eh]h]h]uhj&h]r&hXNewsr&r&}r&(hUhj&ubahj ubaubhX section.r&r&}r&(hX section.hj&ubeubh)r&}r'(hXQuite a lot of potential users have been upset about the Django dependency, so maybe this is a chance to get wider adoption by the Python community as well.r'hj&hhhjh}r'(h]h]h]h]h]uhMhhh]r'hXQuite a lot of potential users have been upset about the Django dependency, so maybe this is a chance to get wider adoption by the Python community as well.r'r'}r'(hj'hj&ubaubh)r'}r'(hX2Big thanks to all contributors, testers and users!r 'hj&hhhjh}r '(h]h]h]h]h]uhMhhh]r 'hX2Big thanks to all contributors, testers and users!r 'r '}r'(hj 'hj'ubaubjf)r'}r'(hX.. _v200-django-upgrade:hj&hhhjih}r'(h]h]h]h]h]jkUv200-django-upgrader'uhMhhh]ubeubh)r'}r'(hUhj&hhjn}r'h2j'shhh}r'(h]h]h]h]r'(jj'eh]r'(h"h2euhMhhjt}r'j'j'sh]r'(h)r'}r'(hjhj'hhhhh}r'(h]h]h]h]h]jkjuhMhhh]r'hXUpgrading for Django-usersr'r '}r!'(hjhj'ubaubh)r"'}r#'(hXJDjango integration has been moved to a separate package: `django-celery`_.r$'hj'hhhjh}r%'(h]h]h]h]h]uhMhhh]r&'(hX9Django integration has been moved to a separate package: r''r('}r)'(hX9Django integration has been moved to a separate package: hj"'ubh)r*'}r+'(hX`django-celery`_j Khj"'hjh}r,'(UnameX django-celeryj j&h]h]h]h]h]uh]r-'hX django-celeryr.'r/'}r0'(hUhj*'ubaubhX.r1'}r2'(hX.hj"'ubeubh)r3'}r4'(hUhj'hhhhh}r5'(jX*h]h]h]h]h]uhMhhh]r6'(h)r7'}r8'(hXTo upgrade you need to install the `django-celery`_ module and change:: INSTALLED_APPS = "celery" to:: INSTALLED_APPS = "djcelery" hj3'hhhjh}r9'(h]h]h]h]h]uhNhhh]r:'(h)r;'}r<'(hXGTo upgrade you need to install the `django-celery`_ module and change::hj7'hhhjh}r='(h]h]h]h]h]uhMh]r>'(hX#To upgrade you need to install the r?'r@'}rA'(hX#To upgrade you need to install the hj;'ubh)rB'}rC'(hX`django-celery`_j Khj;'hjh}rD'(UnameX django-celeryj j&h]h]h]h]h]uh]rE'hX django-celeryrF'rG'}rH'(hUhjB'ubaubhX module and change:rI'rJ'}rK'(hX module and change:hj;'ubeubjM)rL'}rM'(hXINSTALLED_APPS = "celery"hj7'hjPh}rN'(jTjUh]h]h]h]h]uhMh]rO'hXINSTALLED_APPS = "celery"rP'rQ'}rR'(hUhjL'ubaubh)rS'}rT'(hXto::hj7'hhhjh}rU'(h]h]h]h]h]uhMh]rV'hXto:rW'rX'}rY'(hXto:hjS'ubaubjM)rZ'}r['(hXINSTALLED_APPS = "djcelery"hj7'hjPh}r\'(jTjUh]h]h]h]h]uhMh]r]'hXINSTALLED_APPS = "djcelery"r^'r_'}r`'(hUhjZ'ubaubeubh)ra'}rb'(hXIf you use ``mod_wsgi`` you need to add the following line to your ``.wsgi`` file:: import os os.environ["CELERY_LOADER"] = "django" hj3'hhhjh}rc'(h]h]h]h]h]uhNhhh]rd'(h)re'}rf'(hXSIf you use ``mod_wsgi`` you need to add the following line to your ``.wsgi`` file::hja'hhhjh}rg'(h]h]h]h]h]uhMh]rh'(hX If you use ri'rj'}rk'(hX If you use hje'ubj)rl'}rm'(hX ``mod_wsgi``h}rn'(h]h]h]h]h]uhje'h]ro'hXmod_wsgirp'rq'}rr'(hUhjl'ubahjubhX, you need to add the following line to your rs'rt'}ru'(hX, you need to add the following line to your hje'ubj)rv'}rw'(hX ``.wsgi``h}rx'(h]h]h]h]h]uhje'h]ry'hX.wsgirz'r{'}r|'(hUhjv'ubahjubhX file:r}'r~'}r'(hX file:hje'ubeubjM)r'}r'(hX0import os os.environ["CELERY_LOADER"] = "django"hja'hjPh}r'(jTjUh]h]h]h]h]uhMh]r'hX0import os os.environ["CELERY_LOADER"] = "django"r'r'}r'(hUhj'ubaubeubh)r'}r'(hXaThe following modules has been moved to `django-celery`_: ===================================== ===================================== **Module name** **Replace with** ===================================== ===================================== ``celery.models`` ``djcelery.models`` ``celery.managers`` ``djcelery.managers`` ``celery.views`` ``djcelery.views`` ``celery.urls`` ``djcelery.urls`` ``celery.management`` ``djcelery.management`` ``celery.loaders.djangoapp`` ``djcelery.loaders`` ``celery.backends.database`` ``djcelery.backends.database`` ``celery.backends.cache`` ``djcelery.backends.cache`` ===================================== ===================================== hj3'hhhjh}r'(h]h]h]h]h]uhNhhh]r'(h)r'}r'(hX9The following modules has been moved to `django-celery`_:hj'hhhjh}r'(h]h]h]h]h]uhMh]r'(hX(The following modules has been moved to r'r'}r'(hX(The following modules has been moved to hj'ubh)r'}r'(hX`django-celery`_j Khj'hjh}r'(UnameX django-celeryj j&h]h]h]h]h]uh]r'hX django-celeryr'r'}r'(hUhj'ubaubhX:r'}r'(hX:hj'ubeubj)r'}r'(hUh}r'(h]h]h]h]h]uhj'h]r'jZ)r'}r'(hUh}r'(h]h]h]h]h]uhj'h]r'j_)r'}r'(hUh}r'(h]h]h]h]h]UcolsKuhj'h]r'(jd)r'}r'(hUh}r'(h]h]h]h]h]UcolwidthK%uhj'h]hjhubjd)r'}r'(hUh}r'(h]h]h]h]h]UcolwidthK%uhj'h]hjhubjl)r'}r'(hUh}r'(h]h]h]h]h]uhj'h]r'jq)r'}r'(hUh}r'(h]h]h]h]h]uhj'h]r'(jv)r'}r'(hUh}r'(h]h]h]h]h]uhj'h]r'h)r'}r'(hX**Module name**r'hj'hhhjh}r'(h]h]h]h]h]uhMh]r'j )r'}r'(hj'h}r'(h]h]h]h]h]uhj'h]r'hX Module namer'r'}r'(hUhj'ubahj ubaubahjubjv)r'}r'(hUh}r'(h]h]h]h]h]uhj'h]r'h)r'}r'(hX**Replace with**r'hj'hhhjh}r'(h]h]h]h]h]uhMh]r'j )r'}r'(hj'h}r'(h]h]h]h]h]uhj'h]r'hX Replace withr'r'}r'(hUhj'ubahj ubaubahjubehjubahjubj)r'}r'(hUh}r'(h]h]h]h]h]uhj'h]r'(jq)r'}r'(hUh}r'(h]h]h]h]h]uhj'h]r'(jv)r'}r'(hUh}r'(h]h]h]h]h]uhj'h]r'h)r'}r'(hX``celery.models``r'hj'hhhjh}r'(h]h]h]h]h]uhMh]r'j)r'}r'(hj'h}r'(h]h]h]h]h]uhj'h]r'hX celery.modelsr'r'}r'(hUhj'ubahjubaubahjubjv)r'}r'(hUh}r'(h]h]h]h]h]uhj'h]r'h)r'}r'(hX``djcelery.models``r'hj'hhhjh}r'(h]h]h]h]h]uhMh]r'j)r'}r'(hj'h}r'(h]h]h]h]h]uhj'h]r'hXdjcelery.modelsr'r'}r'(hUhj'ubahjubaubahjubehjubjq)r'}r'(hUh}r'(h]h]h]h]h]uhj'h]r((jv)r(}r((hUh}r((h]h]h]h]h]uhj'h]r(h)r(}r((hX``celery.managers``r(hj(hhhjh}r((h]h]h]h]h]uhMh]r (j)r (}r ((hj(h}r ((h]h]h]h]h]uhj(h]r (hXcelery.managersr(r(}r((hUhj (ubahjubaubahjubjv)r(}r((hUh}r((h]h]h]h]h]uhj'h]r(h)r(}r((hX``djcelery.managers``r(hj(hhhjh}r((h]h]h]h]h]uhMh]r(j)r(}r((hj(h}r((h]h]h]h]h]uhj(h]r(hXdjcelery.managersr(r(}r ((hUhj(ubahjubaubahjubehjubjq)r!(}r"((hUh}r#((h]h]h]h]h]uhj'h]r$((jv)r%(}r&((hUh}r'((h]h]h]h]h]uhj!(h]r((h)r)(}r*((hX``celery.views``r+(hj%(hhhjh}r,((h]h]h]h]h]uhMh]r-(j)r.(}r/((hj+(h}r0((h]h]h]h]h]uhj)(h]r1(hX celery.viewsr2(r3(}r4((hUhj.(ubahjubaubahjubjv)r5(}r6((hUh}r7((h]h]h]h]h]uhj!(h]r8(h)r9(}r:((hX``djcelery.views``r;(hj5(hhhjh}r<((h]h]h]h]h]uhMh]r=(j)r>(}r?((hj;(h}r@((h]h]h]h]h]uhj9(h]rA(hXdjcelery.viewsrB(rC(}rD((hUhj>(ubahjubaubahjubehjubjq)rE(}rF((hUh}rG((h]h]h]h]h]uhj'h]rH((jv)rI(}rJ((hUh}rK((h]h]h]h]h]uhjE(h]rL(h)rM(}rN((hX``celery.urls``rO(hjI(hhhjh}rP((h]h]h]h]h]uhMh]rQ(j)rR(}rS((hjO(h}rT((h]h]h]h]h]uhjM(h]rU(hX celery.urlsrV(rW(}rX((hUhjR(ubahjubaubahjubjv)rY(}rZ((hUh}r[((h]h]h]h]h]uhjE(h]r\(h)r](}r^((hX``djcelery.urls``r_(hjY(hhhjh}r`((h]h]h]h]h]uhMh]ra(j)rb(}rc((hj_(h}rd((h]h]h]h]h]uhj](h]re(hX djcelery.urlsrf(rg(}rh((hUhjb(ubahjubaubahjubehjubjq)ri(}rj((hUh}rk((h]h]h]h]h]uhj'h]rl((jv)rm(}rn((hUh}ro((h]h]h]h]h]uhji(h]rp(h)rq(}rr((hX``celery.management``rs(hjm(hhhjh}rt((h]h]h]h]h]uhMh]ru(j)rv(}rw((hjs(h}rx((h]h]h]h]h]uhjq(h]ry(hXcelery.managementrz(r{(}r|((hUhjv(ubahjubaubahjubjv)r}(}r~((hUh}r((h]h]h]h]h]uhji(h]r(h)r(}r((hX``djcelery.management``r(hj}(hhhjh}r((h]h]h]h]h]uhMh]r(j)r(}r((hj(h}r((h]h]h]h]h]uhj(h]r(hXdjcelery.managementr(r(}r((hUhj(ubahjubaubahjubehjubjq)r(}r((hUh}r((h]h]h]h]h]uhj'h]r((jv)r(}r((hUh}r((h]h]h]h]h]uhj(h]r(h)r(}r((hX``celery.loaders.djangoapp``r(hj(hhhjh}r((h]h]h]h]h]uhMh]r(j)r(}r((hj(h}r((h]h]h]h]h]uhj(h]r(hXcelery.loaders.djangoappr(r(}r((hUhj(ubahjubaubahjubjv)r(}r((hUh}r((h]h]h]h]h]uhj(h]r(h)r(}r((hX``djcelery.loaders``r(hj(hhhjh}r((h]h]h]h]h]uhMh]r(j)r(}r((hj(h}r((h]h]h]h]h]uhj(h]r(hXdjcelery.loadersr(r(}r((hUhj(ubahjubaubahjubehjubjq)r(}r((hUh}r((h]h]h]h]h]uhj'h]r((jv)r(}r((hUh}r((h]h]h]h]h]uhj(h]r(h)r(}r((hX``celery.backends.database``r(hj(hhhjh}r((h]h]h]h]h]uhMh]r(j)r(}r((hj(h}r((h]h]h]h]h]uhj(h]r(hXcelery.backends.databaser(r(}r((hUhj(ubahjubaubahjubjv)r(}r((hUh}r((h]h]h]h]h]uhj(h]r(h)r(}r((hX``djcelery.backends.database``r(hj(hhhjh}r((h]h]h]h]h]uhMh]r(j)r(}r((hj(h}r((h]h]h]h]h]uhj(h]r(hXdjcelery.backends.databaser(r(}r((hUhj(ubahjubaubahjubehjubjq)r(}r((hUh}r((h]h]h]h]h]uhj'h]r((jv)r(}r((hUh}r((h]h]h]h]h]uhj(h]r(h)r(}r((hX``celery.backends.cache``r(hj(hhhjh}r((h]h]h]h]h]uhMh]r(j)r(}r((hj(h}r((h]h]h]h]h]uhj(h]r(hXcelery.backends.cacher(r(}r((hUhj(ubahjubaubahjubjv)r(}r((hUh}r((h]h]h]h]h]uhj(h]r(h)r(}r((hX``djcelery.backends.cache``r(hj(hhhjh}r((h]h]h]h]h]uhMh]r(j)r(}r((hj(h}r((h]h]h]h]h]uhj(h]r(hXdjcelery.backends.cacher(r(}r((hUhj(ubahjubaubahjubehjubehjubehjubahjubahjubeubeubh)r(}r((hXImporting :mod:`djcelery` will automatically setup Celery to use Django loader. loader. It does this by setting the :envvar:`CELERY_LOADER` environment variable to ``"django"`` (it won't change it if a loader is already set.)hj'hhhjh}r((h]h]h]h]h]uhMhhh]r((hX Importing r(r(}r((hX Importing hj(ubj)r)}r)(hX:mod:`djcelery`r)hj(hhhjh}r)(UreftypeXmodjjXdjceleryU refdomainXpyr)h]h]U refexplicith]h]h]jjj Nj NuhMh]r)j)r)}r)(hj)h}r)(h]h]r )(jj)Xpy-modr )eh]h]h]uhj)h]r )hXdjceleryr )r )}r)(hUhj)ubahjubaubhX\ will automatically setup Celery to use Django loader. loader. It does this by setting the r)r)}r)(hX\ will automatically setup Celery to use Django loader. loader. It does this by setting the hj(ubj)r)}r)(hUh}r)(h]h]h]h]h]Uentriesr)]r)((j?X CELERY_LOADERr)Uindex-0r)Utr)(j?X#environment variable; CELERY_LOADERj)Utr)euhj(h]hjubjf)r)}r)(hUh}r)(h]h]h]h]r)j)ah]uhj(h]hjiubj)r)}r )(hX:envvar:`CELERY_LOADER`r!)hj(hhhjh}r")(UreftypeXenvvarjjj)U refdomainXstdr#)h]h]U refexplicith]h]h]jjuhMh]r$)j)r%)}r&)(hj!)h}r')(h]h]r()(jj#)X std-envvarr))eh]h]h]uhj)h]r*)hX CELERY_LOADERr+)r,)}r-)(hUhj%)ubahjubaubhX environment variable to r.)r/)}r0)(hX environment variable to hj(ubj)r1)}r2)(hX ``"django"``h}r3)(h]h]h]h]h]uhj(h]r4)hX"django"r5)r6)}r7)(hUhj1)ubahjubhX1 (it won't change it if a loader is already set.)r8)r9)}r:)(hX1 (it won't change it if a loader is already set.)hj(ubeubh)r;)}r<)(hXWhen the Django loader is used, the "database" and "cache" result backend aliases will point to the :mod:`djcelery` backends instead of the built-in backends, and configuration will be read from the Django settings.hj'hhhjh}r=)(h]h]h]h]h]uhMhhh]r>)(hXdWhen the Django loader is used, the "database" and "cache" result backend aliases will point to the r?)r@)}rA)(hXdWhen the Django loader is used, the "database" and "cache" result backend aliases will point to the hj;)ubj)rB)}rC)(hX:mod:`djcelery`rD)hj;)hhhjh}rE)(UreftypeXmodjjXdjceleryU refdomainXpyrF)h]h]U refexplicith]h]h]jjj Nj NuhMh]rG)j)rH)}rI)(hjD)h}rJ)(h]h]rK)(jjF)Xpy-modrL)eh]h]h]uhjB)h]rM)hXdjceleryrN)rO)}rP)(hUhjH)ubahjubaubhXd backends instead of the built-in backends, and configuration will be read from the Django settings.rQ)rR)}rS)(hXd backends instead of the built-in backends, and configuration will be read from the Django settings.hj;)ubeubjf)rT)}rU)(hX>.. _`django-celery`: http://pypi.python.org/pypi/django-celeryhKhj'hhhjih}rV)(j j&h]rW)U django-celeryrX)ah]h]h]h]rY)h&auhMhhh]ubjf)rZ)}r[)(hX.. _v200-upgrade:hj'hhhjih}r\)(h]h]h]h]h]jkU v200-upgrader])uhMhhh]ubeubh)r^)}r_)(hUhj&hhjn}r`)hCjZ)shhh}ra)(h]h]h]h]rb)(jj])eh]rc)(hlhCeuhMhhjt}rd)j])jZ)sh]re)(h)rf)}rg)(hjhj^)hhhhh}rh)(h]h]h]h]h]jkjuhMhhh]ri)hXUpgrading for othersrj)rk)}rl)(hjhjf)ubaubjf)rm)}rn)(hX.. _v200-upgrade-database:hj^)hhhjih}ro)(h]h]h]h]h]jkUv200-upgrade-databaserp)uhMhhh]ubh)rq)}rr)(hUhj^)hhjn}rs)h1jm)shhh}rt)(h]h]h]h]ru)(jjp)eh]rv)(h@h1euhMhhjt}rw)jp)jm)sh]rx)(h)ry)}rz)(hjhjq)hhhhh}r{)(h]h]h]h]h]jkjuhMhhh]r|)hXDatabase result backendr})r~)}r)(hjhjy)ubaubh)r)}r)(hXThe database result backend is now using `SQLAlchemy`_ instead of the Django ORM, see `Supported Databases`_ for a table of supported databases.hjq)hhhjh}r)(h]h]h]h]h]uhMhhh]r)(hX)The database result backend is now using r)r)}r)(hX)The database result backend is now using hj)ubh)r)}r)(hX `SQLAlchemy`_j Khj)hjh}r)(UnameX SQLAlchemyj Xhttp://www.sqlalchemy.orgr)h]h]h]h]h]uh]r)hX SQLAlchemyr)r)}r)(hUhj)ubaubhX instead of the Django ORM, see r)r)}r)(hX instead of the Django ORM, see hj)ubh)r)}r)(hX`Supported Databases`_j Khj)hjh}r)(UnameXSupported Databasesj X@http://www.sqlalchemy.org/docs/dbengine.html#supported-databasesr)h]h]h]h]h]uh]r)hXSupported Databasesr)r)}r)(hUhj)ubaubhX$ for a table of supported databases.r)r)}r)(hX$ for a table of supported databases.hj)ubeubh)r)}r)(hXThe ``DATABASE_*`` settings has been replaced by a single setting: :setting:`CELERY_RESULT_DBURI`. The value here should be an `SQLAlchemy Connection String`_, some examples include:hjq)hhhjh}r)(h]h]h]h]h]uhMhhh]r)(hXThe r)r)}r)(hXThe hj)ubj)r)}r)(hX``DATABASE_*``h}r)(h]h]h]h]h]uhj)h]r)hX DATABASE_*r)r)}r)(hUhj)ubahjubhX1 settings has been replaced by a single setting: r)r)}r)(hX1 settings has been replaced by a single setting: hj)ubj)r)}r)(hX:setting:`CELERY_RESULT_DBURI`r)hj)hhhjh}r)(UreftypeXsettingjjXCELERY_RESULT_DBURIU refdomainXstdr)h]h]U refexplicith]h]h]jjuhMh]r)j)r)}r)(hj)h}r)(h]h]r)(jj)X std-settingr)eh]h]h]uhj)h]r)hXCELERY_RESULT_DBURIr)r)}r)(hUhj)ubahjubaubhX. The value here should be an r)r)}r)(hX. The value here should be an hj)ubh)r)}r)(hX`SQLAlchemy Connection String`_j Khj)hjh}r)(UnameXSQLAlchemy Connection Stringj XHhttp://www.sqlalchemy.org/docs/dbengine.html#create-engine-url-argumentsr)h]h]h]h]h]uh]r)hXSQLAlchemy Connection Stringr)r)}r)(hUhj)ubaubhX, some examples include:r)r)}r)(hX, some examples include:hj)ubeubjM)r)}r)(hX*# sqlite (filename) CELERY_RESULT_DBURI = "sqlite:///celerydb.sqlite" # mysql CELERY_RESULT_DBURI = "mysql://scott:tiger@localhost/foo" # postgresql CELERY_RESULT_DBURI = "postgresql://scott:tiger@localhost/mydatabase" # oracle CELERY_RESULT_DBURI = "oracle://scott:tiger@127.0.0.1:1521/sidname"hjq)hhhjPh}r)(jRjSXpythonjTjUh]h]h]h]h]uhM hhh]r)hX*# sqlite (filename) CELERY_RESULT_DBURI = "sqlite:///celerydb.sqlite" # mysql CELERY_RESULT_DBURI = "mysql://scott:tiger@localhost/foo" # postgresql CELERY_RESULT_DBURI = "postgresql://scott:tiger@localhost/mydatabase" # oracle CELERY_RESULT_DBURI = "oracle://scott:tiger@127.0.0.1:1521/sidname"r)r)}r)(hUhj)ubaubh)r)}r)(hXSSee `SQLAlchemy Connection Strings`_ for more information about connection strings.hjq)hhhjh}r)(h]h]h]h]h]uhMhhh]r)(hXSee r)r)}r)(hXSee hj)ubh)r)}r)(hX `SQLAlchemy Connection Strings`_j Khj)hjh}r)(UnameXSQLAlchemy Connection Stringsj XHhttp://www.sqlalchemy.org/docs/dbengine.html#create-engine-url-argumentsr)h]h]h]h]h]uh]r)hXSQLAlchemy Connection Stringsr)r)}r)(hUhj)ubaubhX/ for more information about connection strings.r)r)}r)(hX/ for more information about connection strings.hj)ubeubh)r)}r)(hXzTo specify additional SQLAlchemy database engine options you can use the :setting:`CELERY_RESULT_ENGINE_OPTIONS` setting::hjq)hhhjh}r)(h]h]h]h]h]uhMhhh]r)(hXITo specify additional SQLAlchemy database engine options you can use the r)r)}r)(hXITo specify additional SQLAlchemy database engine options you can use the hj)ubj)r)}r)(hX':setting:`CELERY_RESULT_ENGINE_OPTIONS`r)hj)hhhjh}r)(UreftypeXsettingjjXCELERY_RESULT_ENGINE_OPTIONSU refdomainXstdr)h]h]U refexplicith]h]h]jjuhMh]r)j)r)}r)(hj)h}r)(h]h]r)(jj)X std-settingr)eh]h]h]uhj)h]r)hXCELERY_RESULT_ENGINE_OPTIONSr)r)}r)(hUhj)ubahjubaubhX setting:r)r)}r)(hX setting:hj)ubeubjM)r)}r)(hX]# echo enables verbose logging from SQLAlchemy. CELERY_RESULT_ENGINE_OPTIONS = {"echo": True}hjq)hhhjPh}r)(jTjUh]h]h]h]h]uhMhhh]r*hX]# echo enables verbose logging from SQLAlchemy. CELERY_RESULT_ENGINE_OPTIONS = {"echo": True}r*r*}r*(hUhj)ubaubjf)r*}r*(hX/.. _`SQLAlchemy`: http://www.sqlalchemy.orghKhjq)hhhjih}r*(j j)h]r*U sqlalchemyr*ah]h]h]h]r *hhauhM hhh]ubjf)r *}r *(hX_.. _`Supported Databases`: http://www.sqlalchemy.org/docs/dbengine.html#supported-databaseshKhjq)hhhjih}r *(j j)h]r *Usupported-databasesr*ah]h]h]h]r*h\auhM"hhh]ubjf)r*}r*(hXp.. _`SQLAlchemy Connection String`: http://www.sqlalchemy.org/docs/dbengine.html#create-engine-url-argumentshKhjq)hhhjih}r*(j j)h]r*Usqlalchemy-connection-stringr*ah]h]h]h]r*hauhM$hhh]ubjf)r*}r*(hXq.. _`SQLAlchemy Connection Strings`: http://www.sqlalchemy.org/docs/dbengine.html#create-engine-url-argumentshKhjq)hhhjih}r*(j j)h]r*Usqlalchemy-connection-stringsr*ah]h]h]h]r*hauhM&hhh]ubjf)r*}r*(hX.. _v200-upgrade-cache:hjq)hhhjih}r*(h]h]h]h]h]jkUv200-upgrade-cacher*uhM)hhh]ubeubh)r *}r!*(hUhj^)hhjn}r"*hj*shhh}r#*(h]h]h]h]r$*(j j*eh]r%*(hheuhM,hhjt}r&*j*j*sh]r'*(h)r(*}r)*(hjhj *hhhhh}r**(h]h]h]h]h]jkj uhM,hhh]r+*hXCache result backendr,*r-*}r.*(hjhj(*ubaubh)r/*}r0*(hX~The cache result backend is no longer using the Django cache framework, but it supports mostly the same configuration syntax::hj *hhhjh}r1*(h]h]h]h]h]uhM.hhh]r2*hX}The cache result backend is no longer using the Django cache framework, but it supports mostly the same configuration syntax:r3*r4*}r5*(hX}The cache result backend is no longer using the Django cache framework, but it supports mostly the same configuration syntax:hj/*ubaubjM)r6*}r7*(hXFCELERY_CACHE_BACKEND = "memcached://A.example.com:11211;B.example.com"hj *hhhjPh}r8*(jTjUh]h]h]h]h]uhM1hhh]r9*hXFCELERY_CACHE_BACKEND = "memcached://A.example.com:11211;B.example.com"r:*r;*}r<*(hUhj6*ubaubh)r=*}r>*(hXTo use the cache backend you must either have the `pylibmc`_ or `python-memcached`_ library installed, of which the former is regarded as the best choice.hj *hhhjh}r?*(h]h]h]h]h]uhM3hhh]r@*(hX2To use the cache backend you must either have the rA*rB*}rC*(hX2To use the cache backend you must either have the hj=*ubh)rD*}rE*(hX `pylibmc`_j Khj=*hjh}rF*(UnameXpylibmcrG*j X#http://pypi.python.org/pypi/pylibmcrH*h]h]h]h]h]uh]rI*hXpylibmcrJ*rK*}rL*(hUhjD*ubaubhX or rM*rN*}rO*(hX or hj=*ubh)rP*}rQ*(hX`python-memcached`_j Khj=*hjh}rR*(UnameXpython-memcachedrS*j X,http://pypi.python.org/pypi/python-memcachedrT*h]h]h]h]h]uh]rU*hXpython-memcachedrV*rW*}rX*(hUhjP*ubaubhXG library installed, of which the former is regarded as the best choice.rY*rZ*}r[*(hXG library installed, of which the former is regarded as the best choice.hj=*ubeubjf)r\*}r]*(hX2.. _`pylibmc`: http://pypi.python.org/pypi/pylibmchKhj *hhhjih}r^*(j jH*h]r_*Upylibmcr`*ah]h]h]h]ra*h#auhM7hhh]ubjf)rb*}rc*(hXD.. _`python-memcached`: http://pypi.python.org/pypi/python-memcachedhKhj *hhhjih}rd*(j jT*h]re*Upython-memcachedrf*ah]h]h]h]rg*hauhM8hhh]ubh)rh*}ri*(hXThe support backend types are ``memcached://`` and ``memory://``, we haven't felt the need to support any of the other backends provided by Django.hj *hhhjh}rj*(h]h]h]h]h]uhM:hhh]rk*(hXThe support backend types are rl*rm*}rn*(hXThe support backend types are hjh*ubj)ro*}rp*(hX``memcached://``h}rq*(h]h]h]h]h]uhjh*h]rr*hX memcached://rs*rt*}ru*(hUhjo*ubahjubhX and rv*rw*}rx*(hX and hjh*ubj)ry*}rz*(hX ``memory://``h}r{*(h]h]h]h]h]uhjh*h]r|*hX memory://r}*r~*}r*(hUhjy*ubahjubhXS, we haven't felt the need to support any of the other backends provided by Django.r*r*}r*(hXS, we haven't felt the need to support any of the other backends provided by Django.hjh*ubeubjf)r*}r*(hX.. _v200-incompatible:hj *hhhjih}r*(h]h]h]h]h]jkUv200-incompatibler*uhM>hhh]ubeubeubh)r*}r*(hUhKhj&hhjn}r*h^j*shhh}r*(h]r*Xbackward incompatible changesr*ah]h]h]r*(j j*eh]r*h^auhMAhhjt}r*j*j*sh]r*(h)r*}r*(hj%hj*hhhhh}r*(h]h]h]h]h]jkjuhMAhhh]r*hXBackward incompatible changesr*r*}r*(hj%hj*ubaubh)r*}r*(hUhj*hhhhh}r*(jX*h]h]h]h]h]uhMChhh]r*(h)r*}r*(hXDefault (python) loader now prints warning on missing ``celeryconfig.py`` instead of raising :exc:`ImportError`. celeryd raises :exc:`~celery.exceptions.ImproperlyConfigured` if the configuration is not set up. This makes it possible to use `--help` etc., without having a working configuration. Also this makes it possible to use the client side of celery without being configured:: >>> from carrot.connection import BrokerConnection >>> conn = BrokerConnection("localhost", "guest", "guest", "/") >>> from celery.execute import send_task >>> r = send_task("celery.ping", args=(), kwargs={}, connection=conn) >>> from celery.backends.amqp import AMQPBackend >>> r.backend = AMQPBackend(connection=conn) >>> r.get() 'pong' hj*hhhjh}r*(h]h]h]h]h]uhNhhh]r*(h)r*}r*(hXpDefault (python) loader now prints warning on missing ``celeryconfig.py`` instead of raising :exc:`ImportError`.hj*hhhjh}r*(h]h]h]h]h]uhMCh]r*(hX6Default (python) loader now prints warning on missing r*r*}r*(hX6Default (python) loader now prints warning on missing hj*ubj)r*}r*(hX``celeryconfig.py``h}r*(h]h]h]h]h]uhj*h]r*hXceleryconfig.pyr*r*}r*(hUhj*ubahjubhX instead of raising r*r*}r*(hX instead of raising hj*ubj)r*}r*(hX:exc:`ImportError`r*hj*hhhjh}r*(UreftypeXexcjjX ImportErrorU refdomainXpyr*h]h]U refexplicith]h]h]jjj Nj NuhMCh]r*j)r*}r*(hj*h}r*(h]h]r*(jj*Xpy-excr*eh]h]h]uhj*h]r*hX ImportErrorr*r*}r*(hUhj*ubahjubaubhX.r*}r*(hX.hj*ubeubj)r*}r*(hUh}r*(h]h]h]h]h]uhj*h]r*(h)r*}r*(hXceleryd raises :exc:`~celery.exceptions.ImproperlyConfigured` if the configuration is not set up. This makes it possible to use `--help` etc., without having a working configuration.hj*hhhjh}r*(h]h]h]h]h]uhMFh]r*(hXceleryd raises r*r*}r*(hXceleryd raises hj*ubj)r*}r*(hX.:exc:`~celery.exceptions.ImproperlyConfigured`r*hj*hhhjh}r*(UreftypeXexcjjX&celery.exceptions.ImproperlyConfiguredU refdomainXpyr*h]h]U refexplicith]h]h]jjj Nj NuhMFh]r*j)r*}r*(hj*h}r*(h]h]r*(jj*Xpy-excr*eh]h]h]uhj*h]r*hXImproperlyConfiguredr*r*}r*(hUhj*ubahjubaubhXC if the configuration is not set up. This makes it possible to use r*r*}r*(hXC if the configuration is not set up. This makes it possible to use hj*ubj()r*}r*(hX`--help`h}r*(h]h]h]h]h]uhj*h]r*hX--helpr*r*}r*(hUhj*ubahj0ubhX. etc., without having a working configuration.r*r*}r*(hX. etc., without having a working configuration.hj*ubeubh)r*}r*(hXWAlso this makes it possible to use the client side of celery without being configured::hj*hhhjh}r*(h]h]h]h]h]uhMJh]r*hXVAlso this makes it possible to use the client side of celery without being configured:r*r*}r*(hXVAlso this makes it possible to use the client side of celery without being configured:hj*ubaubjM)r*}r*(hXR>>> from carrot.connection import BrokerConnection >>> conn = BrokerConnection("localhost", "guest", "guest", "/") >>> from celery.execute import send_task >>> r = send_task("celery.ping", args=(), kwargs={}, connection=conn) >>> from celery.backends.amqp import AMQPBackend >>> r.backend = AMQPBackend(connection=conn) >>> r.get() 'pong'hj*hjPh}r*(jTjUh]h]h]h]h]uhMMh]r*hXR>>> from carrot.connection import BrokerConnection >>> conn = BrokerConnection("localhost", "guest", "guest", "/") >>> from celery.execute import send_task >>> r = send_task("celery.ping", args=(), kwargs={}, connection=conn) >>> from celery.backends.amqp import AMQPBackend >>> r.backend = AMQPBackend(connection=conn) >>> r.get() 'pong'r*r*}r*(hUhj*ubaubehjubeubh)r*}r*(hXThe following deprecated settings has been removed (as scheduled by the `deprecation timeline`_): ===================================== ===================================== **Setting name** **Replace with** ===================================== ===================================== ``CELERY_AMQP_CONSUMER_QUEUES`` ``CELERY_QUEUES`` ``CELERY_AMQP_EXCHANGE`` ``CELERY_DEFAULT_EXCHANGE`` ``CELERY_AMQP_EXCHANGE_TYPE`` ``CELERY_DEFAULT_EXCHANGE_TYPE`` ``CELERY_AMQP_CONSUMER_ROUTING_KEY`` ``CELERY_QUEUES`` ``CELERY_AMQP_PUBLISHER_ROUTING_KEY`` ``CELERY_DEFAULT_ROUTING_KEY`` ===================================== ===================================== hj*hhhjh}r*(h]h]h]h]h]uhNhhh]r*(h)r*}r*(hXaThe following deprecated settings has been removed (as scheduled by the `deprecation timeline`_):hj*hhhjh}r*(h]h]h]h]h]uhMVh]r*(hXHThe following deprecated settings has been removed (as scheduled by the r*r+}r+(hXHThe following deprecated settings has been removed (as scheduled by the hj*ubh)r+}r+(hX`deprecation timeline`_j Khj*hjh}r+(UnameXdeprecation timelinej X7http://ask.github.com/celery/internals/deprecation.htmlr+h]h]h]h]h]uh]r+hXdeprecation timeliner+r+}r +(hUhj+ubaubhX):r +r +}r +(hX):hj*ubeubj)r +}r+(hUh}r+(h]h]h]h]h]uhj*h]r+jZ)r+}r+(hUh}r+(h]h]h]h]h]uhj +h]r+j_)r+}r+(hUh}r+(h]h]h]h]h]UcolsKuhj+h]r+(jd)r+}r+(hUh}r+(h]h]h]h]h]UcolwidthK%uhj+h]hjhubjd)r+}r+(hUh}r+(h]h]h]h]h]UcolwidthK%uhj+h]hjhubjl)r+}r +(hUh}r!+(h]h]h]h]h]uhj+h]r"+jq)r#+}r$+(hUh}r%+(h]h]h]h]h]uhj+h]r&+(jv)r'+}r(+(hUh}r)+(h]h]h]h]h]uhj#+h]r*+h)r++}r,+(hX**Setting name**r-+hj'+hhhjh}r.+(h]h]h]h]h]uhMZh]r/+j )r0+}r1+(hj-+h}r2+(h]h]h]h]h]uhj++h]r3+hX Setting namer4+r5+}r6+(hUhj0+ubahj ubaubahjubjv)r7+}r8+(hUh}r9+(h]h]h]h]h]uhj#+h]r:+h)r;+}r<+(hX**Replace with**r=+hj7+hhhjh}r>+(h]h]h]h]h]uhMZh]r?+j )r@+}rA+(hj=+h}rB+(h]h]h]h]h]uhj;+h]rC+hX Replace withrD+rE+}rF+(hUhj@+ubahj ubaubahjubehjubahjubj)rG+}rH+(hUh}rI+(h]h]h]h]h]uhj+h]rJ+(jq)rK+}rL+(hUh}rM+(h]h]h]h]h]uhjG+h]rN+(jv)rO+}rP+(hUh}rQ+(h]h]h]h]h]uhjK+h]rR+h)rS+}rT+(hX``CELERY_AMQP_CONSUMER_QUEUES``rU+hjO+hhhjh}rV+(h]h]h]h]h]uhM\h]rW+j)rX+}rY+(hjU+h}rZ+(h]h]h]h]h]uhjS+h]r[+hXCELERY_AMQP_CONSUMER_QUEUESr\+r]+}r^+(hUhjX+ubahjubaubahjubjv)r_+}r`+(hUh}ra+(h]h]h]h]h]uhjK+h]rb+h)rc+}rd+(hX``CELERY_QUEUES``re+hj_+hhhjh}rf+(h]h]h]h]h]uhM\h]rg+j)rh+}ri+(hje+h}rj+(h]h]h]h]h]uhjc+h]rk+hX CELERY_QUEUESrl+rm+}rn+(hUhjh+ubahjubaubahjubehjubjq)ro+}rp+(hUh}rq+(h]h]h]h]h]uhjG+h]rr+(jv)rs+}rt+(hUh}ru+(h]h]h]h]h]uhjo+h]rv+h)rw+}rx+(hX``CELERY_AMQP_EXCHANGE``ry+hjs+hhhjh}rz+(h]h]h]h]h]uhM]h]r{+j)r|+}r}+(hjy+h}r~+(h]h]h]h]h]uhjw+h]r+hXCELERY_AMQP_EXCHANGEr+r+}r+(hUhj|+ubahjubaubahjubjv)r+}r+(hUh}r+(h]h]h]h]h]uhjo+h]r+h)r+}r+(hX``CELERY_DEFAULT_EXCHANGE``r+hj+hhhjh}r+(h]h]h]h]h]uhM]h]r+j)r+}r+(hj+h}r+(h]h]h]h]h]uhj+h]r+hXCELERY_DEFAULT_EXCHANGEr+r+}r+(hUhj+ubahjubaubahjubehjubjq)r+}r+(hUh}r+(h]h]h]h]h]uhjG+h]r+(jv)r+}r+(hUh}r+(h]h]h]h]h]uhj+h]r+h)r+}r+(hX``CELERY_AMQP_EXCHANGE_TYPE``r+hj+hhhjh}r+(h]h]h]h]h]uhM^h]r+j)r+}r+(hj+h}r+(h]h]h]h]h]uhj+h]r+hXCELERY_AMQP_EXCHANGE_TYPEr+r+}r+(hUhj+ubahjubaubahjubjv)r+}r+(hUh}r+(h]h]h]h]h]uhj+h]r+h)r+}r+(hX ``CELERY_DEFAULT_EXCHANGE_TYPE``r+hj+hhhjh}r+(h]h]h]h]h]uhM^h]r+j)r+}r+(hj+h}r+(h]h]h]h]h]uhj+h]r+hXCELERY_DEFAULT_EXCHANGE_TYPEr+r+}r+(hUhj+ubahjubaubahjubehjubjq)r+}r+(hUh}r+(h]h]h]h]h]uhjG+h]r+(jv)r+}r+(hUh}r+(h]h]h]h]h]uhj+h]r+h)r+}r+(hX$``CELERY_AMQP_CONSUMER_ROUTING_KEY``r+hj+hhhjh}r+(h]h]h]h]h]uhM_h]r+j)r+}r+(hj+h}r+(h]h]h]h]h]uhj+h]r+hX CELERY_AMQP_CONSUMER_ROUTING_KEYr+r+}r+(hUhj+ubahjubaubahjubjv)r+}r+(hUh}r+(h]h]h]h]h]uhj+h]r+h)r+}r+(hX``CELERY_QUEUES``r+hj+hhhjh}r+(h]h]h]h]h]uhM_h]r+j)r+}r+(hj+h}r+(h]h]h]h]h]uhj+h]r+hX CELERY_QUEUESr+r+}r+(hUhj+ubahjubaubahjubehjubjq)r+}r+(hUh}r+(h]h]h]h]h]uhjG+h]r+(jv)r+}r+(hUh}r+(h]h]h]h]h]uhj+h]r+h)r+}r+(hX%``CELERY_AMQP_PUBLISHER_ROUTING_KEY``r+hj+hhhjh}r+(h]h]h]h]h]uhM`h]r+j)r+}r+(hj+h}r+(h]h]h]h]h]uhj+h]r+hX!CELERY_AMQP_PUBLISHER_ROUTING_KEYr+r+}r+(hUhj+ubahjubaubahjubjv)r+}r+(hUh}r+(h]h]h]h]h]uhj+h]r+h)r+}r+(hX``CELERY_DEFAULT_ROUTING_KEY``r+hj+hhhjh}r+(h]h]h]h]h]uhM`h]r+j)r+}r+(hj+h}r+(h]h]h]h]h]uhj+h]r+hXCELERY_DEFAULT_ROUTING_KEYr+r+}r+(hUhj+ubahjubaubahjubehjubehjubehjubahjubahjubeubeubjf)r+}r,(hXW.. _`deprecation timeline`: http://ask.github.com/celery/internals/deprecation.htmlhKhj*hhhjih}r,(j j+h]r,Udeprecation-timeliner,ah]h]h]h]r,hauhMchhh]ubh)r,}r,(hUhj*hhhhh}r,(jX*h]h]h]h]h]uhMfhhh]r,(h)r ,}r ,(hXThe ``celery.task.rest`` module has been removed, use :mod:`celery.task.http` instead (as scheduled by the `deprecation timeline`_). hj,hhhjh}r ,(h]h]h]h]h]uhNhhh]r ,h)r ,}r,(hXThe ``celery.task.rest`` module has been removed, use :mod:`celery.task.http` instead (as scheduled by the `deprecation timeline`_).hj ,hhhjh}r,(h]h]h]h]h]uhMfh]r,(hXThe r,r,}r,(hXThe hj ,ubj)r,}r,(hX``celery.task.rest``h}r,(h]h]h]h]h]uhj ,h]r,hXcelery.task.restr,r,}r,(hUhj,ubahjubhX module has been removed, use r,r,}r,(hX module has been removed, use hj ,ubj)r,}r,(hX:mod:`celery.task.http`r ,hj ,hhhjh}r!,(UreftypeXmodjjXcelery.task.httpU refdomainXpyr",h]h]U refexplicith]h]h]jjj Nj NuhMfh]r#,j)r$,}r%,(hj ,h}r&,(h]h]r',(jj",Xpy-modr(,eh]h]h]uhj,h]r),hXcelery.task.httpr*,r+,}r,,(hUhj$,ubahjubaubhX instead (as scheduled by the r-,r.,}r/,(hX instead (as scheduled by the hj ,ubh)r0,}r1,(hX`deprecation timeline`_j Khj ,hjh}r2,(UnameXdeprecation timelinej j+h]h]h]h]h]uh]r3,hXdeprecation timeliner4,r5,}r6,(hUhj0,ubaubhX).r7,r8,}r9,(hX).hj ,ubeubaubh)r:,}r;,(hXXIt's no longer allowed to skip the class name in loader names. (as scheduled by the `deprecation timeline`_): Assuming the implicit ``Loader`` class name is no longer supported, if you use e.g.:: CELERY_LOADER = "myapp.loaders" You need to include the loader class name, like this:: CELERY_LOADER = "myapp.loaders.Loader" hj,hhhjh}r<,(h]h]h]h]h]uhNhhh]r=,(h)r>,}r?,(hXmIt's no longer allowed to skip the class name in loader names. (as scheduled by the `deprecation timeline`_):hj:,hhhjh}r@,(h]h]h]h]h]uhMih]rA,(hXTIt's no longer allowed to skip the class name in loader names. (as scheduled by the rB,rC,}rD,(hXTIt's no longer allowed to skip the class name in loader names. (as scheduled by the hj>,ubh)rE,}rF,(hX`deprecation timeline`_j Khj>,hjh}rG,(UnameXdeprecation timelinej j+h]h]h]h]h]uh]rH,hXdeprecation timelinerI,rJ,}rK,(hUhjE,ubaubhX):rL,rM,}rN,(hX):hj>,ubeubj)rO,}rP,(hUh}rQ,(h]h]h]h]h]uhj:,h]rR,(h)rS,}rT,(hXUAssuming the implicit ``Loader`` class name is no longer supported, if you use e.g.::hjO,hhhjh}rU,(h]h]h]h]h]uhMlh]rV,(hXAssuming the implicit rW,rX,}rY,(hXAssuming the implicit hjS,ubj)rZ,}r[,(hX ``Loader``h}r\,(h]h]h]h]h]uhjS,h]r],hXLoaderr^,r_,}r`,(hUhjZ,ubahjubhX4 class name is no longer supported, if you use e.g.:ra,rb,}rc,(hX4 class name is no longer supported, if you use e.g.:hjS,ubeubjM)rd,}re,(hXCELERY_LOADER = "myapp.loaders"hjO,hjPh}rf,(jTjUh]h]h]h]h]uhMoh]rg,hXCELERY_LOADER = "myapp.loaders"rh,ri,}rj,(hUhjd,ubaubh)rk,}rl,(hX6You need to include the loader class name, like this::hjO,hhhjh}rm,(h]h]h]h]h]uhMqh]rn,hX5You need to include the loader class name, like this:ro,rp,}rq,(hX5You need to include the loader class name, like this:hjk,ubaubjM)rr,}rs,(hX&CELERY_LOADER = "myapp.loaders.Loader"hjO,hjPh}rt,(jTjUh]h]h]h]h]uhMsh]ru,hX&CELERY_LOADER = "myapp.loaders.Loader"rv,rw,}rx,(hUhjr,ubaubehjubeubh)ry,}rz,(hXr:setting:`CELERY_TASK_RESULT_EXPIRES` now defaults to 1 day. Previous default setting was to expire in 5 days. hj,hhhjh}r{,(h]h]h]h]h]uhNhhh]r|,(h)r},}r~,(hX<:setting:`CELERY_TASK_RESULT_EXPIRES` now defaults to 1 day.hjy,hhhjh}r,(h]h]h]h]h]uhMuh]r,(j)r,}r,(hX%:setting:`CELERY_TASK_RESULT_EXPIRES`r,hj},hhhjh}r,(UreftypeXsettingjjXCELERY_TASK_RESULT_EXPIRESU refdomainXstdr,h]h]U refexplicith]h]h]jjuhMuh]r,j)r,}r,(hj,h}r,(h]h]r,(jj,X std-settingr,eh]h]h]uhj,h]r,hXCELERY_TASK_RESULT_EXPIRESr,r,}r,(hUhj,ubahjubaubhX now defaults to 1 day.r,r,}r,(hX now defaults to 1 day.hj},ubeubj)r,}r,(hUh}r,(h]h]h]h]h]uhjy,h]r,h)r,}r,(hX1Previous default setting was to expire in 5 days.r,hj,hhhjh}r,(h]h]h]h]h]uhMwh]r,hX1Previous default setting was to expire in 5 days.r,r,}r,(hj,hj,ubaubahjubeubh)r,}r,(hXaAMQP backend: Don't use different values for `auto_delete`. This bug became visible with RabbitMQ 1.8.0, which no longer allows conflicting declarations for the auto_delete and durable settings. If you've already used celery with this backend chances are you have to delete the previous declaration:: $ camqadm exchange.delete celeryresults hj,hhhjh}r,(h]h]h]h]h]uhNhhh]r,(h)r,}r,(hX;AMQP backend: Don't use different values for `auto_delete`.hj,hhhjh}r,(h]h]h]h]h]uhMyh]r,(hX-AMQP backend: Don't use different values for r,r,}r,(hX-AMQP backend: Don't use different values for hj,ubj()r,}r,(hX `auto_delete`h}r,(h]h]h]h]h]uhj,h]r,hX auto_deleter,r,}r,(hUhj,ubahj0ubhX.r,}r,(hX.hj,ubeubj)r,}r,(hUh}r,(h]h]h]h]h]uhj,h]r,(h)r,}r,(hXThis bug became visible with RabbitMQ 1.8.0, which no longer allows conflicting declarations for the auto_delete and durable settings.r,hj,hhhjh}r,(h]h]h]h]h]uhM{h]r,hXThis bug became visible with RabbitMQ 1.8.0, which no longer allows conflicting declarations for the auto_delete and durable settings.r,r,}r,(hj,hj,ubaubh)r,}r,(hXiIf you've already used celery with this backend chances are you have to delete the previous declaration::hj,hhhjh}r,(h]h]h]h]h]uhM~h]r,hXhIf you've already used celery with this backend chances are you have to delete the previous declaration:r,r,}r,(hXhIf you've already used celery with this backend chances are you have to delete the previous declaration:hj,ubaubjM)r,}r,(hX'$ camqadm exchange.delete celeryresultshj,hjPh}r,(jTjUh]h]h]h]h]uhMh]r,hX'$ camqadm exchange.delete celeryresultsr,r,}r,(hUhj,ubaubehjubeubh)r,}r,(hXNow uses pickle instead of cPickle on Python versions <= 2.5 cPickle is broken in Python <= 2.5. It unsafely and incorrectly uses relative instead of absolute imports, so e.g.:: exceptions.KeyError becomes:: celery.exceptions.KeyError Your best choice is to upgrade to Python 2.6, as while the pure pickle version has worse performance, it is the only safe option for older Python versions. hj,hhhjh}r,(h]h]h]h]h]uhNhhh]r,(h)r,}r,(hX<Now uses pickle instead of cPickle on Python versions <= 2.5r,hj,hhhjh}r,(h]h]h]h]h]uhMh]r,hX<Now uses pickle instead of cPickle on Python versions <= 2.5r,r,}r,(hj,hj,ubaubj)r,}r,(hUh}r,(h]h]h]h]h]uhj,h]r,(h)r,}r,(hX#cPickle is broken in Python <= 2.5.r,hj,hhhjh}r,(h]h]h]h]h]uhMh]r,hX#cPickle is broken in Python <= 2.5.r,r,}r,(hj,hj,ubaubh)r,}r,(hXPIt unsafely and incorrectly uses relative instead of absolute imports, so e.g.::hj,hhhjh}r,(h]h]h]h]h]uhMh]r,hXOIt unsafely and incorrectly uses relative instead of absolute imports, so e.g.:r,r,}r,(hXOIt unsafely and incorrectly uses relative instead of absolute imports, so e.g.:hj,ubaubjM)r,}r,(hXexceptions.KeyErrorhj,hjPh}r,(jTjUh]h]h]h]h]uhMh]r,hXexceptions.KeyErrorr,r,}r,(hUhj,ubaubh)r,}r,(hX becomes::hj,hhhjh}r,(h]h]h]h]h]uhMh]r,hXbecomes:r,r,}r,(hXbecomes:hj,ubaubjM)r,}r,(hXcelery.exceptions.KeyErrorhj,hjPh}r,(jTjUh]h]h]h]h]uhMh]r,hXcelery.exceptions.KeyErrorr,r,}r-(hUhj,ubaubh)r-}r-(hXYour best choice is to upgrade to Python 2.6, as while the pure pickle version has worse performance, it is the only safe option for older Python versions.r-hj,hhhjh}r-(h]h]h]h]h]uhMh]r-hXYour best choice is to upgrade to Python 2.6, as while the pure pickle version has worse performance, it is the only safe option for older Python versions.r-r-}r-(hj-hj-ubaubehjubeubeubjf)r -}r -(hX.. _v200-news:hj*hhhjih}r -(h]h]h]h]h]jkj3uhMhhh]ubeubh)r -}r -(hUhKhj&hhjn}r-hAj -shhh}r-(h]r-Xnewsr-ah]h]h]r-(j3Uid18r-eh]r-hAauhMhhjt}r-j3j -sh]r-(h)r-}r-(hj8hj -hhhhh}r-(h]h]h]h]h]jkj2uhMhhh]r-hXNewsr-r-}r-(hj8hj-ubaubh)r-}r-(hUhj -hhhhh}r -(jX*h]h]h]h]h]uhMhhh]r!-(h)r"-}r#-(hX**celeryev**: Curses Celery Monitor and Event Viewer. This is a simple monitor allowing you to see what tasks are executing in real-time and investigate tracebacks and results of ready tasks. It also enables you to set new rate limits and revoke tasks. Screenshot: .. figure:: images/celeryevshotsm.jpg If you run ``celeryev`` with the ``-d`` switch it will act as an event dumper, simply dumping the events it receives to standard out:: $ celeryev -d -> celeryev: starting capture... casper.local [2010-06-04 10:42:07.020000] heartbeat casper.local [2010-06-04 10:42:14.750000] task received: tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={} eta=2010-06-04T10:42:16.669290, retries=0 casper.local [2010-06-04 10:42:17.230000] task started tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={} casper.local [2010-06-04 10:42:17.960000] task succeeded: tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={} result=4, runtime=0.782663106918 The fields here are, in order: *sender hostname*, *timestamp*, *event type* and *additional event fields*. hj-hhhjh}r$-(h]h]h]h]h]uhNhhh]r%-(h)r&-}r'-(hX5**celeryev**: Curses Celery Monitor and Event Viewer.hj"-hhhjh}r(-(h]h]h]h]h]uhMh]r)-(j )r*-}r+-(hX **celeryev**h}r,-(h]h]h]h]h]uhj&-h]r--hXceleryevr.-r/-}r0-(hUhj*-ubahj ubhX): Curses Celery Monitor and Event Viewer.r1-r2-}r3-(hX): Curses Celery Monitor and Event Viewer.hj&-ubeubj)r4-}r5-(hUh}r6-(h]h]h]h]h]uhj"-h]r7-(h)r8-}r9-(hXThis is a simple monitor allowing you to see what tasks are executing in real-time and investigate tracebacks and results of ready tasks. It also enables you to set new rate limits and revoke tasks.r:-hj4-hhhjh}r;-(h]h]h]h]h]uhMh]r<-hXThis is a simple monitor allowing you to see what tasks are executing in real-time and investigate tracebacks and results of ready tasks. It also enables you to set new rate limits and revoke tasks.r=-r>-}r?-(hj:-hj8-ubaubh)r@-}rA-(hX Screenshot:rB-hj4-hhhjh}rC-(h]h]h]h]h]uhMh]rD-hX Screenshot:rE-rF-}rG-(hjB-hj@-ubaubcdocutils.nodes figure rH-)rI-}rJ-(hUh}rK-(h]h]h]h]h]uhj4-h]rL-cdocutils.nodes image rM-)rN-}rO-(hX&.. figure:: images/celeryevshotsm.jpg h}rP-(UuriXimages/celeryevshotsm.jpgrQ-h]h]h]h]U candidatesrR-}rS-U*jQ-sh]uhjI-h]hUimagerT-ubahUfigurerU-ubh)rV-}rW-(hXIf you run ``celeryev`` with the ``-d`` switch it will act as an event dumper, simply dumping the events it receives to standard out::hj4-hhhjh}rX-(h]h]h]h]h]uhMh]rY-(hX If you run rZ-r[-}r\-(hX If you run hjV-ubj)r]-}r^-(hX ``celeryev``h}r_-(h]h]h]h]h]uhjV-h]r`-hXceleryevra-rb-}rc-(hUhj]-ubahjubhX with the rd-re-}rf-(hX with the hjV-ubj)rg-}rh-(hX``-d``h}ri-(h]h]h]h]h]uhjV-h]rj-hX-drk-rl-}rm-(hUhjg-ubahjubhX^ switch it will act as an event dumper, simply dumping the events it receives to standard out:rn-ro-}rp-(hX^ switch it will act as an event dumper, simply dumping the events it receives to standard out:hjV-ubeubjM)rq-}rr-(hX$ celeryev -d -> celeryev: starting capture... casper.local [2010-06-04 10:42:07.020000] heartbeat casper.local [2010-06-04 10:42:14.750000] task received: tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={} eta=2010-06-04T10:42:16.669290, retries=0 casper.local [2010-06-04 10:42:17.230000] task started tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={} casper.local [2010-06-04 10:42:17.960000] task succeeded: tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={} result=4, runtime=0.782663106918 The fields here are, in order: *sender hostname*, *timestamp*, *event type* and *additional event fields*.hj4-hjPh}rs-(jTjUh]h]h]h]h]uhMh]rt-hX$ celeryev -d -> celeryev: starting capture... casper.local [2010-06-04 10:42:07.020000] heartbeat casper.local [2010-06-04 10:42:14.750000] task received: tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={} eta=2010-06-04T10:42:16.669290, retries=0 casper.local [2010-06-04 10:42:17.230000] task started tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={} casper.local [2010-06-04 10:42:17.960000] task succeeded: tasks.add(61a68756-27f4-4879-b816-3cf815672b0e) args=[2, 2] kwargs={} result=4, runtime=0.782663106918 The fields here are, in order: *sender hostname*, *timestamp*, *event type* and *additional event fields*.ru-rv-}rw-(hUhjq-ubaubehjubeubh)rx-}ry-(hXAMQP result backend: Now supports ``.ready()``, ``.successful()``, ``.result``, ``.status``, and even responds to changes in task state hj-hhhjh}rz-(h]h]h]h]h]uhNhhh]r{-h)r|-}r}-(hXAMQP result backend: Now supports ``.ready()``, ``.successful()``, ``.result``, ``.status``, and even responds to changes in task statehjx-hhhjh}r~-(h]h]h]h]h]uhMh]r-(hX"AMQP result backend: Now supports r-r-}r-(hX"AMQP result backend: Now supports hj|-ubj)r-}r-(hX ``.ready()``h}r-(h]h]h]h]h]uhj|-h]r-hX.ready()r-r-}r-(hUhj-ubahjubhX, r-r-}r-(hX, hj|-ubj)r-}r-(hX``.successful()``h}r-(h]h]h]h]h]uhj|-h]r-hX .successful()r-r-}r-(hUhj-ubahjubhX, r-r-}r-(hX, hj|-ubj)r-}r-(hX ``.result``h}r-(h]h]h]h]h]uhj|-h]r-hX.resultr-r-}r-(hUhj-ubahjubhX, r-r-}r-(hX, hj|-ubj)r-}r-(hX ``.status``h}r-(h]h]h]h]h]uhj|-h]r-hX.statusr-r-}r-(hUhj-ubahjubhX,, and even responds to changes in task stater-r-}r-(hX,, and even responds to changes in task statehj|-ubeubaubh)r-}r-(hXjNew user guides: * :doc:`userguide/workers` * :doc:`userguide/tasksets` * :doc:`userguide/routing` hj-hhhjh}r-(h]h]h]h]h]uhNhhh]r-(h)r-}r-(hXNew user guides:r-hj-hhhjh}r-(h]h]h]h]h]uhMh]r-hXNew user guides:r-r-}r-(hj-hj-ubaubj)r-}r-(hUh}r-(h]h]h]h]h]uhj-h]r-h)r-}r-(hUh}r-(jX*h]h]h]h]h]uhj-h]r-(h)r-}r-(hX:doc:`userguide/workers`r-h}r-(h]h]h]h]h]uhj-h]r-h)r-}r-(hj-hj-hhhjh}r-(h]h]h]h]h]uhMh]r-j)r-}r-(hj-hj-hhhjh}r-(UreftypeXdocr-jjXuserguide/workersU refdomainUh]h]U refexplicith]h]h]jjuhMh]r-j)r-}r-(hj-h}r-(h]h]r-(jj-eh]h]h]uhj-h]r-hXuserguide/workersr-r-}r-(hUhj-ubahjubaubaubahjubh)r-}r-(hX:doc:`userguide/tasksets`r-h}r-(h]h]h]h]h]uhj-h]r-h)r-}r-(hj-hj-hhhjh}r-(h]h]h]h]h]uhMh]r-j)r-}r-(hj-hj-hhhjh}r-(UreftypeXdocr-jjXuserguide/tasksetsU refdomainUh]h]U refexplicith]h]h]jjuhMh]r-j)r-}r-(hj-h}r-(h]h]r-(jj-eh]h]h]uhj-h]r-hXuserguide/tasksetsr-r-}r-(hUhj-ubahjubaubaubahjubh)r-}r-(hX:doc:`userguide/routing` h}r-(h]h]h]h]h]uhj-h]r-h)r-}r-(hX:doc:`userguide/routing`r-hj-hhhjh}r-(h]h]h]h]h]uhMh]r-j)r-}r-(hj-hj-hhhjh}r-(UreftypeXdocr-jjXuserguide/routingU refdomainUh]h]U refexplicith]h]h]jjuhMh]r-j)r-}r-(hj-h}r-(h]h]r-(jj-eh]h]h]uhj-h]r-hXuserguide/routingr-r-}r.(hUhj-ubahjubaubaubahjubehhubahjubeubh)r.}r.(hXEceleryd: Standard out/error is now being redirected to the log file. hj-hhhjh}r.(h]h]h]h]h]uhNhhh]r.h)r.}r.(hXDceleryd: Standard out/error is now being redirected to the log file.r.hj.hhhjh}r.(h]h]h]h]h]uhMh]r .hXDceleryd: Standard out/error is now being redirected to the log file.r .r .}r .(hj.hj.ubaubaubh)r .}r.(hX:mod:`billiard` has been moved back to the celery repository. ===================================== ===================================== **Module name** **celery equivalent** ===================================== ===================================== ``billiard.pool`` ``celery.concurrency.processes.pool`` ``billiard.serialization`` ``celery.serialization`` ``billiard.utils.functional`` ``celery.utils.functional`` ===================================== ===================================== The :mod:`billiard` distribution may be maintained, depending on interest. hj-hhhjh}r.(h]h]h]h]h]uhNhhh]r.(h)r.}r.(hX=:mod:`billiard` has been moved back to the celery repository.hj .hhhjh}r.(h]h]h]h]h]uhMh]r.(j)r.}r.(hX:mod:`billiard`r.hj.hhhjh}r.(UreftypeXmodjjXbilliardU refdomainXpyr.h]h]U refexplicith]h]h]jjj Nj NuhMh]r.j)r.}r.(hj.h}r.(h]h]r.(jj.Xpy-modr.eh]h]h]uhj.h]r .hXbilliardr!.r".}r#.(hUhj.ubahjubaubhX. has been moved back to the celery repository.r$.r%.}r&.(hX. has been moved back to the celery repository.hj.ubeubj)r'.}r(.(hUh}r).(h]h]h]h]h]uhj .h]r*.(jZ)r+.}r,.(hUh}r-.(h]h]h]h]h]uhj'.h]r..j_)r/.}r0.(hUh}r1.(h]h]h]h]h]UcolsKuhj+.h]r2.(jd)r3.}r4.(hUh}r5.(h]h]h]h]h]UcolwidthK%uhj/.h]hjhubjd)r6.}r7.(hUh}r8.(h]h]h]h]h]UcolwidthK%uhj/.h]hjhubjl)r9.}r:.(hUh}r;.(h]h]h]h]h]uhj/.h]r<.jq)r=.}r>.(hUh}r?.(h]h]h]h]h]uhj9.h]r@.(jv)rA.}rB.(hUh}rC.(h]h]h]h]h]uhj=.h]rD.h)rE.}rF.(hX**Module name**rG.hjA.hhhjh}rH.(h]h]h]h]h]uhMh]rI.j )rJ.}rK.(hjG.h}rL.(h]h]h]h]h]uhjE.h]rM.hX Module namerN.rO.}rP.(hUhjJ.ubahj ubaubahjubjv)rQ.}rR.(hUh}rS.(h]h]h]h]h]uhj=.h]rT.h)rU.}rV.(hX**celery equivalent**rW.hjQ.hhhjh}rX.(h]h]h]h]h]uhMh]rY.j )rZ.}r[.(hjW.h}r\.(h]h]h]h]h]uhjU.h]r].hXcelery equivalentr^.r_.}r`.(hUhjZ.ubahj ubaubahjubehjubahjubj)ra.}rb.(hUh}rc.(h]h]h]h]h]uhj/.h]rd.(jq)re.}rf.(hUh}rg.(h]h]h]h]h]uhja.h]rh.(jv)ri.}rj.(hUh}rk.(h]h]h]h]h]uhje.h]rl.h)rm.}rn.(hX``billiard.pool``ro.hji.hhhjh}rp.(h]h]h]h]h]uhMh]rq.j)rr.}rs.(hjo.h}rt.(h]h]h]h]h]uhjm.h]ru.hX billiard.poolrv.rw.}rx.(hUhjr.ubahjubaubahjubjv)ry.}rz.(hUh}r{.(h]h]h]h]h]uhje.h]r|.h)r}.}r~.(hX%``celery.concurrency.processes.pool``r.hjy.hhhjh}r.(h]h]h]h]h]uhMh]r.j)r.}r.(hj.h}r.(h]h]h]h]h]uhj}.h]r.hX!celery.concurrency.processes.poolr.r.}r.(hUhj.ubahjubaubahjubehjubjq)r.}r.(hUh}r.(h]h]h]h]h]uhja.h]r.(jv)r.}r.(hUh}r.(h]h]h]h]h]uhj.h]r.h)r.}r.(hX``billiard.serialization``r.hj.hhhjh}r.(h]h]h]h]h]uhMh]r.j)r.}r.(hj.h}r.(h]h]h]h]h]uhj.h]r.hXbilliard.serializationr.r.}r.(hUhj.ubahjubaubahjubjv)r.}r.(hUh}r.(h]h]h]h]h]uhj.h]r.h)r.}r.(hX``celery.serialization``r.hj.hhhjh}r.(h]h]h]h]h]uhMh]r.j)r.}r.(hj.h}r.(h]h]h]h]h]uhj.h]r.hXcelery.serializationr.r.}r.(hUhj.ubahjubaubahjubehjubjq)r.}r.(hUh}r.(h]h]h]h]h]uhja.h]r.(jv)r.}r.(hUh}r.(h]h]h]h]h]uhj.h]r.h)r.}r.(hX``billiard.utils.functional``r.hj.hhhjh}r.(h]h]h]h]h]uhMh]r.j)r.}r.(hj.h}r.(h]h]h]h]h]uhj.h]r.hXbilliard.utils.functionalr.r.}r.(hUhj.ubahjubaubahjubjv)r.}r.(hUh}r.(h]h]h]h]h]uhj.h]r.h)r.}r.(hX``celery.utils.functional``r.hj.hhhjh}r.(h]h]h]h]h]uhMh]r.j)r.}r.(hj.h}r.(h]h]h]h]h]uhj.h]r.hXcelery.utils.functionalr.r.}r.(hUhj.ubahjubaubahjubehjubehjubehjubahjubh)r.}r.(hXJThe :mod:`billiard` distribution may be maintained, depending on interest.hj'.hhhjh}r.(h]h]h]h]h]uhMh]r.(hXThe r.r.}r.(hXThe hj.ubj)r.}r.(hX:mod:`billiard`r.hj.hhhjh}r.(UreftypeXmodjjXbilliardU refdomainXpyr.h]h]U refexplicith]h]h]jjj Nj NuhMh]r.j)r.}r.(hj.h}r.(h]h]r.(jj.Xpy-modr.eh]h]h]uhj.h]r.hXbilliardr.r.}r.(hUhj.ubahjubaubhX7 distribution may be maintained, depending on interest.r.r.}r.(hX7 distribution may be maintained, depending on interest.hj.ubeubehjubeubh)r.}r.(hX'now depends on :mod:`carrot` >= 0.10.5 hj-hhhjh}r.(h]h]h]h]h]uhNhhh]r.h)r.}r.(hX&now depends on :mod:`carrot` >= 0.10.5hj.hhhjh}r.(h]h]h]h]h]uhMh]r.(hXnow depends on r.r.}r.(hXnow depends on hj.ubj)r.}r.(hX :mod:`carrot`r.hj.hhhjh}r.(UreftypeXmodjjXcarrotU refdomainXpyr.h]h]U refexplicith]h]h]jjj Nj NuhMh]r.j)r.}r.(hj.h}r.(h]h]r.(jj.Xpy-modr.eh]h]h]uhj.h]r/hXcarrotr/r/}r/(hUhj.ubahjubaubhX >= 0.10.5r/r/}r/(hX >= 0.10.5hj.ubeubaubh)r/}r/(hX now depends on :mod:`pyparsing` hj-hhhjh}r /(h]h]h]h]h]uhNhhh]r /h)r /}r /(hXnow depends on :mod:`pyparsing`hj/hhhjh}r /(h]h]h]h]h]uhMh]r/(hXnow depends on r/r/}r/(hXnow depends on hj /ubj)r/}r/(hX:mod:`pyparsing`r/hj /hhhjh}r/(UreftypeXmodjjX pyparsingU refdomainXpyr/h]h]U refexplicith]h]h]jjj Nj NuhMh]r/j)r/}r/(hj/h}r/(h]h]r/(jj/Xpy-modr/eh]h]h]uhj/h]r/hX pyparsingr/r/}r /(hUhj/ubahjubaubeubaubh)r!/}r"/(hX9celeryd: Added ``--purge`` as an alias to ``--discard``. hj-hhhjh}r#/(h]h]h]h]h]uhNhhh]r$/h)r%/}r&/(hX8celeryd: Added ``--purge`` as an alias to ``--discard``.hj!/hhhjh}r'/(h]h]h]h]h]uhMh]r(/(hXceleryd: Added r)/r*/}r+/(hXceleryd: Added hj%/ubj)r,/}r-/(hX ``--purge``h}r./(h]h]h]h]h]uhj%/h]r//hX--purger0/r1/}r2/(hUhj,/ubahjubhX as an alias to r3/r4/}r5/(hX as an alias to hj%/ubj)r6/}r7/(hX ``--discard``h}r8/(h]h]h]h]h]uhj%/h]r9/hX --discardr:/r;/}r/(hX.hj%/ubeubaubh)r?/}r@/(hX[celeryd: Ctrl+C (SIGINT) once does warm shutdown, hitting Ctrl+C twice forces termination. hj-hhhjh}rA/(h]h]h]h]h]uhNhhh]rB/h)rC/}rD/(hXZceleryd: Ctrl+C (SIGINT) once does warm shutdown, hitting Ctrl+C twice forces termination.rE/hj?/hhhjh}rF/(h]h]h]h]h]uhMh]rG/hXZceleryd: Ctrl+C (SIGINT) once does warm shutdown, hitting Ctrl+C twice forces termination.rH/rI/}rJ/(hjE/hjC/ubaubaubh)rK/}rL/(hXAdded support for using complex crontab-expressions in periodic tasks. For example, you can now use:: >>> crontab(minute="*/15") or even:: >>> crontab(minute="*/30", hour="8-17,1-2", day_of_week="thu-fri") See :doc:`userguide/periodic-tasks`. hj-hhhjh}rM/(h]h]h]h]h]uhNhhh]rN/(h)rO/}rP/(hXeAdded support for using complex crontab-expressions in periodic tasks. For example, you can now use::hjK/hhhjh}rQ/(h]h]h]h]h]uhMh]rR/hXdAdded support for using complex crontab-expressions in periodic tasks. For example, you can now use:rS/rT/}rU/(hXdAdded support for using complex crontab-expressions in periodic tasks. For example, you can now use:hjO/ubaubjM)rV/}rW/(hX>>> crontab(minute="*/15")hjK/hjPh}rX/(jTjUh]h]h]h]h]uhMh]rY/hX>>> crontab(minute="*/15")rZ/r[/}r\/(hUhjV/ubaubh)r]/}r^/(hX or even::hjK/hhhjh}r_/(h]h]h]h]h]uhMh]r`/hXor even:ra/rb/}rc/(hXor even:hj]/ubaubjM)rd/}re/(hXB>>> crontab(minute="*/30", hour="8-17,1-2", day_of_week="thu-fri")hjK/hjPh}rf/(jTjUh]h]h]h]h]uhMh]rg/hXB>>> crontab(minute="*/30", hour="8-17,1-2", day_of_week="thu-fri")rh/ri/}rj/(hUhjd/ubaubh)rk/}rl/(hX$See :doc:`userguide/periodic-tasks`.hjK/hhhjh}rm/(h]h]h]h]h]uhMh]rn/(hXSee ro/rp/}rq/(hXSee hjk/ubj)rr/}rs/(hX:doc:`userguide/periodic-tasks`rt/hjk/hhhjh}ru/(UreftypeXdocrv/jjXuserguide/periodic-tasksU refdomainUh]h]U refexplicith]h]h]jjuhMh]rw/j)rx/}ry/(hjt/h}rz/(h]h]r{/(jjv/eh]h]h]uhjr/h]r|/hXuserguide/periodic-tasksr}/r~/}r/(hUhjx/ubahjubaubhX.r/}r/(hX.hjk/ubeubeubh)r/}r/(hX.celeryd: Now waits for available pool processes before applying new tasks to the pool. This means it doesn't have to wait for dozens of tasks to finish at shutdown because it has applied prefetched tasks without having any pool processes available to immediately accept them. See issue #122. hj-hhhjh}r/(h]h]h]h]h]uhNhhh]r/(h)r/}r/(hXVceleryd: Now waits for available pool processes before applying new tasks to the pool.r/hj/hhhjh}r/(h]h]h]h]h]uhMh]r/hXVceleryd: Now waits for available pool processes before applying new tasks to the pool.r/r/}r/(hj/hj/ubaubj)r/}r/(hUh}r/(h]h]h]h]h]uhj/h]r/(h)r/}r/(hXThis means it doesn't have to wait for dozens of tasks to finish at shutdown because it has applied prefetched tasks without having any pool processes available to immediately accept them.r/hj/hhhjh}r/(h]h]h]h]h]uhMh]r/hXThis means it doesn't have to wait for dozens of tasks to finish at shutdown because it has applied prefetched tasks without having any pool processes available to immediately accept them.r/r/}r/(hj/hj/ubaubh)r/}r/(hXSee issue #122.hj/hhhjh}r/(h]h]h]h]h]uhMh]r/(hX See issue r/r/}r/(hUhj/ubj)r/}r/(hUh}r/(UreftypejU trackerconfigj U reftargetX122r/h]h]h]h]h]uhj/h]r/j)r/}r/(hX#122h}r/(h]h]r/(jjeh]h]h]uhj/h]r/hX#122r/r/}r/(hUhj/ubahjubahjubhX.r/}r/(hUhj/ubeubehjubeubh)r/}r/(hXNew built-in way to do task callbacks using :class:`~celery.task.sets.subtask`. See :doc:`userguide/tasksets` for more information. hj-hhhjh}r/(h]h]h]h]h]uhNhhh]r/(h)r/}r/(hXONew built-in way to do task callbacks using :class:`~celery.task.sets.subtask`.hj/hhhjh}r/(h]h]h]h]h]uhMh]r/(hX,New built-in way to do task callbacks using r/r/}r/(hX,New built-in way to do task callbacks using hj/ubj)r/}r/(hX":class:`~celery.task.sets.subtask`r/hj/hhhjh}r/(UreftypeXclassjjXcelery.task.sets.subtaskU refdomainXpyr/h]h]U refexplicith]h]h]jjj Nj NuhMh]r/j)r/}r/(hj/h}r/(h]h]r/(jj/Xpy-classr/eh]h]h]uhj/h]r/hXsubtaskr/r/}r/(hUhj/ubahjubaubhX.r/}r/(hX.hj/ubeubh)r/}r/(hX3See :doc:`userguide/tasksets` for more information.hj/hhhjh}r/(h]h]h]h]h]uhMh]r/(hXSee r/r/}r/(hXSee hj/ubj)r/}r/(hX:doc:`userguide/tasksets`r/hj/hhhjh}r/(UreftypeXdocr/jjXuserguide/tasksetsU refdomainUh]h]U refexplicith]h]h]jjuhMh]r/j)r/}r/(hj/h}r/(h]h]r/(jj/eh]h]h]uhj/h]r/hXuserguide/tasksetsr/r/}r/(hUhj/ubahjubaubhX for more information.r/r/}r/(hX for more information.hj/ubeubeubh)r/}r/(hX TaskSets can now contain several types of tasks. :class:`~celery.task.sets.TaskSet` has been refactored to use a new syntax, please see :doc:`userguide/tasksets` for more information. The previous syntax is still supported, but will be deprecated in version 1.4. hj-hhhjh}r/(h]h]h]h]h]uhNhhh]r/(h)r/}r/(hX0TaskSets can now contain several types of tasks.r/hj/hhhjh}r/(h]h]h]h]h]uhMh]r/hX0TaskSets can now contain several types of tasks.r/r/}r/(hj/hj/ubaubh)r/}r/(hX:class:`~celery.task.sets.TaskSet` has been refactored to use a new syntax, please see :doc:`userguide/tasksets` for more information.hj/hhhjh}r/(h]h]h]h]h]uhMh]r/(j)r/}r/(hX":class:`~celery.task.sets.TaskSet`r/hj/hhhjh}r/(UreftypeXclassjjXcelery.task.sets.TaskSetU refdomainXpyr/h]h]U refexplicith]h]h]jjj Nj NuhMh]r/j)r/}r/(hj/h}r/(h]h]r/(jj/Xpy-classr/eh]h]h]uhj/h]r/hXTaskSetr0r0}r0(hUhj/ubahjubaubhX5 has been refactored to use a new syntax, please see r0r0}r0(hX5 has been refactored to use a new syntax, please see hj/ubj)r0}r0(hX:doc:`userguide/tasksets`r0hj/hhhjh}r 0(UreftypeXdocr 0jjXuserguide/tasksetsU refdomainUh]h]U refexplicith]h]h]jjuhMh]r 0j)r 0}r 0(hj0h}r0(h]h]r0(jj 0eh]h]h]uhj0h]r0hXuserguide/tasksetsr0r0}r0(hUhj 0ubahjubaubhX for more information.r0r0}r0(hX for more information.hj/ubeubh)r0}r0(hXNThe previous syntax is still supported, but will be deprecated in version 1.4.r0hj/hhhjh}r0(h]h]h]h]h]uhMh]r0hXNThe previous syntax is still supported, but will be deprecated in version 1.4.r0r0}r0(hj0hj0ubaubeubh)r0}r 0(hX:TaskSet failed() result was incorrect. See issue #132. hj-hhhjh}r!0(h]h]h]h]h]uhNhhh]r"0(h)r#0}r$0(hX&TaskSet failed() result was incorrect.r%0hj0hhhjh}r&0(h]h]h]h]h]uhMh]r'0hX&TaskSet failed() result was incorrect.r(0r)0}r*0(hj%0hj#0ubaubj)r+0}r,0(hUh}r-0(h]h]h]h]h]uhj0h]r.0h)r/0}r00(hXSee issue #132.hj+0hhhjh}r10(h]h]h]h]h]uhMh]r20(hX See issue r30r40}r50(hUhj/0ubj)r60}r70(hUh}r80(UreftypejU trackerconfigj U reftargetX132r90h]h]h]h]h]uhj/0h]r:0j)r;0}r<0(hX#132h}r=0(h]h]r>0(jjeh]h]h]uhj60h]r?0hX#132r@0rA0}rB0(hUhj;0ubahjubahjubhX.rC0}rD0(hUhj/0ubeubahjubeubh)rE0}rF0(hXANow creates different loggers per task class. See issue #129. hj-hhhjh}rG0(h]h]h]h]h]uhNhhh]rH0(h)rI0}rJ0(hX-Now creates different loggers per task class.rK0hjE0hhhjh}rL0(h]h]h]h]h]uhMh]rM0hX-Now creates different loggers per task class.rN0rO0}rP0(hjK0hjI0ubaubj)rQ0}rR0(hUh}rS0(h]h]h]h]h]uhjE0h]rT0h)rU0}rV0(hXSee issue #129.hjQ0hhhjh}rW0(h]h]h]h]h]uhMh]rX0(hX See issue rY0rZ0}r[0(hUhjU0ubj)r\0}r]0(hUh}r^0(UreftypejU trackerconfigj U reftargetX129r_0h]h]h]h]h]uhjU0h]r`0j)ra0}rb0(hX#129h}rc0(h]h]rd0(jjeh]h]h]uhj\0h]re0hX#129rf0rg0}rh0(hUhja0ubahjubahjubhX.ri0}rj0(hUhjU0ubeubahjubeubh)rk0}rl0(hXIMissing queue definitions are now created automatically. You can disable this using the :setting:`CELERY_CREATE_MISSING_QUEUES` setting. The missing queues are created with the following options:: CELERY_QUEUES[name] = {"exchange": name, "exchange_type": "direct", "routing_key": "name} This feature is added for easily setting up routing using the ``-Q`` option to ``celeryd``:: $ celeryd -Q video, image See the new routing section of the User Guide for more information: :doc:`userguide/routing`. hj-hhhjh}rm0(h]h]h]h]h]uhNhhh]rn0(h)ro0}rp0(hX8Missing queue definitions are now created automatically.rq0hjk0hhhjh}rr0(h]h]h]h]h]uhMh]rs0hX8Missing queue definitions are now created automatically.rt0ru0}rv0(hjq0hjo0ubaubj)rw0}rx0(hUh}ry0(h]h]h]h]h]uhjk0h]rz0(j)r{0}r|0(hUh}r}0(h]h]h]h]h]uhjw0h]r~0(h)r0}r0(hXOYou can disable this using the :setting:`CELERY_CREATE_MISSING_QUEUES` setting.hj{0hhhjh}r0(h]h]h]h]h]uhMh]r0(hXYou can disable this using the r0r0}r0(hXYou can disable this using the hj0ubj)r0}r0(hX':setting:`CELERY_CREATE_MISSING_QUEUES`r0hj0hhhjh}r0(UreftypeXsettingjjXCELERY_CREATE_MISSING_QUEUESU refdomainXstdr0h]h]U refexplicith]h]h]jjuhMh]r0j)r0}r0(hj0h}r0(h]h]r0(jj0X std-settingr0eh]h]h]uhj0h]r0hXCELERY_CREATE_MISSING_QUEUESr0r0}r0(hUhj0ubahjubaubhX setting.r0r0}r0(hX setting.hj0ubeubh)r0}r0(hX;The missing queues are created with the following options::hj{0hhhjh}r0(h]h]h]h]h]uhMh]r0hX:The missing queues are created with the following options:r0r0}r0(hX:The missing queues are created with the following options:hj0ubaubjM)r0}r0(hXCELERY_QUEUES[name] = {"exchange": name, "exchange_type": "direct", "routing_key": "name}hj{0hjPh}r0(jTjUh]h]h]h]h]uhMh]r0hXCELERY_QUEUES[name] = {"exchange": name, "exchange_type": "direct", "routing_key": "name}r0r0}r0(hUhj0ubaubehjubh)r0}r0(hX\This feature is added for easily setting up routing using the ``-Q`` option to ``celeryd``::hjw0hhhjh}r0(h]h]h]h]h]uhM h]r0(hX>This feature is added for easily setting up routing using the r0r0}r0(hX>This feature is added for easily setting up routing using the hj0ubj)r0}r0(hX``-Q``h}r0(h]h]h]h]h]uhj0h]r0hX-Qr0r0}r0(hUhj0ubahjubhX option to r0r0}r0(hX option to hj0ubj)r0}r0(hX ``celeryd``h}r0(h]h]h]h]h]uhj0h]r0hXcelerydr0r0}r0(hUhj0ubahjubhX:r0}r0(hX:hj0ubeubjM)r0}r0(hX$ celeryd -Q video, imagehjw0hjPh}r0(jTjUh]h]h]h]h]uhM h]r0hX$ celeryd -Q video, imager0r0}r0(hUhj0ubaubh)r0}r0(hX]See the new routing section of the User Guide for more information: :doc:`userguide/routing`.hjw0hhhjh}r0(h]h]h]h]h]uhMh]r0(hXDSee the new routing section of the User Guide for more information: r0r0}r0(hXDSee the new routing section of the User Guide for more information: hj0ubj)r0}r0(hX:doc:`userguide/routing`r0hj0hhhjh}r0(UreftypeXdocr0jjXuserguide/routingU refdomainUh]h]U refexplicith]h]h]jjuhMh]r0j)r0}r0(hj0h}r0(h]h]r0(jj0eh]h]h]uhj0h]r0hXuserguide/routingr0r0}r0(hUhj0ubahjubaubhX.r0}r0(hX.hj0ubeubehjubeubh)r0}r0(hXNew Task option: ``Task.queue`` If set, message options will be taken from the corresponding entry in :setting:`CELERY_QUEUES`. ``exchange``, ``exchange_type`` and ``routing_key`` will be ignored hj-hhhjh}r0(h]h]h]h]h]uhNhhh]r0(h)r0}r0(hXNew Task option: ``Task.queue``hj0hhhjh}r0(h]h]h]h]h]uhMh]r0(hXNew Task option: r0r0}r0(hXNew Task option: hj0ubj)r0}r0(hX``Task.queue``h}r0(h]h]h]h]h]uhj0h]r0hX Task.queuer0r0}r0(hUhj0ubahjubeubj)r0}r0(hUh}r0(h]h]h]h]h]uhj0h]r0h)r0}r0(hXIf set, message options will be taken from the corresponding entry in :setting:`CELERY_QUEUES`. ``exchange``, ``exchange_type`` and ``routing_key`` will be ignoredhj0hhhjh}r0(h]h]h]h]h]uhMh]r0(hXFIf set, message options will be taken from the corresponding entry in r0r0}r0(hXFIf set, message options will be taken from the corresponding entry in hj0ubj)r0}r0(hX:setting:`CELERY_QUEUES`r0hj0hhhjh}r0(UreftypeXsettingjjX CELERY_QUEUESU refdomainXstdr0h]h]U refexplicith]h]h]jjuhMh]r1j)r1}r1(hj0h}r1(h]h]r1(jj0X std-settingr1eh]h]h]uhj0h]r1hX CELERY_QUEUESr1r1}r 1(hUhj1ubahjubaubhX. r 1r 1}r 1(hX. hj0ubj)r 1}r1(hX ``exchange``h}r1(h]h]h]h]h]uhj0h]r1hXexchanger1r1}r1(hUhj 1ubahjubhX, r1r1}r1(hX, hj0ubj)r1}r1(hX``exchange_type``h}r1(h]h]h]h]h]uhj0h]r1hX exchange_typer1r1}r1(hUhj1ubahjubhX and r1r1}r 1(hX and hj0ubj)r!1}r"1(hX``routing_key``h}r#1(h]h]h]h]h]uhj0h]r$1hX routing_keyr%1r&1}r'1(hUhj!1ubahjubhX will be ignoredr(1r)1}r*1(hX will be ignoredhj0ubeubahjubeubh)r+1}r,1(hXAdded support for task soft and hard time limits. New settings added: * :setting:`CELERYD_TASK_TIME_LIMIT` Hard time limit. The worker processing the task will be killed and replaced with a new one when this is exceeded. * :setting:`CELERYD_SOFT_TASK_TIME_LIMIT` Soft time limit. The :exc:`celery.exceptions.SoftTimeLimitExceeded` exception will be raised when this is exceeded. The task can catch this to e.g. clean up before the hard time limit comes. New command line arguments to celeryd added: ``--time-limit`` and ``--soft-time-limit``. What's left? This won't work on platforms not supporting signals (and specifically the `SIGUSR1` signal) yet. So an alternative the ability to disable the feature all together on nonconforming platforms must be implemented. Also when the hard time limit is exceeded, the task result should be a ``TimeLimitExceeded`` exception. hj-hhhjh}r-1(h]h]h]h]h]uhNhhh]r.1(h)r/1}r01(hX1Added support for task soft and hard time limits.r11hj+1hhhjh}r21(h]h]h]h]h]uhMh]r31hX1Added support for task soft and hard time limits.r41r51}r61(hj11hj/1ubaubj)r71}r81(hUh}r91(h]h]h]h]h]uhj+1h]r:1(h)r;1}r<1(hXNew settings added:r=1hj71hhhjh}r>1(h]h]h]h]h]uhMh]r?1hXNew settings added:r@1rA1}rB1(hj=1hj;1ubaubh)rC1}rD1(hUh}rE1(jX*h]h]h]h]h]uhj71h]rF1(h)rG1}rH1(hX:setting:`CELERYD_TASK_TIME_LIMIT` Hard time limit. The worker processing the task will be killed and replaced with a new one when this is exceeded. h}rI1(h]h]h]h]h]uhjC1h]rJ1(h)rK1}rL1(hX":setting:`CELERYD_TASK_TIME_LIMIT`rM1hjG1hhhjh}rN1(h]h]h]h]h]uhMh]rO1j)rP1}rQ1(hjM1hjK1hhhjh}rR1(UreftypeXsettingjjXCELERYD_TASK_TIME_LIMITU refdomainXstdrS1h]h]U refexplicith]h]h]jjuhMh]rT1j)rU1}rV1(hjM1h}rW1(h]h]rX1(jjS1X std-settingrY1eh]h]h]uhjP1h]rZ1hXCELERYD_TASK_TIME_LIMITr[1r\1}r]1(hUhjU1ubahjubaubaubj)r^1}r_1(hUh}r`1(h]h]h]h]h]uhjG1h]ra1h)rb1}rc1(hXqHard time limit. The worker processing the task will be killed and replaced with a new one when this is exceeded.rd1hj^1hhhjh}re1(h]h]h]h]h]uhMh]rf1hXqHard time limit. The worker processing the task will be killed and replaced with a new one when this is exceeded.rg1rh1}ri1(hjd1hjb1ubaubahjubehjubh)rj1}rk1(hX:setting:`CELERYD_SOFT_TASK_TIME_LIMIT` Soft time limit. The :exc:`celery.exceptions.SoftTimeLimitExceeded` exception will be raised when this is exceeded. The task can catch this to e.g. clean up before the hard time limit comes. h}rl1(h]h]h]h]h]uhjC1h]rm1(h)rn1}ro1(hX':setting:`CELERYD_SOFT_TASK_TIME_LIMIT`rp1hjj1hhhjh}rq1(h]h]h]h]h]uhM h]rr1j)rs1}rt1(hjp1hjn1hhhjh}ru1(UreftypeXsettingjjXCELERYD_SOFT_TASK_TIME_LIMITU refdomainXstdrv1h]h]U refexplicith]h]h]jjuhM h]rw1j)rx1}ry1(hjp1h}rz1(h]h]r{1(jjv1X std-settingr|1eh]h]h]uhjs1h]r}1hXCELERYD_SOFT_TASK_TIME_LIMITr~1r1}r1(hUhjx1ubahjubaubaubj)r1}r1(hUh}r1(h]h]h]h]h]uhjj1h]r1h)r1}r1(hXSoft time limit. The :exc:`celery.exceptions.SoftTimeLimitExceeded` exception will be raised when this is exceeded. The task can catch this to e.g. clean up before the hard time limit comes.hj1hhhjh}r1(h]h]h]h]h]uhM"h]r1(hXSoft time limit. The r1r1}r1(hXSoft time limit. The hj1ubj)r1}r1(hX.:exc:`celery.exceptions.SoftTimeLimitExceeded`r1hj1hhhjh}r1(UreftypeXexcjjX'celery.exceptions.SoftTimeLimitExceededU refdomainXpyr1h]h]U refexplicith]h]h]jjj Nj NuhM"h]r1j)r1}r1(hj1h}r1(h]h]r1(jj1Xpy-excr1eh]h]h]uhj1h]r1hX'celery.exceptions.SoftTimeLimitExceededr1r1}r1(hUhj1ubahjubaubhX| exception will be raised when this is exceeded. The task can catch this to e.g. clean up before the hard time limit comes.r1r1}r1(hX| exception will be raised when this is exceeded. The task can catch this to e.g. clean up before the hard time limit comes.hj1ubeubahjubehjubehhubh)r1}r1(hXXNew command line arguments to celeryd added: ``--time-limit`` and ``--soft-time-limit``.hj71hhhjh}r1(h]h]h]h]h]uhM&h]r1(hX-New command line arguments to celeryd added: r1r1}r1(hX-New command line arguments to celeryd added: hj1ubj)r1}r1(hX``--time-limit``h}r1(h]h]h]h]h]uhj1h]r1hX --time-limitr1r1}r1(hUhj1ubahjubhX and r1r1}r1(hX and hj1ubj)r1}r1(hX``--soft-time-limit``h}r1(h]h]h]h]h]uhj1h]r1hX--soft-time-limitr1r1}r1(hUhj1ubahjubhX.r1}r1(hX.hj1ubeubh)r1}r1(hX What's left?r1hj71hhhjh}r1(h]h]h]h]h]uhM)h]r1hX What's left?r1r1}r1(hj1hj1ubaubh)r1}r1(hXThis won't work on platforms not supporting signals (and specifically the `SIGUSR1` signal) yet. So an alternative the ability to disable the feature all together on nonconforming platforms must be implemented.hj71hhhjh}r1(h]h]h]h]h]uhM+h]r1(hXJThis won't work on platforms not supporting signals (and specifically the r1r1}r1(hXJThis won't work on platforms not supporting signals (and specifically the hj1ubj()r1}r1(hX `SIGUSR1`h}r1(h]h]h]h]h]uhj1h]r1hXSIGUSR1r1r1}r1(hUhj1ubahj0ubhX signal) yet. So an alternative the ability to disable the feature all together on nonconforming platforms must be implemented.r1r1}r1(hX signal) yet. So an alternative the ability to disable the feature all together on nonconforming platforms must be implemented.hj1ubeubh)r1}r1(hXgAlso when the hard time limit is exceeded, the task result should be a ``TimeLimitExceeded`` exception.hj71hhhjh}r1(h]h]h]h]h]uhM/h]r1(hXGAlso when the hard time limit is exceeded, the task result should be a r1r1}r1(hXGAlso when the hard time limit is exceeded, the task result should be a hj1ubj)r1}r1(hX``TimeLimitExceeded``h}r1(h]h]h]h]h]uhj1h]r1hXTimeLimitExceededr1r1}r1(hUhj1ubahjubhX exception.r1r1}r1(hX exception.hj1ubeubehjubeubh)r1}r1(hXXTest suite is now passing without a running broker, using the carrot in-memory backend. hj-hhhjh}r1(h]h]h]h]h]uhNhhh]r1h)r1}r1(hXWTest suite is now passing without a running broker, using the carrot in-memory backend.r1hj1hhhjh}r1(h]h]h]h]h]uhM2h]r1hXWTest suite is now passing without a running broker, using the carrot in-memory backend.r1r1}r1(hj1hj1ubaubaubh)r1}r1(hXLog output is now available in colors. ===================================== ===================================== **Log level** **Color** ===================================== ===================================== ``DEBUG`` Blue ``WARNING`` Yellow ``CRITICAL`` Magenta ``ERROR`` Red ===================================== ===================================== This is only enabled when the log output is a tty. You can explicitly enable/disable this feature using the :setting:`CELERYD_LOG_COLOR` setting. hj-hhhjh}r1(h]h]h]h]h]uhNhhh]r1(h)r1}r1(hX&Log output is now available in colors.r1hj1hhhjh}r1(h]h]h]h]h]uhM5h]r1hX&Log output is now available in colors.r1r1}r1(hj1hj1ubaubj)r1}r1(hUh}r1(h]h]h]h]h]uhj1h]r1(jZ)r1}r1(hUh}r2(h]h]h]h]h]uhj1h]r2j_)r2}r2(hUh}r2(h]h]h]h]h]UcolsKuhj1h]r2(jd)r2}r2(hUh}r2(h]h]h]h]h]UcolwidthK%uhj2h]hjhubjd)r 2}r 2(hUh}r 2(h]h]h]h]h]UcolwidthK%uhj2h]hjhubjl)r 2}r 2(hUh}r2(h]h]h]h]h]uhj2h]r2jq)r2}r2(hUh}r2(h]h]h]h]h]uhj 2h]r2(jv)r2}r2(hUh}r2(h]h]h]h]h]uhj2h]r2h)r2}r2(hX **Log level**r2hj2hhhjh}r2(h]h]h]h]h]uhM8h]r2j )r2}r2(hj2h}r2(h]h]h]h]h]uhj2h]r 2hX Log levelr!2r"2}r#2(hUhj2ubahj ubaubahjubjv)r$2}r%2(hUh}r&2(h]h]h]h]h]uhj2h]r'2h)r(2}r)2(hX **Color**r*2hj$2hhhjh}r+2(h]h]h]h]h]uhM8h]r,2j )r-2}r.2(hj*2h}r/2(h]h]h]h]h]uhj(2h]r02hXColorr12r22}r32(hUhj-2ubahj ubaubahjubehjubahjubj)r42}r52(hUh}r62(h]h]h]h]h]uhj2h]r72(jq)r82}r92(hUh}r:2(h]h]h]h]h]uhj42h]r;2(jv)r<2}r=2(hUh}r>2(h]h]h]h]h]uhj82h]r?2h)r@2}rA2(hX ``DEBUG``rB2hj<2hhhjh}rC2(h]h]h]h]h]uhM:h]rD2j)rE2}rF2(hjB2h}rG2(h]h]h]h]h]uhj@2h]rH2hXDEBUGrI2rJ2}rK2(hUhjE2ubahjubaubahjubjv)rL2}rM2(hUh}rN2(h]h]h]h]h]uhj82h]rO2h)rP2}rQ2(hXBluerR2hjL2hhhjh}rS2(h]h]h]h]h]uhM:h]rT2hXBluerU2rV2}rW2(hjR2hjP2ubaubahjubehjubjq)rX2}rY2(hUh}rZ2(h]h]h]h]h]uhj42h]r[2(jv)r\2}r]2(hUh}r^2(h]h]h]h]h]uhjX2h]r_2h)r`2}ra2(hX ``WARNING``rb2hj\2hhhjh}rc2(h]h]h]h]h]uhM;h]rd2j)re2}rf2(hjb2h}rg2(h]h]h]h]h]uhj`2h]rh2hXWARNINGri2rj2}rk2(hUhje2ubahjubaubahjubjv)rl2}rm2(hUh}rn2(h]h]h]h]h]uhjX2h]ro2h)rp2}rq2(hXYellowrr2hjl2hhhjh}rs2(h]h]h]h]h]uhM;h]rt2hXYellowru2rv2}rw2(hjr2hjp2ubaubahjubehjubjq)rx2}ry2(hUh}rz2(h]h]h]h]h]uhj42h]r{2(jv)r|2}r}2(hUh}r~2(h]h]h]h]h]uhjx2h]r2h)r2}r2(hX ``CRITICAL``r2hj|2hhhjh}r2(h]h]h]h]h]uhM<h]r2j)r2}r2(hj2h}r2(h]h]h]h]h]uhj2h]r2hXCRITICALr2r2}r2(hUhj2ubahjubaubahjubjv)r2}r2(hUh}r2(h]h]h]h]h]uhjx2h]r2h)r2}r2(hXMagentar2hj2hhhjh}r2(h]h]h]h]h]uhM<h]r2hXMagentar2r2}r2(hj2hj2ubaubahjubehjubjq)r2}r2(hUh}r2(h]h]h]h]h]uhj42h]r2(jv)r2}r2(hUh}r2(h]h]h]h]h]uhj2h]r2h)r2}r2(hX ``ERROR``r2hj2hhhjh}r2(h]h]h]h]h]uhM=h]r2j)r2}r2(hj2h}r2(h]h]h]h]h]uhj2h]r2hXERRORr2r2}r2(hUhj2ubahjubaubahjubjv)r2}r2(hUh}r2(h]h]h]h]h]uhj2h]r2h)r2}r2(hXRedr2hj2hhhjh}r2(h]h]h]h]h]uhM=h]r2hXRedr2r2}r2(hj2hj2ubaubahjubehjubehjubehjubahjubh)r2}r2(hXThis is only enabled when the log output is a tty. You can explicitly enable/disable this feature using the :setting:`CELERYD_LOG_COLOR` setting.hj1hhhjh}r2(h]h]h]h]h]uhM@h]r2(hXlThis is only enabled when the log output is a tty. You can explicitly enable/disable this feature using the r2r2}r2(hXlThis is only enabled when the log output is a tty. You can explicitly enable/disable this feature using the hj2ubj)r2}r2(hX:setting:`CELERYD_LOG_COLOR`r2hj2hhhjh}r2(UreftypeXsettingjjXCELERYD_LOG_COLORU refdomainXstdr2h]h]U refexplicith]h]h]jjuhM@h]r2j)r2}r2(hj2h}r2(h]h]r2(jj2X std-settingr2eh]h]h]uhj2h]r2hXCELERYD_LOG_COLORr2r2}r2(hUhj2ubahjubaubhX setting.r2r2}r2(hX setting.hj2ubeubehjubeubh)r2}r2(hXAdded support for task router classes (like the django multi-db routers) * New setting: :setting:`CELERY_ROUTES` This is a single, or a list of routers to traverse when sending tasks. Dictionaries in this list converts to a :class:`celery.routes.MapRoute` instance. Examples: >>> CELERY_ROUTES = {"celery.ping": "default", "mytasks.add": "cpu-bound", "video.encode": { "queue": "video", "exchange": "media" "routing_key": "media.video.encode"}} >>> CELERY_ROUTES = ("myapp.tasks.Router", {"celery.ping": "default}) Where ``myapp.tasks.Router`` could be: .. code-block:: python class Router(object): def route_for_task(self, task, args=None, kwargs=None): if task == "celery.ping": return "default" route_for_task may return a string or a dict. A string then means it's a queue name in :setting:`CELERY_QUEUES`, a dict means it's a custom route. When sending tasks, the routers are consulted in order. The first router that doesn't return ``None`` is the route to use. The message options is then merged with the found route settings, where the routers settings have priority. Example if :func:`~celery.execute.apply_async` has these arguments:: >>> Task.apply_async(immediate=False, exchange="video", ... routing_key="video.compress") and a router returns:: {"immediate": True, "exchange": "urgent"} the final message options will be:: immediate=True, exchange="urgent", routing_key="video.compress" (and any default message options defined in the :class:`~celery.task.base.Task` class) hj-hhhjh}r2(h]h]h]h]h]uhNhhh]r2(h)r2}r2(hXHAdded support for task router classes (like the django multi-db routers)r2hj2hhhjh}r2(h]h]h]h]h]uhMDh]r2hXHAdded support for task router classes (like the django multi-db routers)r2r2}r2(hj2hj2ubaubj)r2}r2(hUh}r2(h]h]h]h]h]uhj2h]r2(h)r2}r2(hUh}r2(jX*h]h]h]h]h]uhj2h]r2h)r2}r2(hX&New setting: :setting:`CELERY_ROUTES` h}r2(h]h]h]h]h]uhj2h]r2h)r2}r2(hX%New setting: :setting:`CELERY_ROUTES`hj2hhhjh}r2(h]h]h]h]h]uhMFh]r2(hX New setting: r2r2}r2(hX New setting: hj2ubj)r2}r2(hX:setting:`CELERY_ROUTES`r2hj2hhhjh}r2(UreftypeXsettingjjX CELERY_ROUTESU refdomainXstdr2h]h]U refexplicith]h]h]jjuhMFh]r2j)r2}r2(hj2h}r2(h]h]r2(jj2X std-settingr2eh]h]h]uhj2h]r2hX CELERY_ROUTESr2r2}r2(hUhj2ubahjubaubeubahjubahhubh)r2}r3(hXThis is a single, or a list of routers to traverse when sending tasks. Dictionaries in this list converts to a :class:`celery.routes.MapRoute` instance.hj2hhhjh}r3(h]h]h]h]h]uhMHh]r3(hXoThis is a single, or a list of routers to traverse when sending tasks. Dictionaries in this list converts to a r3r3}r3(hXoThis is a single, or a list of routers to traverse when sending tasks. Dictionaries in this list converts to a hj2ubj)r3}r3(hX:class:`celery.routes.MapRoute`r3hj2hhhjh}r 3(UreftypeXclassjjXcelery.routes.MapRouteU refdomainXpyr 3h]h]U refexplicith]h]h]jjj Nj NuhMHh]r 3j)r 3}r 3(hj3h}r3(h]h]r3(jj 3Xpy-classr3eh]h]h]uhj3h]r3hXcelery.routes.MapRouter3r3}r3(hUhj 3ubahjubaubhX instance.r3r3}r3(hX instance.hj2ubeubh)r3}r3(hX Examples:r3hj2hhhjh}r3(h]h]h]h]h]uhMLh]r3hX Examples:r3r3}r3(hj3hj3ubaubjh)r 3}r!3(hX>>> CELERY_ROUTES = {"celery.ping": "default", "mytasks.add": "cpu-bound", "video.encode": { "queue": "video", "exchange": "media" "routing_key": "media.video.encode"}}h}r"3(jTjUh]h]h]h]h]uhj2h]r#3hX>>> CELERY_ROUTES = {"celery.ping": "default", "mytasks.add": "cpu-bound", "video.encode": { "queue": "video", "exchange": "media" "routing_key": "media.video.encode"}}r$3r%3}r&3(hUhj 3ubahjpubjh)r'3}r(3(hXZ>>> CELERY_ROUTES = ("myapp.tasks.Router", {"celery.ping": "default})h}r)3(jTjUh]h]h]h]h]uhj2h]r*3hXZ>>> CELERY_ROUTES = ("myapp.tasks.Router", {"celery.ping": "default})r+3r,3}r-3(hUhj'3ubahjpubh)r.3}r/3(hX&Where ``myapp.tasks.Router`` could be:hj2hhhjh}r03(h]h]h]h]h]uhMXh]r13(hXWhere r23r33}r43(hXWhere hj.3ubj)r53}r63(hX``myapp.tasks.Router``h}r73(h]h]h]h]h]uhj.3h]r83hXmyapp.tasks.Routerr93r:3}r;3(hUhj53ubahjubhX could be:r<3r=3}r>3(hX could be:hj.3ubeubjM)r?3}r@3(hXclass Router(object): def route_for_task(self, task, args=None, kwargs=None): if task == "celery.ping": return "default"hj2hhhjPh}rA3(jRjSXpythonjTjUh]h]h]h]h]uhMZh]rB3hXclass Router(object): def route_for_task(self, task, args=None, kwargs=None): if task == "celery.ping": return "default"rC3rD3}rE3(hUhj?3ubaubh)rF3}rG3(hXroute_for_task may return a string or a dict. A string then means it's a queue name in :setting:`CELERY_QUEUES`, a dict means it's a custom route.hj2hhhjh}rH3(h]h]h]h]h]uhMbh]rI3(hXWroute_for_task may return a string or a dict. A string then means it's a queue name in rJ3rK3}rL3(hXWroute_for_task may return a string or a dict. A string then means it's a queue name in hjF3ubj)rM3}rN3(hX:setting:`CELERY_QUEUES`rO3hjF3hhhjh}rP3(UreftypeXsettingjjX CELERY_QUEUESU refdomainXstdrQ3h]h]U refexplicith]h]h]jjuhMbh]rR3j)rS3}rT3(hjO3h}rU3(h]h]rV3(jjQ3X std-settingrW3eh]h]h]uhjM3h]rX3hX CELERY_QUEUESrY3rZ3}r[3(hUhjS3ubahjubaubhX#, a dict means it's a custom route.r\3r]3}r^3(hX#, a dict means it's a custom route.hjF3ubeubh)r_3}r`3(hXWhen sending tasks, the routers are consulted in order. The first router that doesn't return ``None`` is the route to use. The message options is then merged with the found route settings, where the routers settings have priority.hj2hhhjh}ra3(h]h]h]h]h]uhMeh]rb3(hX]When sending tasks, the routers are consulted in order. The first router that doesn't return rc3rd3}re3(hX]When sending tasks, the routers are consulted in order. The first router that doesn't return hj_3ubj)rf3}rg3(hX``None``h}rh3(h]h]h]h]h]uhj_3h]ri3hXNonerj3rk3}rl3(hUhjf3ubahjubhX is the route to use. The message options is then merged with the found route settings, where the routers settings have priority.rm3rn3}ro3(hX is the route to use. The message options is then merged with the found route settings, where the routers settings have priority.hj_3ubeubh)rp3}rq3(hXDExample if :func:`~celery.execute.apply_async` has these arguments::hj2hhhjh}rr3(h]h]h]h]h]uhMjh]rs3(hX Example if rt3ru3}rv3(hX Example if hjp3ubj)rw3}rx3(hX#:func:`~celery.execute.apply_async`ry3hjp3hhhjh}rz3(UreftypeXfuncjjXcelery.execute.apply_asyncU refdomainXpyr{3h]h]U refexplicith]h]h]jjj Nj NuhMjh]r|3j)r}3}r~3(hjy3h}r3(h]h]r3(jj{3Xpy-funcr3eh]h]h]uhjw3h]r3hX apply_async()r3r3}r3(hUhj}3ubahjubaubhX has these arguments:r3r3}r3(hX has these arguments:hjp3ubeubjM)r3}r3(hXj>>> Task.apply_async(immediate=False, exchange="video", ... routing_key="video.compress")hj2hjPh}r3(jTjUh]h]h]h]h]uhMlh]r3hXj>>> Task.apply_async(immediate=False, exchange="video", ... routing_key="video.compress")r3r3}r3(hUhj3ubaubh)r3}r3(hXand a router returns::hj2hhhjh}r3(h]h]h]h]h]uhMoh]r3hXand a router returns:r3r3}r3(hXand a router returns:hj3ubaubjM)r3}r3(hX*{"immediate": True, "exchange": "urgent"}hj2hjPh}r3(jTjUh]h]h]h]h]uhMqh]r3hX*{"immediate": True, "exchange": "urgent"}r3r3}r3(hUhj3ubaubh)r3}r3(hX#the final message options will be::hj2hhhjh}r3(h]h]h]h]h]uhMth]r3hX"the final message options will be:r3r3}r3(hX"the final message options will be:hj3ubaubjM)r3}r3(hX?immediate=True, exchange="urgent", routing_key="video.compress"hj2hjPh}r3(jTjUh]h]h]h]h]uhMvh]r3hX?immediate=True, exchange="urgent", routing_key="video.compress"r3r3}r3(hUhj3ubaubh)r3}r3(hXV(and any default message options defined in the :class:`~celery.task.base.Task` class)hj2hhhjh}r3(h]h]h]h]h]uhMxh]r3(hX0(and any default message options defined in the r3r3}r3(hX0(and any default message options defined in the hj3ubj)r3}r3(hX:class:`~celery.task.base.Task`r3hj3hhhjh}r3(UreftypeXclassjjXcelery.task.base.TaskU refdomainXpyr3h]h]U refexplicith]h]h]jjj Nj NuhMxh]r3j)r3}r3(hj3h}r3(h]h]r3(jj3Xpy-classr3eh]h]h]uhj3h]r3hXTaskr3r3}r3(hUhj3ubahjubaubhX class)r3r3}r3(hX class)hj3ubeubehjubeubh)r3}r3(hX]New Task handler called after the task returns: :meth:`~celery.task.base.Task.after_return`. hj-hhhjh}r3(h]h]h]h]h]uhNhhh]r3h)r3}r3(hX\New Task handler called after the task returns: :meth:`~celery.task.base.Task.after_return`.hj3hhhjh}r3(h]h]h]h]h]uhM{h]r3(hX0New Task handler called after the task returns: r3r3}r3(hX0New Task handler called after the task returns: hj3ubj)r3}r3(hX+:meth:`~celery.task.base.Task.after_return`r3hj3hhhjh}r3(UreftypeXmethjjX"celery.task.base.Task.after_returnU refdomainXpyr3h]h]U refexplicith]h]h]jjj Nj NuhM{h]r3j)r3}r3(hj3h}r3(h]h]r3(jj3Xpy-methr3eh]h]h]uhj3h]r3hXafter_return()r3r3}r3(hUhj3ubahjubaubhX.r3}r3(hX.hj3ubeubaubh)r3}r3(hX:class:`~celery.datastructures.ExceptionInfo` now passed to :meth:`~celery.task.base.Task.on_retry`/ :meth:`~celery.task.base.Task.on_failure` as einfo keyword argument. hj-hNhjh}r3(h]h]h]h]h]uhNhhh]r3j )r3}r3(hUh}r3(h]h]h]h]h]uhj3h]r3j )r3}r3(hX:class:`~celery.datastructures.ExceptionInfo` now passed to :meth:`~celery.task.base.Task.on_retry`/ :meth:`~celery.task.base.Task.on_failure` as einfo keyword argument. hj3hhhj h}r3(h]h]h]h]h]uhMh]r3(j )r3}r3(hX;:class:`~celery.datastructures.ExceptionInfo` now passed tohj3hhhj h}r3(h]h]h]h]h]uhMh]r3(j)r3}r3(hX-:class:`~celery.datastructures.ExceptionInfo`r3hj3hhhjh}r3(UreftypeXclassjjX#celery.datastructures.ExceptionInfoU refdomainXpyr3h]h]U refexplicith]h]h]jjj Nj NuhMh]r3j)r3}r3(hj3h}r3(h]h]r3(jj3Xpy-classr3eh]h]h]uhj3h]r3hX ExceptionInfor3r3}r3(hUhj3ubahjubaubhX now passed tor4r4}r4(hX now passed tohj3ubeubj5 )r4}r4(hUh}r4(h]h]h]h]h]uhj3h]r4h)r4}r4(hXm:meth:`~celery.task.base.Task.on_retry`/ :meth:`~celery.task.base.Task.on_failure` as einfo keyword argument.hj4hhhjh}r 4(h]h]h]h]h]uhMh]r 4(j)r 4}r 4(hX':meth:`~celery.task.base.Task.on_retry`r 4hj4hhhjh}r4(UreftypeXmethjjXcelery.task.base.Task.on_retryU refdomainXpyr4h]h]U refexplicith]h]h]jjj Nj NuhMh]r4j)r4}r4(hj 4h}r4(h]h]r4(jj4Xpy-methr4eh]h]h]uhj 4h]r4hX on_retry()r4r4}r4(hUhj4ubahjubaubhX/ r4r4}r4(hX/ hj4ubj)r4}r4(hX):meth:`~celery.task.base.Task.on_failure`r4hj4hhhjh}r 4(UreftypeXmethjjX celery.task.base.Task.on_failureU refdomainXpyr!4h]h]U refexplicith]h]h]jjj Nj NuhMh]r"4j)r#4}r$4(hj4h}r%4(h]h]r&4(jj!4Xpy-methr'4eh]h]h]uhj4h]r(4hX on_failure()r)4r*4}r+4(hUhj#4ubahjubaubhX as einfo keyword argument.r,4r-4}r.4(hX as einfo keyword argument.hj4ubeubahjB ubeubahjC ubaubh)r/4}r04(hXceleryd: Added :setting:`CELERYD_MAX_TASKS_PER_CHILD` / :option:`--maxtasksperchild` Defines the maximum number of tasks a pool worker can process before the process is terminated and replaced by a new one. hj-hhhjh}r14(h]h]h]h]h]uhNhhh]r24(h)r34}r44(hXTceleryd: Added :setting:`CELERYD_MAX_TASKS_PER_CHILD` / :option:`--maxtasksperchild`hj/4hhhjh}r54(h]h]h]h]h]uhMh]r64(hXceleryd: Added r74r84}r94(hXceleryd: Added hj34ubj)r:4}r;4(hX&:setting:`CELERYD_MAX_TASKS_PER_CHILD`r<4hj34hhhjh}r=4(UreftypeXsettingjjXCELERYD_MAX_TASKS_PER_CHILDU refdomainXstdr>4h]h]U refexplicith]h]h]jjuhMh]r?4j)r@4}rA4(hj<4h}rB4(h]h]rC4(jj>4X std-settingrD4eh]h]h]uhj:4h]rE4hXCELERYD_MAX_TASKS_PER_CHILDrF4rG4}rH4(hUhj@4ubahjubaubhX / rI4rJ4}rK4(hX / hj34ubj)rL4}rM4(hX:option:`--maxtasksperchild`rN4hj34hhhjh}rO4(UreftypeXoptionjjX--maxtasksperchildU refdomainXstdrP4jNh]h]U refexplicith]h]h]jjuhMh]rQ4j)rR4}rS4(hjN4h}rT4(h]h]rU4(jjP4X std-optionrV4eh]h]h]uhjL4h]rW4hX--maxtasksperchildrX4rY4}rZ4(hUhjR4ubahjubaubeubj)r[4}r\4(hUh}r]4(h]h]h]h]h]uhj/4h]r^4h)r_4}r`4(hXyDefines the maximum number of tasks a pool worker can process before the process is terminated and replaced by a new one.ra4hj[4hhhjh}rb4(h]h]h]h]h]uhMh]rc4hXyDefines the maximum number of tasks a pool worker can process before the process is terminated and replaced by a new one.rd4re4}rf4(hja4hj_4ubaubahjubeubh)rg4}rh4(hXRevoked tasks now marked with state :state:`REVOKED`, and ``result.get()`` will now raise :exc:`~celery.exceptions.TaskRevokedError`. hj-hhhjh}ri4(h]h]h]h]h]uhNhhh]rj4h)rk4}rl4(hXRevoked tasks now marked with state :state:`REVOKED`, and ``result.get()`` will now raise :exc:`~celery.exceptions.TaskRevokedError`.hjg4hhhjh}rm4(h]h]h]h]h]uhMh]rn4(hX$Revoked tasks now marked with state ro4rp4}rq4(hX$Revoked tasks now marked with state hjk4ubj)rr4}rs4(hX:state:`REVOKED`rt4hjk4hhhjh}ru4(UreftypeXstatejjXREVOKEDU refdomainXstdrv4h]h]U refexplicith]h]h]jjuhMh]rw4j)rx4}ry4(hjt4h}rz4(h]h]r{4(jjv4X std-stater|4eh]h]h]uhjr4h]r}4hXREVOKEDr~4r4}r4(hUhjx4ubahjubaubhX, and r4r4}r4(hX, and hjk4ubj)r4}r4(hX``result.get()``h}r4(h]h]h]h]h]uhjk4h]r4hX result.get()r4r4}r4(hUhj4ubahjubhX will now raise r4r4}r4(hX will now raise hjk4ubj)r4}r4(hX*:exc:`~celery.exceptions.TaskRevokedError`r4hjk4hhhjh}r4(UreftypeXexcjjX"celery.exceptions.TaskRevokedErrorU refdomainXpyr4h]h]U refexplicith]h]h]jjj Nj NuhMh]r4j)r4}r4(hj4h}r4(h]h]r4(jj4Xpy-excr4eh]h]h]uhj4h]r4hXTaskRevokedErrorr4r4}r4(hUhj4ubahjubaubhX.r4}r4(hX.hjk4ubeubaubh)r4}r4(hX8:func:`celery.task.control.ping` now works as expected. hj-hhhjh}r4(h]h]h]h]h]uhNhhh]r4h)r4}r4(hX7:func:`celery.task.control.ping` now works as expected.hj4hhhjh}r4(h]h]h]h]h]uhMh]r4(j)r4}r4(hX :func:`celery.task.control.ping`r4hj4hhhjh}r4(UreftypeXfuncjjXcelery.task.control.pingU refdomainXpyr4h]h]U refexplicith]h]h]jjj Nj NuhMh]r4j)r4}r4(hj4h}r4(h]h]r4(jj4Xpy-funcr4eh]h]h]uhj4h]r4hXcelery.task.control.ping()r4r4}r4(hUhj4ubahjubaubhX now works as expected.r4r4}r4(hX now works as expected.hj4ubeubaubh)r4}r4(hXs``apply(throw=True)`` / :setting:`CELERY_EAGER_PROPAGATES_EXCEPTIONS`: Makes eager execution re-raise task errors. hj-hhhjh}r4(h]h]h]h]h]uhNhhh]r4h)r4}r4(hXr``apply(throw=True)`` / :setting:`CELERY_EAGER_PROPAGATES_EXCEPTIONS`: Makes eager execution re-raise task errors.hj4hhhjh}r4(h]h]h]h]h]uhMh]r4(j)r4}r4(hX``apply(throw=True)``h}r4(h]h]h]h]h]uhj4h]r4hXapply(throw=True)r4r4}r4(hUhj4ubahjubhX / r4r4}r4(hX / hj4ubj)r4}r4(hX-:setting:`CELERY_EAGER_PROPAGATES_EXCEPTIONS`r4hj4hhhjh}r4(UreftypeXsettingjjX"CELERY_EAGER_PROPAGATES_EXCEPTIONSU refdomainXstdr4h]h]U refexplicith]h]h]jjuhMh]r4j)r4}r4(hj4h}r4(h]h]r4(jj4X std-settingr4eh]h]h]uhj4h]r4hX"CELERY_EAGER_PROPAGATES_EXCEPTIONSr4r4}r4(hUhj4ubahjubaubhX-: Makes eager execution re-raise task errors.r4r4}r4(hX-: Makes eager execution re-raise task errors.hj4ubeubaubh)r4}r4(hXfNew signal: :data:`~celery.signals.worker_process_init`: Sent inside the pool worker process at init. hj-hhhjh}r4(h]h]h]h]h]uhNhhh]r4h)r4}r4(hXeNew signal: :data:`~celery.signals.worker_process_init`: Sent inside the pool worker process at init.hj4hhhjh}r4(h]h]h]h]h]uhMh]r4(hX New signal: r4r4}r4(hX New signal: hj4ubj)r4}r4(hX+:data:`~celery.signals.worker_process_init`r4hj4hhhjh}r4(UreftypeXdatajjX"celery.signals.worker_process_initU refdomainXpyr4h]h]U refexplicith]h]h]jjj Nj NuhMh]r4j)r4}r4(hj4h}r4(h]h]r4(jj4Xpy-datar4eh]h]h]uhj4h]r4hXworker_process_initr4r4}r4(hUhj4ubahjubaubhX.: Sent inside the pool worker process at init.r4r4}r4(hX.: Sent inside the pool worker process at init.hj4ubeubaubh)r4}r4(hXaceleryd :option:`-Q` option: Ability to specify list of queues to use, disabling other configured queues. For example, if :setting:`CELERY_QUEUES` defines four queues: ``image``, ``video``, ``data`` and ``default``, the following command would make celeryd only consume from the ``image`` and ``video`` queues:: $ celeryd -Q image,video hj-hhhjh}r4(h]h]h]h]h]uhNhhh]r4(h)r4}r4(hXiceleryd :option:`-Q` option: Ability to specify list of queues to use, disabling other configured queues.hj4hhhjh}r5(h]h]h]h]h]uhMh]r5(hXceleryd r5r5}r5(hXceleryd hj4ubj)r5}r5(hX :option:`-Q`r5hj4hhhjh}r5(UreftypeXoptionjjX-QU refdomainXstdr 5jNh]h]U refexplicith]h]h]jjuhMh]r 5j)r 5}r 5(hj5h}r 5(h]h]r5(jj 5X std-optionr5eh]h]h]uhj5h]r5hX-Qr5r5}r5(hUhj 5ubahjubaubhXU option: Ability to specify list of queues to use, disabling other configured queues.r5r5}r5(hXU option: Ability to specify list of queues to use, disabling other configured queues.hj4ubeubj)r5}r5(hUh}r5(h]h]h]h]h]uhj4h]r5(h)r5}r5(hXFor example, if :setting:`CELERY_QUEUES` defines four queues: ``image``, ``video``, ``data`` and ``default``, the following command would make celeryd only consume from the ``image`` and ``video`` queues::hj5hhhjh}r5(h]h]h]h]h]uhMh]r5(hXFor example, if r5r 5}r!5(hXFor example, if hj5ubj)r"5}r#5(hX:setting:`CELERY_QUEUES`r$5hj5hhhjh}r%5(UreftypeXsettingjjX CELERY_QUEUESU refdomainXstdr&5h]h]U refexplicith]h]h]jjuhMh]r'5j)r(5}r)5(hj$5h}r*5(h]h]r+5(jj&5X std-settingr,5eh]h]h]uhj"5h]r-5hX CELERY_QUEUESr.5r/5}r05(hUhj(5ubahjubaubhX defines four queues: r15r25}r35(hX defines four queues: hj5ubj)r45}r55(hX ``image``h}r65(h]h]h]h]h]uhj5h]r75hXimager85r95}r:5(hUhj45ubahjubhX, r;5r<5}r=5(hX, hj5ubj)r>5}r?5(hX ``video``h}r@5(h]h]h]h]h]uhj5h]rA5hXvideorB5rC5}rD5(hUhj>5ubahjubhX, rE5rF5}rG5(hX, hj5ubj)rH5}rI5(hX``data``h}rJ5(h]h]h]h]h]uhj5h]rK5hXdatarL5rM5}rN5(hUhjH5ubahjubhX and rO5rP5}rQ5(hX and hj5ubj)rR5}rS5(hX ``default``h}rT5(h]h]h]h]h]uhj5h]rU5hXdefaultrV5rW5}rX5(hUhjR5ubahjubhXA, the following command would make celeryd only consume from the rY5rZ5}r[5(hXA, the following command would make celeryd only consume from the hj5ubj)r\5}r]5(hX ``image``h}r^5(h]h]h]h]h]uhj5h]r_5hXimager`5ra5}rb5(hUhj\5ubahjubhX and rc5rd5}re5(hX and hj5ubj)rf5}rg5(hX ``video``h}rh5(h]h]h]h]h]uhj5h]ri5hXvideorj5rk5}rl5(hUhjf5ubahjubhX queues:rm5rn5}ro5(hX queues:hj5ubeubjM)rp5}rq5(hX$ celeryd -Q image,videohj5hjPh}rr5(jTjUh]h]h]h]h]uhMh]rs5hX$ celeryd -Q image,videort5ru5}rv5(hUhjp5ubaubehjubeubh)rw5}rx5(hXceleryd: New return value for the ``revoke`` control command: Now returns:: {"ok": "task $id revoked"} instead of ``True``. hj-hhhjh}ry5(h]h]h]h]h]uhNhhh]rz5(h)r{5}r|5(hX=celeryd: New return value for the ``revoke`` control command:hjw5hhhjh}r}5(h]h]h]h]h]uhMh]r~5(hX"celeryd: New return value for the r5r5}r5(hX"celeryd: New return value for the hj{5ubj)r5}r5(hX ``revoke``h}r5(h]h]h]h]h]uhj{5h]r5hXrevoker5r5}r5(hUhj5ubahjubhX control command:r5r5}r5(hX control command:hj{5ubeubj)r5}r5(hUh}r5(h]h]h]h]h]uhjw5h]r5(h)r5}r5(hX Now returns::hj5hhhjh}r5(h]h]h]h]h]uhMh]r5hX Now returns:r5r5}r5(hX Now returns:hj5ubaubjM)r5}r5(hX{"ok": "task $id revoked"}hj5hjPh}r5(jTjUh]h]h]h]h]uhMh]r5hX{"ok": "task $id revoked"}r5r5}r5(hUhj5ubaubh)r5}r5(hXinstead of ``True``.hj5hhhjh}r5(h]h]h]h]h]uhMh]r5(hX instead of r5r5}r5(hX instead of hj5ubj)r5}r5(hX``True``h}r5(h]h]h]h]h]uhj5h]r5hXTruer5r5}r5(hUhj5ubahjubhX.r5}r5(hX.hj5ubeubehjubeubh)r5}r5(hXceleryd: Can now enable/disable events using remote control Example usage: >>> from celery.task.control import broadcast >>> broadcast("enable_events") >>> broadcast("disable_events") hj-hhhjh}r5(h]h]h]h]h]uhNhhh]r5(h)r5}r5(hX;celeryd: Can now enable/disable events using remote controlr5hj5hhhjh}r5(h]h]h]h]h]uhMh]r5hX;celeryd: Can now enable/disable events using remote controlr5r5}r5(hj5hj5ubaubj)r5}r5(hUh}r5(h]h]h]h]h]uhj5h]r5(h)r5}r5(hXExample usage:r5hj5hhhjh}r5(h]h]h]h]h]uhMh]r5hXExample usage:r5r5}r5(hj5hj5ubaubjh)r5}r5(hXl>>> from celery.task.control import broadcast >>> broadcast("enable_events") >>> broadcast("disable_events")h}r5(jTjUh]h]h]h]h]uhj5h]r5hXl>>> from celery.task.control import broadcast >>> broadcast("enable_events") >>> broadcast("disable_events")r5r5}r5(hUhj5ubahjpubehjubeubh)r5}r5(hXRemoved top-level tests directory. Test config now in celery.tests.config This means running the unit tests doesn't require any special setup. `celery/tests/__init__` now configures the :envvar:`CELERY_CONFIG_MODULE` and :envvar:`CELERY_LOADER` environment variables, so when `nosetests` imports that, the unit test environment is all set up. Before you run the tests you need to install the test requirements:: $ pip install -r contrib/requirements/test.txt Running all tests:: $ nosetests Specifying the tests to run:: $ nosetests celery.tests.test_task Producing HTML coverage:: $ nosetests --with-coverage3 The coverage output is then located in ``celery/tests/cover/index.html``. hj-hhhjh}r5(h]h]h]h]h]uhNhhh]r5(h)r5}r5(hXIRemoved top-level tests directory. Test config now in celery.tests.configr5hj5hhhjh}r5(h]h]h]h]h]uhMh]r5hXIRemoved top-level tests directory. Test config now in celery.tests.configr5r5}r5(hj5hj5ubaubj)r5}r5(hUh}r5(h]h]h]h]h]uhj5h]r5(h)r5}r5(hX This means running the unit tests doesn't require any special setup. `celery/tests/__init__` now configures the :envvar:`CELERY_CONFIG_MODULE` and :envvar:`CELERY_LOADER` environment variables, so when `nosetests` imports that, the unit test environment is all set up.hj5hhhjh}r5(h]h]h]h]h]uhMh]r5(hXEThis means running the unit tests doesn't require any special setup. r5r5}r5(hXEThis means running the unit tests doesn't require any special setup. hj5ubj()r5}r5(hX`celery/tests/__init__`h}r5(h]h]h]h]h]uhj5h]r5hXcelery/tests/__init__r5r5}r5(hUhj5ubahj0ubhX now configures the r5r5}r5(hX now configures the hj5ubj)r5}r5(hUh}r5(h]h]h]h]h]j)]r5((j?XCELERY_CONFIG_MODULEr5Uindex-1r5Utr5(j?X*environment variable; CELERY_CONFIG_MODULEj5Utr5euhj5h]hjubjf)r5}r5(hUh}r5(h]h]h]h]r5j5ah]uhj5h]hjiubj)r5}r5(hX:envvar:`CELERY_CONFIG_MODULE`r5hj5hhhjh}r5(UreftypeXenvvarjjj5U refdomainXstdr5h]h]U refexplicith]h]h]jjuhMh]r5j)r6}r6(hj5h}r6(h]h]r6(jj5X std-envvarr6eh]h]h]uhj5h]r6hXCELERY_CONFIG_MODULEr6r6}r6(hUhj6ubahjubaubhX and r 6r 6}r 6(hX and hj5ubj)r 6}r 6(hUh}r6(h]h]h]h]h]j)]r6((j?X CELERY_LOADERr6Uindex-2r6Utr6(j?X#environment variable; CELERY_LOADERj6Utr6euhj5h]hjubjf)r6}r6(hUh}r6(h]h]h]h]r6j6ah]uhj5h]hjiubj)r6}r6(hX:envvar:`CELERY_LOADER`r6hj5hhhjh}r6(UreftypeXenvvarjjj6U refdomainXstdr6h]h]U refexplicith]h]h]jjuhMh]r6j)r6}r6(hj6h}r 6(h]h]r!6(jj6X std-envvarr"6eh]h]h]uhj6h]r#6hX CELERY_LOADERr$6r%6}r&6(hUhj6ubahjubaubhX environment variables, so when r'6r(6}r)6(hX environment variables, so when hj5ubj()r*6}r+6(hX `nosetests`h}r,6(h]h]h]h]h]uhj5h]r-6hX nosetestsr.6r/6}r06(hUhj*6ubahj0ubhX7 imports that, the unit test environment is all set up.r16r26}r36(hX7 imports that, the unit test environment is all set up.hj5ubeubh)r46}r56(hXDBefore you run the tests you need to install the test requirements::hj5hhhjh}r66(h]h]h]h]h]uhMh]r76hXCBefore you run the tests you need to install the test requirements:r86r96}r:6(hXCBefore you run the tests you need to install the test requirements:hj46ubaubjM)r;6}r<6(hX.$ pip install -r contrib/requirements/test.txthj5hjPh}r=6(jTjUh]h]h]h]h]uhMh]r>6hX.$ pip install -r contrib/requirements/test.txtr?6r@6}rA6(hUhj;6ubaubh)rB6}rC6(hXRunning all tests::hj5hhhjh}rD6(h]h]h]h]h]uhMh]rE6hXRunning all tests:rF6rG6}rH6(hXRunning all tests:hjB6ubaubjM)rI6}rJ6(hX $ nosetestshj5hjPh}rK6(jTjUh]h]h]h]h]uhMh]rL6hX $ nosetestsrM6rN6}rO6(hUhjI6ubaubh)rP6}rQ6(hXSpecifying the tests to run::hj5hhhjh}rR6(h]h]h]h]h]uhMh]rS6hXSpecifying the tests to run:rT6rU6}rV6(hXSpecifying the tests to run:hjP6ubaubjM)rW6}rX6(hX"$ nosetests celery.tests.test_taskhj5hjPh}rY6(jTjUh]h]h]h]h]uhMh]rZ6hX"$ nosetests celery.tests.test_taskr[6r\6}r]6(hUhjW6ubaubh)r^6}r_6(hXProducing HTML coverage::hj5hhhjh}r`6(h]h]h]h]h]uhMh]ra6hXProducing HTML coverage:rb6rc6}rd6(hXProducing HTML coverage:hj^6ubaubjM)re6}rf6(hX$ nosetests --with-coverage3hj5hjPh}rg6(jTjUh]h]h]h]h]uhMh]rh6hX$ nosetests --with-coverage3ri6rj6}rk6(hUhje6ubaubh)rl6}rm6(hXIThe coverage output is then located in ``celery/tests/cover/index.html``.hj5hhhjh}rn6(h]h]h]h]h]uhMh]ro6(hX'The coverage output is then located in rp6rq6}rr6(hX'The coverage output is then located in hjl6ubj)rs6}rt6(hX!``celery/tests/cover/index.html``h}ru6(h]h]h]h]h]uhjl6h]rv6hXcelery/tests/cover/index.htmlrw6rx6}ry6(hUhjs6ubahjubhX.rz6}r{6(hX.hjl6ubeubehjubeubh)r|6}r}6(hX?celeryd: New option ``--version``: Dump version info and exit. hj-hhhjh}r~6(h]h]h]h]h]uhNhhh]r6h)r6}r6(hX>celeryd: New option ``--version``: Dump version info and exit.hj|6hhhjh}r6(h]h]h]h]h]uhMh]r6(hXceleryd: New option r6r6}r6(hXceleryd: New option hj6ubj)r6}r6(hX ``--version``h}r6(h]h]h]h]h]uhj6h]r6hX --versionr6r6}r6(hUhj6ubahjubhX: Dump version info and exit.r6r6}r6(hX: Dump version info and exit.hj6ubeubaubh)r6}r6(hXd:mod:`celeryd-multi `: Tool for shell scripts to start multiple workers. hj-hhhjh}r6(h]h]h]h]h]uhNhhh]r6h)r6}r6(hXc:mod:`celeryd-multi `: Tool for shell scripts to start multiple workers.hj6hhhjh}r6(h]h]h]h]h]uhMh]r6(j)r6}r6(hX0:mod:`celeryd-multi `r6hj6hhhjh}r6(UreftypeXmodjjXceleryd.bin.celeryd_multiU refdomainXpyr6h]h]U refexplicith]h]h]jjj Nj NuhMh]r6j)r6}r6(hj6h}r6(h]h]r6(jj6Xpy-modr6eh]h]h]uhj6h]r6hX celeryd-multir6r6}r6(hUhj6ubahjubaubhX3: Tool for shell scripts to start multiple workers.r6r6}r6(hX3: Tool for shell scripts to start multiple workers.hj6ubeubaubeubj)r6}r6(hUhj -hhhjh}r6(h]h]h]h]h]uhNhhh]r6(h)r6}r6(hXSome examples::hj6hhhjh}r6(h]h]h]h]h]uhMh]r6hXSome examples:r6r6}r6(hXSome examples:hj6ubaubjM)r6}r6(hXc# Advanced example with 10 workers: # * Three of the workers processes the images and video queue # * Two of the workers processes the data queue with loglevel DEBUG # * the rest processes the default' queue. $ celeryd-multi start 10 -l INFO -Q:1-3 images,video -Q:4,5:data -Q default -L:4,5 DEBUG # get commands to start 10 workers, with 3 processes each $ celeryd-multi start 3 -c 3 celeryd -n celeryd1.myhost -c 3 celeryd -n celeryd2.myhost -c 3 celeryd- n celeryd3.myhost -c 3 # start 3 named workers $ celeryd-multi start image video data -c 3 celeryd -n image.myhost -c 3 celeryd -n video.myhost -c 3 celeryd -n data.myhost -c 3 # specify custom hostname $ celeryd-multi start 2 -n worker.example.com -c 3 celeryd -n celeryd1.worker.example.com -c 3 celeryd -n celeryd2.worker.example.com -c 3 # Additionl options are added to each celeryd', # but you can also modify the options for ranges of or single workers # 3 workers: Two with 3 processes, and one with 10 processes. $ celeryd-multi start 3 -c 3 -c:1 10 celeryd -n celeryd1.myhost -c 10 celeryd -n celeryd2.myhost -c 3 celeryd -n celeryd3.myhost -c 3 # can also specify options for named workers $ celeryd-multi start image video data -c 3 -c:image 10 celeryd -n image.myhost -c 10 celeryd -n video.myhost -c 3 celeryd -n data.myhost -c 3 # ranges and lists of workers in options is also allowed: # (-c:1-3 can also be written as -c:1,2,3) $ celeryd-multi start 5 -c 3 -c:1-3 10 celeryd-multi -n celeryd1.myhost -c 10 celeryd-multi -n celeryd2.myhost -c 10 celeryd-multi -n celeryd3.myhost -c 10 celeryd-multi -n celeryd4.myhost -c 3 celeryd-multi -n celeryd5.myhost -c 3 # lists also works with named workers $ celeryd-multi start foo bar baz xuzzy -c 3 -c:foo,bar,baz 10 celeryd-multi -n foo.myhost -c 10 celeryd-multi -n bar.myhost -c 10 celeryd-multi -n baz.myhost -c 10 celeryd-multi -n xuzzy.myhost -c 3hj6hjPh}r6(jTjUh]h]h]h]h]uhMh]r6hXc# Advanced example with 10 workers: # * Three of the workers processes the images and video queue # * Two of the workers processes the data queue with loglevel DEBUG # * the rest processes the default' queue. $ celeryd-multi start 10 -l INFO -Q:1-3 images,video -Q:4,5:data -Q default -L:4,5 DEBUG # get commands to start 10 workers, with 3 processes each $ celeryd-multi start 3 -c 3 celeryd -n celeryd1.myhost -c 3 celeryd -n celeryd2.myhost -c 3 celeryd- n celeryd3.myhost -c 3 # start 3 named workers $ celeryd-multi start image video data -c 3 celeryd -n image.myhost -c 3 celeryd -n video.myhost -c 3 celeryd -n data.myhost -c 3 # specify custom hostname $ celeryd-multi start 2 -n worker.example.com -c 3 celeryd -n celeryd1.worker.example.com -c 3 celeryd -n celeryd2.worker.example.com -c 3 # Additionl options are added to each celeryd', # but you can also modify the options for ranges of or single workers # 3 workers: Two with 3 processes, and one with 10 processes. $ celeryd-multi start 3 -c 3 -c:1 10 celeryd -n celeryd1.myhost -c 10 celeryd -n celeryd2.myhost -c 3 celeryd -n celeryd3.myhost -c 3 # can also specify options for named workers $ celeryd-multi start image video data -c 3 -c:image 10 celeryd -n image.myhost -c 10 celeryd -n video.myhost -c 3 celeryd -n data.myhost -c 3 # ranges and lists of workers in options is also allowed: # (-c:1-3 can also be written as -c:1,2,3) $ celeryd-multi start 5 -c 3 -c:1-3 10 celeryd-multi -n celeryd1.myhost -c 10 celeryd-multi -n celeryd2.myhost -c 10 celeryd-multi -n celeryd3.myhost -c 10 celeryd-multi -n celeryd4.myhost -c 3 celeryd-multi -n celeryd5.myhost -c 3 # lists also works with named workers $ celeryd-multi start foo bar baz xuzzy -c 3 -c:foo,bar,baz 10 celeryd-multi -n foo.myhost -c 10 celeryd-multi -n bar.myhost -c 10 celeryd-multi -n baz.myhost -c 10 celeryd-multi -n xuzzy.myhost -c 3r6r6}r6(hUhj6ubaubeubh)r6}r6(hUhj -hhhhh}r6(jX*h]h]h]h]h]uhMhhh]r6(h)r6}r6(hXnThe worker now calls the result backends ``process_cleanup`` method *after* task execution instead of before. hj6hhhjh}r6(h]h]h]h]h]uhNhhh]r6h)r6}r6(hXmThe worker now calls the result backends ``process_cleanup`` method *after* task execution instead of before.hj6hhhjh}r6(h]h]h]h]h]uhMh]r6(hX)The worker now calls the result backends r6r6}r6(hX)The worker now calls the result backends hj6ubj)r6}r6(hX``process_cleanup``h}r6(h]h]h]h]h]uhj6h]r6hXprocess_cleanupr6r6}r6(hUhj6ubahjubhX method r6r6}r6(hX method hj6ubj )r6}r6(hX*after*h}r6(h]h]h]h]h]uhj6h]r6hXafterr6r6}r6(hUhj6ubahj ubhX" task execution instead of before.r6r6}r6(hX" task execution instead of before.hj6ubeubaubh)r6}r6(hX'AMQP result backend now supports Pika. hj6hhhjh}r6(h]h]h]h]h]uhNhhh]r6h)r6}r6(hX&AMQP result backend now supports Pika.r6hj6hhhjh}r6(h]h]h]h]h]uhMh]r6hX&AMQP result backend now supports Pika.r6r6}r6(hj6hj6ubaubaubeubjf)r6}r6(hX.. _version-1.0.6:hj -hhhjih}r6(h]h]h]h]h]jkjFuhM hhh]ubeubeubh)r6}r6(hUhhhhjn}r6h6j6shhh}r6(h]h]h]h]r6(jFUid19r6eh]r6(hh6euhM hhjt}r6jFj6sh]r6(h)r6}r6(hjKhj6hhhhh}r6(h]h]h]h]h]jkjEuhM hhh]r6hX1.0.6r6r6}r6(hjKhj6ubaubj)r6}r7(hUhj6hhhjh}r7(h]h]h]h]h]uhM hhh]r7j)r7}r7(hUhj6hhhjh}r7(h]h]h]h]h]uhM hhh]r7(j)r7}r7(hX release-dater 7h}r 7(h]h]h]h]h]uhj7h]r 7hX release-dater 7r 7}r7(hj 7hj7ubahjubj)r7}r7(hX2010-06-30 09:57 A.M CEST h}r7(h]h]h]h]h]uhj7h]r7h)r7}r7(hX2010-06-30 09:57 A.M CESTr7hj7hhhjh}r7(h]h]h]h]h]uhM h]r7hX2010-06-30 09:57 A.M CESTr7r7}r7(hj7hj7ubaubahjubeubaubh)r7}r7(hUhj6hhhhh}r7(jX*h]h]h]h]h]uhMhhh]r7h)r7}r 7(hXYRabbitMQ 1.8.0 has extended their exchange equivalence tests to include ``auto_delete`` and ``durable``. This broke the AMQP backend. If you've already used the AMQP backend this means you have to delete the previous definitions:: $ camqadm exchange.delete celeryresults or:: $ python manage.py camqadm exchange.delete celeryresults hj7hhhjh}r!7(h]h]h]h]h]uhNhhh]r"7(h)r#7}r$7(hXRabbitMQ 1.8.0 has extended their exchange equivalence tests to include ``auto_delete`` and ``durable``. This broke the AMQP backend.hj7hhhjh}r%7(h]h]h]h]h]uhMh]r&7(hXHRabbitMQ 1.8.0 has extended their exchange equivalence tests to include r'7r(7}r)7(hXHRabbitMQ 1.8.0 has extended their exchange equivalence tests to include hj#7ubj)r*7}r+7(hX``auto_delete``h}r,7(h]h]h]h]h]uhj#7h]r-7hX auto_deleter.7r/7}r07(hUhj*7ubahjubhX and r17r27}r37(hX and hj#7ubj)r47}r57(hX ``durable``h}r67(h]h]h]h]h]uhj#7h]r77hXdurabler87r97}r:7(hUhj47ubahjubhX. This broke the AMQP backend.r;7r<7}r=7(hX. This broke the AMQP backend.hj#7ubeubh)r>7}r?7(hX`If you've already used the AMQP backend this means you have to delete the previous definitions::hj7hhhjh}r@7(h]h]h]h]h]uhMh]rA7hX_If you've already used the AMQP backend this means you have to delete the previous definitions:rB7rC7}rD7(hX_If you've already used the AMQP backend this means you have to delete the previous definitions:hj>7ubaubjM)rE7}rF7(hX'$ camqadm exchange.delete celeryresultshj7hjPh}rG7(jTjUh]h]h]h]h]uhMh]rH7hX'$ camqadm exchange.delete celeryresultsrI7rJ7}rK7(hUhjE7ubaubh)rL7}rM7(hXor::hj7hhhjh}rN7(h]h]h]h]h]uhMh]rO7hXor:rP7rQ7}rR7(hXor:hjL7ubaubjM)rS7}rT7(hX8$ python manage.py camqadm exchange.delete celeryresultshj7hjPh}rU7(jTjUh]h]h]h]h]uhMh]rV7hX8$ python manage.py camqadm exchange.delete celeryresultsrW7rX7}rY7(hUhjS7ubaubeubaubjf)rZ7}r[7(hX.. _version-1.0.5:hj6hhhjih}r\7(h]h]h]h]h]jkjYuhMhhh]ubeubh)r]7}r^7(hUhhhhjn}r_7h7jZ7shhh}r`7(h]h]h]h]ra7(jYUid20rb7eh]rc7(hh7euhMhhjt}rd7jYjZ7sh]re7(h)rf7}rg7(hj^hj]7hhhhh}rh7(h]h]h]h]h]jkjXuhMhhh]ri7hX1.0.5rj7rk7}rl7(hj^hjf7ubaubj)rm7}rn7(hUhj]7hhhjh}ro7(h]h]h]h]h]uhMhhh]rp7j)rq7}rr7(hUhjm7hhhjh}rs7(h]h]h]h]h]uhMhhh]rt7(j)ru7}rv7(hX release-daterw7h}rx7(h]h]h]h]h]uhjq7h]ry7hX release-daterz7r{7}r|7(hjw7hju7ubahjubj)r}7}r~7(hX2010-06-01 02:36 P.M CEST h}r7(h]h]h]h]h]uhjq7h]r7h)r7}r7(hX2010-06-01 02:36 P.M CESTr7hj}7hhhjh}r7(h]h]h]h]h]uhMh]r7hX2010-06-01 02:36 P.M CESTr7r7}r7(hj7hj7ubaubahjubeubaubjf)r7}r7(hX.. _v105-critical:hj]7hhhjih}r7(h]h]h]h]h]jkU v105-criticalr7uhM!hhh]ubh)r7}r7(hUhj]7hhjn}r7hJj7shhh}r7(h]h]h]h]r7(jpj7eh]r7(h5hJeuhM$hhjt}r7j7j7sh]r7(h)r7}r7(hjuhj7hhhhh}r7(h]h]h]h]h]jkjouhM$hhh]r7hXCriticalr7r7}r7(hjuhj7ubaubh)r7}r7(hUhj7hhhhh}r7(jX*h]h]h]h]h]uhM&hhh]r7(h)r7}r7(hXSIGINT/Ctrl+C killed the pool, abruptly terminating the currently executing tasks. Fixed by making the pool worker processes ignore :const:`SIGINT`. hj7hhhjh}r7(h]h]h]h]h]uhNhhh]r7(h)r7}r7(hXRSIGINT/Ctrl+C killed the pool, abruptly terminating the currently executing tasks.r7hj7hhhjh}r7(h]h]h]h]h]uhM&h]r7hXRSIGINT/Ctrl+C killed the pool, abruptly terminating the currently executing tasks.r7r7}r7(hj7hj7ubaubj)r7}r7(hUh}r7(h]h]h]h]h]uhj7h]r7h)r7}r7(hXAFixed by making the pool worker processes ignore :const:`SIGINT`.hj7hhhjh}r7(h]h]h]h]h]uhM)h]r7(hX1Fixed by making the pool worker processes ignore r7r7}r7(hX1Fixed by making the pool worker processes ignore hj7ubj)r7}r7(hX:const:`SIGINT`r7hj7hhhjh}r7(UreftypeXconstjjXSIGINTU refdomainXpyr7h]h]U refexplicith]h]h]jjj Nj NuhM)h]r7j)r7}r7(hj7h}r7(h]h]r7(jj7Xpy-constr7eh]h]h]uhj7h]r7hXSIGINTr7r7}r7(hUhj7ubahjubaubhX.r7}r7(hX.hj7ubeubahjubeubh)r7}r7(hXlShould not close the consumers before the pool is terminated, just cancel the consumers. See issue #122. hj7hhhjh}r7(h]h]h]h]h]uhNhhh]r7(h)r7}r7(hXXShould not close the consumers before the pool is terminated, just cancel the consumers.r7hj7hhhjh}r7(h]h]h]h]h]uhM+h]r7hXXShould not close the consumers before the pool is terminated, just cancel the consumers.r7r7}r7(hj7hj7ubaubj)r7}r7(hUh}r7(h]h]h]h]h]uhj7h]r7h)r7}r7(hXSee issue #122.hj7hhhjh}r7(h]h]h]h]h]uhM.h]r7(hX See issue r7r7}r7(hUhj7ubj)r7}r7(hUh}r7(UreftypejU trackerconfigj U reftargetX122h]h]h]h]h]uhj7h]r7j)r7}r7(hX#122h}r7(h]h]r7(jjeh]h]h]uhj7h]r7hX#122r7r7}r7(hUhj7ubahjubahjubhX.r7}r7(hUhj7ubeubahjubeubh)r7}r7(hX(Now depends on :mod:`billiard` >= 0.3.1 hj7hhhjh}r7(h]h]h]h]h]uhNhhh]r7h)r7}r7(hX'Now depends on :mod:`billiard` >= 0.3.1hj7hhhjh}r7(h]h]h]h]h]uhM0h]r7(hXNow depends on r7r7}r7(hXNow depends on hj7ubj)r7}r7(hX:mod:`billiard`r7hj7hhhjh}r7(UreftypeXmodjjXbilliardU refdomainXpyr7h]h]U refexplicith]h]h]jjj Nj NuhM0h]r7j)r7}r7(hj7h}r8(h]h]r8(jj7Xpy-modr8eh]h]h]uhj7h]r8hXbilliardr8r8}r8(hUhj7ubahjubaubhX >= 0.3.1r8r8}r 8(hX >= 0.3.1hj7ubeubaubh)r 8}r 8(hXceleryd: Previously exceptions raised by worker components could stall startup, now it correctly logs the exceptions and shuts down. hj7hhhjh}r 8(h]h]h]h]h]uhNhhh]r 8h)r8}r8(hXceleryd: Previously exceptions raised by worker components could stall startup, now it correctly logs the exceptions and shuts down.r8hj 8hhhjh}r8(h]h]h]h]h]uhM2h]r8hXceleryd: Previously exceptions raised by worker components could stall startup, now it correctly logs the exceptions and shuts down.r8r8}r8(hj8hj8ubaubaubh)r8}r8(hXceleryd: Prefetch counts was set too late. QoS is now set as early as possible, so celeryd can't slurp in all the messages at start-up. hj7hhhjh}r8(h]h]h]h]h]uhNhhh]r8h)r8}r8(hXceleryd: Prefetch counts was set too late. QoS is now set as early as possible, so celeryd can't slurp in all the messages at start-up.r8hj8hhhjh}r8(h]h]h]h]h]uhM5h]r8hXceleryd: Prefetch counts was set too late. QoS is now set as early as possible, so celeryd can't slurp in all the messages at start-up.r8r 8}r!8(hj8hj8ubaubaubeubjf)r"8}r#8(hX.. _v105-changes:hj7hhhjih}r$8(h]h]h]h]h]jkU v105-changesr%8uhM8hhh]ubeubh)r&8}r'8(hUhKhj]7hhjn}r(8hEj"8shhh}r)8(h]r*8Xchangesr+8ah]h]h]r,8(jj%8eh]r-8hEauhM;hhjt}r.8j%8j"8sh]r/8(h)r08}r18(hjhj&8hhhhh}r28(h]h]h]h]h]jkjuhM;hhh]r38hXChangesr48r58}r68(hjhj08ubaubh)r78}r88(hUhj&8hhhhh}r98(jX*h]h]h]h]h]uhM=hhh]r:8(h)r;8}r<8(hX:mod:`celery.contrib.abortable`: Abortable tasks. Tasks that defines steps of execution, the task can then be aborted after each step has completed. hj78hhhjh}r=8(h]h]h]h]h]uhNhhh]r>8(h)r?8}r@8(hX1:mod:`celery.contrib.abortable`: Abortable tasks.hj;8hhhjh}rA8(h]h]h]h]h]uhM=h]rB8(j)rC8}rD8(hX:mod:`celery.contrib.abortable`rE8hj?8hhhjh}rF8(UreftypeXmodjjXcelery.contrib.abortableU refdomainXpyrG8h]h]U refexplicith]h]h]jjj Nj NuhM=h]rH8j)rI8}rJ8(hjE8h}rK8(h]h]rL8(jjG8Xpy-modrM8eh]h]h]uhjC8h]rN8hXcelery.contrib.abortablerO8rP8}rQ8(hUhjI8ubahjubaubhX: Abortable tasks.rR8rS8}rT8(hX: Abortable tasks.hj?8ubeubj)rU8}rV8(hUh}rW8(h]h]h]h]h]uhj;8h]rX8h)rY8}rZ8(hXbTasks that defines steps of execution, the task can then be aborted after each step has completed.r[8hjU8hhhjh}r\8(h]h]h]h]h]uhM?h]r]8hXbTasks that defines steps of execution, the task can then be aborted after each step has completed.r^8r_8}r`8(hj[8hjY8ubaubahjubeubh)ra8}rb8(hX_:class:`~celery.events.EventDispatcher`: No longer creates AMQP channel if events are disabled hj78hhhjh}rc8(h]h]h]h]h]uhNhhh]rd8h)re8}rf8(hX^:class:`~celery.events.EventDispatcher`: No longer creates AMQP channel if events are disabledhja8hhhjh}rg8(h]h]h]h]h]uhMBh]rh8(j)ri8}rj8(hX':class:`~celery.events.EventDispatcher`rk8hje8hhhjh}rl8(UreftypeXclassjjXcelery.events.EventDispatcherU refdomainXpyrm8h]h]U refexplicith]h]h]jjj Nj NuhMBh]rn8j)ro8}rp8(hjk8h}rq8(h]h]rr8(jjm8Xpy-classrs8eh]h]h]uhji8h]rt8hXEventDispatcherru8rv8}rw8(hUhjo8ubahjubaubhX7: No longer creates AMQP channel if events are disabledrx8ry8}rz8(hX7: No longer creates AMQP channel if events are disabledhje8ubeubaubh)r{8}r|8(hXyAdded required RPM package names under ``[bdist_rpm]`` section, to support building RPMs from the sources using setup.py hj78hhhjh}r}8(h]h]h]h]h]uhNhhh]r~8h)r8}r8(hXxAdded required RPM package names under ``[bdist_rpm]`` section, to support building RPMs from the sources using setup.pyhj{8hhhjh}r8(h]h]h]h]h]uhMEh]r8(hX'Added required RPM package names under r8r8}r8(hX'Added required RPM package names under hj8ubj)r8}r8(hX``[bdist_rpm]``h}r8(h]h]h]h]h]uhj8h]r8hX [bdist_rpm]r8r8}r8(hUhj8ubahjubhXB section, to support building RPMs from the sources using setup.pyr8r8}r8(hXB section, to support building RPMs from the sources using setup.pyhj8ubeubaubh)r8}r8(hXaRunning unit tests: :envvar:`NOSE_VERBOSE` environment var now enables verbose output from Nose. hj78hhhjh}r8(h]h]h]h]h]uhNhhh]r8h)r8}r8(hX`Running unit tests: :envvar:`NOSE_VERBOSE` environment var now enables verbose output from Nose.hj8hhhjh}r8(h]h]h]h]h]uhMHh]r8(hXRunning unit tests: r8r8}r8(hXRunning unit tests: hj8ubj)r8}r8(hUh}r8(h]h]h]h]h]j)]r8((j?X NOSE_VERBOSEr8Uindex-3r8Utr8(j?X"environment variable; NOSE_VERBOSEj8Utr8euhj8h]hjubjf)r8}r8(hUh}r8(h]h]h]h]r8j8ah]uhj8h]hjiubj)r8}r8(hX:envvar:`NOSE_VERBOSE`r8hj8hhhjh}r8(UreftypeXenvvarjjj8U refdomainXstdr8h]h]U refexplicith]h]h]jjuhMHh]r8j)r8}r8(hj8h}r8(h]h]r8(jj8X std-envvarr8eh]h]h]uhj8h]r8hX NOSE_VERBOSEr8r8}r8(hUhj8ubahjubaubhX6 environment var now enables verbose output from Nose.r8r8}r8(hX6 environment var now enables verbose output from Nose.hj8ubeubaubh)r8}r8(hXc:func:`celery.execute.apply`: Pass log file/log level arguments as task kwargs. See issue #110. hj78hhhjh}r8(h]h]h]h]h]uhNhhh]r8(h)r8}r8(hXO:func:`celery.execute.apply`: Pass log file/log level arguments as task kwargs.hj8hhhjh}r8(h]h]h]h]h]uhMJh]r8(j)r8}r8(hX:func:`celery.execute.apply`r8hj8hhhjh}r8(UreftypeXfuncjjXcelery.execute.applyU refdomainXpyr8h]h]U refexplicith]h]h]jjj Nj NuhMJh]r8j)r8}r8(hj8h}r8(h]h]r8(jj8Xpy-funcr8eh]h]h]uhj8h]r8hXcelery.execute.apply()r8r8}r8(hUhj8ubahjubaubhX3: Pass log file/log level arguments as task kwargs.r8r8}r8(hX3: Pass log file/log level arguments as task kwargs.hj8ubeubj)r8}r8(hUh}r8(h]h]h]h]h]uhj8h]r8h)r8}r8(hXSee issue #110.hj8hhhjh}r8(h]h]h]h]h]uhMLh]r8(hX See issue r8r8}r8(hUhj8ubj)r8}r8(hUh}r8(UreftypejU trackerconfigj U reftargetX110r8h]h]h]h]h]uhj8h]r8j)r8}r8(hX#110h}r8(h]h]r8(jjeh]h]h]uhj8h]r8hX#110r8r8}r8(hUhj8ubahjubahjubhX.r8}r8(hUhj8ubeubahjubeubh)r8}r8(hX~celery.execute.apply: Should return exception, not :class:`~celery.datastructures.ExceptionInfo` on error. See issue #111. hj78hhhjh}r8(h]h]h]h]h]uhNhhh]r8(h)r8}r8(hXjcelery.execute.apply: Should return exception, not :class:`~celery.datastructures.ExceptionInfo` on error.hj8hhhjh}r8(h]h]h]h]h]uhMNh]r8(hX3celery.execute.apply: Should return exception, not r8r8}r8(hX3celery.execute.apply: Should return exception, not hj8ubj)r8}r8(hX-:class:`~celery.datastructures.ExceptionInfo`r8hj8hhhjh}r8(UreftypeXclassjjX#celery.datastructures.ExceptionInfoU refdomainXpyr8h]h]U refexplicith]h]h]jjj Nj NuhMNh]r8j)r8}r8(hj8h}r9(h]h]r9(jj8Xpy-classr9eh]h]h]uhj8h]r9hX ExceptionInfor9r9}r9(hUhj8ubahjubaubhX on error.r9r9}r 9(hX on error.hj8ubeubj)r 9}r 9(hUh}r 9(h]h]h]h]h]uhj8h]r 9h)r9}r9(hXSee issue #111.hj 9hhhjh}r9(h]h]h]h]h]uhMQh]r9(hX See issue r9r9}r9(hUhj9ubj)r9}r9(hUh}r9(UreftypejU trackerconfigj U reftargetX111r9h]h]h]h]h]uhj9h]r9j)r9}r9(hX#111h}r9(h]h]r9(jjeh]h]h]uhj9h]r9hX#111r9r 9}r!9(hUhj9ubahjubahjubhX.r"9}r#9(hUhj9ubeubahjubeubh)r$9}r%9(hXtAdded new entries to the :doc:`FAQs `: * Should I use retry or acks_late? * Can I execute a task by name? hj78hhhjh}r&9(h]h]h]h]h]uhNhhh]r'9(h)r(9}r)9(hX+Added new entries to the :doc:`FAQs `:hj$9hhhjh}r*9(h]h]h]h]h]uhMSh]r+9(hXAdded new entries to the r,9r-9}r.9(hXAdded new entries to the hj(9ubj)r/9}r09(hX:doc:`FAQs `r19hj(9hhhjh}r29(UreftypeXdocr39jjXfaqU refdomainUh]h]U refexplicith]h]h]jjuhMSh]r49j)r59}r69(hj19h}r79(h]h]r89(jj39eh]h]h]uhj/9h]r99hXFAQsr:9r;9}r<9(hUhj59ubahjubaubhX:r=9}r>9(hX:hj(9ubeubj)r?9}r@9(hUh}rA9(h]h]h]h]h]uhj$9h]rB9h)rC9}rD9(hUh}rE9(jX*h]h]h]h]h]uhj?9h]rF9(h)rG9}rH9(hX Should I use retry or acks_late?rI9h}rJ9(h]h]h]h]h]uhjC9h]rK9h)rL9}rM9(hjI9hjG9hhhjh}rN9(h]h]h]h]h]uhMUh]rO9hX Should I use retry or acks_late?rP9rQ9}rR9(hjI9hjL9ubaubahjubh)rS9}rT9(hXCan I execute a task by name? h}rU9(h]h]h]h]h]uhjC9h]rV9h)rW9}rX9(hXCan I execute a task by name?rY9hjS9hhhjh}rZ9(h]h]h]h]h]uhMVh]r[9hXCan I execute a task by name?r\9r]9}r^9(hjY9hjW9ubaubahjubehhubahjubeubeubjf)r_9}r`9(hX.. _version-1.0.4:hj&8hhhjih}ra9(h]h]h]h]h]jkjuhMXhhh]ubeubeubh)rb9}rc9(hUhhhhjn}rd9h8j_9shhh}re9(h]h]h]h]rf9(jUid21rg9eh]rh9(hh8euhM[hhjt}ri9jj_9sh]rj9(h)rk9}rl9(hjhjb9hhhhh}rm9(h]h]h]h]h]jkjuhM[hhh]rn9hX1.0.4ro9rp9}rq9(hjhjk9ubaubj)rr9}rs9(hUhjb9hhhjh}rt9(h]h]h]h]h]uhM\hhh]ru9j)rv9}rw9(hUhjr9hhhjh}rx9(h]h]h]h]h]uhM\hhh]ry9(j)rz9}r{9(hX release-dater|9h}r}9(h]h]h]h]h]uhjv9h]r~9hX release-dater9r9}r9(hj|9hjz9ubahjubj)r9}r9(hX2010-05-31 09:54 A.M CEST h}r9(h]h]h]h]h]uhjv9h]r9h)r9}r9(hX2010-05-31 09:54 A.M CESTr9hj9hhhjh}r9(h]h]h]h]h]uhM\h]r9hX2010-05-31 09:54 A.M CESTr9r9}r9(hj9hj9ubaubahjubeubaubh)r9}r9(hUhjb9hhhhh}r9(jX*h]h]h]h]h]uhM^hhh]r9h)r9}r9(hX@Changelog merged with 1.0.5 as the release was never announced. hj9hhhjh}r9(h]h]h]h]h]uhNhhh]r9h)r9}r9(hX?Changelog merged with 1.0.5 as the release was never announced.r9hj9hhhjh}r9(h]h]h]h]h]uhM^h]r9hX?Changelog merged with 1.0.5 as the release was never announced.r9r9}r9(hj9hj9ubaubaubaubjf)r9}r9(hX.. _version-1.0.3:hjb9hhhjih}r9(h]h]h]h]h]jkjuhM`hhh]ubeubh)r9}r9(hUhhhhjn}r9h9j9shhh}r9(h]h]h]h]r9(jUid22r9eh]r9(h h9euhMchhjt}r9jj9sh]r9(h)r9}r9(hjhj9hhhhh}r9(h]h]h]h]h]jkjuhMchhh]r9hX1.0.3r9r9}r9(hjhj9ubaubj)r9}r9(hUhj9hhhjh}r9(h]h]h]h]h]uhMdhhh]r9j)r9}r9(hUhj9hhhjh}r9(h]h]h]h]h]uhMdhhh]r9(j)r9}r9(hX release-dater9h}r9(h]h]h]h]h]uhj9h]r9hX release-dater9r9}r9(hj9hj9ubahjubj)r9}r9(hX2010-05-15 03:00 P.M CEST h}r9(h]h]h]h]h]uhj9h]r9h)r9}r9(hX2010-05-15 03:00 P.M CESTr9hj9hhhjh}r9(h]h]h]h]h]uhMdh]r9hX2010-05-15 03:00 P.M CESTr9r9}r9(hj9hj9ubaubahjubeubaubjf)r9}r9(hX.. _v103-important:hj9hhhjih}r9(h]h]h]h]h]jkjuhMfhhh]ubh)r9}r9(hUhKhj9hhjn}r9hj9shhh}r9(h]r9jRah]h]h]r9(jUid23r9eh]r9hauhMihhjt}r9jj9sh]r9(h)r9}r9(hjhj9hhhhh}r9(h]h]h]h]h]jkjuhMihhh]r9hXImportant notesr9r9}r9(hjhj9ubaubh)r9}r9(hUhj9hhhhh}r9(jX*h]h]h]h]h]uhMkhhh]r9(h)r9}r9(hXMessages are now acknowledged *just before* the task function is executed. This is the behavior we've wanted all along, but couldn't have because of limitations in the multiprocessing module. The previous behavior was not good, and the situation worsened with the release of 1.0.1, so this change will definitely improve reliability, performance and operations in general. For more information please see http://bit.ly/9hom6T hj9hhhjh}r9(h]h]h]h]h]uhNhhh]r9(h)r9}r9(hXJMessages are now acknowledged *just before* the task function is executed.hj9hhhjh}r9(h]h]h]h]h]uhMkh]r9(hXMessages are now acknowledged r9r9}r9(hXMessages are now acknowledged hj9ubj )r9}r9(hX *just before*h}r9(h]h]h]h]h]uhj9h]r9hX just beforer9r9}r9(hUhj9ubahj ubhX the task function is executed.r9r9}r9(hX the task function is executed.hj9ubeubj)r9}r9(hUh}r9(h]h]h]h]h]uhj9h]r9(h)r9}r9(hX)This is the behavior we've wanted all along, but couldn't have because of limitations in the multiprocessing module. The previous behavior was not good, and the situation worsened with the release of 1.0.1, so this change will definitely improve reliability, performance and operations in general.r:hj9hhhjh}r:(h]h]h]h]h]uhMmh]r:hX)This is the behavior we've wanted all along, but couldn't have because of limitations in the multiprocessing module. The previous behavior was not good, and the situation worsened with the release of 1.0.1, so this change will definitely improve reliability, performance and operations in general.r:r:}r:(hj:hj9ubaubh)r:}r:(hX4For more information please see http://bit.ly/9hom6Thj9hhhjh}r:(h]h]h]h]h]uhMsh]r :(hX For more information please see r :r :}r :(hX For more information please see hj:ubh)r :}r:(hXhttp://bit.ly/9hom6Tr:h}r:(Urefurij:h]h]h]h]h]uhj:h]r:hXhttp://bit.ly/9hom6Tr:r:}r:(hUhj :ubahjubeubehjubeubh)r:}r:(hXDatabase result backend: result now explicitly sets ``null=True`` as ``django-picklefield`` version 0.1.5 changed the default behavior right under our noses :( See: http://bit.ly/d5OwMr This means those who created their celery tables (via syncdb or celeryinit) with picklefield versions >= 0.1.5 has to alter their tables to allow the result field to be ``NULL`` manually. MySQL:: ALTER TABLE celery_taskmeta MODIFY result TEXT NULL PostgreSQL:: ALTER TABLE celery_taskmeta ALTER COLUMN result DROP NOT NULL hj9hhhjh}r:(h]h]h]h]h]uhNhhh]r:(h)r:}r:(hXDatabase result backend: result now explicitly sets ``null=True`` as ``django-picklefield`` version 0.1.5 changed the default behavior right under our noses :(hj:hhhjh}r:(h]h]h]h]h]uhMuh]r:(hX4Database result backend: result now explicitly sets r:r:}r:(hX4Database result backend: result now explicitly sets hj:ubj)r :}r!:(hX ``null=True``h}r":(h]h]h]h]h]uhj:h]r#:hX null=Truer$:r%:}r&:(hUhj :ubahjubhX as r':r(:}r):(hX as hj:ubj)r*:}r+:(hX``django-picklefield``h}r,:(h]h]h]h]h]uhj:h]r-:hXdjango-picklefieldr.:r/:}r0:(hUhj*:ubahjubhXD version 0.1.5 changed the default behavior right under our noses :(r1:r2:}r3:(hXD version 0.1.5 changed the default behavior right under our noses :(hj:ubeubj)r4:}r5:(hUh}r6:(h]h]h]h]h]uhj:h]r7:(h)r8:}r9:(hXSee: http://bit.ly/d5OwMrhj4:hhhjh}r::(h]h]h]h]h]uhMyh]r;:(hXSee: r<:r=:}r>:(hXSee: hj8:ubh)r?:}r@:(hXhttp://bit.ly/d5OwMrrA:h}rB:(UrefurijA:h]h]h]h]h]uhj8:h]rC:hXhttp://bit.ly/d5OwMrrD:rE:}rF:(hUhj?:ubahjubeubh)rG:}rH:(hXThis means those who created their celery tables (via syncdb or celeryinit) with picklefield versions >= 0.1.5 has to alter their tables to allow the result field to be ``NULL`` manually.hj4:hhhjh}rI:(h]h]h]h]h]uhM{h]rJ:(hXThis means those who created their celery tables (via syncdb or celeryinit) with picklefield versions >= 0.1.5 has to alter their tables to allow the result field to be rK:rL:}rM:(hXThis means those who created their celery tables (via syncdb or celeryinit) with picklefield versions >= 0.1.5 has to alter their tables to allow the result field to be hjG:ubj)rN:}rO:(hX``NULL``h}rP:(h]h]h]h]h]uhjG:h]rQ:hXNULLrR:rS:}rT:(hUhjN:ubahjubhX manually.rU:rV:}rW:(hX manually.hjG:ubeubh)rX:}rY:(hXMySQL::hj4:hhhjh}rZ:(h]h]h]h]h]uhMh]r[:hXMySQL:r\:r]:}r^:(hXMySQL:hjX:ubaubjM)r_:}r`:(hX3ALTER TABLE celery_taskmeta MODIFY result TEXT NULLhj4:hjPh}ra:(jTjUh]h]h]h]h]uhMh]rb:hX3ALTER TABLE celery_taskmeta MODIFY result TEXT NULLrc:rd:}re:(hUhj_:ubaubh)rf:}rg:(hX PostgreSQL::hj4:hhhjh}rh:(h]h]h]h]h]uhMh]ri:hX PostgreSQL:rj:rk:}rl:(hX PostgreSQL:hjf:ubaubjM)rm:}rn:(hX=ALTER TABLE celery_taskmeta ALTER COLUMN result DROP NOT NULLhj4:hjPh}ro:(jTjUh]h]h]h]h]uhMh]rp:hX=ALTER TABLE celery_taskmeta ALTER COLUMN result DROP NOT NULLrq:rr:}rs:(hUhjm:ubaubehjubeubh)rt:}ru:(hXoRemoved ``Task.rate_limit_queue_type``, as it was not really useful and made it harder to refactor some parts. hj9hhhjh}rv:(h]h]h]h]h]uhNhhh]rw:h)rx:}ry:(hXnRemoved ``Task.rate_limit_queue_type``, as it was not really useful and made it harder to refactor some parts.hjt:hhhjh}rz:(h]h]h]h]h]uhMh]r{:(hXRemoved r|:r}:}r~:(hXRemoved hjx:ubj)r:}r:(hX``Task.rate_limit_queue_type``h}r:(h]h]h]h]h]uhjx:h]r:hXTask.rate_limit_queue_typer:r:}r:(hUhj:ubahjubhXH, as it was not really useful and made it harder to refactor some parts.r:r:}r:(hXH, as it was not really useful and made it harder to refactor some parts.hjx:ubeubaubh)r:}r:(hX Now depends on carrot >= 0.10.4 hj9hhhjh}r:(h]h]h]h]h]uhNhhh]r:h)r:}r:(hXNow depends on carrot >= 0.10.4r:hj:hhhjh}r:(h]h]h]h]h]uhMh]r:hXNow depends on carrot >= 0.10.4r:r:}r:(hj:hj:ubaubaubh)r:}r:(hX!Now depends on billiard >= 0.3.0 hj9hhhjh}r:(h]h]h]h]h]uhNhhh]r:h)r:}r:(hX Now depends on billiard >= 0.3.0r:hj:hhhjh}r:(h]h]h]h]h]uhMh]r:hX Now depends on billiard >= 0.3.0r:r:}r:(hj:hj:ubaubaubeubjf)r:}r:(hX.. _v103-news:hj9hhhjih}r:(h]h]h]h]h]jkjuhMhhh]ubeubh)r:}r:(hUhKhj9hhjn}r:hj:shhh}r:(h]r:Xnewsr:ah]h]h]r:(jUid24r:eh]r:hauhMhhjt}r:jj:sh]r:(h)r:}r:(hjhj:hhhhh}r:(h]h]h]h]h]jkjuhMhhh]r:hXNewsr:r:}r:(hjhj:ubaubh)r:}r:(hUhj:hhhhh}r:(jX*h]h]h]h]h]uhMhhh]r:(h)r:}r:(hXNAMQP backend: Added timeout support for ``result.get()`` / ``result.wait()``. hj:hhhjh}r:(h]h]h]h]h]uhNhhh]r:h)r:}r:(hXMAMQP backend: Added timeout support for ``result.get()`` / ``result.wait()``.hj:hhhjh}r:(h]h]h]h]h]uhMh]r:(hX(AMQP backend: Added timeout support for r:r:}r:(hX(AMQP backend: Added timeout support for hj:ubj)r:}r:(hX``result.get()``h}r:(h]h]h]h]h]uhj:h]r:hX result.get()r:r:}r:(hUhj:ubahjubhX / r:r:}r:(hX / hj:ubj)r:}r:(hX``result.wait()``h}r:(h]h]h]h]h]uhj:h]r:hX result.wait()r:r:}r:(hUhj:ubahjubhX.r:}r:(hX.hj:ubeubaubh)r:}r:(hXNew task option: ``Task.acks_late`` (default: :setting:`CELERY_ACKS_LATE`) Late ack means the task messages will be acknowledged **after** the task has been executed, not *just before*, which is the default behavior. .. note:: This means the tasks may be executed twice if the worker crashes in mid-execution. Not acceptable for most applications, but desirable for others. hj:hhhjh}r:(h]h]h]h]h]uhNhhh]r:(h)r:}r:(hXJNew task option: ``Task.acks_late`` (default: :setting:`CELERY_ACKS_LATE`)hj:hhhjh}r:(h]h]h]h]h]uhMh]r:(hXNew task option: r:r:}r:(hXNew task option: hj:ubj)r:}r:(hX``Task.acks_late``h}r:(h]h]h]h]h]uhj:h]r:hXTask.acks_later:r:}r:(hUhj:ubahjubhX (default: r:r:}r:(hX (default: hj:ubj)r:}r:(hX:setting:`CELERY_ACKS_LATE`r:hj:hhhjh}r:(UreftypeXsettingjjXCELERY_ACKS_LATEU refdomainXstdr:h]h]U refexplicith]h]h]jjuhMh]r:j)r:}r:(hj:h}r:(h]h]r:(jj:X std-settingr:eh]h]h]uhj:h]r:hXCELERY_ACKS_LATEr:r:}r:(hUhj:ubahjubaubhX)r:}r:(hX)hj:ubeubj)r:}r:(hUh}r;(h]h]h]h]h]uhj:h]r;(h)r;}r;(hXLate ack means the task messages will be acknowledged **after** the task has been executed, not *just before*, which is the default behavior.hj:hhhjh}r;(h]h]h]h]h]uhMh]r;(hX6Late ack means the task messages will be acknowledged r;r;}r;(hX6Late ack means the task messages will be acknowledged hj;ubj )r ;}r ;(hX **after**h}r ;(h]h]h]h]h]uhj;h]r ;hXafterr ;r;}r;(hUhj ;ubahj ubhX! the task has been executed, not r;r;}r;(hX! the task has been executed, not hj;ubj )r;}r;(hX *just before*h}r;(h]h]h]h]h]uhj;h]r;hX just beforer;r;}r;(hUhj;ubahj ubhX , which is the default behavior.r;r;}r;(hX , which is the default behavior.hj;ubeubcdocutils.nodes note r;)r;}r;(hXThis means the tasks may be executed twice if the worker crashes in mid-execution. Not acceptable for most applications, but desirable for others.h}r ;(h]h]h]h]h]uhj:h]r!;h)r";}r#;(hXThis means the tasks may be executed twice if the worker crashes in mid-execution. Not acceptable for most applications, but desirable for others.r$;hj;hhhjh}r%;(h]h]h]h]h]uhMh]r&;hXThis means the tasks may be executed twice if the worker crashes in mid-execution. Not acceptable for most applications, but desirable for others.r';r(;}r);(hj$;hj";ubaubahUnoter*;ubehjubeubh)r+;}r,;(hXAdded crontab-like scheduling to periodic tasks. Like a cron job, you can specify units of time of when you would like the task to execute. While not a full implementation of cron's features, it should provide a fair degree of common scheduling needs. You can specify a minute (0-59), an hour (0-23), and/or a day of the week (0-6 where 0 is Sunday, or by names: sun, mon, tue, wed, thu, fri, sat). Examples: .. code-block:: python from celery.task.schedules import crontab from celery.decorators import periodic_task @periodic_task(run_every=crontab(hour=7, minute=30)) def every_morning(): print("Runs every morning at 7:30a.m") @periodic_task(run_every=crontab(hour=7, minute=30, day_of_week="mon")) def every_monday_morning(): print("Run every monday morning at 7:30a.m") @periodic_task(run_every=crontab(minutes=30)) def every_hour(): print("Runs every hour on the clock. e.g. 1:30, 2:30, 3:30 etc.") .. note:: This a late addition. While we have unittests, due to the nature of this feature we haven't been able to completely test this in practice, so consider this experimental. hj:hhhjh}r-;(h]h]h]h]h]uhNhhh]r.;(h)r/;}r0;(hX0Added crontab-like scheduling to periodic tasks.r1;hj+;hhhjh}r2;(h]h]h]h]h]uhMh]r3;hX0Added crontab-like scheduling to periodic tasks.r4;r5;}r6;(hj1;hj/;ubaubj)r7;}r8;(hUh}r9;(h]h]h]h]h]uhj+;h]r:;(h)r;;}r<;(hXLike a cron job, you can specify units of time of when you would like the task to execute. While not a full implementation of cron's features, it should provide a fair degree of common scheduling needs.r=;hj7;hhhjh}r>;(h]h]h]h]h]uhMh]r?;hXLike a cron job, you can specify units of time of when you would like the task to execute. While not a full implementation of cron's features, it should provide a fair degree of common scheduling needs.r@;rA;}rB;(hj=;hj;;ubaubh)rC;}rD;(hXYou can specify a minute (0-59), an hour (0-23), and/or a day of the week (0-6 where 0 is Sunday, or by names: sun, mon, tue, wed, thu, fri, sat).rE;hj7;hhhjh}rF;(h]h]h]h]h]uhMh]rG;hXYou can specify a minute (0-59), an hour (0-23), and/or a day of the week (0-6 where 0 is Sunday, or by names: sun, mon, tue, wed, thu, fri, sat).rH;rI;}rJ;(hjE;hjC;ubaubh)rK;}rL;(hX Examples:rM;hj7;hhhjh}rN;(h]h]h]h]h]uhMh]rO;hX Examples:rP;rQ;}rR;(hjM;hjK;ubaubjM)rS;}rT;(hXfrom celery.task.schedules import crontab from celery.decorators import periodic_task @periodic_task(run_every=crontab(hour=7, minute=30)) def every_morning(): print("Runs every morning at 7:30a.m") @periodic_task(run_every=crontab(hour=7, minute=30, day_of_week="mon")) def every_monday_morning(): print("Run every monday morning at 7:30a.m") @periodic_task(run_every=crontab(minutes=30)) def every_hour(): print("Runs every hour on the clock. e.g. 1:30, 2:30, 3:30 etc.")hj7;hhhjPh}rU;(jRjSXpythonjTjUh]h]h]h]h]uhMh]rV;hXfrom celery.task.schedules import crontab from celery.decorators import periodic_task @periodic_task(run_every=crontab(hour=7, minute=30)) def every_morning(): print("Runs every morning at 7:30a.m") @periodic_task(run_every=crontab(hour=7, minute=30, day_of_week="mon")) def every_monday_morning(): print("Run every monday morning at 7:30a.m") @periodic_task(run_every=crontab(minutes=30)) def every_hour(): print("Runs every hour on the clock. e.g. 1:30, 2:30, 3:30 etc.")rW;rX;}rY;(hUhjS;ubaubj;)rZ;}r[;(hXThis a late addition. While we have unittests, due to the nature of this feature we haven't been able to completely test this in practice, so consider this experimental.h}r\;(h]h]h]h]h]uhj7;h]r];h)r^;}r_;(hXThis a late addition. While we have unittests, due to the nature of this feature we haven't been able to completely test this in practice, so consider this experimental.r`;hjZ;hhhjh}ra;(h]h]h]h]h]uhMh]rb;hXThis a late addition. While we have unittests, due to the nature of this feature we haven't been able to completely test this in practice, so consider this experimental.rc;rd;}re;(hj`;hj^;ubaubahj*;ubehjubeubh)rf;}rg;(hXI``TaskPool.apply_async``: Now supports the ``accept_callback`` argument. hj:hhhjh}rh;(h]h]h]h]h]uhNhhh]ri;h)rj;}rk;(hXH``TaskPool.apply_async``: Now supports the ``accept_callback`` argument.hjf;hhhjh}rl;(h]h]h]h]h]uhMh]rm;(j)rn;}ro;(hX``TaskPool.apply_async``h}rp;(h]h]h]h]h]uhjj;h]rq;hXTaskPool.apply_asyncrr;rs;}rt;(hUhjn;ubahjubhX: Now supports the ru;rv;}rw;(hX: Now supports the hjj;ubj)rx;}ry;(hX``accept_callback``h}rz;(h]h]h]h]h]uhjj;h]r{;hXaccept_callbackr|;r};}r~;(hUhjx;ubahjubhX argument.r;r;}r;(hX argument.hjj;ubeubaubh)r;}r;(hXp``apply_async``: Now raises :exc:`ValueError` if task args is not a list, or kwargs is not a tuple (Issue #95). hj:hhhjh}r;(h]h]h]h]h]uhNhhh]r;h)r;}r;(hXo``apply_async``: Now raises :exc:`ValueError` if task args is not a list, or kwargs is not a tuple (Issue #95).hj;hhhjh}r;(h]h]h]h]h]uhMh]r;(j)r;}r;(hX``apply_async``h}r;(h]h]h]h]h]uhj;h]r;hX apply_asyncr;r;}r;(hUhj;ubahjubhX : Now raises r;r;}r;(hX : Now raises hj;ubj)r;}r;(hX:exc:`ValueError`r;hj;hhhjh}r;(UreftypeXexcjjX ValueErrorU refdomainXpyr;h]h]U refexplicith]h]h]jjj Nj NuhMh]r;j)r;}r;(hj;h}r;(h]h]r;(jj;Xpy-excr;eh]h]h]uhj;h]r;hX ValueErrorr;r;}r;(hUhj;ubahjubaubhX= if task args is not a list, or kwargs is not a tuple (Issue r;r;}r;(hUhj;ubj)r;}r;(hUh}r;(UreftypejU trackerconfigj U reftargetX95r;h]h]h]h]h]uhj;h]r;j)r;}r;(hX#95h}r;(h]h]r;(jjeh]h]h]uhj;h]r;hX#95r;r;}r;(hUhj;ubahjubahjubhX).r;r;}r;(hUhj;ubeubaubh)r;}r;(hXM``Task.max_retries`` can now be ``None``, which means it will retry forever. hj:hhhjh}r;(h]h]h]h]h]uhNhhh]r;h)r;}r;(hXL``Task.max_retries`` can now be ``None``, which means it will retry forever.hj;hhhjh}r;(h]h]h]h]h]uhMh]r;(j)r;}r;(hX``Task.max_retries``h}r;(h]h]h]h]h]uhj;h]r;hXTask.max_retriesr;r;}r;(hUhj;ubahjubhX can now be r;r;}r;(hX can now be hj;ubj)r;}r;(hX``None``h}r;(h]h]h]h]h]uhj;h]r;hXNoner;r;}r;(hUhj;ubahjubhX$, which means it will retry forever.r;r;}r;(hX$, which means it will retry forever.hj;ubeubaubh)r;}r;(hXPCelerybeat: Now reuses the same connection when publishing large sets of tasks. hj:hhhjh}r;(h]h]h]h]h]uhNhhh]r;h)r;}r;(hXOCelerybeat: Now reuses the same connection when publishing large sets of tasks.r;hj;hhhjh}r;(h]h]h]h]h]uhMh]r;hXOCelerybeat: Now reuses the same connection when publishing large sets of tasks.r;r;}r;(hj;hj;ubaubaubh)r;}r;(hX`Modified the task locking example in the documentation to use ``cache.add`` for atomic locking. hj:hhhjh}r;(h]h]h]h]h]uhNhhh]r;h)r;}r;(hX_Modified the task locking example in the documentation to use ``cache.add`` for atomic locking.hj;hhhjh}r;(h]h]h]h]h]uhMh]r;(hX>Modified the task locking example in the documentation to use r;r;}r;(hX>Modified the task locking example in the documentation to use hj;ubj)r;}r;(hX ``cache.add``h}r;(h]h]h]h]h]uhj;h]r;hX cache.addr;r;}r;(hUhj;ubahjubhX for atomic locking.r;r;}r;(hX for atomic locking.hj;ubeubaubh)r;}r;(hXMAdded experimental support for a *started* status on tasks. If ``Task.track_started`` is enabled the task will report its status as "started" when the task is executed by a worker. The default value is ``False`` as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" status can be useful for when there are long running tasks and there is a need to report which task is currently running. The global default can be overridden by the :setting:`CELERY_TRACK_STARTED` setting. hj:hhhjh}r;(h]h]h]h]h]uhNhhh]r;(h)r;}r;(hX;Added experimental support for a *started* status on tasks.hj;hhhjh}r;(h]h]h]h]h]uhMh]r;(hX!Added experimental support for a r;r;}r;(hX!Added experimental support for a hj;ubj )r;}r;(hX *started*h}r<(h]h]h]h]h]uhj;h]r<hXstartedr<r<}r<(hUhj;ubahj ubhX status on tasks.r<r<}r<(hX status on tasks.hj;ubeubj)r<}r <(hUh}r <(h]h]h]h]h]uhj;h]r <(h)r <}r <(hXxIf ``Task.track_started`` is enabled the task will report its status as "started" when the task is executed by a worker.hj<hhhjh}r<(h]h]h]h]h]uhMh]r<(hXIf r<r<}r<(hXIf hj <ubj)r<}r<(hX``Task.track_started``h}r<(h]h]h]h]h]uhj <h]r<hXTask.track_startedr<r<}r<(hUhj<ubahjubhX_ is enabled the task will report its status as "started" when the task is executed by a worker.r<r<}r<(hX_ is enabled the task will report its status as "started" when the task is executed by a worker.hj <ubeubh)r<}r<(hX-The default value is ``False`` as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" status can be useful for when there are long running tasks and there is a need to report which task is currently running.hj<hhhjh}r<(h]h]h]h]h]uhMh]r <(hXThe default value is r!<r"<}r#<(hXThe default value is hj<ubj)r$<}r%<(hX ``False``h}r&<(h]h]h]h]h]uhj<h]r'<hXFalser(<r)<}r*<(hUhj$<ubahjubhX as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" status can be useful for when there are long running tasks and there is a need to report which task is currently running.r+<r,<}r-<(hX as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" status can be useful for when there are long running tasks and there is a need to report which task is currently running.hj<ubeubh)r.<}r/<(hXTThe global default can be overridden by the :setting:`CELERY_TRACK_STARTED` setting.hj<hhhjh}r0<(h]h]h]h]h]uhMh]r1<(hX,The global default can be overridden by the r2<r3<}r4<(hX,The global default can be overridden by the hj.<ubj)r5<}r6<(hX:setting:`CELERY_TRACK_STARTED`r7<hj.<hhhjh}r8<(UreftypeXsettingjjXCELERY_TRACK_STARTEDU refdomainXstdr9<h]h]U refexplicith]h]h]jjuhMh]r:<j)r;<}r<<(hj7<h}r=<(h]h]r><(jj9<X std-settingr?<eh]h]h]uhj5<h]r@<hXCELERY_TRACK_STARTEDrA<rB<}rC<(hUhj;<ubahjubaubhX setting.rD<rE<}rF<(hX setting.hj.<ubeubehjubeubh)rG<}rH<(hXOUser Guide: New section ``Tips and Best Practices``. Contributions welcome! hj:hhhjh}rI<(h]h]h]h]h]uhNhhh]rJ<(h)rK<}rL<(hX4User Guide: New section ``Tips and Best Practices``.hjG<hhhjh}rM<(h]h]h]h]h]uhMh]rN<(hXUser Guide: New section rO<rP<}rQ<(hXUser Guide: New section hjK<ubj)rR<}rS<(hX``Tips and Best Practices``h}rT<(h]h]h]h]h]uhjK<h]rU<hXTips and Best PracticesrV<rW<}rX<(hUhjR<ubahjubhX.rY<}rZ<(hX.hjK<ubeubj)r[<}r\<(hUh}r]<(h]h]h]h]h]uhjG<h]r^<h)r_<}r`<(hXContributions welcome!ra<hj[<hhhjh}rb<(h]h]h]h]h]uhMh]rc<hXContributions welcome!rd<re<}rf<(hja<hj_<ubaubahjubeubeubjf)rg<}rh<(hX.. _v103-remote-control:hj:hhhjih}ri<(h]h]h]h]h]jkUv103-remote-controlrj<uhMhhh]ubeubh)rk<}rl<(hUhj9hhjn}rm<h,jg<shhh}rn<(h]h]h]h]ro<(jjj<eh]rp<(hdh,euhMhhjt}rq<jj<jg<sh]rr<(h)rs<}rt<(hjhjk<hhhhh}ru<(h]h]h]h]h]jkjuhMhhh]rv<hXRemote control commandsrw<rx<}ry<(hjhjs<ubaubh)rz<}r{<(hUhjk<hhhhh}r|<(jX*h]h]h]h]h]uhMhhh]r}<(h)r~<}r<(hXRemote control commands can now send replies back to the caller. Existing commands has been improved to send replies, and the client interface in ``celery.task.control`` has new keyword arguments: ``reply``, ``timeout`` and ``limit``. Where reply means it will wait for replies, timeout is the time in seconds to stop waiting for replies, and limit is the maximum number of replies to get. By default, it will wait for as many replies as possible for one second. * rate_limit(task_name, destination=all, reply=False, timeout=1, limit=0) Worker returns ``{"ok": message}`` on success, or ``{"failure": message}`` on failure. >>> from celery.task.control import rate_limit >>> rate_limit("tasks.add", "10/s", reply=True) [{'worker1': {'ok': 'new rate limit set successfully'}}, {'worker2': {'ok': 'new rate limit set successfully'}}] * ping(destination=all, reply=False, timeout=1, limit=0) Worker returns the simple message ``"pong"``. >>> from celery.task.control import ping >>> ping(reply=True) [{'worker1': 'pong'}, {'worker2': 'pong'}, * revoke(destination=all, reply=False, timeout=1, limit=0) Worker simply returns ``True``. >>> from celery.task.control import revoke >>> revoke("419e46eb-cf6a-4271-86a8-442b7124132c", reply=True) [{'worker1': True}, {'worker2'; True}] hjz<hhhjh}r<(h]h]h]h]h]uhNhhh]r<(h)r<}r<(hX@Remote control commands can now send replies back to the caller.r<hj~<hhhjh}r<(h]h]h]h]h]uhMh]r<hX@Remote control commands can now send replies back to the caller.r<r<}r<(hj<hj<ubaubj)r<}r<(hUh}r<(h]h]h]h]h]uhj~<h]r<(h)r<}r<(hXDExisting commands has been improved to send replies, and the client interface in ``celery.task.control`` has new keyword arguments: ``reply``, ``timeout`` and ``limit``. Where reply means it will wait for replies, timeout is the time in seconds to stop waiting for replies, and limit is the maximum number of replies to get.hj<hhhjh}r<(h]h]h]h]h]uhMh]r<(hXQExisting commands has been improved to send replies, and the client interface in r<r<}r<(hXQExisting commands has been improved to send replies, and the client interface in hj<ubj)r<}r<(hX``celery.task.control``h}r<(h]h]h]h]h]uhj<h]r<hXcelery.task.controlr<r<}r<(hUhj<ubahjubhX has new keyword arguments: r<r<}r<(hX has new keyword arguments: hj<ubj)r<}r<(hX ``reply``h}r<(h]h]h]h]h]uhj<h]r<hXreplyr<r<}r<(hUhj<ubahjubhX, r<r<}r<(hX, hj<ubj)r<}r<(hX ``timeout``h}r<(h]h]h]h]h]uhj<h]r<hXtimeoutr<r<}r<(hUhj<ubahjubhX and r<r<}r<(hX and hj<ubj)r<}r<(hX ``limit``h}r<(h]h]h]h]h]uhj<h]r<hXlimitr<r<}r<(hUhj<ubahjubhX. Where reply means it will wait for replies, timeout is the time in seconds to stop waiting for replies, and limit is the maximum number of replies to get.r<r<}r<(hX. Where reply means it will wait for replies, timeout is the time in seconds to stop waiting for replies, and limit is the maximum number of replies to get.hj<ubeubh)r<}r<(hXHBy default, it will wait for as many replies as possible for one second.r<hj<hhhjh}r<(h]h]h]h]h]uhMh]r<hXHBy default, it will wait for as many replies as possible for one second.r<r<}r<(hj<hj<ubaubh)r<}r<(hUh}r<(jX*h]h]h]h]h]uhj<h]r<(h)r<}r<(hXrate_limit(task_name, destination=all, reply=False, timeout=1, limit=0) Worker returns ``{"ok": message}`` on success, or ``{"failure": message}`` on failure. >>> from celery.task.control import rate_limit >>> rate_limit("tasks.add", "10/s", reply=True) [{'worker1': {'ok': 'new rate limit set successfully'}}, {'worker2': {'ok': 'new rate limit set successfully'}}] h}r<(h]h]h]h]h]uhj<h]r<(h)r<}r<(hXGrate_limit(task_name, destination=all, reply=False, timeout=1, limit=0)r<hj<hhhjh}r<(h]h]h]h]h]uhMh]r<hXGrate_limit(task_name, destination=all, reply=False, timeout=1, limit=0)r<r<}r<(hj<hj<ubaubj)r<}r<(hUh}r<(h]h]h]h]h]uhj<h]r<(h)r<}r<(hXVWorker returns ``{"ok": message}`` on success, or ``{"failure": message}`` on failure.hj<hhhjh}r<(h]h]h]h]h]uhMh]r<(hXWorker returns r<r<}r<(hXWorker returns hj<ubj)r<}r<(hX``{"ok": message}``h}r<(h]h]h]h]h]uhj<h]r<hX{"ok": message}r<r<}r<(hUhj<ubahjubhX on success, or r<r<}r<(hX on success, or hj<ubj)r<}r<(hX``{"failure": message}``h}r<(h]h]h]h]h]uhj<h]r<hX{"failure": message}r<r<}r<(hUhj<ubahjubhX on failure.r<r<}r<(hX on failure.hj<ubeubjh)r<}r<(hX>>> from celery.task.control import rate_limit >>> rate_limit("tasks.add", "10/s", reply=True) [{'worker1': {'ok': 'new rate limit set successfully'}}, {'worker2': {'ok': 'new rate limit set successfully'}}]h}r<(jTjUh]h]h]h]h]uhj<h]r<hX>>> from celery.task.control import rate_limit >>> rate_limit("tasks.add", "10/s", reply=True) [{'worker1': {'ok': 'new rate limit set successfully'}}, {'worker2': {'ok': 'new rate limit set successfully'}}]r<r<}r<(hUhj<ubahjpubehjubehjubh)r<}r<(hXping(destination=all, reply=False, timeout=1, limit=0) Worker returns the simple message ``"pong"``. >>> from celery.task.control import ping >>> ping(reply=True) [{'worker1': 'pong'}, {'worker2': 'pong'}, h}r<(h]h]h]h]h]uhj<h]r<(h)r<}r=(hX6ping(destination=all, reply=False, timeout=1, limit=0)r=hj<hhhjh}r=(h]h]h]h]h]uhMh]r=hX6ping(destination=all, reply=False, timeout=1, limit=0)r=r=}r=(hj=hj<ubaubj)r=}r=(hUh}r =(h]h]h]h]h]uhj<h]r =(h)r =}r =(hX-Worker returns the simple message ``"pong"``.hj=hhhjh}r =(h]h]h]h]h]uhMh]r=(hX"Worker returns the simple message r=r=}r=(hX"Worker returns the simple message hj =ubj)r=}r=(hX ``"pong"``h}r=(h]h]h]h]h]uhj =h]r=hX"pong"r=r=}r=(hUhj=ubahjubhX.r=}r=(hX.hj =ubeubjh)r=}r=(hXi>>> from celery.task.control import ping >>> ping(reply=True) [{'worker1': 'pong'}, {'worker2': 'pong'},h}r=(jTjUh]h]h]h]h]uhj=h]r=hXi>>> from celery.task.control import ping >>> ping(reply=True) [{'worker1': 'pong'}, {'worker2': 'pong'},r=r =}r!=(hUhj=ubahjpubehjubehjubh)r"=}r#=(hXrevoke(destination=all, reply=False, timeout=1, limit=0) Worker simply returns ``True``. >>> from celery.task.control import revoke >>> revoke("419e46eb-cf6a-4271-86a8-442b7124132c", reply=True) [{'worker1': True}, {'worker2'; True}] h}r$=(h]h]h]h]h]uhj<h]r%=(h)r&=}r'=(hX8revoke(destination=all, reply=False, timeout=1, limit=0)r(=hj"=hhhjh}r)=(h]h]h]h]h]uhMh]r*=hX8revoke(destination=all, reply=False, timeout=1, limit=0)r+=r,=}r-=(hj(=hj&=ubaubj)r.=}r/=(hUh}r0=(h]h]h]h]h]uhj"=h]r1=(h)r2=}r3=(hXWorker simply returns ``True``.r4=hj.=hhhjh}r5=(h]h]h]h]h]uhMh]r6=(hXWorker simply returns r7=r8=}r9=(hXWorker simply returns hj2=ubj)r:=}r;=(hX``True``h}r<=(h]h]h]h]h]uhj2=h]r==hXTruer>=r?=}r@=(hUhj:=ubahjubhX.rA=}rB=(hX.hj2=ubeubjh)rC=}rD=(hX>>> from celery.task.control import revoke >>> revoke("419e46eb-cf6a-4271-86a8-442b7124132c", reply=True) [{'worker1': True}, {'worker2'; True}]h}rE=(jTjUh]h]h]h]h]uhj.=h]rF=hX>>> from celery.task.control import revoke >>> revoke("419e46eb-cf6a-4271-86a8-442b7124132c", reply=True) [{'worker1': True}, {'worker2'; True}]rG=rH=}rI=(hUhjC=ubahjpubehjubehjubehhubehjubeubh)rJ=}rK=(hXYou can now add your own remote control commands! Remote control commands are functions registered in the command registry. Registering a command is done using :meth:`celery.worker.control.Panel.register`: .. code-block:: python from celery.task.control import Panel @Panel.register def reset_broker_connection(panel, **kwargs): panel.listener.reset_connection() return {"ok": "connection re-established"} With this module imported in the worker, you can launch the command using ``celery.task.control.broadcast``:: >>> from celery.task.control import broadcast >>> broadcast("reset_broker_connection", reply=True) [{'worker1': {'ok': 'connection re-established'}, {'worker2': {'ok': 'connection re-established'}}] **TIP** You can choose the worker(s) to receive the command by using the ``destination`` argument:: >>> broadcast("reset_broker_connection", destination=["worker1"]) [{'worker1': {'ok': 'connection re-established'}] hjz<hhhjh}rL=(h]h]h]h]h]uhNhhh]rM=(h)rN=}rO=(hX1You can now add your own remote control commands!rP=hjJ=hhhjh}rQ=(h]h]h]h]h]uhMh]rR=hX1You can now add your own remote control commands!rS=rT=}rU=(hjP=hjN=ubaubj)rV=}rW=(hUh}rX=(h]h]h]h]h]uhjJ=h]rY=(h)rZ=}r[=(hXRemote control commands are functions registered in the command registry. Registering a command is done using :meth:`celery.worker.control.Panel.register`:hjV=hhhjh}r\=(h]h]h]h]h]uhMh]r]=(hXnRemote control commands are functions registered in the command registry. Registering a command is done using r^=r_=}r`=(hXnRemote control commands are functions registered in the command registry. Registering a command is done using hjZ=ubj)ra=}rb=(hX,:meth:`celery.worker.control.Panel.register`rc=hjZ=hhhjh}rd=(UreftypeXmethjjX$celery.worker.control.Panel.registerU refdomainXpyre=h]h]U refexplicith]h]h]jjj Nj NuhMh]rf=j)rg=}rh=(hjc=h}ri=(h]h]rj=(jje=Xpy-methrk=eh]h]h]uhja=h]rl=hX&celery.worker.control.Panel.register()rm=rn=}ro=(hUhjg=ubahjubaubhX:rp=}rq=(hX:hjZ=ubeubjM)rr=}rs=(hXfrom celery.task.control import Panel @Panel.register def reset_broker_connection(panel, **kwargs): panel.listener.reset_connection() return {"ok": "connection re-established"}hjV=hhhjPh}rt=(jRjSXpythonjTjUh]h]h]h]h]uhMh]ru=hXfrom celery.task.control import Panel @Panel.register def reset_broker_connection(panel, **kwargs): panel.listener.reset_connection() return {"ok": "connection re-established"}rv=rw=}rx=(hUhjr=ubaubh)ry=}rz=(hXmWith this module imported in the worker, you can launch the command using ``celery.task.control.broadcast``::hjV=hhhjh}r{=(h]h]h]h]h]uhMh]r|=(hXJWith this module imported in the worker, you can launch the command using r}=r~=}r=(hXJWith this module imported in the worker, you can launch the command using hjy=ubj)r=}r=(hX!``celery.task.control.broadcast``h}r=(h]h]h]h]h]uhjy=h]r=hXcelery.task.control.broadcastr=r=}r=(hUhj=ubahjubhX:r=}r=(hX:hjy=ubeubjM)r=}r=(hX>>> from celery.task.control import broadcast >>> broadcast("reset_broker_connection", reply=True) [{'worker1': {'ok': 'connection re-established'}, {'worker2': {'ok': 'connection re-established'}}]hjV=hjPh}r=(jTjUh]h]h]h]h]uhM h]r=hX>>> from celery.task.control import broadcast >>> broadcast("reset_broker_connection", reply=True) [{'worker1': {'ok': 'connection re-established'}, {'worker2': {'ok': 'connection re-established'}}]r=r=}r=(hUhj=ubaubh)r=}r=(hXc**TIP** You can choose the worker(s) to receive the command by using the ``destination`` argument::hjV=hhhjh}r=(h]h]h]h]h]uhM%h]r=(j )r=}r=(hX**TIP**h}r=(h]h]h]h]h]uhj=h]r=hXTIPr=r=}r=(hUhj=ubahj ubhXB You can choose the worker(s) to receive the command by using the r=r=}r=(hXB You can choose the worker(s) to receive the command by using the hj=ubj)r=}r=(hX``destination``h}r=(h]h]h]h]h]uhj=h]r=hX destinationr=r=}r=(hUhj=ubahjubhX argument:r=r=}r=(hX argument:hj=ubeubjM)r=}r=(hXs>>> broadcast("reset_broker_connection", destination=["worker1"]) [{'worker1': {'ok': 'connection re-established'}]hjV=hjPh}r=(jTjUh]h]h]h]h]uhM(h]r=hXs>>> broadcast("reset_broker_connection", destination=["worker1"]) [{'worker1': {'ok': 'connection re-established'}]r=r=}r=(hUhj=ubaubehjubeubh)r=}r=(hXNew remote control command: ``dump_reserved`` Dumps tasks reserved by the worker, waiting to be executed:: >>> from celery.task.control import broadcast >>> broadcast("dump_reserved", reply=True) [{'myworker1': []}] hjz<hhhjh}r=(h]h]h]h]h]uhNhhh]r=(h)r=}r=(hX-New remote control command: ``dump_reserved``hj=hhhjh}r=(h]h]h]h]h]uhM+h]r=(hXNew remote control command: r=r=}r=(hXNew remote control command: hj=ubj)r=}r=(hX``dump_reserved``h}r=(h]h]h]h]h]uhj=h]r=hX dump_reservedr=r=}r=(hUhj=ubahjubeubj)r=}r=(hUh}r=(h]h]h]h]h]uhj=h]r=(h)r=}r=(hX<Dumps tasks reserved by the worker, waiting to be executed::hj=hhhjh}r=(h]h]h]h]h]uhM-h]r=hX;Dumps tasks reserved by the worker, waiting to be executed:r=r=}r=(hX;Dumps tasks reserved by the worker, waiting to be executed:hj=ubaubjM)r=}r=(hX~>>> from celery.task.control import broadcast >>> broadcast("dump_reserved", reply=True) [{'myworker1': []}]hj=hjPh}r=(jTjUh]h]h]h]h]uhM/h]r=hX~>>> from celery.task.control import broadcast >>> broadcast("dump_reserved", reply=True) [{'myworker1': []}]r=r=}r=(hUhj=ubaubehjubeubh)r=}r=(hXnNew remote control command: ``dump_schedule`` Dumps the workers currently registered ETA schedule. These are tasks with an ``eta`` (or ``countdown``) argument waiting to be executed by the worker. >>> from celery.task.control import broadcast >>> broadcast("dump_schedule", reply=True) [{'w1': []}, {'w3': []}, {'w2': ['0. 2010-05-12 11:06:00 pri0 ,)", kwargs:"{'page': 2}"}>']}, {'w4': ['0. 2010-05-12 11:00:00 pri0 ,)", kwargs:"{\'page\': 1}"}>', '1. 2010-05-12 11:12:00 pri0 ,)", kwargs:"{\'page\': 3}"}>']}] hjz<hhhjh}r=(h]h]h]h]h]uhNhhh]r=(h)r=}r=(hX-New remote control command: ``dump_schedule``hj=hhhjh}r=(h]h]h]h]h]uhM3h]r=(hXNew remote control command: r=r=}r=(hXNew remote control command: hj=ubj)r=}r=(hX``dump_schedule``h}r=(h]h]h]h]h]uhj=h]r=hX dump_scheduler=r=}r=(hUhj=ubahjubeubj)r=}r=(hUh}r=(h]h]h]h]h]uhj=h]r=(h)r=}r=(hXDumps the workers currently registered ETA schedule. These are tasks with an ``eta`` (or ``countdown``) argument waiting to be executed by the worker.hj=hhhjh}r=(h]h]h]h]h]uhM5h]r=(hXMDumps the workers currently registered ETA schedule. These are tasks with an r=r=}r=(hXMDumps the workers currently registered ETA schedule. These are tasks with an hj=ubj)r=}r=(hX``eta``h}r=(h]h]h]h]h]uhj=h]r=hXetar=r=}r=(hUhj=ubahjubhX (or r=r=}r=(hX (or hj=ubj)r=}r=(hX ``countdown``h}r=(h]h]h]h]h]uhj=h]r=hX countdownr=r=}r>(hUhj=ubahjubhX0) argument waiting to be executed by the worker.r>r>}r>(hX0) argument waiting to be executed by the worker.hj=ubeubjh)r>}r>(hX>>> from celery.task.control import broadcast >>> broadcast("dump_schedule", reply=True) [{'w1': []}, {'w3': []}, {'w2': ['0. 2010-05-12 11:06:00 pri0 ,)", kwargs:"{'page': 2}"}>']}, {'w4': ['0. 2010-05-12 11:00:00 pri0 ,)", kwargs:"{\'page\': 1}"}>', '1. 2010-05-12 11:12:00 pri0 ,)", kwargs:"{\'page\': 3}"}>']}]h}r>(jTjUh]h]h]h]h]uhj=h]r>hX>>> from celery.task.control import broadcast >>> broadcast("dump_schedule", reply=True) [{'w1': []}, {'w3': []}, {'w2': ['0. 2010-05-12 11:06:00 pri0 ,)", kwargs:"{'page': 2}"}>']}, {'w4': ['0. 2010-05-12 11:00:00 pri0 ,)", kwargs:"{\'page\': 1}"}>', '1. 2010-05-12 11:12:00 pri0 ,)", kwargs:"{\'page\': 3}"}>']}]r>r >}r >(hUhj>ubahjpubehjubeubeubjf)r >}r >(hX.. _v103-fixes:hjk<hhhjih}r >(h]h]h]h]h]jkjuhMPhhh]ubeubh)r>}r>(hUhKhj9hhjn}r>hj >shhh}r>(h]r>Xfixesr>ah]h]h]r>(jUid25r>eh]r>hauhMShhjt}r>jj >sh]r>(h)r>}r>(hjhj>hhhhh}r>(h]h]h]h]h]jkjuhMShhh]r>hXFixesr>r>}r>(hjhj>ubaubh)r >}r!>(hUhj>hhhhh}r">(jX*h]h]h]h]h]uhMUhhh]r#>(h)r$>}r%>(hXMediator thread no longer blocks for more than 1 second. With rate limits enabled and when there was a lot of remaining time, the mediator thread could block shutdown (and potentially block other jobs from coming in). hj >hhhjh}r&>(h]h]h]h]h]uhNhhh]r'>(h)r(>}r)>(hX8Mediator thread no longer blocks for more than 1 second.r*>hj$>hhhjh}r+>(h]h]h]h]h]uhMUh]r,>hX8Mediator thread no longer blocks for more than 1 second.r->r.>}r/>(hj*>hj(>ubaubj)r0>}r1>(hUh}r2>(h]h]h]h]h]uhj$>h]r3>h)r4>}r5>(hXWith rate limits enabled and when there was a lot of remaining time, the mediator thread could block shutdown (and potentially block other jobs from coming in).r6>hj0>hhhjh}r7>(h]h]h]h]h]uhMWh]r8>hXWith rate limits enabled and when there was a lot of remaining time, the mediator thread could block shutdown (and potentially block other jobs from coming in).r9>r:>}r;>(hj6>hj4>ubaubahjubeubh)r<>}r=>(hX9Remote rate limits was not properly applied (Issue #98). hj >hhhjh}r>>(h]h]h]h]h]uhNhhh]r?>h)r@>}rA>(hX8Remote rate limits was not properly applied (Issue #98).hj<>hhhjh}rB>(h]h]h]h]h]uhM[h]rC>(hX3Remote rate limits was not properly applied (Issue rD>rE>}rF>(hUhj@>ubj)rG>}rH>(hUh}rI>(UreftypejU trackerconfigj U reftargetX98rJ>h]h]h]h]h]uhj@>h]rK>j)rL>}rM>(hX#98h}rN>(h]h]rO>(jjeh]h]h]uhjG>h]rP>hX#98rQ>rR>}rS>(hUhjL>ubahjubahjubhX).rT>rU>}rV>(hUhj@>ubeubaubh)rW>}rX>(hXTNow handles exceptions with Unicode messages correctly in `TaskRequest.on_failure`. hj >hhhjh}rY>(h]h]h]h]h]uhNhhh]rZ>h)r[>}r\>(hXSNow handles exceptions with Unicode messages correctly in `TaskRequest.on_failure`.hjW>hhhjh}r]>(h]h]h]h]h]uhM]h]r^>(hX:Now handles exceptions with Unicode messages correctly in r_>r`>}ra>(hX:Now handles exceptions with Unicode messages correctly in hj[>ubj()rb>}rc>(hX`TaskRequest.on_failure`h}rd>(h]h]h]h]h]uhj[>h]re>hXTaskRequest.on_failurerf>rg>}rh>(hUhjb>ubahj0ubhX.ri>}rj>(hX.hj[>ubeubaubh)rk>}rl>(hXZDatabase backend: ``TaskMeta.result``: default value should be ``None`` not empty string. hj >hhhjh}rm>(h]h]h]h]h]uhNhhh]rn>h)ro>}rp>(hXYDatabase backend: ``TaskMeta.result``: default value should be ``None`` not empty string.hjk>hhhjh}rq>(h]h]h]h]h]uhM`h]rr>(hXDatabase backend: rs>rt>}ru>(hXDatabase backend: hjo>ubj)rv>}rw>(hX``TaskMeta.result``h}rx>(h]h]h]h]h]uhjo>h]ry>hXTaskMeta.resultrz>r{>}r|>(hUhjv>ubahjubhX: default value should be r}>r~>}r>(hX: default value should be hjo>ubj)r>}r>(hX``None``h}r>(h]h]h]h]h]uhjo>h]r>hXNoner>r>}r>(hUhj>ubahjubhX not empty string.r>r>}r>(hX not empty string.hjo>ubeubaubeubjf)r>}r>(hX.. _version-1.0.2:hj>hhhjih}r>(h]h]h]h]h]jkj uhMchhh]ubeubeubh)r>}r>(hUhhhhjn}r>h:j>shhh}r>(h]h]h]h]r>(j Uid26r>eh]r>(h h:euhMfhhjt}r>j j>sh]r>(h)r>}r>(hjhj>hhhhh}r>(h]h]h]h]h]jkj uhMfhhh]r>hX1.0.2r>r>}r>(hjhj>ubaubj)r>}r>(hUhj>hhhjh}r>(h]h]h]h]h]uhMghhh]r>j)r>}r>(hUhj>hhhjh}r>(h]h]h]h]h]uhMghhh]r>(j)r>}r>(hX release-dater>h}r>(h]h]h]h]h]uhj>h]r>hX release-dater>r>}r>(hj>hj>ubahjubj)r>}r>(hX2010-03-31 12:50 P.M CET h}r>(h]h]h]h]h]uhj>h]r>h)r>}r>(hX2010-03-31 12:50 P.M CETr>hj>hhhjh}r>(h]h]h]h]h]uhMgh]r>hX2010-03-31 12:50 P.M CETr>r>}r>(hj>hj>ubaubahjubeubaubh)r>}r>(hUhj>hhhhh}r>(jX*h]h]h]h]h]uhMihhh]r>(h)r>}r>(hX\Deprecated: :setting:`CELERY_BACKEND`, please use :setting:`CELERY_RESULT_BACKEND` instead. hj>hhhjh}r>(h]h]h]h]h]uhNhhh]r>h)r>}r>(hX[Deprecated: :setting:`CELERY_BACKEND`, please use :setting:`CELERY_RESULT_BACKEND` instead.hj>hhhjh}r>(h]h]h]h]h]uhMih]r>(hX Deprecated: r>r>}r>(hX Deprecated: hj>ubj)r>}r>(hX:setting:`CELERY_BACKEND`r>hj>hhhjh}r>(UreftypeXsettingjjXCELERY_BACKENDU refdomainXstdr>h]h]U refexplicith]h]h]jjuhMih]r>j)r>}r>(hj>h}r>(h]h]r>(jj>X std-settingr>eh]h]h]uhj>h]r>hXCELERY_BACKENDr>r>}r>(hUhj>ubahjubaubhX , please use r>r>}r>(hX , please use hj>ubj)r>}r>(hX :setting:`CELERY_RESULT_BACKEND`r>hj>hhhjh}r>(UreftypeXsettingjjXCELERY_RESULT_BACKENDU refdomainXstdr>h]h]U refexplicith]h]h]jjuhMih]r>j)r>}r>(hj>h}r>(h]h]r>(jj>X std-settingr>eh]h]h]uhj>h]r>hXCELERY_RESULT_BACKENDr>r>}r>(hUhj>ubahjubaubhX instead.r>r>}r>(hX instead.hj>ubeubaubh)r>}r>(hXOWe now use a custom logger in tasks. This logger supports task magic keyword arguments in formats. The default format for tasks (:setting:`CELERYD_TASK_LOG_FORMAT`) now includes the id and the name of tasks so the origin of task log messages can easily be traced. Example output:: [2010-03-25 13:11:20,317: INFO/PoolWorker-1] [tasks.add(a6e1c5ad-60d9-42a0-8b24-9e39363125a4)] Hello from add To revert to the previous behavior you can set:: CELERYD_TASK_LOG_FORMAT = """ [%(asctime)s: %(levelname)s/%(processName)s] %(message)s """.strip() hj>hhhjh}r>(h]h]h]h]h]uhNhhh]r>(h)r>}r>(hXbWe now use a custom logger in tasks. This logger supports task magic keyword arguments in formats.r>hj>hhhjh}r>(h]h]h]h]h]uhMlh]r>hXbWe now use a custom logger in tasks. This logger supports task magic keyword arguments in formats.r>r>}r>(hj>hj>ubaubj)r>}r>(hUh}r>(h]h]h]h]h]uhj>h]r>(h)r>}r>(hXThe default format for tasks (:setting:`CELERYD_TASK_LOG_FORMAT`) now includes the id and the name of tasks so the origin of task log messages can easily be traced.hj>hhhjh}r>(h]h]h]h]h]uhMoh]r>(hXThe default format for tasks (r?r?}r?(hXThe default format for tasks (hj>ubj)r?}r?(hX":setting:`CELERYD_TASK_LOG_FORMAT`r?hj>hhhjh}r?(UreftypeXsettingjjXCELERYD_TASK_LOG_FORMATU refdomainXstdr?h]h]U refexplicith]h]h]jjuhMoh]r?j)r ?}r ?(hj?h}r ?(h]h]r ?(jj?X std-settingr ?eh]h]h]uhj?h]r?hXCELERYD_TASK_LOG_FORMATr?r?}r?(hUhj ?ubahjubaubhXd) now includes the id and the name of tasks so the origin of task log messages can easily be traced.r?r?}r?(hXd) now includes the id and the name of tasks so the origin of task log messages can easily be traced.hj>ubeubj )r?}r?(hUh}r?(h]h]h]h]h]uhj>h]r?j )r?}r?(hXExample output:: [2010-03-25 13:11:20,317: INFO/PoolWorker-1] [tasks.add(a6e1c5ad-60d9-42a0-8b24-9e39363125a4)] Hello from add hj?hhhj h}r?(h]h]h]h]h]uhMuh]r?(j )r?}r?(hXExample output::r?hj?hhhj h}r ?(h]h]h]h]h]uhMuh]r!?hXExample output::r"?r#?}r$?(hj?hj?ubaubj5 )r%?}r&?(hUh}r'?(h]h]h]h]h]uhj?h]r(?j )r)?}r*?(hUh}r+?(h]h]h]h]h]uhj%?h]r,?j )r-?}r.?(hXn[2010-03-25 13:11:20,317: INFO/PoolWorker-1] [tasks.add(a6e1c5ad-60d9-42a0-8b24-9e39363125a4)] Hello from add hj)?hhhj h}r/?(h]h]h]h]h]uhMuh]r0?(j )r1?}r2?(hX,[2010-03-25 13:11:20,317: INFO/PoolWorker-1]r3?hj-?hhhj h}r4?(h]h]h]h]h]uhMuh]r5?hX,[2010-03-25 13:11:20,317: INFO/PoolWorker-1]r6?r7?}r8?(hj3?hj1?ubaubj5 )r9?}r:?(hUh}r;?(h]h]h]h]h]uhj-?h]r?(hX@[tasks.add(a6e1c5ad-60d9-42a0-8b24-9e39363125a4)] Hello from addr??hj9?hhhjh}r@?(h]h]h]h]h]uhMuh]rA?hX@[tasks.add(a6e1c5ad-60d9-42a0-8b24-9e39363125a4)] Hello from addrB?rC?}rD?(hj??hj=?ubaubahjB ubeubahjC ubahjB ubeubahjC ubh)rE?}rF?(hX0To revert to the previous behavior you can set::hj>hhhjh}rG?(h]h]h]h]h]uhMwh]rH?hX/To revert to the previous behavior you can set:rI?rJ?}rK?(hX/To revert to the previous behavior you can set:hjE?ubaubjM)rL?}rM?(hXfCELERYD_TASK_LOG_FORMAT = """ [%(asctime)s: %(levelname)s/%(processName)s] %(message)s """.strip()hj>hjPh}rN?(jTjUh]h]h]h]h]uhMyh]rO?hXfCELERYD_TASK_LOG_FORMAT = """ [%(asctime)s: %(levelname)s/%(processName)s] %(message)s """.strip()rP?rQ?}rR?(hUhjL?ubaubehjubeubh)rS?}rT?(hXUnit tests: Don't disable the django test database tear down, instead fixed the underlying issue which was caused by modifications to the ``DATABASE_NAME`` setting (Issue #82). hj>hhhjh}rU?(h]h]h]h]h]uhNhhh]rV?h)rW?}rX?(hXUnit tests: Don't disable the django test database tear down, instead fixed the underlying issue which was caused by modifications to the ``DATABASE_NAME`` setting (Issue #82).hjS?hhhjh}rY?(h]h]h]h]h]uhM}h]rZ?(hXUnit tests: Don't disable the django test database tear down, instead fixed the underlying issue which was caused by modifications to the r[?r\?}r]?(hXUnit tests: Don't disable the django test database tear down, instead fixed the underlying issue which was caused by modifications to the hjW?ubj)r^?}r_?(hX``DATABASE_NAME``h}r`?(h]h]h]h]h]uhjW?h]ra?hX DATABASE_NAMErb?rc?}rd?(hUhj^?ubahjubhX setting (Issue re?rf?}rg?(hUhjW?ubj)rh?}ri?(hUh}rj?(UreftypejU trackerconfigj U reftargetX82rk?h]h]h]h]h]uhjW?h]rl?j)rm?}rn?(hX#82h}ro?(h]h]rp?(jjeh]h]h]uhjh?h]rq?hX#82rr?rs?}rt?(hUhjm?ubahjubahjubhX).ru?rv?}rw?(hUhjW?ubeubaubh)rx?}ry?(hXDjango Loader: New config :setting:`CELERY_DB_REUSE_MAX` (max number of tasks to reuse the same database connection) The default is to use a new connection for every task. We would very much like to reuse the connection, but a safe number of reuses is not known, and we don't have any way to handle the errors that might happen, which may even be database dependent. See: http://bit.ly/94fwdd hj>hhhjh}rz?(h]h]h]h]h]uhNhhh]r{?(h)r|?}r}?(hXtDjango Loader: New config :setting:`CELERY_DB_REUSE_MAX` (max number of tasks to reuse the same database connection)hjx?hhhjh}r~?(h]h]h]h]h]uhMh]r?(hXDjango Loader: New config r?r?}r?(hXDjango Loader: New config hj|?ubj)r?}r?(hX:setting:`CELERY_DB_REUSE_MAX`r?hj|?hhhjh}r?(UreftypeXsettingjjXCELERY_DB_REUSE_MAXU refdomainXstdr?h]h]U refexplicith]h]h]jjuhMh]r?j)r?}r?(hj?h}r?(h]h]r?(jj?X std-settingr?eh]h]h]uhj?h]r?hXCELERY_DB_REUSE_MAXr?r?}r?(hUhj?ubahjubaubhX< (max number of tasks to reuse the same database connection)r?r?}r?(hX< (max number of tasks to reuse the same database connection)hj|?ubeubj)r?}r?(hUh}r?(h]h]h]h]h]uhjx?h]r?(h)r?}r?(hXThe default is to use a new connection for every task. We would very much like to reuse the connection, but a safe number of reuses is not known, and we don't have any way to handle the errors that might happen, which may even be database dependent.r?hj?hhhjh}r?(h]h]h]h]h]uhMh]r?hXThe default is to use a new connection for every task. We would very much like to reuse the connection, but a safe number of reuses is not known, and we don't have any way to handle the errors that might happen, which may even be database dependent.r?r?}r?(hj?hj?ubaubh)r?}r?(hXSee: http://bit.ly/94fwddhj?hhhjh}r?(h]h]h]h]h]uhMh]r?(hXSee: r?r?}r?(hXSee: hj?ubh)r?}r?(hXhttp://bit.ly/94fwddr?h}r?(Urefurij?h]h]h]h]h]uhj?h]r?hXhttp://bit.ly/94fwddr?r?}r?(hUhj?ubahjubeubehjubeubh)r?}r?(hXceleryd: The worker components are now configurable: :setting:`CELERYD_POOL`, :setting:`CELERYD_LISTENER`, :setting:`CELERYD_MEDIATOR`, and :setting:`CELERYD_ETA_SCHEDULER`. The default configuration is as follows: .. code-block:: python CELERYD_POOL = "celery.concurrency.processes.TaskPool" CELERYD_MEDIATOR = "celery.worker.controllers.Mediator" CELERYD_ETA_SCHEDULER = "celery.worker.controllers.ScheduleController" CELERYD_LISTENER = "celery.worker.listener.CarrotListener" The :setting:`CELERYD_POOL` setting makes it easy to swap out the multiprocessing pool with a threaded pool, or how about a twisted/eventlet pool? Consider the competition for the first pool plug-in started! hj>hhhjh}r?(h]h]h]h]h]uhNhhh]r?(h)r?}r?(hXceleryd: The worker components are now configurable: :setting:`CELERYD_POOL`, :setting:`CELERYD_LISTENER`, :setting:`CELERYD_MEDIATOR`, and :setting:`CELERYD_ETA_SCHEDULER`.hj?hhhjh}r?(h]h]h]h]h]uhMh]r?(hX5celeryd: The worker components are now configurable: r?r?}r?(hX5celeryd: The worker components are now configurable: hj?ubj)r?}r?(hX:setting:`CELERYD_POOL`r?hj?hhhjh}r?(UreftypeXsettingjjX CELERYD_POOLU refdomainXstdr?h]h]U refexplicith]h]h]jjuhMh]r?j)r?}r?(hj?h}r?(h]h]r?(jj?X std-settingr?eh]h]h]uhj?h]r?hX CELERYD_POOLr?r?}r?(hUhj?ubahjubaubhX, r?r?}r?(hX, hj?ubj)r?}r?(hX:setting:`CELERYD_LISTENER`r?hj?hhhjh}r?(UreftypeXsettingjjXCELERYD_LISTENERU refdomainXstdr?h]h]U refexplicith]h]h]jjuhMh]r?j)r?}r?(hj?h}r?(h]h]r?(jj?X std-settingr?eh]h]h]uhj?h]r?hXCELERYD_LISTENERr?r?}r?(hUhj?ubahjubaubhX, r?r?}r?(hX, hj?ubj)r?}r?(hX:setting:`CELERYD_MEDIATOR`r?hj?hhhjh}r?(UreftypeXsettingjjXCELERYD_MEDIATORU refdomainXstdr?h]h]U refexplicith]h]h]jjuhMh]r?j)r?}r?(hj?h}r?(h]h]r?(jj?X std-settingr?eh]h]h]uhj?h]r?hXCELERYD_MEDIATORr?r?}r?(hUhj?ubahjubaubhX, and r?r?}r?(hX, and hj?ubj)r?}r?(hX :setting:`CELERYD_ETA_SCHEDULER`r?hj?hhhjh}r?(UreftypeXsettingjjXCELERYD_ETA_SCHEDULERU refdomainXstdr?h]h]U refexplicith]h]h]jjuhMh]r?j)r?}r?(hj?h}r?(h]h]r?(jj?X std-settingr?eh]h]h]uhj?h]r?hXCELERYD_ETA_SCHEDULERr?r?}r?(hUhj?ubahjubaubhX.r@}r@(hX.hj?ubeubj)r@}r@(hUh}r@(h]h]h]h]h]uhj?h]r@(h)r@}r@(hX(The default configuration is as follows:r@hj@hhhjh}r @(h]h]h]h]h]uhMh]r @hX(The default configuration is as follows:r @r @}r @(hj@hj@ubaubjM)r@}r@(hXCELERYD_POOL = "celery.concurrency.processes.TaskPool" CELERYD_MEDIATOR = "celery.worker.controllers.Mediator" CELERYD_ETA_SCHEDULER = "celery.worker.controllers.ScheduleController" CELERYD_LISTENER = "celery.worker.listener.CarrotListener"hj@hhhjPh}r@(jRjSXpythonjTjUh]h]h]h]h]uhMh]r@hXCELERYD_POOL = "celery.concurrency.processes.TaskPool" CELERYD_MEDIATOR = "celery.worker.controllers.Mediator" CELERYD_ETA_SCHEDULER = "celery.worker.controllers.ScheduleController" CELERYD_LISTENER = "celery.worker.listener.CarrotListener"r@r@}r@(hUhj@ubaubh)r@}r@(hXThe :setting:`CELERYD_POOL` setting makes it easy to swap out the multiprocessing pool with a threaded pool, or how about a twisted/eventlet pool?hj@hhhjh}r@(h]h]h]h]h]uhMh]r@(hXThe r@r@}r@(hXThe hj@ubj)r@}r@(hX:setting:`CELERYD_POOL`r@hj@hhhjh}r@(UreftypeXsettingjjX CELERYD_POOLU refdomainXstdr @h]h]U refexplicith]h]h]jjuhMh]r!@j)r"@}r#@(hj@h}r$@(h]h]r%@(jj @X std-settingr&@eh]h]h]uhj@h]r'@hX CELERYD_POOLr(@r)@}r*@(hUhj"@ubahjubaubhXw setting makes it easy to swap out the multiprocessing pool with a threaded pool, or how about a twisted/eventlet pool?r+@r,@}r-@(hXw setting makes it easy to swap out the multiprocessing pool with a threaded pool, or how about a twisted/eventlet pool?hj@ubeubh)r.@}r/@(hX<Consider the competition for the first pool plug-in started!r0@hj@hhhjh}r1@(h]h]h]h]h]uhMh]r2@hX<Consider the competition for the first pool plug-in started!r3@r4@}r5@(hj0@hj.@ubaubehjubeubh)r6@}r7@(hX8Debian init scripts: Use ``-a`` not ``&&`` (Issue #82). hj>hhhjh}r8@(h]h]h]h]h]uhNhhh]r9@h)r:@}r;@(hX7Debian init scripts: Use ``-a`` not ``&&`` (Issue #82).hj6@hhhjh}r<@(h]h]h]h]h]uhMh]r=@(hXDebian init scripts: Use r>@r?@}r@@(hXDebian init scripts: Use hj:@ubj)rA@}rB@(hX``-a``h}rC@(h]h]h]h]h]uhj:@h]rD@hX-arE@rF@}rG@(hUhjA@ubahjubhX not rH@rI@}rJ@(hX not hj:@ubj)rK@}rL@(hX``&&``h}rM@(h]h]h]h]h]uhj:@h]rN@hX&&rO@rP@}rQ@(hUhjK@ubahjubhX (Issue rR@rS@}rT@(hUhj:@ubj)rU@}rV@(hUh}rW@(UreftypejU trackerconfigj U reftargetX82h]h]h]h]h]uhj:@h]rX@j)rY@}rZ@(hX#82h}r[@(h]h]r\@(jjeh]h]h]uhjU@h]r]@hX#82r^@r_@}r`@(hUhjY@ubahjubahjubhX).ra@rb@}rc@(hUhj:@ubeubaubh)rd@}re@(hXDebian init scripts: Now always preserves ``$CELERYD_OPTS`` from the ``/etc/default/celeryd`` and ``/etc/default/celerybeat``. hj>hhhjh}rf@(h]h]h]h]h]uhNhhh]rg@h)rh@}ri@(hX~Debian init scripts: Now always preserves ``$CELERYD_OPTS`` from the ``/etc/default/celeryd`` and ``/etc/default/celerybeat``.hjd@hhhjh}rj@(h]h]h]h]h]uhMh]rk@(hX*Debian init scripts: Now always preserves rl@rm@}rn@(hX*Debian init scripts: Now always preserves hjh@ubj)ro@}rp@(hX``$CELERYD_OPTS``h}rq@(h]h]h]h]h]uhjh@h]rr@hX $CELERYD_OPTSrs@rt@}ru@(hUhjo@ubahjubhX from the rv@rw@}rx@(hX from the hjh@ubj)ry@}rz@(hX``/etc/default/celeryd``h}r{@(h]h]h]h]h]uhjh@h]r|@hX/etc/default/celerydr}@r~@}r@(hUhjy@ubahjubhX and r@r@}r@(hX and hjh@ubj)r@}r@(hX``/etc/default/celerybeat``h}r@(h]h]h]h]h]uhjh@h]r@hX/etc/default/celerybeatr@r@}r@(hUhj@ubahjubhX.r@}r@(hX.hjh@ubeubaubh)r@}r@(hXcelery.beat.Scheduler: Fixed a bug where the schedule was not properly flushed to disk if the schedule had not been properly initialized. hj>hhhjh}r@(h]h]h]h]h]uhNhhh]r@h)r@}r@(hXcelery.beat.Scheduler: Fixed a bug where the schedule was not properly flushed to disk if the schedule had not been properly initialized.r@hj@hhhjh}r@(h]h]h]h]h]uhMh]r@hXcelery.beat.Scheduler: Fixed a bug where the schedule was not properly flushed to disk if the schedule had not been properly initialized.r@r@}r@(hj@hj@ubaubaubh)r@}r@(hXhcelerybeat: Now syncs the schedule to disk when receiving the :sig:`SIGTERM` and :sig:`SIGINT` signals. hj>hhhjh}r@(h]h]h]h]h]uhNhhh]r@h)r@}r@(hXgcelerybeat: Now syncs the schedule to disk when receiving the :sig:`SIGTERM` and :sig:`SIGINT` signals.hj@hhhjh}r@(h]h]h]h]h]uhMh]r@(hX>celerybeat: Now syncs the schedule to disk when receiving the r@r@}r@(hX>celerybeat: Now syncs the schedule to disk when receiving the hj@ubj)r@}r@(hX:sig:`SIGTERM`r@hj@hhhjh}r@(UreftypeXsigjjXSIGTERMU refdomainXstdr@h]h]U refexplicith]h]h]jjuhMh]r@j)r@}r@(hj@h}r@(h]h]r@(jj@Xstd-sigr@eh]h]h]uhj@h]r@hXSIGTERMr@r@}r@(hUhj@ubahjubaubhX and r@r@}r@(hX and hj@ubj)r@}r@(hX :sig:`SIGINT`r@hj@hhhjh}r@(UreftypeXsigjjXSIGINTU refdomainXstdr@h]h]U refexplicith]h]h]jjuhMh]r@j)r@}r@(hj@h}r@(h]h]r@(jj@Xstd-sigr@eh]h]h]uhj@h]r@hXSIGINTr@r@}r@(hUhj@ubahjubaubhX signals.r@r@}r@(hX signals.hj@ubeubaubh)r@}r@(hXCControl commands: Make sure keywords arguments are not in Unicode. hj>hhhjh}r@(h]h]h]h]h]uhNhhh]r@h)r@}r@(hXBControl commands: Make sure keywords arguments are not in Unicode.r@hj@hhhjh}r@(h]h]h]h]h]uhMh]r@hXBControl commands: Make sure keywords arguments are not in Unicode.r@r@}r@(hj@hj@ubaubaubh)r@}r@(hXvETA scheduler: Was missing a logger object, so the scheduler crashed when trying to log that a task had been revoked. hj>hhhjh}r@(h]h]h]h]h]uhNhhh]r@h)r@}r@(hXuETA scheduler: Was missing a logger object, so the scheduler crashed when trying to log that a task had been revoked.r@hj@hhhjh}r@(h]h]h]h]h]uhMh]r@hXuETA scheduler: Was missing a logger object, so the scheduler crashed when trying to log that a task had been revoked.r@r@}r@(hj@hj@ubaubaubh)r@}r@(hXQmanagement.commands.camqadm: Fixed typo ``camqpadm`` -> ``camqadm`` (Issue #83). hj>hhhjh}r@(h]h]h]h]h]uhNhhh]r@h)r@}r@(hXPmanagement.commands.camqadm: Fixed typo ``camqpadm`` -> ``camqadm`` (Issue #83).hj@hhhjh}r@(h]h]h]h]h]uhMh]r@(hX(management.commands.camqadm: Fixed typo r@r@}r@(hX(management.commands.camqadm: Fixed typo hj@ubj)r@}r@(hX ``camqpadm``h}r@(h]h]h]h]h]uhj@h]r@hXcamqpadmr@r@}r@(hUhj@ubahjubhX -> r@r@}r@(hX -> hj@ubj)r@}r@(hX ``camqadm``h}r@(h]h]h]h]h]uhj@h]r@hXcamqadmr@r@}r@(hUhj@ubahjubhX (Issue r@r@}r@(hUhj@ubj)r@}r@(hUh}rA(UreftypejU trackerconfigj U reftargetX83rAh]h]h]h]h]uhj@h]rAj)rA}rA(hX#83h}rA(h]h]rA(jjeh]h]h]uhj@h]rAhX#83rAr A}r A(hUhjAubahjubahjubhX).r Ar A}r A(hUhj@ubeubaubh)rA}rA(hXrPeriodicTask.delta_resolution: Was not working for days and hours, now fixed by rounding to the nearest day/hour. hj>hhhjh}rA(h]h]h]h]h]uhNhhh]rAh)rA}rA(hXqPeriodicTask.delta_resolution: Was not working for days and hours, now fixed by rounding to the nearest day/hour.rAhjAhhhjh}rA(h]h]h]h]h]uhMh]rAhXqPeriodicTask.delta_resolution: Was not working for days and hours, now fixed by rounding to the nearest day/hour.rArA}rA(hjAhjAubaubaubh)rA}rA(hX~Fixed a potential infinite loop in ``BaseAsyncResult.__eq__``, although there is no evidence that it has ever been triggered. hj>hhhjh}rA(h]h]h]h]h]uhNhhh]rAh)rA}rA(hX}Fixed a potential infinite loop in ``BaseAsyncResult.__eq__``, although there is no evidence that it has ever been triggered.hjAhhhjh}r A(h]h]h]h]h]uhMh]r!A(hX#Fixed a potential infinite loop in r"Ar#A}r$A(hX#Fixed a potential infinite loop in hjAubj)r%A}r&A(hX``BaseAsyncResult.__eq__``h}r'A(h]h]h]h]h]uhjAh]r(AhXBaseAsyncResult.__eq__r)Ar*A}r+A(hUhj%AubahjubhX@, although there is no evidence that it has ever been triggered.r,Ar-A}r.A(hX@, although there is no evidence that it has ever been triggered.hjAubeubaubh)r/A}r0A(hXcceleryd: Now handles messages with encoding problems by acking them and emitting an error message. hj>hhhjh}r1A(h]h]h]h]h]uhNhhh]r2Ah)r3A}r4A(hXbceleryd: Now handles messages with encoding problems by acking them and emitting an error message.r5Ahj/Ahhhjh}r6A(h]h]h]h]h]uhMh]r7AhXbceleryd: Now handles messages with encoding problems by acking them and emitting an error message.r8Ar9A}r:A(hj5Ahj3Aubaubaubeubjf)r;A}rhhhjih}r=A(h]h]h]h]h]jkjuhMhhh]ubeubh)r>A}r?A(hUhhhhjn}r@Ah;j;Ashhh}rAA(h]h]h]h]rBA(jUid27rCAeh]rDA(h h;euhMhhjt}rEAjj;Ash]rFA(h)rGA}rHA(hj$hj>Ahhhhh}rIA(h]h]h]h]h]jkjuhMhhh]rJAhX1.0.1rKArLA}rMA(hj$hjGAubaubj)rNA}rOA(hUhj>Ahhhjh}rPA(h]h]h]h]h]uhMhhh]rQAj)rRA}rSA(hUhjNAhhhjh}rTA(h]h]h]h]h]uhMhhh]rUA(j)rVA}rWA(hX release-daterXAh}rYA(h]h]h]h]h]uhjRAh]rZAhX release-dater[Ar\A}r]A(hjXAhjVAubahjubj)r^A}r_A(hX2010-02-24 07:05 P.M CET h}r`A(h]h]h]h]h]uhjRAh]raAh)rbA}rcA(hX2010-02-24 07:05 P.M CETrdAhj^Ahhhjh}reA(h]h]h]h]h]uhMh]rfAhX2010-02-24 07:05 P.M CETrgArhA}riA(hjdAhjbAubaubahjubeubaubh)rjA}rkA(hUhj>Ahhhhh}rlA(jX*h]h]h]h]h]uhMhhh]rmA(h)rnA}roA(hX-Tasks are now acknowledged early instead of late. This is done because messages can only be acknowledged within the same connection channel, so if the connection is lost we would have to refetch the message again to acknowledge it. This might or might not affect you, but mostly those running tasks with a really long execution time are affected, as all tasks that has made it all the way into the pool needs to be executed before the worker can safely terminate (this is at most the number of pool workers, multiplied by the :setting:`CELERYD_PREFETCH_MULTIPLIER` setting.) We multiply the prefetch count by default to increase the performance at times with bursts of tasks with a short execution time. If this doesn't apply to your use case, you should be able to set the prefetch multiplier to zero, without sacrificing performance. .. note:: A patch to :mod:`multiprocessing` is currently being worked on, this patch would enable us to use a better solution, and is scheduled for inclusion in the ``2.0.0`` release. hjjAhhhjh}rpA(h]h]h]h]h]uhNhhh]rqA(h)rrA}rsA(hX1Tasks are now acknowledged early instead of late.rtAhjnAhhhjh}ruA(h]h]h]h]h]uhMh]rvAhX1Tasks are now acknowledged early instead of late.rwArxA}ryA(hjtAhjrAubaubj)rzA}r{A(hUh}r|A(h]h]h]h]h]uhjnAh]r}A(h)r~A}rA(hXThis is done because messages can only be acknowledged within the same connection channel, so if the connection is lost we would have to refetch the message again to acknowledge it.rAhjzAhhhjh}rA(h]h]h]h]h]uhMh]rAhXThis is done because messages can only be acknowledged within the same connection channel, so if the connection is lost we would have to refetch the message again to acknowledge it.rArA}rA(hjAhj~Aubaubh)rA}rA(hXVThis might or might not affect you, but mostly those running tasks with a really long execution time are affected, as all tasks that has made it all the way into the pool needs to be executed before the worker can safely terminate (this is at most the number of pool workers, multiplied by the :setting:`CELERYD_PREFETCH_MULTIPLIER` setting.)hjzAhhhjh}rA(h]h]h]h]h]uhMh]rA(hX&This might or might not affect you, but mostly those running tasks with a really long execution time are affected, as all tasks that has made it all the way into the pool needs to be executed before the worker can safely terminate (this is at most the number of pool workers, multiplied by the rArA}rA(hX&This might or might not affect you, but mostly those running tasks with a really long execution time are affected, as all tasks that has made it all the way into the pool needs to be executed before the worker can safely terminate (this is at most the number of pool workers, multiplied by the hjAubj)rA}rA(hX&:setting:`CELERYD_PREFETCH_MULTIPLIER`rAhjAhhhjh}rA(UreftypeXsettingjjXCELERYD_PREFETCH_MULTIPLIERU refdomainXstdrAh]h]U refexplicith]h]h]jjuhMh]rAj)rA}rA(hjAh}rA(h]h]rA(jjAX std-settingrAeh]h]h]uhjAh]rAhXCELERYD_PREFETCH_MULTIPLIERrArA}rA(hUhjAubahjubaubhX setting.)rArA}rA(hX setting.)hjAubeubh)rA}rA(hXWe multiply the prefetch count by default to increase the performance at times with bursts of tasks with a short execution time. If this doesn't apply to your use case, you should be able to set the prefetch multiplier to zero, without sacrificing performance.rAhjzAhhhjh}rA(h]h]h]h]h]uhMh]rAhXWe multiply the prefetch count by default to increase the performance at times with bursts of tasks with a short execution time. If this doesn't apply to your use case, you should be able to set the prefetch multiplier to zero, without sacrificing performance.rArA}rA(hjAhjAubaubj;)rA}rA(hXA patch to :mod:`multiprocessing` is currently being worked on, this patch would enable us to use a better solution, and is scheduled for inclusion in the ``2.0.0`` release.h}rA(h]h]h]h]h]uhjzAh]rAh)rA}rA(hXA patch to :mod:`multiprocessing` is currently being worked on, this patch would enable us to use a better solution, and is scheduled for inclusion in the ``2.0.0`` release.hjAhhhjh}rA(h]h]h]h]h]uhMh]rA(hX A patch to rArA}rA(hX A patch to hjAubj)rA}rA(hX:mod:`multiprocessing`rAhjAhhhjh}rA(UreftypeXmodjjXmultiprocessingU refdomainXpyrAh]h]U refexplicith]h]h]jjj Nj NuhMh]rAj)rA}rA(hjAh}rA(h]h]rA(jjAXpy-modrAeh]h]h]uhjAh]rAhXmultiprocessingrArA}rA(hUhjAubahjubaubhXz is currently being worked on, this patch would enable us to use a better solution, and is scheduled for inclusion in the rArA}rA(hXz is currently being worked on, this patch would enable us to use a better solution, and is scheduled for inclusion in the hjAubj)rA}rA(hX ``2.0.0``h}rA(h]h]h]h]h]uhjAh]rAhX2.0.0rArA}rA(hUhjAubahjubhX release.rArA}rA(hX release.hjAubeubahj*;ubehjubeubh)rA}rA(hXHceleryd now shutdowns cleanly when receiving the :sig:`SIGTERM` signal. hjjAhhhjh}rA(h]h]h]h]h]uhNhhh]rAh)rA}rA(hXGceleryd now shutdowns cleanly when receiving the :sig:`SIGTERM` signal.hjAhhhjh}rA(h]h]h]h]h]uhMh]rA(hX1celeryd now shutdowns cleanly when receiving the rArA}rA(hX1celeryd now shutdowns cleanly when receiving the hjAubj)rA}rA(hX:sig:`SIGTERM`rAhjAhhhjh}rA(UreftypeXsigjjXSIGTERMU refdomainXstdrAh]h]U refexplicith]h]h]jjuhMh]rAj)rA}rA(hjAh}rA(h]h]rA(jjAXstd-sigrAeh]h]h]uhjAh]rAhXSIGTERMrArA}rA(hUhjAubahjubaubhX signal.rArA}rA(hX signal.hjAubeubaubh)rA}rA(hXceleryd now does a cold shutdown if the :sig:`SIGINT` signal is received (Ctrl+C), this means it tries to terminate as soon as possible. hjjAhhhjh}rA(h]h]h]h]h]uhNhhh]rAh)rA}rA(hXceleryd now does a cold shutdown if the :sig:`SIGINT` signal is received (Ctrl+C), this means it tries to terminate as soon as possible.hjAhhhjh}rA(h]h]h]h]h]uhMh]rA(hX(celeryd now does a cold shutdown if the rArA}rA(hX(celeryd now does a cold shutdown if the hjAubj)rA}rA(hX :sig:`SIGINT`rAhjAhhhjh}rA(UreftypeXsigjjXSIGINTU refdomainXstdrAh]h]U refexplicith]h]h]jjuhMh]rAj)rA}rA(hjAh}rA(h]h]rA(jjAXstd-sigrBeh]h]h]uhjAh]rBhXSIGINTrBrB}rB(hUhjAubahjubaubhXS signal is received (Ctrl+C), this means it tries to terminate as soon as possible.rBrB}rB(hXS signal is received (Ctrl+C), this means it tries to terminate as soon as possible.hjAubeubaubh)rB}r B(hXzCaching of results now moved to the base backend classes, so no need to implement this functionality in the base classes. hjjAhhhjh}r B(h]h]h]h]h]uhNhhh]r Bh)r B}r B(hXyCaching of results now moved to the base backend classes, so no need to implement this functionality in the base classes.rBhjBhhhjh}rB(h]h]h]h]h]uhMh]rBhXyCaching of results now moved to the base backend classes, so no need to implement this functionality in the base classes.rBrB}rB(hjBhj Bubaubaubh)rB}rB(hXCaches are now also limited in size, so their memory usage doesn't grow out of control. You can set the maximum number of results the cache can hold using the :setting:`CELERY_MAX_CACHED_RESULTS` setting (the default is five thousand results). In addition, you can refetch already retrieved results using ``backend.reload_task_result`` + ``backend.reload_taskset_result`` (that's for those who want to send results incrementally). hjjAhhhjh}rB(h]h]h]h]h]uhNhhh]rB(h)rB}rB(hXWCaches are now also limited in size, so their memory usage doesn't grow out of control.rBhjBhhhjh}rB(h]h]h]h]h]uhMh]rBhXWCaches are now also limited in size, so their memory usage doesn't grow out of control.rBrB}rB(hjBhjBubaubj)r B}r!B(hUh}r"B(h]h]h]h]h]uhjBh]r#Bh)r$B}r%B(hXVYou can set the maximum number of results the cache can hold using the :setting:`CELERY_MAX_CACHED_RESULTS` setting (the default is five thousand results). In addition, you can refetch already retrieved results using ``backend.reload_task_result`` + ``backend.reload_taskset_result`` (that's for those who want to send results incrementally).hj Bhhhjh}r&B(h]h]h]h]h]uhMh]r'B(hXGYou can set the maximum number of results the cache can hold using the r(Br)B}r*B(hXGYou can set the maximum number of results the cache can hold using the hj$Bubj)r+B}r,B(hX$:setting:`CELERY_MAX_CACHED_RESULTS`r-Bhj$Bhhhjh}r.B(UreftypeXsettingjjXCELERY_MAX_CACHED_RESULTSU refdomainXstdr/Bh]h]U refexplicith]h]h]jjuhMh]r0Bj)r1B}r2B(hj-Bh}r3B(h]h]r4B(jj/BX std-settingr5Beh]h]h]uhj+Bh]r6BhXCELERY_MAX_CACHED_RESULTSr7Br8B}r9B(hUhj1BubahjubaubhXn setting (the default is five thousand results). In addition, you can refetch already retrieved results using r:Br;B}rB(hX``backend.reload_task_result``h}r?B(h]h]h]h]h]uhj$Bh]r@BhXbackend.reload_task_resultrABrBB}rCB(hUhj=BubahjubhX + rDBrEB}rFB(hX + hj$Bubj)rGB}rHB(hX!``backend.reload_taskset_result``h}rIB(h]h]h]h]h]uhj$Bh]rJBhXbackend.reload_taskset_resultrKBrLB}rMB(hUhjGBubahjubhX; (that's for those who want to send results incrementally).rNBrOB}rPB(hX; (that's for those who want to send results incrementally).hj$Bubeubahjubeubh)rQB}rRB(hX``celeryd`` now works on Windows again. .. warning:: If you're using Celery with Django, you can't use ``project.settings`` as the settings module name, but the following should work:: $ python manage.py celeryd --settings=settings hjjAhhhjh}rSB(h]h]h]h]h]uhNhhh]rTB(h)rUB}rVB(hX'``celeryd`` now works on Windows again.hjQBhhhjh}rWB(h]h]h]h]h]uhMh]rXB(j)rYB}rZB(hX ``celeryd``h}r[B(h]h]h]h]h]uhjUBh]r\BhXcelerydr]Br^B}r_B(hUhjYBubahjubhX now works on Windows again.r`BraB}rbB(hX now works on Windows again.hjUBubeubj)rcB}rdB(hUh}reB(h]h]h]h]h]uhjQBh]rfBcdocutils.nodes warning rgB)rhB}riB(hXIf you're using Celery with Django, you can't use ``project.settings`` as the settings module name, but the following should work:: $ python manage.py celeryd --settings=settingsh}rjB(h]h]h]h]h]uhjcBh]rkB(h)rlB}rmB(hXIf you're using Celery with Django, you can't use ``project.settings`` as the settings module name, but the following should work::hjhBhhhjh}rnB(h]h]h]h]h]uhMh]roB(hX2If you're using Celery with Django, you can't use rpBrqB}rrB(hX2If you're using Celery with Django, you can't use hjlBubj)rsB}rtB(hX``project.settings``h}ruB(h]h]h]h]h]uhjlBh]rvBhXproject.settingsrwBrxB}ryB(hUhjsBubahjubhX< as the settings module name, but the following should work:rzBr{B}r|B(hX< as the settings module name, but the following should work:hjlBubeubjM)r}B}r~B(hX.$ python manage.py celeryd --settings=settingshjhBhhhjPh}rB(jTjUh]h]h]h]h]uhMh]rBhX.$ python manage.py celeryd --settings=settingsrBrB}rB(hUhj}BubaubehUwarningrBubahjubeubh)rB}rB(hXExecution: ``.messaging.TaskPublisher.send_task`` now incorporates all the functionality apply_async previously did. Like converting countdowns to eta, so :func:`celery.execute.apply_async` is now simply a convenient front-end to :meth:`celery.messaging.TaskPublisher.send_task`, using the task classes default options. Also :func:`celery.execute.send_task` has been introduced, which can apply tasks using just the task name (useful if the client does not have the destination task in its task registry). Example: >>> from celery.execute import send_task >>> result = send_task("celery.ping", args=[], kwargs={}) >>> result.get() 'pong' hjjAhhhjh}rB(h]h]h]h]h]uhNhhh]rB(h)rB}rB(hXtExecution: ``.messaging.TaskPublisher.send_task`` now incorporates all the functionality apply_async previously did.hjBhhhjh}rB(h]h]h]h]h]uhMh]rB(hX Execution: rBrB}rB(hX Execution: hjBubj)rB}rB(hX&``.messaging.TaskPublisher.send_task``h}rB(h]h]h]h]h]uhjBh]rBhX".messaging.TaskPublisher.send_taskrBrB}rB(hUhjBubahjubhXC now incorporates all the functionality apply_async previously did.rBrB}rB(hXC now incorporates all the functionality apply_async previously did.hjBubeubj)rB}rB(hUh}rB(h]h]h]h]h]uhjBh]rB(h)rB}rB(hXLike converting countdowns to eta, so :func:`celery.execute.apply_async` is now simply a convenient front-end to :meth:`celery.messaging.TaskPublisher.send_task`, using the task classes default options.hjBhhhjh}rB(h]h]h]h]h]uhMh]rB(hX&Like converting countdowns to eta, so rBrB}rB(hX&Like converting countdowns to eta, so hjBubj)rB}rB(hX":func:`celery.execute.apply_async`rBhjBhhhjh}rB(UreftypeXfuncjjXcelery.execute.apply_asyncU refdomainXpyrBh]h]U refexplicith]h]h]jjj Nj NuhMh]rBj)rB}rB(hjBh}rB(h]h]rB(jjBXpy-funcrBeh]h]h]uhjBh]rBhXcelery.execute.apply_async()rBrB}rB(hUhjBubahjubaubhX) is now simply a convenient front-end to rBrB}rB(hX) is now simply a convenient front-end to hjBubj)rB}rB(hX0:meth:`celery.messaging.TaskPublisher.send_task`rBhjBhhhjh}rB(UreftypeXmethjjX(celery.messaging.TaskPublisher.send_taskU refdomainXpyrBh]h]U refexplicith]h]h]jjj Nj NuhMh]rBj)rB}rB(hjBh}rB(h]h]rB(jjBXpy-methrBeh]h]h]uhjBh]rBhX*celery.messaging.TaskPublisher.send_task()rBrB}rB(hUhjBubahjubaubhX), using the task classes default options.rBrB}rB(hX), using the task classes default options.hjBubeubh)rB}rB(hXAlso :func:`celery.execute.send_task` has been introduced, which can apply tasks using just the task name (useful if the client does not have the destination task in its task registry).hjBhhhjh}rB(h]h]h]h]h]uhMh]rB(hXAlso rBrB}rB(hXAlso hjBubj)rB}rB(hX :func:`celery.execute.send_task`rBhjBhhhjh}rB(UreftypeXfuncjjXcelery.execute.send_taskU refdomainXpyrBh]h]U refexplicith]h]h]jjj Nj NuhMh]rBj)rB}rB(hjBh}rB(h]h]rB(jjBXpy-funcrBeh]h]h]uhjBh]rBhXcelery.execute.send_task()rBrB}rB(hUhjBubahjubaubhX has been introduced, which can apply tasks using just the task name (useful if the client does not have the destination task in its task registry).rBrB}rB(hX has been introduced, which can apply tasks using just the task name (useful if the client does not have the destination task in its task registry).hjBubeubh)rB}rB(hXExample:rBhjBhhhjh}rB(h]h]h]h]h]uhMh]rBhXExample:rBrB}rB(hjBhjBubaubjh)rB}rB(hXz>>> from celery.execute import send_task >>> result = send_task("celery.ping", args=[], kwargs={}) >>> result.get() 'pong'h}rB(jTjUh]h]h]h]h]uhjBh]rBhXz>>> from celery.execute import send_task >>> result = send_task("celery.ping", args=[], kwargs={}) >>> result.get() 'pong'rBrB}rB(hUhjBubahjpubehjubeubh)rB}rB(hXp``camqadm``: This is a new utility for command line access to the AMQP API. Excellent for deleting queues/bindings/exchanges, experimentation and testing:: $ camqadm 1> help Gives an interactive shell, type ``help`` for a list of commands. When using Django, use the management command instead:: $ python manage.py camqadm 1> help hjjAhhhjh}rB(h]h]h]h]h]uhNhhh]rB(h)rB}rB(hXK``camqadm``: This is a new utility for command line access to the AMQP API.hjBhhhjh}rB(h]h]h]h]h]uhM h]rB(j)rB}rB(hX ``camqadm``h}rB(h]h]h]h]h]uhjBh]rBhXcamqadmrBrB}rB(hUhjBubahjubhX@: This is a new utility for command line access to the AMQP API.rCrC}rC(hX@: This is a new utility for command line access to the AMQP API.hjBubeubj)rC}rC(hUh}rC(h]h]h]h]h]uhjBh]rC(h)rC}rC(hXOExcellent for deleting queues/bindings/exchanges, experimentation and testing::hjChhhjh}r C(h]h]h]h]h]uhM h]r ChXNExcellent for deleting queues/bindings/exchanges, experimentation and testing:r Cr C}r C(hXNExcellent for deleting queues/bindings/exchanges, experimentation and testing:hjCubaubjM)rC}rC(hX$ camqadm 1> helphjChjPh}rC(jTjUh]h]h]h]h]uhM h]rChX$ camqadm 1> helprCrC}rC(hUhjCubaubh)rC}rC(hXAGives an interactive shell, type ``help`` for a list of commands.hjChhhjh}rC(h]h]h]h]h]uhM h]rC(hX!Gives an interactive shell, type rCrC}rC(hX!Gives an interactive shell, type hjCubj)rC}rC(hX``help``h}rC(h]h]h]h]h]uhjCh]rChXhelpr Cr!C}r"C(hUhjCubahjubhX for a list of commands.r#Cr$C}r%C(hX for a list of commands.hjCubeubh)r&C}r'C(hX7When using Django, use the management command instead::hjChhhjh}r(C(h]h]h]h]h]uhM h]r)ChX6When using Django, use the management command instead:r*Cr+C}r,C(hX6When using Django, use the management command instead:hj&CubaubjM)r-C}r.C(hX"$ python manage.py camqadm 1> helphjChjPh}r/C(jTjUh]h]h]h]h]uhM h]r0ChX"$ python manage.py camqadm 1> helpr1Cr2C}r3C(hUhj-Cubaubehjubeubh)r4C}r5C(hXMRedis result backend: To conform to recent Redis API changes, the following settings has been deprecated: * ``REDIS_TIMEOUT`` * ``REDIS_CONNECT_RETRY`` These will emit a ``DeprecationWarning`` if used. A ``REDIS_PASSWORD`` setting has been added, so you can use the new simple authentication mechanism in Redis. hjjAhhhjh}r6C(h]h]h]h]h]uhNhhh]r7C(h)r8C}r9C(hXiRedis result backend: To conform to recent Redis API changes, the following settings has been deprecated:r:Chj4Chhhjh}r;C(h]h]h]h]h]uhM h]rC}r?C(hj:Chj8Cubaubj)r@C}rAC(hUh}rBC(h]h]h]h]h]uhj4Ch]rCC(j)rDC}rEC(hUh}rFC(h]h]h]h]h]uhj@Ch]rGCh)rHC}rIC(hUh}rJC(jX*h]h]h]h]h]uhjDCh]rKC(h)rLC}rMC(hX``REDIS_TIMEOUT``rNCh}rOC(h]h]h]h]h]uhjHCh]rPCh)rQC}rRC(hjNChjLChhhjh}rSC(h]h]h]h]h]uhM h]rTCj)rUC}rVC(hjNCh}rWC(h]h]h]h]h]uhjQCh]rXChX REDIS_TIMEOUTrYCrZC}r[C(hUhjUCubahjubaubahjubh)r\C}r]C(hX``REDIS_CONNECT_RETRY`` h}r^C(h]h]h]h]h]uhjHCh]r_Ch)r`C}raC(hX``REDIS_CONNECT_RETRY``rbChj\Chhhjh}rcC(h]h]h]h]h]uhM h]rdCj)reC}rfC(hjbCh}rgC(h]h]h]h]h]uhj`Ch]rhChXREDIS_CONNECT_RETRYriCrjC}rkC(hUhjeCubahjubaubahjubehhubahjubh)rlC}rmC(hX1These will emit a ``DeprecationWarning`` if used.hj@Chhhjh}rnC(h]h]h]h]h]uhM h]roC(hXThese will emit a rpCrqC}rrC(hXThese will emit a hjlCubj)rsC}rtC(hX``DeprecationWarning``h}ruC(h]h]h]h]h]uhjlCh]rvChXDeprecationWarningrwCrxC}ryC(hUhjsCubahjubhX if used.rzCr{C}r|C(hX if used.hjlCubeubh)r}C}r~C(hXmA ``REDIS_PASSWORD`` setting has been added, so you can use the new simple authentication mechanism in Redis.hj@Chhhjh}rC(h]h]h]h]h]uhM h]rC(hXA rCrC}rC(hXA hj}Cubj)rC}rC(hX``REDIS_PASSWORD``h}rC(h]h]h]h]h]uhj}Ch]rChXREDIS_PASSWORDrCrC}rC(hUhjCubahjubhXY setting has been added, so you can use the new simple authentication mechanism in Redis.rCrC}rC(hXY setting has been added, so you can use the new simple authentication mechanism in Redis.hj}Cubeubehjubeubh)rC}rC(hX|The redis result backend no longer calls ``SAVE`` when disconnecting, as this is apparently better handled by Redis itself. hjjAhhhjh}rC(h]h]h]h]h]uhNhhh]rCh)rC}rC(hX{The redis result backend no longer calls ``SAVE`` when disconnecting, as this is apparently better handled by Redis itself.hjChhhjh}rC(h]h]h]h]h]uhM h]rC(hX)The redis result backend no longer calls rCrC}rC(hX)The redis result backend no longer calls hjCubj)rC}rC(hX``SAVE``h}rC(h]h]h]h]h]uhjCh]rChXSAVErCrC}rC(hUhjCubahjubhXJ when disconnecting, as this is apparently better handled by Redis itself.rCrC}rC(hXJ when disconnecting, as this is apparently better handled by Redis itself.hjCubeubaubh)rC}rC(hX`If ``settings.DEBUG`` is on, celeryd now warns about the possible memory leak it can result in. hjjAhhhjh}rC(h]h]h]h]h]uhNhhh]rCh)rC}rC(hX_If ``settings.DEBUG`` is on, celeryd now warns about the possible memory leak it can result in.hjChhhjh}rC(h]h]h]h]h]uhM# h]rC(hXIf rCrC}rC(hXIf hjCubj)rC}rC(hX``settings.DEBUG``h}rC(h]h]h]h]h]uhjCh]rChXsettings.DEBUGrCrC}rC(hUhjCubahjubhXJ is on, celeryd now warns about the possible memory leak it can result in.rCrC}rC(hXJ is on, celeryd now warns about the possible memory leak it can result in.hjCubeubaubh)rC}rC(hXEThe ETA scheduler now sleeps at most two seconds between iterations. hjjAhhhjh}rC(h]h]h]h]h]uhNhhh]rCh)rC}rC(hXDThe ETA scheduler now sleeps at most two seconds between iterations.rChjChhhjh}rC(h]h]h]h]h]uhM& h]rChXDThe ETA scheduler now sleeps at most two seconds between iterations.rCrC}rC(hjChjCubaubaubh)rC}rC(hXThe ETA scheduler now deletes any revoked tasks it might encounter. As revokes are not yet persistent, this is done to make sure the task is revoked even though it's currently being hold because its eta is e.g. a week into the future. hjjAhhhjh}rC(h]h]h]h]h]uhNhhh]rC(h)rC}rC(hXCThe ETA scheduler now deletes any revoked tasks it might encounter.rChjChhhjh}rC(h]h]h]h]h]uhM( h]rChXCThe ETA scheduler now deletes any revoked tasks it might encounter.rCrC}rC(hjChjCubaubj)rC}rC(hUh}rC(h]h]h]h]h]uhjCh]rCh)rC}rC(hXAs revokes are not yet persistent, this is done to make sure the task is revoked even though it's currently being hold because its eta is e.g. a week into the future.rChjChhhjh}rC(h]h]h]h]h]uhM* h]rChXAs revokes are not yet persistent, this is done to make sure the task is revoked even though it's currently being hold because its eta is e.g. a week into the future.rCrC}rC(hjChjCubaubahjubeubh)rC}rC(hXThe ``task_id`` argument is now respected even if the task is executed eagerly (either using apply, or :setting:`CELERY_ALWAYS_EAGER`). hjjAhhhjh}rC(h]h]h]h]h]uhNhhh]rCh)rC}rC(hXThe ``task_id`` argument is now respected even if the task is executed eagerly (either using apply, or :setting:`CELERY_ALWAYS_EAGER`).hjChhhjh}rC(h]h]h]h]h]uhM. h]rC(hXThe rCrC}rC(hXThe hjCubj)rC}rC(hX ``task_id``h}rC(h]h]h]h]h]uhjCh]rChXtask_idrCrC}rC(hUhjCubahjubhXX argument is now respected even if the task is executed eagerly (either using apply, or rCrC}rC(hXX argument is now respected even if the task is executed eagerly (either using apply, or hjCubj)rC}rC(hX:setting:`CELERY_ALWAYS_EAGER`rChjChhhjh}rC(UreftypeXsettingjjXCELERY_ALWAYS_EAGERU refdomainXstdrCh]h]U refexplicith]h]h]jjuhM. h]rCj)rC}rC(hjCh}rC(h]h]rC(jjCX std-settingrCeh]h]h]uhjCh]rChXCELERY_ALWAYS_EAGERrCrC}rC(hUhjCubahjubaubhX).rDrD}rD(hX).hjCubeubaubh)rD}rD(hX@The internal queues are now cleared if the connection is reset. hjjAhhhjh}rD(h]h]h]h]h]uhNhhh]rDh)rD}rD(hX?The internal queues are now cleared if the connection is reset.r DhjDhhhjh}r D(h]h]h]h]h]uhM1 h]r DhX?The internal queues are now cleared if the connection is reset.r Dr D}rD(hj DhjDubaubaubh)rD}rD(hXNew magic keyword argument: ``delivery_info``. Used by retry() to resend the task to its original destination using the same exchange/routing_key. hjjAhhhjh}rD(h]h]h]h]h]uhNhhh]rD(h)rD}rD(hX.New magic keyword argument: ``delivery_info``.hjDhhhjh}rD(h]h]h]h]h]uhM3 h]rD(hXNew magic keyword argument: rDrD}rD(hXNew magic keyword argument: hjDubj)rD}rD(hX``delivery_info``h}rD(h]h]h]h]h]uhjDh]rDhX delivery_inforDrD}r D(hUhjDubahjubhX.r!D}r"D(hX.hjDubeubj)r#D}r$D(hUh}r%D(h]h]h]h]h]uhjDh]r&Dh)r'D}r(D(hXcUsed by retry() to resend the task to its original destination using the same exchange/routing_key.r)Dhj#Dhhhjh}r*D(h]h]h]h]h]uhM5 h]r+DhXcUsed by retry() to resend the task to its original destination using the same exchange/routing_key.r,Dr-D}r.D(hj)Dhj'Dubaubahjubeubh)r/D}r0D(hXTEvents: Fields was not passed by `.send()` (fixes the UUID key errors in celerymon) hjjAhhhjh}r1D(h]h]h]h]h]uhNhhh]r2Dh)r3D}r4D(hXSEvents: Fields was not passed by `.send()` (fixes the UUID key errors in celerymon)hj/Dhhhjh}r5D(h]h]h]h]h]uhM8 h]r6D(hX!Events: Fields was not passed by r7Dr8D}r9D(hX!Events: Fields was not passed by hj3Dubj()r:D}r;D(hX `.send()`h}rDr?D}r@D(hUhj:Dubahj0ubhX) (fixes the UUID key errors in celerymon)rADrBD}rCD(hX) (fixes the UUID key errors in celerymon)hj3Dubeubaubh)rDD}rED(hXAdded ``--schedule``/``-s`` option to celeryd, so it is possible to specify a custom schedule filename when using an embedded celerybeat server (the ``-B``/``--beat``) option. hjjAhhhjh}rFD(h]h]h]h]h]uhNhhh]rGDh)rHD}rID(hXAdded ``--schedule``/``-s`` option to celeryd, so it is possible to specify a custom schedule filename when using an embedded celerybeat server (the ``-B``/``--beat``) option.hjDDhhhjh}rJD(h]h]h]h]h]uhM; h]rKD(hXAdded rLDrMD}rND(hXAdded hjHDubj)rOD}rPD(hX``--schedule``h}rQD(h]h]h]h]h]uhjHDh]rRDhX --schedulerSDrTD}rUD(hUhjODubahjubhX/rVD}rWD(hX/hjHDubj)rXD}rYD(hX``-s``h}rZD(h]h]h]h]h]uhjHDh]r[DhX-sr\Dr]D}r^D(hUhjXDubahjubhXz option to celeryd, so it is possible to specify a custom schedule filename when using an embedded celerybeat server (the r_Dr`D}raD(hXz option to celeryd, so it is possible to specify a custom schedule filename when using an embedded celerybeat server (the hjHDubj)rbD}rcD(hX``-B``h}rdD(h]h]h]h]h]uhjHDh]reDhX-BrfDrgD}rhD(hUhjbDubahjubhX/riD}rjD(hX/hjHDubj)rkD}rlD(hX ``--beat``h}rmD(h]h]h]h]h]uhjHDh]rnDhX--beatroDrpD}rqD(hUhjkDubahjubhX ) option.rrDrsD}rtD(hX ) option.hjHDubeubaubh)ruD}rvD(hX<Better Python 2.4 compatibility. The test suite now passes. hjjAhhhjh}rwD(h]h]h]h]h]uhNhhh]rxDh)ryD}rzD(hX;Better Python 2.4 compatibility. The test suite now passes.r{DhjuDhhhjh}r|D(h]h]h]h]h]uhM? h]r}DhX;Better Python 2.4 compatibility. The test suite now passes.r~DrD}rD(hj{DhjyDubaubaubh)rD}rD(hXktask decorators: Now preserve docstring as ``cls.__doc__``, (was previously copied to ``cls.run.__doc__``) hjjAhhhjh}rD(h]h]h]h]h]uhNhhh]rDh)rD}rD(hXjtask decorators: Now preserve docstring as ``cls.__doc__``, (was previously copied to ``cls.run.__doc__``)hjDhhhjh}rD(h]h]h]h]h]uhMA h]rD(hX+task decorators: Now preserve docstring as rDrD}rD(hX+task decorators: Now preserve docstring as hjDubj)rD}rD(hX``cls.__doc__``h}rD(h]h]h]h]h]uhjDh]rDhX cls.__doc__rDrD}rD(hUhjDubahjubhX, (was previously copied to rDrD}rD(hX, (was previously copied to hjDubj)rD}rD(hX``cls.run.__doc__``h}rD(h]h]h]h]h]uhjDh]rDhXcls.run.__doc__rDrD}rD(hUhjDubahjubhX)rD}rD(hX)hjDubeubaubh)rD}rD(hXThe ``testproj`` directory has been renamed to ``tests`` and we're now using ``nose`` + ``django-nose`` for test discovery, and ``unittest2`` for test cases. hjjAhhhjh}rD(h]h]h]h]h]uhNhhh]rDh)rD}rD(hXThe ``testproj`` directory has been renamed to ``tests`` and we're now using ``nose`` + ``django-nose`` for test discovery, and ``unittest2`` for test cases.hjDhhhjh}rD(h]h]h]h]h]uhMD h]rD(hXThe rDrD}rD(hXThe hjDubj)rD}rD(hX ``testproj``h}rD(h]h]h]h]h]uhjDh]rDhXtestprojrDrD}rD(hUhjDubahjubhX directory has been renamed to rDrD}rD(hX directory has been renamed to hjDubj)rD}rD(hX ``tests``h}rD(h]h]h]h]h]uhjDh]rDhXtestsrDrD}rD(hUhjDubahjubhX and we're now using rDrD}rD(hX and we're now using hjDubj)rD}rD(hX``nose``h}rD(h]h]h]h]h]uhjDh]rDhXnoserDrD}rD(hUhjDubahjubhX + rDrD}rD(hX + hjDubj)rD}rD(hX``django-nose``h}rD(h]h]h]h]h]uhjDh]rDhX django-noserDrD}rD(hUhjDubahjubhX for test discovery, and rDrD}rD(hX for test discovery, and hjDubj)rD}rD(hX ``unittest2``h}rD(h]h]h]h]h]uhjDh]rDhX unittest2rDrD}rD(hUhjDubahjubhX for test cases.rDrD}rD(hX for test cases.hjDubeubaubh)rD}rD(hXBNew pip requirements files available in ``contrib/requirements``. hjjAhhhjh}rD(h]h]h]h]h]uhNhhh]rDh)rD}rD(hXANew pip requirements files available in ``contrib/requirements``.hjDhhhjh}rD(h]h]h]h]h]uhMH h]rD(hX(New pip requirements files available in rDrD}rD(hX(New pip requirements files available in hjDubj)rD}rD(hX``contrib/requirements``h}rD(h]h]h]h]h]uhjDh]rDhXcontrib/requirementsrDrD}rD(hUhjDubahjubhX.rD}rD(hX.hjDubeubaubh)rD}rD(hX=TaskPublisher: Declarations are now done once (per process). hjjAhhhjh}rD(h]h]h]h]h]uhNhhh]rDh)rD}rD(hX<TaskPublisher: Declarations are now done once (per process).rDhjDhhhjh}rD(h]h]h]h]h]uhMJ h]rDhX<TaskPublisher: Declarations are now done once (per process).rDrD}rD(hjDhjDubaubaubh)rD}rD(hXAdded ``Task.delivery_mode`` and the :setting:`CELERY_DEFAULT_DELIVERY_MODE` setting. These can be used to mark messages non-persistent (i.e. so they are lost if the broker is restarted). hjjAhhhjh}rD(h]h]h]h]h]uhNhhh]rD(h)rE}rE(hXUAdded ``Task.delivery_mode`` and the :setting:`CELERY_DEFAULT_DELIVERY_MODE` setting.hjDhhhjh}rE(h]h]h]h]h]uhML h]rE(hXAdded rErE}rE(hXAdded hjEubj)rE}rE(hX``Task.delivery_mode``h}r E(h]h]h]h]h]uhjEh]r EhXTask.delivery_moder Er E}r E(hUhjEubahjubhX and the rErE}rE(hX and the hjEubj)rE}rE(hX':setting:`CELERY_DEFAULT_DELIVERY_MODE`rEhjEhhhjh}rE(UreftypeXsettingjjXCELERY_DEFAULT_DELIVERY_MODEU refdomainXstdrEh]h]U refexplicith]h]h]jjuhML h]rEj)rE}rE(hjEh}rE(h]h]rE(jjEX std-settingrEeh]h]h]uhjEh]rEhXCELERY_DEFAULT_DELIVERY_MODErErE}rE(hUhjEubahjubaubhX setting.r Er!E}r"E(hX setting.hjEubeubj)r#E}r$E(hUh}r%E(h]h]h]h]h]uhjDh]r&Eh)r'E}r(E(hXeThese can be used to mark messages non-persistent (i.e. so they are lost if the broker is restarted).r)Ehj#Ehhhjh}r*E(h]h]h]h]h]uhMO h]r+EhXeThese can be used to mark messages non-persistent (i.e. so they are lost if the broker is restarted).r,Er-E}r.E(hj)Ehj'Eubaubahjubeubh)r/E}r0E(hXVNow have our own ``ImproperlyConfigured`` exception, instead of using the Django one. hjjAhhhjh}r1E(h]h]h]h]h]uhNhhh]r2Eh)r3E}r4E(hXUNow have our own ``ImproperlyConfigured`` exception, instead of using the Django one.hj/Ehhhjh}r5E(h]h]h]h]h]uhMR h]r6E(hXNow have our own r7Er8E}r9E(hXNow have our own hj3Eubj)r:E}r;E(hX``ImproperlyConfigured``h}rEr?E}r@E(hUhj:EubahjubhX, exception, instead of using the Django one.rAErBE}rCE(hX, exception, instead of using the Django one.hj3Eubeubaubh)rDE}rEE(hXImprovements to the Debian init scripts: Shows an error if the program is not executable. Does not modify `CELERYD` when using django with virtualenv. hjjAhhhjh}rFE(h]h]h]h]h]uhNhhh]rGEh)rHE}rIE(hXImprovements to the Debian init scripts: Shows an error if the program is not executable. Does not modify `CELERYD` when using django with virtualenv.hjDEhhhjh}rJE(h]h]h]h]h]uhMU h]rKE(hXkImprovements to the Debian init scripts: Shows an error if the program is not executable. Does not modify rLErME}rNE(hXkImprovements to the Debian init scripts: Shows an error if the program is not executable. Does not modify hjHEubj()rOE}rPE(hX `CELERYD`h}rQE(h]h]h]h]h]uhjHEh]rREhXCELERYDrSErTE}rUE(hUhjOEubahj0ubhX# when using django with virtualenv.rVErWE}rXE(hX# when using django with virtualenv.hjHEubeubaubeubjf)rYE}rZE(hX.. _version-1.0.0:hj>Ahhhjih}r[E(h]h]h]h]h]jkj2uhMY hhh]ubeubh)r\E}r]E(hUhhhhjn}r^EhFr?F}r@F(hXIn addition to hj:Fubj)rAF}rBF(hX ``--detach``h}rCF(h]h]h]h]h]uhj:Fh]rDFhX--detachrEFrFF}rGF(hUhjAFubahjubhX4, the following program arguments has been removed: rHFrIF}rJF(hX4, the following program arguments has been removed: hj:Fubj)rKF}rLF(hX ``--uid``h}rMF(h]h]h]h]h]uhj:Fh]rNFhX--uidrOFrPF}rQF(hUhjKFubahjubhX, rRFrSF}rTF(hX, hj:Fubj)rUF}rVF(hX ``--gid``h}rWF(h]h]h]h]h]uhj:Fh]rXFhX--gidrYFrZF}r[F(hUhjUFubahjubhX, r\Fr]F}r^F(hX, hj:Fubj)r_F}r`F(hX ``--workdir``h}raF(h]h]h]h]h]uhj:Fh]rbFhX --workdirrcFrdF}reF(hUhj_FubahjubhX, rfFrgF}rhF(hX, hj:Fubj)riF}rjF(hX ``--chroot``h}rkF(h]h]h]h]h]uhj:Fh]rlFhX--chrootrmFrnF}roF(hUhjiFubahjubhX, rpFrqF}rrF(hX, hj:Fubj)rsF}rtF(hX ``--pidfile``h}ruF(h]h]h]h]h]uhj:Fh]rvFhX --pidfilerwFrxF}ryF(hUhjsFubahjubhX, rzFr{F}r|F(hX, hj:Fubj)r}F}r~F(hX ``--umask``h}rF(h]h]h]h]h]uhj:Fh]rFhX--umaskrFrF}rF(hUhj}FubahjubhXW. All good daemonization tools should support equivalent functionality, so don't worry.rFrF}rF(hXW. All good daemonization tools should support equivalent functionality, so don't worry.hj:Fubeubh)rF}rF(hX~Also the following configuration keys has been removed: ``CELERYD_PID_FILE``, ``CELERYBEAT_PID_FILE``, ``CELERYMON_PID_FILE``.hjEhhhjh}rF(h]h]h]h]h]uhM h]rF(hX8Also the following configuration keys has been removed: rFrF}rF(hX8Also the following configuration keys has been removed: hjFubj)rF}rF(hX``CELERYD_PID_FILE``h}rF(h]h]h]h]h]uhjFh]rFhXCELERYD_PID_FILErFrF}rF(hUhjFubahjubhX, rFrF}rF(hX, hjFubj)rF}rF(hX``CELERYBEAT_PID_FILE``h}rF(h]h]h]h]h]uhjFh]rFhXCELERYBEAT_PID_FILErFrF}rF(hUhjFubahjubhX, rFrF}rF(hX, hjFubj)rF}rF(hX``CELERYMON_PID_FILE``h}rF(h]h]h]h]h]uhjFh]rFhXCELERYMON_PID_FILErFrF}rF(hUhjFubahjubhX.rF}rF(hX.hjFubeubehjubeubh)rF}rF(hXsDefault celeryd loglevel is now ``WARN``, to enable the previous log level start celeryd with ``--loglevel=INFO``. hjEhhhjh}rF(h]h]h]h]h]uhNhhh]rFh)rF}rF(hXrDefault celeryd loglevel is now ``WARN``, to enable the previous log level start celeryd with ``--loglevel=INFO``.hjFhhhjh}rF(h]h]h]h]h]uhM h]rF(hX Default celeryd loglevel is now rFrF}rF(hX Default celeryd loglevel is now hjFubj)rF}rF(hX``WARN``h}rF(h]h]h]h]h]uhjFh]rFhXWARNrFrF}rF(hUhjFubahjubhX6, to enable the previous log level start celeryd with rFrF}rF(hX6, to enable the previous log level start celeryd with hjFubj)rF}rF(hX``--loglevel=INFO``h}rF(h]h]h]h]h]uhjFh]rFhX--loglevel=INFOrFrF}rF(hUhjFubahjubhX.rF}rF(hX.hjFubeubaubh)rF}rF(hX;Tasks are automatically registered. This means you no longer have to register your tasks manually. You don't have to change your old code right away, as it doesn't matter if a task is registered twice. If you don't want your task to be automatically registered you can set the ``abstract`` attribute .. code-block:: python class MyTask(Task): abstract = True By using ``abstract`` only tasks subclassing this task will be automatically registered (this works like the Django ORM). If you don't want subclasses to be registered either, you can set the ``autoregister`` attribute to ``False``. Incidentally, this change also fixes the problems with automatic name assignment and relative imports. So you also don't have to specify a task name anymore if you use relative imports. hjEhhhjh}rF(h]h]h]h]h]uhNhhh]rF(h)rF}rF(hX#Tasks are automatically registered.rFhjFhhhjh}rF(h]h]h]h]h]uhM h]rFhX#Tasks are automatically registered.rFrF}rF(hjFhjFubaubj)rF}rF(hUh}rF(h]h]h]h]h]uhjFh]rF(h)rF}rF(hXThis means you no longer have to register your tasks manually. You don't have to change your old code right away, as it doesn't matter if a task is registered twice.rFhjFhhhjh}rF(h]h]h]h]h]uhM h]rFhXThis means you no longer have to register your tasks manually. You don't have to change your old code right away, as it doesn't matter if a task is registered twice.rFrF}rF(hjFhjFubaubh)rF}rF(hXaIf you don't want your task to be automatically registered you can set the ``abstract`` attributehjFhhhjh}rF(h]h]h]h]h]uhM h]rF(hXKIf you don't want your task to be automatically registered you can set the rFrF}rF(hXKIf you don't want your task to be automatically registered you can set the hjFubj)rF}rF(hX ``abstract``h}rF(h]h]h]h]h]uhjFh]rFhXabstractrFrF}rF(hUhjFubahjubhX attributerFrF}rF(hX attributehjFubeubjM)rF}rF(hX'class MyTask(Task): abstract = TruehjFhhhjPh}rF(jRjSXpythonjTjUh]h]h]h]h]uhM h]rFhX'class MyTask(Task): abstract = TruerFrF}rF(hUhjFubaubh)rF}rF(hXyBy using ``abstract`` only tasks subclassing this task will be automatically registered (this works like the Django ORM).hjFhhhjh}rF(h]h]h]h]h]uhM h]rF(hX By using rFrF}rF(hX By using hjFubj)rG}rG(hX ``abstract``h}rG(h]h]h]h]h]uhjFh]rGhXabstractrGrG}rG(hUhjGubahjubhXd only tasks subclassing this task will be automatically registered (this works like the Django ORM).rGrG}r G(hXd only tasks subclassing this task will be automatically registered (this works like the Django ORM).hjFubeubh)r G}r G(hXnIf you don't want subclasses to be registered either, you can set the ``autoregister`` attribute to ``False``.hjFhhhjh}r G(h]h]h]h]h]uhM h]r G(hXFIf you don't want subclasses to be registered either, you can set the rGrG}rG(hXFIf you don't want subclasses to be registered either, you can set the hj Gubj)rG}rG(hX``autoregister``h}rG(h]h]h]h]h]uhj Gh]rGhX autoregisterrGrG}rG(hUhjGubahjubhX attribute to rGrG}rG(hX attribute to hj Gubj)rG}rG(hX ``False``h}rG(h]h]h]h]h]uhj Gh]rGhXFalserGr G}r!G(hUhjGubahjubhX.r"G}r#G(hX.hj Gubeubh)r$G}r%G(hXIncidentally, this change also fixes the problems with automatic name assignment and relative imports. So you also don't have to specify a task name anymore if you use relative imports.r&GhjFhhhjh}r'G(h]h]h]h]h]uhM h]r(GhXIncidentally, this change also fixes the problems with automatic name assignment and relative imports. So you also don't have to specify a task name anymore if you use relative imports.r)Gr*G}r+G(hj&Ghj$Gubaubehjubeubh)r,G}r-G(hXYou can no longer use regular functions as tasks. This change was added because it makes the internals a lot more clean and simple. However, you can now turn functions into tasks by using the ``@task`` decorator: .. code-block:: python from celery.decorators import task @task def add(x, y): return x + y .. seealso:: :ref:`guide-tasks` for more information about the task decorators. hjEhhhjh}r.G(h]h]h]h]h]uhNhhh]r/G(h)r0G}r1G(hX1You can no longer use regular functions as tasks.r2Ghj,Ghhhjh}r3G(h]h]h]h]h]uhM h]r4GhX1You can no longer use regular functions as tasks.r5Gr6G}r7G(hj2Ghj0Gubaubj)r8G}r9G(hUh}r:G(h]h]h]h]h]uhj,Gh]r;G(h)rG(h]h]h]h]h]uhM h]r?G(hXThis change was added because it makes the internals a lot more clean and simple. However, you can now turn functions into tasks by using the r@GrAG}rBG(hXThis change was added because it makes the internals a lot more clean and simple. However, you can now turn functions into tasks by using the hjH(j)r?H}r@H(hX``AsyncResult.is_done``h}rAH(h]h]h]h]h]uhj;Hh]rBHhXAsyncResult.is_donerCHrDH}rEH(hUhj?HubahjubhX has been removed, use rFHrGH}rHH(hX has been removed, use hj;Hubj)rIH}rJH(hX``AsyncResult.successful``h}rKH(h]h]h]h]h]uhj;Hh]rLHhXAsyncResult.successfulrMHrNH}rOH(hUhjIHubahjubhX instead.rPHrQH}rRH(hX instead.hj;Hubeubaubh)rSH}rTH(hXThe worker no longer stores errors if ``Task.ignore_result`` is set, to revert to the previous behaviour set :setting:`CELERY_STORE_ERRORS_EVEN_IF_IGNORED` to ``True``. hjEhhhjh}rUH(h]h]h]h]h]uhNhhh]rVHh)rWH}rXH(hXThe worker no longer stores errors if ``Task.ignore_result`` is set, to revert to the previous behaviour set :setting:`CELERY_STORE_ERRORS_EVEN_IF_IGNORED` to ``True``.hjSHhhhjh}rYH(h]h]h]h]h]uhM h]rZH(hX&The worker no longer stores errors if r[Hr\H}r]H(hX&The worker no longer stores errors if hjWHubj)r^H}r_H(hX``Task.ignore_result``h}r`H(h]h]h]h]h]uhjWHh]raHhXTask.ignore_resultrbHrcH}rdH(hUhj^HubahjubhX1 is set, to revert to the previous behaviour set reHrfH}rgH(hX1 is set, to revert to the previous behaviour set hjWHubj)rhH}riH(hX.:setting:`CELERY_STORE_ERRORS_EVEN_IF_IGNORED`rjHhjWHhhhjh}rkH(UreftypeXsettingjjX#CELERY_STORE_ERRORS_EVEN_IF_IGNOREDU refdomainXstdrlHh]h]U refexplicith]h]h]jjuhM h]rmHj)rnH}roH(hjjHh}rpH(h]h]rqH(jjlHX std-settingrrHeh]h]h]uhjhHh]rsHhX#CELERY_STORE_ERRORS_EVEN_IF_IGNOREDrtHruH}rvH(hUhjnHubahjubaubhX to rwHrxH}ryH(hX to hjWHubj)rzH}r{H(hX``True``h}r|H(h]h]h]h]h]uhjWHh]r}HhXTruer~HrH}rH(hUhjzHubahjubhX.rH}rH(hX.hjWHubeubaubh)rH}rH(hX{The statistics functionality has been removed in favor of events, so the `-S` and --statistics` switches has been removed. hjEhhhjh}rH(h]h]h]h]h]uhNhhh]rHh)rH}rH(hXzThe statistics functionality has been removed in favor of events, so the `-S` and --statistics` switches has been removed.hjHhhhjh}rH(h]h]h]h]h]uhM h]rH(hXIThe statistics functionality has been removed in favor of events, so the rHrH}rH(hXIThe statistics functionality has been removed in favor of events, so the hjHubj()rH}rH(hX`-S`h}rH(h]h]h]h]h]uhjHh]rHhX-SrHrH}rH(hUhjHubahj0ubhX- and --statistics` switches has been removed.rHrH}rH(hX- and --statistics` switches has been removed.hjHubeubaubh)rH}rH(hX6The module ``celery.task.strategy`` has been removed. hjEhhhjh}rH(h]h]h]h]h]uhNhhh]rHh)rH}rH(hX5The module ``celery.task.strategy`` has been removed.hjHhhhjh}rH(h]h]h]h]h]uhM h]rH(hX The module rHrH}rH(hX The module hjHubj)rH}rH(hX``celery.task.strategy``h}rH(h]h]h]h]h]uhjHh]rHhXcelery.task.strategyrHrH}rH(hUhjHubahjubhX has been removed.rHrH}rH(hX has been removed.hjHubeubaubh)rH}rH(hX``celery.discovery`` has been removed, and it's ``autodiscover`` function is now in ``celery.loaders.djangoapp``. Reason: Internal API. hjEhhhjh}rH(h]h]h]h]h]uhNhhh]rHh)rH}rH(hX``celery.discovery`` has been removed, and it's ``autodiscover`` function is now in ``celery.loaders.djangoapp``. Reason: Internal API.hjHhhhjh}rH(h]h]h]h]h]uhM h]rH(j)rH}rH(hX``celery.discovery``h}rH(h]h]h]h]h]uhjHh]rHhXcelery.discoveryrHrH}rH(hUhjHubahjubhX has been removed, and it's rHrH}rH(hX has been removed, and it's hjHubj)rH}rH(hX``autodiscover``h}rH(h]h]h]h]h]uhjHh]rHhX autodiscoverrHrH}rH(hUhjHubahjubhX function is now in rHrH}rH(hX function is now in hjHubj)rH}rH(hX``celery.loaders.djangoapp``h}rH(h]h]h]h]h]uhjHh]rHhXcelery.loaders.djangoapprHrH}rH(hUhjHubahjubhX. Reason: Internal API.rHrH}rH(hX. Reason: Internal API.hjHubeubaubh)rH}rH(hXThe :envvar:`CELERY_LOADER` environment variable now needs loader class name in addition to module name, E.g. where you previously had: `"celery.loaders.default"`, you now need `"celery.loaders.default.Loader"`, using the previous syntax will result in a `DeprecationWarning`. hjEhhhjh}rH(h]h]h]h]h]uhNhhh]rH(h)rH}rH(hXhThe :envvar:`CELERY_LOADER` environment variable now needs loader class name in addition to module name,hjHhhhjh}rH(h]h]h]h]h]uhM h]rH(hXThe rHrH}rH(hXThe hjHubj)rH}rH(hUh}rH(h]h]h]h]h]j)]rH((j?X CELERY_LOADERrHUindex-4rHUtrH(j?X#environment variable; CELERY_LOADERjHUtrHeuhjHh]hjubjf)rH}rH(hUh}rH(h]h]h]h]rHjHah]uhjHh]hjiubj)rH}rH(hX:envvar:`CELERY_LOADER`rHhjHhhhjh}rH(UreftypeXenvvarjjjHU refdomainXstdrHh]h]U refexplicith]h]h]jjuhM h]rHj)rH}rH(hjHh}rH(h]h]rH(jjHX std-envvarrHeh]h]h]uhjHh]rHhX CELERY_LOADERrHrH}rH(hUhjHubahjubaubhXM environment variable now needs loader class name in addition to module name,rHrH}rH(hXM environment variable now needs loader class name in addition to module name,hjHubeubj)rH}rH(hUh}rH(h]h]h]h]h]uhjHh]rHh)rI}rI(hXE.g. where you previously had: `"celery.loaders.default"`, you now need `"celery.loaders.default.Loader"`, using the previous syntax will result in a `DeprecationWarning`.hjHhhhjh}rI(h]h]h]h]h]uhM h]rI(hXE.g. where you previously had: rIrI}rI(hXE.g. where you previously had: hjIubj()rI}rI(hX`"celery.loaders.default"`h}r I(h]h]h]h]h]uhjIh]r IhX"celery.loaders.default"r Ir I}r I(hUhjIubahj0ubhX, you now need rIrI}rI(hX, you now need hjIubj()rI}rI(hX!`"celery.loaders.default.Loader"`h}rI(h]h]h]h]h]uhjIh]rIhX"celery.loaders.default.Loader"rIrI}rI(hUhjIubahj0ubhX-, using the previous syntax will result in a rIrI}rI(hX-, using the previous syntax will result in a hjIubj()rI}rI(hX`DeprecationWarning`h}rI(h]h]h]h]h]uhjIh]rIhXDeprecationWarningrIr I}r!I(hUhjIubahj0ubhX.r"I}r#I(hX.hjIubeubahjubeubh)r$I}r%I(hXDetecting the loader is now lazy, and so is not done when importing ``celery.loaders``. To make this happen ``celery.loaders.settings`` has been renamed to ``load_settings`` and is now a function returning the settings object. ``celery.loaders.current_loader`` is now also a function, returning the current loader. So:: loader = current_loader needs to be changed to:: loader = current_loader() hjEhhhjh}r&I(h]h]h]h]h]uhNhhh]r'I(h)r(I}r)I(hXWDetecting the loader is now lazy, and so is not done when importing ``celery.loaders``.hj$Ihhhjh}r*I(h]h]h]h]h]uhM h]r+I(hXDDetecting the loader is now lazy, and so is not done when importing r,Ir-I}r.I(hXDDetecting the loader is now lazy, and so is not done when importing hj(Iubj)r/I}r0I(hX``celery.loaders``h}r1I(h]h]h]h]h]uhj(Ih]r2IhXcelery.loadersr3Ir4I}r5I(hUhj/IubahjubhX.r6I}r7I(hX.hj(Iubeubj)r8I}r9I(hUh}r:I(h]h]h]h]h]uhj$Ih]r;I(h)rI(h]h]h]h]h]uhM h]r?I(hXTo make this happen r@IrAI}rBI(hXTo make this happen hj CELERYD_LOG_FORMAT * CELERYD_DAEMON_LOG_LEVEL -> CELERYD_LOG_LEVEL * CELERY_AMQP_CONNECTION_TIMEOUT -> CELERY_BROKER_CONNECTION_TIMEOUT * CELERY_AMQP_CONNECTION_RETRY -> CELERY_BROKER_CONNECTION_RETRY * CELERY_AMQP_CONNECTION_MAX_RETRIES -> CELERY_BROKER_CONNECTION_MAX_RETRIES * SEND_CELERY_TASK_ERROR_EMAILS -> CELERY_SEND_TASK_ERROR_EMAILS hjIhhhjh}rI(h]h]h]h]h]uhNhhh]rI(h)rI}rI(hXVThe following configuration variables has been renamed and will be deprecated in v2.0:rIhjIhhhjh}rI(h]h]h]h]h]uhM h]rIhXVThe following configuration variables has been renamed and will be deprecated in v2.0:rIrI}rI(hjIhjIubaubj)rI}rI(hUh}rI(h]h]h]h]h]uhjIh]rIh)rI}rI(hUh}rI(jX*h]h]h]h]h]uhjIh]rI(h)rI}rI(hX/CELERYD_DAEMON_LOG_FORMAT -> CELERYD_LOG_FORMATrIh}rI(h]h]h]h]h]uhjIh]rIh)rI}rI(hjIhjIhhhjh}rI(h]h]h]h]h]uhM h]rIhX/CELERYD_DAEMON_LOG_FORMAT -> CELERYD_LOG_FORMATrIrI}rI(hjIhjIubaubahjubh)rI}rI(hX-CELERYD_DAEMON_LOG_LEVEL -> CELERYD_LOG_LEVELrIh}rI(h]h]h]h]h]uhjIh]rIh)rI}rI(hjIhjIhhhjh}rI(h]h]h]h]h]uhM h]rIhX-CELERYD_DAEMON_LOG_LEVEL -> CELERYD_LOG_LEVELrIrI}rI(hjIhjIubaubahjubh)rI}rI(hXBCELERY_AMQP_CONNECTION_TIMEOUT -> CELERY_BROKER_CONNECTION_TIMEOUTrIh}rI(h]h]h]h]h]uhjIh]rIh)rI}rI(hjIhjIhhhjh}rI(h]h]h]h]h]uhM h]rIhXBCELERY_AMQP_CONNECTION_TIMEOUT -> CELERY_BROKER_CONNECTION_TIMEOUTrIrI}rI(hjIhjIubaubahjubh)rI}rI(hX>CELERY_AMQP_CONNECTION_RETRY -> CELERY_BROKER_CONNECTION_RETRYrIh}rI(h]h]h]h]h]uhjIh]rIh)rI}rI(hjIhjIhhhjh}rI(h]h]h]h]h]uhM h]rIhX>CELERY_AMQP_CONNECTION_RETRY -> CELERY_BROKER_CONNECTION_RETRYrIrI}rI(hjIhjIubaubahjubh)rI}rI(hXJCELERY_AMQP_CONNECTION_MAX_RETRIES -> CELERY_BROKER_CONNECTION_MAX_RETRIESrIh}rI(h]h]h]h]h]uhjIh]rIh)rI}rI(hjIhjIhhhjh}rI(h]h]h]h]h]uhM h]rIhXJCELERY_AMQP_CONNECTION_MAX_RETRIES -> CELERY_BROKER_CONNECTION_MAX_RETRIESrIrI}rI(hjIhjIubaubahjubh)rI}rI(hX?SEND_CELERY_TASK_ERROR_EMAILS -> CELERY_SEND_TASK_ERROR_EMAILS h}rI(h]h]h]h]h]uhjIh]rIh)rI}rI(hX>SEND_CELERY_TASK_ERROR_EMAILS -> CELERY_SEND_TASK_ERROR_EMAILSrIhjIhhhjh}rI(h]h]h]h]h]uhM h]rIhX>SEND_CELERY_TASK_ERROR_EMAILS -> CELERY_SEND_TASK_ERROR_EMAILSrIrI}rI(hjIhjIubaubahjubehhubahjubeubh)rI}rI(hXTThe public API names in celery.conf has also changed to a consistent naming scheme. hjIhhhjh}rI(h]h]h]h]h]uhNhhh]rIh)rI}rI(hXSThe public API names in celery.conf has also changed to a consistent naming scheme.rIhjIhhhjh}rI(h]h]h]h]h]uhM h]rIhXSThe public API names in celery.conf has also changed to a consistent naming scheme.rIrI}rI(hjIhjIubaubaubh)rI}rI(hXPWe now support consuming from an arbitrary number of queues. To do this we had to rename the configuration syntax. If you use any of the custom AMQP routing options (queue/exchange/routing_key, etc.), you should read the new FAQ entry: http://bit.ly/aiWoH. The previous syntax is deprecated and scheduled for removal in v2.0. hjIhhhjh}rI(h]h]h]h]h]uhNhhh]rI(h)rJ}rJ(hX<We now support consuming from an arbitrary number of queues.rJhjIhhhjh}rJ(h]h]h]h]h]uhM h]rJhX<We now support consuming from an arbitrary number of queues.rJrJ}rJ(hjJhjJubaubj)rJ}r J(hUh}r J(h]h]h]h]h]uhjIh]r J(h)r J}r J(hXTo do this we had to rename the configuration syntax. If you use any of the custom AMQP routing options (queue/exchange/routing_key, etc.), you should read the new FAQ entry: http://bit.ly/aiWoH.hjJhhhjh}rJ(h]h]h]h]h]uhM h]rJ(hXTo do this we had to rename the configuration syntax. If you use any of the custom AMQP routing options (queue/exchange/routing_key, etc.), you should read the new FAQ entry: rJrJ}rJ(hXTo do this we had to rename the configuration syntax. If you use any of the custom AMQP routing options (queue/exchange/routing_key, etc.), you should read the new FAQ entry: hj Jubh)rJ}rJ(hXhttp://bit.ly/aiWoHrJh}rJ(UrefurijJh]h]h]h]h]uhj Jh]rJhXhttp://bit.ly/aiWoHrJrJ}rJ(hUhjJubahjubhX.rJ}rJ(hX.hj Jubeubh)rJ}rJ(hXDThe previous syntax is deprecated and scheduled for removal in v2.0.rJhjJhhhjh}r J(h]h]h]h]h]uhM h]r!JhXDThe previous syntax is deprecated and scheduled for removal in v2.0.r"Jr#J}r$J(hjJhjJubaubehjubeubh)r%J}r&J(hX``TaskSet.run`` has been renamed to ``TaskSet.apply_async``. ``TaskSet.run`` has now been deprecated, and is scheduled for removal in v2.0. hjIhhhjh}r'J(h]h]h]h]h]uhNhhh]r(J(h)r)J}r*J(hX<``TaskSet.run`` has been renamed to ``TaskSet.apply_async``.hj%Jhhhjh}r+J(h]h]h]h]h]uhM h]r,J(j)r-J}r.J(hX``TaskSet.run``h}r/J(h]h]h]h]h]uhj)Jh]r0JhX TaskSet.runr1Jr2J}r3J(hUhj-JubahjubhX has been renamed to r4Jr5J}r6J(hX has been renamed to hj)Jubj)r7J}r8J(hX``TaskSet.apply_async``h}r9J(h]h]h]h]h]uhj)Jh]r:JhXTaskSet.apply_asyncr;JrJ}r?J(hX.hj)Jubeubj)r@J}rAJ(hUh}rBJ(h]h]h]h]h]uhj%Jh]rCJh)rDJ}rEJ(hXN``TaskSet.run`` has now been deprecated, and is scheduled for removal in v2.0.hj@Jhhhjh}rFJ(h]h]h]h]h]uhM h]rGJ(j)rHJ}rIJ(hX``TaskSet.run``h}rJJ(h]h]h]h]h]uhjDJh]rKJhX TaskSet.runrLJrMJ}rNJ(hUhjHJubahjubhX? has now been deprecated, and is scheduled for removal in v2.0.rOJrPJ}rQJ(hX? has now been deprecated, and is scheduled for removal in v2.0.hjDJubeubahjubeubeubcdocutils.nodes comment rRJ)rSJ}rTJ(hX v100-news:hjIhhhUcommentrUJh}rVJ(jTjUh]h]h]h]h]uhM hhh]rWJhX v100-news:rXJrYJ}rZJ(hUhjSJubaubeubh)r[J}r\J(hUhKhj\Ehhhhh}r]J(h]r^JXnewsr_Jah]h]h]r`Jjoah]uhM hhh]raJ(h)rbJ}rcJ(hjthj[Jhhhhh}rdJ(h]h]h]h]h]jkjnuhM hhh]reJhXNewsrfJrgJ}rhJ(hjthjbJubaubh)riJ}rjJ(hUhj[Jhhhhh}rkJ(jX*h]h]h]h]h]uhM hhh]rlJ(h)rmJ}rnJ(hX4Rate limiting support (per task type, or globally). hjiJhhhjh}roJ(h]h]h]h]h]uhNhhh]rpJh)rqJ}rrJ(hX3Rate limiting support (per task type, or globally).rsJhjmJhhhjh}rtJ(h]h]h]h]h]uhM h]ruJhX3Rate limiting support (per task type, or globally).rvJrwJ}rxJ(hjsJhjqJubaubaubh)ryJ}rzJ(hXNew periodic task system. hjiJhhhjh}r{J(h]h]h]h]h]uhNhhh]r|Jh)r}J}r~J(hXNew periodic task system.rJhjyJhhhjh}rJ(h]h]h]h]h]uhM h]rJhXNew periodic task system.rJrJ}rJ(hjJhj}Jubaubaubh)rJ}rJ(hXAutomatic registration. hjiJhhhjh}rJ(h]h]h]h]h]uhNhhh]rJh)rJ}rJ(hXAutomatic registration.rJhjJhhhjh}rJ(h]h]h]h]h]uhM h]rJhXAutomatic registration.rJrJ}rJ(hjJhjJubaubaubh)rJ}rJ(hX New cool task decorator syntax. hjiJhhhjh}rJ(h]h]h]h]h]uhNhhh]rJh)rJ}rJ(hXNew cool task decorator syntax.rJhjJhhhjh}rJ(h]h]h]h]h]uhM h]rJhXNew cool task decorator syntax.rJrJ}rJ(hjJhjJubaubaubh)rJ}rJ(hXceleryd now sends events if enabled with the ``-E`` argument. Excellent for monitoring tools, one is already in the making (http://github.com/ask/celerymon). Current events include: worker-heartbeat, task-[received/succeeded/failed/retried], worker-online, worker-offline. hjiJhhhjh}rJ(h]h]h]h]h]uhNhhh]rJ(h)rJ}rJ(hX=celeryd now sends events if enabled with the ``-E`` argument.hjJhhhjh}rJ(h]h]h]h]h]uhM h]rJ(hX-celeryd now sends events if enabled with the rJrJ}rJ(hX-celeryd now sends events if enabled with the hjJubj)rJ}rJ(hX``-E``h}rJ(h]h]h]h]h]uhjJh]rJhX-ErJrJ}rJ(hUhjJubahjubhX argument.rJrJ}rJ(hX argument.hjJubeubj)rJ}rJ(hUh}rJ(h]h]h]h]h]uhjJh]rJ(h)rJ}rJ(hX_Excellent for monitoring tools, one is already in the making (http://github.com/ask/celerymon).hjJhhhjh}rJ(h]h]h]h]h]uhM h]rJ(hX>Excellent for monitoring tools, one is already in the making (rJrJ}rJ(hX>Excellent for monitoring tools, one is already in the making (hjJubh)rJ}rJ(hXhttp://github.com/ask/celerymonrJh}rJ(UrefurijJh]h]h]h]h]uhjJh]rJhXhttp://github.com/ask/celerymonrJrJ}rJ(hUhjJubahjubhX).rJrJ}rJ(hX).hjJubeubh)rJ}rJ(hXrCurrent events include: worker-heartbeat, task-[received/succeeded/failed/retried], worker-online, worker-offline.rJhjJhhhjh}rJ(h]h]h]h]h]uhM! h]rJhXrCurrent events include: worker-heartbeat, task-[received/succeeded/failed/retried], worker-online, worker-offline.rJrJ}rJ(hjJhjJubaubehjubeubh)rJ}rJ(hXAYou can now delete (revoke) tasks that has already been applied. hjiJhhhjh}rJ(h]h]h]h]h]uhNhhh]rJh)rJ}rJ(hX@You can now delete (revoke) tasks that has already been applied.rJhjJhhhjh}rJ(h]h]h]h]h]uhM% h]rJhX@You can now delete (revoke) tasks that has already been applied.rJrJ}rJ(hjJhjJubaubaubh)rJ}rJ(hXVYou can now set the hostname celeryd identifies as using the ``--hostname`` argument. hjiJhhhjh}rJ(h]h]h]h]h]uhNhhh]rJh)rJ}rJ(hXUYou can now set the hostname celeryd identifies as using the ``--hostname`` argument.hjJhhhjh}rJ(h]h]h]h]h]uhM' h]rJ(hX=You can now set the hostname celeryd identifies as using the rJrJ}rJ(hX=You can now set the hostname celeryd identifies as using the hjJubj)rJ}rJ(hX``--hostname``h}rJ(h]h]h]h]h]uhjJh]rJhX --hostnamerJrJ}rJ(hUhjJubahjubhX argument.rJrJ}rJ(hX argument.hjJubeubaubh)rJ}rJ(hXNCache backend now respects the :setting:`CELERY_TASK_RESULT_EXPIRES` setting. hjiJhhhjh}rJ(h]h]h]h]h]uhNhhh]rJh)rJ}rJ(hXMCache backend now respects the :setting:`CELERY_TASK_RESULT_EXPIRES` setting.hjJhhhjh}rJ(h]h]h]h]h]uhM* h]rJ(hXCache backend now respects the rJrJ}rJ(hXCache backend now respects the hjJubj)rJ}rJ(hX%:setting:`CELERY_TASK_RESULT_EXPIRES`rJhjJhhhjh}rJ(UreftypeXsettingjjXCELERY_TASK_RESULT_EXPIRESU refdomainXstdrKh]h]U refexplicith]h]h]jjuhM* h]rKj)rK}rK(hjJh}rK(h]h]rK(jjKX std-settingrKeh]h]h]uhjJh]rKhXCELERY_TASK_RESULT_EXPIRESrKr K}r K(hUhjKubahjubaubhX setting.r Kr K}r K(hX setting.hjJubeubaubh)rK}rK(hXaMessage format has been standardized and now uses ISO-8601 format for dates instead of datetime. hjiJhhhjh}rK(h]h]h]h]h]uhNhhh]rKh)rK}rK(hX`Message format has been standardized and now uses ISO-8601 format for dates instead of datetime.rKhjKhhhjh}rK(h]h]h]h]h]uhM, h]rKhX`Message format has been standardized and now uses ISO-8601 format for dates instead of datetime.rKrK}rK(hjKhjKubaubaubh)rK}rK(hXI`celeryd` now responds to the :sig:`SIGHUP` signal by restarting itself. hjiJhhhjh}rK(h]h]h]h]h]uhNhhh]rKh)rK}rK(hXH`celeryd` now responds to the :sig:`SIGHUP` signal by restarting itself.hjKhhhjh}r K(h]h]h]h]h]uhM/ h]r!K(j()r"K}r#K(hX `celeryd`h}r$K(h]h]h]h]h]uhjKh]r%KhXcelerydr&Kr'K}r(K(hUhj"Kubahj0ubhX now responds to the r)Kr*K}r+K(hX now responds to the hjKubj)r,K}r-K(hX :sig:`SIGHUP`r.KhjKhhhjh}r/K(UreftypeXsigjjXSIGHUPU refdomainXstdr0Kh]h]U refexplicith]h]h]jjuhM/ h]r1Kj)r2K}r3K(hj.Kh}r4K(h]h]r5K(jj0KXstd-sigr6Keh]h]h]uhj,Kh]r7KhXSIGHUPr8Kr9K}r:K(hUhj2KubahjubaubhX signal by restarting itself.r;KrK}r?K(hXPeriodic tasks are now scheduled on the clock. I.e. ``timedelta(hours=1)`` means every hour at :00 minutes, not every hour from the server starts. To revert to the previous behaviour you can set ``PeriodicTask.relative = True``. hjiJhhhjh}r@K(h]h]h]h]h]uhNhhh]rAK(h)rBK}rCK(hX.Periodic tasks are now scheduled on the clock.rDKhj>Khhhjh}rEK(h]h]h]h]h]uhM1 h]rFKhX.Periodic tasks are now scheduled on the clock.rGKrHK}rIK(hjDKhjBKubaubj)rJK}rKK(hUh}rLK(h]h]h]h]h]uhj>Kh]rMKh)rNK}rOK(hXI.e. ``timedelta(hours=1)`` means every hour at :00 minutes, not every hour from the server starts. To revert to the previous behaviour you can set ``PeriodicTask.relative = True``.hjJKhhhjh}rPK(h]h]h]h]h]uhM3 h]rQK(hXI.e. rRKrSK}rTK(hXI.e. hjNKubj)rUK}rVK(hX``timedelta(hours=1)``h}rWK(h]h]h]h]h]uhjNKh]rXKhXtimedelta(hours=1)rYKrZK}r[K(hUhjUKubahjubhXz means every hour at :00 minutes, not every hour from the server starts. To revert to the previous behaviour you can set r\Kr]K}r^K(hXz means every hour at :00 minutes, not every hour from the server starts. To revert to the previous behaviour you can set hjNKubj)r_K}r`K(hX ``PeriodicTask.relative = True``h}raK(h]h]h]h]h]uhjNKh]rbKhXPeriodicTask.relative = TruercKrdK}reK(hUhj_KubahjubhX.rfK}rgK(hX.hjNKubeubahjubeubh)rhK}riK(hXNow supports passing execute options to a TaskSets list of args, e.g.: >>> ts = TaskSet(add, [([2, 2], {}, {"countdown": 1}), ... ([4, 4], {}, {"countdown": 2}), ... ([8, 8], {}, {"countdown": 3})]) >>> ts.run() hjiJhhhjh}rjK(h]h]h]h]h]uhNhhh]rkK(h)rlK}rmK(hXFNow supports passing execute options to a TaskSets list of args, e.g.:rnKhjhKhhhjh}roK(h]h]h]h]h]uhM7 h]rpKhXFNow supports passing execute options to a TaskSets list of args, e.g.:rqKrrK}rsK(hjnKhjlKubaubjh)rtK}ruK(hX>>> ts = TaskSet(add, [([2, 2], {}, {"countdown": 1}), ... ([4, 4], {}, {"countdown": 2}), ... ([8, 8], {}, {"countdown": 3})]) >>> ts.run()hjhKhNhjph}rvK(jTjUh]h]h]h]h]uhNhhh]rwKhX>>> ts = TaskSet(add, [([2, 2], {}, {"countdown": 1}), ... ([4, 4], {}, {"countdown": 2}), ... ([8, 8], {}, {"countdown": 3})]) >>> ts.run()rxKryK}rzK(hUhjtKubaubeubh)r{K}r|K(hXGot a 3x performance gain by setting the prefetch count to four times the concurrency, (from an average task round-trip of 0.1s to 0.03s!). A new setting has been added: :setting:`CELERYD_PREFETCH_MULTIPLIER`, which is set to ``4`` by default. hjiJhhhjh}r}K(h]h]h]h]h]uhNhhh]r~K(h)rK}rK(hXGot a 3x performance gain by setting the prefetch count to four times the concurrency, (from an average task round-trip of 0.1s to 0.03s!).rKhj{Khhhjh}rK(h]h]h]h]h]uhM> h]rKhXGot a 3x performance gain by setting the prefetch count to four times the concurrency, (from an average task round-trip of 0.1s to 0.03s!).rKrK}rK(hjKhjKubaubj)rK}rK(hUh}rK(h]h]h]h]h]uhj{Kh]rKh)rK}rK(hXgA new setting has been added: :setting:`CELERYD_PREFETCH_MULTIPLIER`, which is set to ``4`` by default.hjKhhhjh}rK(h]h]h]h]h]uhMA h]rK(hXA new setting has been added: rKrK}rK(hXA new setting has been added: hjKubj)rK}rK(hX&:setting:`CELERYD_PREFETCH_MULTIPLIER`rKhjKhhhjh}rK(UreftypeXsettingjjXCELERYD_PREFETCH_MULTIPLIERU refdomainXstdrKh]h]U refexplicith]h]h]jjuhMA h]rKj)rK}rK(hjKh}rK(h]h]rK(jjKX std-settingrKeh]h]h]uhjKh]rKhXCELERYD_PREFETCH_MULTIPLIERrKrK}rK(hUhjKubahjubaubhX, which is set to rKrK}rK(hX, which is set to hjKubj)rK}rK(hX``4``h}rK(h]h]h]h]h]uhjKh]rKhX4rK}rK(hUhjKubahjubhX by default.rKrK}rK(hX by default.hjKubeubahjubeubh)rK}rK(hXImproved support for webhook tasks. ``celery.task.rest`` is now deprecated, replaced with the new and shiny :mod:`celery.task.http`. With more reflective names, sensible interface, and it's possible to override the methods used to perform HTTP requests. hjiJhhhjh}rK(h]h]h]h]h]uhNhhh]rK(h)rK}rK(hX#Improved support for webhook tasks.rKhjKhhhjh}rK(h]h]h]h]h]uhMD h]rKhX#Improved support for webhook tasks.rKrK}rK(hjKhjKubaubj)rK}rK(hUh}rK(h]h]h]h]h]uhjKh]rKh)rK}rK(hX``celery.task.rest`` is now deprecated, replaced with the new and shiny :mod:`celery.task.http`. With more reflective names, sensible interface, and it's possible to override the methods used to perform HTTP requests.hjKhhhjh}rK(h]h]h]h]h]uhMF h]rK(j)rK}rK(hX``celery.task.rest``h}rK(h]h]h]h]h]uhjKh]rKhXcelery.task.restrKrK}rK(hUhjKubahjubhX4 is now deprecated, replaced with the new and shiny rKrK}rK(hX4 is now deprecated, replaced with the new and shiny hjKubj)rK}rK(hX:mod:`celery.task.http`rKhjKhhhjh}rK(UreftypeXmodjjXcelery.task.httpU refdomainXpyrKh]h]U refexplicith]h]h]jjj Nj NuhMF h]rKj)rK}rK(hjKh}rK(h]h]rK(jjKXpy-modrKeh]h]h]uhjKh]rKhXcelery.task.httprKrK}rK(hUhjKubahjubaubhXz. With more reflective names, sensible interface, and it's possible to override the methods used to perform HTTP requests.rKrK}rK(hXz. With more reflective names, sensible interface, and it's possible to override the methods used to perform HTTP requests.hjKubeubahjubeubh)rK}rK(hXMThe results of task sets are now cached by storing it in the result backend. hjiJhhhjh}rK(h]h]h]h]h]uhNhhh]rKh)rK}rK(hXLThe results of task sets are now cached by storing it in the result backend.rKhjKhhhjh}rK(h]h]h]h]h]uhMJ h]rKhXLThe results of task sets are now cached by storing it in the result backend.rKrK}rK(hjKhjKubaubaubeubjf)rK}rK(hX.. _v100-changes:hj[Jhhhjih}rK(h]h]h]h]h]jkjuhMM hhh]ubeubh)rK}rK(hUhKhj\Ehhjn}rKhjKshhh}rK(h]rKj+8ah]h]h]rK(jUid31rKeh]rKhauhMP hhjt}rKjjKsh]rK(h)rK}rK(hjhjKhhhhh}rK(h]h]h]h]h]jkjuhMP hhh]rKhXChangesrKrK}rK(hjhjKubaubh)rK}rK(hUhjKhhhhh}rK(jX*h]h]h]h]h]uhMR hhh]rL(h)rL}rL(hXNow depends on carrot >= 0.8.1 hjKhhhjh}rL(h]h]h]h]h]uhNhhh]rLh)rL}rL(hXNow depends on carrot >= 0.8.1rLhjLhhhjh}rL(h]h]h]h]h]uhMR h]r LhXNow depends on carrot >= 0.8.1r Lr L}r L(hjLhjLubaubaubh)r L}rL(hX@New dependencies: billiard, python-dateutil, django-picklefield hjKhhhjh}rL(h]h]h]h]h]uhNhhh]rLh)rL}rL(hX?New dependencies: billiard, python-dateutil, django-picklefieldrLhj Lhhhjh}rL(h]h]h]h]h]uhMT h]rLhX?New dependencies: billiard, python-dateutil, django-picklefieldrLrL}rL(hjLhjLubaubaubh)rL}rL(hX#No longer depends on python-daemon hjKhhhjh}rL(h]h]h]h]h]uhNhhh]rLh)rL}rL(hX"No longer depends on python-daemonrLhjLhhhjh}r L(h]h]h]h]h]uhMV h]r!LhX"No longer depends on python-daemonr"Lr#L}r$L(hjLhjLubaubaubh)r%L}r&L(hXLThe ``uuid`` distribution is added as a dependency when running Python 2.4. hjKhhhjh}r'L(h]h]h]h]h]uhNhhh]r(Lh)r)L}r*L(hXKThe ``uuid`` distribution is added as a dependency when running Python 2.4.hj%Lhhhjh}r+L(h]h]h]h]h]uhMX h]r,L(hXThe r-Lr.L}r/L(hXThe hj)Lubj)r0L}r1L(hX``uuid``h}r2L(h]h]h]h]h]uhj)Lh]r3LhXuuidr4Lr5L}r6L(hUhj0LubahjubhX? distribution is added as a dependency when running Python 2.4.r7Lr8L}r9L(hX? distribution is added as a dependency when running Python 2.4.hj)Lubeubaubh)r:L}r;L(hXNow remembers the previously detected loader by keeping it in the :envvar:`CELERY_LOADER` environment variable. This may help on windows where fork emulation is used. hjKhhhjh}rL}r?L(hXoNow remembers the previously detected loader by keeping it in the :envvar:`CELERY_LOADER` environment variable.hj:Lhhhjh}r@L(h]h]h]h]h]uhMZ h]rAL(hXBNow remembers the previously detected loader by keeping it in the rBLrCL}rDL(hXBNow remembers the previously detected loader by keeping it in the hj>Lubj)rEL}rFL(hUh}rGL(h]h]h]h]h]j)]rHL((j?X CELERY_LOADERrILUindex-5rJLUtrKL(j?X#environment variable; CELERY_LOADERjJLUtrLLeuhj>Lh]hjubjf)rML}rNL(hUh}rOL(h]h]h]h]rPLjJLah]uhj>Lh]hjiubj)rQL}rRL(hX:envvar:`CELERY_LOADER`rSLhj>Lhhhjh}rTL(UreftypeXenvvarjjjILU refdomainXstdrULh]h]U refexplicith]h]h]jjuhMZ h]rVLj)rWL}rXL(hjSLh}rYL(h]h]rZL(jjULX std-envvarr[Leh]h]h]uhjQLh]r\LhX CELERY_LOADERr]Lr^L}r_L(hUhjWLubahjubaubhX environment variable.r`LraL}rbL(hX environment variable.hj>Lubeubj)rcL}rdL(hUh}reL(h]h]h]h]h]uhj:Lh]rfLh)rgL}rhL(hX6This may help on windows where fork emulation is used.riLhjcLhhhjh}rjL(h]h]h]h]h]uhM] h]rkLhX6This may help on windows where fork emulation is used.rlLrmL}rnL(hjiLhjgLubaubahjubeubh)roL}rpL(hXETA no longer sends datetime objects, but uses ISO 8601 date format in a string for better compatibility with other platforms. hjKhhhjh}rqL(h]h]h]h]h]uhNhhh]rrLh)rsL}rtL(hX~ETA no longer sends datetime objects, but uses ISO 8601 date format in a string for better compatibility with other platforms.ruLhjoLhhhjh}rvL(h]h]h]h]h]uhM_ h]rwLhX~ETA no longer sends datetime objects, but uses ISO 8601 date format in a string for better compatibility with other platforms.rxLryL}rzL(hjuLhjsLubaubaubh)r{L}r|L(hX/No longer sends error mails for retried tasks. hjKhhhjh}r}L(h]h]h]h]h]uhNhhh]r~Lh)rL}rL(hX.No longer sends error mails for retried tasks.rLhj{Lhhhjh}rL(h]h]h]h]h]uhMb h]rLhX.No longer sends error mails for retried tasks.rLrL}rL(hjLhjLubaubaubh)rL}rL(hX9Task can now override the backend used to store results. hjKhhhjh}rL(h]h]h]h]h]uhNhhh]rLh)rL}rL(hX8Task can now override the backend used to store results.rLhjLhhhjh}rL(h]h]h]h]h]uhMd h]rLhX8Task can now override the backend used to store results.rLrL}rL(hjLhjLubaubaubh)rL}rL(hX~Refactored the ExecuteWrapper, ``apply`` and :setting:`CELERY_ALWAYS_EAGER` now also executes the task callbacks and signals. hjKhhhjh}rL(h]h]h]h]h]uhNhhh]rLh)rL}rL(hX}Refactored the ExecuteWrapper, ``apply`` and :setting:`CELERY_ALWAYS_EAGER` now also executes the task callbacks and signals.hjLhhhjh}rL(h]h]h]h]h]uhMf h]rL(hXRefactored the ExecuteWrapper, rLrL}rL(hXRefactored the ExecuteWrapper, hjLubj)rL}rL(hX ``apply``h}rL(h]h]h]h]h]uhjLh]rLhXapplyrLrL}rL(hUhjLubahjubhX and rLrL}rL(hX and hjLubj)rL}rL(hX:setting:`CELERY_ALWAYS_EAGER`rLhjLhhhjh}rL(UreftypeXsettingjjXCELERY_ALWAYS_EAGERU refdomainXstdrLh]h]U refexplicith]h]h]jjuhMf h]rLj)rL}rL(hjLh}rL(h]h]rL(jjLX std-settingrLeh]h]h]uhjLh]rLhXCELERY_ALWAYS_EAGERrLrL}rL(hUhjLubahjubaubhX2 now also executes the task callbacks and signals.rLrL}rL(hX2 now also executes the task callbacks and signals.hjLubeubaubh)rL}rL(hXNow using a proper scheduler for the tasks with an ETA. This means waiting eta tasks are sorted by time, so we don't have to poll the whole list all the time. hjKhhhjh}rL(h]h]h]h]h]uhNhhh]rL(h)rL}rL(hX7Now using a proper scheduler for the tasks with an ETA.rLhjLhhhjh}rL(h]h]h]h]h]uhMi h]rLhX7Now using a proper scheduler for the tasks with an ETA.rLrL}rL(hjLhjLubaubj)rL}rL(hUh}rL(h]h]h]h]h]uhjLh]rLh)rL}rL(hXfThis means waiting eta tasks are sorted by time, so we don't have to poll the whole list all the time.rLhjLhhhjh}rL(h]h]h]h]h]uhMk h]rLhXfThis means waiting eta tasks are sorted by time, so we don't have to poll the whole list all the time.rLrL}rL(hjLhjLubaubahjubeubh)rL}rL(hXgNow also imports modules listed in :setting:`CELERY_IMPORTS` when running with django (as documented). hjKhhhjh}rL(h]h]h]h]h]uhNhhh]rLh)rL}rL(hXfNow also imports modules listed in :setting:`CELERY_IMPORTS` when running with django (as documented).hjLhhhjh}rL(h]h]h]h]h]uhMn h]rL(hX#Now also imports modules listed in rLrL}rL(hX#Now also imports modules listed in hjLubj)rL}rL(hX:setting:`CELERY_IMPORTS`rLhjLhhhjh}rL(UreftypeXsettingjjXCELERY_IMPORTSU refdomainXstdrLh]h]U refexplicith]h]h]jjuhMn h]rLj)rL}rL(hjLh}rL(h]h]rL(jjLX std-settingrLeh]h]h]uhjLh]rLhXCELERY_IMPORTSrLrL}rL(hUhjLubahjubaubhX* when running with django (as documented).rLrL}rL(hX* when running with django (as documented).hjLubeubaubh)rL}rL(hX7Log level for stdout/stderr changed from INFO to ERROR hjKhhhjh}rL(h]h]h]h]h]uhNhhh]rLh)rL}rL(hX6Log level for stdout/stderr changed from INFO to ERRORrLhjLhhhjh}rL(h]h]h]h]h]uhMq h]rLhX6Log level for stdout/stderr changed from INFO to ERRORrLrL}rL(hjLhjLubaubaubh)rL}rL(hXEImportErrors are now properly propagated when autodiscovering tasks. hjKhhhjh}rL(h]h]h]h]h]uhNhhh]rLh)rL}rM(hXDImportErrors are now properly propagated when autodiscovering tasks.rMhjLhhhjh}rM(h]h]h]h]h]uhMs h]rMhXDImportErrors are now properly propagated when autodiscovering tasks.rMrM}rM(hjMhjLubaubaubh)rM}rM(hXcYou can now use ``celery.messaging.establish_connection`` to establish a connection to the broker. hjKhhhjh}r M(h]h]h]h]h]uhNhhh]r Mh)r M}r M(hXbYou can now use ``celery.messaging.establish_connection`` to establish a connection to the broker.hjMhhhjh}r M(h]h]h]h]h]uhMu h]rM(hXYou can now use rMrM}rM(hXYou can now use hj Mubj)rM}rM(hX)``celery.messaging.establish_connection``h}rM(h]h]h]h]h]uhj Mh]rMhX%celery.messaging.establish_connectionrMrM}rM(hUhjMubahjubhX) to establish a connection to the broker.rMrM}rM(hX) to establish a connection to the broker.hj Mubeubaubh)rM}rM(hXWhen running as a separate service the periodic task scheduler does some smart moves to not poll too regularly. If you need faster poll times you can lower the value of :setting:`CELERYBEAT_MAX_LOOP_INTERVAL`. hjKhhhjh}rM(h]h]h]h]h]uhNhhh]rM(h)r M}r!M(hXoWhen running as a separate service the periodic task scheduler does some smart moves to not poll too regularly.r"MhjMhhhjh}r#M(h]h]h]h]h]uhMx h]r$MhXoWhen running as a separate service the periodic task scheduler does some smart moves to not poll too regularly.r%Mr&M}r'M(hj"Mhj Mubaubj)r(M}r)M(hUh}r*M(h]h]h]h]h]uhjMh]r+Mh)r,M}r-M(hXaIf you need faster poll times you can lower the value of :setting:`CELERYBEAT_MAX_LOOP_INTERVAL`.hj(Mhhhjh}r.M(h]h]h]h]h]uhM{ h]r/M(hX9If you need faster poll times you can lower the value of r0Mr1M}r2M(hX9If you need faster poll times you can lower the value of hj,Mubj)r3M}r4M(hX':setting:`CELERYBEAT_MAX_LOOP_INTERVAL`r5Mhj,Mhhhjh}r6M(UreftypeXsettingjjXCELERYBEAT_MAX_LOOP_INTERVALU refdomainXstdr7Mh]h]U refexplicith]h]h]jjuhM{ h]r8Mj)r9M}r:M(hj5Mh}r;M(h]h]rMhXCELERYBEAT_MAX_LOOP_INTERVALr?Mr@M}rAM(hUhj9MubahjubaubhX.rBM}rCM(hX.hj,Mubeubahjubeubh)rDM}rEM(hXYou can now change periodic task intervals at runtime, by making ``run_every`` a property, or subclassing ``PeriodicTask.is_due``. hjKhhhjh}rFM(h]h]h]h]h]uhNhhh]rGMh)rHM}rIM(hXYou can now change periodic task intervals at runtime, by making ``run_every`` a property, or subclassing ``PeriodicTask.is_due``.hjDMhhhjh}rJM(h]h]h]h]h]uhM~ h]rKM(hXAYou can now change periodic task intervals at runtime, by making rLMrMM}rNM(hXAYou can now change periodic task intervals at runtime, by making hjHMubj)rOM}rPM(hX ``run_every``h}rQM(h]h]h]h]h]uhjHMh]rRMhX run_everyrSMrTM}rUM(hUhjOMubahjubhX a property, or subclassing rVMrWM}rXM(hX a property, or subclassing hjHMubj)rYM}rZM(hX``PeriodicTask.is_due``h}r[M(h]h]h]h]h]uhjHMh]r\MhXPeriodicTask.is_duer]Mr^M}r_M(hUhjYMubahjubhX.r`M}raM(hX.hjHMubeubaubh)rbM}rcM(hXThe worker now supports control commands enabled through the use of a broadcast queue, you can remotely revoke tasks or set the rate limit for a task type. See :mod:`celery.task.control`. hjKhhhjh}rdM(h]h]h]h]h]uhNhhh]reMh)rfM}rgM(hXThe worker now supports control commands enabled through the use of a broadcast queue, you can remotely revoke tasks or set the rate limit for a task type. See :mod:`celery.task.control`.hjbMhhhjh}rhM(h]h]h]h]h]uhM h]riM(hXThe worker now supports control commands enabled through the use of a broadcast queue, you can remotely revoke tasks or set the rate limit for a task type. See rjMrkM}rlM(hXThe worker now supports control commands enabled through the use of a broadcast queue, you can remotely revoke tasks or set the rate limit for a task type. See hjfMubj)rmM}rnM(hX:mod:`celery.task.control`roMhjfMhhhjh}rpM(UreftypeXmodjjXcelery.task.controlU refdomainXpyrqMh]h]U refexplicith]h]h]jjj Nj NuhM h]rrMj)rsM}rtM(hjoMh}ruM(h]h]rvM(jjqMXpy-modrwMeh]h]h]uhjmMh]rxMhXcelery.task.controlryMrzM}r{M(hUhjsMubahjubaubhX.r|M}r}M(hX.hjfMubeubaubh)r~M}rM(hX~The services now sets informative process names (as shown in ``ps`` listings) if the :mod:`setproctitle` module is installed. hjKhhhjh}rM(h]h]h]h]h]uhNhhh]rMh)rM}rM(hX}The services now sets informative process names (as shown in ``ps`` listings) if the :mod:`setproctitle` module is installed.hj~Mhhhjh}rM(h]h]h]h]h]uhM h]rM(hX=The services now sets informative process names (as shown in rMrM}rM(hX=The services now sets informative process names (as shown in hjMubj)rM}rM(hX``ps``h}rM(h]h]h]h]h]uhjMh]rMhXpsrMrM}rM(hUhjMubahjubhX listings) if the rMrM}rM(hX listings) if the hjMubj)rM}rM(hX:mod:`setproctitle`rMhjMhhhjh}rM(UreftypeXmodjjX setproctitleU refdomainXpyrMh]h]U refexplicith]h]h]jjj Nj NuhM h]rMj)rM}rM(hjMh}rM(h]h]rM(jjMXpy-modrMeh]h]h]uhjMh]rMhX setproctitlerMrM}rM(hUhjMubahjubaubhX module is installed.rMrM}rM(hX module is installed.hjMubeubaubh)rM}rM(hX:exc:`celery.exceptions.NotRegistered` now inherits from :exc:`KeyError`, and ``TaskRegistry.__getitem__``+``pop`` raises ``NotRegistered`` instead hjKhhhjh}rM(h]h]h]h]h]uhNhhh]rMh)rM}rM(hX:exc:`celery.exceptions.NotRegistered` now inherits from :exc:`KeyError`, and ``TaskRegistry.__getitem__``+``pop`` raises ``NotRegistered`` insteadhjMhhhjh}rM(h]h]h]h]h]uhM h]rM(j)rM}rM(hX&:exc:`celery.exceptions.NotRegistered`rMhjMhhhjh}rM(UreftypeXexcjjXcelery.exceptions.NotRegisteredU refdomainXpyrMh]h]U refexplicith]h]h]jjj Nj NuhM h]rMj)rM}rM(hjMh}rM(h]h]rM(jjMXpy-excrMeh]h]h]uhjMh]rMhXcelery.exceptions.NotRegisteredrMrM}rM(hUhjMubahjubaubhX now inherits from rMrM}rM(hX now inherits from hjMubj)rM}rM(hX:exc:`KeyError`rMhjMhhhjh}rM(UreftypeXexcjjXKeyErrorU refdomainXpyrMh]h]U refexplicith]h]h]jjj Nj NuhM h]rMj)rM}rM(hjMh}rM(h]h]rM(jjMXpy-excrMeh]h]h]uhjMh]rMhXKeyErrorrMrM}rM(hUhjMubahjubaubhX, and rMrM}rM(hX, and hjMubj)rM}rM(hX$``TaskRegistry.__getitem__``+``pop``h}rM(h]h]h]h]h]uhjMh]rMhX TaskRegistry.__getitem__``+``poprMrM}rM(hUhjMubahjubhX raises rMrM}rM(hX raises hjMubj)rM}rM(hX``NotRegistered``h}rM(h]h]h]h]h]uhjMh]rMhX NotRegisteredrMrM}rM(hUhjMubahjubhX insteadrMrM}rM(hX insteadhjMubeubaubh)rM}rM(hXMYou can set the loader via the :envvar:`CELERY_LOADER` environment variable. hjKhhhjh}rM(h]h]h]h]h]uhNhhh]rMh)rM}rM(hXLYou can set the loader via the :envvar:`CELERY_LOADER` environment variable.hjMhhhjh}rM(h]h]h]h]h]uhM h]rM(hXYou can set the loader via the rMrM}rM(hXYou can set the loader via the hjMubj)rM}rM(hUh}rM(h]h]h]h]h]j)]rM((j?X CELERY_LOADERrMUindex-6rMUtrM(j?X#environment variable; CELERY_LOADERjMUtrMeuhjMh]hjubjf)rM}rM(hUh}rM(h]h]h]h]rMjMah]uhjMh]hjiubj)rM}rM(hX:envvar:`CELERY_LOADER`rMhjMhhhjh}rM(UreftypeXenvvarjjjMU refdomainXstdrNh]h]U refexplicith]h]h]jjuhM h]rNj)rN}rN(hjMh}rN(h]h]rN(jjNX std-envvarrNeh]h]h]uhjMh]rNhX CELERY_LOADERrNr N}r N(hUhjNubahjubaubhX environment variable.r Nr N}r N(hX environment variable.hjMubeubaubh)rN}rN(hXYou can now set :setting:`CELERY_IGNORE_RESULT` to ignore task results by default (if enabled, tasks doesn't save results or errors to the backend used). hjKhhhjh}rN(h]h]h]h]h]uhNhhh]rNh)rN}rN(hXYou can now set :setting:`CELERY_IGNORE_RESULT` to ignore task results by default (if enabled, tasks doesn't save results or errors to the backend used).hjNhhhjh}rN(h]h]h]h]h]uhM h]rN(hXYou can now set rNrN}rN(hXYou can now set hjNubj)rN}rN(hX:setting:`CELERY_IGNORE_RESULT`rNhjNhhhjh}rN(UreftypeXsettingjjXCELERY_IGNORE_RESULTU refdomainXstdrNh]h]U refexplicith]h]h]jjuhM h]rNj)rN}r N(hjNh}r!N(h]h]r"N(jjNX std-settingr#Neh]h]h]uhjNh]r$NhXCELERY_IGNORE_RESULTr%Nr&N}r'N(hUhjNubahjubaubhXj to ignore task results by default (if enabled, tasks doesn't save results or errors to the backend used).r(Nr)N}r*N(hXj to ignore task results by default (if enabled, tasks doesn't save results or errors to the backend used).hjNubeubaubh)r+N}r,N(hXvceleryd now correctly handles malformed messages by throwing away and acknowledging the message, instead of crashing. hjKhhhjh}r-N(h]h]h]h]h]uhNhhh]r.Nh)r/N}r0N(hXuceleryd now correctly handles malformed messages by throwing away and acknowledging the message, instead of crashing.r1Nhj+Nhhhjh}r2N(h]h]h]h]h]uhM h]r3NhXuceleryd now correctly handles malformed messages by throwing away and acknowledging the message, instead of crashing.r4Nr5N}r6N(hj1Nhj/Nubaubaubeubjf)r7N}r8N(hX.. _v100-bugs:hjKhhhjih}r9N(h]h]h]h]h]jkU v100-bugsr:NuhM hhh]ubeubh)r;N}rN(h]h]h]h]r?N(jj:Neh]r@N(hhWeuhM hhjt}rANj:Nj7Nsh]rBN(h)rCN}rDN(hjhj;Nhhhhh}rEN(h]h]h]h]h]jkjuhM hhh]rFNhXBugsrGNrHN}rIN(hjhjCNubaubh)rJN}rKN(hUhj;Nhhhhh}rLN(jX*h]h]h]h]h]uhM hhh]rMNh)rNN}rON(hXUFixed a race condition that could happen while storing task results in the database. hjJNhhhjh}rPN(h]h]h]h]h]uhNhhh]rQNh)rRN}rSN(hXTFixed a race condition that could happen while storing task results in the database.rTNhjNNhhhjh}rUN(h]h]h]h]h]uhM h]rVNhXTFixed a race condition that could happen while storing task results in the database.rWNrXN}rYN(hjTNhjRNubaubaubaubjf)rZN}r[N(hX.. _v100-documentation:hj;Nhhhjih}r\N(h]h]h]h]h]jkjuhM hhh]ubeubh)r]N}r^N(hUhKhj\Ehhjn}r_Nh jZNshhh}r`N(h]raNX documentationrbNah]h]h]rcN(jUid32rdNeh]reNh auhM hhjt}rfNjjZNsh]rgN(h)rhN}riN(hjhj]Nhhhhh}rjN(h]h]h]h]h]jkjuhM hhh]rkNhX DocumentationrlNrmN}rnN(hjhjhNubaubh)roN}rpN(hUhj]Nhhhhh}rqN(jX*h]h]h]h]h]uhM hhh]rrNh)rsN}rtN(hXTReference now split into two sections; API reference and internal module reference. hjoNhhhjh}ruN(h]h]h]h]h]uhNhhh]rvNh)rwN}rxN(hXSReference now split into two sections; API reference and internal module reference.ryNhjsNhhhjh}rzN(h]h]h]h]h]uhM h]r{NhXSReference now split into two sections; API reference and internal module reference.r|Nr}N}r~N(hjyNhjwNubaubaubaubjf)rN}rN(hX.. _version-0.8.4:hj]Nhhhjih}rN(h]h]h]h]h]jkjuhM hhh]ubeubeubh)rN}rN(hUhhhhjn}rNhjNshhh}rN(h]h]h]h]rN(jUid33rNeh]rN(hjheuhM hhjt}rNjjNsh]rN(h)rN}rN(hjhjNhhhhh}rN(h]h]h]h]h]jkjuhM hhh]rNhX0.8.4rNrN}rN(hjhjNubaubj)rN}rN(hUhjNhhhjh}rN(h]h]h]h]h]uhM hhh]rNj)rN}rN(hUhjNhhhjh}rN(h]h]h]h]h]uhM hhh]rN(j)rN}rN(hX release-daterNh}rN(h]h]h]h]h]uhjNh]rNhX release-daterNrN}rN(hjNhjNubahjubj)rN}rN(hX2010-02-05 01:52 P.M CEST h}rN(h]h]h]h]h]uhjNh]rNh)rN}rN(hX2010-02-05 01:52 P.M CESTrNhjNhhhjh}rN(h]h]h]h]h]uhM h]rNhX2010-02-05 01:52 P.M CESTrNrN}rN(hjNhjNubaubahjubeubaubh)rN}rN(hUhjNhhhhh}rN(jX*h]h]h]h]h]uhM hhh]rN(h)rN}rN(hXNow emits a warning if the --detach argument is used. --detach should not be used anymore, as it has several not easily fixed bugs related to it. Instead, use something like start-stop-daemon, Supervisord or launchd (os x). hjNhhhjh}rN(h]h]h]h]h]uhNhhh]rNh)rN}rN(hXNow emits a warning if the --detach argument is used. --detach should not be used anymore, as it has several not easily fixed bugs related to it. Instead, use something like start-stop-daemon, Supervisord or launchd (os x).rNhjNhhhjh}rN(h]h]h]h]h]uhM h]rNhXNow emits a warning if the --detach argument is used. --detach should not be used anymore, as it has several not easily fixed bugs related to it. Instead, use something like start-stop-daemon, Supervisord or launchd (os x).rNrN}rN(hjNhjNubaubaubh)rN}rN(hXIMake sure logger class is process aware, even if running Python >= 2.6. hjNhhhjh}rN(h]h]h]h]h]uhNhhh]rNh)rN}rN(hXGMake sure logger class is process aware, even if running Python >= 2.6.rNhjNhhhjh}rN(h]h]h]h]h]uhM h]rNhXGMake sure logger class is process aware, even if running Python >= 2.6.rNrN}rN(hjNhjNubaubaubh)rN}rN(hX=Error e-mails are not sent anymore when the task is retried. hjNhhhjh}rN(h]h]h]h]h]uhNhhh]rNh)rN}rN(hX<Error e-mails are not sent anymore when the task is retried.rNhjNhhhjh}rN(h]h]h]h]h]uhM h]rNhX<Error e-mails are not sent anymore when the task is retried.rNrN}rN(hjNhjNubaubaubeubjf)rN}rN(hX.. _version-0.8.3:hjNhhhjih}rN(h]h]h]h]h]jkjuhM hhh]ubeubh)rN}rN(hUhhhhjn}rNhjNshhh}rN(h]h]h]h]rN(jUid34rNeh]rN(hmheuhM hhjt}rNjjNsh]rN(h)rN}rN(hjhjNhhhhh}rN(h]h]h]h]h]jkjuhM hhh]rNhX0.8.3rNrN}rN(hjhjNubaubj)rN}rN(hUhjNhhhjh}rN(h]h]h]h]h]uhM hhh]rNj)rN}rN(hUhjNhhhjh}rN(h]h]h]h]h]uhM hhh]rN(j)rN}rN(hX release-daterNh}rN(h]h]h]h]h]uhjNh]rNhX release-daterNrN}rN(hjNhjNubahjubj)rN}rN(hX2009-12-22 09:43 A.M CEST h}rN(h]h]h]h]h]uhjNh]rNh)rN}rN(hX2009-12-22 09:43 A.M CESTrNhjNhhhjh}rO(h]h]h]h]h]uhM h]rOhX2009-12-22 09:43 A.M CESTrOrO}rO(hjNhjNubaubahjubeubaubh)rO}rO(hUhjNhhhhh}rO(jX*h]h]h]h]h]uhM hhh]rO(h)r O}r O(hXqFixed a possible race condition that could happen when storing/querying task results using the database backend. hjOhhhjh}r O(h]h]h]h]h]uhNhhh]r Oh)r O}rO(hXpFixed a possible race condition that could happen when storing/querying task results using the database backend.rOhj Ohhhjh}rO(h]h]h]h]h]uhM h]rOhXpFixed a possible race condition that could happen when storing/querying task results using the database backend.rOrO}rO(hjOhj Oubaubaubh)rO}rO(hXNow has console script entry points in the setup.py file, so tools like Buildout will correctly install the programs celeryd and celeryinit. hjOhhhjh}rO(h]h]h]h]h]uhNhhh]rOh)rO}rO(hXNow has console script entry points in the setup.py file, so tools like Buildout will correctly install the programs celeryd and celeryinit.rOhjOhhhjh}rO(h]h]h]h]h]uhM h]rOhXNow has console script entry points in the setup.py file, so tools like Buildout will correctly install the programs celeryd and celeryinit.rOrO}r O(hjOhjOubaubaubeubjf)r!O}r"O(hX.. _version-0.8.2:hjNhhhjih}r#O(h]h]h]h]h]jkjuhM hhh]ubeubh)r$O}r%O(hUhhhhjn}r&Ohj!Oshhh}r'O(h]h]h]h]r(O(jUid35r)Oeh]r*O(hnheuhM hhjt}r+Ojj!Osh]r,O(h)r-O}r.O(hjhj$Ohhhhh}r/O(h]h]h]h]h]jkjuhM hhh]r0OhX0.8.2r1Or2O}r3O(hjhj-Oubaubj)r4O}r5O(hUhj$Ohhhjh}r6O(h]h]h]h]h]uhM hhh]r7Oj)r8O}r9O(hUhj4Ohhhjh}r:O(h]h]h]h]h]uhM hhh]r;O(j)rOh}r?O(h]h]h]h]h]uhj8Oh]r@OhX release-daterAOrBO}rCO(hj>OhjPah]h]h]r?P(j1Uid37r@Peh]rAPhXauhM hhjt}rBPj1j6Psh]rCP(h)rDP}rEP(hj6hj9Phhhhh}rFP(h]h]h]h]h]jkj0uhM hhh]rGPhXChangesrHPrIP}rJP(hj6hjDPubaubh)rKP}rLP(hUhj9Phhhhh}rMP(jX*h]h]h]h]h]uhM hhh]rNP(h)rOP}rPP(hXVIncorporated the multiprocessing backport patch that fixes the ``processName`` error. hjKPhhhjh}rQP(h]h]h]h]h]uhNhhh]rRPh)rSP}rTP(hXUIncorporated the multiprocessing backport patch that fixes the ``processName`` error.hjOPhhhjh}rUP(h]h]h]h]h]uhM h]rVP(hX?Incorporated the multiprocessing backport patch that fixes the rWPrXP}rYP(hX?Incorporated the multiprocessing backport patch that fixes the hjSPubj)rZP}r[P(hX``processName``h}r\P(h]h]h]h]h]uhjSPh]r]PhX processNamer^Pr_P}r`P(hUhjZPubahjubhX error.raPrbP}rcP(hX error.hjSPubeubaubh)rdP}reP(hX0Ignore the result of PeriodicTask's by default. hjKPhhhjh}rfP(h]h]h]h]h]uhNhhh]rgPh)rhP}riP(hX/Ignore the result of PeriodicTask's by default.rjPhjdPhhhjh}rkP(h]h]h]h]h]uhM h]rlPhX/Ignore the result of PeriodicTask's by default.rmPrnP}roP(hjjPhjhPubaubaubh)rpP}rqP(hX#Added a Redis result store backend hjKPhhhjh}rrP(h]h]h]h]h]uhNhhh]rsPh)rtP}ruP(hX"Added a Redis result store backendrvPhjpPhhhjh}rwP(h]h]h]h]h]uhM h]rxPhX"Added a Redis result store backendryPrzP}r{P(hjvPhjtPubaubaubh)r|P}r}P(hXUAllow /etc/default/celeryd to define additional options for the celeryd init script. hjKPhhhjh}r~P(h]h]h]h]h]uhNhhh]rPh)rP}rP(hXTAllow /etc/default/celeryd to define additional options for the celeryd init script.rPhj|Phhhjh}rP(h]h]h]h]h]uhM h]rPhXTAllow /etc/default/celeryd to define additional options for the celeryd init script.rPrP}rP(hjPhjPubaubaubh)rP}rP(hXGMongoDB periodic tasks issue when using different time than UTC fixed. hjKPhhhjh}rP(h]h]h]h]h]uhNhhh]rPh)rP}rP(hXFMongoDB periodic tasks issue when using different time than UTC fixed.rPhjPhhhjh}rP(h]h]h]h]h]uhM h]rPhXFMongoDB periodic tasks issue when using different time than UTC fixed.rPrP}rP(hjPhjPubaubaubh)rP}rP(hXGWindows specific: Negate test for available os.fork (thanks miracle2k) hjKPhhhjh}rP(h]h]h]h]h]uhNhhh]rPh)rP}rP(hXFWindows specific: Negate test for available os.fork (thanks miracle2k)rPhjPhhhjh}rP(h]h]h]h]h]uhM h]rPhXFWindows specific: Negate test for available os.fork (thanks miracle2k)rPrP}rP(hjPhjPubaubaubh)rP}rP(hX&Now tried to handle broken PID files. hjKPhhhjh}rP(h]h]h]h]h]uhNhhh]rPh)rP}rP(hX%Now tried to handle broken PID files.rPhjPhhhjh}rP(h]h]h]h]h]uhM h]rPhX%Now tried to handle broken PID files.rPrP}rP(hjPhjPubaubaubh)rP}rP(hXvAdded a Django test runner to contrib that sets ``CELERY_ALWAYS_EAGER = True`` for testing with the database backend. hjKPhhhjh}rP(h]h]h]h]h]uhNhhh]rPh)rP}rP(hXuAdded a Django test runner to contrib that sets ``CELERY_ALWAYS_EAGER = True`` for testing with the database backend.hjPhhhjh}rP(h]h]h]h]h]uhM h]rP(hX0Added a Django test runner to contrib that sets rPrP}rP(hX0Added a Django test runner to contrib that sets hjPubj)rP}rP(hX``CELERY_ALWAYS_EAGER = True``h}rP(h]h]h]h]h]uhjPh]rPhXCELERY_ALWAYS_EAGER = TruerPrP}rP(hUhjPubahjubhX' for testing with the database backend.rPrP}rP(hX' for testing with the database backend.hjPubeubaubh)rP}rP(hXpAdded a :setting:`CELERY_CACHE_BACKEND` setting for using something other than the django-global cache backend. hjKPhhhjh}rP(h]h]h]h]h]uhNhhh]rPh)rP}rP(hXoAdded a :setting:`CELERY_CACHE_BACKEND` setting for using something other than the django-global cache backend.hjPhhhjh}rP(h]h]h]h]h]uhM h]rP(hXAdded a rPrP}rP(hXAdded a hjPubj)rP}rP(hX:setting:`CELERY_CACHE_BACKEND`rPhjPhhhjh}rP(UreftypeXsettingjjXCELERY_CACHE_BACKENDU refdomainXstdrPh]h]U refexplicith]h]h]jjuhM h]rPj)rP}rP(hjPh}rP(h]h]rP(jjPX std-settingrPeh]h]h]uhjPh]rPhXCELERY_CACHE_BACKENDrPrP}rP(hUhjPubahjubaubhXH setting for using something other than the django-global cache backend.rPrP}rP(hXH setting for using something other than the django-global cache backend.hjPubeubaubh)rP}rP(hXUse custom implementation of functools.partial (curry) for Python 2.4 support (Probably still problems with running on 2.4, but it will eventually be supported) hjKPhhhjh}rP(h]h]h]h]h]uhNhhh]rPh)rP}rP(hXUse custom implementation of functools.partial (curry) for Python 2.4 support (Probably still problems with running on 2.4, but it will eventually be supported)rPhjPhhhjh}rP(h]h]h]h]h]uhM h]rPhXUse custom implementation of functools.partial (curry) for Python 2.4 support (Probably still problems with running on 2.4, but it will eventually be supported)rPrP}rP(hjPhjPubaubaubh)rP}rP(hXPPrepare exception to pickle when saving :state:`RETRY` status for all backends. hjKPhhhjh}rP(h]h]h]h]h]uhNhhh]rPh)rP}rP(hXOPrepare exception to pickle when saving :state:`RETRY` status for all backends.hjPhhhjh}rP(h]h]h]h]h]uhM h]rP(hX(Prepare exception to pickle when saving rPrP}rP(hX(Prepare exception to pickle when saving hjPubj)rP}rP(hX:state:`RETRY`rPhjPhhhjh}rP(UreftypeXstatejjXRETRYU refdomainXstdrPh]h]U refexplicith]h]h]jjuhM h]rPj)rP}rP(hjPh}rP(h]h]rP(jjPX std-staterPeh]h]h]uhjPh]rQhXRETRYrQrQ}rQ(hUhjPubahjubaubhX status for all backends.rQrQ}rQ(hX status for all backends.hjPubeubaubh)rQ}rQ(hXWSQLite no concurrency limit should only be effective if the database backend is used. hjKPhhhjh}r Q(h]h]h]h]h]uhNhhh]r Qh)r Q}r Q(hXUSQLite no concurrency limit should only be effective if the database backend is used.r QhjQhhhjh}rQ(h]h]h]h]h]uhM" h]rQhXUSQLite no concurrency limit should only be effective if the database backend is used.rQrQ}rQ(hj Qhj Qubaubaubeubjf)rQ}rQ(hX.. _version-0.8.0:hj9Phhhjih}rQ(h]h]h]h]h]jkjDuhM& hhh]ubeubeubh)rQ}rQ(hUhhhhjn}rQhjQshhh}rQ(h]h]h]h]rQ(jDUid38rQeh]rQ(hheuhM) hhjt}rQjDjQsh]rQ(h)rQ}r Q(hjIhjQhhhhh}r!Q(h]h]h]h]h]jkjCuhM) hhh]r"QhX0.8.0r#Qr$Q}r%Q(hjIhjQubaubj)r&Q}r'Q(hUhjQhhhjh}r(Q(h]h]h]h]h]uhM* hhh]r)Qj)r*Q}r+Q(hUhj&Qhhhjh}r,Q(h]h]h]h]h]uhM* hhh]r-Q(j)r.Q}r/Q(hX release-dater0Qh}r1Q(h]h]h]h]h]uhj*Qh]r2QhX release-dater3Qr4Q}r5Q(hj0Qhj.Qubahjubj)r6Q}r7Q(hX2009-09-22 03:06 P.M CEST h}r8Q(h]h]h]h]h]uhj*Qh]r9Qh)r:Q}r;Q(hX2009-09-22 03:06 P.M CESTrQhX2009-09-22 03:06 P.M CESTr?Qr@Q}rAQ(hjR}r?R(hX[Celery now supports task retries. See `Cookbook: Retrying Tasks`_ for more information. hj Rhhhjh}r@R(h]h]h]h]h]uhNhhh]rAR(h)rBR}rCR(hX!Celery now supports task retries.rDRhj>Rhhhjh}rER(h]h]h]h]h]uhMS h]rFRhX!Celery now supports task retries.rGRrHR}rIR(hjDRhjBRubaubj)rJR}rKR(hUh}rLR(h]h]h]h]h]uhj>Rh]rMRh)rNR}rOR(hX5See `Cookbook: Retrying Tasks`_ for more information.hjJRhhhjh}rPR(h]h]h]h]h]uhMU h]rQR(hXSee rRRrSR}rTR(hXSee hjNRubh)rUR}rVR(hX`Cookbook: Retrying Tasks`_j KhjNRhjh}rWR(UnameXCookbook: Retrying Tasksj X7http://ask.github.com/celery/cookbook/task-retries.htmlrXRh]h]h]h]h]uh]rYRhXCookbook: Retrying TasksrZRr[R}r\R(hUhjURubaubhX for more information.r]Rr^R}r_R(hX for more information.hjNRubeubahjubeubeubjf)r`R}raR(hX[.. _`Cookbook: Retrying Tasks`: http://ask.github.com/celery/cookbook/task-retries.htmlhKhjQhhhjih}rbR(j jXRh]rcRUcookbook-retrying-tasksrdRah]h]h]h]reRhtauhMW hhh]ubh)rfR}rgR(hUhjQhhhhh}rhR(jX*h]h]h]h]h]uhMZ hhh]riR(h)rjR}rkR(hXWe now have an AMQP result store backend. It uses messages to publish task return value and status. And it's incredibly fast! See issue #6 for more info! hjfRhhhjh}rlR(h]h]h]h]h]uhNhhh]rmR(h)rnR}roR(hX)We now have an AMQP result store backend.rpRhjjRhhhjh}rqR(h]h]h]h]h]uhMZ h]rrRhX)We now have an AMQP result store backend.rsRrtR}ruR(hjpRhjnRubaubj)rvR}rwR(hUh}rxR(h]h]h]h]h]uhjjRh]ryR(h)rzR}r{R(hXSIt uses messages to publish task return value and status. And it's incredibly fast!r|RhjvRhhhjh}r}R(h]h]h]h]h]uhM\ h]r~RhXSIt uses messages to publish task return value and status. And it's incredibly fast!rRrR}rR(hj|RhjzRubaubh)rR}rR(hXSee issue #6 for more info!hjvRhhhjh}rR(h]h]h]h]h]uhM_ h]rR(hX See issue rRrR}rR(hUhjRubj)rR}rR(hUh}rR(UreftypejU trackerconfigj U reftargetX6h]h]h]h]h]uhjRh]rRj)rR}rR(hX#6h}rR(h]h]rR(jjeh]h]h]uhjRh]rRhX#6rRrR}rR(hUhjRubahjubahjubhX for more info!rRrR}rR(hUhjRubeubehjubeubh)rR}rR(hX`AMQP QoS (prefetch count) implemented: This to not receive more messages than we can handle. hjfRhhhjh}rR(h]h]h]h]h]uhNhhh]rR(h)rR}rR(hX&AMQP QoS (prefetch count) implemented:rRhjRhhhjh}rR(h]h]h]h]h]uhMa h]rRhX&AMQP QoS (prefetch count) implemented:rRrR}rR(hjRhjRubaubj)rR}rR(hUh}rR(h]h]h]h]h]uhjRh]rRh)rR}rR(hX5This to not receive more messages than we can handle.rRhjRhhhjh}rR(h]h]h]h]h]uhMc h]rRhX5This to not receive more messages than we can handle.rRrR}rR(hjRhjRubaubahjubeubh)rR}rR(hXBNow redirects stdout/stderr to the celeryd log file when detached hjfRhhhjh}rR(h]h]h]h]h]uhNhhh]rRh)rR}rR(hXANow redirects stdout/stderr to the celeryd log file when detachedrRhjRhhhjh}rR(h]h]h]h]h]uhMe h]rRhXANow redirects stdout/stderr to the celeryd log file when detachedrRrR}rR(hjRhjRubaubaubh)rR}rR(hXTNow uses ``inspect.getargspec`` to only pass default arguments the task supports. hjfRhNhjh}rR(h]h]h]h]h]uhNhhh]rRj )rR}rR(hUh}rR(h]h]h]h]h]uhjRh]rRj )rR}rR(hXRNow uses ``inspect.getargspec`` to only pass default arguments the task supports. hjRhhhj h}rR(h]h]h]h]h]uhMh h]rR(j )rR}rR(hX>Now uses ``inspect.getargspec`` to only pass default argumentshjRhhhj h}rR(h]h]h]h]h]uhMh h]rR(hX Now uses rRrR}rR(hX Now uses hjRubj)rR}rR(hX``inspect.getargspec``h}rR(h]h]h]h]h]uhjRh]rRhXinspect.getargspecrRrR}rR(hUhjRubahjubhX to only pass default argumentsrRrR}rR(hX to only pass default argumentshjRubeubj5 )rR}rR(hUh}rR(h]h]h]h]h]uhjRh]rRh)rR}rR(hXthe task supports.rRhjRhhhjh}rR(h]h]h]h]h]uhMh h]rRhXthe task supports.rRrR}rR(hjRhjRubaubahjB ubeubahjC ubaubh)rR}rR(hXAdd Task.on_success, .on_retry, .on_failure handlers See :meth:`celery.task.base.Task.on_success`, :meth:`celery.task.base.Task.on_retry`, :meth:`celery.task.base.Task.on_failure`, hjfRhNhjh}rR(h]h]h]h]h]uhNhhh]rRj )rR}rR(hUh}rR(h]h]h]h]h]uhjRh]rRj )rR}rR(hXAdd Task.on_success, .on_retry, .on_failure handlers See :meth:`celery.task.base.Task.on_success`, :meth:`celery.task.base.Task.on_retry`, :meth:`celery.task.base.Task.on_failure`, hjRhhhj h}rR(h]h]h]h]h]uhMm h]rR(j )rR}rR(hX4Add Task.on_success, .on_retry, .on_failure handlersrRhjRhhhj h}rR(h]h]h]h]h]uhMm h]rRhX4Add Task.on_success, .on_retry, .on_failure handlersrRrR}rR(hjRhjRubaubj5 )rR}rR(hUh}rR(h]h]h]h]h]uhjRh]rRj )rR}rR(hUh}rR(h]h]h]h]h]uhjRh]rSj )rS}rS(hXSee :meth:`celery.task.base.Task.on_success`, :meth:`celery.task.base.Task.on_retry`, :meth:`celery.task.base.Task.on_failure`, hjRhhhj h}rS(h]h]h]h]h]uhMm h]rS(j )rS}rS(hX-See :meth:`celery.task.base.Task.on_success`,hjShhhj h}rS(h]h]h]h]h]uhMm h]rS(hXSee r Sr S}r S(hXSee hjSubj)r S}r S(hX(:meth:`celery.task.base.Task.on_success`rShjShhhjh}rS(UreftypeXmethjjX celery.task.base.Task.on_successU refdomainXpyrSh]h]U refexplicith]h]h]jjj Nj NuhMm h]rSj)rS}rS(hjSh}rS(h]h]rS(jjSXpy-methrSeh]h]h]uhj Sh]rShX"celery.task.base.Task.on_success()rSrS}rS(hUhjSubahjubaubhX,rS}rS(hX,hjSubeubj5 )rS}rS(hUh}rS(h]h]h]h]h]uhjSh]r Sh)r!S}r"S(hXQ:meth:`celery.task.base.Task.on_retry`, :meth:`celery.task.base.Task.on_failure`,hjShhhjh}r#S(h]h]h]h]h]uhMl h]r$S(j)r%S}r&S(hX&:meth:`celery.task.base.Task.on_retry`r'Shj!Shhhjh}r(S(UreftypeXmethjjXcelery.task.base.Task.on_retryU refdomainXpyr)Sh]h]U refexplicith]h]h]jjj Nj NuhMl h]r*Sj)r+S}r,S(hj'Sh}r-S(h]h]r.S(jj)SXpy-methr/Seh]h]h]uhj%Sh]r0ShX celery.task.base.Task.on_retry()r1Sr2S}r3S(hUhj+SubahjubaubhX, r4Sr5S}r6S(hX, hj!Subj)r7S}r8S(hX(:meth:`celery.task.base.Task.on_failure`r9Shj!Shhhjh}r:S(UreftypeXmethjjX celery.task.base.Task.on_failureU refdomainXpyr;Sh]h]U refexplicith]h]h]jjj Nj NuhMl h]rS(hj9Sh}r?S(h]h]r@S(jj;SXpy-methrASeh]h]h]uhj7Sh]rBShX"celery.task.base.Task.on_failure()rCSrDS}rES(hUhj=SubahjubaubhX,rFS}rGS(hX,hj!SubeubahjB ubeubahjC ubahjB ubeubahjC ubaubh)rHS}rIS(hXR``celery.utils.gen_unique_id``: Workaround for http://bugs.python.org/issue4607 hjfRhNhjh}rJS(h]h]h]h]h]uhNhhh]rKSj )rLS}rMS(hUh}rNS(h]h]h]h]h]uhjHSh]rOSj )rPS}rQS(hXP``celery.utils.gen_unique_id``: Workaround for http://bugs.python.org/issue4607 hjLShhhj h}rRS(h]h]h]h]h]uhMp h]rSS(j )rTS}rUS(hX.``celery.utils.gen_unique_id``: Workaround forhjPShhhj h}rVS(h]h]h]h]h]uhMp h]rWS(j)rXS}rYS(hX``celery.utils.gen_unique_id``h}rZS(h]h]h]h]h]uhjTSh]r[ShXcelery.utils.gen_unique_idr\Sr]S}r^S(hUhjXSubahjubhX: Workaround forr_Sr`S}raS(hX: Workaround forhjTSubeubj5 )rbS}rcS(hUh}rdS(h]h]h]h]h]uhjPSh]reSh)rfS}rgS(hX http://bugs.python.org/issue4607rhShjbShhhjh}riS(h]h]h]h]h]uhMp h]rjSh)rkS}rlS(hjhSh}rmS(UrefurijhSh]h]h]h]h]uhjfSh]rnShX http://bugs.python.org/issue4607roSrpS}rqS(hUhjkSubahjubaubahjB ubeubahjC ubaubh)rrS}rsS(hXYou can now customize what happens at worker start, at process init, etc., by creating your own loaders. (see :mod:`celery.loaders.default`, :mod:`celery.loaders.djangoapp`, :mod:`celery.loaders`.) hjfRhNhjh}rtS(h]h]h]h]h]uhNhhh]ruSj )rvS}rwS(hUh}rxS(h]h]h]h]h]uhjrSh]rySj )rzS}r{S(hXYou can now customize what happens at worker start, at process init, etc., by creating your own loaders. (see :mod:`celery.loaders.default`, :mod:`celery.loaders.djangoapp`, :mod:`celery.loaders`.) hjvShhhj h}r|S(h]h]h]h]h]uhMt h]r}S(j )r~S}rS(hXJYou can now customize what happens at worker start, at process init, etc.,rShjzShhhj h}rS(h]h]h]h]h]uhMt h]rShXJYou can now customize what happens at worker start, at process init, etc.,rSrS}rS(hjShj~Subaubj5 )rS}rS(hUh}rS(h]h]h]h]h]uhjzSh]rSh)rS}rS(hXzby creating your own loaders. (see :mod:`celery.loaders.default`, :mod:`celery.loaders.djangoapp`, :mod:`celery.loaders`.)hjShhhjh}rS(h]h]h]h]h]uhMs h]rS(hX#by creating your own loaders. (see rSrS}rS(hX#by creating your own loaders. (see hjSubj)rS}rS(hX:mod:`celery.loaders.default`rShjShhhjh}rS(UreftypeXmodjjXcelery.loaders.defaultU refdomainXpyrSh]h]U refexplicith]h]h]jjj Nj NuhMs h]rSj)rS}rS(hjSh}rS(h]h]rS(jjSXpy-modrSeh]h]h]uhjSh]rShXcelery.loaders.defaultrSrS}rS(hUhjSubahjubaubhX, rSrS}rS(hX, hjSubj)rS}rS(hX:mod:`celery.loaders.djangoapp`rShjShhhjh}rS(UreftypeXmodjjXcelery.loaders.djangoappU refdomainXpyrSh]h]U refexplicith]h]h]jjj Nj NuhMs h]rSj)rS}rS(hjSh}rS(h]h]rS(jjSXpy-modrSeh]h]h]uhjSh]rShXcelery.loaders.djangoapprSrS}rS(hUhjSubahjubaubhX, rSrS}rS(hX, hjSubj)rS}rS(hX:mod:`celery.loaders`rShjShhhjh}rS(UreftypeXmodjjXcelery.loadersU refdomainXpyrSh]h]U refexplicith]h]h]jjj Nj NuhMs h]rSj)rS}rS(hjSh}rS(h]h]rS(jjSXpy-modrSeh]h]h]uhjSh]rShXcelery.loadersrSrS}rS(hUhjSubahjubaubhX.)rSrS}rS(hX.)hjSubeubahjB ubeubahjC ubaubh)rS}rS(hXSupport for multiple AMQP exchanges and queues. This feature misses documentation and tests, so anyone interested is encouraged to improve this situation. hjfRhhhjh}rS(h]h]h]h]h]uhNhhh]rS(h)rS}rS(hX/Support for multiple AMQP exchanges and queues.rShjShhhjh}rS(h]h]h]h]h]uhMv h]rShX/Support for multiple AMQP exchanges and queues.rSrS}rS(hjShjSubaubj)rS}rS(hUh}rS(h]h]h]h]h]uhjSh]rSh)rS}rS(hXjThis feature misses documentation and tests, so anyone interested is encouraged to improve this situation.rShjShhhjh}rS(h]h]h]h]h]uhMx h]rShXjThis feature misses documentation and tests, so anyone interested is encouraged to improve this situation.rSrS}rS(hjShjSubaubahjubeubh)rS}rS(hX:celeryd now survives a restart of the AMQP server! Automatically re-establish AMQP broker connection if it's lost. New settings: * AMQP_CONNECTION_RETRY Set to ``True`` to enable connection retries. * AMQP_CONNECTION_MAX_RETRIES. Maximum number of restarts before we give up. Default: ``100``. hjfRhhhjh}rS(h]h]h]h]h]uhNhhh]rS(h)rS}rS(hX2celeryd now survives a restart of the AMQP server!rShjShhhjh}rS(h]h]h]h]h]uhM{ h]rShX2celeryd now survives a restart of the AMQP server!rSrS}rS(hjShjSubaubh)rS}rS(hX?Automatically re-establish AMQP broker connection if it's lost.rShjShhhjh}rS(h]h]h]h]h]uhM} h]rShX?Automatically re-establish AMQP broker connection if it's lost.rSrS}rS(hjShjSubaubh)rS}rS(hX New settings:rShjShhhjh}rS(h]h]h]h]h]uhM h]rShX New settings:rSrS}rS(hjShjSubaubj)rS}rS(hUh}rS(h]h]h]h]h]uhjSh]rSh)rS}rT(hUh}rT(jX*h]h]h]h]h]uhjSh]rT(h)rT}rT(hXFAMQP_CONNECTION_RETRY Set to ``True`` to enable connection retries. h}rT(h]h]h]h]h]uhjSh]rTj )rT}rT(hUh}r T(h]h]h]h]h]uhjTh]r Tj )r T}r T(hXDAMQP_CONNECTION_RETRY Set to ``True`` to enable connection retries. hjThhhj h}r T(h]h]h]h]h]uhM h]rT(j )rT}rT(hXAMQP_CONNECTION_RETRYrThj Thhhj h}rT(h]h]h]h]h]uhM h]rThXAMQP_CONNECTION_RETRYrTrT}rT(hjThjTubaubj5 )rT}rT(hUh}rT(h]h]h]h]h]uhj Th]rTh)rT}rT(hX-Set to ``True`` to enable connection retries.hjThhhjh}rT(h]h]h]h]h]uhM h]rT(hXSet to rTr T}r!T(hXSet to hjTubj)r"T}r#T(hX``True``h}r$T(h]h]h]h]h]uhjTh]r%ThXTruer&Tr'T}r(T(hUhj"TubahjubhX to enable connection retries.r)Tr*T}r+T(hX to enable connection retries.hjTubeubahjB ubeubahjC ubahjubh)r,T}r-T(hX_AMQP_CONNECTION_MAX_RETRIES. Maximum number of restarts before we give up. Default: ``100``. h}r.T(h]h]h]h]h]uhjSh]r/Tj )r0T}r1T(hUh}r2T(h]h]h]h]h]uhj,Th]r3Tj )r4T}r5T(hX]AMQP_CONNECTION_MAX_RETRIES. Maximum number of restarts before we give up. Default: ``100``. hj0Thhhj h}r6T(h]h]h]h]h]uhM h]r7T(j )r8T}r9T(hXAMQP_CONNECTION_MAX_RETRIES.r:Thj4Thhhj h}r;T(h]h]h]h]h]uhM h]rT}r?T(hj:Thj8Tubaubj5 )r@T}rAT(hUh}rBT(h]h]h]h]h]uhj4Th]rCTh)rDT}rET(hX?Maximum number of restarts before we give up. Default: ``100``.rFThj@Thhhjh}rGT(h]h]h]h]h]uhM h]rHT(hX7Maximum number of restarts before we give up. Default: rITrJT}rKT(hX7Maximum number of restarts before we give up. Default: hjDTubj)rLT}rMT(hX``100``h}rNT(h]h]h]h]h]uhjDTh]rOThX100rPTrQT}rRT(hUhjLTubahjubhX.rST}rTT(hX.hjDTubeubahjB ubeubahjC ubahjubehhubahjubeubeubjf)rUT}rVT(hX.. _v080-news:hjQhhhjih}rWT(h]h]h]h]h]jkjuhM hhh]ubeubh)rXT}rYT(hUhKhjQhhjn}rZThjUTshhh}r[T(h]r\TXnewsr]Tah]h]h]r^T(jUid41r_Teh]r`ThauhM hhjt}raTjjUTsh]rbT(h)rcT}rdT(hjhjXThhhhh}reT(h]h]h]h]h]jkjuhM hhh]rfThXNewsrgTrhT}riT(hjhjcTubaubh)rjT}rkT(hUhjXThhhhh}rlT(jX*h]h]h]h]h]uhM hhh]rmT(h)rnT}roT(hXFix an incompatibility between python-daemon and multiprocessing, which resulted in the ``[Errno 10] No child processes`` problem when detaching. hjjThNhjh}rpT(h]h]h]h]h]uhNhhh]rqTj )rrT}rsT(hUh}rtT(h]h]h]h]h]uhjnTh]ruTj )rvT}rwT(hXFix an incompatibility between python-daemon and multiprocessing, which resulted in the ``[Errno 10] No child processes`` problem when detaching. hjrThhhj h}rxT(h]h]h]h]h]uhM h]ryT(j )rzT}r{T(hXAFix an incompatibility between python-daemon and multiprocessing,r|ThjvThhhj h}r}T(h]h]h]h]h]uhM h]r~ThXAFix an incompatibility between python-daemon and multiprocessing,rTrT}rT(hj|ThjzTubaubj5 )rT}rT(hUh}rT(h]h]h]h]h]uhjvTh]rTh)rT}rT(hXOwhich resulted in the ``[Errno 10] No child processes`` problem when detaching.hjThhhjh}rT(h]h]h]h]h]uhM h]rT(hXwhich resulted in the rTrT}rT(hXwhich resulted in the hjTubj)rT}rT(hX!``[Errno 10] No child processes``h}rT(h]h]h]h]h]uhjTh]rThX[Errno 10] No child processesrTrT}rT(hUhjTubahjubhX problem when detaching.rTrT}rT(hX problem when detaching.hjTubeubahjB ubeubahjC ubaubh)rT}rT(hXwFixed a possible DjangoUnicodeDecodeError being raised when saving pickled data to Django`s memcached cache backend. hjjThNhjh}rT(h]h]h]h]h]uhNhhh]rTj )rT}rT(hUh}rT(h]h]h]h]h]uhjTh]rTj )rT}rT(hXuFixed a possible DjangoUnicodeDecodeError being raised when saving pickled data to Django`s memcached cache backend. hjThhhj h}rT(h]h]h]h]h]uhM h]rT(j )rT}rT(hXJFixed a possible DjangoUnicodeDecodeError being raised when saving pickledrThjThhhj h}rT(h]h]h]h]h]uhM h]rThXJFixed a possible DjangoUnicodeDecodeError being raised when saving pickledrTrT}rT(hjThjTubaubj5 )rT}rT(hUh}rT(h]h]h]h]h]uhjTh]rTh)rT}rT(hX)data to Django`s memcached cache backend.rThjThhhjh}rT(h]h]h]h]h]uhM h]rThX)data to Django`s memcached cache backend.rTrT}rT(hjThjTubaubahjB ubeubahjC ubaubh)rT}rT(hXBetter Windows compatibility. hjjThhhjh}rT(h]h]h]h]h]uhNhhh]rTh)rT}rT(hXBetter Windows compatibility.rThjThhhjh}rT(h]h]h]h]h]uhM h]rThXBetter Windows compatibility.rTrT}rT(hjThjTubaubaubh)rT}rT(hX\New version of the pickled field (taken from http://www.djangosnippets.org/snippets/513/) hjjThNhjh}rT(h]h]h]h]h]uhNhhh]rTj )rT}rT(hUh}rT(h]h]h]h]h]uhjTh]rTj )rT}rT(hXZNew version of the pickled field (taken from http://www.djangosnippets.org/snippets/513/) hjThhhj h}rT(h]h]h]h]h]uhM h]rT(j )rT}rT(hX,New version of the pickled field (taken fromrThjThhhj h}rT(h]h]h]h]h]uhM h]rThX,New version of the pickled field (taken fromrTrT}rT(hjThjTubaubj5 )rT}rT(hUh}rT(h]h]h]h]h]uhjTh]rTh)rT}rT(hX,http://www.djangosnippets.org/snippets/513/)hjThhhjh}rT(h]h]h]h]h]uhM h]rT(h)rT}rT(hX+http://www.djangosnippets.org/snippets/513/rTh}rT(UrefurijTh]h]h]h]h]uhjTh]rThX+http://www.djangosnippets.org/snippets/513/rTrT}rT(hUhjTubahjubhX)rT}rT(hX)hjTubeubahjB ubeubahjC ubaubh)rT}rT(hXNew signals introduced: ``task_sent``, ``task_prerun`` and ``task_postrun``, see :mod:`celery.signals` for more information. hjjThNhjh}rT(h]h]h]h]h]uhNhhh]rTj )rT}rT(hUh}rT(h]h]h]h]h]uhjTh]rTj )rT}rT(hX}New signals introduced: ``task_sent``, ``task_prerun`` and ``task_postrun``, see :mod:`celery.signals` for more information. hjThhhj h}rT(h]h]h]h]h]uhM h]rT(j )rT}rT(hX:New signals introduced: ``task_sent``, ``task_prerun`` andhjThhhj h}rT(h]h]h]h]h]uhM h]rT(hXNew signals introduced: rTrT}rT(hXNew signals introduced: hjTubj)rT}rT(hX ``task_sent``h}rT(h]h]h]h]h]uhjTh]rThX task_sentrUrU}rU(hUhjTubahjubhX, rUrU}rU(hX, hjTubj)rU}rU(hX``task_prerun``h}rU(h]h]h]h]h]uhjTh]r UhX task_prerunr Ur U}r U(hUhjUubahjubhX andr UrU}rU(hX andhjTubeubj5 )rU}rU(hUh}rU(h]h]h]h]h]uhjTh]rUh)rU}rU(hXA``task_postrun``, see :mod:`celery.signals` for more information.hjUhhhjh}rU(h]h]h]h]h]uhM h]rU(j)rU}rU(hX``task_postrun``h}rU(h]h]h]h]h]uhjUh]rUhX task_postrunrUrU}rU(hUhjUubahjubhX, see rUr U}r!U(hX, see hjUubj)r"U}r#U(hX:mod:`celery.signals`r$UhjUhhhjh}r%U(UreftypeXmodjjXcelery.signalsU refdomainXpyr&Uh]h]U refexplicith]h]h]jjj Nj NuhM h]r'Uj)r(U}r)U(hj$Uh}r*U(h]h]r+U(jj&UXpy-modr,Ueh]h]h]uhj"Uh]r-UhXcelery.signalsr.Ur/U}r0U(hUhj(UubahjubaubhX for more information.r1Ur2U}r3U(hX for more information.hjUubeubahjB ubeubahjC ubaubh)r4U}r5U(hXf``TaskSetResult.join`` caused ``TypeError`` when ``timeout=None``. Thanks Jerzy Kozera. Closes #31 hjjThNhjh}r6U(h]h]h]h]h]uhNhhh]r7Uj )r8U}r9U(hUh}r:U(h]h]h]h]h]uhj4Uh]r;Uj )rU(h]h]h]h]h]uhM h]r?U(j )r@U}rAU(hXB``TaskSetResult.join`` caused ``TypeError`` when ``timeout=None``.hjV}r?V(hX?jail() refactored into :class:`celery.execute.ExecuteWrapper`. hjjThhhjh}r@V(h]h]h]h]h]uhNhhh]rAVh)rBV}rCV(hX>jail() refactored into :class:`celery.execute.ExecuteWrapper`.hj>Vhhhjh}rDV(h]h]h]h]h]uhM h]rEV(hXjail() refactored into rFVrGV}rHV(hXjail() refactored into hjBVubj)rIV}rJV(hX&:class:`celery.execute.ExecuteWrapper`rKVhjBVhhhjh}rLV(UreftypeXclassjjXcelery.execute.ExecuteWrapperU refdomainXpyrMVh]h]U refexplicith]h]h]jjj Nj NuhM h]rNVj)rOV}rPV(hjKVh}rQV(h]h]rRV(jjMVXpy-classrSVeh]h]h]uhjIVh]rTVhXcelery.execute.ExecuteWrapperrUVrVV}rWV(hUhjOVubahjubaubhX.rXV}rYV(hX.hjBVubeubaubh)rZV}r[V(hXA`views.apply` now correctly sets mime-type to "application/json" hjjThhhjh}r\V(h]h]h]h]h]uhNhhh]r]Vh)r^V}r_V(hX@`views.apply` now correctly sets mime-type to "application/json"hjZVhhhjh}r`V(h]h]h]h]h]uhM h]raV(j()rbV}rcV(hX `views.apply`h}rdV(h]h]h]h]h]uhj^Vh]reVhX views.applyrfVrgV}rhV(hUhjbVubahj0ubhX3 now correctly sets mime-type to "application/json"riVrjV}rkV(hX3 now correctly sets mime-type to "application/json"hj^Vubeubaubh)rlV}rmV(hXG``views.task_status`` now returns exception if state is :state:`RETRY` hjjThhhjh}rnV(h]h]h]h]h]uhNhhh]roVh)rpV}rqV(hXF``views.task_status`` now returns exception if state is :state:`RETRY`hjlVhhhjh}rrV(h]h]h]h]h]uhM h]rsV(j)rtV}ruV(hX``views.task_status``h}rvV(h]h]h]h]h]uhjpVh]rwVhXviews.task_statusrxVryV}rzV(hUhjtVubahjubhX# now returns exception if state is r{Vr|V}r}V(hX# now returns exception if state is hjpVubj)r~V}rV(hX:state:`RETRY`rVhjpVhhhjh}rV(UreftypeXstatejjXRETRYU refdomainXstdrVh]h]U refexplicith]h]h]jjuhM h]rVj)rV}rV(hjVh}rV(h]h]rV(jjVX std-staterVeh]h]h]uhj~Vh]rVhXRETRYrVrV}rV(hUhjVubahjubaubeubaubh)rV}rV(hX]``views.task_status`` now returns traceback if state is :state:`FAILURE` or :state:`RETRY` hjjThNhjh}rV(h]h]h]h]h]uhNhhh]rVj )rV}rV(hUh}rV(h]h]h]h]h]uhjVh]rVj )rV}rV(hX[``views.task_status`` now returns traceback if state is :state:`FAILURE` or :state:`RETRY` hjVhhhj h}rV(h]h]h]h]h]uhM h]rV(j )rV}rV(hXH``views.task_status`` now returns traceback if state is :state:`FAILURE`hjVhhhj h}rV(h]h]h]h]h]uhM h]rV(j)rV}rV(hX``views.task_status``h}rV(h]h]h]h]h]uhjVh]rVhXviews.task_statusrVrV}rV(hUhjVubahjubhX# now returns traceback if state is rVrV}rV(hX# now returns traceback if state is hjVubj)rV}rV(hX:state:`FAILURE`rVhjVhhhjh}rV(UreftypeXstatejjXFAILUREU refdomainXstdrVh]h]U refexplicith]h]h]jjuhM h]rVj)rV}rV(hjVh}rV(h]h]rV(jjVX std-staterVeh]h]h]uhjVh]rVhXFAILURErVrV}rV(hUhjVubahjubaubeubj5 )rV}rV(hUh}rV(h]h]h]h]h]uhjVh]rVh)rV}rV(hXor :state:`RETRY`hjVhhhjh}rV(h]h]h]h]h]uhM h]rV(hXor rVrV}rV(hXor hjVubj)rV}rV(hX:state:`RETRY`rVhjVhhhjh}rV(UreftypeXstatejjXRETRYU refdomainXstdrVh]h]U refexplicith]h]h]jjuhM h]rVj)rV}rV(hjVh}rV(h]h]rV(jjVX std-staterVeh]h]h]uhjVh]rVhXRETRYrVrV}rV(hUhjVubahjubaubeubahjB ubeubahjC ubaubh)rV}rV(hX#Documented default task arguments. hjjThhhjh}rV(h]h]h]h]h]uhNhhh]rVh)rV}rV(hX"Documented default task arguments.rVhjVhhhjh}rV(h]h]h]h]h]uhM h]rVhX"Documented default task arguments.rVrV}rV(hjVhjVubaubaubh)rV}rV(hX>Add a sensible __repr__ to ExceptionInfo for easier debugging hjjThhhjh}rV(h]h]h]h]h]uhNhhh]rVh)rV}rV(hX=Add a sensible __repr__ to ExceptionInfo for easier debuggingrVhjVhhhjh}rV(h]h]h]h]h]uhM h]rVhX=Add a sensible __repr__ to ExceptionInfo for easier debuggingrVrV}rV(hjVhjVubaubaubh)rV}rV(hXRFix documentation typo `.. import map` -> `.. import dmap`. Thanks to mikedizon hjjThNhjh}rV(h]h]h]h]h]uhNhhh]rVj )rV}rV(hUh}rV(h]h]h]h]h]uhjVh]rVj )rV}rV(hXPFix documentation typo `.. import map` -> `.. import dmap`. Thanks to mikedizon hjVhhhj h}rV(h]h]h]h]h]uhM h]rV(j )rV}rV(hX;Fix documentation typo `.. import map` -> `.. import dmap`.hjVhhhj h}rV(h]h]h]h]h]uhM h]rV(hXFix documentation typo rVrV}rV(hXFix documentation typo hjVubj()rV}rV(hX`.. import map`h}rV(h]h]h]h]h]uhjVh]rVhX .. import maprVrW}rW(hUhjVubahj0ubhX -> rWrW}rW(hX -> hjVubj()rW}rW(hX`.. import dmap`h}rW(h]h]h]h]h]uhjVh]rWhX.. import dmapr Wr W}r W(hUhjWubahj0ubhX.r W}r W(hX.hjVubeubj5 )rW}rW(hUh}rW(h]h]h]h]h]uhjVh]rWh)rW}rW(hXThanks to mikedizonrWhjWhhhjh}rW(h]h]h]h]h]uhM h]rWhXThanks to mikedizonrWrW}rW(hjWhjWubaubahjB ubeubahjC ubaubeubjf)rW}rW(hX.. _version-0.6.0:hjXThhhjih}rW(h]h]h]h]h]jkjuhM hhh]ubeubeubh)rW}rW(hUhhhhjn}rWh%jWshhh}r W(h]h]h]h]r!W(jUid42r"Weh]r#W(hbh%euhM hhjt}r$WjjWsh]r%W(h)r&W}r'W(hjhjWhhhhh}r(W(h]h]h]h]h]jkjuhM hhh]r)WhX0.6.0r*Wr+W}r,W(hjhj&Wubaubj)r-W}r.W(hUhjWhhhjh}r/W(h]h]h]h]h]uhM hhh]r0Wj)r1W}r2W(hUhj-Whhhjh}r3W(h]h]h]h]h]uhM hhh]r4W(j)r5W}r6W(hX release-dater7Wh}r8W(h]h]h]h]h]uhj1Wh]r9WhX release-dater:Wr;W}rW(hX2009-08-07 06:54 A.M CET h}r?W(h]h]h]h]h]uhj1Wh]r@Wh)rAW}rBW(hX2009-08-07 06:54 A.M CETrCWhj=Whhhjh}rDW(h]h]h]h]h]uhM h]rEWhX2009-08-07 06:54 A.M CETrFWrGW}rHW(hjCWhjAWubaubahjubeubaubjf)rIW}rJW(hX.. _v060-important:hjWhhhjih}rKW(h]h]h]h]h]jkjuhM hhh]ubh)rLW}rMW(hUhKhjWhhjn}rNWh[jIWshhh}rOW(h]rPWXimportant changesrQWah]h]h]rRW(jUid43rSWeh]rTWh[auhM hhjt}rUWjjIWsh]rVW(h)rWW}rXW(hjhjLWhhhhh}rYW(h]h]h]h]h]jkjuhM hhh]rZWhXImportant changesr[Wr\W}r]W(hjhjWWubaubh)r^W}r_W(hUhjLWhhhhh}r`W(jX*h]h]h]h]h]uhM hhh]raW(h)rbW}rcW(hXFixed a bug where tasks raising unpickleable exceptions crashed pool workers. So if you've had pool workers mysteriously disappearing, or problems with celeryd stopping working, this has been fixed in this version. hj^WhNhjh}rdW(h]h]h]h]h]uhNhhh]reWj )rfW}rgW(hUh}rhW(h]h]h]h]h]uhjbWh]riWj )rjW}rkW(hXFixed a bug where tasks raising unpickleable exceptions crashed pool workers. So if you've had pool workers mysteriously disappearing, or problems with celeryd stopping working, this has been fixed in this version. hjfWhhhj h}rlW(h]h]h]h]h]uhM h]rmW(j )rnW}roW(hXDFixed a bug where tasks raising unpickleable exceptions crashed poolrpWhjjWhhhj h}rqW(h]h]h]h]h]uhM h]rrWhXDFixed a bug where tasks raising unpickleable exceptions crashed poolrsWrtW}ruW(hjpWhjnWubaubj5 )rvW}rwW(hUh}rxW(h]h]h]h]h]uhjjWh]ryWh)rzW}r{W(hXworkers. So if you've had pool workers mysteriously disappearing, or problems with celeryd stopping working, this has been fixed in this version.r|WhjvWhhhjh}r}W(h]h]h]h]h]uhM h]r~WhXworkers. So if you've had pool workers mysteriously disappearing, or problems with celeryd stopping working, this has been fixed in this version.rWrW}rW(hj|WhjzWubaubahjB ubeubahjC ubaubh)rW}rW(hX,Fixed a race condition with periodic tasks. hj^Whhhjh}rW(h]h]h]h]h]uhNhhh]rWh)rW}rW(hX+Fixed a race condition with periodic tasks.rWhjWhhhjh}rW(h]h]h]h]h]uhM h]rWhX+Fixed a race condition with periodic tasks.rWrW}rW(hjWhjWubaubaubh)rW}rW(hXThe task pool is now supervised, so if a pool worker crashes, goes away or stops responding, it is automatically replaced with a new one. hj^WhNhjh}rW(h]h]h]h]h]uhNhhh]rWj )rW}rW(hUh}rW(h]h]h]h]h]uhjWh]rWj )rW}rW(hXThe task pool is now supervised, so if a pool worker crashes, goes away or stops responding, it is automatically replaced with a new one. hjWhhhj h}rW(h]h]h]h]h]uhM h]rW(j )rW}rW(hX=The task pool is now supervised, so if a pool worker crashes,rWhjWhhhj h}rW(h]h]h]h]h]uhM h]rWhX=The task pool is now supervised, so if a pool worker crashes,rWrW}rW(hjWhjWubaubj5 )rW}rW(hUh}rW(h]h]h]h]h]uhjWh]rWh)rW}rW(hXKgoes away or stops responding, it is automatically replaced with a new one.rWhjWhhhjh}rW(h]h]h]h]h]uhM h]rWhXKgoes away or stops responding, it is automatically replaced with a new one.rWrW}rW(hjWhjWubaubahjB ubeubahjC ubaubh)rW}rW(hXTask.name is now automatically generated out of class module+name, e.g. ``"djangotwitter.tasks.UpdateStatusesTask"``. Very convenient. No idea why we didn't do this before. Some documentation is updated to not manually specify a task name. hj^WhNhjh}rW(h]h]h]h]h]uhNhhh]rWj )rW}rW(hUh}rW(h]h]h]h]h]uhjWh]rWj )rW}rW(hXTask.name is now automatically generated out of class module+name, e.g. ``"djangotwitter.tasks.UpdateStatusesTask"``. Very convenient. No idea why we didn't do this before. Some documentation is updated to not manually specify a task name. hjWhhhj h}rW(h]h]h]h]h]uhM h]rW(j )rW}rW(hXGTask.name is now automatically generated out of class module+name, e.g.rWhjWhhhj h}rW(h]h]h]h]h]uhM h]rWhXGTask.name is now automatically generated out of class module+name, e.g.rWrW}rW(hjWhjWubaubj5 )rW}rW(hUh}rW(h]h]h]h]h]uhjWh]rWh)rW}rW(hX``"djangotwitter.tasks.UpdateStatusesTask"``. Very convenient. No idea why we didn't do this before. Some documentation is updated to not manually specify a task name.hjWhhhjh}rW(h]h]h]h]h]uhM h]rW(j)rW}rW(hX,``"djangotwitter.tasks.UpdateStatusesTask"``h}rW(h]h]h]h]h]uhjWh]rWhX("djangotwitter.tasks.UpdateStatusesTask"rWrW}rW(hUhjWubahjubhX{. Very convenient. No idea why we didn't do this before. Some documentation is updated to not manually specify a task name.rWrW}rW(hX{. Very convenient. No idea why we didn't do this before. Some documentation is updated to not manually specify a task name.hjWubeubahjB ubeubahjC ubaubeubjf)rW}rW(hX.. _v060-news:hjLWhhhjih}rW(h]h]h]h]h]jkjuhM hhh]ubeubh)rW}rW(hUhKhjWhhjn}rWhFjWshhh}rW(h]rWXnewsrWah]h]h]rW(jUid44rWeh]rWhFauhM hhjt}rWjjWsh]rW(h)rW}rW(hjhjWhhhhh}rW(h]h]h]h]h]jkjuhM hhh]rWhXNewsrWrW}rW(hjhjWubaubh)rW}rW(hUhjWhhhhh}rW(jX*h]h]h]h]h]uhM hhh]rW(h)rW}rW(hXTested with Django 1.1 hjWhhhjh}rW(h]h]h]h]h]uhNhhh]rWh)rW}rW(hXTested with Django 1.1rWhjWhhhjh}rW(h]h]h]h]h]uhM h]rWhXTested with Django 1.1rWrW}rW(hjWhjWubaubaubh)rW}rW(hX?New Tutorial: Creating a click counter using carrot and celery hjWhhhjh}rW(h]h]h]h]h]uhNhhh]rWh)rW}rW(hX>New Tutorial: Creating a click counter using carrot and celeryrWhjWhhhjh}rX(h]h]h]h]h]uhM h]rXhX>New Tutorial: Creating a click counter using carrot and celeryrXrX}rX(hjWhjWubaubaubh)rX}rX(hXDatabase entries for periodic tasks are now created at ``celeryd`` startup instead of for each check (which has been a forgotten TODO/XXX in the code for a long time) hjWhNhjh}rX(h]h]h]h]h]uhNhhh]rXj )r X}r X(hUh}r X(h]h]h]h]h]uhjXh]r Xj )r X}rX(hXDatabase entries for periodic tasks are now created at ``celeryd`` startup instead of for each check (which has been a forgotten TODO/XXX in the code for a long time) hj Xhhhj h}rX(h]h]h]h]h]uhM h]rX(j )rX}rX(hXBDatabase entries for periodic tasks are now created at ``celeryd``hj Xhhhj h}rX(h]h]h]h]h]uhM h]rX(hX7Database entries for periodic tasks are now created at rXrX}rX(hX7Database entries for periodic tasks are now created at hjXubj)rX}rX(hX ``celeryd``h}rX(h]h]h]h]h]uhjXh]rXhXcelerydrXrX}rX(hUhjXubahjubeubj5 )rX}r X(hUh}r!X(h]h]h]h]h]uhj Xh]r"Xh)r#X}r$X(hXcstartup instead of for each check (which has been a forgotten TODO/XXX in the code for a long time)r%XhjXhhhjh}r&X(h]h]h]h]h]uhM h]r'XhXcstartup instead of for each check (which has been a forgotten TODO/XXX in the code for a long time)r(Xr)X}r*X(hj%Xhj#XubaubahjB ubeubahjC ubaubh)r+X}r,X(hXNew settings variable: :setting:`CELERY_TASK_RESULT_EXPIRES` Time (in seconds, or a `datetime.timedelta` object) for when after stored task results are deleted. For the moment this only works for the database backend. hjWhNhjh}r-X(h]h]h]h]h]uhNhhh]r.Xj )r/X}r0X(hUh}r1X(h]h]h]h]h]uhj+Xh]r2Xj )r3X}r4X(hXNew settings variable: :setting:`CELERY_TASK_RESULT_EXPIRES` Time (in seconds, or a `datetime.timedelta` object) for when after stored task results are deleted. For the moment this only works for the database backend. hj/Xhhhj h}r5X(h]h]h]h]h]uhM h]r6X(j )r7X}r8X(hX<New settings variable: :setting:`CELERY_TASK_RESULT_EXPIRES`hj3Xhhhj h}r9X(h]h]h]h]h]uhM h]r:X(hXNew settings variable: r;XrX}r?X(hX%:setting:`CELERY_TASK_RESULT_EXPIRES`r@Xhj7Xhhhjh}rAX(UreftypeXsettingjjXCELERY_TASK_RESULT_EXPIRESU refdomainXstdrBXh]h]U refexplicith]h]h]jjuhM h]rCXj)rDX}rEX(hj@Xh}rFX(h]h]rGX(jjBXX std-settingrHXeh]h]h]uhj>Xh]rIXhXCELERY_TASK_RESULT_EXPIRESrJXrKX}rLX(hUhjDXubahjubaubeubj5 )rMX}rNX(hUh}rOX(h]h]h]h]h]uhj3Xh]rPXh)rQX}rRX(hXTime (in seconds, or a `datetime.timedelta` object) for when after stored task results are deleted. For the moment this only works for the database backend.hjMXhhhjh}rSX(h]h]h]h]h]uhM h]rTX(hXTime (in seconds, or a rUXrVX}rWX(hXTime (in seconds, or a hjQXubj()rXX}rYX(hX`datetime.timedelta`h}rZX(h]h]h]h]h]uhjQXh]r[XhXdatetime.timedeltar\Xr]X}r^X(hUhjXXubahj0ubhXq object) for when after stored task results are deleted. For the moment this only works for the database backend.r_Xr`X}raX(hXq object) for when after stored task results are deleted. For the moment this only works for the database backend.hjQXubeubahjB ubeubahjC ubaubh)rbX}rcX(hXX``celeryd`` now emits a debug log message for which periodic tasks has been launched. hjWhNhjh}rdX(h]h]h]h]h]uhNhhh]reXj )rfX}rgX(hUh}rhX(h]h]h]h]h]uhjbXh]riXj )rjX}rkX(hXV``celeryd`` now emits a debug log message for which periodic tasks has been launched. hjfXhhhj h}rlX(h]h]h]h]h]uhM h]rmX(j )rnX}roX(hXB``celeryd`` now emits a debug log message for which periodic taskshjjXhhhj h}rpX(h]h]h]h]h]uhM h]rqX(j)rrX}rsX(hX ``celeryd``h}rtX(h]h]h]h]h]uhjnXh]ruXhXcelerydrvXrwX}rxX(hUhjrXubahjubhX7 now emits a debug log message for which periodic tasksryXrzX}r{X(hX7 now emits a debug log message for which periodic taskshjnXubeubj5 )r|X}r}X(hUh}r~X(h]h]h]h]h]uhjjXh]rXh)rX}rX(hXhas been launched.rXhj|Xhhhjh}rX(h]h]h]h]h]uhM h]rXhXhas been launched.rXrX}rX(hjXhjXubaubahjB ubeubahjC ubaubh)rX}rX(hXThe periodic task table is now locked for reading while getting periodic task status. (MySQL only so far, seeking patches for other engines) hjWhNhjh}rX(h]h]h]h]h]uhNhhh]rXj )rX}rX(hUh}rX(h]h]h]h]h]uhjXh]rXj )rX}rX(hXThe periodic task table is now locked for reading while getting periodic task status. (MySQL only so far, seeking patches for other engines) hjXhhhj h}rX(h]h]h]h]h]uhM h]rX(j )rX}rX(hX?The periodic task table is now locked for reading while gettingrXhjXhhhj h}rX(h]h]h]h]h]uhM h]rXhX?The periodic task table is now locked for reading while gettingrXrX}rX(hjXhjXubaubj5 )rX}rX(hUh}rX(h]h]h]h]h]uhjXh]rXh)rX}rX(hXLperiodic task status. (MySQL only so far, seeking patches for other engines)rXhjXhhhjh}rX(h]h]h]h]h]uhM h]rXhXLperiodic task status. (MySQL only so far, seeking patches for other engines)rXrX}rX(hjXhjXubaubahjB ubeubahjC ubaubh)rX}rX(hXnA lot more debugging information is now available by turning on the `DEBUG` log level (`--loglevel=DEBUG`). hjWhNhjh}rX(h]h]h]h]h]uhNhhh]rXj )rX}rX(hUh}rX(h]h]h]h]h]uhjXh]rXj )rX}rX(hXlA lot more debugging information is now available by turning on the `DEBUG` log level (`--loglevel=DEBUG`). hjXhhhj h}rX(h]h]h]h]h]uhM h]rX(j )rX}rX(hXCA lot more debugging information is now available by turning on therXhjXhhhj h}rX(h]h]h]h]h]uhM h]rXhXCA lot more debugging information is now available by turning on therXrX}rX(hjXhjXubaubj5 )rX}rX(hUh}rX(h]h]h]h]h]uhjXh]rXh)rX}rX(hX'`DEBUG` log level (`--loglevel=DEBUG`).hjXhhhjh}rX(h]h]h]h]h]uhM h]rX(j()rX}rX(hX`DEBUG`h}rX(h]h]h]h]h]uhjXh]rXhXDEBUGrXrX}rX(hUhjXubahj0ubhX log level (rXrX}rX(hX log level (hjXubj()rX}rX(hX`--loglevel=DEBUG`h}rX(h]h]h]h]h]uhjXh]rXhX--loglevel=DEBUGrXrX}rX(hUhjXubahj0ubhX).rXrX}rX(hX).hjXubeubahjB ubeubahjC ubaubh)rX}rX(hX?Functions/methods with a timeout argument now works correctly. hjWhhhjh}rX(h]h]h]h]h]uhNhhh]rXh)rX}rX(hX>Functions/methods with a timeout argument now works correctly.rXhjXhhhjh}rX(h]h]h]h]h]uhM h]rXhX>Functions/methods with a timeout argument now works correctly.rXrX}rX(hjXhjXubaubaubh)rX}rX(hXNew: ``celery.strategy.even_time_distribution``: With an iterator yielding task args, kwargs tuples, evenly distribute the processing of its tasks throughout the time window available. hjWhNhjh}rX(h]h]h]h]h]uhNhhh]rXj )rX}rX(hUh}rX(h]h]h]h]h]uhjXh]rXj )rX}rX(hXNew: ``celery.strategy.even_time_distribution``: With an iterator yielding task args, kwargs tuples, evenly distribute the processing of its tasks throughout the time window available. hjXhhhj h}rX(h]h]h]h]h]uhM h]rX(j )rX}rX(hX0New: ``celery.strategy.even_time_distribution``:hjXhhhj h}rX(h]h]h]h]h]uhM h]rX(hXNew: rXrX}rX(hXNew: hjXubj)rX}rX(hX*``celery.strategy.even_time_distribution``h}rX(h]h]h]h]h]uhjXh]rXhX&celery.strategy.even_time_distributionrXrX}rX(hUhjXubahjubhX:rX}rX(hX:hjXubeubj5 )rY}rY(hUh}rY(h]h]h]h]h]uhjXh]rYh)rY}rY(hXWith an iterator yielding task args, kwargs tuples, evenly distribute the processing of its tasks throughout the time window available.rYhjYhhhjh}rY(h]h]h]h]h]uhM h]rYhXWith an iterator yielding task args, kwargs tuples, evenly distribute the processing of its tasks throughout the time window available.r Yr Y}r Y(hjYhjYubaubahjB ubeubahjC ubaubh)r Y}r Y(hX@Log message `Unknown task ignored...` now has log level `ERROR` hjWhhhjh}rY(h]h]h]h]h]uhNhhh]rYh)rY}rY(hX?Log message `Unknown task ignored...` now has log level `ERROR`hj Yhhhjh}rY(h]h]h]h]h]uhM h]rY(hX Log message rYrY}rY(hX Log message hjYubj()rY}rY(hX`Unknown task ignored...`h}rY(h]h]h]h]h]uhjYh]rYhXUnknown task ignored...rYrY}rY(hUhjYubahj0ubhX now has log level rYrY}r Y(hX now has log level hjYubj()r!Y}r"Y(hX`ERROR`h}r#Y(h]h]h]h]h]uhjYh]r$YhXERRORr%Yr&Y}r'Y(hUhj!Yubahj0ubeubaubh)r(Y}r)Y(hXLog message ``"Got task from broker"`` is now emitted for all tasks, even if the task has an ETA (estimated time of arrival). Also the message now includes the ETA for the task (if any). hjWhNhjh}r*Y(h]h]h]h]h]uhNhhh]r+Yj )r,Y}r-Y(hUh}r.Y(h]h]h]h]h]uhj(Yh]r/Yj )r0Y}r1Y(hXLog message ``"Got task from broker"`` is now emitted for all tasks, even if the task has an ETA (estimated time of arrival). Also the message now includes the ETA for the task (if any). hj,Yhhhj h}r2Y(h]h]h]h]h]uhM h]r3Y(j )r4Y}r5Y(hXLLog message ``"Got task from broker"`` is now emitted for all tasks, even ifhj0Yhhhj h}r6Y(h]h]h]h]h]uhM h]r7Y(hX Log message r8Yr9Y}r:Y(hX Log message hj4Yubj)r;Y}rYhX"Got task from broker"r?Yr@Y}rAY(hUhj;YubahjubhX& is now emitted for all tasks, even ifrBYrCY}rDY(hX& is now emitted for all tasks, even ifhj4Yubeubj5 )rEY}rFY(hUh}rGY(h]h]h]h]h]uhj0Yh]rHYh)rIY}rJY(hXmthe task has an ETA (estimated time of arrival). Also the message now includes the ETA for the task (if any).rKYhjEYhhhjh}rLY(h]h]h]h]h]uhM h]rMYhXmthe task has an ETA (estimated time of arrival). Also the message now includes the ETA for the task (if any).rNYrOY}rPY(hjKYhjIYubaubahjB ubeubahjC ubaubh)rQY}rRY(hXAcknowledgement now happens in the pool callback. Can't do ack in the job target, as it's not pickleable (can't share AMQP connection, etc.)). hjWhNhjh}rSY(h]h]h]h]h]uhNhhh]rTYj )rUY}rVY(hUh}rWY(h]h]h]h]h]uhjQYh]rXYj )rYY}rZY(hXAcknowledgement now happens in the pool callback. Can't do ack in the job target, as it's not pickleable (can't share AMQP connection, etc.)). hjUYhhhj h}r[Y(h]h]h]h]h]uhM h]r\Y(j )r]Y}r^Y(hXIAcknowledgement now happens in the pool callback. Can't do ack in the jobr_YhjYYhhhj h}r`Y(h]h]h]h]h]uhM h]raYhXIAcknowledgement now happens in the pool callback. Can't do ack in the jobrbYrcY}rdY(hj_Yhj]Yubaubj5 )reY}rfY(hUh}rgY(h]h]h]h]h]uhjYYh]rhYh)riY}rjY(hXDtarget, as it's not pickleable (can't share AMQP connection, etc.)).rkYhjeYhhhjh}rlY(h]h]h]h]h]uhM h]rmYhXDtarget, as it's not pickleable (can't share AMQP connection, etc.)).rnYroY}rpY(hjkYhjiYubaubahjB ubeubahjC ubaubh)rqY}rrY(hX*Added note about .delay hanging in README hjWhhhjh}rsY(h]h]h]h]h]uhNhhh]rtYh)ruY}rvY(hX)Added note about .delay hanging in READMErwYhjqYhhhjh}rxY(h]h]h]h]h]uhM h]ryYhX)Added note about .delay hanging in READMErzYr{Y}r|Y(hjwYhjuYubaubaubh)r}Y}r~Y(hX Tests now passing in Django 1.1 hjWhhhjh}rY(h]h]h]h]h]uhNhhh]rYh)rY}rY(hXTests now passing in Django 1.1rYhj}Yhhhjh}rY(h]h]h]h]h]uhM h]rYhXTests now passing in Django 1.1rYrY}rY(hjYhjYubaubaubh)rY}rY(hX6Fixed discovery to make sure app is in INSTALLED_APPS hjWhhhjh}rY(h]h]h]h]h]uhNhhh]rYh)rY}rY(hX5Fixed discovery to make sure app is in INSTALLED_APPSrYhjYhhhjh}rY(h]h]h]h]h]uhM h]rYhX5Fixed discovery to make sure app is in INSTALLED_APPSrYrY}rY(hjYhjYubaubaubh)rY}rY(hXPreviously overridden pool behavior (process reap, wait until pool worker available, etc.) is now handled by `multiprocessing.Pool` itself. hjWhNhjh}rY(h]h]h]h]h]uhNhhh]rYj )rY}rY(hUh}rY(h]h]h]h]h]uhjYh]rYj )rY}rY(hXPreviously overridden pool behavior (process reap, wait until pool worker available, etc.) is now handled by `multiprocessing.Pool` itself. hjYhhhj h}rY(h]h]h]h]h]uhM h]rY(j )rY}rY(hXIPreviously overridden pool behavior (process reap, wait until pool workerrYhjYhhhj h}rY(h]h]h]h]h]uhM h]rYhXIPreviously overridden pool behavior (process reap, wait until pool workerrYrY}rY(hjYhjYubaubj5 )rY}rY(hUh}rY(h]h]h]h]h]uhjYh]rYh)rY}rY(hXAavailable, etc.) is now handled by `multiprocessing.Pool` itself.hjYhhhjh}rY(h]h]h]h]h]uhM h]rY(hX#available, etc.) is now handled by rYrY}rY(hX#available, etc.) is now handled by hjYubj()rY}rY(hX`multiprocessing.Pool`h}rY(h]h]h]h]h]uhjYh]rYhXmultiprocessing.PoolrYrY}rY(hUhjYubahj0ubhX itself.rYrY}rY(hX itself.hjYubeubahjB ubeubahjC ubaubh)rY}rY(hXCConvert statistics data to Unicode for use as kwargs. Thanks Lucy! hjWhhhjh}rY(h]h]h]h]h]uhNhhh]rYh)rY}rY(hXBConvert statistics data to Unicode for use as kwargs. Thanks Lucy!rYhjYhhhjh}rY(h]h]h]h]h]uhM h]rYhXBConvert statistics data to Unicode for use as kwargs. Thanks Lucy!rYrY}rY(hjYhjYubaubaubeubjf)rY}rY(hX.. _version-0.4.1:hjWhhhjih}rY(h]h]h]h]h]jkjuhM hhh]ubeubeubh)rY}rY(hUhhhhjn}rYhsjYshhh}rY(h]h]h]h]rY(jUid45rYeh]rY(hehseuhM hhjt}rYjjYsh]rY(h)rY}rY(hjhjYhhhhh}rY(h]h]h]h]h]jkjuhM hhh]rYhX0.4.1rYrY}rY(hjhjYubaubj)rY}rY(hUhjYhhhjh}rY(h]h]h]h]h]uhM hhh]rYj)rY}rY(hUhjYhhhjh}rY(h]h]h]h]h]uhM hhh]rY(j)rY}rY(hX release-daterYh}rY(h]h]h]h]h]uhjYh]rYhX release-daterYrY}rY(hjYhjYubahjubj)rY}rY(hX2009-07-02 01:42 P.M CET h}rY(h]h]h]h]h]uhjYh]rYh)rY}rY(hX2009-07-02 01:42 P.M CETrYhjYhhhjh}rY(h]h]h]h]h]uhM h]rYhX2009-07-02 01:42 P.M CETrYrY}rY(hjYhjYubaubahjubeubaubh)rY}rY(hUhjYhhhhh}rY(jX*h]h]h]h]h]uhM hhh]rYh)rY}rY(hXkFixed a bug with parsing the message options (``mandatory``, ``routing_key``, ``priority``, ``immediate``) hjYhhhjh}rY(h]h]h]h]h]uhNhhh]rZh)rZ}rZ(hXjFixed a bug with parsing the message options (``mandatory``, ``routing_key``, ``priority``, ``immediate``)hjYhhhjh}rZ(h]h]h]h]h]uhM h]rZ(hX.Fixed a bug with parsing the message options (rZrZ}rZ(hX.Fixed a bug with parsing the message options (hjZubj)rZ}r Z(hX ``mandatory``h}r Z(h]h]h]h]h]uhjZh]r ZhX mandatoryr Zr Z}rZ(hUhjZubahjubhX, rZrZ}rZ(hX, hjZubj)rZ}rZ(hX``routing_key``h}rZ(h]h]h]h]h]uhjZh]rZhX routing_keyrZrZ}rZ(hUhjZubahjubhX, rZrZ}rZ(hX, hjZubj)rZ}rZ(hX ``priority``h}rZ(h]h]h]h]h]uhjZh]rZhXpriorityr Zr!Z}r"Z(hUhjZubahjubhX, r#Zr$Z}r%Z(hX, hjZubj)r&Z}r'Z(hX ``immediate``h}r(Z(h]h]h]h]h]uhjZh]r)ZhX immediater*Zr+Z}r,Z(hUhj&ZubahjubhX)r-Z}r.Z(hX)hjZubeubaubaubjf)r/Z}r0Z(hX.. _version-0.4.0:hjYhhhjih}r1Z(h]h]h]h]h]jkjuhM hhh]ubeubh)r2Z}r3Z(hUhhhhjn}r4Zhrj/Zshhh}r5Z(h]h]h]h]r6Z(jUid46r7Zeh]r8Z(hfhreuhM hhjt}r9Zjj/Zsh]r:Z(h)r;Z}rZhX0.4.0r?Zr@Z}rAZ(hjhj;Zubaubj)rBZ}rCZ(hUhj2Zhhhjh}rDZ(h]h]h]h]h]uhM hhh]rEZj)rFZ}rGZ(hUhjBZhhhjh}rHZ(h]h]h]h]h]uhM hhh]rIZ(j)rJZ}rKZ(hX release-daterLZh}rMZ(h]h]h]h]h]uhjFZh]rNZhX release-daterOZrPZ}rQZ(hjLZhjJZubahjubj)rRZ}rSZ(hX2009-07-01 07:29 P.M CET h}rTZ(h]h]h]h]h]uhjFZh]rUZh)rVZ}rWZ(hX2009-07-01 07:29 P.M CETrXZhjRZhhhjh}rYZ(h]h]h]h]h]uhM h]rZZhX2009-07-01 07:29 P.M CETr[Zr\Z}r]Z(hjXZhjVZubaubahjubeubaubh)r^Z}r_Z(hUhj2Zhhhhh}r`Z(jX*h]h]h]h]h]uhM hhh]raZ(h)rbZ}rcZ(hX3Adds eager execution. `celery.execute.apply`|`Task.apply` executes the function blocking until the task is done, for API compatibility it returns an `celery.result.EagerResult` instance. You can configure celery to always run tasks locally by setting the :setting:`CELERY_ALWAYS_EAGER` setting to ``True``. hj^Zhhhjh}rdZ(h]h]h]h]h]uhNhhh]reZh)rfZ}rgZ(hX2Adds eager execution. `celery.execute.apply`|`Task.apply` executes the function blocking until the task is done, for API compatibility it returns an `celery.result.EagerResult` instance. You can configure celery to always run tasks locally by setting the :setting:`CELERY_ALWAYS_EAGER` setting to ``True``.hjbZhhhjh}rhZ(h]h]h]h]h]uhM h]riZ(hXAdds eager execution. rjZrkZ}rlZ(hXAdds eager execution. hjfZubj()rmZ}rnZ(hX#`celery.execute.apply`|`Task.apply`h}roZ(h]h]h]h]h]uhjfZh]rpZhX!celery.execute.apply`|`Task.applyrqZrrZ}rsZ(hUhjmZubahj0ubhX\ executes the function blocking until the task is done, for API compatibility it returns an rtZruZ}rvZ(hX\ executes the function blocking until the task is done, for API compatibility it returns an hjfZubj()rwZ}rxZ(hX`celery.result.EagerResult`h}ryZ(h]h]h]h]h]uhjfZh]rzZhXcelery.result.EagerResultr{Zr|Z}r}Z(hUhjwZubahj0ubhXO instance. You can configure celery to always run tasks locally by setting the r~ZrZ}rZ(hXO instance. You can configure celery to always run tasks locally by setting the hjfZubj)rZ}rZ(hX:setting:`CELERY_ALWAYS_EAGER`rZhjfZhhhjh}rZ(UreftypeXsettingjjXCELERY_ALWAYS_EAGERU refdomainXstdrZh]h]U refexplicith]h]h]jjuhM h]rZj)rZ}rZ(hjZh}rZ(h]h]rZ(jjZX std-settingrZeh]h]h]uhjZh]rZhXCELERY_ALWAYS_EAGERrZrZ}rZ(hUhjZubahjubaubhX setting to rZrZ}rZ(hX setting to hjfZubj)rZ}rZ(hX``True``h}rZ(h]h]h]h]h]uhjfZh]rZhXTruerZrZ}rZ(hUhjZubahjubhX.rZ}rZ(hX.hjfZubeubaubh)rZ}rZ(hXNow depends on ``anyjson``. hj^Zhhhjh}rZ(h]h]h]h]h]uhNhhh]rZh)rZ}rZ(hXNow depends on ``anyjson``.hjZhhhjh}rZ(h]h]h]h]h]uhM h]rZ(hXNow depends on rZrZ}rZ(hXNow depends on hjZubj)rZ}rZ(hX ``anyjson``h}rZ(h]h]h]h]h]uhjZh]rZhXanyjsonrZrZ}rZ(hUhjZubahjubhX.rZ}rZ(hX.hjZubeubaubh)rZ}rZ(hX,99% coverage using python ``coverage`` 3.0. hj^Zhhhjh}rZ(h]h]h]h]h]uhNhhh]rZh)rZ}rZ(hX+99% coverage using python ``coverage`` 3.0.hjZhhhjh}rZ(h]h]h]h]h]uhM" h]rZ(hX99% coverage using python rZrZ}rZ(hX99% coverage using python hjZubj)rZ}rZ(hX ``coverage``h}rZ(h]h]h]h]h]uhjZh]rZhXcoveragerZrZ}rZ(hUhjZubahjubhX 3.0.rZrZ}rZ(hX 3.0.hjZubeubaubeubjf)rZ}rZ(hX.. _version-0.3.20:hj2Zhhhjih}rZ(h]h]h]h]h]jkjuhM$ hhh]ubeubh)rZ}rZ(hUhhhhjn}rZh?jZshhh}rZ(h]h]h]h]rZ(jUid47rZeh]rZ(hh?euhM' hhjt}rZjjZsh]rZ(h)rZ}rZ(hjhjZhhhhh}rZ(h]h]h]h]h]jkjuhM' hhh]rZhX0.3.20rZrZ}rZ(hjhjZubaubj)rZ}rZ(hUhjZhhhjh}rZ(h]h]h]h]h]uhM( hhh]rZj)rZ}rZ(hUhjZhhhjh}rZ(h]h]h]h]h]uhM( hhh]rZ(j)rZ}rZ(hX release-daterZh}rZ(h]h]h]h]h]uhjZh]rZhX release-daterZrZ}rZ(hjZhjZubahjubj)rZ}rZ(hX2009-06-25 08:42 P.M CET h}rZ(h]h]h]h]h]uhjZh]rZh)rZ}rZ(hX2009-06-25 08:42 P.M CETrZhjZhhhjh}rZ(h]h]h]h]h]uhM( h]rZhX2009-06-25 08:42 P.M CETrZrZ}rZ(hjZhjZubaubahjubeubaubh)rZ}rZ(hUhjZhhhhh}rZ(jX*h]h]h]h]h]uhM* hhh]rZ(h)rZ}rZ(hX:New arguments to ``apply_async`` (the advanced version of ``delay_task``), ``countdown`` and ``eta``; >>> # Run 10 seconds into the future. >>> res = apply_async(MyTask, countdown=10); >>> # Run 1 day from now >>> res = apply_async(MyTask, ... eta=datetime.now() + timedelta(days=1)) hjZhhhjh}rZ(h]h]h]h]h]uhNhhh]rZ(h)rZ}rZ(hXeNew arguments to ``apply_async`` (the advanced version of ``delay_task``), ``countdown`` and ``eta``;hjZhhhjh}rZ(h]h]h]h]h]uhM* h]rZ(hXNew arguments to r[r[}r[(hXNew arguments to hjZubj)r[}r[(hX``apply_async``h}r[(h]h]h]h]h]uhjZh]r[hX apply_asyncr[r[}r [(hUhj[ubahjubhX (the advanced version of r [r [}r [(hX (the advanced version of hjZubj)r [}r[(hX``delay_task``h}r[(h]h]h]h]h]uhjZh]r[hX delay_taskr[r[}r[(hUhj [ubahjubhX), r[r[}r[(hX), hjZubj)r[}r[(hX ``countdown``h}r[(h]h]h]h]h]uhjZh]r[hX countdownr[}r[(hUhj[ubahjubhX and r[r[}r [(hX and hjZubj)r![}r"[(hX``eta``h}r#[(h]h]h]h]h]uhjZh]r$[hXetar%[r&[}r'[(hUhj![ubahjubhX;r([}r)[(hX;hjZubeubjh)r*[}r+[(hXR>>> # Run 10 seconds into the future. >>> res = apply_async(MyTask, countdown=10);hjZhNhjph}r,[(jTjUh]h]h]h]h]uhNhhh]r-[hXR>>> # Run 10 seconds into the future. >>> res = apply_async(MyTask, countdown=10);r.[r/[}r0[(hUhj*[ubaubjh)r1[}r2[(hXt>>> # Run 1 day from now >>> res = apply_async(MyTask, ... eta=datetime.now() + timedelta(days=1))hjZhNhjph}r3[(jTjUh]h]h]h]h]uhNhhh]r4[hXt>>> # Run 1 day from now >>> res = apply_async(MyTask, ... eta=datetime.now() + timedelta(days=1))r5[r6[}r7[(hUhj1[ubaubeubh)r8[}r9[(hXNow unlinks stale PID files hjZhhhjh}r:[(h]h]h]h]h]uhNhhh]r;[h)r<[}r=[(hXNow unlinks stale PID filesr>[hj8[hhhjh}r?[(h]h]h]h]h]uhM4 h]r@[hXNow unlinks stale PID filesrA[rB[}rC[(hj>[hj<[ubaubaubh)rD[}rE[(hXLots of more tests. hjZhhhjh}rF[(h]h]h]h]h]uhNhhh]rG[h)rH[}rI[(hXLots of more tests.rJ[hjD[hhhjh}rK[(h]h]h]h]h]uhM6 h]rL[hXLots of more tests.rM[rN[}rO[(hjJ[hjH[ubaubaubh)rP[}rQ[(hX%Now compatible with carrot >= 0.5.0. hjZhhhjh}rR[(h]h]h]h]h]uhNhhh]rS[h)rT[}rU[(hX$Now compatible with carrot >= 0.5.0.rV[hjP[hhhjh}rW[(h]h]h]h]h]uhM8 h]rX[hX$Now compatible with carrot >= 0.5.0.rY[rZ[}r[[(hjV[hjT[ubaubaubh)r\[}r][(hX**IMPORTANT** The ``subtask_ids`` attribute on the ``TaskSetResult`` instance has been removed. To get this information instead use: >>> subtask_ids = [subtask.task_id for subtask in ts_res.subtasks] hjZhhhjh}r^[(h]h]h]h]h]uhNhhh]r_[(h)r`[}ra[(hX**IMPORTANT** The ``subtask_ids`` attribute on the ``TaskSetResult`` instance has been removed. To get this information instead use:hj\[hhhjh}rb[(h]h]h]h]h]uhM: h]rc[(j )rd[}re[(hX **IMPORTANT**h}rf[(h]h]h]h]h]uhj`[h]rg[hX IMPORTANTrh[ri[}rj[(hUhjd[ubahj ubhX The rk[rl[}rm[(hX The hj`[ubj)rn[}ro[(hX``subtask_ids``h}rp[(h]h]h]h]h]uhj`[h]rq[hX subtask_idsrr[rs[}rt[(hUhjn[ubahjubhX attribute on the ru[rv[}rw[(hX attribute on the hj`[ubj)rx[}ry[(hX``TaskSetResult``h}rz[(h]h]h]h]h]uhj`[h]r{[hX TaskSetResultr|[r}[}r~[(hUhjx[ubahjubhX@ instance has been removed. To get this information instead use:r[r[}r[(hX@ instance has been removed. To get this information instead use:hj`[ubeubjh)r[}r[(hXB>>> subtask_ids = [subtask.task_id for subtask in ts_res.subtasks]hj\[hNhjph}r[(jTjUh]h]h]h]h]uhNhhh]r[hXB>>> subtask_ids = [subtask.task_id for subtask in ts_res.subtasks]r[r[}r[(hUhj[ubaubeubh)r[}r[(hXJ``Taskset.run()`` now respects extra message options from the task class. hjZhhhjh}r[(h]h]h]h]h]uhNhhh]r[h)r[}r[(hXI``Taskset.run()`` now respects extra message options from the task class.hj[hhhjh}r[(h]h]h]h]h]uhM? h]r[(j)r[}r[(hX``Taskset.run()``h}r[(h]h]h]h]h]uhj[h]r[hX Taskset.run()r[r[}r[(hUhj[ubahjubhX8 now respects extra message options from the task class.r[r[}r[(hX8 now respects extra message options from the task class.hj[ubeubaubh)r[}r[(hXSTask: Add attribute ``ignore_result``: Don't store the status and return value. This means you can't use the ``celery.result.AsyncResult`` to check if the task is done, or get its return value. Only use if you need the performance and is able live without these features. Any exceptions raised will store the return value/status as usual. hjZhhhjh}r[(h]h]h]h]h]uhNhhh]r[h)r[}r[(hXRTask: Add attribute ``ignore_result``: Don't store the status and return value. This means you can't use the ``celery.result.AsyncResult`` to check if the task is done, or get its return value. Only use if you need the performance and is able live without these features. Any exceptions raised will store the return value/status as usual.hj[hhhjh}r[(h]h]h]h]h]uhMA h]r[(hXTask: Add attribute r[r[}r[(hXTask: Add attribute hj[ubj)r[}r[(hX``ignore_result``h}r[(h]h]h]h]h]uhj[h]r[hX ignore_resultr[r[}r[(hUhj[ubahjubhXH: Don't store the status and return value. This means you can't use the r[r[}r[(hXH: Don't store the status and return value. This means you can't use the hj[ubj)r[}r[(hX``celery.result.AsyncResult``h}r[(h]h]h]h]h]uhj[h]r[hXcelery.result.AsyncResultr[r[}r[(hUhj[ubahjubhX to check if the task is done, or get its return value. Only use if you need the performance and is able live without these features. Any exceptions raised will store the return value/status as usual.r[r[}r[(hX to check if the task is done, or get its return value. Only use if you need the performance and is able live without these features. Any exceptions raised will store the return value/status as usual.hj[ubeubaubh)r[}r[(hX\Task: Add attribute ``disable_error_emails`` to disable sending error emails for that task. hjZhhhjh}r[(h]h]h]h]h]uhNhhh]r[h)r[}r[(hX[Task: Add attribute ``disable_error_emails`` to disable sending error emails for that task.hj[hhhjh}r[(h]h]h]h]h]uhMH h]r[(hXTask: Add attribute r[r[}r[(hXTask: Add attribute hj[ubj)r[}r[(hX``disable_error_emails``h}r[(h]h]h]h]h]uhj[h]r[hXdisable_error_emailsr[r[}r[(hUhj[ubahjubhX/ to disable sending error emails for that task.r[r[}r[(hX/ to disable sending error emails for that task.hj[ubeubaubh)r[}r[(hXShould now work on Windows (although running in the background won't work, so using the ``--detach`` argument results in an exception being raised.) hjZhhhjh}r[(h]h]h]h]h]uhNhhh]r[h)r[}r[(hXShould now work on Windows (although running in the background won't work, so using the ``--detach`` argument results in an exception being raised.)hj[hhhjh}r[(h]h]h]h]h]uhMK h]r[(hXXShould now work on Windows (although running in the background won't work, so using the r[r[}r[(hXXShould now work on Windows (although running in the background won't work, so using the hj[ubj)r[}r[(hX ``--detach``h}r[(h]h]h]h]h]uhj[h]r[hX--detachr[r[}r[(hUhj[ubahjubhX0 argument results in an exception being raised.)r[r[}r[(hX0 argument results in an exception being raised.)hj[ubeubaubh)r[}r[(hXAdded support for statistics for profiling and monitoring. To start sending statistics start ``celeryd`` with the ``--statistics`` option. Then after a while you can dump the results by running ``python manage.py celerystats``. See ``celery.monitoring`` for more information. hjZhhhjh}r[(h]h]h]h]h]uhNhhh]r[h)r[}r[(hXAdded support for statistics for profiling and monitoring. To start sending statistics start ``celeryd`` with the ``--statistics`` option. Then after a while you can dump the results by running ``python manage.py celerystats``. See ``celery.monitoring`` for more information.hj[hhhjh}r[(h]h]h]h]h]uhMO h]r[(hX]Added support for statistics for profiling and monitoring. To start sending statistics start r[r[}r[(hX]Added support for statistics for profiling and monitoring. To start sending statistics start hj[ubj)r[}r[(hX ``celeryd``h}r[(h]h]h]h]h]uhj[h]r[hXcelerydr[r[}r[(hUhj[ubahjubhX with the r[r[}r[(hX with the hj[ubj)r[}r[(hX``--statistics``h}r[(h]h]h]h]h]uhj[h]r[hX --statisticsr[r[}r[(hUhj[ubahjubhX@ option. Then after a while you can dump the results by running r\r\}r\(hX@ option. Then after a while you can dump the results by running hj[ubj)r\}r\(hX ``python manage.py celerystats``h}r\(h]h]h]h]h]uhj[h]r\hXpython manage.py celerystatsr\r\}r \(hUhj\ubahjubhX. See r \r \}r \(hX. See hj[ubj)r \}r\(hX``celery.monitoring``h}r\(h]h]h]h]h]uhj[h]r\hXcelery.monitoringr\r\}r\(hUhj \ubahjubhX for more information.r\r\}r\(hX for more information.hj[ubeubaubh)r\}r\(hXThe celery daemon can now be supervised (i.e. it is automatically restarted if it crashes). To use this start celeryd with the ``--supervised`` option (or alternatively ``-S``). hjZhhhjh}r\(h]h]h]h]h]uhNhhh]r\h)r\}r\(hXThe celery daemon can now be supervised (i.e. it is automatically restarted if it crashes). To use this start celeryd with the ``--supervised`` option (or alternatively ``-S``).hj\hhhjh}r\(h]h]h]h]h]uhMU h]r\(hXThe celery daemon can now be supervised (i.e. it is automatically restarted if it crashes). To use this start celeryd with the r\r \}r!\(hXThe celery daemon can now be supervised (i.e. it is automatically restarted if it crashes). To use this start celeryd with the hj\ubj)r"\}r#\(hX``--supervised``h}r$\(h]h]h]h]h]uhj\h]r%\hX --supervisedr&\r'\}r(\(hUhj"\ubahjubhX option (or alternatively r)\r*\}r+\(hX option (or alternatively hj\ubj)r,\}r-\(hX``-S``h}r.\(h]h]h]h]h]uhj\h]r/\hX-Sr0\r1\}r2\(hUhj,\ubahjubhX).r3\r4\}r5\(hX).hj\ubeubaubh)r6\}r7\(hXviews.apply: View applying a task. Example :: http://e.com/celery/apply/task_name/arg1/arg2//?kwarg1=a&kwarg2=b .. warning:: Use with caution! Do not expose this URL to the public without first ensuring that your code is safe! hjZhhhjh}r8\(h]h]h]h]h]uhNhhh]r9\(h)r:\}r;\(hX*views.apply: View applying a task. Exampler<\hj6\hhhjh}r=\(h]h]h]h]h]uhMY h]r>\hX*views.apply: View applying a task. Exampler?\r@\}rA\(hj<\hj:\ubaubj)rB\}rC\(hUh}rD\(h]h]h]h]h]uhj6\h]rE\(jM)rF\}rG\(hXAhttp://e.com/celery/apply/task_name/arg1/arg2//?kwarg1=a&kwarg2=bhjB\hjPh}rH\(jTjUh]h]h]h]h]uhM] h]rI\hXAhttp://e.com/celery/apply/task_name/arg1/arg2//?kwarg1=a&kwarg2=brJ\rK\}rL\(hUhjF\ubaubjgB)rM\}rN\(hXeUse with caution! Do not expose this URL to the public without first ensuring that your code is safe!h}rO\(h]h]h]h]h]uhjB\h]rP\h)rQ\}rR\(hXeUse with caution! Do not expose this URL to the public without first ensuring that your code is safe!rS\hjM\hhhjh}rT\(h]h]h]h]h]uhMb h]rU\hXeUse with caution! Do not expose this URL to the public without first ensuring that your code is safe!rV\rW\}rX\(hjS\hjQ\ubaubahjBubehjubeubh)rY\}rZ\(hXRefactored ``celery.task``. It's now split into three modules: * celery.task Contains ``apply_async``, ``delay_task``, ``discard_all``, and task shortcuts, plus imports objects from ``celery.task.base`` and ``celery.task.builtins`` * celery.task.base Contains task base classes: ``Task``, ``PeriodicTask``, ``TaskSet``, ``AsynchronousMapTask``, ``ExecuteRemoteTask``. * celery.task.builtins Built-in tasks: ``PingTask``, ``DeleteExpiredTaskMetaTask``. hjZhhhjh}r[\(h]h]h]h]h]uhNhhh]r\\(h)r]\}r^\(hX>Refactored ``celery.task``. It's now split into three modules:r_\hjY\hhhjh}r`\(h]h]h]h]h]uhMe h]ra\(hX Refactored rb\rc\}rd\(hX Refactored hj]\ubj)re\}rf\(hX``celery.task``h}rg\(h]h]h]h]h]uhj]\h]rh\hX celery.taskri\rj\}rk\(hUhje\ubahjubhX$. It's now split into three modules:rl\rm\}rn\(hX$. It's now split into three modules:hj]\ubeubj)ro\}rp\(hUh}rq\(h]h]h]h]h]uhjY\h]rr\h)rs\}rt\(hUh}ru\(jX*h]h]h]h]h]uhjo\h]rv\(h)rw\}rx\(hXcelery.task Contains ``apply_async``, ``delay_task``, ``discard_all``, and task shortcuts, plus imports objects from ``celery.task.base`` and ``celery.task.builtins`` h}ry\(h]h]h]h]h]uhjs\h]rz\(h)r{\}r|\(hX celery.taskr}\hjw\hhhjh}r~\(h]h]h]h]h]uhMg h]r\hX celery.taskr\r\}r\(hj}\hj{\ubaubj)r\}r\(hUh}r\(h]h]h]h]h]uhjw\h]r\h)r\}r\(hXContains ``apply_async``, ``delay_task``, ``discard_all``, and task shortcuts, plus imports objects from ``celery.task.base`` and ``celery.task.builtins``hj\hhhjh}r\(h]h]h]h]h]uhMi h]r\(hX Contains r\r\}r\(hX Contains hj\ubj)r\}r\(hX``apply_async``h}r\(h]h]h]h]h]uhj\h]r\hX apply_asyncr\r\}r\(hUhj\ubahjubhX, r\r\}r\(hX, hj\ubj)r\}r\(hX``delay_task``h}r\(h]h]h]h]h]uhj\h]r\hX delay_taskr\r\}r\(hUhj\ubahjubhX, r\r\}r\(hX, hj\ubj)r\}r\(hX``discard_all``h}r\(h]h]h]h]h]uhj\h]r\hX discard_allr\r\}r\(hUhj\ubahjubhX0, and task shortcuts, plus imports objects from r\r\}r\(hX0, and task shortcuts, plus imports objects from hj\ubj)r\}r\(hX``celery.task.base``h}r\(h]h]h]h]h]uhj\h]r\hXcelery.task.baser\r\}r\(hUhj\ubahjubhX and r\r\}r\(hX and hj\ubj)r\}r\(hX``celery.task.builtins``h}r\(h]h]h]h]h]uhj\h]r\hXcelery.task.builtinsr\r\}r\(hUhj\ubahjubeubahjubehjubh)r\}r\(hXcelery.task.base Contains task base classes: ``Task``, ``PeriodicTask``, ``TaskSet``, ``AsynchronousMapTask``, ``ExecuteRemoteTask``. h}r\(h]h]h]h]h]uhjs\h]r\(h)r\}r\(hXcelery.task.baser\hj\hhhjh}r\(h]h]h]h]h]uhMm h]r\hXcelery.task.baser\r\}r\(hj\hj\ubaubj)r\}r\(hUh}r\(h]h]h]h]h]uhj\h]r\h)r\}r\(hXtContains task base classes: ``Task``, ``PeriodicTask``, ``TaskSet``, ``AsynchronousMapTask``, ``ExecuteRemoteTask``.hj\hhhjh}r\(h]h]h]h]h]uhMo h]r\(hXContains task base classes: r\r\}r\(hXContains task base classes: hj\ubj)r\}r\(hX``Task``h}r\(h]h]h]h]h]uhj\h]r\hXTaskr\r\}r\(hUhj\ubahjubhX, r\r\}r\(hX, hj\ubj)r\}r\(hX``PeriodicTask``h}r\(h]h]h]h]h]uhj\h]r\hX PeriodicTaskr\r\}r\(hUhj\ubahjubhX, r\r\}r\(hX, hj\ubj)r\}r\(hX ``TaskSet``h}r\(h]h]h]h]h]uhj\h]r\hXTaskSetr\r\}r\(hUhj\ubahjubhX, r\r\}r\(hX, hj\ubj)r\}r\(hX``AsynchronousMapTask``h}r\(h]h]h]h]h]uhj\h]r\hXAsynchronousMapTaskr\r\}r\(hUhj\ubahjubhX, r\r\}r\(hX, hj\ubj)r\}r\(hX``ExecuteRemoteTask``h}r\(h]h]h]h]h]uhj\h]r\hXExecuteRemoteTaskr]r]}r](hUhj\ubahjubhX.r]}r](hX.hj\ubeubahjubehjubh)r]}r](hXUcelery.task.builtins Built-in tasks: ``PingTask``, ``DeleteExpiredTaskMetaTask``. h}r](h]h]h]h]h]uhjs\h]r](h)r ]}r ](hXcelery.task.builtinsr ]hj]hhhjh}r ](h]h]h]h]h]uhMr h]r ]hXcelery.task.builtinsr]r]}r](hj ]hj ]ubaubj)r]}r](hUh}r](h]h]h]h]h]uhj]h]r]h)r]}r](hX<Built-in tasks: ``PingTask``, ``DeleteExpiredTaskMetaTask``.r]hj]hhhjh}r](h]h]h]h]h]uhMt h]r](hXBuilt-in tasks: r]r]}r](hXBuilt-in tasks: hj]ubj)r]}r](hX ``PingTask``h}r](h]h]h]h]h]uhj]h]r ]hXPingTaskr!]r"]}r#](hUhj]ubahjubhX, r$]r%]}r&](hX, hj]ubj)r']}r(](hX``DeleteExpiredTaskMetaTask``h}r)](h]h]h]h]h]uhj]h]r*]hXDeleteExpiredTaskMetaTaskr+]r,]}r-](hUhj']ubahjubhX.r.]}r/](hX.hj]ubeubahjubehjubehhubahjubeubeubjf)r0]}r1](hX.. _version-0.3.7:hjZhhhjih}r2](h]h]h]h]h]jkj uhMv hhh]ubeubh)r3]}r4](hUhhhhjn}r5]hcj0]shhh}r6](h]h]h]h]r7](j Uid48r8]eh]r9](hhceuhMy hhjt}r:]j j0]sh]r;](h)r<]}r=](hjhj3]hhhhh}r>](h]h]h]h]h]jkj uhMy hhh]r?]hX0.3.7r@]rA]}rB](hjhj<]ubaubj)rC]}rD](hUhj3]hhhjh}rE](h]h]h]h]h]uhMz hhh]rF]j)rG]}rH](hUhjC]hhhjh}rI](h]h]h]h]h]uhMz hhh]rJ](j)rK]}rL](hX release-daterM]h}rN](h]h]h]h]h]uhjG]h]rO]hX release-daterP]rQ]}rR](hjM]hjK]ubahjubj)rS]}rT](hX2008-06-16 11:41 P.M CET h}rU](h]h]h]h]h]uhjG]h]rV]h)rW]}rX](hX2008-06-16 11:41 P.M CETrY]hjS]hhhjh}rZ](h]h]h]h]h]uhMz h]r[]hX2008-06-16 11:41 P.M CETr\]r]]}r^](hjY]hjW]ubaubahjubeubaubh)r_]}r`](hUhj3]hhhhh}ra](jX*h]h]h]h]h]uhM| hhh]rb](h)rc]}rd](hX**IMPORTANT** Now uses AMQP`s `basic.consume` instead of `basic.get`. This means we're no longer polling the broker for new messages. hj_]hhhjh}re](h]h]h]h]h]uhNhhh]rf]h)rg]}rh](hX**IMPORTANT** Now uses AMQP`s `basic.consume` instead of `basic.get`. This means we're no longer polling the broker for new messages.hjc]hhhjh}ri](h]h]h]h]h]uhM| h]rj](j )rk]}rl](hX **IMPORTANT**h}rm](h]h]h]h]h]uhjg]h]rn]hX IMPORTANTro]rp]}rq](hUhjk]ubahj ubhX Now uses AMQP`s rr]rs]}rt](hX Now uses AMQP`s hjg]ubj()ru]}rv](hX`basic.consume`h}rw](h]h]h]h]h]uhjg]h]rx]hX basic.consumery]rz]}r{](hUhju]ubahj0ubhX instead of r|]r}]}r~](hX instead of hjg]ubj()r]}r](hX `basic.get`h}r](h]h]h]h]h]uhjg]h]r]hX basic.getr]r]}r](hUhj]ubahj0ubhXA. This means we're no longer polling the broker for new messages.r]r]}r](hXA. This means we're no longer polling the broker for new messages.hjg]ubeubaubh)r]}r](hXb**IMPORTANT** Default concurrency limit is now set to the number of CPUs available on the system. hj_]hhhjh}r](h]h]h]h]h]uhNhhh]r]h)r]}r](hXa**IMPORTANT** Default concurrency limit is now set to the number of CPUs available on the system.hj]hhhjh}r](h]h]h]h]h]uhM h]r](j )r]}r](hX **IMPORTANT**h}r](h]h]h]h]h]uhj]h]r]hX IMPORTANTr]r]}r](hUhj]ubahj ubhXT Default concurrency limit is now set to the number of CPUs available on the system.r]r]}r](hXT Default concurrency limit is now set to the number of CPUs available on the system.hj]ubeubaubh)r]}r](hX**IMPORTANT** ``tasks.register``: Renamed ``task_name`` argument to ``name``, so >>> tasks.register(func, task_name="mytask") has to be replaced with: >>> tasks.register(func, name="mytask") hj_]hhhjh}r](h]h]h]h]h]uhNhhh]r](h)r]}r](hXP**IMPORTANT** ``tasks.register``: Renamed ``task_name`` argument to ``name``, sohj]hhhjh}r](h]h]h]h]h]uhM h]r](j )r]}r](hX **IMPORTANT**h}r](h]h]h]h]h]uhj]h]r]hX IMPORTANTr]r]}r](hUhj]ubahj ubhX r]}r](hX hj]ubj)r]}r](hX``tasks.register``h}r](h]h]h]h]h]uhj]h]r]hXtasks.registerr]r]}r](hUhj]ubahjubhX : Renamed r]r]}r](hX : Renamed hj]ubj)r]}r](hX ``task_name``h}r](h]h]h]h]h]uhj]h]r]hX task_namer]r]}r](hUhj]ubahjubhX argument to r]r]}r](hX argument to hj]ubj)r]}r](hX``name``h}r](h]h]h]h]h]uhj]h]r]hXnamer]r]}r](hUhj]ubahjubhX, sor]r]}r](hX, sohj]ubeubjh)r]}r](hX,>>> tasks.register(func, task_name="mytask")hj]hNhjph}r](jTjUh]h]h]h]h]uhNhhh]r]hX,>>> tasks.register(func, task_name="mytask")r]r]}r](hUhj]ubaubh)r]}r](hXhas to be replaced with:r]hj]hhhjh}r](h]h]h]h]h]uhM h]r]hXhas to be replaced with:r]r]}r](hj]hj]ubaubjh)r]}r](hX'>>> tasks.register(func, name="mytask")hj]hNhjph}r](jTjUh]h]h]h]h]uhNhhh]r]hX'>>> tasks.register(func, name="mytask")r]r]}r](hUhj]ubaubeubh)r]}r](hX7The daemon now correctly runs if the pidlock is stale. hj_]hhhjh}r](h]h]h]h]h]uhNhhh]r]h)r]}r](hX6The daemon now correctly runs if the pidlock is stale.r]hj]hhhjh}r](h]h]h]h]h]uhM h]r]hX6The daemon now correctly runs if the pidlock is stale.r]r]}r](hj]hj]ubaubaubh)r]}r](hX!Now compatible with carrot 0.4.5 hj_]hhhjh}r](h]h]h]h]h]uhNhhh]r]h)r]}r](hX Now compatible with carrot 0.4.5r]hj]hhhjh}r](h]h]h]h]h]uhM h]r]hX Now compatible with carrot 0.4.5r]r]}r](hj]hj]ubaubaubh)r]}r](hX1Default AMQP connection timeout is now 4 seconds.r]hj_]hhhjh}r](h]h]h]h]h]uhNhhh]r]h)r]}r](hj]hj]hhhjh}r](h]h]h]h]h]uhM h]r^hX1Default AMQP connection timeout is now 4 seconds.r^r^}r^(hj]hj]ubaubaubh)r^}r^(hX2`AsyncResult.read()` was always returning `True`. hj_]hhhjh}r^(h]h]h]h]h]uhNhhh]r^h)r^}r ^(hX1`AsyncResult.read()` was always returning `True`.hj^hhhjh}r ^(h]h]h]h]h]uhM h]r ^(j()r ^}r ^(hX`AsyncResult.read()`h}r^(h]h]h]h]h]uhj^h]r^hXAsyncResult.read()r^r^}r^(hUhj ^ubahj0ubhX was always returning r^r^}r^(hX was always returning hj^ubj()r^}r^(hX`True`h}r^(h]h]h]h]h]uhj^h]r^hXTruer^r^}r^(hUhj^ubahj0ubhX.r^}r^(hX.hj^ubeubaubh)r^}r ^(hXVOnly use README as long_description if the file exists so easy_install doesn't break. hj_]hhhjh}r!^(h]h]h]h]h]uhNhhh]r"^h)r#^}r$^(hXUOnly use README as long_description if the file exists so easy_install doesn't break.r%^hj^hhhjh}r&^(h]h]h]h]h]uhM h]r'^hXUOnly use README as long_description if the file exists so easy_install doesn't break.r(^r)^}r*^(hj%^hj#^ubaubaubh)r+^}r,^(hX@``celery.view``: JSON responses now properly set its mime-type. hj_]hhhjh}r-^(h]h]h]h]h]uhNhhh]r.^h)r/^}r0^(hX?``celery.view``: JSON responses now properly set its mime-type.hj+^hhhjh}r1^(h]h]h]h]h]uhM h]r2^(j)r3^}r4^(hX``celery.view``h}r5^(h]h]h]h]h]uhj/^h]r6^hX celery.viewr7^r8^}r9^(hUhj3^ubahjubhX0: JSON responses now properly set its mime-type.r:^r;^}r<^(hX0: JSON responses now properly set its mime-type.hj/^ubeubaubh)r=^}r>^(hX``apply_async`` now has a ``connection`` keyword argument so you can re-use the same AMQP connection if you want to execute more than one task. hj_]hhhjh}r?^(h]h]h]h]h]uhNhhh]r@^h)rA^}rB^(hX``apply_async`` now has a ``connection`` keyword argument so you can re-use the same AMQP connection if you want to execute more than one task.hj=^hhhjh}rC^(h]h]h]h]h]uhM h]rD^(j)rE^}rF^(hX``apply_async``h}rG^(h]h]h]h]h]uhjA^h]rH^hX apply_asyncrI^rJ^}rK^(hUhjE^ubahjubhX now has a rL^rM^}rN^(hX now has a hjA^ubj)rO^}rP^(hX``connection``h}rQ^(h]h]h]h]h]uhjA^h]rR^hX connectionrS^rT^}rU^(hUhjO^ubahjubhXg keyword argument so you can re-use the same AMQP connection if you want to execute more than one task.rV^rW^}rX^(hXg keyword argument so you can re-use the same AMQP connection if you want to execute more than one task.hjA^ubeubaubh)rY^}rZ^(hXCHandle failures in task_status view such that it won't throw 500s. hj_]hhhjh}r[^(h]h]h]h]h]uhNhhh]r\^h)r]^}r^^(hXBHandle failures in task_status view such that it won't throw 500s.r_^hjY^hhhjh}r`^(h]h]h]h]h]uhM h]ra^hXBHandle failures in task_status view such that it won't throw 500s.rb^rc^}rd^(hj_^hj]^ubaubaubh)re^}rf^(hX>Fixed typo ``AMQP_SERVER`` in documentation to ``AMQP_HOST``. hj_]hhhjh}rg^(h]h]h]h]h]uhNhhh]rh^h)ri^}rj^(hX=Fixed typo ``AMQP_SERVER`` in documentation to ``AMQP_HOST``.hje^hhhjh}rk^(h]h]h]h]h]uhM h]rl^(hX Fixed typo rm^rn^}ro^(hX Fixed typo hji^ubj)rp^}rq^(hX``AMQP_SERVER``h}rr^(h]h]h]h]h]uhji^h]rs^hX AMQP_SERVERrt^ru^}rv^(hUhjp^ubahjubhX in documentation to rw^rx^}ry^(hX in documentation to hji^ubj)rz^}r{^(hX ``AMQP_HOST``h}r|^(h]h]h]h]h]uhji^h]r}^hX AMQP_HOSTr~^r^}r^(hUhjz^ubahjubhX.r^}r^(hX.hji^ubeubaubh)r^}r^(hXDWorker exception e-mails sent to administrators now works properly. hj_]hhhjh}r^(h]h]h]h]h]uhNhhh]r^h)r^}r^(hXCWorker exception e-mails sent to administrators now works properly.r^hj^hhhjh}r^(h]h]h]h]h]uhM h]r^hXCWorker exception e-mails sent to administrators now works properly.r^r^}r^(hj^hj^ubaubaubh)r^}r^(hXoNo longer depends on ``django``, so installing ``celery`` won't affect the preferred Django version installed. hj_]hhhjh}r^(h]h]h]h]h]uhNhhh]r^h)r^}r^(hXnNo longer depends on ``django``, so installing ``celery`` won't affect the preferred Django version installed.hj^hhhjh}r^(h]h]h]h]h]uhM h]r^(hXNo longer depends on r^r^}r^(hXNo longer depends on hj^ubj)r^}r^(hX ``django``h}r^(h]h]h]h]h]uhj^h]r^hXdjangor^r^}r^(hUhj^ubahjubhX, so installing r^r^}r^(hX, so installing hj^ubj)r^}r^(hX ``celery``h}r^(h]h]h]h]h]uhj^h]r^hXceleryr^r^}r^(hUhj^ubahjubhX5 won't affect the preferred Django version installed.r^r^}r^(hX5 won't affect the preferred Django version installed.hj^ubeubaubh)r^}r^(hXWNow works with PostgreSQL (psycopg2) again by registering the ``PickledObject`` field. hj_]hhhjh}r^(h]h]h]h]h]uhNhhh]r^h)r^}r^(hXVNow works with PostgreSQL (psycopg2) again by registering the ``PickledObject`` field.hj^hhhjh}r^(h]h]h]h]h]uhM h]r^(hX>Now works with PostgreSQL (psycopg2) again by registering the r^r^}r^(hX>Now works with PostgreSQL (psycopg2) again by registering the hj^ubj)r^}r^(hX``PickledObject``h}r^(h]h]h]h]h]uhj^h]r^hX PickledObjectr^r^}r^(hUhj^ubahjubhX field.r^r^}r^(hX field.hj^ubeubaubh)r^}r^(hX}``celeryd``: Added ``--detach`` option as an alias to ``--daemon``, and it's the term used in the documentation from now on. hj_]hhhjh}r^(h]h]h]h]h]uhNhhh]r^h)r^}r^(hX|``celeryd``: Added ``--detach`` option as an alias to ``--daemon``, and it's the term used in the documentation from now on.hj^hhhjh}r^(h]h]h]h]h]uhM h]r^(j)r^}r^(hX ``celeryd``h}r^(h]h]h]h]h]uhj^h]r^hXcelerydr^r^}r^(hUhj^ubahjubhX: Added r^r^}r^(hX: Added hj^ubj)r^}r^(hX ``--detach``h}r^(h]h]h]h]h]uhj^h]r^hX--detachr^r^}r^(hUhj^ubahjubhX option as an alias to r^r^}r^(hX option as an alias to hj^ubj)r^}r^(hX ``--daemon``h}r^(h]h]h]h]h]uhj^h]r^hX--daemonr^r^}r^(hUhj^ubahjubhX:, and it's the term used in the documentation from now on.r^r^}r^(hX:, and it's the term used in the documentation from now on.hj^ubeubaubh)r^}r^(hXpMake sure the pool and periodic task worker thread is terminated properly at exit. (So ``Ctrl-C`` works again). hj_]hhhjh}r^(h]h]h]h]h]uhNhhh]r^h)r^}r^(hXoMake sure the pool and periodic task worker thread is terminated properly at exit. (So ``Ctrl-C`` works again).hj^hhhjh}r^(h]h]h]h]h]uhM h]r^(hXWMake sure the pool and periodic task worker thread is terminated properly at exit. (So r^r^}r^(hXWMake sure the pool and periodic task worker thread is terminated properly at exit. (So hj^ubj)r^}r^(hX ``Ctrl-C``h}r^(h]h]h]h]h]uhj^h]r^hXCtrl-Cr^r^}r^(hUhj^ubahjubhX works again).r^r^}r^(hX works again).hj^ubeubaubh)r^}r^(hX"Now depends on ``python-daemon``. hj_]hhhjh}r_(h]h]h]h]h]uhNhhh]r_h)r_}r_(hX!Now depends on ``python-daemon``.hj^hhhjh}r_(h]h]h]h]h]uhM h]r_(hXNow depends on r_r_}r_(hXNow depends on hj_ubj)r _}r _(hX``python-daemon``h}r _(h]h]h]h]h]uhj_h]r _hX python-daemonr _r_}r_(hUhj _ubahjubhX.r_}r_(hX.hj_ubeubaubh)r_}r_(hX%Removed dependency to ``simplejson`` hj_]hhhjh}r_(h]h]h]h]h]uhNhhh]r_h)r_}r_(hX$Removed dependency to ``simplejson``hj_hhhjh}r_(h]h]h]h]h]uhM h]r_(hXRemoved dependency to r_r_}r_(hXRemoved dependency to hj_ubj)r_}r_(hX``simplejson``h}r_(h]h]h]h]h]uhj_h]r _hX simplejsonr!_r"_}r#_(hUhj_ubahjubeubaubh)r$_}r%_(hXwCache Backend: Re-establishes connection for every task process if the Django cache backend is memcached/libmemcached. hj_]hhhjh}r&_(h]h]h]h]h]uhNhhh]r'_h)r(_}r)_(hXvCache Backend: Re-establishes connection for every task process if the Django cache backend is memcached/libmemcached.r*_hj$_hhhjh}r+_(h]h]h]h]h]uhM h]r,_hXvCache Backend: Re-establishes connection for every task process if the Django cache backend is memcached/libmemcached.r-_r._}r/_(hj*_hj(_ubaubaubh)r0_}r1_(hXKTyrant Backend: Now re-establishes the connection for every task executed. hj_]hhhjh}r2_(h]h]h]h]h]uhNhhh]r3_h)r4_}r5_(hXJTyrant Backend: Now re-establishes the connection for every task executed.r6_hj0_hhhjh}r7_(h]h]h]h]h]uhM h]r8_hXJTyrant Backend: Now re-establishes the connection for every task executed.r9_r:_}r;_(hj6_hj4_ubaubaubeubjf)r<_}r=_(hX.. _version-0.3.3:hj3]hhhjih}r>_(h]h]h]h]h]jkjuhM hhh]ubeubh)r?_}r@_(hUhhhhjn}rA_haj<_shhh}rB_(h]h]h]h]rC_(jUid49rD_eh]rE_(hhaeuhM hhjt}rF_jj<_sh]rG_(h)rH_}rI_(hj"hj?_hhhhh}rJ_(h]h]h]h]h]jkjuhM hhh]rK_hX0.3.3rL_rM_}rN_(hj"hjH_ubaubj)rO_}rP_(hUhj?_hhhjh}rQ_(h]h]h]h]h]uhM hhh]rR_j)rS_}rT_(hUhjO_hhhjh}rU_(h]h]h]h]h]uhM hhh]rV_(j)rW_}rX_(hX release-daterY_h}rZ_(h]h]h]h]h]uhjS_h]r[_hX release-dater\_r]_}r^_(hjY_hjW_ubahjubj)r__}r`_(hX2009-06-08 01:07 P.M CET h}ra_(h]h]h]h]h]uhjS_h]rb_h)rc_}rd_(hX2009-06-08 01:07 P.M CETre_hj__hhhjh}rf_(h]h]h]h]h]uhM h]rg_hX2009-06-08 01:07 P.M CETrh_ri_}rj_(hje_hjc_ubaubahjubeubaubh)rk_}rl_(hUhj?_hhhhh}rm_(jX*h]h]h]h]h]uhM hhh]rn_h)ro_}rp_(hXgThe ``PeriodicWorkController`` now sleeps for 1 second between checking for periodic tasks to execute. hjk_hhhjh}rq_(h]h]h]h]h]uhNhhh]rr_h)rs_}rt_(hXfThe ``PeriodicWorkController`` now sleeps for 1 second between checking for periodic tasks to execute.hjo_hhhjh}ru_(h]h]h]h]h]uhM h]rv_(hXThe rw_rx_}ry_(hXThe hjs_ubj)rz_}r{_(hX``PeriodicWorkController``h}r|_(h]h]h]h]h]uhjs_h]r}_hXPeriodicWorkControllerr~_r_}r_(hUhjz_ubahjubhXH now sleeps for 1 second between checking for periodic tasks to execute.r_r_}r_(hXH now sleeps for 1 second between checking for periodic tasks to execute.hjs_ubeubaubaubjf)r_}r_(hX.. _version-0.3.2:hj?_hhhjih}r_(h]h]h]h]h]jkj0uhM hhh]ubeubh)r_}r_(hUhhhhjn}r_hRj_shhh}r_(h]h]h]h]r_(j0Uid50r_eh]r_(hHhReuhM hhjt}r_j0j_sh]r_(h)r_}r_(hj5hj_hhhhh}r_(h]h]h]h]h]jkj/uhM hhh]r_hX0.3.2r_r_}r_(hj5hj_ubaubj)r_}r_(hUhj_hhhjh}r_(h]h]h]h]h]uhM hhh]r_j)r_}r_(hUhj_hhhjh}r_(h]h]h]h]h]uhM hhh]r_(j)r_}r_(hX release-dater_h}r_(h]h]h]h]h]uhj_h]r_hX release-dater_r_}r_(hj_hj_ubahjubj)r_}r_(hX2009-06-08 01:07 P.M CET h}r_(h]h]h]h]h]uhj_h]r_h)r_}r_(hX2009-06-08 01:07 P.M CETr_hj_hhhjh}r_(h]h]h]h]h]uhM h]r_hX2009-06-08 01:07 P.M CETr_r_}r_(hj_hj_ubaubahjubeubaubh)r_}r_(hUhj_hhhhh}r_(jX*h]h]h]h]h]uhM hhh]r_(h)r_}r_(hXZceleryd: Added option ``--discard``: Discard (delete!) all waiting messages in the queue. hj_hhhjh}r_(h]h]h]h]h]uhNhhh]r_h)r_}r_(hXYceleryd: Added option ``--discard``: Discard (delete!) all waiting messages in the queue.hj_hhhjh}r_(h]h]h]h]h]uhM h]r_(hXceleryd: Added option r_r_}r_(hXceleryd: Added option hj_ubj)r_}r_(hX ``--discard``h}r_(h]h]h]h]h]uhj_h]r_hX --discardr_r_}r_(hUhj_ubahjubhX6: Discard (delete!) all waiting messages in the queue.r_r_}r_(hX6: Discard (delete!) all waiting messages in the queue.hj_ubeubaubh)r_}r_(hXCceleryd: The ``--wakeup-after`` option was not handled as a float. hj_hhhjh}r_(h]h]h]h]h]uhNhhh]r_h)r_}r_(hXBceleryd: The ``--wakeup-after`` option was not handled as a float.hj_hhhjh}r_(h]h]h]h]h]uhM h]r_(hX celeryd: The r_r_}r_(hX celeryd: The hj_ubj)r_}r_(hX``--wakeup-after``h}r_(h]h]h]h]h]uhj_h]r_hX--wakeup-afterr_r_}r_(hUhj_ubahjubhX# option was not handled as a float.r_r_}r_(hX# option was not handled as a float.hj_ubeubaubeubjf)r_}r_(hX.. _version-0.3.1:hj_hhhjih}r_(h]h]h]h]h]jkjCuhM hhh]ubeubh)r_}r_(hUhhhhjn}r_h_j_shhh}r_(h]h]h]h]r_(jCUid51r_eh]r_(hh_euhM hhjt}r_jCj_sh]r_(h)r_}r_(hjHhj_hhhhh}r_(h]h]h]h]h]jkjBuhM hhh]r_hX0.3.1r_r_}r_(hjHhj_ubaubj)r_}r_(hUhj_hhhjh}r_(h]h]h]h]h]uhM hhh]r_j)r_}r_(hUhj_hhhjh}r_(h]h]h]h]h]uhM hhh]r_(j)r_}r_(hX release-dater_h}r_(h]h]h]h]h]uhj_h]r`hX release-dater`r`}r`(hj_hj_ubahjubj)r`}r`(hX2009-06-08 01:07 P.M CET h}r`(h]h]h]h]h]uhj_h]r`h)r`}r `(hX2009-06-08 01:07 P.M CETr `hj`hhhjh}r `(h]h]h]h]h]uhM h]r `hX2009-06-08 01:07 P.M CETr `r`}r`(hj `hj`ubaubahjubeubaubh)r`}r`(hUhj_hhhhh}r`(jX*h]h]h]h]h]uhM hhh]r`(h)r`}r`(hXmThe `PeriodicTask`` worker is now running in its own thread instead of blocking the ``TaskController`` loop. hj`hhhjh}r`(h]h]h]h]h]uhNhhh]r`h)r`}r`(hXlThe `PeriodicTask`` worker is now running in its own thread instead of blocking the ``TaskController`` loop.hj`hhhjh}r`(h]h]h]h]h]uhM h]r`(hXThe r`r`}r`(hXThe hj`ubj()r`}r `(hX`PeriodicTask``h}r!`(h]h]h]h]h]uhj`h]r"`hX PeriodicTask`r#`r$`}r%`(hUhj`ubahj0ubhXA worker is now running in its own thread instead of blocking the r&`r'`}r(`(hXA worker is now running in its own thread instead of blocking the hj`ubj)r)`}r*`(hX``TaskController``h}r+`(h]h]h]h]h]uhj`h]r,`hXTaskControllerr-`r.`}r/`(hUhj)`ubahjubhX loop.r0`r1`}r2`(hX loop.hj`ubeubaubh)r3`}r4`(hXIDefault ``QUEUE_WAKEUP_AFTER`` has been lowered to ``0.1`` (was ``0.3``) hj`hhhjh}r5`(h]h]h]h]h]uhNhhh]r6`h)r7`}r8`(hXHDefault ``QUEUE_WAKEUP_AFTER`` has been lowered to ``0.1`` (was ``0.3``)hj3`hhhjh}r9`(h]h]h]h]h]uhM h]r:`(hXDefault r;`r<`}r=`(hXDefault hj7`ubj)r>`}r?`(hX``QUEUE_WAKEUP_AFTER``h}r@`(h]h]h]h]h]uhj7`h]rA`hXQUEUE_WAKEUP_AFTERrB`rC`}rD`(hUhj>`ubahjubhX has been lowered to rE`rF`}rG`(hX has been lowered to hj7`ubj)rH`}rI`(hX``0.1``h}rJ`(h]h]h]h]h]uhj7`h]rK`hX0.1rL`rM`}rN`(hUhjH`ubahjubhX (was rO`rP`}rQ`(hX (was hj7`ubj)rR`}rS`(hX``0.3``h}rT`(h]h]h]h]h]uhj7`h]rU`hX0.3rV`rW`}rX`(hUhjR`ubahjubhX)rY`}rZ`(hX)hj7`ubeubaubeubjf)r[`}r\`(hX.. _version-0.3.0:hj_hhhjih}r]`(h]h]h]h]h]jkjVuhM hhh]ubeubh)r^`}r_`(hUhhhhjn}r``h`j[`shhh}ra`(h]h]h]h]rb`(jVUid52rc`eh]rd`(hh`euhM hhjt}re`jVj[`sh]rf`(h)rg`}rh`(hj[hj^`hhhhh}ri`(h]h]h]h]h]jkjUuhM hhh]rj`hX0.3.0rk`rl`}rm`(hj[hjg`ubaubj)rn`}ro`(hUhj^`hhhjh}rp`(h]h]h]h]h]uhM hhh]rq`j)rr`}rs`(hUhjn`hhhjh}rt`(h]h]h]h]h]uhM hhh]ru`(j)rv`}rw`(hX release-daterx`h}ry`(h]h]h]h]h]uhjr`h]rz`hX release-dater{`r|`}r}`(hjx`hjv`ubahjubj)r~`}r`(hX2009-06-08 12:41 P.M CET h}r`(h]h]h]h]h]uhjr`h]r`h)r`}r`(hX2009-06-08 12:41 P.M CETr`hj~`hhhjh}r`(h]h]h]h]h]uhM h]r`hX2009-06-08 12:41 P.M CETr`r`}r`(hj`hj`ubaubahjubeubaubjgB)r`}r`(hXQThis is a development version, for the stable release, please see versions 0.2.x.hj^`hhhjBh}r`(h]h]h]h]h]uhNhhh]r`h)r`}r`(hXQThis is a development version, for the stable release, please see versions 0.2.x.r`hj`hhhjh}r`(h]h]h]h]h]uhM h]r`hXQThis is a development version, for the stable release, please see versions 0.2.x.r`r`}r`(hj`hj`ubaubaubh)r`}r`(hX**VERY IMPORTANT:** Pickle is now the encoder used for serializing task arguments, so be sure to flush your task queue before you upgrade.hj^`hhhjh}r`(h]h]h]h]h]uhM hhh]r`(j )r`}r`(hX**VERY IMPORTANT:**h}r`(h]h]h]h]h]uhj`h]r`hXVERY IMPORTANT:r`r`}r`(hUhj`ubahj ubhXw Pickle is now the encoder used for serializing task arguments, so be sure to flush your task queue before you upgrade.r`r`}r`(hXw Pickle is now the encoder used for serializing task arguments, so be sure to flush your task queue before you upgrade.hj`ubeubh)r`}r`(hUhj^`hhhhh}r`(jX*h]h]h]h]h]uhM hhh]r`(h)r`}r`(hX**IMPORTANT** TaskSet.run() now returns a celery.result.TaskSetResult instance, which lets you inspect the status and return values of a taskset as it was a single entity. hj`hhhjh}r`(h]h]h]h]h]uhNhhh]r`h)r`}r`(hX**IMPORTANT** TaskSet.run() now returns a celery.result.TaskSetResult instance, which lets you inspect the status and return values of a taskset as it was a single entity.hj`hhhjh}r`(h]h]h]h]h]uhM h]r`(j )r`}r`(hX **IMPORTANT**h}r`(h]h]h]h]h]uhj`h]r`hX IMPORTANTr`r`}r`(hUhj`ubahj ubhX TaskSet.run() now returns a celery.result.TaskSetResult instance, which lets you inspect the status and return values of a taskset as it was a single entity.r`r`}r`(hX TaskSet.run() now returns a celery.result.TaskSetResult instance, which lets you inspect the status and return values of a taskset as it was a single entity.hj`ubeubaubh)r`}r`(hX5**IMPORTANT** Celery now depends on carrot >= 0.4.1. hj`hhhjh}r`(h]h]h]h]h]uhNhhh]r`h)r`}r`(hX4**IMPORTANT** Celery now depends on carrot >= 0.4.1.hj`hhhjh}r`(h]h]h]h]h]uhM h]r`(j )r`}r`(hX **IMPORTANT**h}r`(h]h]h]h]h]uhj`h]r`hX IMPORTANTr`r`}r`(hUhj`ubahj ubhX' Celery now depends on carrot >= 0.4.1.r`r`}r`(hX' Celery now depends on carrot >= 0.4.1.hj`ubeubaubh)r`}r`(hXThe celery daemon now sends task errors to the registered admin e-mails. To turn off this feature, set ``SEND_CELERY_TASK_ERROR_EMAILS`` to ``False`` in your ``settings.py``. Thanks to Grégoire Cachet. hj`hhhjh}r`(h]h]h]h]h]uhNhhh]r`h)r`}r`(hXThe celery daemon now sends task errors to the registered admin e-mails. To turn off this feature, set ``SEND_CELERY_TASK_ERROR_EMAILS`` to ``False`` in your ``settings.py``. Thanks to Grégoire Cachet.hj`hhhjh}r`(h]h]h]h]h]uhM h]r`(hXgThe celery daemon now sends task errors to the registered admin e-mails. To turn off this feature, set r`r`}r`(hXgThe celery daemon now sends task errors to the registered admin e-mails. To turn off this feature, set hj`ubj)r`}r`(hX!``SEND_CELERY_TASK_ERROR_EMAILS``h}r`(h]h]h]h]h]uhj`h]r`hXSEND_CELERY_TASK_ERROR_EMAILSr`r`}r`(hUhj`ubahjubhX to r`r`}r`(hX to hj`ubj)r`}r`(hX ``False``h}r`(h]h]h]h]h]uhj`h]r`hXFalser`r`}r`(hUhj`ubahjubhX in your r`r`}r`(hX in your hj`ubj)r`}r`(hX``settings.py``h}r`(h]h]h]h]h]uhj`h]r`hX settings.pyr`r`}r`(hUhj`ubahjubhX. Thanks to Grégoire Cachet.r`r`}r`(hX. Thanks to Grégoire Cachet.hj`ubeubaubh)r`}r`(hXzYou can now run the celery daemon by using ``manage.py``:: $ python manage.py celeryd Thanks to Grégoire Cachet. hj`hhhjh}r`(h]h]h]h]h]uhNhhh]r`(h)r`}r`(hX:You can now run the celery daemon by using ``manage.py``::hj`hhhjh}r`(h]h]h]h]h]uhM h]r`(hX+You can now run the celery daemon by using r`r`}r`(hX+You can now run the celery daemon by using hj`ubj)ra}ra(hX ``manage.py``h}ra(h]h]h]h]h]uhj`h]rahX manage.pyrara}ra(hUhjaubahjubhX:ra}ra(hX:hj`ubeubjM)r a}r a(hX$ python manage.py celerydhj`hjPh}r a(jTjUh]h]h]h]h]uhM h]r ahX$ python manage.py celerydr ara}ra(hUhj aubaubh)ra}ra(hXThanks to Grégoire Cachet.rahj`hhhjh}ra(h]h]h]h]h]uhM h]rahXThanks to Grégoire Cachet.rara}ra(hjahjaubaubeubh)ra}ra(hXAdded support for message priorities, topic exchanges, custom routing keys for tasks. This means we have introduced ``celery.task.apply_async``, a new way of executing tasks. You can use ``celery.task.delay`` and ``celery.Task.delay`` like usual, but if you want greater control over the message sent, you want ``celery.task.apply_async`` and ``celery.Task.apply_async``. This also means the AMQP configuration has changed. Some settings has been renamed, while others are new:: CELERY_AMQP_EXCHANGE CELERY_AMQP_PUBLISHER_ROUTING_KEY CELERY_AMQP_CONSUMER_ROUTING_KEY CELERY_AMQP_CONSUMER_QUEUE CELERY_AMQP_EXCHANGE_TYPE See the entry `Can I send some tasks to only some servers?`_ in the `FAQ`_ for more information. hj`hhhjh}ra(h]h]h]h]h]uhNhhh]ra(h)ra}ra(hXAdded support for message priorities, topic exchanges, custom routing keys for tasks. This means we have introduced ``celery.task.apply_async``, a new way of executing tasks.hjahhhjh}ra(h]h]h]h]h]uhM h]ra(hXtAdded support for message priorities, topic exchanges, custom routing keys for tasks. This means we have introduced r ar!a}r"a(hXtAdded support for message priorities, topic exchanges, custom routing keys for tasks. This means we have introduced hjaubj)r#a}r$a(hX``celery.task.apply_async``h}r%a(h]h]h]h]h]uhjah]r&ahXcelery.task.apply_asyncr'ar(a}r)a(hUhj#aubahjubhX, a new way of executing tasks.r*ar+a}r,a(hX, a new way of executing tasks.hjaubeubh)r-a}r.a(hXYou can use ``celery.task.delay`` and ``celery.Task.delay`` like usual, but if you want greater control over the message sent, you want ``celery.task.apply_async`` and ``celery.Task.apply_async``.hjahhhjh}r/a(h]h]h]h]h]uhM h]r0a(hX You can use r1ar2a}r3a(hX You can use hj-aubj)r4a}r5a(hX``celery.task.delay``h}r6a(h]h]h]h]h]uhj-ah]r7ahXcelery.task.delayr8ar9a}r:a(hUhj4aubahjubhX and r;ara}r?a(hX``celery.Task.delay``h}r@a(h]h]h]h]h]uhj-ah]rAahXcelery.Task.delayrBarCa}rDa(hUhj>aubahjubhXM like usual, but if you want greater control over the message sent, you want rEarFa}rGa(hXM like usual, but if you want greater control over the message sent, you want hj-aubj)rHa}rIa(hX``celery.task.apply_async``h}rJa(h]h]h]h]h]uhj-ah]rKahXcelery.task.apply_asyncrLarMa}rNa(hUhjHaubahjubhX and rOarPa}rQa(hX and hj-aubj)rRa}rSa(hX``celery.Task.apply_async``h}rTa(h]h]h]h]h]uhj-ah]rUahXcelery.Task.apply_asyncrVarWa}rXa(hUhjRaubahjubhX.rYa}rZa(hX.hj-aubeubh)r[a}r\a(hXjThis also means the AMQP configuration has changed. Some settings has been renamed, while others are new::hjahhhjh}r]a(h]h]h]h]h]uhM h]r^ahXiThis also means the AMQP configuration has changed. Some settings has been renamed, while others are new:r_ar`a}raa(hXiThis also means the AMQP configuration has changed. Some settings has been renamed, while others are new:hj[aubaubjM)rba}rca(hXCELERY_AMQP_EXCHANGE CELERY_AMQP_PUBLISHER_ROUTING_KEY CELERY_AMQP_CONSUMER_ROUTING_KEY CELERY_AMQP_CONSUMER_QUEUE CELERY_AMQP_EXCHANGE_TYPEhjahjPh}rda(jTjUh]h]h]h]h]uhM h]reahXCELERY_AMQP_EXCHANGE CELERY_AMQP_PUBLISHER_ROUTING_KEY CELERY_AMQP_CONSUMER_ROUTING_KEY CELERY_AMQP_CONSUMER_QUEUE CELERY_AMQP_EXCHANGE_TYPErfarga}rha(hUhjbaubaubh)ria}rja(hX`See the entry `Can I send some tasks to only some servers?`_ in the `FAQ`_ for more information.hjahhhjh}rka(h]h]h]h]h]uhM h]rla(hXSee the entry rmarna}roa(hXSee the entry hjiaubh)rpa}rqa(hX.`Can I send some tasks to only some servers?`_j Khjiahjh}rra(UnameX+Can I send some tasks to only some servers?j X!http://bit.ly/celery_AMQP_routingrsah]h]h]h]h]uh]rtahX+Can I send some tasks to only some servers?ruarva}rwa(hUhjpaubaubhX in the rxarya}rza(hX in the hjiaubh)r{a}r|a(hX`FAQ`_j Khjiahjh}r}a(UnameXFAQj X%http://ask.github.com/celery/faq.htmlr~ah]h]h]h]h]uh]rahXFAQrara}ra(hUhj{aubaubhX for more information.rara}ra(hX for more information.hjiaubeubeubeubjf)ra}ra(hX\.. _`Can I send some tasks to only some servers?`: http://bit.ly/celery_AMQP_routinghKhj^`hhhjih}ra(j jsah]raU*can-i-send-some-tasks-to-only-some-serversraah]h]h]h]rahauhM hhh]ubjf)ra}ra(hX0.. _`FAQ`: http://ask.github.com/celery/faq.htmlhKhj^`hhhjih}ra(j j~ah]raUfaqraah]h]h]h]rah!auhM hhh]ubh)ra}ra(hUhj^`hhhhh}ra(jX*h]h]h]h]h]uhM hhh]ra(h)ra}ra(hX~Task errors are now logged using log level `ERROR` instead of `INFO`, and stacktraces are dumped. Thanks to Grégoire Cachet. hjahhhjh}ra(h]h]h]h]h]uhNhhh]rah)ra}ra(hX}Task errors are now logged using log level `ERROR` instead of `INFO`, and stacktraces are dumped. Thanks to Grégoire Cachet.hjahhhjh}ra(h]h]h]h]h]uhM h]ra(hX+Task errors are now logged using log level rara}ra(hX+Task errors are now logged using log level hjaubj()ra}ra(hX`ERROR`h}ra(h]h]h]h]h]uhjah]rahXERRORrara}ra(hUhjaubahj0ubhX instead of rara}ra(hX instead of hjaubj()ra}ra(hX`INFO`h}ra(h]h]h]h]h]uhjah]rahXINFOrara}ra(hUhjaubahj0ubhX9, and stacktraces are dumped. Thanks to Grégoire Cachet.rara}ra(hX9, and stacktraces are dumped. Thanks to Grégoire Cachet.hjaubeubaubh)ra}ra(hXMake every new worker process re-establish it's Django DB connection, this solving the "MySQL connection died?" exceptions. Thanks to Vitaly Babiy and Jirka Vejrazka. hjahhhjh}ra(h]h]h]h]h]uhNhhh]rah)ra}ra(hXMake every new worker process re-establish it's Django DB connection, this solving the "MySQL connection died?" exceptions. Thanks to Vitaly Babiy and Jirka Vejrazka.rahjahhhjh}ra(h]h]h]h]h]uhM h]rahXMake every new worker process re-establish it's Django DB connection, this solving the "MySQL connection died?" exceptions. Thanks to Vitaly Babiy and Jirka Vejrazka.rara}ra(hjahjaubaubaubh)ra}ra(hX**IMPORTANT** Now using pickle to encode task arguments. This means you now can pass complex python objects to tasks as arguments. hjahhhjh}ra(h]h]h]h]h]uhNhhh]rah)ra}ra(hX**IMPORTANT** Now using pickle to encode task arguments. This means you now can pass complex python objects to tasks as arguments.hjahhhjh}ra(h]h]h]h]h]uhM h]ra(j )ra}ra(hX **IMPORTANT**h}ra(h]h]h]h]h]uhjah]rahX IMPORTANTrara}ra(hUhjaubahj ubhXu Now using pickle to encode task arguments. This means you now can pass complex python objects to tasks as arguments.rara}ra(hXu Now using pickle to encode task arguments. This means you now can pass complex python objects to tasks as arguments.hjaubeubaubh)ra}ra(hX$Removed dependency to ``yadayada``. hjahhhjh}ra(h]h]h]h]h]uhNhhh]rah)ra}ra(hX#Removed dependency to ``yadayada``.hjahhhjh}ra(h]h]h]h]h]uhM h]ra(hXRemoved dependency to rara}ra(hXRemoved dependency to hjaubj)ra}ra(hX ``yadayada``h}ra(h]h]h]h]h]uhjah]rahXyadayadarara}ra(hUhjaubahjubhX.ra}ra(hX.hjaubeubaubh)ra}ra(hX#Added a FAQ, see ``docs/faq.rst``. hjahhhjh}ra(h]h]h]h]h]uhNhhh]rah)ra}ra(hX"Added a FAQ, see ``docs/faq.rst``.hjahhhjh}ra(h]h]h]h]h]uhM h]ra(hXAdded a FAQ, see rara}ra(hXAdded a FAQ, see hjaubj)ra}ra(hX``docs/faq.rst``h}ra(h]h]h]h]h]uhjah]rahX docs/faq.rstrara}ra(hUhjaubahjubhX.ra}ra(hX.hjaubeubaubh)ra}ra(hXXNow converts any Unicode keys in task `kwargs` to regular strings. Thanks Vitaly Babiy. hjahhhjh}ra(h]h]h]h]h]uhNhhh]rah)ra}rb(hXWNow converts any Unicode keys in task `kwargs` to regular strings. Thanks Vitaly Babiy.hjahhhjh}rb(h]h]h]h]h]uhM h]rb(hX&Now converts any Unicode keys in task rbrb}rb(hX&Now converts any Unicode keys in task hjaubj()rb}rb(hX`kwargs`h}rb(h]h]h]h]h]uhjah]r bhXkwargsr br b}r b(hUhjbubahj0ubhX) to regular strings. Thanks Vitaly Babiy.r brb}rb(hX) to regular strings. Thanks Vitaly Babiy.hjaubeubaubh)rb}rb(hX2Renamed the ``TaskDaemon`` to ``WorkController``. hjahhhjh}rb(h]h]h]h]h]uhNhhh]rbh)rb}rb(hX1Renamed the ``TaskDaemon`` to ``WorkController``.hjbhhhjh}rb(h]h]h]h]h]uhM h]rb(hX Renamed the rbrb}rb(hX Renamed the hjbubj)rb}rb(hX``TaskDaemon``h}rb(h]h]h]h]h]uhjbh]rbhX TaskDaemonrbr b}r!b(hUhjbubahjubhX to r"br#b}r$b(hX to hjbubj)r%b}r&b(hX``WorkController``h}r'b(h]h]h]h]h]uhjbh]r(bhXWorkControllerr)br*b}r+b(hUhj%bubahjubhX.r,b}r-b(hX.hjbubeubaubh)r.b}r/b(hXW``celery.datastructures.TaskProcessQueue`` is now renamed to ``celery.pool.TaskPool``. hjahhhjh}r0b(h]h]h]h]h]uhNhhh]r1bh)r2b}r3b(hXV``celery.datastructures.TaskProcessQueue`` is now renamed to ``celery.pool.TaskPool``.hj.bhhhjh}r4b(h]h]h]h]h]uhM h]r5b(j)r6b}r7b(hX*``celery.datastructures.TaskProcessQueue``h}r8b(h]h]h]h]h]uhj2bh]r9bhX&celery.datastructures.TaskProcessQueuer:br;b}rb}r?b(hX is now renamed to hj2bubj)r@b}rAb(hX``celery.pool.TaskPool``h}rBb(h]h]h]h]h]uhj2bh]rCbhXcelery.pool.TaskPoolrDbrEb}rFb(hUhj@bubahjubhX.rGb}rHb(hX.hj2bubeubaubh)rIb}rJb(hXNThe pool algorithm has been refactored for greater performance and stability. hjahhhjh}rKb(h]h]h]h]h]uhNhhh]rLbh)rMb}rNb(hXMThe pool algorithm has been refactored for greater performance and stability.rObhjIbhhhjh}rPb(h]h]h]h]h]uhM# h]rQbhXMThe pool algorithm has been refactored for greater performance and stability.rRbrSb}rTb(hjObhjMbubaubaubeubjf)rUb}rVb(hX.. _version-0.2.0:hj^`hhhjih}rWb(h]h]h]h]h]jkjiuhM& hhh]ubeubh)rXb}rYb(hUhhhhjn}rZbhjUbshhh}r[b(h]h]h]h]r\b(jiUid53r]beh]r^b(hheuhM) hhjt}r_bjijUbsh]r`b(h)rab}rbb(hjnhjXbhhhhh}rcb(h]h]h]h]h]jkjhuhM) hhh]rdbhX0.2.0rebrfb}rgb(hjnhjabubaubj)rhb}rib(hUhjXbhhhjh}rjb(h]h]h]h]h]uhM* hhh]rkbj)rlb}rmb(hUhjhbhhhjh}rnb(h]h]h]h]h]uhM* hhh]rob(j)rpb}rqb(hX release-daterrbh}rsb(h]h]h]h]h]uhjlbh]rtbhX release-daterubrvb}rwb(hjrbhjpbubahjubj)rxb}ryb(hX2009-05-20 05:14 P.M CET h}rzb(h]h]h]h]h]uhjlbh]r{bh)r|b}r}b(hX2009-05-20 05:14 P.M CETr~bhjxbhhhjh}rb(h]h]h]h]h]uhM* h]rbhX2009-05-20 05:14 P.M CETrbrb}rb(hj~bhj|bubaubahjubeubaubh)rb}rb(hUhjXbhhhhh}rb(jX*h]h]h]h]h]uhM, hhh]rb(h)rb}rb(hXFinal release of 0.2.0 hjbhhhjh}rb(h]h]h]h]h]uhNhhh]rbh)rb}rb(hXFinal release of 0.2.0rbhjbhhhjh}rb(h]h]h]h]h]uhM, h]rbhXFinal release of 0.2.0rbrb}rb(hjbhjbubaubaubh)rb}rb(hX&Compatible with carrot version 0.4.0. hjbhhhjh}rb(h]h]h]h]h]uhNhhh]rbh)rb}rb(hX%Compatible with carrot version 0.4.0.rbhjbhhhjh}rb(h]h]h]h]h]uhM. h]rbhX%Compatible with carrot version 0.4.0.rbrb}rb(hjbhjbubaubaubh)rb}rb(hXPFixes some syntax errors related to fetching results from the database backend. hjbhhhjh}rb(h]h]h]h]h]uhNhhh]rbh)rb}rb(hXOFixes some syntax errors related to fetching results from the database backend.rbhjbhhhjh}rb(h]h]h]h]h]uhM0 h]rbhXOFixes some syntax errors related to fetching results from the database backend.rbrb}rb(hjbhjbubaubaubeubjf)rb}rb(hX.. _version-0.2.0-pre3:hjXbhhhjih}rb(h]h]h]h]h]jkUversion-0-2-0-pre3rbuhM3 hhh]ubeubh)rb}rb(hUhhhhjn}rbhpjbshhh}rb(h]h]h]h]rb(j|jbeh]rb(hNhpeuhM6 hhjt}rbjbjbsh]rb(h)rb}rb(hjhjbhhhhh}rb(h]h]h]h]h]jkj{uhM6 hhh]rbhX 0.2.0-pre3rbrb}rb(hjhjbubaubj)rb}rb(hUhjbhhhjh}rb(h]h]h]h]h]uhM7 hhh]rbj)rb}rb(hUhjbhhhjh}rb(h]h]h]h]h]uhM7 hhh]rb(j)rb}rb(hX release-daterbh}rb(h]h]h]h]h]uhjbh]rbhX release-daterbrb}rb(hjbhjbubahjubj)rb}rb(hX2009-05-20 05:14 P.M CET h}rb(h]h]h]h]h]uhjbh]rbh)rb}rb(hX2009-05-20 05:14 P.M CETrbhjbhhhjh}rb(h]h]h]h]h]uhM7 h]rbhX2009-05-20 05:14 P.M CETrbrb}rb(hjbhjbubaubahjubeubaubh)rb}rb(hUhjbhhhhh}rb(jX*h]h]h]h]h]uhM9 hhh]rbh)rb}rb(hX*Internal release*. Improved handling of unpickleable exceptions, `get_result` now tries to recreate something looking like the original exception. hjbhhhjh}rb(h]h]h]h]h]uhNhhh]rbh)rb}rb(hX*Internal release*. Improved handling of unpickleable exceptions, `get_result` now tries to recreate something looking like the original exception.hjbhhhjh}rb(h]h]h]h]h]uhM9 h]rb(j )rb}rb(hX*Internal release*h}rb(h]h]h]h]h]uhjbh]rbhXInternal releaserbrb}rb(hUhjbubahj ubhX0. Improved handling of unpickleable exceptions, rbrb}rb(hX0. Improved handling of unpickleable exceptions, hjbubj()rb}rb(hX `get_result`h}rb(h]h]h]h]h]uhjbh]rbhX get_resultrbrb}rb(hUhjbubahj0ubhXE now tries to recreate something looking like the original exception.rbrb}rb(hXE now tries to recreate something looking like the original exception.hjbubeubaubaubjf)rb}rb(hX.. _version-0.2.0-pre2:hjbhhhjih}rb(h]h]h]h]h]jkUversion-0-2-0-pre2rbuhM= hhh]ubeubh)rb}rc(hUhhhhjn}rchqjbshhh}rc(h]h]h]h]rc(jjbeh]rc(hMhqeuhM@ hhjt}rcjbjbsh]rc(h)rc}rc(hjhjbhhhhh}r c(h]h]h]h]h]jkjuhM@ hhh]r chX 0.2.0-pre2r cr c}r c(hjhjcubaubj)rc}rc(hUhjbhhhjh}rc(h]h]h]h]h]uhMA hhh]rcj)rc}rc(hUhjchhhjh}rc(h]h]h]h]h]uhMA hhh]rc(j)rc}rc(hX release-daterch}rc(h]h]h]h]h]uhjch]rchX release-datercrc}rc(hjchjcubahjubj)rc}rc(hX2009-05-20 01:56 P.M CET h}r c(h]h]h]h]h]uhjch]r!ch)r"c}r#c(hX2009-05-20 01:56 P.M CETr$chjchhhjh}r%c(h]h]h]h]h]uhMA h]r&chX2009-05-20 01:56 P.M CETr'cr(c}r)c(hj$chj"cubaubahjubeubaubh)r*c}r+c(hUhjbhhhhh}r,c(jX*h]h]h]h]h]uhMC hhh]r-ch)r.c}r/c(hXNow handles unpickleable exceptions (like the dynamically generated subclasses of `django.core.exception.MultipleObjectsReturned`). hj*chhhjh}r0c(h]h]h]h]h]uhNhhh]r1ch)r2c}r3c(hXNow handles unpickleable exceptions (like the dynamically generated subclasses of `django.core.exception.MultipleObjectsReturned`).hj.chhhjh}r4c(h]h]h]h]h]uhMC h]r5c(hXRNow handles unpickleable exceptions (like the dynamically generated subclasses of r6cr7c}r8c(hXRNow handles unpickleable exceptions (like the dynamically generated subclasses of hj2cubj()r9c}r:c(hX/`django.core.exception.MultipleObjectsReturned`h}r;c(h]h]h]h]h]uhj2ch]rc}r?c(hUhj9cubahj0ubhX).r@crAc}rBc(hX).hj2cubeubaubaubjf)rCc}rDc(hX.. _version-0.2.0-pre1:hjbhhhjih}rEc(h]h]h]h]h]jkUversion-0-2-0-pre1rFcuhMF hhh]ubeubh)rGc}rHc(hUhhhhjn}rIchojCcshhh}rJc(h]h]h]h]rKc(jjFceh]rLc(hLhoeuhMI hhjt}rMcjFcjCcsh]rNc(h)rOc}rPc(hjhjGchhhhh}rQc(h]h]h]h]h]jkjuhMI hhh]rRchX 0.2.0-pre1rScrTc}rUc(hjhjOcubaubj)rVc}rWc(hUhjGchhhjh}rXc(h]h]h]h]h]uhMJ hhh]rYcj)rZc}r[c(hUhjVchhhjh}r\c(h]h]h]h]h]uhMJ hhh]r]c(j)r^c}r_c(hX release-dater`ch}rac(h]h]h]h]h]uhjZch]rbchX release-daterccrdc}rec(hj`chj^cubahjubj)rfc}rgc(hX2009-05-20 12:33 P.M CET h}rhc(h]h]h]h]h]uhjZch]rich)rjc}rkc(hX2009-05-20 12:33 P.M CETrlchjfchhhjh}rmc(h]h]h]h]h]uhMJ h]rnchX2009-05-20 12:33 P.M CETrocrpc}rqc(hjlchjjcubaubahjubeubaubh)rrc}rsc(hUhjGchhhhh}rtc(jX*h]h]h]h]h]uhML hhh]ruc(h)rvc}rwc(hXfIt's getting quite stable, with a lot of new features, so bump version to 0.2. This is a pre-release. hjrchhhjh}rxc(h]h]h]h]h]uhNhhh]rych)rzc}r{c(hXeIt's getting quite stable, with a lot of new features, so bump version to 0.2. This is a pre-release.r|chjvchhhjh}r}c(h]h]h]h]h]uhML h]r~chXeIt's getting quite stable, with a lot of new features, so bump version to 0.2. This is a pre-release.rcrc}rc(hj|chjzcubaubaubh)rc}rc(hX``celery.task.mark_as_read()`` and ``celery.task.mark_as_failure()`` has been removed. Use ``celery.backends.default_backend.mark_as_read()``, and ``celery.backends.default_backend.mark_as_failure()`` instead. hjrchhhjh}rc(h]h]h]h]h]uhNhhh]rch)rc}rc(hX``celery.task.mark_as_read()`` and ``celery.task.mark_as_failure()`` has been removed. Use ``celery.backends.default_backend.mark_as_read()``, and ``celery.backends.default_backend.mark_as_failure()`` instead.hjchhhjh}rc(h]h]h]h]h]uhMO h]rc(j)rc}rc(hX``celery.task.mark_as_read()``h}rc(h]h]h]h]h]uhjch]rchXcelery.task.mark_as_read()rcrc}rc(hUhjcubahjubhX and rcrc}rc(hX and hjcubj)rc}rc(hX!``celery.task.mark_as_failure()``h}rc(h]h]h]h]h]uhjch]rchXcelery.task.mark_as_failure()rcrc}rc(hUhjcubahjubhX has been removed. Use rcrc}rc(hX has been removed. Use hjcubj)rc}rc(hX2``celery.backends.default_backend.mark_as_read()``h}rc(h]h]h]h]h]uhjch]rchX.celery.backends.default_backend.mark_as_read()rcrc}rc(hUhjcubahjubhX, and rcrc}rc(hX, and hjcubj)rc}rc(hX5``celery.backends.default_backend.mark_as_failure()``h}rc(h]h]h]h]h]uhjch]rchX1celery.backends.default_backend.mark_as_failure()rcrc}rc(hUhjcubahjubhX instead.rcrc}rc(hX instead.hjcubeubaubeubjf)rc}rc(hX.. _version-0.1.15:hjGchhhjih}rc(h]h]h]h]h]jkjuhMS hhh]ubeubh)rc}rc(hUhhhhjn}rch/jcshhh}rc(h]h]h]h]rc(jUid54rceh]rc(hh/euhMV hhjt}rcjjcsh]rc(h)rc}rc(hjhjchhhhh}rc(h]h]h]h]h]jkjuhMV hhh]rchX0.1.15rcrc}rc(hjhjcubaubj)rc}rc(hUhjchhhjh}rc(h]h]h]h]h]uhMW hhh]rcj)rc}rc(hUhjchhhjh}rc(h]h]h]h]h]uhMW hhh]rc(j)rc}rc(hX release-daterch}rc(h]h]h]h]h]uhjch]rchX release-datercrc}rc(hjchjcubahjubj)rc}rc(hX2009-05-19 04:13 P.M CET h}rc(h]h]h]h]h]uhjch]rch)rc}rc(hX2009-05-19 04:13 P.M CETrchjchhhjh}rc(h]h]h]h]h]uhMW h]rchX2009-05-19 04:13 P.M CETrcrc}rc(hjchjcubaubahjubeubaubh)rc}rc(hUhjchhhhh}rc(jX*h]h]h]h]h]uhMY hhh]rch)rc}rc(hXThe celery daemon was leaking AMQP connections, this should be fixed, if you have any problems with too many files open (like ``emfile`` errors in ``rabbit.log``, please contact us! hjchhhjh}rc(h]h]h]h]h]uhNhhh]rch)rc}rc(hXThe celery daemon was leaking AMQP connections, this should be fixed, if you have any problems with too many files open (like ``emfile`` errors in ``rabbit.log``, please contact us!hjchhhjh}rc(h]h]h]h]h]uhMY h]rc(hX~The celery daemon was leaking AMQP connections, this should be fixed, if you have any problems with too many files open (like rcrc}rc(hX~The celery daemon was leaking AMQP connections, this should be fixed, if you have any problems with too many files open (like hjcubj)rc}rc(hX ``emfile``h}rc(h]h]h]h]h]uhjch]rchXemfilercrc}rc(hUhjcubahjubhX errors in rcrc}rc(hX errors in hjcubj)rc}rc(hX``rabbit.log``h}rc(h]h]h]h]h]uhjch]rchX rabbit.logrcrc}rd(hUhjcubahjubhX, please contact us!rdrd}rd(hX, please contact us!hjcubeubaubaubjf)rd}rd(hX.. _version-0.1.14:hjchhhjih}rd(h]h]h]h]h]jkjuhM] hhh]ubeubh)rd}rd(hUhhhhjn}r dh0jdshhh}r d(h]h]h]h]r d(jUid55r deh]r d(hvh0euhM` hhjt}rdjjdsh]rd(h)rd}rd(hjhjdhhhhh}rd(h]h]h]h]h]jkjuhM` hhh]rdhX0.1.14rdrd}rd(hjhjdubaubj)rd}rd(hUhjdhhhjh}rd(h]h]h]h]h]uhMa hhh]rdj)rd}rd(hUhjdhhhjh}rd(h]h]h]h]h]uhMa hhh]rd(j)rd}r d(hX release-dater!dh}r"d(h]h]h]h]h]uhjdh]r#dhX release-dater$dr%d}r&d(hj!dhjdubahjubj)r'd}r(d(hX2009-05-19 01:08 P.M CET h}r)d(h]h]h]h]h]uhjdh]r*dh)r+d}r,d(hX2009-05-19 01:08 P.M CETr-dhj'dhhhjh}r.d(h]h]h]h]h]uhMa h]r/dhX2009-05-19 01:08 P.M CETr0dr1d}r2d(hj-dhj+dubaubahjubeubaubh)r3d}r4d(hUhjdhhhhh}r5d(jX*h]h]h]h]h]uhMc hhh]r6dh)r7d}r8d(hXUFixed a syntax error in the ``TaskSet`` class. (No such variable ``TimeOutError``). hj3dhhhjh}r9d(h]h]h]h]h]uhNhhh]r:dh)r;d}rd(hXFixed a syntax error in the r?dr@d}rAd(hXFixed a syntax error in the hj;dubj)rBd}rCd(hX ``TaskSet``h}rDd(h]h]h]h]h]uhj;dh]rEdhXTaskSetrFdrGd}rHd(hUhjBdubahjubhX class. (No such variable rIdrJd}rKd(hX class. (No such variable hj;dubj)rLd}rMd(hX``TimeOutError``h}rNd(h]h]h]h]h]uhj;dh]rOdhX TimeOutErrorrPdrQd}rRd(hUhjLdubahjubhX).rSdrTd}rUd(hX).hj;dubeubaubaubjf)rVd}rWd(hX.. _version-0.1.13:hjdhhhjih}rXd(h]h]h]h]h]jkjuhMf hhh]ubeubh)rYd}rZd(hUhhhhjn}r[dh+jVdshhh}r\d(h]h]h]h]r]d(jUid56r^deh]r_d(hh+euhMi hhjt}r`djjVdsh]rad(h)rbd}rcd(hjhjYdhhhhh}rdd(h]h]h]h]h]jkjuhMi hhh]redhX0.1.13rfdrgd}rhd(hjhjbdubaubj)rid}rjd(hUhjYdhhhjh}rkd(h]h]h]h]h]uhMj hhh]rldj)rmd}rnd(hUhjidhhhjh}rod(h]h]h]h]h]uhMj hhh]rpd(j)rqd}rrd(hX release-datersdh}rtd(h]h]h]h]h]uhjmdh]rudhX release-datervdrwd}rxd(hjsdhjqdubahjubj)ryd}rzd(hX2009-05-19 12:36 P.M CET h}r{d(h]h]h]h]h]uhjmdh]r|dh)r}d}r~d(hX2009-05-19 12:36 P.M CETrdhjydhhhjh}rd(h]h]h]h]h]uhMj h]rdhX2009-05-19 12:36 P.M CETrdrd}rd(hjdhj}dubaubahjubeubaubh)rd}rd(hUhjYdhhhhh}rd(jX*h]h]h]h]h]uhMl hhh]rd(h)rd}rd(hX4Forgot to add ``yadayada`` to install requirements. hjdhhhjh}rd(h]h]h]h]h]uhNhhh]rdh)rd}rd(hX3Forgot to add ``yadayada`` to install requirements.hjdhhhjh}rd(h]h]h]h]h]uhMl h]rd(hXForgot to add rdrd}rd(hXForgot to add hjdubj)rd}rd(hX ``yadayada``h}rd(h]h]h]h]h]uhjdh]rdhXyadayadardrd}rd(hUhjdubahjubhX to install requirements.rdrd}rd(hX to install requirements.hjdubeubaubh)rd}rd(hXENow deletes all expired task results, not just those marked as done. hjdhhhjh}rd(h]h]h]h]h]uhNhhh]rdh)rd}rd(hXDNow deletes all expired task results, not just those marked as done.rdhjdhhhjh}rd(h]h]h]h]h]uhMn h]rdhXDNow deletes all expired task results, not just those marked as done.rdrd}rd(hjdhjdubaubaubh)rd}rd(hXAble to load the Tokyo Tyrant backend class without django configuration, can specify tyrant settings directly in the class constructor. hjdhhhjh}rd(h]h]h]h]h]uhNhhh]rdh)rd}rd(hXAble to load the Tokyo Tyrant backend class without django configuration, can specify tyrant settings directly in the class constructor.rdhjdhhhjh}rd(h]h]h]h]h]uhMp h]rdhXAble to load the Tokyo Tyrant backend class without django configuration, can specify tyrant settings directly in the class constructor.rdrd}rd(hjdhjdubaubaubh)rd}rd(hXImproved API documentation hjdhhhjh}rd(h]h]h]h]h]uhNhhh]rdh)rd}rd(hXImproved API documentationrdhjdhhhjh}rd(h]h]h]h]h]uhMt h]rdhXImproved API documentationrdrd}rd(hjdhjdubaubaubh)rd}rd(hXNow using the Sphinx documentation system, you can build the html documentation by doing :: $ cd docs $ make html and the result will be in ``docs/.build/html``. hjdhhhjh}rd(h]h]h]h]h]uhNhhh]rd(h)rd}rd(hX[Now using the Sphinx documentation system, you can build the html documentation by doing ::hjdhhhjh}rd(h]h]h]h]h]uhMv h]rdhXXNow using the Sphinx documentation system, you can build the html documentation by doingrdrd}rd(hXXNow using the Sphinx documentation system, you can build the html documentation by doinghjdubaubjM)rd}rd(hX$ cd docs $ make htmlhjdhjPh}rd(jTjUh]h]h]h]h]uhMy h]rdhX$ cd docs $ make htmlrdrd}rd(hUhjdubaubh)rd}rd(hX/and the result will be in ``docs/.build/html``.hjdhhhjh}rd(h]h]h]h]h]uhM| h]rd(hXand the result will be in rdrd}rd(hXand the result will be in hjdubj)rd}rd(hX``docs/.build/html``h}rd(h]h]h]h]h]uhjdh]rdhXdocs/.build/htmlrdrd}rd(hUhjdubahjubhX.rd}rd(hX.hjdubeubeubeubjf)rd}rd(hX.. _version-0.1.12:hjYdhhhjih}rd(h]h]h]h]h]jkjuhM~ hhh]ubeubh)rd}rd(hUhhhhjn}rdhjdshhh}rd(h]h]h]h]rd(jUid57rdeh]rd(hheuhM hhjt}rdjjdsh]rd(h)rd}rd(hjhjdhhhhh}rd(h]h]h]h]h]jkjuhM hhh]rdhX0.1.12rdrd}rd(hjhjdubaubj)rd}rd(hUhjdhhhjh}rd(h]h]h]h]h]uhM hhh]rdj)rd}rd(hUhjdhhhjh}rd(h]h]h]h]h]uhM hhh]rd(j)rd}re(hX release-datereh}re(h]h]h]h]h]uhjdh]rehX release-daterere}re(hjehjdubahjubj)re}re(hX2009-05-18 04:38 P.M CET h}r e(h]h]h]h]h]uhjdh]r eh)r e}r e(hX2009-05-18 04:38 P.M CETr ehjehhhjh}re(h]h]h]h]h]uhM h]rehX2009-05-18 04:38 P.M CETrere}re(hj ehj eubaubahjubeubaubh)re}re(hUhjdhhhhh}re(jX*h]h]h]h]h]uhM hhh]re(h)re}re(hX``delay_task()`` etc. now returns ``celery.task.AsyncResult`` object, which lets you check the result and any failure that might have happened. It kind of works like the ``multiprocessing.AsyncResult`` class returned by ``multiprocessing.Pool.map_async``. hjehhhjh}re(h]h]h]h]h]uhNhhh]reh)re}re(hX``delay_task()`` etc. now returns ``celery.task.AsyncResult`` object, which lets you check the result and any failure that might have happened. It kind of works like the ``multiprocessing.AsyncResult`` class returned by ``multiprocessing.Pool.map_async``.hjehhhjh}re(h]h]h]h]h]uhM h]re(j)re}r e(hX``delay_task()``h}r!e(h]h]h]h]h]uhjeh]r"ehX delay_task()r#er$e}r%e(hUhjeubahjubhX etc. now returns r&er'e}r(e(hX etc. now returns hjeubj)r)e}r*e(hX``celery.task.AsyncResult``h}r+e(h]h]h]h]h]uhjeh]r,ehXcelery.task.AsyncResultr-er.e}r/e(hUhj)eubahjubhXn object, which lets you check the result and any failure that might have happened. It kind of works like the r0er1e}r2e(hXn object, which lets you check the result and any failure that might have happened. It kind of works like the hjeubj)r3e}r4e(hX``multiprocessing.AsyncResult``h}r5e(h]h]h]h]h]uhjeh]r6ehXmultiprocessing.AsyncResultr7er8e}r9e(hUhj3eubahjubhX class returned by r:er;e}re(hX"``multiprocessing.Pool.map_async``h}r?e(h]h]h]h]h]uhjeh]r@ehXmultiprocessing.Pool.map_asyncrAerBe}rCe(hUhj=eubahjubhX.rDe}rEe(hX.hjeubeubaubh)rFe}rGe(hX<Added dmap() and dmap_async(). This works like the ``multiprocessing.Pool`` versions except they are tasks distributed to the celery server. Example: >>> from celery.task import dmap >>> import operator >>> dmap(operator.add, [[2, 2], [4, 4], [8, 8]]) >>> [4, 8, 16] >>> from celery.task import dmap_async >>> import operator >>> result = dmap_async(operator.add, [[2, 2], [4, 4], [8, 8]]) >>> result.ready() False >>> time.sleep(1) >>> result.ready() True >>> result.result [4, 8, 16] hjehhhjh}rHe(h]h]h]h]h]uhNhhh]rIe(h)rJe}rKe(hXAdded dmap() and dmap_async(). This works like the ``multiprocessing.Pool`` versions except they are tasks distributed to the celery server. Example:hjFehhhjh}rLe(h]h]h]h]h]uhM h]rMe(hX3Added dmap() and dmap_async(). This works like the rNerOe}rPe(hX3Added dmap() and dmap_async(). This works like the hjJeubj)rQe}rRe(hX``multiprocessing.Pool``h}rSe(h]h]h]h]h]uhjJeh]rTehXmultiprocessing.PoolrUerVe}rWe(hUhjQeubahjubhXJ versions except they are tasks distributed to the celery server. Example:rXerYe}rZe(hXJ versions except they are tasks distributed to the celery server. Example:hjJeubeubjh)r[e}r\e(hXt>>> from celery.task import dmap >>> import operator >>> dmap(operator.add, [[2, 2], [4, 4], [8, 8]]) >>> [4, 8, 16]hjFehNhjph}r]e(jTjUh]h]h]h]h]uhNhhh]r^ehXt>>> from celery.task import dmap >>> import operator >>> dmap(operator.add, [[2, 2], [4, 4], [8, 8]]) >>> [4, 8, 16]r_er`e}rae(hUhj[eubaubjh)rbe}rce(hX>>> from celery.task import dmap_async >>> import operator >>> result = dmap_async(operator.add, [[2, 2], [4, 4], [8, 8]]) >>> result.ready() False >>> time.sleep(1) >>> result.ready() True >>> result.result [4, 8, 16]hjFehNhjph}rde(jTjUh]h]h]h]h]uhNhhh]reehX>>> from celery.task import dmap_async >>> import operator >>> result = dmap_async(operator.add, [[2, 2], [4, 4], [8, 8]]) >>> result.ready() False >>> time.sleep(1) >>> result.ready() True >>> result.result [4, 8, 16]rferge}rhe(hUhjbeubaubeubh)rie}rje(hXRefactored the task metadata cache and database backends, and added a new backend for Tokyo Tyrant. You can set the backend in your django settings file. E.g.:: CELERY_RESULT_BACKEND = "database"; # Uses the database CELERY_RESULT_BACKEND = "cache"; # Uses the django cache framework CELERY_RESULT_BACKEND = "tyrant"; # Uses Tokyo Tyrant TT_HOST = "localhost"; # Hostname for the Tokyo Tyrant server. TT_PORT = 6657; # Port of the Tokyo Tyrant server. hjehhhjh}rke(h]h]h]h]h]uhNhhh]rle(h)rme}rne(hXRefactored the task metadata cache and database backends, and added a new backend for Tokyo Tyrant. You can set the backend in your django settings file. E.g.::hjiehhhjh}roe(h]h]h]h]h]uhM h]rpehXRefactored the task metadata cache and database backends, and added a new backend for Tokyo Tyrant. You can set the backend in your django settings file. E.g.:rqerre}rse(hXRefactored the task metadata cache and database backends, and added a new backend for Tokyo Tyrant. You can set the backend in your django settings file. E.g.:hjmeubaubjM)rte}rue(hX"CELERY_RESULT_BACKEND = "database"; # Uses the database CELERY_RESULT_BACKEND = "cache"; # Uses the django cache framework CELERY_RESULT_BACKEND = "tyrant"; # Uses Tokyo Tyrant TT_HOST = "localhost"; # Hostname for the Tokyo Tyrant server. TT_PORT = 6657; # Port of the Tokyo Tyrant server.hjiehjPh}rve(jTjUh]h]h]h]h]uhM h]rwehX"CELERY_RESULT_BACKEND = "database"; # Uses the database CELERY_RESULT_BACKEND = "cache"; # Uses the django cache framework CELERY_RESULT_BACKEND = "tyrant"; # Uses Tokyo Tyrant TT_HOST = "localhost"; # Hostname for the Tokyo Tyrant server. TT_PORT = 6657; # Port of the Tokyo Tyrant server.rxerye}rze(hUhjteubaubeubeubjf)r{e}r|e(hX.. _version-0.1.11:hjdhhhjih}r}e(h]h]h]h]h]jkjuhM hhh]ubeubh)r~e}re(hUhhhhjn}reh-j{eshhh}re(h]h]h]h]re(jUid58reeh]re(hh-euhM hhjt}rejj{esh]re(h)re}re(hjhj~ehhhhh}re(h]h]h]h]h]jkjuhM hhh]rehX0.1.11rere}re(hjhjeubaubj)re}re(hUhj~ehhhjh}re(h]h]h]h]h]uhM hhh]rej)re}re(hUhjehhhjh}re(h]h]h]h]h]uhM hhh]re(j)re}re(hX release-datereh}re(h]h]h]h]h]uhjeh]rehX release-daterere}re(hjehjeubahjubj)re}re(hX2009-05-12 02:08 P.M CET h}re(h]h]h]h]h]uhjeh]reh)re}re(hX2009-05-12 02:08 P.M CETrehjehhhjh}re(h]h]h]h]h]uhM h]rehX2009-05-12 02:08 P.M CETrere}re(hjehjeubaubahjubeubaubh)re}re(hUhj~ehhhhh}re(jX*h]h]h]h]h]uhM hhh]reh)re}re(hXThe logging system was leaking file descriptors, resulting in servers stopping with the EMFILES (too many open files) error. (fixed) hjehhhjh}re(h]h]h]h]h]uhNhhh]reh)re}re(hXThe logging system was leaking file descriptors, resulting in servers stopping with the EMFILES (too many open files) error. (fixed)rehjehhhjh}re(h]h]h]h]h]uhM h]rehXThe logging system was leaking file descriptors, resulting in servers stopping with the EMFILES (too many open files) error. (fixed)rere}re(hjehjeubaubaubaubjf)re}re(hX.. _version-0.1.10:hj~ehhhjih}re(h]h]h]h]h]jkjuhM hhh]ubeubh)re}re(hUhhhhjn}reh.jeshhh}re(h]h]h]h]re(jUid59reeh]re(hh.euhM hhjt}rejjesh]re(h)re}re(hjhjehhhhh}re(h]h]h]h]h]jkjuhM hhh]rehX0.1.10rere}re(hjhjeubaubj)re}re(hUhjehhhjh}re(h]h]h]h]h]uhM hhh]rej)re}re(hUhjehhhjh}re(h]h]h]h]h]uhM hhh]re(j)re}re(hX release-datereh}re(h]h]h]h]h]uhjeh]rehX release-daterere}re(hjehjeubahjubj)re}re(hX2009-05-11 12:46 P.M CET h}re(h]h]h]h]h]uhjeh]reh)re}re(hX2009-05-11 12:46 P.M CETrehjehhhjh}re(h]h]h]h]h]uhM h]rehX2009-05-11 12:46 P.M CETrere}re(hjehjeubaubahjubeubaubh)re}re(hUhjehhhhh}re(jX*h]h]h]h]h]uhM hhh]re(h)re}re(hXDTasks now supports both positional arguments and keyword arguments. hjehhhjh}re(h]h]h]h]h]uhNhhh]reh)re}re(hXCTasks now supports both positional arguments and keyword arguments.rehjehhhjh}re(h]h]h]h]h]uhM h]rehXCTasks now supports both positional arguments and keyword arguments.rere}re(hjehjeubaubaubh)re}re(hXRequires carrot 0.3.8. hjehhhjh}re(h]h]h]h]h]uhNhhh]reh)re}re(hXRequires carrot 0.3.8.rehjehhhjh}rf(h]h]h]h]h]uhM h]rfhXRequires carrot 0.3.8.rfrf}rf(hjehjeubaubaubh)rf}rf(hX=The daemon now tries to reconnect if the connection is lost. hjehhhjh}rf(h]h]h]h]h]uhNhhh]rfh)r f}r f(hX<The daemon now tries to reconnect if the connection is lost.r fhjfhhhjh}r f(h]h]h]h]h]uhM h]r fhX<The daemon now tries to reconnect if the connection is lost.rfrf}rf(hj fhj fubaubaubeubjf)rf}rf(hX.. _version-0.1.8:hjehhhjih}rf(h]h]h]h]h]jkj'uhM hhh]ubeubh)rf}rf(hUhhhhjn}rfhIjfshhh}rf(h]h]h]h]rf(j'Uid60rfeh]rf(hhIeuhM hhjt}rfj'jfsh]rf(h)rf}rf(hj,hjfhhhhh}rf(h]h]h]h]h]jkj&uhM hhh]r fhX0.1.8r!fr"f}r#f(hj,hjfubaubj)r$f}r%f(hUhjfhhhjh}r&f(h]h]h]h]h]uhM hhh]r'fj)r(f}r)f(hUhj$fhhhjh}r*f(h]h]h]h]h]uhM hhh]r+f(j)r,f}r-f(hX release-dater.fh}r/f(h]h]h]h]h]uhj(fh]r0fhX release-dater1fr2f}r3f(hj.fhj,fubahjubj)r4f}r5f(hX2009-05-07 12:27 P.M CET h}r6f(h]h]h]h]h]uhj(fh]r7fh)r8f}r9f(hX2009-05-07 12:27 P.M CETr:fhj4fhhhjh}r;f(h]h]h]h]h]uhM h]rf}r?f(hj:fhj8fubaubahjubeubaubh)r@f}rAf(hUhjfhhhhh}rBf(jX*h]h]h]h]h]uhM hhh]rCf(h)rDf}rEf(hXBetter test coveragerFfhj@fhhhjh}rGf(h]h]h]h]h]uhNhhh]rHfh)rIf}rJf(hjFfhjDfhhhjh}rKf(h]h]h]h]h]uhM h]rLfhXBetter test coveragerMfrNf}rOf(hjFfhjIfubaubaubh)rPf}rQf(hXMore documentationrRfhj@fhhhjh}rSf(h]h]h]h]h]uhNhhh]rTfh)rUf}rVf(hjRfhjPfhhhjh}rWf(h]h]h]h]h]uhM h]rXfhXMore documentationrYfrZf}r[f(hjRfhjUfubaubaubh)r\f}r]f(hXcceleryd doesn't emit ``Queue is empty`` message if ``settings.CELERYD_EMPTY_MSG_EMIT_EVERY`` is 0. hj@fhhhjh}r^f(h]h]h]h]h]uhNhhh]r_fh)r`f}raf(hXbceleryd doesn't emit ``Queue is empty`` message if ``settings.CELERYD_EMPTY_MSG_EMIT_EVERY`` is 0.hj\fhhhjh}rbf(h]h]h]h]h]uhM h]rcf(hXceleryd doesn't emit rdfref}rff(hXceleryd doesn't emit hj`fubj)rgf}rhf(hX``Queue is empty``h}rif(h]h]h]h]h]uhj`fh]rjfhXQueue is emptyrkfrlf}rmf(hUhjgfubahjubhX message if rnfrof}rpf(hX message if hj`fubj)rqf}rrf(hX)``settings.CELERYD_EMPTY_MSG_EMIT_EVERY``h}rsf(h]h]h]h]h]uhj`fh]rtfhX%settings.CELERYD_EMPTY_MSG_EMIT_EVERYrufrvf}rwf(hUhjqfubahjubhX is 0.rxfryf}rzf(hX is 0.hj`fubeubaubeubjf)r{f}r|f(hX.. _version-0.1.7:hjfhhhjih}r}f(h]h]h]h]h]jkj:uhM hhh]ubeubh)r~f}rf(hUhhhhjn}rfhj{fshhh}rf(h]h]h]h]rf(j:Uid61rfeh]rf(hheuhM hhjt}rfj:j{fsh]rf(h)rf}rf(hj?hj~fhhhhh}rf(h]h]h]h]h]jkj9uhM hhh]rfhX0.1.7rfrf}rf(hj?hjfubaubj)rf}rf(hUhj~fhhhjh}rf(h]h]h]h]h]uhM hhh]rfj)rf}rf(hUhjfhhhjh}rf(h]h]h]h]h]uhM hhh]rf(j)rf}rf(hX release-daterfh}rf(h]h]h]h]h]uhjfh]rfhX release-daterfrf}rf(hjfhjfubahjubj)rf}rf(hX2009-04-30 1:50 P.M CET h}rf(h]h]h]h]h]uhjfh]rfh)rf}rf(hX2009-04-30 1:50 P.M CETrfhjfhhhjh}rf(h]h]h]h]h]uhM h]rfhX2009-04-30 1:50 P.M CETrfrf}rf(hjfhjfubaubahjubeubaubh)rf}rf(hUhj~fhhhhh}rf(jX*h]h]h]h]h]uhM hhh]rf(h)rf}rf(hXAdded some unit tests hjfhhhjh}rf(h]h]h]h]h]uhNhhh]rfh)rf}rf(hXAdded some unit testsrfhjfhhhjh}rf(h]h]h]h]h]uhM h]rfhXAdded some unit testsrfrf}rf(hjfhjfubaubaubh)rf}rf(hXzCan now use the database for task metadata (like if the task has been executed or not). Set ``settings.CELERY_TASK_META`` hjfhhhjh}rf(h]h]h]h]h]uhNhhh]rfh)rf}rf(hXyCan now use the database for task metadata (like if the task has been executed or not). Set ``settings.CELERY_TASK_META``hjfhhhjh}rf(h]h]h]h]h]uhM h]rf(hX\Can now use the database for task metadata (like if the task has been executed or not). Set rfrf}rf(hX\Can now use the database for task metadata (like if the task has been executed or not). Set hjfubj)rf}rf(hX``settings.CELERY_TASK_META``h}rf(h]h]h]h]h]uhjfh]rfhXsettings.CELERY_TASK_METArfrf}rf(hUhjfubahjubeubaubh)rf}rf(hXZCan now run `python setup.py test` to run the unit tests from within the `tests` project. hjfhhhjh}rf(h]h]h]h]h]uhNhhh]rfh)rf}rf(hXYCan now run `python setup.py test` to run the unit tests from within the `tests` project.hjfhhhjh}rf(h]h]h]h]h]uhM h]rf(hX Can now run rfrf}rf(hX Can now run hjfubj()rf}rf(hX`python setup.py test`h}rf(h]h]h]h]h]uhjfh]rfhXpython setup.py testrfrf}rf(hUhjfubahj0ubhX' to run the unit tests from within the rfrf}rf(hX' to run the unit tests from within the hjfubj()rf}rf(hX`tests`h}rf(h]h]h]h]h]uhjfh]rfhXtestsrfrf}rf(hUhjfubahj0ubhX project.rfrf}rf(hX project.hjfubeubaubh)rf}rf(hXCan set the AMQP exchange/routing key/queue using ``settings.CELERY_AMQP_EXCHANGE``, ``settings.CELERY_AMQP_ROUTING_KEY``, and ``settings.CELERY_AMQP_CONSUMER_QUEUE``. hjfhhhjh}rf(h]h]h]h]h]uhNhhh]rfh)rf}rf(hXCan set the AMQP exchange/routing key/queue using ``settings.CELERY_AMQP_EXCHANGE``, ``settings.CELERY_AMQP_ROUTING_KEY``, and ``settings.CELERY_AMQP_CONSUMER_QUEUE``.hjfhhhjh}rf(h]h]h]h]h]uhM h]rf(hX2Can set the AMQP exchange/routing key/queue using rfrf}rf(hX2Can set the AMQP exchange/routing key/queue using hjfubj)rf}rf(hX!``settings.CELERY_AMQP_EXCHANGE``h}rf(h]h]h]h]h]uhjfh]rfhXsettings.CELERY_AMQP_EXCHANGErfrf}rf(hUhjfubahjubhX, rfrf}rf(hX, hjfubj)rg}rg(hX$``settings.CELERY_AMQP_ROUTING_KEY``h}rg(h]h]h]h]h]uhjfh]rghX settings.CELERY_AMQP_ROUTING_KEYrgrg}rg(hUhjgubahjubhX, and rgrg}r g(hX, and hjfubj)r g}r g(hX'``settings.CELERY_AMQP_CONSUMER_QUEUE``h}r g(h]h]h]h]h]uhjfh]r ghX#settings.CELERY_AMQP_CONSUMER_QUEUErgrg}rg(hUhj gubahjubhX.rg}rg(hX.hjfubeubaubeubjf)rg}rg(hX.. _version-0.1.6:hj~fhhhjih}rg(h]h]h]h]h]jkjMuhM hhh]ubeubh)rg}rg(hUhhhhjn}rghPjgshhh}rg(h]h]h]h]rg(jMUid62rgeh]rg(hKhPeuhM hhjt}rgjMjgsh]rg(h)rg}r g(hjRhjghhhhh}r!g(h]h]h]h]h]jkjLuhM hhh]r"ghX0.1.6r#gr$g}r%g(hjRhjgubaubj)r&g}r'g(hUhjghhhjh}r(g(h]h]h]h]h]uhM hhh]r)gj)r*g}r+g(hUhj&ghhhjh}r,g(h]h]h]h]h]uhM hhh]r-g(j)r.g}r/g(hX release-dater0gh}r1g(h]h]h]h]h]uhj*gh]r2ghX release-dater3gr4g}r5g(hj0ghj.gubahjubj)r6g}r7g(hX2009-04-28 2:13 P.M CET h}r8g(h]h]h]h]h]uhj*gh]r9gh)r:g}r;g(hX2009-04-28 2:13 P.M CETrghX2009-04-28 2:13 P.M CETr?gr@g}rAg(hj>> url(r'^celery/$', include("celery.urls")) then visiting the following url,:: http://mysite/celery/$task_id/done/ this will return a JSON dictionary like e.g: >>> {"task": {"id": $task_id, "executed": true}} hjBghhhjh}rh(h]h]h]h]h]uhNhhh]rh(h)rh}rh(hXFYou can do this by including the celery ``urls.py`` into your project,rhhjghhhjh}rh(h]h]h]h]h]uhM h]rh(hX(You can do this by including the celery rhr h}r h(hX(You can do this by including the celery hjhubj)r h}r h(hX ``urls.py``h}r h(h]h]h]h]h]uhjhh]rhhXurls.pyrhrh}rh(hUhj hubahjubhX into your project,rhrh}rh(hX into your project,hjhubeubjh)rh}rh(hX->>> url(r'^celery/$', include("celery.urls"))hjghNhjph}rh(jTjUh]h]h]h]h]uhNhhh]rhhX->>> url(r'^celery/$', include("celery.urls"))rhrh}rh(hUhjhubaubh)rh}rh(hX"then visiting the following url,::rhhjghhhjh}rh(h]h]h]h]h]uhM h]r hhX!then visiting the following url,:r!hr"h}r#h(hX!then visiting the following url,:hjhubaubjM)r$h}r%h(hX#http://mysite/celery/$task_id/done/hjghjPh}r&h(jTjUh]h]h]h]h]uhM h]r'hhX#http://mysite/celery/$task_id/done/r(hr)h}r*h(hUhj$hubaubh)r+h}r,h(hX,this will return a JSON dictionary like e.g:r-hhjghhhjh}r.h(h]h]h]h]h]uhM h]r/hhX,this will return a JSON dictionary like e.g:r0hr1h}r2h(hj-hhj+hubaubjh)r3h}r4h(hX0>>> {"task": {"id": $task_id, "executed": true}}r5hhjghNhjph}r6h(jTjUh]h]h]h]h]uhNhhh]r7hhX0>>> {"task": {"id": $task_id, "executed": true}}r8hr9h}r:h(hUhj3hubaubeubh)r;h}rhh)r?h}r@h(hXA``delay_task`` now returns string id, not ``uuid.UUID`` instance.hj;hhhhjh}rAh(h]h]h]h]h]uhMh]rBh(j)rCh}rDh(hX``delay_task``h}rEh(h]h]h]h]h]uhj?hh]rFhhX delay_taskrGhrHh}rIh(hUhjChubahjubhX now returns string id, not rJhrKh}rLh(hX now returns string id, not hj?hubj)rMh}rNh(hX ``uuid.UUID``h}rOh(h]h]h]h]h]uhj?hh]rPhhX uuid.UUIDrQhrRh}rSh(hUhjMhubahjubhX instance.rThrUh}rVh(hX instance.hj?hubeubaubh)rWh}rXh(hX@Now has ``PeriodicTasks``, to have ``cron`` like functionality. hjBghhhjh}rYh(h]h]h]h]h]uhNhhh]rZhh)r[h}r\h(hX?Now has ``PeriodicTasks``, to have ``cron`` like functionality.hjWhhhhjh}r]h(h]h]h]h]h]uhMh]r^h(hXNow has r_hr`h}rah(hXNow has hj[hubj)rbh}rch(hX``PeriodicTasks``h}rdh(h]h]h]h]h]uhj[hh]rehhX PeriodicTasksrfhrgh}rhh(hUhjbhubahjubhX , to have rihrjh}rkh(hX , to have hj[hubj)rlh}rmh(hX``cron``h}rnh(h]h]h]h]h]uhj[hh]rohhXcronrphrqh}rrh(hUhjlhubahjubhX like functionality.rshrth}ruh(hX like functionality.hj[hubeubaubh)rvh}rwh(hXProject changed name from ``crunchy`` to ``celery``. The details of the name change request is in ``docs/name_change_request.txt``. hjBghhhjh}rxh(h]h]h]h]h]uhNhhh]ryhh)rzh}r{h(hXProject changed name from ``crunchy`` to ``celery``. The details of the name change request is in ``docs/name_change_request.txt``.hjvhhhhjh}r|h(h]h]h]h]h]uhMh]r}h(hXProject changed name from r~hrh}rh(hXProject changed name from hjzhubj)rh}rh(hX ``crunchy``h}rh(h]h]h]h]h]uhjzhh]rhhXcrunchyrhrh}rh(hUhjhubahjubhX to rhrh}rh(hX to hjzhubj)rh}rh(hX ``celery``h}rh(h]h]h]h]h]uhjzhh]rhhXceleryrhrh}rh(hUhjhubahjubhX/. The details of the name change request is in rhrh}rh(hX/. The details of the name change request is in hjzhubj)rh}rh(hX ``docs/name_change_request.txt``h}rh(h]h]h]h]h]uhjzhh]rhhXdocs/name_change_request.txtrhrh}rh(hUhjhubahjubhX.rh}rh(hX.hjzhubeubaubeubjf)rh}rh(hX.. _version-0.1.0:hjghhhjih}rh(h]h]h]h]h]jkj`uhMhhh]ubeubh)rh}rh(hUhhhhjn}rhh>jhshhh}rh(h]h]h]h]rh(j`Uid63rheh]rh(hh>euhM hhjt}rhj`jhsh]rh(h)rh}rh(hjehjhhhhhh}rh(h]h]h]h]h]jkj_uhM hhh]rhhX0.1.0rhrh}rh(hjehjhubaubj)rh}rh(hUhjhhhhjh}rh(h]h]h]h]h]uhM hhh]rhj)rh}rh(hUhjhhhhjh}rh(h]h]h]h]h]uhM hhh]rh(j)rh}rh(hX release-daterhh}rh(h]h]h]h]h]uhjhh]rhhX release-daterhrh}rh(hjhhjhubahjubj)rh}rh(hX2009-04-24 11:28 A.M CET h}rh(h]h]h]h]h]uhjhh]rhh)rh}rh(hX2009-04-24 11:28 A.M CETrhhjhhhhjh}rh(h]h]h]h]h]uhM h]rhhX2009-04-24 11:28 A.M CETrhrh}rh(hjhhjhubaubahjubeubaubh)rh}rh(hUhjhhhhhh}rh(jX*h]h]h]h]h]uhM hhh]rhh)rh}rh(hXInitial releaserhhjhhhhjh}rh(h]h]h]h]h]uhNhhh]rhh)rh}rh(hjhhjhhhhjh}rh(h]h]h]h]h]uhM h]rhhXInitial releaserhrh}rh(hjhhjhubaubaubaubeubeubhhjn}rhh~j shhh}rh(h]h]h]h]rh(jfUid4rheh]rh(hh~euhK|hhjt}rhjfj sh]rh(h)rh}rh(hjkhhhhhhh}rh(h]h]h]h]h]jkjeuhK|hhh]rhhX2.1.2rhrh}rh(hjkhjhubaubj)rh}rh(hUhhhhhjh}rh(h]h]h]h]h]uhK}hhh]rhj)rh}rh(hUhjhhhhjh}rh(h]h]h]h]h]uhK}hhh]rh(j)rh}rh(hX release-daterhh}rh(h]h]h]h]h]uhjhh]rhhX release-daterhrh}rh(hjhhjhubahjubj)rh}rh(hX2010-10-29 15:00 PM CEST h}rh(h]h]h]h]h]uhjhh]rhh)rh}ri(hX2010-10-29 15:00 PM CESTrihjhhhhjh}ri(h]h]h]h]h]uhK}h]rihX2010-10-29 15:00 PM CESTriri}ri(hjihjhubaubahjubeubaubjf)ri}ri(hX.. _v212-fixes:hhhhhjih}r i(h]h]h]h]h]jkj}uhKhhh]ubheubhhjn}r ihujishhh}r i(h]r ijcah]h]h]r i(j}Uid5rieh]rihuauhKhhjt}rij}jish]ri(h)ri}ri(hjhhhhhhh}ri(h]h]h]h]h]jkj|uhKhhh]rihXFixesriri}ri(hjhjiubaubh)ri}ri(hUhhhhhhh}ri(jX*h]h]h]h]h]uhKhhh]ri(h)ri}ri(hXVAMQP result backend: Delete result queue after having successfully polled the result. hjihhhjh}ri(h]h]h]h]h]uhNhhh]r ih)r!i}r"i(hXUAMQP result backend: Delete result queue after having successfully polled the result.r#ihjihhhjh}r$i(h]h]h]h]h]uhKh]r%ihXUAMQP result backend: Delete result queue after having successfully polled the result.r&ir'i}r(i(hj#ihj!iubaubaubh)r)i}r*i(hXN`task.queue` attribute and `queue` argument to `apply_async` was not working. hjihhhjh}r+i(h]h]h]h]h]uhNhhh]r,ih)r-i}r.i(hXM`task.queue` attribute and `queue` argument to `apply_async` was not working.hj)ihhhjh}r/i(h]h]h]h]h]uhKh]r0i(j()r1i}r2i(hX `task.queue`h}r3i(h]h]h]h]h]uhj-ih]r4ihX task.queuer5ir6i}r7i(hUhj1iubahj0ubhX attribute and r8ir9i}r:i(hX attribute and hj-iubj()r;i}rihXqueuer?ir@i}rAi(hUhj;iubahj0ubhX argument to rBirCi}rDi(hX argument to hj-iubj()rEi}rFi(hX `apply_async`h}rGi(h]h]h]h]h]uhj-ih]rHihX apply_asyncrIirJi}rKi(hUhjEiubahj0ubhX was not working.rLirMi}rNi(hX was not working.hj-iubeubaubh)rOi}rPi(hXsFixed bug with task log messages being output twice when logging to stderr. * Default logfile is now `sys.__stderr__` instead of `sys.stderr`, so the messages are not being redirected back to the stderr logger. * In addition task loggers now disable `propagate` by default. You can re-enable this by using the `propagate` argument to `task.get_logger`. hjihhhjh}rQi(h]h]h]h]h]uhNhhh]rRi(h)rSi}rTi(hXKFixed bug with task log messages being output twice when logging to stderr.rUihjOihhhjh}rVi(h]h]h]h]h]uhKh]rWihXKFixed bug with task log messages being output twice when logging to stderr.rXirYi}rZi(hjUihjSiubaubj)r[i}r\i(hUh}r]i(h]h]h]h]h]uhjOih]r^ih)r_i}r`i(hUh}rai(jX*h]h]h]h]h]uhj[ih]rbi(h)rci}rdi(hXDefault logfile is now `sys.__stderr__` instead of `sys.stderr`, so the messages are not being redirected back to the stderr logger. h}rei(h]h]h]h]h]uhj_ih]rfih)rgi}rhi(hXDefault logfile is now `sys.__stderr__` instead of `sys.stderr`, so the messages are not being redirected back to the stderr logger.hjcihhhjh}rii(h]h]h]h]h]uhKh]rji(hXDefault logfile is now rkirli}rmi(hXDefault logfile is now hjgiubj()rni}roi(hX`sys.__stderr__`h}rpi(h]h]h]h]h]uhjgih]rqihXsys.__stderr__rrirsi}rti(hUhjniubahj0ubhX instead of ruirvi}rwi(hX instead of hjgiubj()rxi}ryi(hX `sys.stderr`h}rzi(h]h]h]h]h]uhjgih]r{ihX sys.stderrr|ir}i}r~i(hUhjxiubahj0ubhXE, so the messages are not being redirected back to the stderr logger.riri}ri(hXE, so the messages are not being redirected back to the stderr logger.hjgiubeubahjubh)ri}ri(hXIn addition task loggers now disable `propagate` by default. You can re-enable this by using the `propagate` argument to `task.get_logger`. h}ri(h]h]h]h]h]uhj_ih]rih)ri}ri(hXIn addition task loggers now disable `propagate` by default. You can re-enable this by using the `propagate` argument to `task.get_logger`.hjihhhjh}ri(h]h]h]h]h]uhKh]ri(hX%In addition task loggers now disable riri}ri(hX%In addition task loggers now disable hjiubj()ri}ri(hX `propagate`h}ri(h]h]h]h]h]uhjih]rihX propagateriri}ri(hUhjiubahj0ubhX1 by default. You can re-enable this by using the riri}ri(hX1 by default. You can re-enable this by using the hjiubj()ri}ri(hX `propagate`h}ri(h]h]h]h]h]uhjih]rihX propagateriri}ri(hUhjiubahj0ubhX argument to riri}ri(hX argument to hjiubj()ri}ri(hX`task.get_logger`h}ri(h]h]h]h]h]uhjih]rihXtask.get_loggerriri}ri(hUhjiubahj0ubhX.ri}ri(hX.hjiubeubahjubehhubahjubeubh)ri}ri(hXA 2 second timeout for sending error e-mails has been added. The mail server used should have as little latency as possible, as the sending of error e-mails is currently blocking the worker. Preferably the mailserver should be local. hjihhhjh}ri(h]h]h]h]h]uhNhhh]ri(h)ri}ri(hX<A 2 second timeout for sending error e-mails has been added.rihjihhhjh}ri(h]h]h]h]h]uhKh]rihX<A 2 second timeout for sending error e-mails has been added.riri}ri(hjihjiubaubj)ri}ri(hUh}ri(h]h]h]h]h]uhjih]rih)ri}ri(hXThe mail server used should have as little latency as possible, as the sending of error e-mails is currently blocking the worker. Preferably the mailserver should be local.rihjihhhjh}ri(h]h]h]h]h]uhKh]rihXThe mail server used should have as little latency as possible, as the sending of error e-mails is currently blocking the worker. Preferably the mailserver should be local.riri}ri(hjihjiubaubahjubeubh)ri}ri(hXceleryd: Now sends the `task-retried` event for retried tasks. This means retried tasks will show as RETRY in the event monitors. hjihhhjh}ri(h]h]h]h]h]uhNhhh]ri(h)ri}ri(hX>celeryd: Now sends the `task-retried` event for retried tasks.hjihhhjh}ri(h]h]h]h]h]uhKh]ri(hXceleryd: Now sends the riri}ri(hXceleryd: Now sends the hjiubj()ri}ri(hX`task-retried`h}ri(h]h]h]h]h]uhjih]rihX task-retriedriri}ri(hUhjiubahj0ubhX event for retried tasks.riri}ri(hX event for retried tasks.hjiubeubj)ri}ri(hUh}ri(h]h]h]h]h]uhjih]rih)ri}ri(hXBThis means retried tasks will show as RETRY in the event monitors.rihjihhhjh}ri(h]h]h]h]h]uhKh]rihXBThis means retried tasks will show as RETRY in the event monitors.riri}ri(hjihjiubaubahjubeubh)ri}ri(hX+Logging should now handle utf-8 correctly. hjihhhjh}ri(h]h]h]h]h]uhNhhh]rih)ri}ri(hX*Logging should now handle utf-8 correctly.rihjihhhjh}ri(h]h]h]h]h]uhKh]rihX*Logging should now handle utf-8 correctly.riri}ri(hjihjiubaubaubh)ri}ri(hXzceleryd: Added `exc_info` error logging messages. This is used by tools like `django-sentry`_ to provide more context. hjihhhjh}ri(h]h]h]h]h]uhNhhh]ri(h)ri}ri(hX1celeryd: Added `exc_info` error logging messages.hjihhhjh}ri(h]h]h]h]h]uhKh]ri(hXceleryd: Added riri}ri(hXceleryd: Added hjiubj()ri}ri(hX `exc_info`h}ri(h]h]h]h]h]uhjih]rihXexc_inforiri}rj(hUhjiubahj0ubhX error logging messages.rjrj}rj(hX error logging messages.hjiubeubj)rj}rj(hUh}rj(h]h]h]h]h]uhjih]rjh)rj}r j(hXDThis is used by tools like `django-sentry`_ to provide more context.hjjhhhjh}r j(h]h]h]h]h]uhKh]r j(hXThis is used by tools like r jr j}rj(hXThis is used by tools like hjjubh)rj}rj(hX`django-sentry`_j Khjjhjh}rj(UnameX django-sentryrjj X'http://github.com/dcramer/django-sentryrjh]h]h]h]h]uh]rjhX django-sentryrjrj}rj(hUhjjubaubhX to provide more context.rjrj}rj(hX to provide more context.hjjubeubahjubeubeubjf)rj}rj(hX<.. _`django-sentry`: http://github.com/dcramer/django-sentryhKhhhhhjih}rj(j jjh]rjU django-sentryrjah]h]h]h]r jhzauhKhhh]ubh)r!j}r"j(hUhhhhhhh}r#j(jX*h]h]h]h]h]uhKhhh]r$j(h)r%j}r&j(hXzThe `time_start` for a task is now set when the task is acknowledged, not when it is sent to the pool. See Issue #233. hj!jhhhjh}r'j(h]h]h]h]h]uhNhhh]r(j(h)r)j}r*j(hXfThe `time_start` for a task is now set when the task is acknowledged, not when it is sent to the pool.hj%jhhhjh}r+j(h]h]h]h]h]uhKh]r,j(hXThe r-jr.j}r/j(hXThe hj)jubj()r0j}r1j(hX `time_start`h}r2j(h]h]h]h]h]uhj)jh]r3jhX time_startr4jr5j}r6j(hUhj0jubahj0ubhXV for a task is now set when the task is acknowledged, not when it is sent to the pool.r7jr8j}r9j(hXV for a task is now set when the task is acknowledged, not when it is sent to the pool.hj)jubeubj)r:j}r;j(hUh}rj}r?j(hXSee Issue #233.hj:jhhhjh}r@j(h]h]h]h]h]uhKh]rAj(hX See Issue rBjrCj}rDj(hUhj>jubj)rEj}rFj(hUh}rGj(UreftypejU trackerconfigj U reftargetX233rHjh]h]h]h]h]uhj>jh]rIjj)rJj}rKj(hX#233h}rLj(h]h]rMj(jjeh]h]h]uhjEjh]rNjhX#233rOjrPj}rQj(hUhjJjubahjubahjubhX.rRj}rSj(hUhj>jubeubahjubeubh)rTj}rUj(hX/Fixed Sunday issue with the crontab scheduler. hj!jhhhjh}rVj(h]h]h]h]h]uhNhhh]rWjh)rXj}rYj(hX.Fixed Sunday issue with the crontab scheduler.rZjhjTjhhhjh}r[j(h]h]h]h]h]uhKh]r\jhX.Fixed Sunday issue with the crontab scheduler.r]jr^j}r_j(hjZjhjXjubaubaubh)r`j}raj(hXZFixed a race condition where Timer.enter is called twice before the thread actually runs. hj!jhhhjh}rbj(h]h]h]h]h]uhNhhh]rcjh)rdj}rej(hXYFixed a race condition where Timer.enter is called twice before the thread actually runs.rfjhj`jhhhjh}rgj(h]h]h]h]h]uhKh]rhjhXYFixed a race condition where Timer.enter is called twice before the thread actually runs.rijrjj}rkj(hjfjhjdjubaubaubh)rlj}rmj(hXThe `mail_admins` method is now in the loader, so it can be overriden. (django-celery now uses the Django mail admins mechanism)). hj!jhhhjh}rnj(h]h]h]h]h]uhNhhh]rojh)rpj}rqj(hXThe `mail_admins` method is now in the loader, so it can be overriden. (django-celery now uses the Django mail admins mechanism)).hjljhhhjh}rrj(h]h]h]h]h]uhKh]rsj(hXThe rtjruj}rvj(hXThe hjpjubj()rwj}rxj(hX `mail_admins`h}ryj(h]h]h]h]h]uhjpjh]rzjhX mail_adminsr{jr|j}r}j(hUhjwjubahj0ubhXq method is now in the loader, so it can be overriden. (django-celery now uses the Django mail admins mechanism)).r~jrj}rj(hXq method is now in the loader, so it can be overriden. (django-celery now uses the Django mail admins mechanism)).hjpjubeubaubh)rj}rj(hXXceleryd: Added --scheduler option to be used in combination with -B. See Issue #229. hj!jhhhjh}rj(h]h]h]h]h]uhNhhh]rj(h)rj}rj(hXDceleryd: Added --scheduler option to be used in combination with -B.rjhjjhhhjh}rj(h]h]h]h]h]uhKh]rjhXDceleryd: Added --scheduler option to be used in combination with -B.rjrj}rj(hjjhjjubaubj)rj}rj(hUh}rj(h]h]h]h]h]uhjjh]rjh)rj}rj(hXSee Issue #229.hjjhhhjh}rj(h]h]h]h]h]uhKh]rj(hX See Issue rjrj}rj(hUhjjubj)rj}rj(hUh}rj(UreftypejU trackerconfigj U reftargetX229rjh]h]h]h]h]uhjjh]rjj)rj}rj(hX#229h}rj(h]h]rj(jjeh]h]h]uhjjh]rjhX#229rjrj}rj(hUhjjubahjubahjubhX.rj}rj(hUhjjubeubahjubeubh)rj}rj(hXDTasks Userguide: Added section about decorating tasks (Issue #224). hj!jhhhjh}rj(h]h]h]h]h]uhNhhh]rjh)rj}rj(hXCTasks Userguide: Added section about decorating tasks (Issue #224).hjjhhhjh}rj(h]h]h]h]h]uhKh]rj(hX=Tasks Userguide: Added section about decorating tasks (Issue rjrj}rj(hUhjjubj)rj}rj(hUh}rj(UreftypejU trackerconfigj U reftargetX224rjh]h]h]h]h]uhjjh]rjj)rj}rj(hX#224h}rj(h]h]rj(jjeh]h]h]uhjjh]rjhX#224rjrj}rj(hUhjjubahjubahjubhX).rjrj}rj(hUhjjubeubaubh)rj}rj(hX<Now links to celery-pylons on PyPI instead of on Bitbucket. hj!jhhhjh}rj(h]h]h]h]h]uhNhhh]rjh)rj}rj(hX;Now links to celery-pylons on PyPI instead of on Bitbucket.rjhjjhhhjh}rj(h]h]h]h]h]uhKh]rjhX;Now links to celery-pylons on PyPI instead of on Bitbucket.rjrj}rj(hjjhjjubaubaubh)rj}rj(hXdceleryd: Now honors ignore result for :exc:`~celery.exceptions.WorkerLostError` and timeout errors. hj!jhhhjh}rj(h]h]h]h]h]uhNhhh]rjh)rj}rj(hXcceleryd: Now honors ignore result for :exc:`~celery.exceptions.WorkerLostError` and timeout errors.hjjhhhjh}rj(h]h]h]h]h]uhKh]rj(hX&celeryd: Now honors ignore result for rjrj}rj(hX&celeryd: Now honors ignore result for hjjubj)rj}rj(hX):exc:`~celery.exceptions.WorkerLostError`rjhjjhhhjh}rj(UreftypeXexcjjX!celery.exceptions.WorkerLostErrorU refdomainXpyrjh]h]U refexplicith]h]h]jjj Nj NuhKh]rjj)rj}rj(hjjh}rj(h]h]rj(jjjXpy-excrjeh]h]h]uhjjh]rjhXWorkerLostErrorrjrj}rj(hUhjjubahjubaubhX and timeout errors.rjrj}rj(hX and timeout errors.hjjubeubaubh)rj}rj(hXccelerybeat: Fixed :exc:`UnboundLocalError` in celerybeat logging when using logging setup signals. hj!jhhhjh}rj(h]h]h]h]h]uhNhhh]rjh)rj}rj(hXbcelerybeat: Fixed :exc:`UnboundLocalError` in celerybeat logging when using logging setup signals.hjjhhhjh}rj(h]h]h]h]h]uhKh]rj(hXcelerybeat: Fixed rjrj}rj(hXcelerybeat: Fixed hjjubj)rj}rj(hX:exc:`UnboundLocalError`rjhjjhhhjh}rj(UreftypeXexcjjXUnboundLocalErrorU refdomainXpyrjh]h]U refexplicith]h]h]jjj Nj NuhKh]rjj)rj}rj(hjjh}rj(h]h]rj(jjjXpy-excrkeh]h]h]uhjjh]rkhXUnboundLocalErrorrkrk}rk(hUhjjubahjubaubhX8 in celerybeat logging when using logging setup signals.rkrk}rk(hX8 in celerybeat logging when using logging setup signals.hjjubeubaubh)rk}r k(hX5celeryd: All log messages now includes ``exc_info``. hj!jhhhjh}r k(h]h]h]h]h]uhNhhh]r kh)r k}r k(hX4celeryd: All log messages now includes ``exc_info``.hjkhhhjh}rk(h]h]h]h]h]uhKh]rk(hX'celeryd: All log messages now includes rkrk}rk(hX'celeryd: All log messages now includes hj kubj)rk}rk(hX ``exc_info``h}rk(h]h]h]h]h]uhj kh]rkhXexc_inforkrk}rk(hUhjkubahjubhX.rk}rk(hX.hj kubeubaubh)rk}rk(hXeETA scheduler now uses a `not_empty` condition to wait for new tasks instead of a sleep polling loop hj!jhhhjh}rk(h]h]h]h]h]uhNhhh]rkh)r k}r!k(hXdETA scheduler now uses a `not_empty` condition to wait for new tasks instead of a sleep polling loophjkhhhjh}r"k(h]h]h]h]h]uhKh]r#k(hXETA scheduler now uses a r$kr%k}r&k(hXETA scheduler now uses a hj kubj()r'k}r(k(hX `not_empty`h}r)k(h]h]h]h]h]uhj kh]r*khX not_emptyr+kr,k}r-k(hUhj'kubahj0ubhX@ condition to wait for new tasks instead of a sleep polling loopr.kr/k}r0k(hX@ condition to wait for new tasks instead of a sleep polling loophj kubeubaubh)r1k}r2k(hXRceleryd now shows the total runtime for a task in the task succeeded log message. hj!jhhhjh}r3k(h]h]h]h]h]uhNhhh]r4kh)r5k}r6k(hXQceleryd now shows the total runtime for a task in the task succeeded log message.r7khj1khhhjh}r8k(h]h]h]h]h]uhKh]r9khXQceleryd now shows the total runtime for a task in the task succeeded log message.r:kr;k}rk(h]UlevelKh]h]r?kjiaUsourcehh]h]UlineKUtypeUINFOr@kuhKhhh]rAkh)rBk}rCk(hUh}rDk(h]h]h]h]h]uhhh]rEkhX(Duplicate implicit target name: "fixes".rFkrGk}rHk(hUhjBkubahjubaubh)rIk}rJk(hUhjB hhhj=kh}rKk(h]UlevelKh]h]rLkjI aUsourcehh]h]UlineKUtypej@kuhKhhh]rMkh)rNk}rOk(hUh}rPk(h]h]h]h]h]uhjIkh]rQkhX(Duplicate implicit target name: "fixes".rRkrSk}rTk(hUhjNkubahjubaubh)rUk}rVk(hUhjohhhj=kh}rWk(h]UlevelKh]h]rXkjuaUsourcehh]h]UlineMUtypej@kuhMhhh]rYkh)rZk}r[k(hUh}r\k(h]h]h]h]h]uhjUkh]r]khX'Duplicate implicit target name: "news".r^kr_k}r`k(hUhjZkubahjubaubh)rak}rbk(hUhjihhhj=kh}rck(h]UlevelKh]h]rdkjpaUsourcehh]h]UlineMUtypej@kuhMhhh]rekh)rfk}rgk(hUh}rhk(h]h]h]h]h]uhjakh]rikhX(Duplicate implicit target name: "fixes".rjkrkk}rlk(hUhjfkubahjubaubh)rmk}rnk(hUhj;hhhj=kh}rok(h]UlevelKh]h]rpkjAaUsourcehh]h]UlineM*Utypej@kuhM*hhh]rqkh)rrk}rsk(hUh}rtk(h]h]h]h]h]uhjmkh]rukhX0Duplicate implicit target name: "documentation".rvkrwk}rxk(hUhjrkubahjubaubh)ryk}rzk(hUhjhhhj=kh}r{k(h]UlevelKh]h]r|kjaUsourcehh]h]UlineMAUtypej@kuhMAhhh]r}kh)r~k}rk(hUh}rk(h]h]h]h]h]uhjykh]rkhX(Duplicate implicit target name: "fixes".rkrk}rk(hUhj~kubahjubaubh)rk}rk(hUhj hhhj=kh}rk(h]UlevelKh]h]rkj aUsourcehh]h]UlineMUtypej@kuhMhhh]rkh)rk}rk(hUh}rk(h]h]h]h]h]uhjkh]rkhX0Duplicate implicit target name: "documentation".rkrk}rk(hUhjkubahjubaubh)rk}rk(hUhj -hhhj=kh}rk(h]UlevelKh]h]rkj-aUsourcehh]h]UlineMUtypej@kuhMhhh]rkh)rk}rk(hUh}rk(h]h]h]h]h]uhjkh]rkhX'Duplicate implicit target name: "news".rkrk}rk(hUhjkubahjubaubh)rk}rk(hUhj9hhhj=kh}rk(h]UlevelKh]h]rkj9aUsourcehh]h]UlineMiUtypej@kuhMihhh]rkh)rk}rk(hUh}rk(h]h]h]h]h]uhjkh]rkhX2Duplicate implicit target name: "important notes".rkrk}rk(hUhjkubahjubaubh)rk}rk(hUhj:hhhj=kh}rk(h]UlevelKh]h]rkj:aUsourcehh]h]UlineMUtypej@kuhMhhh]rkh)rk}rk(hUh}rk(h]h]h]h]h]uhjkh]rkhX'Duplicate implicit target name: "news".rkrk}rk(hUhjkubahjubaubh)rk}rk(hUhj>hhhj=kh}rk(h]UlevelKh]h]rkj>aUsourcehh]h]UlineMSUtypej@kuhMShhh]rkh)rk}rk(hUh}rk(h]h]h]h]h]uhjkh]rkhX(Duplicate implicit target name: "fixes".rkrk}rk(hUhjkubahjubaubh)rk}rk(hUh}rk(h]UlevelKh]h]Usourcehh]h]UlineMvUtypej@kuhj%?h]rkh)rk}rk(hUh}rk(h]h]h]h]h]uhjkh]rkhX`Blank line missing before literal block (after the "::")? Interpreted as a definition list item.rkrk}rk(hUhjkubahjubahj=kubh)rk}rk(hUhjEhhhj=kh}rk(h]UlevelKh]h]rkjEaUsourcehh]h]UlineMb Utypej@kuhMb hhh]rkh)rk}rk(hUh}rk(h]h]h]h]h]uhjkh]rkhX@Duplicate implicit target name: "backward incompatible changes".rkrk}rk(hUhjkubahjubaubh)rk}rk(hUhj[Jhhhj=kh}rk(h]UlevelKh]h]rkjoaUsourcehh]h]UlineM Utypej@kuhM hhh]rkh)rk}rk(hUh}rk(h]h]h]h]h]uhjkh]rkhX'Duplicate implicit target name: "news".rkrk}rk(hUhjkubahjubaubh)rk}rk(hUhjKhhhj=kh}rk(h]UlevelKh]h]rkjKaUsourcehh]h]UlineMP Utypej@kuhMP hhh]rkh)rk}rk(hUh}rk(h]h]h]h]h]uhjkh]rkhX*Duplicate implicit target name: "changes".rkrk}rk(hUhjkubahjubaubh)rk}rk(hUhj]Nhhhj=kh}rk(h]UlevelKh]h]rkjdNaUsourcehh]h]UlineM Utypej@kuhM hhh]rkh)rk}rk(hUh}rk(h]h]h]h]h]uhjkh]rkhX0Duplicate implicit target name: "documentation".rkrk}rk(hUhjkubahjubaubh)rk}rk(hUhj9Phhhj=kh}rk(h]UlevelKh]h]rkj@PaUsourcehh]h]UlineM Utypej@kuhM hhh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjkh]rlhX*Duplicate implicit target name: "changes".rlrl}rl(hUhjlubahjubaubh)rl}r l(hUhjEQhhhj=kh}r l(h]UlevelKh]h]r ljLQaUsourcehh]h]UlineM/ Utypej@kuhM/ hhh]r lh)r l}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX@Duplicate implicit target name: "backward incompatible changes".rlrl}rl(hUhj lubahjubaubh)rl}rl(hUhjQhhhj=kh}rl(h]UlevelKh]h]rljQaUsourcehh]h]UlineMJ Utypej@kuhMJ hhh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX4Duplicate implicit target name: "important changes".rlrl}rl(hUhjlubahjubaubh)r l}r!l(hUhjXThhhj=kh}r"l(h]UlevelKh]h]r#lj_TaUsourcehh]h]UlineM Utypej@kuhM hhh]r$lh)r%l}r&l(hUh}r'l(h]h]h]h]h]uhj lh]r(lhX'Duplicate implicit target name: "news".r)lr*l}r+l(hUhj%lubahjubaubh)r,l}r-l(hUhjLWhhhj=kh}r.l(h]UlevelKh]h]r/ljSWaUsourcehh]h]UlineM Utypej@kuhM hhh]r0lh)r1l}r2l(hUh}r3l(h]h]h]h]h]uhj,lh]r4lhX4Duplicate implicit target name: "important changes".r5lr6l}r7l(hUhj1lubahjubaubh)r8l}r9l(hUhjWhhhj=kh}r:l(h]UlevelKh]h]r;ljWaUsourcehh]h]UlineM Utypej@kuhM hhh]rl(hUh}r?l(h]h]h]h]h]uhj8lh]r@lhX'Duplicate implicit target name: "news".rAlrBl}rCl(hUhj=lubahjubaubeUcurrent_sourcerDlNU decorationrElNUautofootnote_startrFlKUnameidsrGl}rHl(hjLhjb7hj6h jaEh jCAh j>h j9h jhNhjahjhNhjZhjhjOhjD_hjc`hj_hj*hj8]hhhj hjhjhjhjDh jh!jah"jh#j`*h$Nh%jh&jX)h'jmh(jh)jz h*jh+jh,jj<h-jh.jh/jh0jh1jp)h2j'h3Nh4jh5jph6jFh7jYh8jh9jh:j h;jhj`h?jh@jhAj3hBNhCj])hDj[hEj%8hFjhGjhHj_hIj'hJj7hKjghLjhMjhNj|hONhPjMhQjhRj0hSjhTj!hUjZ$hVj&hWj:NhXj1hYjOhZhZh[jh\j*h]j\h^j*h_jCh`jVhajhbj"Whcj hdjhejYhfj7Zhgj0hhj*hihihjjNhkjhOhljhmjNhnj)OhojFchpjbhqjbhrjhsjhtjdRhuj}hvj dhwj hxjIhyhyhzjjh{jh|jh}jSh~jfhjhjhj*hjhjfhjhhjnhj]bhjhhjP hj"hj hhhjrhjIhjihjfhjhjhj hjhjhj]hjQhjhjhj hjdhj^dhjehjehj*hjg9hjchj:hNhj hjhj,hjZhhhjf*hjhjhjhjCuh]rIlhahUU transformerrJlNU footnote_refsrKl}rLlUrefnamesrMl}rNl(jp]rOljmaX sqlalchemy]rPlj)aXsqlalchemy connection strings]rQlj)aXsqlalchemy connection string]rRlj)aXfaq]rSlj{aaX flask-celery]rTljaX+can i send some tasks to only some servers?]rUljpaaXdeprecation timeline]rVl(j+j0,jE,ejj]rWljjajG*]rXljD*ajS*]rYljP*aj&]rZl(j&j*'jB'j'eXcookbook: retrying tasks]r[ljURaXsupported databases]r\lj)auUsymbol_footnotesr]l]r^lUautofootnote_refsr_l]r`lUsymbol_footnote_refsral]rblU citationsrcl]rdlhhU current_linerelNUtransform_messagesrfl]rgl(h)rhl}ril(hUh}rjl(h]UlevelKh]h]Usourcehh]h]UlineKUtypej@kuh]rklh)rll}rml(hUh}rnl(h]h]h]h]h]uhjhlh]rolhX3Hyperlink target "version-2-1-5" is not referenced.rplrql}rrl(hUhjllubahjubahj=kubh)rsl}rtl(hUh}rul(h]UlevelKh]h]Usourcehh]h]UlineKUtypej@kuh]rvlh)rwl}rxl(hUh}ryl(h]h]h]h]h]uhjslh]rzlhX3Hyperlink target "version-2-1-4" is not referenced.r{lr|l}r}l(hUhjwlubahjubahj=kubh)r~l}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineKUtypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhj~lh]rlhX4Hyperlink target "v214-important" is not referenced.rlrl}rl(hUhjlubahjubahj=kubh)rl}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineK+Utypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX0Hyperlink target "v214-fixes" is not referenced.rlrl}rl(hUhjlubahjubahj=kubh)rl}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineKSUtypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX8Hyperlink target "v214-documentation" is not referenced.rlrl}rl(hUhjlubahjubahj=kubh)rl}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineK`Utypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX3Hyperlink target "version-2-1-3" is not referenced.rlrl}rl(hUhjlubahjubahj=kubh)rl}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineKfUtypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX0Hyperlink target "v213-fixes" is not referenced.rlrl}rl(hUhjlubahjubahj=kubh)rl}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineKyUtypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX3Hyperlink target "version-2-1-2" is not referenced.rlrl}rl(hUhjlubahjubahj=kubh)rl}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineKUtypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX0Hyperlink target "v212-fixes" is not referenced.rlrl}rl(hUhjlubahjubahj=kubh)rl}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineKUtypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX3Hyperlink target "version-2-1-1" is not referenced.rlrl}rl(hUhjlubahjubahj=kubh)rl}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineKUtypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX0Hyperlink target "v211-fixes" is not referenced.rlrl}rl(hUhjlubahjubahj=kubh)rl}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX/Hyperlink target "v211-news" is not referenced.rlrl}rl(hUhjlubahjubahj=kubh)rl}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineMRUtypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX3Hyperlink target "version-2-1-0" is not referenced.rlrl}rl(hUhjlubahjubahj=kubh)rl}rl(hUh}rl(h]UlevelKh]h]Usourcehh]h]UlineMXUtypej@kuh]rlh)rl}rl(hUh}rl(h]h]h]h]h]uhjlh]rlhX4Hyperlink target "v210-important" is not referenced.rlrm}rm(hUhjlubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]r mhX/Hyperlink target "v210-news" is not referenced.r mr m}r m(hUhjmubahjubahj=kubh)r m}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhj mh]rmhX0Hyperlink target "v210-fixes" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX7Hyperlink target "v210-experimental" is not referenced.r mr!m}r"m(hUhjmubahjubahj=kubh)r#m}r$m(hUh}r%m(h]UlevelKh]h]Usourcehh]h]UlineM'Utypej@kuh]r&mh)r'm}r(m(hUh}r)m(h]h]h]h]h]uhj#mh]r*mhX8Hyperlink target "v210-documentation" is not referenced.r+mr,m}r-m(hUhj'mubahjubahj=kubh)r.m}r/m(hUh}r0m(h]UlevelKh]h]Usourcehh]h]UlineM8Utypej@kuh]r1mh)r2m}r3m(hUh}r4m(h]h]h]h]h]uhj.mh]r5mhX3Hyperlink target "version-2-0-3" is not referenced.r6mr7m}r8m(hUhj2mubahjubahj=kubh)r9m}r:m(hUh}r;m(h]UlevelKh]h]Usourcehh]h]UlineM>Utypej@kuh]rm(hUh}r?m(h]h]h]h]h]uhj9mh]r@mhX0Hyperlink target "v203-fixes" is not referenced.rAmrBm}rCm(hUhj=mubahjubahj=kubh)rDm}rEm(hUh}rFm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rGmh)rHm}rIm(hUh}rJm(h]h]h]h]h]uhjDmh]rKmhX8Hyperlink target "v203-documentation" is not referenced.rLmrMm}rNm(hUhjHmubahjubahj=kubh)rOm}rPm(hUh}rQm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rRmh)rSm}rTm(hUh}rUm(h]h]h]h]h]uhjOmh]rVmhX3Hyperlink target "version-2-0-2" is not referenced.rWmrXm}rYm(hUhjSmubahjubahj=kubh)rZm}r[m(hUh}r\m(h]UlevelKh]h]Usourcehh]h]UlineM5Utypej@kuh]r]mh)r^m}r_m(hUh}r`m(h]h]h]h]h]uhjZmh]ramhX3Hyperlink target "version-2-0-1" is not referenced.rbmrcm}rdm(hUhj^mubahjubahj=kubh)rem}rfm(hUh}rgm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rhmh)rim}rjm(hUh}rkm(h]h]h]h]h]uhjemh]rlmhX3Hyperlink target "version-2-0-0" is not referenced.rmmrnm}rom(hUhjimubahjubahj=kubh)rpm}rqm(hUh}rrm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rsmh)rtm}rum(hUh}rvm(h]h]h]h]h]uhjpmh]rwmhX9Hyperlink target "v200-django-upgrade" is not referenced.rxmrym}rzm(hUhjtmubahjubahj=kubh)r{m}r|m(hUh}r}m(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]r~mh)rm}rm(hUh}rm(h]h]h]h]h]uhj{mh]rmhX-Hyperlink target "index-0" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX2Hyperlink target "v200-upgrade" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX;Hyperlink target "v200-upgrade-database" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineM)Utypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX8Hyperlink target "v200-upgrade-cache" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineM>Utypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX7Hyperlink target "v200-incompatible" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX/Hyperlink target "v200-news" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX-Hyperlink target "index-1" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX-Hyperlink target "index-2" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX3Hyperlink target "version-1-0-6" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX3Hyperlink target "version-1-0-5" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineM!Utypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX3Hyperlink target "v105-critical" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rm(hUh}rm(h]UlevelKh]h]Usourcehh]h]UlineM8Utypej@kuh]rmh)rm}rm(hUh}rm(h]h]h]h]h]uhjmh]rmhX2Hyperlink target "v105-changes" is not referenced.rmrm}rm(hUhjmubahjubahj=kubh)rm}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineMHUtypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjmh]rnhX-Hyperlink target "index-3" is not referenced.rnrn}r n(hUhjnubahjubahj=kubh)r n}r n(hUh}r n(h]UlevelKh]h]Usourcehh]h]UlineMXUtypej@kuh]r nh)rn}rn(hUh}rn(h]h]h]h]h]uhj nh]rnhX3Hyperlink target "version-1-0-4" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineM`Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX3Hyperlink target "version-1-0-3" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)r n}r!n(hUh}r"n(h]UlevelKh]h]Usourcehh]h]UlineMfUtypej@kuh]r#nh)r$n}r%n(hUh}r&n(h]h]h]h]h]uhj nh]r'nhX4Hyperlink target "v103-important" is not referenced.r(nr)n}r*n(hUhj$nubahjubahj=kubh)r+n}r,n(hUh}r-n(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]r.nh)r/n}r0n(hUh}r1n(h]h]h]h]h]uhj+nh]r2nhX/Hyperlink target "v103-news" is not referenced.r3nr4n}r5n(hUhj/nubahjubahj=kubh)r6n}r7n(hUh}r8n(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]r9nh)r:n}r;n(hUh}rnr?n}r@n(hUhj:nubahjubahj=kubh)rAn}rBn(hUh}rCn(h]UlevelKh]h]Usourcehh]h]UlineMPUtypej@kuh]rDnh)rEn}rFn(hUh}rGn(h]h]h]h]h]uhjAnh]rHnhX0Hyperlink target "v103-fixes" is not referenced.rInrJn}rKn(hUhjEnubahjubahj=kubh)rLn}rMn(hUh}rNn(h]UlevelKh]h]Usourcehh]h]UlineMcUtypej@kuh]rOnh)rPn}rQn(hUh}rRn(h]h]h]h]h]uhjLnh]rSnhX3Hyperlink target "version-1-0-2" is not referenced.rTnrUn}rVn(hUhjPnubahjubahj=kubh)rWn}rXn(hUh}rYn(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rZnh)r[n}r\n(hUh}r]n(h]h]h]h]h]uhjWnh]r^nhX3Hyperlink target "version-1-0-1" is not referenced.r_nr`n}ran(hUhj[nubahjubahj=kubh)rbn}rcn(hUh}rdn(h]UlevelKh]h]Usourcehh]h]UlineMY Utypej@kuh]renh)rfn}rgn(hUh}rhn(h]h]h]h]h]uhjbnh]rinhX3Hyperlink target "version-1-0-0" is not referenced.rjnrkn}rln(hUhjfnubahjubahj=kubh)rmn}rnn(hUh}ron(h]UlevelKh]h]Usourcehh]h]UlineM_ Utypej@kuh]rpnh)rqn}rrn(hUh}rsn(h]h]h]h]h]uhjmnh]rtnhX7Hyperlink target "v100-incompatible" is not referenced.runrvn}rwn(hUhjqnubahjubahj=kubh)rxn}ryn(hUh}rzn(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]r{nh)r|n}r}n(hUh}r~n(h]h]h]h]h]uhjxnh]rnhX-Hyperlink target "index-4" is not referenced.rnrn}rn(hUhj|nubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX7Hyperlink target "v100-deprecations" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineMM Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX2Hyperlink target "v100-changes" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineMZ Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX-Hyperlink target "index-5" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX-Hyperlink target "index-6" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX/Hyperlink target "v100-bugs" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX8Hyperlink target "v100-documentation" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX3Hyperlink target "version-0-8-4" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX3Hyperlink target "version-0-8-3" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX3Hyperlink target "version-0-8-2" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX3Hyperlink target "version-0-8-1" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rnh)rn}rn(hUh}rn(h]h]h]h]h]uhjnh]rnhX9Hyperlink target "v081-very-important" is not referenced.rnrn}rn(hUhjnubahjubahj=kubh)rn}rn(hUh}rn(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rnh)ro}ro(hUh}ro(h]h]h]h]h]uhjnh]rohX4Hyperlink target "v081-important" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}r o(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]r oh)r o}r o(hUh}r o(h]h]h]h]h]uhjoh]rohX2Hyperlink target "v081-changes" is not referenced.roro}ro(hUhj oubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineM& Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX3Hyperlink target "version-0-8-0" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineM, Utypej@kuh]r oh)r!o}r"o(hUh}r#o(h]h]h]h]h]uhjoh]r$ohX7Hyperlink target "v080-incompatible" is not referenced.r%or&o}r'o(hUhj!oubahjubahj=kubh)r(o}r)o(hUh}r*o(h]UlevelKh]h]Usourcehh]h]UlineMG Utypej@kuh]r+oh)r,o}r-o(hUh}r.o(h]h]h]h]h]uhj(oh]r/ohX4Hyperlink target "v080-important" is not referenced.r0or1o}r2o(hUhj,oubahjubahj=kubh)r3o}r4o(hUh}r5o(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]r6oh)r7o}r8o(hUh}r9o(h]h]h]h]h]uhj3oh]r:ohX/Hyperlink target "v080-news" is not referenced.r;oro}r?o(hUh}r@o(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rAoh)rBo}rCo(hUh}rDo(h]h]h]h]h]uhj>oh]rEohX3Hyperlink target "version-0-6-0" is not referenced.rForGo}rHo(hUhjBoubahjubahj=kubh)rIo}rJo(hUh}rKo(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rLoh)rMo}rNo(hUh}rOo(h]h]h]h]h]uhjIoh]rPohX4Hyperlink target "v060-important" is not referenced.rQorRo}rSo(hUhjMoubahjubahj=kubh)rTo}rUo(hUh}rVo(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rWoh)rXo}rYo(hUh}rZo(h]h]h]h]h]uhjToh]r[ohX/Hyperlink target "v060-news" is not referenced.r\or]o}r^o(hUhjXoubahjubahj=kubh)r_o}r`o(hUh}rao(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rboh)rco}rdo(hUh}reo(h]h]h]h]h]uhj_oh]rfohX3Hyperlink target "version-0-4-1" is not referenced.rgorho}rio(hUhjcoubahjubahj=kubh)rjo}rko(hUh}rlo(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rmoh)rno}roo(hUh}rpo(h]h]h]h]h]uhjjoh]rqohX3Hyperlink target "version-0-4-0" is not referenced.rrorso}rto(hUhjnoubahjubahj=kubh)ruo}rvo(hUh}rwo(h]UlevelKh]h]Usourcehh]h]UlineM$ Utypej@kuh]rxoh)ryo}rzo(hUh}r{o(h]h]h]h]h]uhjuoh]r|ohX4Hyperlink target "version-0-3-20" is not referenced.r}or~o}ro(hUhjyoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineMv Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX3Hyperlink target "version-0-3-7" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX3Hyperlink target "version-0-3-3" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX3Hyperlink target "version-0-3-2" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX3Hyperlink target "version-0-3-1" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX3Hyperlink target "version-0-3-0" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineM& Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX3Hyperlink target "version-0-2-0" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineM3 Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX8Hyperlink target "version-0-2-0-pre3" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineM= Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX8Hyperlink target "version-0-2-0-pre2" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineMF Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX8Hyperlink target "version-0-2-0-pre1" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineMS Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX4Hyperlink target "version-0-1-15" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineM] Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rohX4Hyperlink target "version-0-1-14" is not referenced.roro}ro(hUhjoubahjubahj=kubh)ro}ro(hUh}ro(h]UlevelKh]h]Usourcehh]h]UlineMf Utypej@kuh]roh)ro}ro(hUh}ro(h]h]h]h]h]uhjoh]rphX4Hyperlink target "version-0-1-13" is not referenced.rprp}rp(hUhjoubahjubahj=kubh)rp}rp(hUh}rp(h]UlevelKh]h]Usourcehh]h]UlineM~ Utypej@kuh]rph)rp}r p(hUh}r p(h]h]h]h]h]uhjph]r phX4Hyperlink target "version-0-1-12" is not referenced.r pr p}rp(hUhjpubahjubahj=kubh)rp}rp(hUh}rp(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rph)rp}rp(hUh}rp(h]h]h]h]h]uhjph]rphX4Hyperlink target "version-0-1-11" is not referenced.rprp}rp(hUhjpubahjubahj=kubh)rp}rp(hUh}rp(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]rph)rp}rp(hUh}r p(h]h]h]h]h]uhjph]r!phX4Hyperlink target "version-0-1-10" is not referenced.r"pr#p}r$p(hUhjpubahjubahj=kubh)r%p}r&p(hUh}r'p(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]r(ph)r)p}r*p(hUh}r+p(h]h]h]h]h]uhj%ph]r,phX3Hyperlink target "version-0-1-8" is not referenced.r-pr.p}r/p(hUhj)pubahjubahj=kubh)r0p}r1p(hUh}r2p(h]UlevelKh]h]Usourcehh]h]UlineM Utypej@kuh]r3ph)r4p}r5p(hUh}r6p(h]h]h]h]h]uhj0ph]r7phX3Hyperlink target "version-0-1-7" is not referenced.r8pr9p}r:p(hUhj4pubahjubahj=kubh)r;p}rph)r?p}r@p(hUh}rAp(h]h]h]h]h]uhj;ph]rBphX3Hyperlink target "version-0-1-6" is not referenced.rCprDp}rEp(hUhj?pubahjubahj=kubh)rFp}rGp(hUh}rHp(h]UlevelKh]h]Usourcehh]h]UlineMUtypej@kuh]rIph)rJp}rKp(hUh}rLp(h]h]h]h]h]uhjFph]rMphX3Hyperlink target "version-0-1-0" is not referenced.rNprOp}rPp(hUhjJpubahjubahj=kubeUreporterrQpNUid_startrRpKU autofootnotesrSp]rTpU citation_refsrUp}rVpUindirect_targetsrWp]rXpUsettingsrYp(cdocutils.frontend Values rZpor[p}r\p(Ufootnote_backlinksr]pKUrecord_dependenciesr^pNU rfc_base_urlr_pUhttp://tools.ietf.org/html/r`pU tracebackrapUpep_referencesrbpNUstrip_commentsrcpNU toc_backlinksrdpjU language_coderepUenrfpU datestamprgpNU report_levelrhpKU _destinationripNU halt_levelrjpKU strip_classesrkpNhNUerror_encoding_error_handlerrlpUbackslashreplacermpUdebugrnpNUembed_stylesheetropUoutput_encoding_error_handlerrppUstrictrqpU sectnum_xformrrpKUdump_transformsrspNU docinfo_xformrtpKUwarning_streamrupNUpep_file_url_templatervpUpep-%04drwpUexit_status_levelrxpKUconfigrypNUstrict_visitorrzpNUcloak_email_addressesr{pUtrim_footnote_reference_spacer|pUenvr}pNUdump_pseudo_xmlr~pNUexpose_internalsrpNUsectsubtitle_xformrpU source_linkrpNUrfc_referencesrpNUoutput_encodingrpUutf-8rpU source_urlrpNUinput_encodingrpU utf-8-sigrpU_disable_configrpNU id_prefixrpUU tab_widthrpKUerror_encodingrpUUTF-8rpU_sourcerpUG/var/build/user_builds/celery/checkouts/2.1-archived/docs/changelog.rstrpUgettext_compactrpU generatorrpNUdump_internalsrpNU smart_quotesrpU pep_base_urlrpUhttp://www.python.org/dev/peps/rpUsyntax_highlightrpUlongrpUinput_encoding_error_handlerrpjqpUauto_id_prefixrpUidrpUdoctitle_xformrpUstrip_elements_with_classesrpNU _config_filesrp]Ufile_insertion_enabledrpU raw_enabledrpKU dump_settingsrpNubUsymbol_footnote_startrpKUidsrp}rp(jLjMjejajD_j?_j8]j3]jj]Nj7Zj2ZjYjYjWjWjSWjLWj"WjWj_TjXTjQjQjj9jj&jjU$jj!jCjjHjDjZjj jOjHjHjjjj:jOjOj:Nj;Njj2ZhjjZjZjjYj_j[jjZjjj/j+j}hjjjjj|jxjajajj'j jjjjjj*j*jjOj*j *jjj)Oj$Oj2j\Ejz j{ jjjjj j *jX)jT)jj|jmj jjjmjijjj-j^j j3]jZjVjjjVj^`jj?_j0j_jojkjj>j^djYdjnjjjp)jq)jBj>j'j'j"jjujoj j jI jB jhhjihjjjP jK j[jWjrjljjojJLjMLjMjMjpj7j)j)j5j5j6j6j8j8j`*j\*j1j-jjjjMjdjdjj&j3j -jjjjj jjj j2j.j])j^)jXjTj[jEQjj~jjj%8j&8jCj?jjWjjjjGcjjjjj jjjjjjjjjhhj?j;j,j(jfj~fj7j7jhjhjgjgj,j+jj&8jRjNjjj jjdRj`Rj1j9PjOjOjjjjhZjFjjjjj0j,j]bjXbjjjj{jljhjYjUjjLWjjjjjjjjj\jIjEjAj*j*jjNjj$OjjNjDjQjjcOjpjijAj;jjjjj j jj^)jZ$jU$j&j&j-j -j6j6jjq)j!j!j0j;j*j*hijlj jjj jjjSjK jfhjjljjjjj/j+jBj>jUjQjhjdj{jwjjjjjjjjjbjbjFj6jYj]7jjb9jj9j j>jj>Aj j jIjIhyjjjjjjjjajajjj|jbjjbjjYdjjdjj~ejjejijXbjjcjjdjFcjGcjbjbjjj j*jjjCj_hhj9j5jjj*j*jLjHjjjjjIjEjjjjWhhjQjQjLQjEQjhOjcOj@Pj9PjNjNjjKjdNj]NjNjNjoj[JjKjKjj}jjjj<jk<jejej&j"jcjcj djdjjB j]j^j_j_j_j_jc`j^`jnjQjg9jb9jjXTjej~ej jij'jfj*j *jjjjk<jfjfj@j j j jj;NjEjEjaEj\Ej`jhj:j~fjMjgjjjf*jb*jb7j]7j9j9j9j9j>j>j:j:jCAj>Aj>j>uUsubstitution_namesrp}rphhh}rp(h]h]h]Usourcehh]h]uU footnotesrp]rpUrefidsrp}rp(jL]rpjIajm]rpj aj]rpj{eajFc]rpjCcajb]rpjbaj]rpjdaj]rpjZNajz ]rpjw aj ]rpj0]aj1]rpj6PajC]rpj_ajV]rpj[`ajO]rpjOaj]rpjaj]rpj9aj]rpj&aj]rpjR$aj]rpj!ajC]rpjaj]rpjYaj]rpj >aj]rpjIWaj]rpjeajZ]rpjajp)]rpjm)aj']rpj'aj]rpj:ajI]rpjEaj*]rpj*ajO]rpjOaj]rpjNajM]rpjgaj:N]rpj7Naj]rpjNajD]rpjQaj]rpj`Oaj]rpjlaj]rpj/Zajn]rpjQaj]rpjWaj]rpjZaj%8]rpj"8aj]rpjKaj]rpj? aj]rpjWaj0]rpj8aj]rpjVdaj]]rpjZajj<]rpjg<ajF]rpj6aj]rpj aj]rpjajS]rpjH ajf]rpj aj]rpjgaj]rpjaj3]rpj -aj]rpj<_aj]rpjUTaj]rpj!Oaj]rpj9aj])]rpjZ)aj[]rpjBQaj ]rpjfaj]rpjdaj}]rpjiajY]rpjZ7aj]rpj_9aj*]rpj*aj ]rpj>aj]rpj;Aaj ]rpj ajI]rpj}Iaj2]rpjYEaj ]rpj aj0]rpj_aj`]rpjhaj:]rpj{faj7]rpj7aj]rpjcaji]rpjUbajb]rpjbaj']rpjfaj]rpjauub.PKYDDq5celery-2.1-archived/.doctrees/internals/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qX internalsqsUsubstitution_defsq}qUparse_messagesq ]q cdocutils.nodes system_message q )q }q (U rawsourceqUUparentqcdocutils.nodes section q)q}q(hUU referencedqKhhUsourceqcdocutils.nodes reprunicode qXM/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/index.rstqq}qbUexpect_referenced_by_nameq}qhcdocutils.nodes target q)q}q(hX.. _internals:hhhhUtagnameqUtargetqU attributesq }q!(Uidsq"]Ubackrefsq#]Udupnamesq$]Uclassesq%]Unamesq&]Urefidq'U internalsq(uUlineq)KUdocumentq*hUchildrenq+]ubshUsectionq,h }q-(h$]q.X internalsq/ah%]h#]h"]q0(h(Uid1q1eh&]q2hauh)Kh*hUexpect_referenced_by_idq3}q4h(hsh+]q5(cdocutils.nodes title q6)q7}q8(hX Internalsq9hhhhhUtitleq:h }q;(h$]h%]h#]h"]h&]uh)Kh*hh+]qq?}q@(hh9hh7ubaubcdocutils.nodes field_list qA)qB}qC(hUhhhhhU field_listqDh }qE(h$]h%]h#]h"]h&]uh)Kh*hh+]qF(cdocutils.nodes field qG)qH}qI(hUhhBhhhUfieldqJh }qK(h$]h%]h#]h"]h&]uh)Kh*hh+]qL(cdocutils.nodes field_name qM)qN}qO(hXReleaseqPh }qQ(h$]h%]h#]h"]h&]uhhHh+]qRh=XReleaseqSqT}qU(hhPhhNubahU field_nameqVubcdocutils.nodes field_body qW)qX}qY(hX |version|qZh }q[(h$]h%]h#]h"]h&]uhhHh+]q\cdocutils.nodes paragraph q])q^}q_(hhZhhXhhhU paragraphq`h }qa(h$]h%]h#]h"]h&]uh)Kh+]qbh=X2.1qcqd}qe(hU2.1qfhh^ubaubahU field_bodyqgubeubhG)qh}qi(hUhhBhhhhJh }qj(h$]h%]h#]h"]h&]uh)Kh*hh+]qk(hM)ql}qm(hXDateqnh }qo(h$]h%]h#]h"]h&]uhhhh+]qph=XDateqqqr}qs(hhnhhlubahhVubhW)qt}qu(hX|today| h }qv(h$]h%]h#]h"]h&]uhhhh+]qwh])qx}qy(hX|today|qzhhthhhh`h }q{(h$]h%]h#]h"]h&]uh)Kh+]q|h=XFebruary 04, 2014q}q~}q(hXFebruary 04, 2014hhxubaubahhgubeubeubcdocutils.nodes compound q)q}q(hUhhhhhUcompoundqh }q(h$]h%]qUtoctree-wrapperqah#]h"]h&]uh)Nh*hh+]qcsphinx.addnodes toctree q)q}q(hUhhhhhUtoctreeqh }q(UnumberedqKU includehiddenqhXinternals/indexqU titlesonlyqUglobqh"]h#]h$]h%]h&]Uentriesq]q(NXinternals/deprecationqqNXinternals/workerqqNXinternals/protocolqqNXinternals/eventsqqNXinternals/moduleindexqqNXinternals/reference/indexqqeUhiddenqU includefilesq]q(hhhhhheUmaxdepthqKuh)K h+]ubaubeubhhhUsystem_messageqh }q(h$]UlevelKh"]h#]qh1aUsourcehh%]h&]UlineKUtypeUINFOquh)Kh*hh+]qh])q}q(hUh }q(h$]h%]h#]h"]h&]uhh h+]qh=X,Duplicate implicit target name: "internals".qq}q(hUhhubahh`ubaubaUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}qhh(sh+]q(hhehUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh*hU current_lineqNUtransform_messagesq]qh )q}q(hUh }q(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypehuh+]qh])q}q(hUh }q(h$]h%]h#]h"]h&]uhhh+]qh=X/Hyperlink target "internals" is not referenced.q΅q}q(hUhhubahh`ubahhubaUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh:NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr UUTF-8r U_sourcerUM/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/index.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrhUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsr NubUsymbol_footnote_startr!KUidsr"}r#(h(hh1huUsubstitution_namesr$}r%hh*h }r&(h$]h"]h#]Usourcehh%]h&]uU footnotesr']r(Urefidsr)}r*h(]r+hasub.PKYDD;ƺLL8celery-2.1-archived/.doctrees/internals/protocol.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xmessage formatqNXtask message protocolqNXinternals-task-message-protocolqXexample messageq NX serializationq NUcontentsq NuUsubstitution_defsq }q Uparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUmessage-formatqhUtask-message-protocolqhUinternals-task-message-protocolqh Uexample-messageqh U serializationqh UcontentsquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceq X$.. _internals-task-message-protocol:Uparentq!hUsourceq"cdocutils.nodes reprunicode q#XP/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/protocol.rstq$q%}q&bUtagnameq'Utargetq(U attributesq)}q*(Uidsq+]Ubackrefsq,]Udupnamesq-]Uclassesq.]Unamesq/]Urefidq0huUlineq1KUdocumentq2hh]ubcdocutils.nodes section q3)q4}q5(h Uh!hh"h%Uexpect_referenced_by_nameq6}q7hhsh'Usectionq8h)}q9(h-]h.]h,]h+]q:(hheh/]q;(hheuh1Kh2hUexpect_referenced_by_idq<}q=hhsh]q>(cdocutils.nodes title q?)q@}qA(h XTask Message ProtocolqBh!h4h"h%h'UtitleqCh)}qD(h-]h.]h,]h+]h/]uh1Kh2hh]qEcdocutils.nodes Text qFXTask Message ProtocolqGqH}qI(h hBh!h@ubaubcdocutils.nodes topic qJ)qK}qL(h Uh!h4h"h%h'UtopicqMh)}qN(h-]h.]qO(UcontentsqPUlocalqQeh,]h+]qRhah/]qSh auh1Kh2hh]qTcdocutils.nodes bullet_list qU)qV}qW(h Uh!hKh"Nh'U bullet_listqXh)}qY(h-]h.]h,]h+]h/]uh1Nh2hh]qZ(cdocutils.nodes list_item q[)q\}q](h Uh)}q^(h-]h.]h,]h+]h/]uh!hVh]q_cdocutils.nodes paragraph q`)qa}qb(h Uh)}qc(h-]h.]h,]h+]h/]uh!h\h]qdcdocutils.nodes reference qe)qf}qg(h Uh)}qh(h+]qiUid1qjah,]h-]h.]h/]Urefidhuh!hah]qkhFXMessage formatqlqm}qn(h XMessage formatqoh!hfubah'U referenceqpubah'U paragraphqqubah'U list_itemqrubh[)qs}qt(h Uh)}qu(h-]h.]h,]h+]h/]uh!hVh]qvh`)qw}qx(h Uh)}qy(h-]h.]h,]h+]h/]uh!hsh]qzhe)q{}q|(h Uh)}q}(h+]q~Uid2qah,]h-]h.]h/]Urefidhuh!hwh]qhFXExample messageqq}q(h XExample messageqh!h{ubah'hpubah'hqubah'hrubh[)q}q(h Uh)}q(h-]h.]h,]h+]h/]uh!hVh]qh`)q}q(h Uh)}q(h-]h.]h,]h+]h/]uh!hh]qhe)q}q(h Uh)}q(h+]qUid3qah,]h-]h.]h/]Urefidhuh!hh]qhFX Serializationqq}q(h X Serializationqh!hubah'hpubah'hqubah'hrubeubaubh3)q}q(h Uh!h4h"h%h'h8h)}q(h-]h.]h,]h+]qhah/]qhauh1K h2hh]q(h?)q}q(h hoh!hh"h%h'hCh)}q(h+]h,]h-]h.]h/]h0hjuh1K h2hh]qhFXMessage formatqq}q(h hoh!hubaubhU)q}q(h Uh!hh"h%h'hXh)}q(UbulletqX*h+]h,]h-]h.]h/]uh1K h2hh]q(h[)q}q(h X4task ``string`` Name of the task. **required** h!hh"Nh'hrh)}q(h-]h.]h,]h+]h/]uh1Nh2hh]qcdocutils.nodes definition_list q)q}q(h Uh)}q(h-]h.]h,]h+]h/]uh!hh]qcdocutils.nodes definition_list_item q)q}q(h X0task ``string`` Name of the task. **required** h!hh"h%h'Udefinition_list_itemqh)}q(h-]h.]h,]h+]h/]uh1Kh]q(cdocutils.nodes term q)q}q(h Xtaskqh!hh"h%h'Utermqh)}q(h-]h.]h,]h+]h/]uh1Kh]qhFXtaskqq}q(h hh!hubaubcdocutils.nodes definition q)q}q(h Uh)}q(h-]h.]h,]h+]h/]uh!hh]q(h`)q}q(h X ``string``qh!hh"h%h'hqh)}q(h-]h.]h,]h+]h/]uh1Kh]qcdocutils.nodes literal q)q}q(h hh)}q(h-]h.]h,]h+]h/]uh!hh]qhFXstringqхq}q(h Uh!hubah'Uliteralqubaubh`)q}q(h XName of the task. **required**h!hh"h%h'hqh)}q(h-]h.]h,]h+]h/]uh1Kh]q(hFXName of the task. qمq}q(h XName of the task. h!hubcdocutils.nodes strong q)q}q(h X **required**h)}q(h-]h.]h,]h+]h/]uh!hh]qhFXrequiredqᅁq}q(h Uh!hubah'Ustrongqubeubeh'U definitionqubeubah'Udefinition_listqubaubh[)q}q(h X>id ``string`` Unique id of the task (UUID). **required** h!hh"Nh'hrh)}q(h-]h.]h,]h+]h/]uh1Nh2hh]qh)q}q(h Uh)}q(h-]h.]h,]h+]h/]uh!hh]qh)q}q(h X:id ``string`` Unique id of the task (UUID). **required** h!hh"h%h'hh)}q(h-]h.]h,]h+]h/]uh1Kh]q(h)q}q(h Xidqh!hh"h%h'hh)}q(h-]h.]h,]h+]h/]uh1Kh]qhFXidqq}q(h hh!hubaubh)q}q(h Uh)}q(h-]h.]h,]h+]h/]uh!hh]q(h`)q}r(h X ``string``rh!hh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1Kh]rh)r}r(h jh)}r(h-]h.]h,]h+]h/]uh!hh]rhFXstringrr }r (h Uh!jubah'hubaubh`)r }r (h X*Unique id of the task (UUID). **required**h!hh"h%h'hqh)}r (h-]h.]h,]h+]h/]uh1Kh]r(hFXUnique id of the task (UUID). rr}r(h XUnique id of the task (UUID). h!j ubh)r}r(h X **required**h)}r(h-]h.]h,]h+]h/]uh!j h]rhFXrequiredrr}r(h Uh!jubah'hubeubeh'hubeubah'hubaubh[)r}r(h XMargs ``list`` List of arguments. Will be an empty list if not provided. h!hh"Nh'hrh)}r(h-]h.]h,]h+]h/]uh1Nh2hh]rh)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]r h)r!}r"(h XIargs ``list`` List of arguments. Will be an empty list if not provided. h!jh"h%h'hh)}r#(h-]h.]h,]h+]h/]uh1Kh]r$(h)r%}r&(h Xargsr'h!j!h"h%h'hh)}r((h-]h.]h,]h+]h/]uh1Kh]r)hFXargsr*r+}r,(h j'h!j%ubaubh)r-}r.(h Uh)}r/(h-]h.]h,]h+]h/]uh!j!h]r0(h`)r1}r2(h X``list``r3h!j-h"h%h'hqh)}r4(h-]h.]h,]h+]h/]uh1Kh]r5h)r6}r7(h j3h)}r8(h-]h.]h,]h+]h/]uh!j1h]r9hFXlistr:r;}r<(h Uh!j6ubah'hubaubh`)r=}r>(h X9List of arguments. Will be an empty list if not provided.r?h!j-h"h%h'hqh)}r@(h-]h.]h,]h+]h/]uh1Kh]rAhFX9List of arguments. Will be an empty list if not provided.rBrC}rD(h j?h!j=ubaubeh'hubeubah'hubaubh[)rE}rF(h Xkkwargs ``dictionary`` Dictionary of keyword arguments. Will be an empty dictionary if not provided. h!hh"Nh'hrh)}rG(h-]h.]h,]h+]h/]uh1Nh2hh]rHh)rI}rJ(h Uh)}rK(h-]h.]h,]h+]h/]uh!jEh]rLh)rM}rN(h Xekwargs ``dictionary`` Dictionary of keyword arguments. Will be an empty dictionary if not provided. h!jIh"h%h'hh)}rO(h-]h.]h,]h+]h/]uh1K h]rP(h)rQ}rR(h XkwargsrSh!jMh"h%h'hh)}rT(h-]h.]h,]h+]h/]uh1K h]rUhFXkwargsrVrW}rX(h jSh!jQubaubh)rY}rZ(h Uh)}r[(h-]h.]h,]h+]h/]uh!jMh]r\(h`)r]}r^(h X``dictionary``r_h!jYh"h%h'hqh)}r`(h-]h.]h,]h+]h/]uh1Kh]rah)rb}rc(h j_h)}rd(h-]h.]h,]h+]h/]uh!j]h]rehFX dictionaryrfrg}rh(h Uh!jbubah'hubaubh`)ri}rj(h XMDictionary of keyword arguments. Will be an empty dictionary if not provided.rkh!jYh"h%h'hqh)}rl(h-]h.]h,]h+]h/]uh1Kh]rmhFXMDictionary of keyword arguments. Will be an empty dictionary if not provided.rnro}rp(h jkh!jiubaubeh'hubeubah'hubaubh[)rq}rr(h Xoretries ``int`` Current number of times this task has been retried. Defaults to ``0`` if not specified. h!hh"Nh'hrh)}rs(h-]h.]h,]h+]h/]uh1Nh2hh]rth)ru}rv(h Uh)}rw(h-]h.]h,]h+]h/]uh!jqh]rxh)ry}rz(h Xiretries ``int`` Current number of times this task has been retried. Defaults to ``0`` if not specified. h!juh"h%h'hh)}r{(h-]h.]h,]h+]h/]uh1K&h]r|(h)r}}r~(h Xretriesrh!jyh"h%h'hh)}r(h-]h.]h,]h+]h/]uh1K&h]rhFXretriesrr}r(h jh!j}ubaubh)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jyh]r(h`)r}r(h X``int``rh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1K#h]rh)r}r(h jh)}r(h-]h.]h,]h+]h/]uh!jh]rhFXintrr}r(h Uh!jubah'hubaubh`)r}r(h XWCurrent number of times this task has been retried. Defaults to ``0`` if not specified.h!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1K%h]r(hFX@Current number of times this task has been retried. Defaults to rr}r(h X@Current number of times this task has been retried. Defaults to h!jubh)r}r(h X``0``h)}r(h-]h.]h,]h+]h/]uh!jh]rhFX0r}r(h Uh!jubah'hubhFX if not specified.rr}r(h X if not specified.h!jubeubeh'hubeubah'hubaubh[)r}r(h Xeta ``string`` (ISO 8601) Estimated time of arrival. This is the date and time in ISO 8601 format. If not provided the message is not scheduled, but will be executed asap. h!hh"Nh'hrh)}r(h-]h.]h,]h+]h/]uh1Nh2hh]rh)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]rh)r}r(h Xeta ``string`` (ISO 8601) Estimated time of arrival. This is the date and time in ISO 8601 format. If not provided the message is not scheduled, but will be executed asap. h!jh"h%h'hh)}r(h-]h.]h,]h+]h/]uh1K-h]r(h)r}r(h Xetarh!jh"h%h'hh)}r(h-]h.]h,]h+]h/]uh1K-h]rhFXetarr}r(h jh!jubaubh)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]r(h`)r}r(h X``string`` (ISO 8601)h!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1K)h]r(h)r}r(h X ``string``h)}r(h-]h.]h,]h+]h/]uh!jh]rhFXstringrr}r(h Uh!jubah'hubhFX (ISO 8601)rr}r(h X (ISO 8601)h!jubeubh`)r}r(h XEstimated time of arrival. This is the date and time in ISO 8601 format. If not provided the message is not scheduled, but will be executed asap.rh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1K+h]rhFXEstimated time of arrival. This is the date and time in ISO 8601 format. If not provided the message is not scheduled, but will be executed asap.rr}r(h jh!jubaubeh'hubeubah'hubaubh[)r}r(h Xexpires (introduced after v2.0.2) ``string`` (ISO 8601) Expiration date. This is the date and time in ISO 8601 format. If not provided the message will never expire. The message will be expired when the message is received and the expiration date has been exceeded. h!hh"Nh'hrh)}r(h-]h.]h,]h+]h/]uh1Nh2hh]rh)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]rh)r}r(h X expires (introduced after v2.0.2) ``string`` (ISO 8601) Expiration date. This is the date and time in ISO 8601 format. If not provided the message will never expire. The message will be expired when the message is received and the expiration date has been exceeded. h!jh"h%h'hh)}r(h-]h.]h,]h+]h/]uh1K5h]r(h)r}r(h X!expires (introduced after v2.0.2)rh!jh"h%h'hh)}r(h-]h.]h,]h+]h/]uh1K5h]rhFX!expires (introduced after v2.0.2)rr}r(h jh!jubaubh)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]r(h`)r}r(h X``string`` (ISO 8601)h!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1K0h]r(h)r}r(h X ``string``h)}r(h-]h.]h,]h+]h/]uh!jh]rhFXstringrr}r(h Uh!jubah'hubhFX (ISO 8601)rr}r(h X (ISO 8601)h!jubeubh`)r}r(h XExpiration date. This is the date and time in ISO 8601 format. If not provided the message will never expire. The message will be expired when the message is received and the expiration date has been exceeded.rh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1K2h]rhFXExpiration date. This is the date and time in ISO 8601 format. If not provided the message will never expire. The message will be expired when the message is received and the expiration date has been exceeded.rr}r(h jh!jubaubeh'hubeubah'hubaubeubeubh3)r}r(h Uh!h4h"h%h'h8h)}r(h-]h.]h,]h+]rhah/]rh auh1K8h2hh]r(h?)r}r(h hh!jh"h%h'hCh)}r (h+]h,]h-]h.]h/]h0huh1K8h2hh]r hFXExample messager r }r (h hh!jubaubh`)r}r(h XRThis is an example invocation of the ``celery.task.PingTask`` task in JSON format:h!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1K:h2hh]r(hFX%This is an example invocation of the rr}r(h X%This is an example invocation of the h!jubh)r}r(h X``celery.task.PingTask``h)}r(h-]h.]h,]h+]h/]uh!jh]rhFXcelery.task.PingTaskrr}r(h Uh!jubah'hubhFX task in JSON format:rr}r(h X task in JSON format:h!jubeubcdocutils.nodes literal_block r)r }r!(h Xq{"task": "celery.task.PingTask", "args": [], "kwargs": {}, "retries": 0, "eta": "2009-11-17T12:30:56.527191"}h!jh"h%h'U literal_blockr"h)}r#(Ulinenosr$Ulanguager%X javascriptU xml:spacer&Upreserver'h+]h,]h-]h.]h/]uh1K=h2hh]r(hFXq{"task": "celery.task.PingTask", "args": [], "kwargs": {}, "retries": 0, "eta": "2009-11-17T12:30:56.527191"}r)r*}r+(h Uh!j ubaubeubh3)r,}r-(h Uh!h4h"h%h'h8h)}r.(h-]h.]h,]h+]r/hah/]r0h auh1KFh2hh]r1(h?)r2}r3(h hh!j,h"h%h'hCh)}r4(h+]h,]h-]h.]h/]h0huh1KFh2hh]r5hFX Serializationr6r7}r8(h hh!j2ubaubh`)r9}r:(h X^The protocol supports several serialization formats using the ``content_type`` message header.h!j,h"h%h'hqh)}r;(h-]h.]h,]h+]h/]uh1KHh2hh]r<(hFX>The protocol supports several serialization formats using the r=r>}r?(h X>The protocol supports several serialization formats using the h!j9ubh)r@}rA(h X``content_type``h)}rB(h-]h.]h,]h+]h/]uh!j9h]rChFX content_typerDrE}rF(h Uh!j@ubah'hubhFX message header.rGrH}rI(h X message header.h!j9ubeubh`)rJ}rK(h XEThe MIME-types supported by default are shown in the following table.rLh!j,h"h%h'hqh)}rM(h-]h.]h,]h+]h/]uh1KKh2hh]rNhFXEThe MIME-types supported by default are shown in the following table.rOrP}rQ(h jLh!jJubaubcdocutils.nodes block_quote rR)rS}rT(h Uh!j,h"h%h'U block_quoterUh)}rV(h-]h.]h,]h+]h/]uh1Nh2hh]rWcdocutils.nodes table rX)rY}rZ(h Uh)}r[(h-]h.]h,]h+]h/]uh!jSh]r\cdocutils.nodes tgroup r])r^}r_(h Uh)}r`(h+]h,]h-]h.]h/]UcolsKuh!jYh]ra(cdocutils.nodes colspec rb)rc}rd(h Uh)}re(h+]h,]h-]h.]h/]UcolwidthKuh!j^h]h'Ucolspecrfubjb)rg}rh(h Uh)}ri(h+]h,]h-]h.]h/]UcolwidthK!uh!j^h]h'jfubcdocutils.nodes thead rj)rk}rl(h Uh)}rm(h-]h.]h,]h+]h/]uh!j^h]rncdocutils.nodes row ro)rp}rq(h Uh)}rr(h-]h.]h,]h+]h/]uh!jkh]rs(cdocutils.nodes entry rt)ru}rv(h Uh)}rw(h-]h.]h,]h+]h/]uh!jph]rxh`)ry}rz(h XSchemer{h!juh"h%h'hqh)}r|(h-]h.]h,]h+]h/]uh1KNh]r}hFXSchemer~r}r(h j{h!jyubaubah'Uentryrubjt)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jph]rh`)r}r(h X MIME Typerh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1KNh]rhFX MIME Typerr}r(h jh!jubaubah'jubeh'Urowrubah'Utheadrubcdocutils.nodes tbody r)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!j^h]r(jo)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]r(jt)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]rh`)r}r(h Xjsonrh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1KPh]rhFXjsonrr}r(h jh!jubaubah'jubjt)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]rh`)r}r(h Xapplication/jsonrh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1KPh]rhFXapplication/jsonrr}r(h jh!jubaubah'jubeh'jubjo)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]r(jt)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]rh`)r}r(h Xyamlrh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1KQh]rhFXyamlrr}r(h jh!jubaubah'jubjt)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]rh`)r}r(h Xapplication/x-yamlrh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1KQh]rhFXapplication/x-yamlrr}r(h jh!jubaubah'jubeh'jubjo)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]r(jt)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]rh`)r}r(h Xpicklerh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1KRh]rhFXpicklerr}r(h jh!jubaubah'jubjt)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]rh`)r}r(h Xapplication/x-python-serializerh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1KRh]rhFXapplication/x-python-serializerr}r(h jh!jubaubah'jubeh'jubjo)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]r(jt)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]rh`)r}r(h Xmsgpackrh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1KSh]rhFXmsgpackrr}r(h jh!jubaubah'jubjt)r}r(h Uh)}r(h-]h.]h,]h+]h/]uh!jh]rh`)r}r(h Xapplication/x-msgpackrh!jh"h%h'hqh)}r(h-]h.]h,]h+]h/]uh1KSh]rhFXapplication/x-msgpackrr}r(h jh!jubaubah'jubeh'jubeh'Utbodyrubeh'Utgrouprubah'Utablerubaubeubeubeh UU transformerrNU footnote_refsr }r Urefnamesr }r Usymbol_footnotesr ]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh2hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h Uh)}r(h-]UlevelKh+]h,]Usourceh%h.]h/]UlineKUtypeUINFOruh]rh`)r}r(h Uh)}r (h-]h.]h,]h+]h/]uh!jh]r!hFXEHyperlink target "internals-task-message-protocol" is not referenced.r"r#}r$(h Uh!jubah'hqubah'Usystem_messager%ubaUreporterr&NUid_startr'KU autofootnotesr(]r)U citation_refsr*}r+Uindirect_targetsr,]r-Usettingsr.(cdocutils.frontend Values r/or0}r1(Ufootnote_backlinksr2KUrecord_dependenciesr3NU rfc_base_urlr4Uhttp://tools.ietf.org/html/r5U tracebackr6Upep_referencesr7NUstrip_commentsr8NU toc_backlinksr9jU language_coder:Uenr;U datestampr<NU report_levelr=KU _destinationr>NU halt_levelr?KU strip_classesr@NhCNUerror_encoding_error_handlerrAUbackslashreplacerBUdebugrCNUembed_stylesheetrDUoutput_encoding_error_handlerrEUstrictrFU sectnum_xformrGKUdump_transformsrHNU docinfo_xformrIKUwarning_streamrJNUpep_file_url_templaterKUpep-%04drLUexit_status_levelrMKUconfigrNNUstrict_visitorrONUcloak_email_addressesrPUtrim_footnote_reference_spacerQUenvrRNUdump_pseudo_xmlrSNUexpose_internalsrTNUsectsubtitle_xformrUU source_linkrVNUrfc_referencesrWNUoutput_encodingrXUutf-8rYU source_urlrZNUinput_encodingr[U utf-8-sigr\U_disable_configr]NU id_prefixr^UU tab_widthr_KUerror_encodingr`UUTF-8raU_sourcerbUP/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/protocol.rstrcUgettext_compactrdU generatorreNUdump_internalsrfNU smart_quotesrgU pep_base_urlrhUhttp://www.python.org/dev/peps/riUsyntax_highlightrjUlongrkUinput_encoding_error_handlerrljFUauto_id_prefixrmUidrnUdoctitle_xformroUstrip_elements_with_classesrpNU _config_filesrq]Ufile_insertion_enabledrrU raw_enabledrsKU dump_settingsrtNubUsymbol_footnote_startruKUidsrv}rw(hh{hh4hhhjhfhhhj,hh4hhKhjuUsubstitution_namesrx}ryh'h2h)}rz(h-]h+]h,]Usourceh%h.]h/]uU footnotesr{]r|Urefidsr}}r~h]rhasub.PKYDD۩ @ @;celery-2.1-archived/.doctrees/internals/deprecation.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xremovals for version 2.0qNXdeprecations-v2.0qXdeprecation-timelineqXcelery deprecation timelineq NUcontentsq NuUsubstitution_defsq }q Uparse_messagesq ]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUremovals-for-version-2-0qhUdeprecations-v2-0qhUdeprecation-timelineqh Ucelery-deprecation-timelineqh UcontentsquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX.. _deprecation-timeline:UparentqhUsourceq cdocutils.nodes reprunicode q!XS/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/deprecation.rstq"q#}q$bUtagnameq%Utargetq&U attributesq'}q((Uidsq)]Ubackrefsq*]Udupnamesq+]Uclassesq,]Unamesq-]Urefidq.huUlineq/KUdocumentq0hh]ubcdocutils.nodes section q1)q2}q3(hUhhh h#Uexpect_referenced_by_nameq4}q5hhsh%Usectionq6h'}q7(h+]h,]h*]h)]q8(hheh-]q9(h heuh/Kh0hUexpect_referenced_by_idq:}q;hhsh]q<(cdocutils.nodes title q=)q>}q?(hXCelery Deprecation Timelineq@hh2h h#h%UtitleqAh'}qB(h+]h,]h*]h)]h-]uh/Kh0hh]qCcdocutils.nodes Text qDXCelery Deprecation TimelineqEqF}qG(hh@hh>ubaubcdocutils.nodes topic qH)qI}qJ(hUhh2h h#h%UtopicqKh'}qL(h+]h,]qM(UcontentsqNUlocalqOeh*]h)]qPhah-]qQh auh/Kh0hh]qRcdocutils.nodes bullet_list qS)qT}qU(hUhhIh Nh%U bullet_listqVh'}qW(h+]h,]h*]h)]h-]uh/Nh0hh]qXcdocutils.nodes list_item qY)qZ}q[(hUh'}q\(h+]h,]h*]h)]h-]uhhTh]q]cdocutils.nodes paragraph q^)q_}q`(hUh'}qa(h+]h,]h*]h)]h-]uhhZh]qbcdocutils.nodes reference qc)qd}qe(hUh'}qf(h)]qgUid1qhah*]h+]h,]h-]Urefidhuhh_h]qihDXRemovals for version 2.0qjqk}ql(hXRemovals for version 2.0qmhhdubah%U referenceqnubah%U paragraphqoubah%U list_itemqpubaubaubh)qq}qr(hX.. _deprecations-v2.0:hh2h h#h%h&h'}qs(h)]h*]h+]h,]h-]h.huh/K h0hh]ubh1)qt}qu(hUhh2h h#h4}qvhhqsh%h6h'}qw(h+]h,]h*]h)]qx(hheh-]qy(hheuh/K h0hh:}qzhhqsh]q{(h=)q|}q}(hhmhhth h#h%hAh'}q~(h)]h*]h+]h,]h-]h.hhuh/K h0hh]qhDXRemovals for version 2.0qq}q(hhmhh|ubaubhS)q}q(hUhhth h#h%hVh'}q(UbulletqX*h)]h*]h+]h,]h-]uh/Kh0hh]q(hY)q}q(hXThe following settings will be removed: ===================================== ===================================== **Setting name** **Replace with** ===================================== ===================================== ``CELERY_AMQP_CONSUMER_QUEUES`` ``CELERY_QUEUES`` ``CELERY_AMQP_CONSUMER_QUEUES`` ``CELERY_QUEUES`` ``CELERY_AMQP_EXCHANGE`` ``CELERY_DEFAULT_EXCHANGE`` ``CELERY_AMQP_EXCHANGE_TYPE`` ``CELERY_DEFAULT_AMQP_EXCHANGE_TYPE`` ``CELERY_AMQP_CONSUMER_ROUTING_KEY`` ``CELERY_QUEUES`` ``CELERY_AMQP_PUBLISHER_ROUTING_KEY`` ``CELERY_DEFAULT_ROUTING_KEY`` ===================================== ===================================== hhh h#h%hph'}q(h+]h,]h*]h)]h-]uh/Nh0hh]q(h^)q}q(hX'The following settings will be removed:qhhh h#h%hoh'}q(h+]h,]h*]h)]h-]uh/Kh]qhDX'The following settings will be removed:qq}q(hhhhubaubcdocutils.nodes block_quote q)q}q(hUh'}q(h+]h,]h*]h)]h-]uhhh]qcdocutils.nodes table q)q}q(hUh'}q(h+]h,]h*]h)]h-]uhhh]qcdocutils.nodes tgroup q)q}q(hUh'}q(h)]h*]h+]h,]h-]UcolsKuhhh]q(cdocutils.nodes colspec q)q}q(hUh'}q(h)]h*]h+]h,]h-]UcolwidthK%uhhh]h%Ucolspecqubh)q}q(hUh'}q(h)]h*]h+]h,]h-]UcolwidthK%uhhh]h%hubcdocutils.nodes thead q)q}q(hUh'}q(h+]h,]h*]h)]h-]uhhh]qcdocutils.nodes row q)q}q(hUh'}q(h+]h,]h*]h)]h-]uhhh]q(cdocutils.nodes entry q)q}q(hUh'}q(h+]h,]h*]h)]h-]uhhh]qh^)q}q(hX**Setting name**qhhh h#h%hoh'}q(h+]h,]h*]h)]h-]uh/Kh]qcdocutils.nodes strong q)q}q(hhh'}q(h+]h,]h*]h)]h-]uhhh]qhDX Setting nameqąq}q(hUhhubah%Ustrongqubaubah%Uentryqubh)q}q(hUh'}q(h+]h,]h*]h)]h-]uhhh]qh^)q}q(hX**Replace with**qhhh h#h%hoh'}q(h+]h,]h*]h)]h-]uh/Kh]qh)q}q(hhh'}q(h+]h,]h*]h)]h-]uhhh]qhDX Replace withqօq}q(hUhhubah%hubaubah%hubeh%Urowqubah%Utheadqubcdocutils.nodes tbody q)q}q(hUh'}q(h+]h,]h*]h)]h-]uhhh]q(h)q}q(hUh'}q(h+]h,]h*]h)]h-]uhhh]q(h)q}q(hUh'}q(h+]h,]h*]h)]h-]uhhh]qh^)q}q(hX``CELERY_AMQP_CONSUMER_QUEUES``qhhh h#h%hoh'}q(h+]h,]h*]h)]h-]uh/Kh]qcdocutils.nodes literal q)q}q(hhh'}q(h+]h,]h*]h)]h-]uhhh]qhDXCELERY_AMQP_CONSUMER_QUEUESqq}q(hUhhubah%Uliteralqubaubah%hubh)q}q(hUh'}q(h+]h,]h*]h)]h-]uhhh]qh^)q}q(hX``CELERY_QUEUES``qhhh h#h%hoh'}q(h+]h,]h*]h)]h-]uh/Kh]qh)q}r(hhh'}r(h+]h,]h*]h)]h-]uhhh]rhDX CELERY_QUEUESrr}r(hUhhubah%hubaubah%hubeh%hubh)r}r(hUh'}r(h+]h,]h*]h)]h-]uhhh]r (h)r }r (hUh'}r (h+]h,]h*]h)]h-]uhjh]r h^)r}r(hX``CELERY_AMQP_CONSUMER_QUEUES``rhj h h#h%hoh'}r(h+]h,]h*]h)]h-]uh/Kh]rh)r}r(hjh'}r(h+]h,]h*]h)]h-]uhjh]rhDXCELERY_AMQP_CONSUMER_QUEUESrr}r(hUhjubah%hubaubah%hubh)r}r(hUh'}r(h+]h,]h*]h)]h-]uhjh]rh^)r}r(hX``CELERY_QUEUES``r hjh h#h%hoh'}r!(h+]h,]h*]h)]h-]uh/Kh]r"h)r#}r$(hj h'}r%(h+]h,]h*]h)]h-]uhjh]r&hDX CELERY_QUEUESr'r(}r)(hUhj#ubah%hubaubah%hubeh%hubh)r*}r+(hUh'}r,(h+]h,]h*]h)]h-]uhhh]r-(h)r.}r/(hUh'}r0(h+]h,]h*]h)]h-]uhj*h]r1h^)r2}r3(hX``CELERY_AMQP_EXCHANGE``r4hj.h h#h%hoh'}r5(h+]h,]h*]h)]h-]uh/Kh]r6h)r7}r8(hj4h'}r9(h+]h,]h*]h)]h-]uhj2h]r:hDXCELERY_AMQP_EXCHANGEr;r<}r=(hUhj7ubah%hubaubah%hubh)r>}r?(hUh'}r@(h+]h,]h*]h)]h-]uhj*h]rAh^)rB}rC(hX``CELERY_DEFAULT_EXCHANGE``rDhj>h h#h%hoh'}rE(h+]h,]h*]h)]h-]uh/Kh]rFh)rG}rH(hjDh'}rI(h+]h,]h*]h)]h-]uhjBh]rJhDXCELERY_DEFAULT_EXCHANGErKrL}rM(hUhjGubah%hubaubah%hubeh%hubh)rN}rO(hUh'}rP(h+]h,]h*]h)]h-]uhhh]rQ(h)rR}rS(hUh'}rT(h+]h,]h*]h)]h-]uhjNh]rUh^)rV}rW(hX``CELERY_AMQP_EXCHANGE_TYPE``rXhjRh h#h%hoh'}rY(h+]h,]h*]h)]h-]uh/Kh]rZh)r[}r\(hjXh'}r](h+]h,]h*]h)]h-]uhjVh]r^hDXCELERY_AMQP_EXCHANGE_TYPEr_r`}ra(hUhj[ubah%hubaubah%hubh)rb}rc(hUh'}rd(h+]h,]h*]h)]h-]uhjNh]reh^)rf}rg(hX%``CELERY_DEFAULT_AMQP_EXCHANGE_TYPE``rhhjbh h#h%hoh'}ri(h+]h,]h*]h)]h-]uh/Kh]rjh)rk}rl(hjhh'}rm(h+]h,]h*]h)]h-]uhjfh]rnhDX!CELERY_DEFAULT_AMQP_EXCHANGE_TYPErorp}rq(hUhjkubah%hubaubah%hubeh%hubh)rr}rs(hUh'}rt(h+]h,]h*]h)]h-]uhhh]ru(h)rv}rw(hUh'}rx(h+]h,]h*]h)]h-]uhjrh]ryh^)rz}r{(hX$``CELERY_AMQP_CONSUMER_ROUTING_KEY``r|hjvh h#h%hoh'}r}(h+]h,]h*]h)]h-]uh/Kh]r~h)r}r(hj|h'}r(h+]h,]h*]h)]h-]uhjzh]rhDX CELERY_AMQP_CONSUMER_ROUTING_KEYrr}r(hUhjubah%hubaubah%hubh)r}r(hUh'}r(h+]h,]h*]h)]h-]uhjrh]rh^)r}r(hX``CELERY_QUEUES``rhjh h#h%hoh'}r(h+]h,]h*]h)]h-]uh/Kh]rh)r}r(hjh'}r(h+]h,]h*]h)]h-]uhjh]rhDX CELERY_QUEUESrr}r(hUhjubah%hubaubah%hubeh%hubh)r}r(hUh'}r(h+]h,]h*]h)]h-]uhhh]r(h)r}r(hUh'}r(h+]h,]h*]h)]h-]uhjh]rh^)r}r(hX%``CELERY_AMQP_PUBLISHER_ROUTING_KEY``rhjh h#h%hoh'}r(h+]h,]h*]h)]h-]uh/Kh]rh)r}r(hjh'}r(h+]h,]h*]h)]h-]uhjh]rhDX!CELERY_AMQP_PUBLISHER_ROUTING_KEYrr}r(hUhjubah%hubaubah%hubh)r}r(hUh'}r(h+]h,]h*]h)]h-]uhjh]rh^)r}r(hX``CELERY_DEFAULT_ROUTING_KEY``rhjh h#h%hoh'}r(h+]h,]h*]h)]h-]uh/Kh]rh)r}r(hjh'}r(h+]h,]h*]h)]h-]uhjh]rhDXCELERY_DEFAULT_ROUTING_KEYrr}r(hUhjubah%hubaubah%hubeh%hubeh%Utbodyrubeh%Utgrouprubah%Utablerubah%U block_quoterubeubhY)r}r(hX:envvar:`CELERY_LOADER` definitions without class name. E.g. ``celery.loaders.default``, needs to include the class name: ``celery.loaders.default.Loader``. hhh h#h%hph'}r(h+]h,]h*]h)]h-]uh/Nh0hh]r(h^)r}r(hX7:envvar:`CELERY_LOADER` definitions without class name.hjh h#h%hoh'}r(h+]h,]h*]h)]h-]uh/Kh]r(csphinx.addnodes index r)r}r(hUh'}r(h)]h*]h+]h,]h-]Uentriesr]r((UsinglerX CELERY_LOADERrUindex-0rUtr(jX#environment variable; CELERY_LOADERjUtreuhjh]h%Uindexrubh)r}r(hUh'}r(h+]h,]h*]h)]rjah-]uhjh]h%h&ubcsphinx.addnodes pending_xref r)r}r(hX:envvar:`CELERY_LOADER`rhjh h#h%U pending_xrefrh'}r(UreftypeXenvvarUrefwarnrU reftargetrjU refdomainXstdrh)]h*]U refexplicith+]h,]h-]UrefdocrXinternals/deprecationruh/Kh]rh)r}r(hjh'}r(h+]h,]r(UxrefrjX std-envvarreh*]h)]h-]uhjh]rhDX CELERY_LOADERrr}r(hUhjubah%hubaubhDX definitions without class name.rr}r(hX definitions without class name.hjubeubh)r}r(hUh'}r(h+]h,]h*]h)]h-]uhjh]rh^)r}r(hXdE.g. ``celery.loaders.default``, needs to include the class name: ``celery.loaders.default.Loader``.hjh h#h%hoh'}r(h+]h,]h*]h)]h-]uh/Kh]r(hDXE.g. rr}r(hXE.g. hjubh)r}r(hX``celery.loaders.default``h'}r(h+]h,]h*]h)]h-]uhjh]rhDXcelery.loaders.defaultrr}r(hUhjubah%hubhDX#, needs to include the class name: rr}r(hX#, needs to include the class name: hjubh)r}r(hX!``celery.loaders.default.Loader``h'}r(h+]h,]h*]h)]h-]uhjh]rhDXcelery.loaders.default.Loaderrr }r (hUhjubah%hubhDX.r }r (hX.hjubeubah%jubeubhY)r }r(hXQ:meth:`TaskSet.run`. Use :meth:`celery.task.base.TaskSet.apply_async` instead. hhh Nh%hph'}r(h+]h,]h*]h)]h-]uh/Nh0hh]rcdocutils.nodes definition_list r)r}r(hUh'}r(h+]h,]h*]h)]h-]uhj h]rcdocutils.nodes definition_list_item r)r}r(hXO:meth:`TaskSet.run`. Use :meth:`celery.task.base.TaskSet.apply_async` instead. hjh h#h%Udefinition_list_itemrh'}r(h+]h,]h*]h)]h-]uh/K"h]r(cdocutils.nodes term r)r}r(hXE:meth:`TaskSet.run`. Use :meth:`celery.task.base.TaskSet.apply_async`rhjh h#h%Utermr h'}r!(h+]h,]h*]h)]h-]uh/K"h]r"(j)r#}r$(hX:meth:`TaskSet.run`r%hjh h#h%jh'}r&(UreftypeXmethjjX TaskSet.runU refdomainXpyr'h)]h*]U refexplicith+]h,]h-]jjUpy:classr(NU py:moduler)Nuh/K"h]r*h)r+}r,(hj%h'}r-(h+]h,]r.(jj'Xpy-methr/eh*]h)]h-]uhj#h]r0hDX TaskSet.run()r1r2}r3(hUhj+ubah%hubaubhDX. Use r4r5}r6(hX. Use hjubj)r7}r8(hX,:meth:`celery.task.base.TaskSet.apply_async`r9hjh h#h%jh'}r:(UreftypeXmethjjX$celery.task.base.TaskSet.apply_asyncU refdomainXpyr;h)]h*]U refexplicith+]h,]h-]jjj(Nj)Nuh/K"h]r<h)r=}r>(hj9h'}r?(h+]h,]r@(jj;Xpy-methrAeh*]h)]h-]uhj7h]rBhDX&celery.task.base.TaskSet.apply_async()rCrD}rE(hUhj=ubah%hubaubeubcdocutils.nodes definition rF)rG}rH(hUh'}rI(h+]h,]h*]h)]h-]uhjh]rJh^)rK}rL(hXinstead.rMhjGh h#h%hoh'}rN(h+]h,]h*]h)]h-]uh/K"h]rOhDXinstead.rPrQ}rR(hjMhjKubaubah%U definitionrSubeubah%Udefinition_listrTubaubhY)rU}rV(hXHThe module :mod:`celery.task.rest`; use :mod:`celery.task.http` instead.rWhhh h#h%hph'}rX(h+]h,]h*]h)]h-]uh/Nh0hh]rYh^)rZ}r[(hjWhjUh h#h%hoh'}r\(h+]h,]h*]h)]h-]uh/K$h]r](hDX The module r^r_}r`(hX The module hjZubj)ra}rb(hX:mod:`celery.task.rest`rchjZh h#h%jh'}rd(UreftypeXmodjjXcelery.task.restU refdomainXpyreh)]h*]U refexplicith+]h,]h-]jjj(Nj)Nuh/K$h]rfh)rg}rh(hjch'}ri(h+]h,]rj(jjeXpy-modrkeh*]h)]h-]uhjah]rlhDXcelery.task.restrmrn}ro(hUhjgubah%hubaubhDX; use rprq}rr(hX; use hjZubj)rs}rt(hX:mod:`celery.task.http`ruhjZh h#h%jh'}rv(UreftypeXmodjjXcelery.task.httpU refdomainXpyrwh)]h*]U refexplicith+]h,]h-]jjj(Nj)Nuh/K$h]rxh)ry}rz(hjuh'}r{(h+]h,]r|(jjwXpy-modr}eh*]h)]h-]uhjsh]r~hDXcelery.task.httprr}r(hUhjyubah%hubaubhDX instead.rr}r(hX instead.hjZubeubaubeubeubeubehUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh0hU current_linerNUtransform_messagesr]r(cdocutils.nodes system_message r)r}r(hUh'}r(h+]UlevelKh)]h*]Usourceh#h,]h-]UlineKUtypeUINFOruh]rh^)r}r(hUh'}r(h+]h,]h*]h)]h-]uhjh]rhDX:Hyperlink target "deprecation-timeline" is not referenced.rr}r(hUhjubah%houbah%Usystem_messagerubj)r}r(hUh'}r(h+]UlevelKh)]h*]Usourceh#h,]h-]UlineK Utypejuh]rh^)r}r(hUh'}r(h+]h,]h*]h)]h-]uhjh]rhDX7Hyperlink target "deprecations-v2-0" is not referenced.rr}r(hUhjubah%houbah%jubj)r}r(hUh'}r(h+]UlevelKh)]h*]Usourceh#h,]h-]UlineKUtypejuh]rh^)r}r(hUh'}r(h+]h,]h*]h)]h-]uhjh]rhDX-Hyperlink target "index-0" is not referenced.rr}r(hUhjubah%houbah%jubeUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrhU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhANUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUS/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/deprecation.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr }r (hhthhhdjjhhthh2hh2hhIuUsubstitution_namesr }r h%h0h'}r (h+]h)]h*]Usourceh#h,]h-]uU footnotesr]rUrefidsr}r(h]rhqah]rhauub.PKYDDx2++6celery-2.1-archived/.doctrees/internals/events.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X worker eventsqNX task eventsqNUcontentsqNXlist of worker eventsq NuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU worker-eventsqhU task-eventsqhUcontentsqh Ulist-of-worker-eventsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXN/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/events.rstq q!}q"bUtagnameq#Usectionq$U attributesq%}q&(Udupnamesq']Uclassesq(]Ubackrefsq)]Uidsq*]q+haUnamesq,]q-h auUlineq.KUdocumentq/hh]q0(cdocutils.nodes title q1)q2}q3(hXList of Worker Eventsq4hhhh!h#Utitleq5h%}q6(h']h(]h)]h*]h,]uh.Kh/hh]q7cdocutils.nodes Text q8XList of Worker Eventsq9q:}q;(hh4hh2ubaubcdocutils.nodes paragraph q<)q=}q>(hXlThis is the list of events sent by the worker. The monitor uses these to visualize the state of the cluster.q?hhhh!h#U paragraphq@h%}qA(h']h(]h)]h*]h,]uh.Kh/hh]qBh8XlThis is the list of events sent by the worker. The monitor uses these to visualize the state of the cluster.qCqD}qE(hh?hh=ubaubcdocutils.nodes topic qF)qG}qH(hUhhhh!h#UtopicqIh%}qJ(h']h(]qK(UcontentsqLUlocalqMeh)]h*]qNhah,]qOhauh.K h/hh]qPcdocutils.nodes bullet_list qQ)qR}qS(hUhhGhNh#U bullet_listqTh%}qU(h']h(]h)]h*]h,]uh.Nh/hh]qV(cdocutils.nodes list_item qW)qX}qY(hUh%}qZ(h']h(]h)]h*]h,]uhhRh]q[h<)q\}q](hUh%}q^(h']h(]h)]h*]h,]uhhXh]q_cdocutils.nodes reference q`)qa}qb(hUh%}qc(h*]qdUid1qeah)]h']h(]h,]Urefidhuhh\h]qfh8X Task Eventsqgqh}qi(hX Task Eventsqjhhaubah#U referenceqkubah#h@ubah#U list_itemqlubhW)qm}qn(hUh%}qo(h']h(]h)]h*]h,]uhhRh]qph<)qq}qr(hUh%}qs(h']h(]h)]h*]h,]uhhmh]qth`)qu}qv(hUh%}qw(h*]qxUid2qyah)]h']h(]h,]Urefidhuhhqh]qzh8X Worker Eventsq{q|}q}(hX Worker Eventsq~hhuubah#hkubah#h@ubah#hlubeubaubh)q}q(hUhhhh!h#h$h%}q(h']h(]h)]h*]qhah,]qhauh.K h/hh]q(h1)q}q(hhjhhhh!h#h5h%}q(h*]h)]h']h(]h,]Urefidqheuh.K h/hh]qh8X Task Eventsqq}q(hhjhhubaubhQ)q}q(hUhhhh!h#hTh%}q(UbulletqX*h*]h)]h']h(]h,]uh.Kh/hh]q(hW)q}q(hXttask-received(uuid, name, args, kwargs, retries, eta, hostname, timestamp) Sent when the worker receives a task. hhhh!h#hlh%}q(h']h(]h)]h*]h,]uh.Nh/hh]q(h<)q}q(hXJtask-received(uuid, name, args, kwargs, retries, eta, hostname, timestamp)qhhhh!h#h@h%}q(h']h(]h)]h*]h,]uh.Kh]qh8XJtask-received(uuid, name, args, kwargs, retries, eta, hostname, timestamp)qq}q(hhhhubaubcdocutils.nodes block_quote q)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]qh<)q}q(hX%Sent when the worker receives a task.qhhhh!h#h@h%}q(h']h(]h)]h*]h,]uh.Kh]qh8X%Sent when the worker receives a task.qq}q(hhhhubaubah#U block_quotequbeubhW)q}q(hXZtask-started(uuid, hostname, timestamp) Sent just before the worker executes the task. hhhh!h#hlh%}q(h']h(]h)]h*]h,]uh.Nh/hh]q(h<)q}q(hX'task-started(uuid, hostname, timestamp)qhhhh!h#h@h%}q(h']h(]h)]h*]h,]uh.Kh]qh8X'task-started(uuid, hostname, timestamp)qq}q(hhhhubaubh)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]qh<)q}q(hX.Sent just before the worker executes the task.qhhhh!h#h@h%}q(h']h(]h)]h*]h,]uh.Kh]qh8X.Sent just before the worker executes the task.qq}q(hhhhubaubah#hubeubhW)q}q(hXtask-succeeded(uuid, result, runtime, hostname, timestamp) Sent if the task executed successfully. Runtime is the time it took to execute the task using the pool. (Time starting from the task is sent to the pool, and ending when the pool result handlers callback is called). hhhh!h#hlh%}q(h']h(]h)]h*]h,]uh.Nh/hh]q(h<)q}q(hX:task-succeeded(uuid, result, runtime, hostname, timestamp)qhhhh!h#h@h%}q(h']h(]h)]h*]h,]uh.Kh]qh8X:task-succeeded(uuid, result, runtime, hostname, timestamp)qͅq}q(hhhhubaubh)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]qh<)q}q(hXSent if the task executed successfully. Runtime is the time it took to execute the task using the pool. (Time starting from the task is sent to the pool, and ending when the pool result handlers callback is called).qhhhh!h#h@h%}q(h']h(]h)]h*]h,]uh.Kh]qh8XSent if the task executed successfully. Runtime is the time it took to execute the task using the pool. (Time starting from the task is sent to the pool, and ending when the pool result handlers callback is called).qمq}q(hhhhubaubah#hubeubhW)q}q(hXjtask-failed(uuid, exception, traceback, hostname, timestamp) Sent if the execution of the task failed. hhhh!h#hlh%}q(h']h(]h)]h*]h,]uh.Nh/hh]q(h<)q}q(hX<task-failed(uuid, exception, traceback, hostname, timestamp)qhhhh!h#h@h%}q(h']h(]h)]h*]h,]uh.Kh]qh8X<task-failed(uuid, exception, traceback, hostname, timestamp)q允q}q(hhhhubaubh)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]qh<)q}q(hX)Sent if the execution of the task failed.qhhhh!h#h@h%}q(h']h(]h)]h*]h,]uh.K h]qh8X)Sent if the execution of the task failed.qq}q(hhhhubaubah#hubeubhW)q}q(hXxtask-revoked(uuid) Sent if the task has been revoked (Note that this is likely to be sent by more than one worker) hhhh!h#hlh%}q(h']h(]h)]h*]h,]uh.Nh/hh]q(h<)q}q(hXtask-revoked(uuid)qhhhh!h#h@h%}q(h']h(]h)]h*]h,]uh.K"h]qh8Xtask-revoked(uuid)qq}q(hhhhubaubh)r}r(hUh%}r(h']h(]h)]h*]h,]uhhh]rh<)r}r(hX_Sent if the task has been revoked (Note that this is likely to be sent by more than one worker)rhjhh!h#h@h%}r(h']h(]h)]h*]h,]uh.K$h]rh8X_Sent if the task has been revoked (Note that this is likely to be sent by more than one worker)r r }r (hjhjubaubah#hubeubhW)r }r (hXotask-retried(uuid, exception, traceback, hostname, timestamp) Sent if the task failed, but will be retried. hhhh!h#hlh%}r(h']h(]h)]h*]h,]uh.Nh/hh]r(h<)r}r(hX=task-retried(uuid, exception, traceback, hostname, timestamp)rhj hh!h#h@h%}r(h']h(]h)]h*]h,]uh.K'h]rh8X=task-retried(uuid, exception, traceback, hostname, timestamp)rr}r(hjhjubaubh)r}r(hUh%}r(h']h(]h)]h*]h,]uhj h]rh<)r}r(hX-Sent if the task failed, but will be retried.rhjhh!h#h@h%}r(h']h(]h)]h*]h,]uh.K)h]r h8X-Sent if the task failed, but will be retried.r!r"}r#(hjhjubaubah#hubeubeubeubh)r$}r%(hUhhhh!h#h$h%}r&(h']h(]h)]h*]r'hah,]r(hauh.K,h/hh]r)(h1)r*}r+(hh~hj$hh!h#h5h%}r,(h*]h)]h']h(]h,]hhyuh.K,h/hh]r-h8X Worker Eventsr.r/}r0(hh~hj*ubaubhQ)r1}r2(hUhj$hh!h#hTh%}r3(hX*h*]h)]h']h(]h,]uh.K.h/hh]r4(hW)r5}r6(hX\worker-online(hostname, timestamp) The worker has connected to the broker and is online. hj1hh!h#hlh%}r7(h']h(]h)]h*]h,]uh.Nh/hh]r8(h<)r9}r:(hX"worker-online(hostname, timestamp)r;hj5hh!h#h@h%}r<(h']h(]h)]h*]h,]uh.K.h]r=h8X"worker-online(hostname, timestamp)r>r?}r@(hj;hj9ubaubh)rA}rB(hUh%}rC(h']h(]h)]h*]h,]uhj5h]rDh<)rE}rF(hX5The worker has connected to the broker and is online.rGhjAhh!h#h@h%}rH(h']h(]h)]h*]h,]uh.K0h]rIh8X5The worker has connected to the broker and is online.rJrK}rL(hjGhjEubaubah#hubeubhW)rM}rN(hXworker-heartbeat(hostname, timestamp) Sent every minute, if the worker has not sent a heartbeat in 2 minutes, it's considered to be offline. hj1hh!h#hlh%}rO(h']h(]h)]h*]h,]uh.Nh/hh]rP(h<)rQ}rR(hX%worker-heartbeat(hostname, timestamp)rShjMhh!h#h@h%}rT(h']h(]h)]h*]h,]uh.K2h]rUh8X%worker-heartbeat(hostname, timestamp)rVrW}rX(hjShjQubaubh)rY}rZ(hUh%}r[(h']h(]h)]h*]h,]uhjMh]r\h<)r]}r^(hXfSent every minute, if the worker has not sent a heartbeat in 2 minutes, it's considered to be offline.r_hjYhh!h#h@h%}r`(h']h(]h)]h*]h,]uh.K4h]rah8XfSent every minute, if the worker has not sent a heartbeat in 2 minutes, it's considered to be offline.rbrc}rd(hj_hj]ubaubah#hubeubhW)re}rf(hXSworker-offline(hostname, timestamp) The worker has disconnected from the broker.hj1hh!h#hlh%}rg(h']h(]h)]h*]h,]uh.Nh/hh]rh(h<)ri}rj(hX#worker-offline(hostname, timestamp)rkhjehh!h#h@h%}rl(h']h(]h)]h*]h,]uh.K7h]rmh8X#worker-offline(hostname, timestamp)rnro}rp(hjkhjiubaubh)rq}rr(hUh%}rs(h']h(]h)]h*]h,]uhjeh]rth<)ru}rv(hX,The worker has disconnected from the broker.rwhjqhh!h#h@h%}rx(h']h(]h)]h*]h,]uh.K9h]ryh8X,The worker has disconnected from the broker.rzr{}r|(hjwhjuubaubah#hubeubeubeubeubahUU transformerr}NU footnote_refsr~}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh/hU current_linerNUtransform_messagesr]rUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh5NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUN/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/events.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]rUfile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhhhyhuhehahj$hhGuUsubstitution_namesr}rh#h/h%}r(h']h*]h)]Usourceh!h(]h,]uU footnotesr]rUrefidsr}rub.PKYDDЛ9+@+@6celery-2.1-archived/.doctrees/internals/worker.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X eta_scheduleqNX ready_queueqNXschedulecontrollerqNX introductionq NXinternals-workerq Xmediatorq NXinternals: the workerq NXdata structuresq NX componentsqNXtaskpoolqNXcarrotlistenerqNUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU eta-scheduleqhU ready-queueqhUschedulecontrollerqh U introductionqh Uinternals-workerqh Umediatorq h Uinternals-the-workerq!h Udata-structuresq"hU componentsq#hUtaskpoolq$hUcarrotlistenerq%hUcontentsq&uUchildrenq']q((cdocutils.nodes target q))q*}q+(U rawsourceq,X.. _internals-worker:Uparentq-hUsourceq.cdocutils.nodes reprunicode q/XN/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/worker.rstq0q1}q2bUtagnameq3Utargetq4U attributesq5}q6(Uidsq7]Ubackrefsq8]Udupnamesq9]Uclassesq:]Unamesq;]Urefidqhh']ubcdocutils.nodes section q?)q@}qA(h,Uh-hh.h1Uexpect_referenced_by_nameqB}qCh h*sh3UsectionqDh5}qE(h9]h:]h8]h7]qF(h!heh;]qG(h h euh=Kh>hUexpect_referenced_by_idqH}qIhh*sh']qJ(cdocutils.nodes title qK)qL}qM(h,XInternals: The workerqNh-h@h.h1h3UtitleqOh5}qP(h9]h:]h8]h7]h;]uh=Kh>hh']qQcdocutils.nodes Text qRXInternals: The workerqSqT}qU(h,hNh-hLubaubcdocutils.nodes topic qV)qW}qX(h,Uh-h@h.h1h3UtopicqYh5}qZ(h9]h:]q[(Ucontentsq\Ulocalq]eh8]h7]q^h&ah;]q_hauh=Kh>hh']q`cdocutils.nodes bullet_list qa)qb}qc(h,Uh-hWh.Nh3U bullet_listqdh5}qe(h9]h:]h8]h7]h;]uh=Nh>hh']qf(cdocutils.nodes list_item qg)qh}qi(h,Uh5}qj(h9]h:]h8]h7]h;]uh-hbh']qkcdocutils.nodes paragraph ql)qm}qn(h,Uh5}qo(h9]h:]h8]h7]h;]uh-hhh']qpcdocutils.nodes reference qq)qr}qs(h,Uh5}qt(h7]quUid1qvah8]h9]h:]h;]Urefidhuh-hmh']qwhRX Introductionqxqy}qz(h,X Introductionq{h-hrubah3U referenceq|ubah3U paragraphq}ubah3U list_itemq~ubhg)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hbh']q(hl)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhq)q}q(h,Uh5}q(h7]qUid2qah8]h9]h:]h;]Urefidh"uh-hh']qhRXData structuresqq}q(h,XData structuresqh-hubah3h|ubah3h}ubha)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']q(hg)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhl)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhq)q}q(h,Uh5}q(h7]qUid3qah8]h9]h:]h;]Urefidhuh-hh']qhRX ready_queueqq}q(h,X ready_queueqh-hubah3h|ubah3h}ubah3h~ubhg)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhl)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhq)q}q(h,Uh5}q(h7]qUid4qah8]h9]h:]h;]Urefidhuh-hh']qhRX eta_scheduleqq}q(h,X eta_scheduleqh-hubah3h|ubah3h}ubah3h~ubeh3hdubeh3h~ubhg)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hbh']q(hl)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhq)q}q(h,Uh5}q(h7]qUid5qah8]h9]h:]h;]Urefidh#uh-hh']qhRX ComponentsqDžq}q(h,X Componentsqh-hubah3h|ubah3h}ubha)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']q(hg)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhl)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhq)q}q(h,Uh5}q(h7]qUid6qah8]h9]h:]h;]Urefidh%uh-hh']qhRXCarrotListenerq݅q}q(h,XCarrotListenerqh-hubah3h|ubah3h}ubah3h~ubhg)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhl)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhq)q}q(h,Uh5}q(h7]qUid7qah8]h9]h:]h;]Urefidhuh-hh']qhRXScheduleControllerqq}q(h,XScheduleControllerqh-hubah3h|ubah3h}ubah3h~ubhg)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhl)q}q(h,Uh5}q(h9]h:]h8]h7]h;]uh-hh']qhq)q}q(h,Uh5}q(h7]qUid8qah8]h9]h:]h;]Urefidh uh-hh']rhRXMediatorrr}r(h,XMediatorrh-hubah3h|ubah3h}ubah3h~ubhg)r}r(h,Uh5}r(h9]h:]h8]h7]h;]uh-hh']rhl)r }r (h,Uh5}r (h9]h:]h8]h7]h;]uh-jh']r hq)r }r(h,Uh5}r(h7]rUid9rah8]h9]h:]h;]Urefidh$uh-j h']rhRXTaskPoolrr}r(h,XTaskPoolrh-j ubah3h|ubah3h}ubah3h~ubeh3hdubeh3h~ubeubaubh?)r}r(h,Uh-h@h.h1h3hDh5}r(h9]h:]h8]h7]rhah;]rh auh=K h>hh']r(hK)r}r(h,h{h-jh.h1h3hOh5}r(h7]h8]h9]h:]h;]hhh']r hRX Introductionr!r"}r#(h,h{h-jubaubhl)r$}r%(h,XThe worker consists of 4 main components: the broker listener, the scheduler, the mediator and the task pool. All these components runs in parallel working with two data structures: the ready queue and the ETA schedule.r&h-jh.h1h3h}h5}r'(h9]h:]h8]h7]h;]uh=K h>hh']r(hRXThe worker consists of 4 main components: the broker listener, the scheduler, the mediator and the task pool. All these components runs in parallel working with two data structures: the ready queue and the ETA schedule.r)r*}r+(h,j&h-j$ubaubcdocutils.nodes image r,)r-}r.(h,X1.. image:: ../images/Celery1.0-inside-worker.jpg h-jh.h1h3Uimager/h5}r0(UuriX/internals/../images/Celery1.0-inside-worker.jpgr1h7]h8]h9]h:]U candidatesr2}r3U*j1sh;]uh=Kh>hh']ubeubh?)r4}r5(h,Uh-h@h.h1h3hDh5}r6(h9]h:]h8]h7]r7h"ah;]r8h auh=Kh>hh']r9(hK)r:}r;(h,hh-j4h.h1h3hOh5}r<(h7]h8]h9]h:]h;]hhh']r=hRXData structuresr>r?}r@(h,hh-j:ubaubh?)rA}rB(h,Uh-j4h.h1h3hDh5}rC(h9]h:]h8]h7]rDhah;]rEhauh=Kh>hh']rF(hK)rG}rH(h,hh-jAh.h1h3hOh5}rI(h7]h8]h9]h:]h;]hhh']rJhRX ready_queuerKrL}rM(h,hh-jGubaubhl)rN}rO(h,XThe ready queue is either an instance of :class:`Queue.Queue`, or `celery.buckets.TaskBucket`. The latter if rate limiting is enabled.h-jAh.h1h3h}h5}rP(h9]h:]h8]h7]h;]uh=Kh>hh']rQ(hRX)The ready queue is either an instance of rRrS}rT(h,X)The ready queue is either an instance of h-jNubcsphinx.addnodes pending_xref rU)rV}rW(h,X:class:`Queue.Queue`rXh-jNh.h1h3U pending_xrefrYh5}rZ(UreftypeXclassUrefwarnr[U reftargetr\X Queue.QueueU refdomainXpyr]h7]h8]U refexplicith9]h:]h;]Urefdocr^Xinternals/workerr_Upy:classr`NU py:moduleraNuh=Kh']rbcdocutils.nodes literal rc)rd}re(h,jXh5}rf(h9]h:]rg(Uxrefrhj]Xpy-classrieh8]h7]h;]uh-jVh']rjhRX Queue.Queuerkrl}rm(h,Uh-jdubah3UliteralrnubaubhRX, or rorp}rq(h,X, or h-jNubcdocutils.nodes title_reference rr)rs}rt(h,X`celery.buckets.TaskBucket`h5}ru(h9]h:]h8]h7]h;]uh-jNh']rvhRXcelery.buckets.TaskBucketrwrx}ry(h,Uh-jsubah3Utitle_referencerzubhRX). The latter if rate limiting is enabled.r{r|}r}(h,X). The latter if rate limiting is enabled.h-jNubeubeubh?)r~}r(h,Uh-j4h.h1h3hDh5}r(h9]h:]h8]h7]rhah;]rhauh=Kh>hh']r(hK)r}r(h,hh-j~h.h1h3hOh5}r(h7]h8]h9]h:]h;]hhh']rhRX eta_schedulerr}r(h,hh-jubaubhl)r}r(h,X0The ETA schedule is a heap queue sorted by time.rh-j~h.h1h3h}h5}r(h9]h:]h8]h7]h;]uh=Kh>hh']rhRX0The ETA schedule is a heap queue sorted by time.rr}r(h,jh-jubaubeubeubh?)r}r(h,Uh-h@h.h1h3hDh5}r(h9]h:]h8]h7]rh#ah;]rhauh=K#h>hh']r(hK)r}r(h,hh-jh.h1h3hOh5}r(h7]h8]h9]h:]h;]hhh']rhRX Componentsrr}r(h,hh-jubaubh?)r}r(h,Uh-jh.h1h3hDh5}r(h9]h:]h8]h7]rh%ah;]rhauh=K&h>hh']r(hK)r}r(h,hh-jh.h1h3hOh5}r(h7]h8]h9]h:]h;]hhh']rhRXCarrotListenerrr}r(h,hh-jubaubhl)r}r(h,X3Receives messages from the broker using ``carrot``.rh-jh.h1h3h}h5}r(h9]h:]h8]h7]h;]uh=K(h>hh']r(hRX(Receives messages from the broker using rr}r(h,X(Receives messages from the broker using h-jubjc)r}r(h,X ``carrot``h5}r(h9]h:]h8]h7]h;]uh-jh']rhRXcarrotrr}r(h,Uh-jubah3jnubhRX.r}r(h,X.h-jubeubhl)r}r(h,X_When a message is received it's converted into a :class:`celery.worker.job.TaskRequest` object.h-jh.h1h3h}h5}r(h9]h:]h8]h7]h;]uh=K*h>hh']r(hRX1When a message is received it's converted into a rr}r(h,X1When a message is received it's converted into a h-jubjU)r}r(h,X&:class:`celery.worker.job.TaskRequest`rh-jh.h1h3jYh5}r(UreftypeXclassj[j\Xcelery.worker.job.TaskRequestU refdomainXpyrh7]h8]U refexplicith9]h:]h;]j^j_j`NjaNuh=K*h']rjc)r}r(h,jh5}r(h9]h:]r(jhjXpy-classreh8]h7]h;]uh-jh']rhRXcelery.worker.job.TaskRequestrr}r(h,Uh-jubah3jnubaubhRX object.rr}r(h,X object.h-jubeubhl)r}r(h,XTasks with an ETA are entered into the ``eta_schedule``, messages that can be immediately processed are moved directly to the ``ready_queue``.h-jh.h1h3h}h5}r(h9]h:]h8]h7]h;]uh=K-h>hh']r(hRX'Tasks with an ETA are entered into the rr}r(h,X'Tasks with an ETA are entered into the h-jubjc)r}r(h,X``eta_schedule``h5}r(h9]h:]h8]h7]h;]uh-jh']rhRX eta_schedulerr}r(h,Uh-jubah3jnubhRXG, messages that can be immediately processed are moved directly to the rr}r(h,XG, messages that can be immediately processed are moved directly to the h-jubjc)r}r(h,X``ready_queue``h5}r(h9]h:]h8]h7]h;]uh-jh']rhRX ready_queuerr}r(h,Uh-jubah3jnubhRX.r}r(h,X.h-jubeubeubh?)r}r(h,Uh-jh.h1h3hDh5}r(h9]h:]h8]h7]rhah;]rhauh=K1h>hh']r(hK)r}r(h,hh-jh.h1h3hOh5}r(h7]h8]h9]h:]h;]hhh']rhRXScheduleControllerrr}r(h,hh-jubaubhl)r}r(h,XThe schedule controller is running the ``eta_schedule``. If the scheduled tasks eta has passed it is moved to the ``ready_queue``, otherwise the thread sleeps until the eta is met (remember that the schedule is sorted by time).h-jh.h1h3h}h5}r(h9]h:]h8]h7]h;]uh=K3h>hh']r(hRX'The schedule controller is running the rr}r(h,X'The schedule controller is running the h-jubjc)r}r(h,X``eta_schedule``h5}r(h9]h:]h8]h7]h;]uh-jh']rhRX eta_scheduler r }r (h,Uh-jubah3jnubhRX;. If the scheduled tasks eta has passed it is moved to the r r }r(h,X;. If the scheduled tasks eta has passed it is moved to the h-jubjc)r}r(h,X``ready_queue``h5}r(h9]h:]h8]h7]h;]uh-jh']rhRX ready_queuerr}r(h,Uh-jubah3jnubhRXb, otherwise the thread sleeps until the eta is met (remember that the schedule is sorted by time).rr}r(h,Xb, otherwise the thread sleeps until the eta is met (remember that the schedule is sorted by time).h-jubeubeubh?)r}r(h,Uh-jh.h1h3hDh5}r(h9]h:]h8]h7]rh ah;]rh auh=K9h>hh']r(hK)r}r (h,jh-jh.h1h3hOh5}r!(h7]h8]h9]h:]h;]hhh']r"hRXMediatorr#r$}r%(h,jh-jubaubhl)r&}r'(h,XThe mediator simply moves tasks in the ``ready_queue`` over to the task pool for execution using :meth:`celery.worker.job.TaskRequest.execute_using_pool`.h-jh.h1h3h}h5}r((h9]h:]h8]h7]h;]uh=K:h>hh']r)(hRX'The mediator simply moves tasks in the r*r+}r,(h,X'The mediator simply moves tasks in the h-j&ubjc)r-}r.(h,X``ready_queue``h5}r/(h9]h:]h8]h7]h;]uh-j&h']r0hRX ready_queuer1r2}r3(h,Uh-j-ubah3jnubhRX+ over to the task pool for execution using r4r5}r6(h,X+ over to the task pool for execution using h-j&ubjU)r7}r8(h,X8:meth:`celery.worker.job.TaskRequest.execute_using_pool`r9h-j&h.h1h3jYh5}r:(UreftypeXmethj[j\X0celery.worker.job.TaskRequest.execute_using_poolU refdomainXpyr;h7]h8]U refexplicith9]h:]h;]j^j_j`NjaNuh=K:h']r<jc)r=}r>(h,j9h5}r?(h9]h:]r@(jhj;Xpy-methrAeh8]h7]h;]uh-j7h']rBhRX2celery.worker.job.TaskRequest.execute_using_pool()rCrD}rE(h,Uh-j=ubah3jnubaubhRX.rF}rG(h,X.h-j&ubeubeubh?)rH}rI(h,Uh-jh.h1h3hDh5}rJ(h9]h:]h8]h7]rKh$ah;]rLhauh=K?h>hh']rM(hK)rN}rO(h,jh-jHh.h1h3hOh5}rP(h7]h8]h9]h:]h;]hhh']rQhRXTaskPoolrRrS}rT(h,jh-jNubaubhl)rU}rV(h,XThis is a slightly modified :class:`multiprocessing.Pool`. It mostly works the same way, except it makes sure all of the workers are running at all times. If a worker is missing, it replaces it with a new one.h-jHh.h1h3h}h5}rW(h9]h:]h8]h7]h;]uh=KAh>hh']rX(hRXThis is a slightly modified rYrZ}r[(h,XThis is a slightly modified h-jUubjU)r\}r](h,X:class:`multiprocessing.Pool`r^h-jUh.h1h3jYh5}r_(UreftypeXclassj[j\Xmultiprocessing.PoolU refdomainXpyr`h7]h8]U refexplicith9]h:]h;]j^j_j`NjaNuh=KAh']rajc)rb}rc(h,j^h5}rd(h9]h:]re(jhj`Xpy-classrfeh8]h7]h;]uh-j\h']rghRXmultiprocessing.Poolrhri}rj(h,Uh-jbubah3jnubaubhRX. It mostly works the same way, except it makes sure all of the workers are running at all times. If a worker is missing, it replaces it with a new one.rkrl}rm(h,X. It mostly works the same way, except it makes sure all of the workers are running at all times. If a worker is missing, it replaces it with a new one.h-jUubeubeubeubeubeh,UU transformerrnNU footnote_refsro}rpUrefnamesrq}rrUsymbol_footnotesrs]rtUautofootnote_refsru]rvUsymbol_footnote_refsrw]rxU citationsry]rzh>hU current_liner{NUtransform_messagesr|]r}cdocutils.nodes system_message r~)r}r(h,Uh5}r(h9]UlevelKh7]h8]Usourceh1h:]h;]UlineKUtypeUINFOruh']rhl)r}r(h,Uh5}r(h9]h:]h8]h7]h;]uh-jh']rhRX6Hyperlink target "internals-worker" is not referenced.rr}r(h,Uh-jubah3h}ubah3Usystem_messagerubaUreporterrNUid_startrK U autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhONUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUN/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/worker.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]rUfile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjh!h@hhhhh jhjhh@hhhhhhhhhvhrh"j4hj~h#jh$jHhhjj h%jhjAh&hWuUsubstitution_namesr}rh3h>h5}r(h9]h7]h8]Usourceh1h:]h;]uU footnotesr]rUrefidsr}rh]rh*asub.PKYDDe;celery-2.1-archived/.doctrees/internals/moduleindex.doctreecdocutils.nodes document q)q}q(U nametypesq}q(XtasksqNXcelery.backends.baseqNXcelery.executeqNXcelery.worker.revokeq NX celerybeatq NXcelery.utils.infoq NUcontentsq NXcelery.task.builtinsq NX celery.eventsqNX configurationqNXcelery.worker.bucketsqNX)celery.loaders.base - loader base classesqNXloadersqNX celery.logqNXcelery.backends.databaseqNX celery.utilsqNXcelery.worker.heartbeatqNXinternals-module-overviewqXeventsqNXcelery.backendsqNXcelery.task.controlqNXcelery.worker.listenerqNX celery.workerqNXcelery.worker.poolqNXcelery.datastructuresqNXcelery.messagingqNXcelery.decoratorsq NXworkerq!NX miscellaneousq"NXcelery.backends.amqpq#NXcelery.task.httpq$NXcelery.task.baseq%NXcelery.loadersq&NXcelery.exceptionsq'NXloggingq(NX executionq)NXcelery.worker.controlq*NX celery.taskq+NX module indexq,NXcelery.worker.jobq-NXcelery.platformq.NXcelery.utils.patchq/NX celery.confq0NXcelery.registryq1NX celery.resultq2NX celery.beatq3NXcelery.worker.schedulerq4NXresult backendsq5NXcelery.worker.controllersq6NX celery.statesq7NXcelery.execute.traceq8NX messagingq9NX+celery.loaders.default - the default loaderq:NXcelery.utils.compatq;NuUsubstitution_defsq<}q=Uparse_messagesq>]q?Ucurrent_sourceq@NU decorationqANUautofootnote_startqBKUnameidsqC}qD(hUtasksqEhUcelery-backends-baseqFhUcelery-executeqGh Ucelery-worker-revokeqHh U celerybeatqIh Ucelery-utils-infoqJh UcontentsqKh Ucelery-task-builtinsqLhU celery-eventsqMhU configurationqNhUcelery-worker-bucketsqOhU'celery-loaders-base-loader-base-classesqPhUloadersqQhU celery-logqRhUcelery-backends-databaseqShU celery-utilsqThUcelery-worker-heartbeatqUhUinternals-module-overviewqVhUeventsqWhUcelery-backendsqXhUcelery-task-controlqYhUcelery-worker-listenerqZhU celery-workerq[hUcelery-worker-poolq\hUcelery-datastructuresq]hUcelery-messagingq^h Ucelery-decoratorsq_h!Uworkerq`h"U miscellaneousqah#Ucelery-backends-amqpqbh$Ucelery-task-httpqch%Ucelery-task-baseqdh&Ucelery-loadersqeh'Ucelery-exceptionsqfh(Uloggingqgh)U executionqhh*Ucelery-worker-controlqih+U celery-taskqjh,U module-indexqkh-Ucelery-worker-jobqlh.Ucelery-platformqmh/Ucelery-utils-patchqnh0U celery-confqoh1Ucelery-registryqph2U celery-resultqqh3U celery-beatqrh4Ucelery-worker-schedulerqsh5Uresult-backendsqth6Ucelery-worker-controllersquh7U celery-statesqvh8Ucelery-execute-traceqwh9U messagingqxh:U)celery-loaders-default-the-default-loaderqyh;Ucelery-utils-compatqzuUchildrenq{]q|(cdocutils.nodes target q})q~}q(U rawsourceqX.. _internals-module-overview:UparentqhUsourceqcdocutils.nodes reprunicode qXS/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/moduleindex.rstqq}qbUtagnameqUtargetqU attributesq}q(Uidsq]Ubackrefsq]Udupnamesq]Uclassesq]Unamesq]UrefidqhVuUlineqKUdocumentqhh{]ubcdocutils.nodes section q)q}q(hUhhhhUexpect_referenced_by_nameq}qhh~shUsectionqh}q(h]h]h]h]q(hkhVeh]q(h,heuhKhhUexpect_referenced_by_idq}qhVh~sh{]q(cdocutils.nodes title q)q}q(hX Module IndexqhhhhhUtitleqh}q(h]h]h]h]h]uhKhhh{]qcdocutils.nodes Text qX Module Indexqq}q(hhhhubaubcdocutils.nodes topic q)q}q(hUhhhhhUtopicqh}q(h]h]q(UcontentsqUlocalqeh]h]qhKah]qh auhKhhh{]qcdocutils.nodes bullet_list q)q}q(hUhhhNhU bullet_listqh}q(h]h]h]h]h]uhNhhh{]q(cdocutils.nodes list_item q)q}q(hUh}q(h]h]h]h]h]uhhh{]q(cdocutils.nodes paragraph q)q}q(hUh}q(h]h]h]h]h]uhhh{]qcdocutils.nodes reference q)q}q(hUh}q(h]qUid1qah]h]h]h]Urefidh`uhhh{]qhXWorkerq̅q}q(hXWorkerqhhubahU referencequbahU paragraphqubh)q}q(hUh}q(h]h]h]h]h]uhhh{]q(h)q}q(hUh}q(h]h]h]h]h]uhhh{]qh)q}q(hUh}q(h]h]h]h]h]uhhh{]qh)q}q(hUh}q(h]qUid2qah]h]h]h]Urefidh[uhhh{]qhX celery.workerq䅁q}q(hX celery.workerqhhubahhubahhubahU list_itemqubh)q}q(hUh}q(h]h]h]h]h]uhhh{]qh)q}q(hUh}q(h]h]h]h]h]uhhh{]qh)q}q(hUh}q(h]qUid3qah]h]h]h]Urefidhluhhh{]qhXcelery.worker.jobqq}q(hXcelery.worker.jobqhhubahhubahhubahhubh)q}q(hUh}q(h]h]h]h]h]uhhh{]qh)q}r(hUh}r(h]h]h]h]h]uhhh{]rh)r}r(hUh}r(h]rUid4rah]h]h]h]Urefidh\uhhh{]rhXcelery.worker.poolr r }r (hXcelery.worker.poolr hjubahhubahhubahhubh)r }r(hUh}r(h]h]h]h]h]uhhh{]rh)r}r(hUh}r(h]h]h]h]h]uhj h{]rh)r}r(hUh}r(h]rUid5rah]h]h]h]UrefidhZuhjh{]rhXcelery.worker.listenerrr}r(hXcelery.worker.listenerrhjubahhubahhubahhubh)r}r (hUh}r!(h]h]h]h]h]uhhh{]r"h)r#}r$(hUh}r%(h]h]h]h]h]uhjh{]r&h)r'}r((hUh}r)(h]r*Uid6r+ah]h]h]h]Urefidhuuhj#h{]r,hXcelery.worker.controllersr-r.}r/(hXcelery.worker.controllersr0hj'ubahhubahhubahhubh)r1}r2(hUh}r3(h]h]h]h]h]uhhh{]r4h)r5}r6(hUh}r7(h]h]h]h]h]uhj1h{]r8h)r9}r:(hUh}r;(h]r<Uid7r=ah]h]h]h]Urefidhsuhj5h{]r>hXcelery.worker.schedulerr?r@}rA(hXcelery.worker.schedulerrBhj9ubahhubahhubahhubh)rC}rD(hUh}rE(h]h]h]h]h]uhhh{]rFh)rG}rH(hUh}rI(h]h]h]h]h]uhjCh{]rJh)rK}rL(hUh}rM(h]rNUid8rOah]h]h]h]UrefidhOuhjGh{]rPhXcelery.worker.bucketsrQrR}rS(hXcelery.worker.bucketsrThjKubahhubahhubahhubh)rU}rV(hUh}rW(h]h]h]h]h]uhhh{]rXh)rY}rZ(hUh}r[(h]h]h]h]h]uhjUh{]r\h)r]}r^(hUh}r_(h]r`Uid9raah]h]h]h]UrefidhUuhjYh{]rbhXcelery.worker.heartbeatrcrd}re(hXcelery.worker.heartbeatrfhj]ubahhubahhubahhubh)rg}rh(hUh}ri(h]h]h]h]h]uhhh{]rjh)rk}rl(hUh}rm(h]h]h]h]h]uhjgh{]rnh)ro}rp(hUh}rq(h]rrUid10rsah]h]h]h]UrefidhHuhjkh{]rthXcelery.worker.revokerurv}rw(hXcelery.worker.revokerxhjoubahhubahhubahhubh)ry}rz(hUh}r{(h]h]h]h]h]uhhh{]r|h)r}}r~(hUh}r(h]h]h]h]h]uhjyh{]rh)r}r(hUh}r(h]rUid11rah]h]h]h]Urefidhiuhj}h{]rhXcelery.worker.controlrr}r(hXcelery.worker.controlrhjubahhubahhubahhubehhubehhubh)r}r(hUh}r(h]h]h]h]h]uhhh{]r(h)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid12rah]h]h]h]UrefidhEuhjh{]rhXTasksrr}r(hXTasksrhjubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]r(h)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid13rah]h]h]h]Urefidh_uhjh{]rhXcelery.decoratorsrr}r(hXcelery.decoratorsrhjubahhubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid14rah]h]h]h]Urefidhpuhjh{]rhXcelery.registryrr}r(hXcelery.registryrhjubahhubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid15rah]h]h]h]Urefidhjuhjh{]rhX celery.taskrr}r(hX celery.taskrhjubahhubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid16rah]h]h]h]Urefidhduhjh{]rhXcelery.task.baserr}r(hXcelery.task.baserhjubahhubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid17rah]h]h]h]Urefidhcuhjh{]rhXcelery.task.httprr}r(hXcelery.task.httprhjubahhubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid18rah]h]h]h]UrefidhYuhjh{]rhXcelery.task.controlr r }r (hXcelery.task.controlr hjubahhubahhubahhubh)r }r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhj h{]rh)r}r(hUh}r(h]rUid19rah]h]h]h]UrefidhLuhjh{]rhXcelery.task.builtinsrr}r(hXcelery.task.builtinsrhjubahhubahhubahhubehhubehhubh)r}r (hUh}r!(h]h]h]h]h]uhhh{]r"(h)r#}r$(hUh}r%(h]h]h]h]h]uhjh{]r&h)r'}r((hUh}r)(h]r*Uid20r+ah]h]h]h]Urefidhhuhj#h{]r,hX Executionr-r.}r/(hX Executionr0hj'ubahhubahhubh)r1}r2(hUh}r3(h]h]h]h]h]uhjh{]r4(h)r5}r6(hUh}r7(h]h]h]h]h]uhj1h{]r8h)r9}r:(hUh}r;(h]h]h]h]h]uhj5h{]r<h)r=}r>(hUh}r?(h]r@Uid21rAah]h]h]h]UrefidhGuhj9h{]rBhXcelery.executerCrD}rE(hXcelery.executerFhj=ubahhubahhubahhubh)rG}rH(hUh}rI(h]h]h]h]h]uhj1h{]rJh)rK}rL(hUh}rM(h]h]h]h]h]uhjGh{]rNh)rO}rP(hUh}rQ(h]rRUid22rSah]h]h]h]UrefidhwuhjKh{]rThXcelery.execute.tracerUrV}rW(hXcelery.execute.tracerXhjOubahhubahhubahhubh)rY}rZ(hUh}r[(h]h]h]h]h]uhj1h{]r\h)r]}r^(hUh}r_(h]h]h]h]h]uhjYh{]r`h)ra}rb(hUh}rc(h]rdUid23reah]h]h]h]Urefidhquhj]h{]rfhX celery.resultrgrh}ri(hX celery.resultrjhjaubahhubahhubahhubh)rk}rl(hUh}rm(h]h]h]h]h]uhj1h{]rnh)ro}rp(hUh}rq(h]h]h]h]h]uhjkh{]rrh)rs}rt(hUh}ru(h]rvUid24rwah]h]h]h]Urefidhvuhjoh{]rxhX celery.statesryrz}r{(hX celery.statesr|hjsubahhubahhubahhubehhubehhubh)r}}r~(hUh}r(h]h]h]h]h]uhhh{]r(h)r}r(hUh}r(h]h]h]h]h]uhj}h{]rh)r}r(hUh}r(h]rUid25rah]h]h]h]Urefidhxuhjh{]rhX Messagingrr}r(hX Messagingrhjubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhj}h{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid26rah]h]h]h]Urefidh^uhjh{]rhXcelery.messagingrr}r(hXcelery.messagingrhjubahhubahhubahhubahhubehhubh)r}r(hUh}r(h]h]h]h]h]uhhh{]r(h)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid27rah]h]h]h]Urefidhtuhjh{]rhXResult backendsrr}r(hXResult backendsrhjubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]r(h)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid28rah]h]h]h]UrefidhXuhjh{]rhXcelery.backendsrr}r(hXcelery.backendsrhjubahhubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid29rah]h]h]h]UrefidhFuhjh{]rhXcelery.backends.baserr}r(hXcelery.backends.baserhjubahhubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid30rah]h]h]h]Urefidhbuhjh{]rhXcelery.backends.amqprr}r(hXcelery.backends.amqprhjubahhubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid31rah]h]h]h]UrefidhSuhjh{]rhXcelery.backends.databaserr}r(hXcelery.backends.databaserhjubahhubahhubahhubehhubehhubh)r}r(hUh}r(h]h]h]h]h]uhhh{]r(h)r}r(hUh}r (h]h]h]h]h]uhjh{]r h)r }r (hUh}r (h]rUid32rah]h]h]h]UrefidhQuhjh{]rhXLoadersrr}r(hXLoadersrhj ubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]r(h)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]r h)r!}r"(hUh}r#(h]r$Uid33r%ah]h]h]h]Urefidheuhjh{]r&hXcelery.loadersr'r(}r)(hXcelery.loadersr*hj!ubahhubahhubahhubh)r+}r,(hUh}r-(h]h]h]h]h]uhjh{]r.h)r/}r0(hUh}r1(h]h]h]h]h]uhj+h{]r2h)r3}r4(hUh}r5(h]r6Uid34r7ah]h]h]h]UrefidhPuhj/h{]r8hX)celery.loaders.base - Loader base classesr9r:}r;(hX)celery.loaders.base - Loader base classesr<hj3ubahhubahhubahhubh)r=}r>(hUh}r?(h]h]h]h]h]uhjh{]r@h)rA}rB(hUh}rC(h]h]h]h]h]uhj=h{]rDh)rE}rF(hUh}rG(h]rHUid35rIah]h]h]h]UrefidhyuhjAh{]rJhX+celery.loaders.default - The default loaderrKrL}rM(hX+celery.loaders.default - The default loaderrNhjEubahhubahhubahhubehhubehhubh)rO}rP(hUh}rQ(h]h]h]h]h]uhhh{]rR(h)rS}rT(hUh}rU(h]h]h]h]h]uhjOh{]rVh)rW}rX(hUh}rY(h]rZUid36r[ah]h]h]h]UrefidhIuhjSh{]r\hX CeleryBeatr]r^}r_(hX CeleryBeatr`hjWubahhubahhubh)ra}rb(hUh}rc(h]h]h]h]h]uhjOh{]rdh)re}rf(hUh}rg(h]h]h]h]h]uhjah{]rhh)ri}rj(hUh}rk(h]h]h]h]h]uhjeh{]rlh)rm}rn(hUh}ro(h]rpUid37rqah]h]h]h]Urefidhruhjih{]rrhX celery.beatrsrt}ru(hX celery.beatrvhjmubahhubahhubahhubahhubehhubh)rw}rx(hUh}ry(h]h]h]h]h]uhhh{]rz(h)r{}r|(hUh}r}(h]h]h]h]h]uhjwh{]r~h)r}r(hUh}r(h]rUid38rah]h]h]h]UrefidhWuhj{h{]rhXEventsrr}r(hXEventsrhjubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjwh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid39rah]h]h]h]UrefidhMuhjh{]rhX celery.eventsrr}r(hX celery.eventsrhjubahhubahhubahhubahhubehhubh)r}r(hUh}r(h]h]h]h]h]uhhh{]r(h)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid40rah]h]h]h]Urefidhguhjh{]rhXLoggingrr}r(hXLoggingrhjubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]r(h)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid41rah]h]h]h]UrefidhRuhjh{]rhX celery.logrr}r(hX celery.logrhjubahhubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid42rah]h]h]h]Urefidhnuhjh{]rhXcelery.utils.patchrr}r(hXcelery.utils.patchrhjubahhubahhubahhubehhubehhubh)r}r(hUh}r(h]h]h]h]h]uhhh{]r(h)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid43rah]h]h]h]UrefidhNuhjh{]rhX Configurationrr}r(hX Configurationrhjubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]rUid44rah]h]h]h]Urefidhouhjh{]rhX celery.confrr}r(hX celery.confrhjubahhubahhubahhubahhubehhubh)r}r(hUh}r(h]h]h]h]h]uhhh{]r(h)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r }r (hUh}r (h]r Uid45r ah]h]h]h]Urefidhauhjh{]rhX Miscellaneousrr}r(hX Miscellaneousrhj ubahhubahhubh)r}r(hUh}r(h]h]h]h]h]uhjh{]r(h)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rh)r}r (hUh}r!(h]r"Uid46r#ah]h]h]h]Urefidh]uhjh{]r$hXcelery.datastructuresr%r&}r'(hXcelery.datastructuresr(hjubahhubahhubahhubh)r)}r*(hUh}r+(h]h]h]h]h]uhjh{]r,h)r-}r.(hUh}r/(h]h]h]h]h]uhj)h{]r0h)r1}r2(hUh}r3(h]r4Uid47r5ah]h]h]h]Urefidhfuhj-h{]r6hXcelery.exceptionsr7r8}r9(hXcelery.exceptionsr:hj1ubahhubahhubahhubh)r;}r<(hUh}r=(h]h]h]h]h]uhjh{]r>h)r?}r@(hUh}rA(h]h]h]h]h]uhj;h{]rBh)rC}rD(hUh}rE(h]rFUid48rGah]h]h]h]Urefidhmuhj?h{]rHhXcelery.platformrIrJ}rK(hXcelery.platformrLhjCubahhubahhubahhubh)rM}rN(hUh}rO(h]h]h]h]h]uhjh{]rPh)rQ}rR(hUh}rS(h]h]h]h]h]uhjMh{]rTh)rU}rV(hUh}rW(h]rXUid49rYah]h]h]h]UrefidhTuhjQh{]rZhX celery.utilsr[r\}r](hX celery.utilsr^hjUubahhubahhubahhubh)r_}r`(hUh}ra(h]h]h]h]h]uhjh{]rbh)rc}rd(hUh}re(h]h]h]h]h]uhj_h{]rfh)rg}rh(hUh}ri(h]rjUid50rkah]h]h]h]UrefidhJuhjch{]rlhXcelery.utils.informrn}ro(hXcelery.utils.inforphjgubahhubahhubahhubh)rq}rr(hUh}rs(h]h]h]h]h]uhjh{]rth)ru}rv(hUh}rw(h]h]h]h]h]uhjqh{]rxh)ry}rz(hUh}r{(h]r|Uid51r}ah]h]h]h]Urefidhzuhjuh{]r~hXcelery.utils.compatrr}r(hXcelery.utils.compatrhjyubahhubahhubahhubehhubehhubeubaubh)r}r(hUhhhhhhh}r(h]h]h]h]rh`ah]rh!auhK hhh{]r(h)r}r(hhhjhhhhh}r(h]h]h]h]h]hhuhK hhh{]rhXWorkerrr}r(hhhjubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rh[ah]rhauhKhhh{]r(h)r}r(hhhjhhhhh}r(h]h]h]h]h]hhuhKhhh{]rhX celery.workerrr}r(hhhjubaubh)r}r(hUhjhhhhh}r(UbulletrX*h]h]h]h]h]uhKhhh{]rh)r}r(hX':class:`~celery.worker.WorkController` hjhhhhh}r(h]h]h]h]h]uhNhhh{]rh)r}r(hX&:class:`~celery.worker.WorkController`rhjhhhhh}r(h]h]h]h]h]uhKh{]rcsphinx.addnodes pending_xref r)r}r(hjhjhhhU pending_xrefrh}r(UreftypeXclassUrefwarnrU reftargetrXcelery.worker.WorkControllerU refdomainXpyrh]h]U refexplicith]h]h]UrefdocrXinternals/moduleindexrUpy:classrNU py:modulerNuhKh{]rcdocutils.nodes literal r)r}r(hjh}r(h]h]r(UxrefrjXpy-classreh]h]h]uhjh{]rhXWorkControllerrr}r(hUhjubahUliteralrubaubaubaubaubh)r}r(hXThis is the worker's main process. It starts and stops all the components required by the worker: Pool, Mediator, Scheduler, ClockService, and Listener.rhjhhhhh}r(h]h]h]h]h]uhKhhh{]rhXThis is the worker's main process. It starts and stops all the components required by the worker: Pool, Mediator, Scheduler, ClockService, and Listener.rr}r(hjhjubaubh)r}r(hUhjhhhhh}r(jX*h]h]h]h]h]uhKhhh{]rh)r}r(hX+:func:`~celery.worker.process_initializer` hjhhhhh}r(h]h]h]h]h]uhNhhh{]rh)r}r(hX*:func:`~celery.worker.process_initializer`rhjhhhhh}r(h]h]h]h]h]uhKh{]rj)r}r(hjhjhhhjh}r(UreftypeXfuncjjX!celery.worker.process_initializerU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhKh{]rj)r}r(hjh}r(h]h]r(jjXpy-funcreh]h]h]uhjh{]rhXprocess_initializer()rr}r(hUhjubahjubaubaubaubaubh)r}r(hXrThis is the function used to initialize pool processes. It sets up loggers and imports required task modules, etc.rhjhhhhh}r(h]h]h]h]h]uhKhhh{]rhXrThis is the function used to initialize pool processes. It sets up loggers and imports required task modules, etc.rr}r(hjhjubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhlah]rh-auhKhhh{]r(h)r}r(hhhjhhhhh}r(h]h]h]h]h]hhuhKhhh{]rhXcelery.worker.jobrr}r(hhhjubaubh)r}r(hUhjhhhhh}r(jX*h]h]h]h]h]uhKhhh{]rh)r}r(hX(:class:`~celery.worker.job.TaskRequest` hjhhhhh}r(h]h]h]h]h]uhNhhh{]rh)r}r(hX':class:`~celery.worker.job.TaskRequest`rhjhhhhh}r(h]h]h]h]h]uhKh{]rj)r }r (hjhjhhhjh}r (UreftypeXclassjjXcelery.worker.job.TaskRequestU refdomainXpyr h]h]U refexplicith]h]h]jjjNjNuhKh{]r j)r}r(hjh}r(h]h]r(jj Xpy-classreh]h]h]uhj h{]rhX TaskRequestrr}r(hUhjubahjubaubaubaubaubh)r}r(hXA request to execute a task. Contains the task name, id, args and kwargs. Handles acknowledgement, execution, writing results to backends and error handling (including error e-mails)rhjhhhhh}r(h]h]h]h]h]uhKhhh{]rhXA request to execute a task. Contains the task name, id, args and kwargs. Handles acknowledgement, execution, writing results to backends and error handling (including error e-mails)rr}r(hjhjubaubeubh)r}r (hUhjhhhhh}r!(h]h]h]h]r"h\ah]r#hauhK$hhh{]r$h)r%}r&(hj hjhhhhh}r'(h]h]h]h]h]hjuhK$hhh{]r(hXcelery.worker.poolr)r*}r+(hj hj%ubaubaubh)r,}r-(hUhjhhhhh}r.(h]h]h]h]r/hZah]r0hauhK'hhh{]r1h)r2}r3(hjhj,hhhhh}r4(h]h]h]h]h]hjuhK'hhh{]r5hXcelery.worker.listenerr6r7}r8(hjhj2ubaubaubh)r9}r:(hUhjhhhhh}r;(h]h]h]h]r<huah]r=h6auhK*hhh{]r>h)r?}r@(hj0hj9hhhhh}rA(h]h]h]h]h]hj+uhK*hhh{]rBhXcelery.worker.controllersrCrD}rE(hj0hj?ubaubaubh)rF}rG(hUhjhhhhh}rH(h]h]h]h]rIhsah]rJh4auhK-hhh{]rKh)rL}rM(hjBhjFhhhhh}rN(h]h]h]h]h]hj=uhK-hhh{]rOhXcelery.worker.schedulerrPrQ}rR(hjBhjLubaubaubh)rS}rT(hUhjhhhhh}rU(h]h]h]h]rVhOah]rWhauhK0hhh{]rXh)rY}rZ(hjThjShhhhh}r[(h]h]h]h]h]hjOuhK0hhh{]r\hXcelery.worker.bucketsr]r^}r_(hjThjYubaubaubh)r`}ra(hUhjhhhhh}rb(h]h]h]h]rchUah]rdhauhK3hhh{]reh)rf}rg(hjfhj`hhhhh}rh(h]h]h]h]h]hjauhK3hhh{]rihXcelery.worker.heartbeatrjrk}rl(hjfhjfubaubaubh)rm}rn(hUhjhhhhh}ro(h]h]h]h]rphHah]rqh auhK6hhh{]rrh)rs}rt(hjxhjmhhhhh}ru(h]h]h]h]h]hjsuhK6hhh{]rvhXcelery.worker.revokerwrx}ry(hjxhjsubaubaubh)rz}r{(hUhjhhhhh}r|(h]h]h]h]r}hiah]r~h*auhK9hhh{]r(h)r}r(hjhjzhhhhh}r(h]h]h]h]h]hjuhK9hhh{]rhXcelery.worker.controlrr}r(hjhjubaubh)r}r(hUhjzhhhhh}r(jX*h]h]h]h]h]uhK;hhh{]r(h)r}r(hXcelery.worker.registry hjhhhhh}r(h]h]h]h]h]uhNhhh{]rh)r}r(hXcelery.worker.registryrhjhhhhh}r(h]h]h]h]h]uhK;h{]rhXcelery.worker.registryrr}r(hjhjubaubaubh)r}r(hXcelery.worker.builtins hjhhhhh}r(h]h]h]h]h]uhNhhh{]rh)r}r(hXcelery.worker.builtinsrhjhhhhh}r(h]h]h]h]h]uhK=h{]rhXcelery.worker.builtinsrr}r(hjhjubaubaubeubeubeubh)r}r(hUhhhhhhh}r(h]h]h]h]rhEah]rhauhKAhhh{]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKAhhh{]rhXTasksrr}r(hjhjubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rh_ah]rh auhKDhhh{]rh)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKDhhh{]rhXcelery.decoratorsrr}r(hjhjubaubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rhpah]rh1auhKGhhh{]rh)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKGhhh{]rhXcelery.registryrr}r(hjhjubaubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rhjah]rh+auhKJhhh{]rh)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKJhhh{]rhX celery.taskrr}r(hjhjubaubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rhdah]rh%auhKMhhh{]rh)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKMhhh{]rhXcelery.task.baserr}r(hjhjubaubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rhcah]rh$auhKPhhh{]rh)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKPhhh{]rhXcelery.task.httprr}r(hjhjubaubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rhYah]rhauhKShhh{]rh)r}r(hj hjhhhhh}r(h]h]h]h]h]hjuhKShhh{]rhXcelery.task.controlrr}r(hj hjubaubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rhLah]rh auhKVhhh{]rh)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKVhhh{]rhXcelery.task.builtinsrr }r (hjhjubaubaubeubh)r }r (hUhhhhhhh}r (h]h]h]h]rhhah]rh)auhKYhhh{]r(h)r}r(hj0hj hhhhh}r(h]h]h]h]h]hj+uhKYhhh{]rhX Executionrr}r(hj0hjubaubh)r}r(hUhj hhhhh}r(h]h]h]h]rhGah]rhauhK\hhh{]rh)r}r(hjFhjhhhhh}r (h]h]h]h]h]hjAuhK\hhh{]r!hXcelery.executer"r#}r$(hjFhjubaubaubh)r%}r&(hUhj hhhhh}r'(h]h]h]h]r(hwah]r)h8auhK_hhh{]r*h)r+}r,(hjXhj%hhhhh}r-(h]h]h]h]h]hjSuhK_hhh{]r.hXcelery.execute.tracer/r0}r1(hjXhj+ubaubaubh)r2}r3(hUhj hhhhh}r4(h]h]h]h]r5hqah]r6h2auhKbhhh{]r7h)r8}r9(hjjhj2hhhhh}r:(h]h]h]h]h]hjeuhKbhhh{]r;hX celery.resultr<r=}r>(hjjhj8ubaubaubh)r?}r@(hUhj hhhhh}rA(h]h]h]h]rBhvah]rCh7auhKehhh{]rD(h)rE}rF(hj|hj?hhhhh}rG(h]h]h]h]h]hjwuhKehhh{]rHhX celery.statesrIrJ}rK(hj|hjEubaubh)rL}rM(hXcelery.signalsrNhj?hhhhh}rO(h]h]h]h]h]uhKghhh{]rPhXcelery.signalsrQrR}rS(hjNhjLubaubeubeubh)rT}rU(hUhhhhhhh}rV(h]h]h]h]rWhxah]rXh9auhKjhhh{]rY(h)rZ}r[(hjhjThhhhh}r\(h]h]h]h]h]hjuhKjhhh{]r]hX Messagingr^r_}r`(hjhjZubaubh)ra}rb(hUhjThhhhh}rc(h]h]h]h]rdh^ah]rehauhKmhhh{]rfh)rg}rh(hjhjahhhhh}ri(h]h]h]h]h]hjuhKmhhh{]rjhXcelery.messagingrkrl}rm(hjhjgubaubaubeubh)rn}ro(hUhhhhhhh}rp(h]h]h]h]rqhtah]rrh5auhKphhh{]rs(h)rt}ru(hjhjnhhhhh}rv(h]h]h]h]h]hjuhKphhh{]rwhXResult backendsrxry}rz(hjhjtubaubh)r{}r|(hUhjnhhhhh}r}(h]h]h]h]r~hXah]rhauhKshhh{]rh)r}r(hjhj{hhhhh}r(h]h]h]h]h]hjuhKshhh{]rhXcelery.backendsrr}r(hjhjubaubaubh)r}r(hUhjnhhhhh}r(h]h]h]h]rhFah]rhauhKvhhh{]rh)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKvhhh{]rhXcelery.backends.baserr}r(hjhjubaubaubh)r}r(hUhjnhhhhh}r(h]h]h]h]rhbah]rh#auhKyhhh{]rh)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKyhhh{]rhXcelery.backends.amqprr}r(hjhjubaubaubh)r}r(hUhjnhhhhh}r(h]h]h]h]rhSah]rhauhK|hhh{]rh)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhK|hhh{]rhXcelery.backends.databaserr}r(hjhjubaubaubeubh)r}r(hUhhhhhhh}r(h]h]h]h]rhQah]rhauhKhhh{]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKhhh{]rhXLoadersrr}r(hjhjubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rheah]rh&auhKhhh{]r(h)r}r(hj*hjhhhhh}r(h]h]h]h]h]hj%uhKhhh{]rhXcelery.loadersrr}r(hj*hjubaubh)r}r(hXELoader autodetection, and working with the currently selected loader.rhjhhhhh}r(h]h]h]h]h]uhKhhh{]rhXELoader autodetection, and working with the currently selected loader.rr}r(hjhjubaubeubh)r}r(hUhjhhhhh}r(h]h]h]h]rhPah]rhauhKhhh{]rh)r}r(hj<hjhhhhh}r(h]h]h]h]h]hj7uhKhhh{]rhX)celery.loaders.base - Loader base classesrr}r(hj<hjubaubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rhyah]rh:auhKhhh{]rh)r}r(hjNhjhhhhh}r(h]h]h]h]h]hjIuhKhhh{]rhX+celery.loaders.default - The default loaderrr}r(hjNhjubaubaubeubh)r}r(hUhhhhhhh}r(h]h]h]h]rhIah]rh auhKhhh{]r(h)r}r(hj`hjhhhhh}r(h]h]h]h]h]hj[uhKhhh{]rhX CeleryBeatrr}r(hj`hjubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rhrah]rh3auhKhhh{]rh)r}r(hjvhjhhhhh}r(h]h]h]h]h]hjquhKhhh{]rhX celery.beatrr}r(hjvhjubaubaubeubh)r}r(hUhhhhhhh}r(h]h]h]h]rhWah]r hauhKhhh{]r (h)r }r (hjhjhhhhh}r (h]h]h]h]h]hjuhKhhh{]rhXEventsrr}r(hjhj ubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rhMah]rhauhKhhh{]rh)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhKhhh{]rhX celery.eventsrr}r(hjhjubaubaubeubh)r}r (hUhhhhhhh}r!(h]h]h]h]r"hgah]r#h(auhKhhh{]r$(h)r%}r&(hjhjhhhhh}r'(h]h]h]h]h]hjuhKhhh{]r(hXLoggingr)r*}r+(hjhj%ubaubh)r,}r-(hUhjhhhhh}r.(h]h]h]h]r/hRah]r0hauhKhhh{]r1h)r2}r3(hjhj,hhhhh}r4(h]h]h]h]h]hjuhKhhh{]r5hX celery.logr6r7}r8(hjhj2ubaubaubh)r9}r:(hUhjhhhhh}r;(h]h]h]h]r<hnah]r=h/auhKhhh{]r>h)r?}r@(hjhj9hhhhh}rA(h]h]h]h]h]hjuhKhhh{]rBhXcelery.utils.patchrCrD}rE(hjhj?ubaubaubeubh)rF}rG(hUhhhhhhh}rH(h]h]h]h]rIhNah]rJhauhKhhh{]rK(h)rL}rM(hjhjFhhhhh}rN(h]h]h]h]h]hjuhKhhh{]rOhX ConfigurationrPrQ}rR(hjhjLubaubh)rS}rT(hUhjFhhhhh}rU(h]h]h]h]rVhoah]rWh0auhKhhh{]rXh)rY}rZ(hjhjShhhhh}r[(h]h]h]h]h]hjuhKhhh{]r\hX celery.confr]r^}r_(hjhjYubaubaubeubh)r`}ra(hUhhhhhhh}rb(h]h]h]h]rchaah]rdh"auhKhhh{]re(h)rf}rg(hjhj`hhhhh}rh(h]h]h]h]h]hj uhKhhh{]rihX Miscellaneousrjrk}rl(hjhjfubaubh)rm}rn(hUhj`hhhhh}ro(h]h]h]h]rph]ah]rqhauhKhhh{]rrh)rs}rt(hj(hjmhhhhh}ru(h]h]h]h]h]hj#uhKhhh{]rvhXcelery.datastructuresrwrx}ry(hj(hjsubaubaubh)rz}r{(hUhj`hhhhh}r|(h]h]h]h]r}hfah]r~h'auhKhhh{]rh)r}r(hj:hjzhhhhh}r(h]h]h]h]h]hj5uhKhhh{]rhXcelery.exceptionsrr}r(hj:hjubaubaubh)r}r(hUhj`hhhhh}r(h]h]h]h]rhmah]rh.auhKhhh{]rh)r}r(hjLhjhhhhh}r(h]h]h]h]h]hjGuhKhhh{]rhXcelery.platformrr}r(hjLhjubaubaubh)r}r(hUhj`hhhhh}r(h]h]h]h]rhTah]rhauhKhhh{]rh)r}r(hj^hjhhhhh}r(h]h]h]h]h]hjYuhKhhh{]rhX celery.utilsrr}r(hj^hjubaubaubh)r}r(hUhj`hhhhh}r(h]h]h]h]rhJah]rh auhKhhh{]rh)r}r(hjphjhhhhh}r(h]h]h]h]h]hjkuhKhhh{]rhXcelery.utils.inforr}r(hjphjubaubaubh)r}r(hUhj`hhhhh}r(h]h]h]h]rhzah]rh;auhKhhh{]rh)r}r(hjhjhhhhh}r(h]h]h]h]h]hj}uhKhhh{]rhXcelery.utils.compatrr}r(hjhjubaubaubeubeubehUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhhU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypeUINFOruh{]rh)r}r(hUh}r(h]h]h]h]h]uhjh{]rhX?Hyperlink target "internals-module-overview" is not referenced.rr}r(hUhjubahhubahUsystem_messagerubaUreporterrNUid_startrK4U autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUS/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/moduleindex.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerr jUauto_id_prefixr!Uidr"Udoctitle_xformr#Ustrip_elements_with_classesr$NU _config_filesr%]Ufile_insertion_enabledr&U raw_enabledr'KU dump_settingsr(NubUsymbol_footnote_startr)KUidsr*}r+(jYjUjGjCj5j1j#jj j jjhfjzjjhTjjjhOjShYjjjhijzjjhhj hGjhyjj%j!h]jmjOjKjaj]j+j'j=j9jjjjhhhhhhhbjhVhhPjhHjmhSjj}jyh_jhtjnhNjFhljhgjh^jahxjThEjhsjFhejhpjhojShvj?hJjhIjhMjjjhQjjsjojjhdjjjjjjjjjjjjjhUj`h`jhqj2hmjhzjhLjhRj,huj9h[jhFjhkhhKhhZj,jjjjj[jWjqjmj7j3jIjEjj hWjjjjjhjjhXj{jkjghaj`hrjh\jhcjhwj%jjjjjjhnj9jAj=j+j'jejajSjOjjjwjsjjjjuUsubstitution_namesr,}r-hhh}r.(h]h]h]Usourcehh]h]uU footnotesr/]r0Urefidsr1}r2hV]r3h~asub.PKYDD;vvVcelery-2.1-archived/.doctrees/internals/reference/celery.utils.dispatch.signal.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X.celery.utils.dispatch.signal.Signal.disconnectqX-celery.utils.dispatch.signal.Signal.receiversqX/celery.utils.dispatch.signal.Signal.send_robustqX#celery.utils.dispatch.signal.Signalq X2signals: dispatcher - celery.utils.dispatch.signalq NX+celery.utils.dispatch.signal.Signal.connectq X(celery.utils.dispatch.signal.Signal.sendq Ucontentsq NuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h U/signals-dispatcher-celery-utils-dispatch-signalqh h h h h UcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceq cdocutils.nodes reprunicode q!Xn/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.dispatch.signal.rstq"q#}q$bUtagnameq%Usectionq&U attributesq'}q((Udupnamesq)]Uclassesq*]Ubackrefsq+]Uidsq,]q-haUnamesq.]q/h auUlineq0KUdocumentq1hh]q2(cdocutils.nodes title q3)q4}q5(hX2Signals: Dispatcher - celery.utils.dispatch.signalq6hhh h#h%Utitleq7h'}q8(h)]h*]h+]h,]h.]uh0Kh1hh]q9cdocutils.nodes Text q:X2Signals: Dispatcher - celery.utils.dispatch.signalq;q<}q=(hh6hh4ubaubcdocutils.nodes target q>)q?}q@(hUhhh U qAh%UtargetqBh'}qC(h)]h,]qDX#module-celery.utils.dispatch.signalqEah+]Uismodh*]h.]uh0Kh1hh]ubcsphinx.addnodes index qF)qG}qH(hUhhh hAh%UindexqIh'}qJ(h,]h+]h)]h*]h.]Uentries]qK(UsingleqLX%celery.utils.dispatch.signal (module)X#module-celery.utils.dispatch.signalUtqMauh0Kh1hh]ubcdocutils.nodes paragraph qN)qO}qP(hX Signal class.qQhhh X~/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/signal.py:docstring of celery.utils.dispatch.signalqRh%U paragraphqSh'}qT(h)]h*]h+]h,]h.]uh0Kh1hh]qUh:X Signal class.qVqW}qX(hhQhhOubaubhF)qY}qZ(hUhhh Nh%hIh'}q[(h,]h+]h)]h*]h.]Uentries]q\(hLX.Signal (class in celery.utils.dispatch.signal)h Utq]auh0Nh1hh]ubcsphinx.addnodes desc q^)q_}q`(hUhhh Nh%Udescqah'}qb(UnoindexqcUdomainqdXpyh,]h+]h)]h*]h.]UobjtypeqeXclassqfUdesctypeqghfuh0Nh1hh]qh(csphinx.addnodes desc_signature qi)qj}qk(hXSignal(providing_args=None)qlhh_h U qmh%Udesc_signatureqnh'}qo(h,]qph aUmoduleqqh!Xcelery.utils.dispatch.signalqrqs}qtbh+]h)]h*]h.]quh aUfullnameqvXSignalqwUclassqxUUfirstqyuh0Nh1hh]qz(csphinx.addnodes desc_annotation q{)q|}q}(hXclass hhjh hmh%Udesc_annotationq~h'}q(h)]h*]h+]h,]h.]uh0Nh1hh]qh:Xclass qq}q(hUhh|ubaubcsphinx.addnodes desc_addname q)q}q(hXcelery.utils.dispatch.signal.hhjh hmh%U desc_addnameqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]qh:Xcelery.utils.dispatch.signal.qq}q(hUhhubaubcsphinx.addnodes desc_name q)q}q(hhwhhjh hmh%U desc_nameqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]qh:XSignalqq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhhjh hmh%Udesc_parameterlistqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]qcsphinx.addnodes desc_parameter q)q}q(hXproviding_args=Noneh'}q(h)]h*]h+]h,]h.]uhhh]qh:Xproviding_args=Noneqq}q(hUhhubah%Udesc_parameterqubaubeubcsphinx.addnodes desc_content q)q}q(hUhh_h hmh%U desc_contentqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]q(hN)q}q(hXBase class for all signalsqhhh X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/signal.py:docstring of celery.utils.dispatch.signal.Signalqh%hSh'}q(h)]h*]h+]h,]h.]uh0Kh1hh]qh:XBase class for all signalsqq}q(hhhhubaubhF)q}q(hUhhh Nh%hIh'}q(h,]h+]h)]h*]h.]Uentries]q(hLX9receivers (celery.utils.dispatch.signal.Signal attribute)hUtqauh0Nh1hh]ubh^)q}q(hUhhh Nh%hah'}q(hchdXpyh,]h+]h)]h*]h.]heX attributeqhghuh0Nh1hh]q(hi)q}q(hX receiversqhhh hAh%hnh'}q(h,]qhahqXcelery.utils.dispatch.signalqh+]h)]h*]h.]qhahvXSignal.receivershxhwhyuh0Kh1hh]qh)q}q(hhhhh hAh%hh'}q(h)]h*]h+]h,]h.]uh0Kh1hh]qh:X receiversqʅq}q(hUhhubaubaubhi)q}q(hX)Internal attribute, holds a dictionary ofqhhh hAh%hnh'}q(h,]h+]h)]h*]h.]hyuh0Kh1hh]qh)q}q(hhhhh hAh%hh'}q(h)]h*]h+]h,]h.]uh0Kh1hh]qh:X)Internal attribute, holds a dictionary ofqօq}q(hUhhubaubaubhi)q}q(hX4``{receriverkey (id): weakref(receiver)}`` mappings.qhhh hAh%hnh'}q(h,]h+]h)]h*]h.]hyuh0Kh1hh]qh)q}q(hhhhh hAh%hh'}q(h)]h*]h+]h,]h.]uh0Kh1hh]qh:X4``{receriverkey (id): weakref(receiver)}`` mappings.q⅁q}q(hUhhubaubaubh)q}q(hUhhh hAh%hh'}q(h)]h*]h+]h,]h.]uh0Kh1hh]ubeubhF)q}q(hUhhh Nh%hIh'}q(h,]h+]h)]h*]h.]Uentries]q(hLX6connect() (celery.utils.dispatch.signal.Signal method)h Utqauh0Nh1hh]ubh^)q}q(hUhhh Nh%hah'}q(hchdXpyh,]h+]h)]h*]h.]heXmethodqhghuh0Nh1hh]q(hi)q}q(hXCSignal.connect(receiver, sender=None, weak=True, dispatch_uid=None)hhh hmh%hnh'}q(h,]qh ahqh!Xcelery.utils.dispatch.signalqq}qbh+]h)]h*]h.]qh ahvXSignal.connecthxhwhyuh0Nh1hh]q(h)q}q(hXconnecthhh hmh%hh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]qh:Xconnectqr}r(hUhhubaubh)r}r(hUhhh hmh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]r(h)r}r(hXreceiverh'}r(h)]h*]h+]h,]h.]uhjh]r h:Xreceiverr r }r (hUhjubah%hubh)r }r(hX sender=Noneh'}r(h)]h*]h+]h,]h.]uhjh]rh:X sender=Nonerr}r(hUhj ubah%hubh)r}r(hX weak=Trueh'}r(h)]h*]h+]h,]h.]uhjh]rh:X weak=Truerr}r(hUhjubah%hubh)r}r(hXdispatch_uid=Noneh'}r(h)]h*]h+]h,]h.]uhjh]rh:Xdispatch_uid=Nonerr }r!(hUhjubah%hubeubeubh)r"}r#(hUhhh hmh%hh'}r$(h)]h*]h+]h,]h.]uh0Nh1hh]r%(hN)r&}r'(hX&Connect receiver to sender for signal.r(hj"h X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/signal.py:docstring of celery.utils.dispatch.signal.Signal.connectr)h%hSh'}r*(h)]h*]h+]h,]h.]uh0Kh1hh]r+h:X&Connect receiver to sender for signal.r,r-}r.(hj(hj&ubaubcdocutils.nodes field_list r/)r0}r1(hUhj"h Nh%U field_listr2h'}r3(h)]h*]h+]h,]h.]uh0Nh1hh]r4cdocutils.nodes field r5)r6}r7(hUh'}r8(h)]h*]h+]h,]h.]uhj0h]r9(cdocutils.nodes field_name r:)r;}r<(hUh'}r=(h)]h*]h+]h,]h.]uhj6h]r>h:X Parametersr?r@}rA(hUhj;ubah%U field_namerBubcdocutils.nodes field_body rC)rD}rE(hUh'}rF(h)]h*]h+]h,]h.]uhj6h]rGcdocutils.nodes bullet_list rH)rI}rJ(hUh'}rK(h)]h*]h+]h,]h.]uhjDh]rL(cdocutils.nodes list_item rM)rN}rO(hUh'}rP(h)]h*]h+]h,]h.]uhjIh]rQhN)rR}rS(hUh'}rT(h)]h*]h+]h,]h.]uhjNh]rU(cdocutils.nodes strong rV)rW}rX(hXreceiverh'}rY(h)]h*]h+]h,]h.]uhjRh]rZh:Xreceiverr[r\}r](hUhjWubah%Ustrongr^ubh:X -- r_r`}ra(hUhjRubhN)rb}rc(hXaA function or an instance method which is to receive signals. Receivers must be hashable objects.rdhjRh j)h%hSh'}re(h)]h*]h+]h,]h.]uh0Kh]rfh:XaA function or an instance method which is to receive signals. Receivers must be hashable objects.rgrh}ri(hjdhjbubaubhN)rj}rk(hXif weak is :const:`True`, then receiver must be weak-referencable (more precisely :func:`saferef.safe_ref()` must be able to create a reference to the receiver).hjRh j)h%hSh'}rl(h)]h*]h+]h,]h.]uh0Kh]rm(h:X if weak is rnro}rp(hX if weak is hjjubcsphinx.addnodes pending_xref rq)rr}rs(hX :const:`True`rthjjh Nh%U pending_xrefruh'}rv(UreftypeXconstUrefwarnrwU reftargetrxXTrueU refdomainXpyryh,]h+]U refexplicith)]h*]h.]UrefdocrzX0internals/reference/celery.utils.dispatch.signalr{Upy:classr|hwU py:moduler}huh0Nh]r~cdocutils.nodes literal r)r}r(hjth'}r(h)]h*]r(UxrefrjyXpy-constreh+]h,]h.]uhjrh]rh:XTruerr}r(hUhjubah%Uliteralrubaubh:X:, then receiver must be weak-referencable (more precisely rr}r(hX:, then receiver must be weak-referencable (more precisely hjjubjq)r}r(hX:func:`saferef.safe_ref()`rhjjh Nh%juh'}r(UreftypeXfuncjwjxXsaferef.safe_refU refdomainXpyrh,]h+]U refexplicith)]h*]h.]jzj{j|hwj}huh0Nh]rj)r}r(hjh'}r(h)]h*]r(jjXpy-funcreh+]h,]h.]uhjh]rh:Xsaferef.safe_ref()rr}r(hUhjubah%jubaubh:X5 must be able to create a reference to the receiver).rr}r(hX5 must be able to create a reference to the receiver).hjjubeubhN)r}r(hX3Receivers must be able to accept keyword arguments.rhjRh j)h%hSh'}r(h)]h*]h+]h,]h.]uh0K h]rh:X3Receivers must be able to accept keyword arguments.rr}r(hjhjubaubhN)r}r(hXIf receivers have a ``dispatch_uid`` attribute, the receiver will not be added if another receiver already exists with that ``dispatch_uid``.hjRh j)h%hSh'}r(h)]h*]h+]h,]h.]uh0K h]r(h:XIf receivers have a rr}r(hXIf receivers have a hjubj)r}r(hX``dispatch_uid``h'}r(h)]h*]h+]h,]h.]uhjh]rh:X dispatch_uidrr}r(hUhjubah%jubh:XX attribute, the receiver will not be added if another receiver already exists with that rr}r(hXX attribute, the receiver will not be added if another receiver already exists with that hjubj)r}r(hX``dispatch_uid``h'}r(h)]h*]h+]h,]h.]uhjh]rh:X dispatch_uidrr}r(hUhjubah%jubh:X.r}r(hX.hjubeubeh%hSubah%U list_itemrubjM)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjIh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(jV)r}r(hXsenderh'}r(h)]h*]h+]h,]h.]uhjh]rh:Xsenderrr}r(hUhjubah%j^ubh:X -- rr}r(hUhjubh:XHThe sender to which the receiver should respond. Must either be of type rr}r(hXHThe sender to which the receiver should respond. Must either be of type hjubjq)r}r(hX:class:`Signal`rhjh Nh%juh'}r(UreftypeXclassjwjxXSignalU refdomainXpyrh,]h+]U refexplicith)]h*]h.]jzj{j|hwj}huh0Nh]rj)r}r(hjh'}r(h)]h*]r(jjXpy-classreh+]h,]h.]uhjh]rh:XSignalrr}r(hUhjubah%jubaubh:X, or rr}r(hX, or hjubjq)r}r(hX :const:`None`rhjh Nh%juh'}r(UreftypeXconstjwjxXNoneU refdomainXpyrh,]h+]U refexplicith)]h*]h.]jzj{j|hwj}huh0Nh]rj)r}r(hjh'}r(h)]h*]r(jjXpy-constreh+]h,]h.]uhjh]rh:XNonerr}r(hUhjubah%jubaubh:X# to receive events from any sender.rr}r(hX# to receive events from any sender.hjubeh%hSubah%jubjM)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjIh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(jV)r}r(hXweakh'}r(h)]h*]h+]h,]h.]uhjh]rh:Xweakrr }r (hUhjubah%j^ubh:X -- r r }r (hUhjubh:XWhether to use weak references to the receiver. By default, the module will attempt to use weak references to the receiver objects. If this parameter is false, then strong references will be used.rr}r(hXWhether to use weak references to the receiver. By default, the module will attempt to use weak references to the receiver objects. If this parameter is false, then strong references will be used.rhjubeh%hSubah%jubjM)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjIh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(jV)r}r(hX dispatch_uidh'}r(h)]h*]h+]h,]h.]uhjh]rh:X dispatch_uidrr}r (hUhjubah%j^ubh:X -- r!r"}r#(hUhjubh:XAn identifier used to uniquely identify a particular instance of a receiver. This will usually be a string, though it may be anything hashable.r$r%}r&(hXAn identifier used to uniquely identify a particular instance of a receiver. This will usually be a string, though it may be anything hashable.r'hjubeh%hSubah%jubeh%U bullet_listr(ubah%U field_bodyr)ubeh%Ufieldr*ubaubeubeubhF)r+}r,(hUhhh Nh%hIh'}r-(h,]h+]h)]h*]h.]Uentries]r.(hLX9disconnect() (celery.utils.dispatch.signal.Signal method)hUtr/auh0Nh1hh]ubh^)r0}r1(hUhhh Nh%hah'}r2(hchdXpyh,]h+]h)]h*]h.]heXmethodr3hgj3uh0Nh1hh]r4(hi)r5}r6(hXKSignal.disconnect(receiver=None, sender=None, weak=True, dispatch_uid=None)hj0h hmh%hnh'}r7(h,]r8hahqh!Xcelery.utils.dispatch.signalr9r:}r;bh+]h)]h*]h.]r<hahvXSignal.disconnecthxhwhyuh0Nh1hh]r=(h)r>}r?(hX disconnecthj5h hmh%hh'}r@(h)]h*]h+]h,]h.]uh0Nh1hh]rAh:X disconnectrBrC}rD(hUhj>ubaubh)rE}rF(hUhj5h hmh%hh'}rG(h)]h*]h+]h,]h.]uh0Nh1hh]rH(h)rI}rJ(hX receiver=Noneh'}rK(h)]h*]h+]h,]h.]uhjEh]rLh:X receiver=NonerMrN}rO(hUhjIubah%hubh)rP}rQ(hX sender=Noneh'}rR(h)]h*]h+]h,]h.]uhjEh]rSh:X sender=NonerTrU}rV(hUhjPubah%hubh)rW}rX(hX weak=Trueh'}rY(h)]h*]h+]h,]h.]uhjEh]rZh:X weak=Truer[r\}r](hUhjWubah%hubh)r^}r_(hXdispatch_uid=Noneh'}r`(h)]h*]h+]h,]h.]uhjEh]rah:Xdispatch_uid=Nonerbrc}rd(hUhj^ubah%hubeubeubh)re}rf(hUhj0h hmh%hh'}rg(h)]h*]h+]h,]h.]uh0Nh1hh]rh(hN)ri}rj(hX+Disconnect receiver from sender for signal.rkhjeh X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/signal.py:docstring of celery.utils.dispatch.signal.Signal.disconnectrlh%hSh'}rm(h)]h*]h+]h,]h.]uh0Kh1hh]rnh:X+Disconnect receiver from sender for signal.rorp}rq(hjkhjiubaubhN)rr}rs(hXuIf weak references are used, disconnect need not be called. The receiver will be removed from dispatch automatically.rthjeh jlh%hSh'}ru(h)]h*]h+]h,]h.]uh0Kh1hh]rvh:XuIf weak references are used, disconnect need not be called. The receiver will be removed from dispatch automatically.rwrx}ry(hjthjrubaubj/)rz}r{(hUhjeh Nh%j2h'}r|(h)]h*]h+]h,]h.]uh0Nh1hh]r}j5)r~}r(hUh'}r(h)]h*]h+]h,]h.]uhjzh]r(j:)r}r(hUh'}r(h)]h*]h+]h,]h.]uhj~h]rh:X Parametersrr}r(hUhjubah%jBubjC)r}r(hUh'}r(h)]h*]h+]h,]h.]uhj~h]rjH)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(jM)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(jV)r}r(hXreceiverh'}r(h)]h*]h+]h,]h.]uhjh]rh:Xreceiverrr}r(hUhjubah%j^ubh:X -- rr}r(hUhjubh:X6The registered receiver to disconnect. May be none if rr}r(hX6The registered receiver to disconnect. May be none if hjubj)r}r(hX``dispatch_uid``h'}r(h)]h*]h+]h,]h.]uhjh]rh:X dispatch_uidrr}r(hUhjubah%jubh:X is specified.rr}r(hX is specified.hjubeh%hSubah%jubjM)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(jV)r}r(hXsenderh'}r(h)]h*]h+]h,]h.]uhjh]rh:Xsenderrr}r(hUhjubah%j^ubh:X -- rr}r(hUhjubh:X$The registered sender to disconnect.rr}r(hX$The registered sender to disconnect.rhjubeh%hSubah%jubjM)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(jV)r}r(hXweakh'}r(h)]h*]h+]h,]h.]uhjh]rh:Xweakrr}r(hUhjubah%j^ubh:X -- rr}r(hUhjubh:X The weakref state to disconnect.rr}r(hX The weakref state to disconnect.rhjubeh%hSubah%jubjM)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(jV)r}r(hX dispatch_uidh'}r(h)]h*]h+]h,]h.]uhjh]rh:X dispatch_uidrr}r(hUhjubah%j^ubh:X -- rr}r(hUhjubh:X3the unique identifier of the receiver to disconnectrr}r(hX3the unique identifier of the receiver to disconnectrhjubeh%hSubah%jubeh%j(ubah%j)ubeh%j*ubaubeubeubhF)r}r(hUhhh Nh%hIh'}r(h,]h+]h)]h*]h.]Uentries]r(hLX3send() (celery.utils.dispatch.signal.Signal method)h Utrauh0Nh1hh]ubh^)r}r(hUhhh Nh%hah'}r(hchdXpyh,]h+]h)]h*]h.]heXmethodrhgjuh0Nh1hh]r(hi)r}r(hXSignal.send(sender, **named)hjh hmh%hnh'}r(h,]rh ahqh!Xcelery.utils.dispatch.signalrr}rbh+]h)]h*]h.]rh ahvX Signal.sendhxhwhyuh0Nh1hh]r(h)r}r(hXsendhjh hmh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]rh:Xsendr r }r (hUhjubaubh)r }r (hUhjh hmh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]r(h)r}r(hXsenderh'}r(h)]h*]h+]h,]h.]uhj h]rh:Xsenderrr}r(hUhjubah%hubh)r}r(hX**namedh'}r(h)]h*]h+]h,]h.]uhj h]rh:X**namedrr}r(hUhjubah%hubeubeubh)r}r(hUhjh hmh%hh'}r (h)]h*]h+]h,]h.]uh0Nh1hh]r!(hN)r"}r#(hX3Send signal from sender to all connected receivers.r$hjh X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/signal.py:docstring of celery.utils.dispatch.signal.Signal.sendr%h%hSh'}r&(h)]h*]h+]h,]h.]uh0Kh1hh]r'h:X3Send signal from sender to all connected receivers.r(r)}r*(hj$hj"ubaubhN)r+}r,(hXIf any receiver raises an error, the error propagates back through send, terminating the dispatch loop, so it is quite possible to not have all receivers called if a raises an error.r-hjh j%h%hSh'}r.(h)]h*]h+]h,]h.]uh0Kh1hh]r/h:XIf any receiver raises an error, the error propagates back through send, terminating the dispatch loop, so it is quite possible to not have all receivers called if a raises an error.r0r1}r2(hj-hj+ubaubj/)r3}r4(hUhjh Nh%j2h'}r5(h)]h*]h+]h,]h.]uh0Nh1hh]r6(j5)r7}r8(hUh'}r9(h)]h*]h+]h,]h.]uhj3h]r:(j:)r;}r<(hUh'}r=(h)]h*]h+]h,]h.]uhj7h]r>h:X Parametersr?r@}rA(hUhj;ubah%jBubjC)rB}rC(hUh'}rD(h)]h*]h+]h,]h.]uhj7h]rEjH)rF}rG(hUh'}rH(h)]h*]h+]h,]h.]uhjBh]rI(jM)rJ}rK(hUh'}rL(h)]h*]h+]h,]h.]uhjFh]rMhN)rN}rO(hUh'}rP(h)]h*]h+]h,]h.]uhjJh]rQ(jV)rR}rS(hXsenderh'}rT(h)]h*]h+]h,]h.]uhjNh]rUh:XsenderrVrW}rX(hUhjRubah%j^ubh:X -- rYrZ}r[(hUhjNubh:X6The sender of the signal. Either a specific object or r\r]}r^(hX6The sender of the signal. Either a specific object or hjNubjq)r_}r`(hX :const:`None`rahjNh Nh%juh'}rb(UreftypeXconstjwjxXNoneU refdomainXpyrch,]h+]U refexplicith)]h*]h.]jzj{j|hwj}huh0Nh]rdj)re}rf(hjah'}rg(h)]h*]rh(jjcXpy-constrieh+]h,]h.]uhj_h]rjh:XNonerkrl}rm(hUhjeubah%jubaubh:X.rn}ro(hX.hjNubeh%hSubah%jubjM)rp}rq(hUh'}rr(h)]h*]h+]h,]h.]uhjFh]rshN)rt}ru(hUh'}rv(h)]h*]h+]h,]h.]uhjph]rw(jV)rx}ry(hX**namedh'}rz(h)]h*]h+]h,]h.]uhjth]r{h:X**namedr|r}}r~(hUhjxubah%j^ubh:X -- rr}r(hUhjtubh:X2Named arguments which will be passed to receivers.rr}r(hX2Named arguments which will be passed to receivers.rhjtubeh%hSubah%jubeh%j(ubah%j)ubeh%j*ubj5)r}r(hUh'}r(h)]h*]h+]h,]h.]uhj3h]r(j:)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rh:XReturnsrr}r(hUhjubah%jBubjC)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(h:Xa list of tuple pairs: rr}r(hXa list of tuple pairs: hjubj)r}r(hX ``[(receiver, response), ... ]``h'}r(h)]h*]h+]h,]h.]uhjh]rh:X[(receiver, response), ... ]rr}r(hUhjubah%jubh:X.r}r(hX.hjubeh%hSubah%j)ubeh%j*ubeubeubeubhF)r}r(hUhhh X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/signal.py:docstring of celery.utils.dispatch.signal.Signal.send_robustrh%hIh'}r(h,]h+]h)]h*]h.]Uentries]r(hLX:send_robust() (celery.utils.dispatch.signal.Signal method)hUtrauh0Nh1hh]ubh^)r}r(hUhhh jh%hah'}r(hchdXpyrh,]h+]h)]h*]h.]heXmethodrhgjuh0Nh1hh]r(hi)r}r(hX#Signal.send_robust(sender, **named)hjh hmh%hnh'}r(h,]rhahqh!Xcelery.utils.dispatch.signalrr}rbh+]h)]h*]h.]rhahvXSignal.send_robusthxhwhyuh0Nh1hh]r(h)r}r(hX send_robusthjh hmh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]rh:X send_robustrr}r(hUhjubaubh)r}r(hUhjh hmh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]r(h)r}r(hXsenderh'}r(h)]h*]h+]h,]h.]uhjh]rh:Xsenderrr}r(hUhjubah%hubh)r}r(hX**namedh'}r(h)]h*]h+]h,]h.]uhjh]rh:X**namedrr}r(hUhjubah%hubeubeubh)r}r(hUhjh hmh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]r(hN)r}r(hXCSend signal from sender to all connected receivers catching errors.rhjh jh%hSh'}r(h)]h*]h+]h,]h.]uh0Kh1hh]rh:XCSend signal from sender to all connected receivers catching errors.rr}r(hjhjubaubj/)r}r(hUhjh jh%j2h'}r(h)]h*]h+]h,]h.]uh0Nh1hh]r(j5)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(j:)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rh:X Parametersrr}r(hUhjubah%jBubjC)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rjH)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(jM)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]r(jV)r}r(hXsenderh'}r(h)]h*]h+]h,]h.]uhjh]rh:Xsenderrr}r(hUhjubah%j^ubh:X -- rr}r(hUhjubh:XThe sender of the signal. Can be any python object (normally one registered with a connect if you actually want something to occur).rr }r (hXThe sender of the signal. Can be any python object (normally one registered with a connect if you actually want something to occur).r hjubeh%hSubah%jubjM)r }r (hUh'}r(h)]h*]h+]h,]h.]uhjh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhj h]r(jV)r}r(hX**namedh'}r(h)]h*]h+]h,]h.]uhjh]rh:X**namedrr}r(hUhjubah%j^ubh:X -- rr}r(hUhjubh:XuNamed arguments which will be passed to receivers. These arguments must be a subset of the argument names defined in rr}r (hXuNamed arguments which will be passed to receivers. These arguments must be a subset of the argument names defined in hjubjq)r!}r"(hX:attr:`providing_args`r#hjh Nh%juh'}r$(UreftypeXattrjwjxXproviding_argsU refdomainXpyr%h,]h+]U refexplicith)]h*]h.]jzj{j|hwj}huh0Nh]r&j)r'}r((hj#h'}r)(h)]h*]r*(jj%Xpy-attrr+eh+]h,]h.]uhj!h]r,h:Xproviding_argsr-r.}r/(hUhj'ubah%jubaubh:X.r0}r1(hX.hjubeh%hSubah%jubeh%j(ubah%j)ubeh%j*ubj5)r2}r3(hUh'}r4(h)]h*]h+]h,]h.]uhjh]r5(j:)r6}r7(hUh'}r8(h)]h*]h+]h,]h.]uhj2h]r9h:XReturnsr:r;}r<(hUhj6ubah%jBubjC)r=}r>(hUh'}r?(h)]h*]h+]h,]h.]uhj2h]r@hN)rA}rB(hUh'}rC(h)]h*]h+]h,]h.]uhj=h]rD(h:Xa list of tuple pairs: rErF}rG(hXa list of tuple pairs: hjAubj)rH}rI(hX ``[(receiver, response), ... ]``h'}rJ(h)]h*]h+]h,]h.]uhjAh]rKh:X[(receiver, response), ... ]rLrM}rN(hUhjHubah%jubh:X.rO}rP(hX.hjAubeh%hSubah%j)ubeh%j*ubj5)rQ}rR(hUh'}rS(h)]h*]h+]h,]h.]uhjh]rT(j:)rU}rV(hUh'}rW(h)]h*]h+]h,]h.]uhjQh]rX(h:XRaisesrYrZ}r[(hUhjUubh:X r\}r](hUhjUubjq)r^}r_(hUh'}r`(UreftypeUexcraU reftargetXDispatcherKeyErrorrbU refdomainjh,]h+]U refexplicith)]h*]h.]uhjUh]rch:XDispatcherKeyErrorrdre}rf(hjbhj^ubah%juubeh%jBubjC)rg}rh(hUh'}ri(h)]h*]h+]h,]h.]uhjQh]rjhN)rk}rl(hUh'}rm(h)]h*]h+]h,]h.]uhjgh]h%hSubah%j)ubeh%j*ubeubhN)rn}ro(hXif any receiver raises an error (specifically any subclass of :exc:`Exception`), the error instance is returned as the result for that receiver.hjh jh%hSh'}rp(h)]h*]h+]h,]h.]uh0Kh1hh]rq(h:X>if any receiver raises an error (specifically any subclass of rrrs}rt(hX>if any receiver raises an error (specifically any subclass of hjnubjq)ru}rv(hX:exc:`Exception`rwhjnh Nh%juh'}rx(UreftypeXexcjwjxX ExceptionU refdomainXpyryh,]h+]U refexplicith)]h*]h.]jzj{j|hwj}huh0Nh]rzj)r{}r|(hjwh'}r}(h)]h*]r~(jjyXpy-excreh+]h,]h.]uhjuh]rh:X Exceptionrr}r(hUhj{ubah%jubaubh:XB), the error instance is returned as the result for that receiver.rr}r(hXB), the error instance is returned as the result for that receiver.hjnubeubeubeubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh1hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh'}r(h)]UlevelKh,]h+]UsourcehAh*]h.]UlineKUtypeUINFOruh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rh:XIHyperlink target "module-celery.utils.dispatch.signal" is not referenced.rr}r(hUhjubah%hSubah%Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh7NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUn/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.dispatch.signal.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hj5hhhjh hjh hh jhhhcdocutils.nodes topic r)r}r(hUhhh h#h%Utopicrh'}r(h)]h*]r(UcontentsrUlocalreh+]h,]rhah.]rh auh0Kh1hh]rcdocutils.nodes pending r)r}r(hX.. contents:: :local:hjU transformrcdocutils.transforms.parts Contents rUdetailsr}r UlocalNsh%Upendingr h'}r (h)]h*]h+]h,]h.]uh]ubaubhEh?uUsubstitution_namesr }r h%h1h'}r(h)]h,]h+]Usourceh#h*]h.]uU footnotesr]rUrefidsr}rub.PKYDD^KGGLcelery-2.1-archived/.doctrees/internals/reference/celery.utils.patch.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X.celery.utils.patch.ensure_process_aware_loggerqX*compatibility patches - celery.utils.patchqNUcontentsqNuUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hhhU(compatibility-patches-celery-utils-patchqhUcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXd/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.patch.rstqq}qbUtagnameq Usectionq!U attributesq"}q#(Udupnamesq$]Uclassesq%]Ubackrefsq&]Uidsq']q(haUnamesq)]q*hauUlineq+KUdocumentq,hh]q-(cdocutils.nodes title q.)q/}q0(hX*Compatibility Patches - celery.utils.patchq1hhhhh Utitleq2h"}q3(h$]h%]h&]h']h)]uh+Kh,hh]q4cdocutils.nodes Text q5X*Compatibility Patches - celery.utils.patchq6q7}q8(hh1hh/ubaubcdocutils.nodes target q9)q:}q;(hUhhhU q(h$]h']q?Xmodule-celery.utils.patchq@ah&]Uismodh%]h)]uh+Kh,hh]ubcsphinx.addnodes index qA)qB}qC(hUhhhhq]h Udesc_signatureq^h"}q_(h']q`haUmoduleqahXcelery.utils.patchqbqc}qdbh&]h$]h%]h)]qehaUfullnameqfXensure_process_aware_loggerqgUclassqhUUfirstqiuh+Nh,hh]qj(csphinx.addnodes desc_addname qk)ql}qm(hXcelery.utils.patch.hhZhh]h U desc_addnameqnh"}qo(h$]h%]h&]h']h)]uh+Nh,hh]qph5Xcelery.utils.patch.qqqr}qs(hUhhlubaubcsphinx.addnodes desc_name qt)qu}qv(hhghhZhh]h U desc_nameqwh"}qx(h$]h%]h&]h']h)]uh+Nh,hh]qyh5Xensure_process_aware_loggerqzq{}q|(hUhhuubaubcsphinx.addnodes desc_parameterlist q})q~}q(hUhhZhh]h Udesc_parameterlistqh"}q(h$]h%]h&]h']h)]uh+Nh,hh]ubeubcsphinx.addnodes desc_content q)q}q(hUhhOhh]h U desc_contentqh"}q(h$]h%]h&]h']h)]uh+Nh,hh]ubeubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh,hU current_lineqNUtransform_messagesq]qcdocutils.nodes system_message q)q}q(hUh"}q(h$]UlevelKh']h&]Usourceh)q?}q@(hUhhh U qAh%UtargetqBh'}qC(h)]h,]qDX module-celery.worker.controllersqEah+]Uismodh*]h.]uh0Kh1hh]ubcsphinx.addnodes index qF)qG}qH(hUhhh hAh%UindexqIh'}qJ(h,]h+]h)]h*]h.]Uentries]qK(UsingleqLX"celery.worker.controllers (module)X module-celery.worker.controllersUtqMauh0Kh1hh]ubcdocutils.nodes paragraph qN)qO}qP(hXWorker Controller ThreadsqQhhh Xx/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/controllers.py:docstring of celery.worker.controllersqRh%U paragraphqSh'}qT(h)]h*]h+]h,]h.]uh0Kh1hh]qUh:XWorker Controller ThreadsqVqW}qX(hhQhhOubaubhF)qY}qZ(hUhhh Nh%hIh'}q[(h,]h+]h)]h*]h.]Uentries]q\(hLX-Mediator (class in celery.worker.controllers)hUtq]auh0Nh1hh]ubcsphinx.addnodes desc q^)q_}q`(hUhhh Nh%Udescqah'}qb(UnoindexqcUdomainqdXpyh,]h+]h)]h*]h.]UobjtypeqeXclassqfUdesctypeqghfuh0Nh1hh]qh(csphinx.addnodes desc_signature qi)qj}qk(hX,Mediator(ready_queue, callback, logger=None)hh_h U qlh%Udesc_signatureqmh'}qn(h,]qohaUmoduleqph!Xcelery.worker.controllersqqqr}qsbh+]h)]h*]h.]qthaUfullnamequXMediatorqvUclassqwUUfirstqxuh0Nh1hh]qy(csphinx.addnodes desc_annotation qz)q{}q|(hXclass hhjh hlh%Udesc_annotationq}h'}q~(h)]h*]h+]h,]h.]uh0Nh1hh]qh:Xclass qq}q(hUhh{ubaubcsphinx.addnodes desc_addname q)q}q(hXcelery.worker.controllers.hhjh hlh%U desc_addnameqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]qh:Xcelery.worker.controllers.qq}q(hUhhubaubcsphinx.addnodes desc_name q)q}q(hhvhhjh hlh%U desc_nameqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]qh:XMediatorqq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhhjh hlh%Udesc_parameterlistqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]q(csphinx.addnodes desc_parameter q)q}q(hX ready_queueh'}q(h)]h*]h+]h,]h.]uhhh]qh:X ready_queueqq}q(hUhhubah%Udesc_parameterqubh)q}q(hXcallbackh'}q(h)]h*]h+]h,]h.]uhhh]qh:Xcallbackqq}q(hUhhubah%hubh)q}q(hX logger=Noneh'}q(h)]h*]h+]h,]h.]uhhh]qh:X logger=Noneqq}q(hUhhubah%hubeubeubcsphinx.addnodes desc_content q)q}q(hUhh_h hlh%U desc_contentqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]q(hN)q}q(hX;Thread continuously sending tasks in the queue to the pool.qhhh X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/controllers.py:docstring of celery.worker.controllers.Mediatorqh%hSh'}q(h)]h*]h+]h,]h.]uh0Kh1hh]qh:X;Thread continuously sending tasks in the queue to the pool.qq}q(hhhhubaubhF)q}q(hUhhh hh%hIh'}q(h,]h+]h)]h*]h.]Uentries]q(hLX:ready_queue (celery.worker.controllers.Mediator attribute)hUtqauh0Nh1hh]ubh^)q}q(hUhhh hh%hah'}q(hchdXpyh,]h+]h)]h*]h.]heX attributeqhghuh0Nh1hh]q(hi)q}q(hX ready_queueqhhh hh%hmh'}q(h,]qhahpXcelery.worker.controllersqh+]h)]h*]h.]qhahuXMediator.ready_queuehwhvhxuh0Kh1hh]qh)q}q(hhhhh hh%hh'}q(h)]h*]h+]h,]h.]uh0Kh1hh]qh:X ready_queueqׅq}q(hUhhubaubaubh)q}q(hUhhh hh%hh'}q(h)]h*]h+]h,]h.]uh0Kh1hh]qhN)q}q(hX0The task queue, a :class:`Queue.Queue` instance.hhh hh%hSh'}q(h)]h*]h+]h,]h.]uh0Kh1hh]q(h:XThe task queue, a q⅁q}q(hXThe task queue, a hhubcsphinx.addnodes pending_xref q)q}q(hX:class:`Queue.Queue`qhhh Nh%U pending_xrefqh'}q(UreftypeXclassUrefwarnqU reftargetqX Queue.QueueU refdomainXpyqh,]h+]U refexplicith)]h*]h.]UrefdocqX-internals/reference/celery.worker.controllersqUpy:classqhvU py:moduleqhuh0Nh]qcdocutils.nodes literal q)q}q(hhh'}q(h)]h*]q(UxrefqhXpy-classqeh+]h,]h.]uhhh]qh:X Queue.Queueqq}q(hUhhubah%Uliteralqubaubh:X instance.qr}r(hX instance.hhubeubaubeubhF)r}r(hUhhh hh%hIh'}r(h,]h+]h)]h*]h.]Uentries]r(hLX7callback (celery.worker.controllers.Mediator attribute)h Utrauh0Nh1hh]ubh^)r}r(hUhhh hh%hah'}r (hchdXpyh,]h+]h)]h*]h.]heX attributer hgj uh0Nh1hh]r (hi)r }r (hXcallbackrhjh hAh%hmh'}r(h,]rh ahphh+]h)]h*]h.]rh ahuXMediator.callbackhwhvhxuh0Kh1hh]rh)r}r(hjhj h hAh%hh'}r(h)]h*]h+]h,]h.]uh0Kh1hh]rh:Xcallbackrr}r(hUhjubaubaubh)r}r(hUhjh hAh%hh'}r(h)]h*]h+]h,]h.]uh0Kh1hh]rhN)r}r(hXJThe callback used to process tasks retrieved from the :attr:`ready_queue`.hjh hh%hSh'}r (h)]h*]h+]h,]h.]uh0K h1hh]r!(h:X6The callback used to process tasks retrieved from the r"r#}r$(hX6The callback used to process tasks retrieved from the hjubh)r%}r&(hX:attr:`ready_queue`r'hjh Nh%hh'}r((UreftypeXattrhhX ready_queueU refdomainXpyr)h,]h+]U refexplicith)]h*]h.]hhhhvhhuh0Nh]r*h)r+}r,(hj'h'}r-(h)]h*]r.(hj)Xpy-attrr/eh+]h,]h.]uhj%h]r0h:X ready_queuer1r2}r3(hUhj+ubah%hubaubh:X.r4}r5(hX.hjubeubaubeubhF)r6}r7(hUhhh Nh%hIh'}r8(h,]h+]h)]h*]h.]Uentries]r9(hLX2move() (celery.worker.controllers.Mediator method)h Utr:auh0Nh1hh]ubh^)r;}r<(hUhhh Nh%hah'}r=(hchdXpyh,]h+]h)]h*]h.]heXmethodr>hgj>uh0Nh1hh]r?(hi)r@}rA(hXMediator.move()hj;h hlh%hmh'}rB(h,]rCh ahph!Xcelery.worker.controllersrDrE}rFbh+]h)]h*]h.]rGh ahuX Mediator.movehwhvhxuh0Nh1hh]rH(h)rI}rJ(hXmovehj@h hlh%hh'}rK(h)]h*]h+]h,]h.]uh0Nh1hh]rLh:XmoverMrN}rO(hUhjIubaubh)rP}rQ(hUhj@h hlh%hh'}rR(h)]h*]h+]h,]h.]uh0Nh1hh]ubeubh)rS}rT(hUhj;h hlh%hh'}rU(h)]h*]h+]h,]h.]uh0Nh1hh]ubeubhF)rV}rW(hUhhh Nh%hIh'}rX(h,]h+]h)]h*]h.]Uentries]rY(hLX1run() (celery.worker.controllers.Mediator method)h UtrZauh0Nh1hh]ubh^)r[}r\(hUhhh Nh%hah'}r](hchdXpyh,]h+]h)]h*]h.]heXmethodr^hgj^uh0Nh1hh]r_(hi)r`}ra(hXMediator.run()hj[h hlh%hmh'}rb(h,]rch ahph!Xcelery.worker.controllersrdre}rfbh+]h)]h*]h.]rgh ahuX Mediator.runhwhvhxuh0Nh1hh]rh(h)ri}rj(hXrunhj`h hlh%hh'}rk(h)]h*]h+]h,]h.]uh0Nh1hh]rlh:Xrunrmrn}ro(hUhjiubaubh)rp}rq(hUhj`h hlh%hh'}rr(h)]h*]h+]h,]h.]uh0Nh1hh]ubeubh)rs}rt(hUhj[h hlh%hh'}ru(h)]h*]h+]h,]h.]uh0Nh1hh]ubeubhF)rv}rw(hUhhh X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/controllers.py:docstring of celery.worker.controllers.Mediator.stoprxh%hIh'}ry(h,]h+]h)]h*]h.]Uentries]rz(hLX2stop() (celery.worker.controllers.Mediator method)hUtr{auh0Nh1hh]ubh^)r|}r}(hUhhh jxh%hah'}r~(hchdXpyh,]h+]h)]h*]h.]heXmethodrhgjuh0Nh1hh]r(hi)r}r(hXMediator.stop()rhj|h hlh%hmh'}r(h,]rhahph!Xcelery.worker.controllersrr}rbh+]h)]h*]h.]rhahuX Mediator.stophwhvhxuh0Nh1hh]r(h)r}r(hXstophjh hlh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]rh:Xstoprr}r(hUhjubaubh)r}r(hUhjh hlh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]ubeubh)r}r(hUhj|h hlh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]rhN)r}r(hXGracefully shutdown the thread.rhjh jxh%hSh'}r(h)]h*]h+]h,]h.]uh0Kh1hh]rh:XGracefully shutdown the thread.rr}r(hjhjubaubaubeubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh1hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh'}r(h)]UlevelKh,]h+]UsourcehAh*]h.]UlineKUtypeUINFOruh]rhN)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rh:XFHyperlink target "module-celery.worker.controllers" is not referenced.rr}r(hUhjubah%hSubah%Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh7NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUk/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.controllers.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hEh?hhhhjhjhhh j h j@hcdocutils.nodes topic r)r}r(hUhhh h#h%Utopicrh'}r(h)]h*]r(UcontentsrUlocalreh+]h,]rhah.]rh auh0Kh1hh]rcdocutils.nodes pending r)r}r(hX.. contents:: :local:hjU transformr cdocutils.transforms.parts Contents r!Udetailsr"}r#UlocalNsh%Upendingr$h'}r%(h)]h*]h+]h,]h.]uh]ubaubh j`uUsubstitution_namesr&}r'h%h1h'}r((h)]h,]h+]Usourceh#h*]h.]uU footnotesr)]r*Urefidsr+}r,ub.PKYDD>,X8X8Kcelery-2.1-archived/.doctrees/internals/reference/celery.worker.job.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X%celery.worker.job.TaskRequest.task_idqX&celery.worker.job.TaskRequest.executedqX)celery.worker.job.TaskRequest.success_msgqX$celery.worker.job.TaskRequest.kwargsq X'celery.worker.job.TaskRequest.task_nameq X8celery.worker.job.TaskRequest.extend_with_default_kwargsq X)celery.worker.job.TaskRequest.repr_resultq X*celery.worker.job.TaskRequest.from_messageq UcontentsqNX'celery.worker.job.TaskRequest.retry_msgqX"celery.worker.job.TaskRequest.argsqX(celery.worker.job.TaskRequest.email_bodyqX.celery.worker.job.TaskRequest.send_error_emailqX*celery.worker.job.TaskRequest.maybe_expireqX(celery.worker.job.TaskRequest.send_eventqX(celery.worker.job.TaskRequest.on_failureqX%celery.worker.job.TaskRequest.messageqX#celery.worker.job.execute_and_traceqX$celery.worker.job.TaskRequest.on_ackqX%celery.worker.job.TaskRequest.revokedqX'celery.worker.job.TaskRequest.shortinfoqX"celery.worker.job.InvalidTaskErrorqX.celery.worker.job.WorkerTaskTrace.execute_safeqX"celery.worker.job.TaskRequest.infoqX*celery.worker.job.TaskRequest.acknowledgedqX)celery.worker.job.TaskRequest.acknowledgeqX(celery.worker.job.TaskRequest.on_successq X+celery.worker.job.TaskRequest.email_subjectq!X(celery.worker.job.TaskRequest.on_timeoutq"X)celery.worker.job.TaskRequest.on_acceptedq#X!celery.worker.job.WorkerTaskTraceq$X0celery.worker.job.WorkerTaskTrace.handle_failureq%X#executable jobs - celery.worker.jobq&NX%celery.worker.job.TaskRequest.executeq'Xcelery.worker.job.TaskRequestq(X+celery.worker.job.TaskRequest.delivery_infoq)X.celery.worker.job.WorkerTaskTrace.handle_retryq*X'celery.worker.job.TaskRequest.error_msgq+X0celery.worker.job.TaskRequest.execute_using_poolq,X)celery.worker.job.WorkerTaskTrace.executeq-X&celery.worker.job.AlreadyExecutedErrorq.X&celery.worker.job.TaskRequest.on_retryq/X0celery.worker.job.WorkerTaskTrace.handle_successq0X(celery.worker.job.TaskRequest.time_startq1uUsubstitution_defsq2}q3Uparse_messagesq4]q5Ucurrent_sourceq6NU decorationq7NUautofootnote_startq8KUnameidsq9}q:(hhhhhhh h h h h h h h h h hUcontentsq;hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh h h!h!h"h"h#h#h$h$h%h%h&U!executable-jobs-celery-worker-jobqcdocutils.nodes section q?)q@}qA(U rawsourceqBUUparentqChUsourceqDcdocutils.nodes reprunicode qEXc/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.job.rstqFqG}qHbUtagnameqIUsectionqJU attributesqK}qL(UdupnamesqM]UclassesqN]UbackrefsqO]UidsqP]qQhqehIUtargetqfhK}qg(hM]hP]qhXmodule-celery.worker.jobqiahO]UismodhN]hR]uhTKhUhh=]ubcsphinx.addnodes index qj)qk}ql(hBUhCh@hDhehIUindexqmhK}qn(hP]hO]hM]hN]hR]Uentries]qo(UsingleqpXcelery.worker.job (module)Xmodule-celery.worker.jobUtqqauhTKhUhh=]ubhj)qr}qs(hBUhCh@hDX}/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.AlreadyExecutedErrorqthIhmhK}qu(hP]hO]hM]hN]hR]Uentries]qv(hpXAlreadyExecutedErrorqwh.UtqxauhTNhUhh=]ubcsphinx.addnodes desc qy)qz}q{(hBUhCh@hDhthIUdescq|hK}q}(Unoindexq~UdomainqXpyhP]hO]hM]hN]hR]UobjtypeqX exceptionqUdesctypeqhuhTNhUhh=]q(csphinx.addnodes desc_signature q)q}q(hBhwhChzhDU qhIUdesc_signatureqhK}q(hP]qh.aUmoduleqhEXcelery.worker.jobqq}qbhO]hM]hN]hR]qh.aUfullnameqhwUclassqUUfirstquhTNhUhh=]q(csphinx.addnodes desc_annotation q)q}q(hBX exception hChhDhhIUdesc_annotationqhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^X exception qq}q(hBUhChubaubcsphinx.addnodes desc_addname q)q}q(hBXcelery.worker.job.hChhDhhIU desc_addnameqhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^Xcelery.worker.job.qq}q(hBUhChubaubcsphinx.addnodes desc_name q)q}q(hBhwhChhDhhIU desc_nameqhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^XAlreadyExecutedErrorqq}q(hBUhChubaubeubcsphinx.addnodes desc_content q)q}q(hBUhChzhDhhIU desc_contentqhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qcdocutils.nodes paragraph q)q}q(hBXGTasks can only be executed once, as they might change world-wide state.qhChhDhthIU paragraphqhK}q(hM]hN]hO]hP]hR]uhTKhUhh=]qh^XGTasks can only be executed once, as they might change world-wide state.qq}q(hBhhChubaubaubeubhj)q}q(hBUhCh@hDXy/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.InvalidTaskErrorqhIhmhK}q(hP]hO]hM]hN]hR]Uentries]q(hpXInvalidTaskErrorqhUtqauhTNhUhh=]ubhy)q}q(hBUhCh@hDhhIh|hK}q(h~hXpyhP]hO]hM]hN]hR]hX exceptionqhhuhTNhUhh=]q(h)q}q(hBhhChhDhhIhhK}q(hP]qhahhEXcelery.worker.jobqυq}qbhO]hM]hN]hR]qhahhhUhuhTNhUhh=]q(h)q}q(hBX exception hChhDhhIhhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^X exception q؅q}q(hBUhChubaubh)q}q(hBXcelery.worker.job.hChhDhhIhhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^Xcelery.worker.job.q߅q}q(hBUhChubaubh)q}q(hBhhChhDhhIhhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^XInvalidTaskErrorq慁q}q(hBUhChubaubeubh)q}q(hBUhChhDhhIhhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh)q}q(hBX9The task has invalid data or is not properly constructed.qhChhDhhIhhK}q(hM]hN]hO]hP]hR]uhTKhUhh=]qh^X9The task has invalid data or is not properly constructed.qq}q(hBhhChubaubaubeubhj)q}q(hBUhCh@hDNhIhmhK}q(hP]hO]hM]hN]hR]Uentries]q(hpX(TaskRequest (class in celery.worker.job)h(UtqauhTNhUhh=]ubhy)q}q(hBUhCh@hDNhIh|hK}q(h~hXpyhP]hO]hM]hN]hR]hXclassqhhuhTNhUhh=]q(h)q}r(hBXTaskRequest(task_name, task_id, args, kwargs, on_ack=, retries=0, delivery_info=None, hostname=None, email_subject=None, email_body=None, logger=None, eventer=None, eta=None, expires=None, **opts)hChhDhhIhhK}r(hP]rh(ahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rh(ahX TaskRequestrhUhuhTNhUhh=]r(h)r }r (hBXclass hChhDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^Xclass r r}r(hBUhCj ubaubh)r}r(hBXcelery.worker.job.hChhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^Xcelery.worker.job.rr}r(hBUhCjubaubh)r}r(hBjhChhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X TaskRequestrr}r(hBUhCjubaubcsphinx.addnodes desc_parameterlist r)r}r (hBUhChhDhhIUdesc_parameterlistr!hK}r"(hM]hN]hO]hP]hR]uhTNhUhh=]r#(csphinx.addnodes desc_parameter r$)r%}r&(hBX task_namehK}r'(hM]hN]hO]hP]hR]uhCjh=]r(h^X task_namer)r*}r+(hBUhCj%ubahIUdesc_parameterr,ubj$)r-}r.(hBXtask_idhK}r/(hM]hN]hO]hP]hR]uhCjh=]r0h^Xtask_idr1r2}r3(hBUhCj-ubahIj,ubj$)r4}r5(hBXargshK}r6(hM]hN]hO]hP]hR]uhCjh=]r7h^Xargsr8r9}r:(hBUhCj4ubahIj,ubj$)r;}r<(hBXkwargshK}r=(hM]hN]hO]hP]hR]uhCjh=]r>h^Xkwargsr?r@}rA(hBUhCj;ubahIj,ubj$)rB}rC(hBX#on_ack=hK}rD(hM]hN]hO]hP]hR]uhCjh=]rEh^X#on_ack=rFrG}rH(hBUhCjBubahIj,ubj$)rI}rJ(hBX retries=0hK}rK(hM]hN]hO]hP]hR]uhCjh=]rLh^X retries=0rMrN}rO(hBUhCjIubahIj,ubj$)rP}rQ(hBXdelivery_info=NonehK}rR(hM]hN]hO]hP]hR]uhCjh=]rSh^Xdelivery_info=NonerTrU}rV(hBUhCjPubahIj,ubj$)rW}rX(hBX hostname=NonehK}rY(hM]hN]hO]hP]hR]uhCjh=]rZh^X hostname=Noner[r\}r](hBUhCjWubahIj,ubj$)r^}r_(hBXemail_subject=NonehK}r`(hM]hN]hO]hP]hR]uhCjh=]rah^Xemail_subject=Nonerbrc}rd(hBUhCj^ubahIj,ubj$)re}rf(hBXemail_body=NonehK}rg(hM]hN]hO]hP]hR]uhCjh=]rhh^Xemail_body=Nonerirj}rk(hBUhCjeubahIj,ubj$)rl}rm(hBX logger=NonehK}rn(hM]hN]hO]hP]hR]uhCjh=]roh^X logger=Nonerprq}rr(hBUhCjlubahIj,ubj$)rs}rt(hBX eventer=NonehK}ru(hM]hN]hO]hP]hR]uhCjh=]rvh^X eventer=Nonerwrx}ry(hBUhCjsubahIj,ubj$)rz}r{(hBXeta=NonehK}r|(hM]hN]hO]hP]hR]uhCjh=]r}h^Xeta=Noner~r}r(hBUhCjzubahIj,ubj$)r}r(hBX expires=NonehK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X expires=Nonerr}r(hBUhCjubahIj,ubj$)r}r(hBX**optshK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X**optsrr}r(hBUhCjubahIj,ubeubeubh)r}r(hBUhChhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]r(h)r}r(hBXA request for task execution.rhCjhDXt/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.TaskRequestrhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^XA request for task execution.rr}r(hBjhCjubaubcdocutils.nodes field_list r)r}r(hBUhCjhDNhIU field_listrhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rcdocutils.nodes field r)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]r(cdocutils.nodes field_name r)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X Parametersrr}r(hBUhCjubahIU field_namerubcdocutils.nodes field_body r)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]rcdocutils.nodes bullet_list r)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]r(cdocutils.nodes list_item r)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]rh)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]r(cdocutils.nodes strong r)r}r(hBX task_namehK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X task_namerr}r(hBUhCjubahIUstrongrubh^X -- rr}r(hBUhCjubh^Xsee rr}r(hBXsee hCjubcsphinx.addnodes pending_xref r)r}r(hBX:attr:`task_name`rhCjhDNhIU pending_xrefrhK}r(UreftypeXattrUrefwarnrU reftargetrX task_nameU refdomainXpyrhP]hO]U refexplicithM]hN]hR]UrefdocrX%internals/reference/celery.worker.jobrUpy:classrjU py:modulerXcelery.worker.jobruhTNh=]rcdocutils.nodes literal r)r}r(hBjhK}r(hM]hN]r(UxrefrjXpy-attrrehO]hP]hR]uhCjh=]rh^X task_namerr}r(hBUhCjubahIUliteralrubaubh^X.r}r(hBX.hCjubehIhubahIU list_itemrubj)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]rh)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]r(j)r}r(hBXtask_idhK}r(hM]hN]hO]hP]hR]uhCjh=]rh^Xtask_idrr}r(hBUhCjubahIjubh^X -- rr}r(hBUhCjubh^Xsee rr}r(hBXsee hCjubj)r}r(hBX:attr:`task_id`rhCjhDNhIjhK}r(UreftypeXattrjjXtask_idU refdomainXpyr hP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]r j)r }r (hBjhK}r (hM]hN]r(jj Xpy-attrrehO]hP]hR]uhCjh=]rh^Xtask_idrr}r(hBUhCj ubahIjubaubh^X.r}r(hBX.hCjubehIhubahIjubj)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]rh)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]r(j)r}r(hBXargshK}r (hM]hN]hO]hP]hR]uhCjh=]r!h^Xargsr"r#}r$(hBUhCjubahIjubh^X -- r%r&}r'(hBUhCjubh^Xsee r(r)}r*(hBXsee hCjubj)r+}r,(hBX :attr:`args`r-hCjhDNhIjhK}r.(UreftypeXattrjjXargsU refdomainXpyr/hP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]r0j)r1}r2(hBj-hK}r3(hM]hN]r4(jj/Xpy-attrr5ehO]hP]hR]uhCj+h=]r6h^Xargsr7r8}r9(hBUhCj1ubahIjubaubehIhubahIjubj)r:}r;(hBUhK}r<(hM]hN]hO]hP]hR]uhCjh=]r=h)r>}r?(hBUhK}r@(hM]hN]hO]hP]hR]uhCj:h=]rA(j)rB}rC(hBXkwargshK}rD(hM]hN]hO]hP]hR]uhCj>h=]rEh^XkwargsrFrG}rH(hBUhCjBubahIjubh^X -- rIrJ}rK(hBUhCj>ubh^Xsee rLrM}rN(hBXsee hCj>ubj)rO}rP(hBX:attr:`kwargs`rQhCj>hDNhIjhK}rR(UreftypeXattrjjXkwargsU refdomainXpyrShP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]rTj)rU}rV(hBjQhK}rW(hM]hN]rX(jjSXpy-attrrYehO]hP]hR]uhCjOh=]rZh^Xkwargsr[r\}r](hBUhCjUubahIjubaubh^X.r^}r_(hBX.hCj>ubehIhubahIjubehIU bullet_listr`ubahIU field_bodyraubehIUfieldrbubaubhj)rc}rd(hBUhCjhDjhIhmhK}re(hP]hO]hM]hN]hR]Uentries]rf(hpX3task_name (celery.worker.job.TaskRequest attribute)h UtrgauhTNhUhh=]ubhy)rh}ri(hBUhCjhDjhIh|hK}rj(h~hXpyhP]hO]hM]hN]hR]hX attributerkhjkuhTNhUhh=]rl(h)rm}rn(hBX task_namerohCjhhDjhIhhK}rp(hP]rqh ahjhO]hM]hN]hR]rrh ahXTaskRequest.task_namehjhuhTK hUhh=]rsh)rt}ru(hBjohCjmhDjhIhhK}rv(hM]hN]hO]hP]hR]uhTK hUhh=]rwh^X task_namerxry}rz(hBUhCjtubaubaubh)r{}r|(hBUhCjhhDjhIhhK}r}(hM]hN]hO]hP]hR]uhTK hUhh=]r~h)r}r(hBX=Kind of task. Must be a name registered in the task registry.rhCj{hDjhIhhK}r(hM]hN]hO]hP]hR]uhTK hUhh=]rh^X=Kind of task. Must be a name registered in the task registry.rr}r(hBjhCjubaubaubeubhj)r}r(hBUhCjhDjhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX1task_id (celery.worker.job.TaskRequest attribute)hUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDjhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hX attributerhjuhTNhUhh=]r(h)r}r(hBXtask_idrhCjhDjhIhhK}r(hP]rhahjhO]hM]hN]hR]rhahXTaskRequest.task_idhjhuhTKhUhh=]rh)r}r(hBjhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^Xtask_idrr}r(hBUhCjubaubaubh)r}r(hBUhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh)r}r(hBXUUID of the task.rhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^XUUID of the task.rr}r(hBjhCjubaubaubeubhj)r}r(hBUhCjhDjhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX.args (celery.worker.job.TaskRequest attribute)hUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDjhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hX attributerhjuhTNhUhh=]r(h)r}r(hBXargsrhCjhDjhIhhK}r(hP]rhahjhO]hM]hN]hR]rhahXTaskRequest.argshjhuhTKhUhh=]rh)r}r(hBjhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^Xargsrr}r(hBUhCjubaubaubh)r}r(hBUhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh)r}r(hBX2List of positional arguments to apply to the task.rhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^X2List of positional arguments to apply to the task.rr}r(hBjhCjubaubaubeubhj)r}r(hBUhCjhDjhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX0kwargs (celery.worker.job.TaskRequest attribute)h UtrauhTNhUhh=]ubhy)r}r(hBUhCjhDjhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hX attributerhjuhTNhUhh=]r(h)r}r(hBXkwargsrhCjhDjhIhhK}r(hP]rh ahjhO]hM]hN]hR]rh ahXTaskRequest.kwargshjhuhTKhUhh=]rh)r}r(hBjhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^Xkwargsrr}r(hBUhCjubaubaubh)r}r(hBUhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh)r}r(hBX2Mapping of keyword arguments to apply to the task.rhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^X2Mapping of keyword arguments to apply to the task.rr}r(hBjhCjubaubaubeubhj)r}r(hBUhCjhDjhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX0on_ack (celery.worker.job.TaskRequest attribute)hUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDjhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hX attributerhjuhTNhUhh=]r(h)r}r(hBXon_ackrhCjhDjhIhhK}r(hP]rhahjhO]hM]hN]hR]rhahXTaskRequest.on_ackhjhuhTKhUhh=]rh)r}r(hBjhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^Xon_ackrr }r (hBUhCjubaubaubh)r }r (hBUhCjhDjhIhhK}r (hM]hN]hO]hP]hR]uhTKhUhh=]rh)r}r(hBX5Callback called when the task should be acknowledged.rhCj hDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^X5Callback called when the task should be acknowledged.rr}r(hBjhCjubaubaubeubhj)r}r(hBUhCjhDjhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX1message (celery.worker.job.TaskRequest attribute)hUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDjhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hX attributerhjuhTNhUhh=]r (h)r!}r"(hBXmessager#hCjhDjhIhhK}r$(hP]r%hahjhO]hM]hN]hR]r&hahXTaskRequest.messagehjhuhTKhUhh=]r'h)r(}r)(hBj#hCj!hDjhIhhK}r*(hM]hN]hO]hP]hR]uhTKhUhh=]r+h^Xmessager,r-}r.(hBUhCj(ubaubaubh)r/}r0(hBUhCjhDjhIhhK}r1(hM]hN]hO]hP]hR]uhTKhUhh=]r2h)r3}r4(hBX>The original message sent. Used for acknowledging the message.r5hCj/hDjhIhhK}r6(hM]hN]hO]hP]hR]uhTKhUhh=]r7h^X>The original message sent. Used for acknowledging the message.r8r9}r:(hBj5hCj3ubaubaubeubhj)r;}r<(hBUhCjhDjhIhmhK}r=(hP]hO]hM]hN]hR]Uentries]r>(hpX2executed (celery.worker.job.TaskRequest attribute)hUtr?auhTNhUhh=]ubhy)r@}rA(hBUhCjhDjhIh|hK}rB(h~hXpyhP]hO]hM]hN]hR]hX attributerChjCuhTNhUhh=]rD(h)rE}rF(hBXexecutedrGhCj@hDjhIhhK}rH(hP]rIhahjhO]hM]hN]hR]rJhahXTaskRequest.executedhjhuhTK$hUhh=]rKh)rL}rM(hBjGhCjEhDjhIhhK}rN(hM]hN]hO]hP]hR]uhTK$hUhh=]rOh^XexecutedrPrQ}rR(hBUhCjLubaubaubh)rS}rT(hBUhCj@hDjhIhhK}rU(hM]hN]hO]hP]hR]uhTK$hUhh=]rVh)rW}rX(hBXXSet to :const:`True` if the task has been executed. A task should only be executed once.hCjShDjhIhhK}rY(hM]hN]hO]hP]hR]uhTK"hUhh=]rZ(h^XSet to r[r\}r](hBXSet to hCjWubj)r^}r_(hBX :const:`True`r`hCjWhDNhIjhK}ra(UreftypeXconstjjXTrueU refdomainXpyrbhP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]rcj)rd}re(hBj`hK}rf(hM]hN]rg(jjbXpy-constrhehO]hP]hR]uhCj^h=]rih^XTruerjrk}rl(hBUhCjdubahIjubaubh^XD if the task has been executed. A task should only be executed once.rmrn}ro(hBXD if the task has been executed. A task should only be executed once.hCjWubeubaubeubhj)rp}rq(hBUhCjhDjhIhmhK}rr(hP]hO]hM]hN]hR]Uentries]rs(hpX7delivery_info (celery.worker.job.TaskRequest attribute)h)UtrtauhTNhUhh=]ubhy)ru}rv(hBUhCjhDjhIh|hK}rw(h~hXpyhP]hO]hM]hN]hR]hX attributerxhjxuhTNhUhh=]ry(h)rz}r{(hBX delivery_infor|hCjuhDjhIhhK}r}(hP]r~h)ahjhO]hM]hN]hR]rh)ahXTaskRequest.delivery_infohjhuhTK)hUhh=]rh)r}r(hBj|hCjzhDjhIhhK}r(hM]hN]hO]hP]hR]uhTK)hUhh=]rh^X delivery_inforr}r(hBUhCjubaubaubh)r}r(hBUhCjuhDjhIhhK}r(hM]hN]hO]hP]hR]uhTK)hUhh=]rh)r}r(hBXOAdditional delivery info, e.g. the contains the path from producer to consumer.rhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTK'hUhh=]rh^XOAdditional delivery info, e.g. the contains the path from producer to consumer.rr}r(hBjhCjubaubaubeubhj)r}r(hBUhCjhDjhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX6acknowledged (celery.worker.job.TaskRequest attribute)hUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDjhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hX attributerhjuhTNhUhh=]r(h)r}r(hBX acknowledgedrhCjhDhehIhhK}r(hP]rhahjhO]hM]hN]hR]rhahXTaskRequest.acknowledgedhjhuhTKhUhh=]rh)r}r(hBjhCjhDhehIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^X acknowledgedrr}r(hBUhCjubaubaubh)r}r(hBUhCjhDhehIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh)r}r(hBX7Set to :const:`True` if the task has been acknowledged.hCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTK,hUhh=]r(h^XSet to rr}r(hBXSet to hCjubj)r}r(hBX :const:`True`rhCjhDNhIjhK}r(UreftypeXconstjjXTrueU refdomainXpyrhP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]rj)r}r(hBjhK}r(hM]hN]r(jjXpy-constrehO]hP]hR]uhCjh=]rh^XTruerr}r(hBUhCjubahIjubaubh^X# if the task has been acknowledged.rr}r(hBX# if the task has been acknowledged.hCjubeubaubeubhj)r}r(hBUhCjhDNhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX4acknowledge() (celery.worker.job.TaskRequest method)hUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDNhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hXmethodrhjuhTNhUhh=]r(h)r}r(hBXTaskRequest.acknowledge()hCjhDhhIhhK}r(hP]rhahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rhahXTaskRequest.acknowledgehjhuhTNhUhh=]r(h)r}r(hBX acknowledgehCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X acknowledgerr}r(hBUhCjubaubj)r}r(hBUhCjhDhhIj!hK}r(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubh)r}r(hBUhCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r}r(hBUhCjhDNhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX6acknowledged (celery.worker.job.TaskRequest attribute)X*celery.worker.job.TaskRequest.acknowledgedUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDNhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hX attributerhjuhTNhUhh=]r(h)r}r(hBXTaskRequest.acknowledgedhCjhDU rhIhhK}r(hP]hhEXcelery.worker.jobrr}rbhO]hM]hN]hR]hXTaskRequest.acknowledgedhjhuhTNhUhh=]r(h)r}r(hBX acknowledgedhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X acknowledgedrr}r(hBUhCjubaubh)r}r(hBX = FalsehCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X = Falserr}r(hBUhCjubaubeubh)r }r (hBUhCjhDjhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r }r (hBUhCjhDNhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX4email_body (celery.worker.job.TaskRequest attribute)hUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDNhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hX attributerhjuhTNhUhh=]r(h)r}r(hBXTaskRequest.email_bodyhCjhDjhIhhK}r(hP]rhahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rhahXTaskRequest.email_bodyhjhuhTNhUhh=]r(h)r}r (hBX email_bodyhCjhDjhIhhK}r!(hM]hN]hO]hP]hR]uhTNhUhh=]r"h^X email_bodyr#r$}r%(hBUhCjubaubh)r&}r'(hBX = '\nTask %(name)s with id %(id)s raised exception:\n%(exc)r\n\n\nTask was called with args: %(args)s kwargs: %(kwargs)s.\n\nThe contents of the full traceback was:\n\n%(traceback)s\n\n-- \nJust to let you know,\nceleryd at %(hostname)s.\n'hCjhDjhIhhK}r((hM]hN]hO]hP]hR]uhTNhUhh=]r)h^X = '\nTask %(name)s with id %(id)s raised exception:\n%(exc)r\n\n\nTask was called with args: %(args)s kwargs: %(kwargs)s.\n\nThe contents of the full traceback was:\n\n%(traceback)s\n\n-- \nJust to let you know,\nceleryd at %(hostname)s.\n'r*r+}r,(hBUhCj&ubaubeubh)r-}r.(hBUhCjhDjhIhhK}r/(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r0}r1(hBUhCjhDNhIhmhK}r2(hP]hO]hM]hN]hR]Uentries]r3(hpX7email_subject (celery.worker.job.TaskRequest attribute)h!Utr4auhTNhUhh=]ubhy)r5}r6(hBUhCjhDNhIh|hK}r7(h~hXpyhP]hO]hM]hN]hR]hX attributer8hj8uhTNhUhh=]r9(h)r:}r;(hBXTaskRequest.email_subjecthCj5hDjhIhhK}r<(hP]r=h!ahhEXcelery.worker.jobr>r?}r@bhO]hM]hN]hR]rAh!ahXTaskRequest.email_subjecthjhuhTNhUhh=]rB(h)rC}rD(hBX email_subjecthCj:hDjhIhhK}rE(hM]hN]hO]hP]hR]uhTNhUhh=]rFh^X email_subjectrGrH}rI(hBUhCjCubaubh)rJ}rK(hBXO = ' [celery@%(hostname)s] Error: Task %(name)s (%(id)s): %(exc)s\n 'hCj:hDjhIhhK}rL(hM]hN]hO]hP]hR]uhTNhUhh=]rMh^XO = ' [celery@%(hostname)s] Error: Task %(name)s (%(id)s): %(exc)s\n 'rNrO}rP(hBUhCjJubaubeubh)rQ}rR(hBUhCj5hDjhIhhK}rS(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)rT}rU(hBUhCjhDNhIhmhK}rV(hP]hO]hM]hN]hR]Uentries]rW(hpX3error_msg (celery.worker.job.TaskRequest attribute)h+UtrXauhTNhUhh=]ubhy)rY}rZ(hBUhCjhDNhIh|hK}r[(h~hXpyhP]hO]hM]hN]hR]hX attributer\hj\uhTNhUhh=]r](h)r^}r_(hBXTaskRequest.error_msghCjYhDjhIhhK}r`(hP]rah+ahhEXcelery.worker.jobrbrc}rdbhO]hM]hN]hR]reh+ahXTaskRequest.error_msghjhuhTNhUhh=]rf(h)rg}rh(hBX error_msghCj^hDjhIhhK}ri(hM]hN]hO]hP]hR]uhTNhUhh=]rjh^X error_msgrkrl}rm(hBUhCjgubaubh)rn}ro(hBXQ = ' Task %(name)s[%(id)s] raised exception: %(exc)s\n%(traceback)s\n 'hCj^hDjhIhhK}rp(hM]hN]hO]hP]hR]uhTNhUhh=]rqh^XQ = ' Task %(name)s[%(id)s] raised exception: %(exc)s\n%(traceback)s\n 'rrrs}rt(hBUhCjnubaubeubh)ru}rv(hBUhCjYhDjhIhhK}rw(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)rx}ry(hBUhCjhDNhIhmhK}rz(hP]hO]hM]hN]hR]Uentries]r{(hpX0execute() (celery.worker.job.TaskRequest method)h'Utr|auhTNhUhh=]ubhy)r}}r~(hBUhCjhDNhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hXmethodrhjuhTNhUhh=]r(h)r}r(hBX0TaskRequest.execute(loglevel=None, logfile=None)hCj}hDhhIhhK}r(hP]rh'ahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rh'ahXTaskRequest.executehjhuhTNhUhh=]r(h)r}r(hBXexecutehCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^Xexecuterr}r(hBUhCjubaubj)r}r(hBUhCjhDhhIj!hK}r(hM]hN]hO]hP]hR]uhTNhUhh=]r(j$)r}r(hBX loglevel=NonehK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X loglevel=Nonerr}r(hBUhCjubahIj,ubj$)r}r(hBX logfile=NonehK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X logfile=Nonerr}r(hBUhCjubahIj,ubeubeubh)r}r(hBUhCj}hDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]r(h)r}r(hBX/Execute the task in a :class:`WorkerTaskTrace`.hCjhDX|/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.TaskRequest.executerhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]r(h^XExecute the task in a rr}r(hBXExecute the task in a hCjubj)r}r(hBX:class:`WorkerTaskTrace`rhCjhDNhIjhK}r(UreftypeXclassjjXWorkerTaskTraceU refdomainXpyrhP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]rj)r}r(hBjhK}r(hM]hN]r(jjXpy-classrehO]hP]hR]uhCjh=]rh^XWorkerTaskTracerr}r(hBUhCjubahIjubaubh^X.r}r(hBX.hCjubeubj)r}r(hBUhCjhDNhIjhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rj)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]r(j)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X Parametersrr}r(hBUhCjubahIjubj)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]rj)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]r(j)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]rh)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]r(j)r}r(hBXloglevelhK}r(hM]hN]hO]hP]hR]uhCjh=]rh^Xloglevelrr}r(hBUhCjubahIjubh^X -- rr}r(hBUhCjubh^XThe loglevel used by the task.rr}r(hBXThe loglevel used by the task.rhCjubehIhubahIjubj)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]rh)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]r(j)r}r(hBXlogfilehK}r(hM]hN]hO]hP]hR]uhCjh=]rh^Xlogfilerr}r(hBUhCjubahIjubh^X -- rr}r(hBUhCjubh^XThe logfile used by the task.rr}r(hBXThe logfile used by the task.rhCjubehIhubahIjubehIj`ubahIjaubehIjbubaubeubeubhj)r}r(hBUhCjhDNhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX;execute_using_pool() (celery.worker.job.TaskRequest method)h,UtrauhTNhUhh=]ubhy)r }r (hBUhCjhDNhIh|hK}r (h~hXpyhP]hO]hM]hN]hR]hXmethodr hj uhTNhUhh=]r (h)r}r(hBXATaskRequest.execute_using_pool(pool, loglevel=None, logfile=None)hCj hDhhIhhK}r(hP]rh,ahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rh,ahXTaskRequest.execute_using_poolhjhuhTNhUhh=]r(h)r}r(hBXexecute_using_poolhCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^Xexecute_using_poolrr}r(hBUhCjubaubj)r}r(hBUhCjhDhhIj!hK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r!(j$)r"}r#(hBXpoolhK}r$(hM]hN]hO]hP]hR]uhCjh=]r%h^Xpoolr&r'}r((hBUhCj"ubahIj,ubj$)r)}r*(hBX loglevel=NonehK}r+(hM]hN]hO]hP]hR]uhCjh=]r,h^X loglevel=Noner-r.}r/(hBUhCj)ubahIj,ubj$)r0}r1(hBX logfile=NonehK}r2(hM]hN]hO]hP]hR]uhCjh=]r3h^X logfile=Noner4r5}r6(hBUhCj0ubahIj,ubeubeubh)r7}r8(hBUhCj hDhhIhhK}r9(hM]hN]hO]hP]hR]uhTNhUhh=]r:(h)r;}r<(hBX@Like :meth:`execute`, but using the :mod:`multiprocessing` pool.hCj7hDX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.TaskRequest.execute_using_poolr=hIhhK}r>(hM]hN]hO]hP]hR]uhTKhUhh=]r?(h^XLike r@rA}rB(hBXLike hCj;ubj)rC}rD(hBX:meth:`execute`rEhCj;hDNhIjhK}rF(UreftypeXmethjjXexecuteU refdomainXpyrGhP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]rHj)rI}rJ(hBjEhK}rK(hM]hN]rL(jjGXpy-methrMehO]hP]hR]uhCjCh=]rNh^X execute()rOrP}rQ(hBUhCjIubahIjubaubh^X, but using the rRrS}rT(hBX, but using the hCj;ubj)rU}rV(hBX:mod:`multiprocessing`rWhCj;hDNhIjhK}rX(UreftypeXmodjjXmultiprocessingU refdomainXpyrYhP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]rZj)r[}r\(hBjWhK}r](hM]hN]r^(jjYXpy-modr_ehO]hP]hR]uhCjUh=]r`h^Xmultiprocessingrarb}rc(hBUhCj[ubahIjubaubh^X pool.rdre}rf(hBX pool.hCj;ubeubj)rg}rh(hBUhCj7hDNhIjhK}ri(hM]hN]hO]hP]hR]uhTNhUhh=]rjj)rk}rl(hBUhK}rm(hM]hN]hO]hP]hR]uhCjgh=]rn(j)ro}rp(hBUhK}rq(hM]hN]hO]hP]hR]uhCjkh=]rrh^X Parametersrsrt}ru(hBUhCjoubahIjubj)rv}rw(hBUhK}rx(hM]hN]hO]hP]hR]uhCjkh=]ryj)rz}r{(hBUhK}r|(hM]hN]hO]hP]hR]uhCjvh=]r}(j)r~}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjzh=]rh)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCj~h=]r(j)r}r(hBXpoolhK}r(hM]hN]hO]hP]hR]uhCjh=]rh^Xpoolrr}r(hBUhCjubahIjubh^X -- rr}r(hBUhCjubh^XA rr}r(hBXA hCjubj)r}r(hBX:class:`multiprocessing.Pool`rhCjhDNhIjhK}r(UreftypeXclassjjXmultiprocessing.PoolU refdomainXpyrhP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]rj)r}r(hBjhK}r(hM]hN]r(jjXpy-classrehO]hP]hR]uhCjh=]rh^Xmultiprocessing.Poolrr}r(hBUhCjubahIjubaubh^X instance.rr}r(hBX instance.hCjubehIhubahIjubj)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjzh=]rh)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]r(j)r}r(hBXloglevelhK}r(hM]hN]hO]hP]hR]uhCjh=]rh^Xloglevelrr}r(hBUhCjubahIjubh^X -- rr}r(hBUhCjubh^XThe loglevel used by the task.rr}r(hBXThe loglevel used by the task.hCjubehIhubahIjubj)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjzh=]rh)r}r(hBUhK}r(hM]hN]hO]hP]hR]uhCjh=]r(j)r}r(hBXlogfilehK}r(hM]hN]hO]hP]hR]uhCjh=]rh^Xlogfilerr}r(hBUhCjubahIjubh^X -- rr}r(hBUhCjubh^XThe logfile used by the task.rr}r(hBXThe logfile used by the task.hCjubehIhubahIjubehIj`ubahIjaubehIjbubaubeubeubhj)r}r(hBUhCjhDNhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX2executed (celery.worker.job.TaskRequest attribute)X&celery.worker.job.TaskRequest.executedUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDNhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hX attributerhjuhTNhUhh=]r(h)r}r(hBXTaskRequest.executedhCjhDjhIhhK}r(hP]hhEXcelery.worker.jobrr}rbhO]hM]hN]hR]hXTaskRequest.executedhjhuhTNhUhh=]r(h)r}r(hBXexecutedhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^Xexecutedrr}r(hBUhCjubaubh)r}r(hBX = FalsehCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X = Falserr}r(hBUhCjubaubeubh)r}r(hBUhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r}r(hBUhCjhDX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.TaskRequest.extend_with_default_kwargsrhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpXCextend_with_default_kwargs() (celery.worker.job.TaskRequest method)h UtrauhTNhUhh=]ubhy)r}r(hBUhCjhDjhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hXmethodrhjuhTNhUhh=]r(h)r}r(hBX9TaskRequest.extend_with_default_kwargs(loglevel, logfile)hCjhDhhIhhK}r(hP]rh ahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rh ahX&TaskRequest.extend_with_default_kwargshjhuhTNhUhh=]r(h)r}r(hBXextend_with_default_kwargshCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^Xextend_with_default_kwargsr r }r (hBUhCjubaubj)r }r (hBUhCjhDhhIj!hK}r(hM]hN]hO]hP]hR]uhTNhUhh=]r(j$)r}r(hBXloglevelhK}r(hM]hN]hO]hP]hR]uhCj h=]rh^Xloglevelrr}r(hBUhCjubahIj,ubj$)r}r(hBXlogfilehK}r(hM]hN]hO]hP]hR]uhCj h=]rh^Xlogfilerr}r(hBUhCjubahIj,ubeubeubh)r}r(hBUhCjhDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r!(h)r"}r#(hBX@Extend the tasks keyword arguments with standard task arguments.r$hCjhDjhIhhK}r%(hM]hN]hO]hP]hR]uhTKhUhh=]r&h^X@Extend the tasks keyword arguments with standard task arguments.r'r(}r)(hBj$hCj"ubaubh)r*}r+(hBXsCurrently these are ``logfile``, ``loglevel``, ``task_id``, ``task_name``, ``task_retries``, and ``delivery_info``.hCjhDjhIhhK}r,(hM]hN]hO]hP]hR]uhTKhUhh=]r-(h^XCurrently these are r.r/}r0(hBXCurrently these are hCj*ubj)r1}r2(hBX ``logfile``hK}r3(hM]hN]hO]hP]hR]uhCj*h=]r4h^Xlogfiler5r6}r7(hBUhCj1ubahIjubh^X, r8r9}r:(hBX, hCj*ubj)r;}r<(hBX ``loglevel``hK}r=(hM]hN]hO]hP]hR]uhCj*h=]r>h^Xloglevelr?r@}rA(hBUhCj;ubahIjubh^X, rBrC}rD(hBX, hCj*ubj)rE}rF(hBX ``task_id``hK}rG(hM]hN]hO]hP]hR]uhCj*h=]rHh^Xtask_idrIrJ}rK(hBUhCjEubahIjubh^X, rLrM}rN(hBX, hCj*ubj)rO}rP(hBX ``task_name``hK}rQ(hM]hN]hO]hP]hR]uhCj*h=]rRh^X task_namerSrT}rU(hBUhCjOubahIjubh^X, rVrW}rX(hBX, hCj*ubj)rY}rZ(hBX``task_retries``hK}r[(hM]hN]hO]hP]hR]uhCj*h=]r\h^X task_retriesr]r^}r_(hBUhCjYubahIjubh^X, and r`ra}rb(hBX, and hCj*ubj)rc}rd(hBX``delivery_info``hK}re(hM]hN]hO]hP]hR]uhCj*h=]rfh^X delivery_inforgrh}ri(hBUhCjcubahIjubh^X.rj}rk(hBX.hCj*ubeubh)rl}rm(hBX;See :meth:`celery.task.base.Task.run` for more information.hCjhDjhIhhK}rn(hM]hN]hO]hP]hR]uhTKhUhh=]ro(h^XSee rprq}rr(hBXSee hCjlubj)rs}rt(hBX!:meth:`celery.task.base.Task.run`ruhCjlhDNhIjhK}rv(UreftypeXmethjjXcelery.task.base.Task.runU refdomainXpyrwhP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]rxj)ry}rz(hBjuhK}r{(hM]hN]r|(jjwXpy-methr}ehO]hP]hR]uhCjsh=]r~h^Xcelery.task.base.Task.run()rr}r(hBUhCjyubahIjubaubh^X for more information.rr}r(hBX for more information.hCjlubeubeubeubhj)r}r(hBUhCjhDX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.TaskRequest.from_messagerhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX;from_message() (celery.worker.job.TaskRequest class method)h UtrauhTNhUhh=]ubhy)r}r(hBUhCjhDjhIh|hK}r(h~hXpyrhP]hO]hM]hN]hR]hX classmethodrhjuhTNhUhh=]r(h)r}r(hBX~TaskRequest.from_message(message, message_data, on_ack=, logger=None, eventer=None, hostname=None)hCjhDhhIhhK}r(hP]rh ahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rh ahXTaskRequest.from_messagehjhuhTNhUhh=]r(h)r}r(hBU classmethod rhCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X classmethod rr}r(hBUhCjubaubh)r}r(hBX from_messagehCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X from_messagerr}r(hBUhCjubaubj)r}r(hBUhCjhDhhIj!hK}r(hM]hN]hO]hP]hR]uhTNhUhh=]r(j$)r}r(hBXmessagehK}r(hM]hN]hO]hP]hR]uhCjh=]rh^Xmessagerr}r(hBUhCjubahIj,ubj$)r}r(hBX message_datahK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X message_datarr}r(hBUhCjubahIj,ubj$)r}r(hBX#on_ack=hK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X#on_ack=rr}r(hBUhCjubahIj,ubj$)r}r(hBX logger=NonehK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X logger=Nonerr}r(hBUhCjubahIj,ubj$)r}r(hBX eventer=NonehK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X eventer=Nonerr}r(hBUhCjubahIj,ubj$)r}r(hBX hostname=NonehK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X hostname=Nonerr}r(hBUhCjubahIj,ubeubeubh)r}r(hBUhCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]r(h)r}r(hBXbCreate a :class:`TaskRequest` from a task message sent by :class:`celery.messaging.TaskPublisher`.hCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]r(h^X Create a rr}r(hBX Create a hCjubj)r}r(hBX:class:`TaskRequest`rhCjhDNhIjhK}r(UreftypeXclassjjX TaskRequestU refdomainXpyrhP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]rj)r}r(hBjhK}r(hM]hN]r(jjXpy-classrehO]hP]hR]uhCjh=]rh^X TaskRequestrr}r(hBUhCjubahIjubaubh^X from a task message sent by rr}r(hBX from a task message sent by hCjubj)r}r(hBX':class:`celery.messaging.TaskPublisher`rhCjhDNhIjhK}r(UreftypeXclassjjXcelery.messaging.TaskPublisherU refdomainXpyrhP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]rj)r}r(hBjhK}r(hM]hN]r(jjXpy-classrehO]hP]hR]uhCjh=]rh^Xcelery.messaging.TaskPublisherrr}r(hBUhCjubahIjubaubh^X.r}r(hBX.hCjubeubj)r}r(hBUhCjhDjhIjhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rj)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCjh=]r (j)r }r(hBUhK}r(hM]hN]hO]hP]hR]uhCj h=]r(h^XRaisesrr}r(hBUhCj ubh^X r}r(hBUhCj ubj)r}r(hBUhK}r(UreftypeUexcrU reftargetXUnknownTaskErrorrU refdomainjhP]hO]U refexplicithM]hN]hR]uhCj h=]rh^XUnknownTaskErrorrr}r(hBjhCjubahIjubehIjubj)r}r (hBUhK}r!(hM]hN]hO]hP]hR]uhCj h=]r"h)r#}r$(hBUhK}r%(hM]hN]hO]hP]hR]uhCjh=]r&h^XFif the message does not describe a task, the message is also rejected.r'r(}r)(hBXFif the message does not describe a task, the message is also rejected.r*hCj#ubahIhubahIjaubehIjbubaubh)r+}r,(hBX:returns :class:`TaskRequest`:r-hCjhDjhIhhK}r.(hM]hN]hO]hP]hR]uhTKhUhh=]r/(h^X :returns r0r1}r2(hBX :returns hCj+ubj)r3}r4(hBX:class:`TaskRequest`r5hCj+hDNhIjhK}r6(UreftypeXclassjjX TaskRequestU refdomainXpyr7hP]hO]U refexplicithM]hN]hR]jjjjjjuhTNh=]r8j)r9}r:(hBj5hK}r;(hM]hN]r<(jj7Xpy-classr=ehO]hP]hR]uhCj3h=]r>h^X TaskRequestr?r@}rA(hBUhCj9ubahIjubaubh^X:rB}rC(hBX:hCj+ubeubeubeubhj)rD}rE(hBUhCjhDNhIhmhK}rF(hP]hO]hM]hN]hR]Uentries]rG(hpX-info() (celery.worker.job.TaskRequest method)hUtrHauhTNhUhh=]ubhy)rI}rJ(hBUhCjhDNhIh|hK}rK(h~hXpyhP]hO]hM]hN]hR]hXmethodrLhjLuhTNhUhh=]rM(h)rN}rO(hBXTaskRequest.info(safe=False)hCjIhDhhIhhK}rP(hP]rQhahhEXcelery.worker.jobrRrS}rTbhO]hM]hN]hR]rUhahXTaskRequest.infohjhuhTNhUhh=]rV(h)rW}rX(hBXinfohCjNhDhhIhhK}rY(hM]hN]hO]hP]hR]uhTNhUhh=]rZh^Xinfor[r\}r](hBUhCjWubaubj)r^}r_(hBUhCjNhDhhIj!hK}r`(hM]hN]hO]hP]hR]uhTNhUhh=]raj$)rb}rc(hBX safe=FalsehK}rd(hM]hN]hO]hP]hR]uhCj^h=]reh^X safe=Falserfrg}rh(hBUhCjbubahIj,ubaubeubh)ri}rj(hBUhCjIhDhhIhhK}rk(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)rl}rm(hBUhCjhDNhIhmhK}rn(hP]hO]hM]hN]hR]Uentries]ro(hpX5maybe_expire() (celery.worker.job.TaskRequest method)hUtrpauhTNhUhh=]ubhy)rq}rr(hBUhCjhDNhIh|hK}rs(h~hXpyhP]hO]hM]hN]hR]hXmethodrthjtuhTNhUhh=]ru(h)rv}rw(hBXTaskRequest.maybe_expire()hCjqhDhhIhhK}rx(hP]ryhahhEXcelery.worker.jobrzr{}r|bhO]hM]hN]hR]r}hahXTaskRequest.maybe_expirehjhuhTNhUhh=]r~(h)r}r(hBX maybe_expirehCjvhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X maybe_expirerr}r(hBUhCjubaubj)r}r(hBUhCjvhDhhIj!hK}r(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubh)r}r(hBUhCjqhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r}r(hBUhCjhDX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.TaskRequest.on_acceptedrhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX4on_accepted() (celery.worker.job.TaskRequest method)h#UtrauhTNhUhh=]ubhy)r}r(hBUhCjhDjhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hXmethodrhjuhTNhUhh=]r(h)r}r(hBX!TaskRequest.on_accepted(*a, **kw)hCjhDhhIhhK}r(hP]rh#ahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rh#ahXTaskRequest.on_acceptedhjhuhTNhUhh=]r(h)r}r(hBX on_acceptedhCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X on_acceptedrr}r(hBUhCjubaubj)r}r(hBUhCjhDhhIj!hK}r(hM]hN]hO]hP]hR]uhTNhUhh=]r(j$)r}r(hBX*ahK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X*arr}r(hBUhCjubahIj,ubj$)r}r(hBX**kwhK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X**kwrr}r(hBUhCjubahIj,ubeubeubh)r}r(hBUhCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh)r}r(hBX4Handler called when task is accepted by worker pool.rhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^X4Handler called when task is accepted by worker pool.rr}r(hBjhCjubaubaubeubhj)r}r(hBUhCjhDX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.TaskRequest.on_failurerhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX3on_failure() (celery.worker.job.TaskRequest method)hUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDjhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hXmethodrhjuhTNhUhh=]r(h)r}r(hBX TaskRequest.on_failure(exc_info)hCjhDhhIhhK}r(hP]rhahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rhahXTaskRequest.on_failurehjhuhTNhUhh=]r(h)r}r(hBX on_failurehCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X on_failurerr}r(hBUhCjubaubj)r}r(hBUhCjhDhhIj!hK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rj$)r}r(hBXexc_infohK}r(hM]hN]hO]hP]hR]uhCjh=]rh^Xexc_inforr}r(hBUhCjubahIj,ubaubeubh)r}r(hBUhCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh)r}r(hBX1The handler used if the task raised an exception.rhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTKhUhh=]rh^X1The handler used if the task raised an exception.rr}r(hBjhCjubaubaubeubhj)r}r(hBUhCjhDNhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX1on_retry() (celery.worker.job.TaskRequest method)h/UtrauhTNhUhh=]ubhy)r}r(hBUhCjhDNhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hXmethodrhjuhTNhUhh=]r(h)r}r(hBXTaskRequest.on_retry(exc_info)hCjhDhhIhhK}r(hP]rh/ahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rh/ahXTaskRequest.on_retryhjhuhTNhUhh=]r (h)r }r (hBXon_retryhCjhDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^Xon_retryrr}r(hBUhCj ubaubj)r}r(hBUhCjhDhhIj!hK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rj$)r}r(hBXexc_infohK}r(hM]hN]hO]hP]hR]uhCjh=]rh^Xexc_inforr}r(hBUhCjubahIj,ubaubeubh)r}r(hBUhCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r}r (hBUhCjhDX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.TaskRequest.on_successr!hIhmhK}r"(hP]hO]hM]hN]hR]Uentries]r#(hpX3on_success() (celery.worker.job.TaskRequest method)h Utr$auhTNhUhh=]ubhy)r%}r&(hBUhCjhDj!hIh|hK}r'(h~hXpyhP]hO]hM]hN]hR]hXmethodr(hj(uhTNhUhh=]r)(h)r*}r+(hBX!TaskRequest.on_success(ret_value)hCj%hDhhIhhK}r,(hP]r-h ahhEXcelery.worker.jobr.r/}r0bhO]hM]hN]hR]r1h ahXTaskRequest.on_successhjhuhTNhUhh=]r2(h)r3}r4(hBX on_successhCj*hDhhIhhK}r5(hM]hN]hO]hP]hR]uhTNhUhh=]r6h^X on_successr7r8}r9(hBUhCj3ubaubj)r:}r;(hBUhCj*hDhhIj!hK}r<(hM]hN]hO]hP]hR]uhTNhUhh=]r=j$)r>}r?(hBX ret_valuehK}r@(hM]hN]hO]hP]hR]uhCj:h=]rAh^X ret_valuerBrC}rD(hBUhCj>ubahIj,ubaubeubh)rE}rF(hBUhCj%hDhhIhhK}rG(hM]hN]hO]hP]hR]uhTNhUhh=]rHh)rI}rJ(hBXXThe handler used if the task was successfully processed ( without raising an exception).rKhCjEhDj!hIhhK}rL(hM]hN]hO]hP]hR]uhTKhUhh=]rMh^XXThe handler used if the task was successfully processed ( without raising an exception).rNrO}rP(hBjKhCjIubaubaubeubhj)rQ}rR(hBUhCjhDNhIhmhK}rS(hP]hO]hM]hN]hR]Uentries]rT(hpX3on_timeout() (celery.worker.job.TaskRequest method)h"UtrUauhTNhUhh=]ubhy)rV}rW(hBUhCjhDNhIh|hK}rX(h~hXpyhP]hO]hM]hN]hR]hXmethodrYhjYuhTNhUhh=]rZ(h)r[}r\(hBXTaskRequest.on_timeout(soft)hCjVhDhhIhhK}r](hP]r^h"ahhEXcelery.worker.jobr_r`}rabhO]hM]hN]hR]rbh"ahXTaskRequest.on_timeouthjhuhTNhUhh=]rc(h)rd}re(hBX on_timeouthCj[hDhhIhhK}rf(hM]hN]hO]hP]hR]uhTNhUhh=]rgh^X on_timeoutrhri}rj(hBUhCjdubaubj)rk}rl(hBUhCj[hDhhIj!hK}rm(hM]hN]hO]hP]hR]uhTNhUhh=]rnj$)ro}rp(hBXsofthK}rq(hM]hN]hO]hP]hR]uhCjkh=]rrh^Xsoftrsrt}ru(hBUhCjoubahIj,ubaubeubh)rv}rw(hBUhCjVhDhhIhhK}rx(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)ry}rz(hBUhCjhDNhIhmhK}r{(hP]hO]hM]hN]hR]Uentries]r|(hpX4repr_result() (celery.worker.job.TaskRequest method)h Utr}auhTNhUhh=]ubhy)r~}r(hBUhCjhDNhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hXmethodrhjuhTNhUhh=]r(h)r}r(hBX*TaskRequest.repr_result(result, maxlen=46)hCj~hDhhIhhK}r(hP]rh ahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rh ahXTaskRequest.repr_resulthjhuhTNhUhh=]r(h)r}r(hBX repr_resulthCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X repr_resultrr}r(hBUhCjubaubj)r}r(hBUhCjhDhhIj!hK}r(hM]hN]hO]hP]hR]uhTNhUhh=]r(j$)r}r(hBXresulthK}r(hM]hN]hO]hP]hR]uhCjh=]rh^Xresultrr}r(hBUhCjubahIj,ubj$)r}r(hBX maxlen=46hK}r(hM]hN]hO]hP]hR]uhCjh=]rh^X maxlen=46rr}r(hBUhCjubahIj,ubeubeubh)r}r(hBUhCj~hDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r}r(hBUhCjhDNhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX3retry_msg (celery.worker.job.TaskRequest attribute)hUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDNhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hX attributerhjuhTNhUhh=]r(h)r}r(hBXTaskRequest.retry_msghCjhDjhIhhK}r(hP]rhahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rhahXTaskRequest.retry_msghjhuhTNhUhh=]r(h)r}r(hBX retry_msghCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X retry_msgrr}r(hBUhCjubaubh)r}r(hBX7 = ' Task %(name)s[%(id)s] retry: %(exc)s\n 'hCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^X7 = ' Task %(name)s[%(id)s] retry: %(exc)s\n 'rr}r(hBUhCjubaubeubh)r}r(hBUhCjhDjhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r}r(hBUhCjhDNhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX0revoked() (celery.worker.job.TaskRequest method)hUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDNhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hXmethodrhjuhTNhUhh=]r(h)r}r(hBXTaskRequest.revoked()hCjhDhhIhhK}r(hP]rhahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rhahXTaskRequest.revokedhjhuhTNhUhh=]r(h)r}r(hBXrevokedhCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]rh^Xrevokedrr}r(hBUhCjubaubj)r}r(hBUhCjhDhhIj!hK}r(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubh)r}r(hBUhCjhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r}r(hBUhCjhDNhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX9send_error_email() (celery.worker.job.TaskRequest method)hUtrauhTNhUhh=]ubhy)r}r(hBUhCjhDNhIh|hK}r(h~hXpyhP]hO]hM]hN]hR]hXmethodrhjuhTNhUhh=]r(h)r}r(hBXcTaskRequest.send_error_email(task, context, exc, whitelist=None, enabled=False, fail_silently=True)hCjhDhhIhhK}r(hP]rhahhEXcelery.worker.jobrr}rbhO]hM]hN]hR]rhahXTaskRequest.send_error_emailhjhuhTNhUhh=]r(h)r}r (hBXsend_error_emailhCjhDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^Xsend_error_emailr r }r (hBUhCjubaubj)r }r (hBUhCjhDhhIj!hK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r (j$)r }r (hBXtaskhK}r (hM]hN]hO]hP]hR]uhCj h=]r h^Xtaskr r }r (hBUhCj ubahIj,ubj$)r }r (hBXcontexthK}r (hM]hN]hO]hP]hR]uhCj h=]r h^Xcontextr r }r (hBUhCj ubahIj,ubj$)r }r (hBXexchK}r (hM]hN]hO]hP]hR]uhCj h=]r h^Xexcr r }r (hBUhCj ubahIj,ubj$)r }r (hBXwhitelist=NonehK}r! (hM]hN]hO]hP]hR]uhCj h=]r" h^Xwhitelist=Noner# r$ }r% (hBUhCj ubahIj,ubj$)r& }r' (hBX enabled=FalsehK}r( (hM]hN]hO]hP]hR]uhCj h=]r) h^X enabled=Falser* r+ }r, (hBUhCj& ubahIj,ubj$)r- }r. (hBXfail_silently=TruehK}r/ (hM]hN]hO]hP]hR]uhCj h=]r0 h^Xfail_silently=Truer1 r2 }r3 (hBUhCj- ubahIj,ubeubeubh)r4 }r5 (hBUhCjhDhhIhhK}r6 (hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r7 }r8 (hBUhCjhDNhIhmhK}r9 (hP]hO]hM]hN]hR]Uentries]r: (hpX3send_event() (celery.worker.job.TaskRequest method)hUtr; auhTNhUhh=]ubhy)r< }r= (hBUhCjhDNhIh|hK}r> (h~hXpyhP]hO]hM]hN]hR]hXmethodr? hj? uhTNhUhh=]r@ (h)rA }rB (hBX&TaskRequest.send_event(type, **fields)hCj< hDhhIhhK}rC (hP]rD hahhEXcelery.worker.jobrE rF }rG bhO]hM]hN]hR]rH hahXTaskRequest.send_eventhjhuhTNhUhh=]rI (h)rJ }rK (hBX send_eventhCjA hDhhIhhK}rL (hM]hN]hO]hP]hR]uhTNhUhh=]rM h^X send_eventrN rO }rP (hBUhCjJ ubaubj)rQ }rR (hBUhCjA hDhhIj!hK}rS (hM]hN]hO]hP]hR]uhTNhUhh=]rT (j$)rU }rV (hBXtypehK}rW (hM]hN]hO]hP]hR]uhCjQ h=]rX h^XtyperY rZ }r[ (hBUhCjU ubahIj,ubj$)r\ }r] (hBX**fieldshK}r^ (hM]hN]hO]hP]hR]uhCjQ h=]r_ h^X**fieldsr` ra }rb (hBUhCj\ ubahIj,ubeubeubh)rc }rd (hBUhCj< hDhhIhhK}re (hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)rf }rg (hBUhCjhDNhIhmhK}rh (hP]hO]hM]hN]hR]Uentries]ri (hpX2shortinfo() (celery.worker.job.TaskRequest method)hUtrj auhTNhUhh=]ubhy)rk }rl (hBUhCjhDNhIh|hK}rm (h~hXpyhP]hO]hM]hN]hR]hXmethodrn hjn uhTNhUhh=]ro (h)rp }rq (hBXTaskRequest.shortinfo()hCjk hDhhIhhK}rr (hP]rs hahhEXcelery.worker.jobrt ru }rv bhO]hM]hN]hR]rw hahXTaskRequest.shortinfohjhuhTNhUhh=]rx (h)ry }rz (hBX shortinfohCjp hDhhIhhK}r{ (hM]hN]hO]hP]hR]uhTNhUhh=]r| h^X shortinfor} r~ }r (hBUhCjy ubaubj)r }r (hBUhCjp hDhhIj!hK}r (hM]hN]hO]hP]hR]uhTNhUhh=]ubeubh)r }r (hBUhCjk hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r }r (hBUhCjhDNhIhmhK}r (hP]hO]hM]hN]hR]Uentries]r (hpX5success_msg (celery.worker.job.TaskRequest attribute)hUtr auhTNhUhh=]ubhy)r }r (hBUhCjhDNhIh|hK}r (h~hXpyhP]hO]hM]hN]hR]hX attributer hj uhTNhUhh=]r (h)r }r (hBXTaskRequest.success_msghCj hDjhIhhK}r (hP]r hahhEXcelery.worker.jobr r }r bhO]hM]hN]hR]r hahXTaskRequest.success_msghjhuhTNhUhh=]r (h)r }r (hBX success_msghCj hDjhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^X success_msgr r }r (hBUhCj ubaubh)r }r (hBXT = ' Task %(name)s[%(id)s] succeeded in %(runtime)ss: %(return_value)s\n 'hCj hDjhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^XT = ' Task %(name)s[%(id)s] succeeded in %(runtime)ss: %(return_value)s\n 'r r }r (hBUhCj ubaubeubh)r }r (hBUhCj hDjhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r }r (hBUhCjhDNhIhmhK}r (hP]hO]hM]hN]hR]Uentries]r (hpX4time_start (celery.worker.job.TaskRequest attribute)h1Utr auhTNhUhh=]ubhy)r }r (hBUhCjhDNhIh|hK}r (h~hXpyhP]hO]hM]hN]hR]hX attributer hj uhTNhUhh=]r (h)r }r (hBXTaskRequest.time_starthCj hDjhIhhK}r (hP]r h1ahhEXcelery.worker.jobr r }r bhO]hM]hN]hR]r h1ahXTaskRequest.time_starthjhuhTNhUhh=]r (h)r }r (hBX time_starthCj hDjhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^X time_startr r }r (hBUhCj ubaubh)r }r (hBX = NonehCj hDjhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^X = Noner r }r (hBUhCj ubaubeubh)r }r (hBUhCj hDjhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]ubeubeubeubhj)r }r (hBUhCh@hDNhIhmhK}r (hP]hO]hM]hN]hR]Uentries]r (hpX,WorkerTaskTrace (class in celery.worker.job)h$Utr auhTNhUhh=]ubhy)r }r (hBUhCh@hDNhIh|hK}r (h~hXpyhP]hO]hM]hN]hR]hXclassr hj uhTNhUhh=]r (h)r }r (hBX WorkerTaskTrace(*args, **kwargs)hCj hDhhIhhK}r (hP]r h$ahhEXcelery.worker.jobr r }r bhO]hM]hN]hR]r h$ahXWorkerTaskTracer hUhuhTNhUhh=]r (h)r }r (hBXclass hCj hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^Xclass r r }r (hBUhCj ubaubh)r }r (hBXcelery.worker.job.hCj hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^Xcelery.worker.job.r r }r (hBUhCj ubaubh)r }r (hBj hCj hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^XWorkerTaskTracer r }r (hBUhCj ubaubj)r }r (hBUhCj hDhhIj!hK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r (j$)r }r (hBX*argshK}r (hM]hN]hO]hP]hR]uhCj h=]r h^X*argsr r }r (hBUhCj ubahIj,ubj$)r }r (hBX**kwargshK}r (hM]hN]hO]hP]hR]uhCj h=]r h^X**kwargsr r }r (hBUhCj ubahIj,ubeubeubh)r }r (hBUhCj hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r (h)r }r (hBXWraps the task in a jail, catches all exceptions, and saves the status and result of the task execution to the task meta backend.r hCj hDXx/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.WorkerTaskTracer hIhhK}r (hM]hN]hO]hP]hR]uhTKhUhh=]r h^XWraps the task in a jail, catches all exceptions, and saves the status and result of the task execution to the task meta backend.r r }r (hBj hCj ubaubh)r }r (hBXvIf the call was successful, it saves the result to the task result backend, and sets the task status to ``"SUCCESS"``.hCj hDj hIhhK}r (hM]hN]hO]hP]hR]uhTKhUhh=]r (h^XhIf the call was successful, it saves the result to the task result backend, and sets the task status to r r }r (hBXhIf the call was successful, it saves the result to the task result backend, and sets the task status to hCj ubj)r }r (hBX ``"SUCCESS"``hK}r (hM]hN]hO]hP]hR]uhCj h=]r h^X "SUCCESS"r! r" }r# (hBUhCj ubahIjubh^X.r$ }r% (hBX.hCj ubeubh)r& }r' (hBXIf the call raises :exc:`celery.exceptions.RetryTaskError`, it extracts the original exception, uses that as the result and sets the task status to ``"RETRY"``.hCj hDj hIhhK}r( (hM]hN]hO]hP]hR]uhTKhUhh=]r) (h^XIf the call raises r* r+ }r, (hBXIf the call raises hCj& ubj)r- }r. (hBX':exc:`celery.exceptions.RetryTaskError`r/ hCj& hDNhIjhK}r0 (UreftypeXexcjjX celery.exceptions.RetryTaskErrorU refdomainXpyr1 hP]hO]U refexplicithM]hN]hR]jjjj jjuhTNh=]r2 j)r3 }r4 (hBj/ hK}r5 (hM]hN]r6 (jj1 Xpy-excr7 ehO]hP]hR]uhCj- h=]r8 h^X celery.exceptions.RetryTaskErrorr9 r: }r; (hBUhCj3 ubahIjubaubh^XZ, it extracts the original exception, uses that as the result and sets the task status to r< r= }r> (hBXZ, it extracts the original exception, uses that as the result and sets the task status to hCj& ubj)r? }r@ (hBX ``"RETRY"``hK}rA (hM]hN]hO]hP]hR]uhCj& h=]rB h^X"RETRY"rC rD }rE (hBUhCj? ubahIjubh^X.rF }rG (hBX.hCj& ubeubh)rH }rI (hBXzIf the call results in an exception, it saves the exception as the task result, and sets the task status to ``"FAILURE"``.hCj hDj hIhhK}rJ (hM]hN]hO]hP]hR]uhTK hUhh=]rK (h^XlIf the call results in an exception, it saves the exception as the task result, and sets the task status to rL rM }rN (hBXlIf the call results in an exception, it saves the exception as the task result, and sets the task status to hCjH ubj)rO }rP (hBX ``"FAILURE"``hK}rQ (hM]hN]hO]hP]hR]uhCjH h=]rR h^X "FAILURE"rS rT }rU (hBUhCjO ubahIjubh^X.rV }rW (hBX.hCjH ubeubj)rX }rY (hBUhCj hDNhIjhK}rZ (hM]hN]hO]hP]hR]uhTNhUhh=]r[ (j)r\ }r] (hBUhK}r^ (hM]hN]hO]hP]hR]uhCjX h=]r_ (j)r` }ra (hBUhK}rb (hM]hN]hO]hP]hR]uhCj\ h=]rc h^X Parametersrd re }rf (hBUhCj` ubahIjubj)rg }rh (hBUhK}ri (hM]hN]hO]hP]hR]uhCj\ h=]rj j)rk }rl (hBUhK}rm (hM]hN]hO]hP]hR]uhCjg h=]rn (j)ro }rp (hBUhK}rq (hM]hN]hO]hP]hR]uhCjk h=]rr h)rs }rt (hBUhK}ru (hM]hN]hO]hP]hR]uhCjo h=]rv (j)rw }rx (hBX task_namehK}ry (hM]hN]hO]hP]hR]uhCjs h=]rz h^X task_namer{ r| }r} (hBUhCjw ubahIjubh^X -- r~ r }r (hBUhCjs ubh^X The name of the task to execute.r r }r (hBX The name of the task to execute.hCjs ubehIhubahIjubj)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCjk h=]r h)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCj h=]r (j)r }r (hBXtask_idhK}r (hM]hN]hO]hP]hR]uhCj h=]r h^Xtask_idr r }r (hBUhCj ubahIjubh^X -- r r }r (hBUhCj ubh^XThe unique id of the task.r r }r (hBXThe unique id of the task.hCj ubehIhubahIjubj)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCjk h=]r h)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCj h=]r (j)r }r (hBXargshK}r (hM]hN]hO]hP]hR]uhCj h=]r h^Xargsr r }r (hBUhCj ubahIjubh^X -- r r }r (hBUhCj ubh^X3List of positional args to pass on to the function.r r }r (hBX3List of positional args to pass on to the function.hCj ubehIhubahIjubj)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCjk h=]r h)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCj h=]r (j)r }r (hBXkwargshK}r (hM]hN]hO]hP]hR]uhCj h=]r h^Xkwargsr r }r (hBUhCj ubahIjubh^X -- r r }r (hBUhCj ubh^X5Keyword arguments mapping to pass on to the function.r r }r (hBX5Keyword arguments mapping to pass on to the function.hCj ubehIhubahIjubehIj`ubahIjaubehIjbubj)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCjX h=]r (j)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCj h=]r h^XReturnsr r }r (hBUhCj ubahIjubj)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCj h=]r h)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCj h=]r h^XVthe evaluated functions return value on success, or the exception instance on failure.r r }r (hBXVthe evaluated functions return value on success, or the exception instance on failure.hCj ubahIhubahIjaubehIjbubeubhj)r }r (hBUhCj hDX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.WorkerTaskTrace.executer hIhmhK}r (hP]hO]hM]hN]hR]Uentries]r (hpX4execute() (celery.worker.job.WorkerTaskTrace method)h-Utr auhTNhUhh=]ubhy)r }r (hBUhCj hDj hIh|hK}r (h~hXpyhP]hO]hM]hN]hR]hXmethodr hj uhTNhUhh=]r (h)r }r (hBXWorkerTaskTrace.execute()hCj hDhhIhhK}r (hP]r h-ahhEXcelery.worker.jobr r }r bhO]hM]hN]hR]r h-ahXWorkerTaskTrace.executehj huhTNhUhh=]r (h)r }r (hBXexecutehCj hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^Xexecuter r }r (hBUhCj ubaubj)r }r (hBUhCj hDhhIj!hK}r (hM]hN]hO]hP]hR]uhTNhUhh=]ubeubh)r }r (hBUhCj hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h)r }r (hBX0Execute, trace and store the result of the task.r hCj hDj hIhhK}r (hM]hN]hO]hP]hR]uhTKhUhh=]r h^X0Execute, trace and store the result of the task.r r }r (hBj hCj ubaubaubeubhj)r }r (hBUhCj hDX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.WorkerTaskTrace.execute_safer hIhmhK}r (hP]hO]hM]hN]hR]Uentries]r (hpX9execute_safe() (celery.worker.job.WorkerTaskTrace method)hUtr auhTNhUhh=]ubhy)r }r (hBUhCj hDj hIh|hK}r (h~hXpyhP]hO]hM]hN]hR]hXmethodr hj uhTNhUhh=]r (h)r }r (hBX-WorkerTaskTrace.execute_safe(*args, **kwargs)hCj hDhhIhhK}r (hP]r hahhEXcelery.worker.jobr r }r bhO]hM]hN]hR]r hahXWorkerTaskTrace.execute_safehj huhTNhUhh=]r (h)r }r (hBX execute_safehCj hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^X execute_safer r }r (hBUhCj ubaubj)r }r (hBUhCj hDhhIj!hK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r! (j$)r" }r# (hBX*argshK}r$ (hM]hN]hO]hP]hR]uhCj h=]r% h^X*argsr& r' }r( (hBUhCj" ubahIj,ubj$)r) }r* (hBX**kwargshK}r+ (hM]hN]hO]hP]hR]uhCj h=]r, h^X**kwargsr- r. }r/ (hBUhCj) ubahIj,ubeubeubh)r0 }r1 (hBUhCj hDhhIhhK}r2 (hM]hN]hO]hP]hR]uhTNhUhh=]r3 h)r4 }r5 (hBX,Same as :meth:`execute`, but catches errors.hCj0 hDj hIhhK}r6 (hM]hN]hO]hP]hR]uhTKhUhh=]r7 (h^XSame as r8 r9 }r: (hBXSame as hCj4 ubj)r; }r< (hBX:meth:`execute`r= hCj4 hDNhIjhK}r> (UreftypeXmethjjXexecuteU refdomainXpyr? hP]hO]U refexplicithM]hN]hR]jjjj jjuhTNh=]r@ j)rA }rB (hBj= hK}rC (hM]hN]rD (jj? Xpy-methrE ehO]hP]hR]uhCj; h=]rF h^X execute()rG rH }rI (hBUhCjA ubahIjubaubh^X, but catches errors.rJ rK }rL (hBX, but catches errors.hCj4 ubeubaubeubhj)rM }rN (hBUhCj hDX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.WorkerTaskTrace.handle_failurerO hIhmhK}rP (hP]hO]hM]hN]hR]Uentries]rQ (hpX;handle_failure() (celery.worker.job.WorkerTaskTrace method)h%UtrR auhTNhUhh=]ubhy)rS }rT (hBUhCj hDjO hIh|hK}rU (h~hXpyhP]hO]hM]hN]hR]hXmethodrV hjV uhTNhUhh=]rW (h)rX }rY (hBX5WorkerTaskTrace.handle_failure(exc, type_, tb, strtb)hCjS hDhhIhhK}rZ (hP]r[ h%ahhEXcelery.worker.jobr\ r] }r^ bhO]hM]hN]hR]r_ h%ahXWorkerTaskTrace.handle_failurehj huhTNhUhh=]r` (h)ra }rb (hBXhandle_failurehCjX hDhhIhhK}rc (hM]hN]hO]hP]hR]uhTNhUhh=]rd h^Xhandle_failurere rf }rg (hBUhCja ubaubj)rh }ri (hBUhCjX hDhhIj!hK}rj (hM]hN]hO]hP]hR]uhTNhUhh=]rk (j$)rl }rm (hBXexchK}rn (hM]hN]hO]hP]hR]uhCjh h=]ro h^Xexcrp rq }rr (hBUhCjl ubahIj,ubj$)rs }rt (hBXtype_hK}ru (hM]hN]hO]hP]hR]uhCjh h=]rv h^Xtype_rw rx }ry (hBUhCjs ubahIj,ubj$)rz }r{ (hBXtbhK}r| (hM]hN]hO]hP]hR]uhCjh h=]r} h^Xtbr~ r }r (hBUhCjz ubahIj,ubj$)r }r (hBXstrtbhK}r (hM]hN]hO]hP]hR]uhCjh h=]r h^Xstrtbr r }r (hBUhCj ubahIj,ubeubeubh)r }r (hBUhCjS hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h)r }r (hBXHandle exception.r hCj hDjO hIhhK}r (hM]hN]hO]hP]hR]uhTKhUhh=]r h^XHandle exception.r r }r (hBj hCj ubaubaubeubhj)r }r (hBUhCj hDX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.WorkerTaskTrace.handle_retryr hIhmhK}r (hP]hO]hM]hN]hR]Uentries]r (hpX9handle_retry() (celery.worker.job.WorkerTaskTrace method)h*Utr auhTNhUhh=]ubhy)r }r (hBUhCj hDj hIh|hK}r (h~hXpyhP]hO]hM]hN]hR]hXmethodr hj uhTNhUhh=]r (h)r }r (hBX3WorkerTaskTrace.handle_retry(exc, type_, tb, strtb)hCj hDhhIhhK}r (hP]r h*ahhEXcelery.worker.jobr r }r bhO]hM]hN]hR]r h*ahXWorkerTaskTrace.handle_retryhj huhTNhUhh=]r (h)r }r (hBX handle_retryhCj hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^X handle_retryr r }r (hBUhCj ubaubj)r }r (hBUhCj hDhhIj!hK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r (j$)r }r (hBXexchK}r (hM]hN]hO]hP]hR]uhCj h=]r h^Xexcr r }r (hBUhCj ubahIj,ubj$)r }r (hBXtype_hK}r (hM]hN]hO]hP]hR]uhCj h=]r h^Xtype_r r }r (hBUhCj ubahIj,ubj$)r }r (hBXtbhK}r (hM]hN]hO]hP]hR]uhCj h=]r h^Xtbr r }r (hBUhCj ubahIj,ubj$)r }r (hBXstrtbhK}r (hM]hN]hO]hP]hR]uhCj h=]r h^Xstrtbr r }r (hBUhCj ubahIj,ubeubeubh)r }r (hBUhCj hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h)r }r (hBXHandle retry exception.r hCj hDj hIhhK}r (hM]hN]hO]hP]hR]uhTKhUhh=]r h^XHandle retry exception.r r }r (hBj hCj ubaubaubeubhj)r }r (hBUhCj hDX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.WorkerTaskTrace.handle_successr hIhmhK}r (hP]hO]hM]hN]hR]Uentries]r (hpX;handle_success() (celery.worker.job.WorkerTaskTrace method)h0Utr auhTNhUhh=]ubhy)r }r (hBUhCj hDj hIh|hK}r (h~hXpyhP]hO]hM]hN]hR]hXmethodr hj uhTNhUhh=]r (h)r }r (hBX-WorkerTaskTrace.handle_success(retval, *args)hCj hDhhIhhK}r (hP]r h0ahhEXcelery.worker.jobr r }r bhO]hM]hN]hR]r h0ahXWorkerTaskTrace.handle_successhj huhTNhUhh=]r (h)r }r (hBXhandle_successhCj hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h^Xhandle_successr r }r (hBUhCj ubaubj)r }r (hBUhCj hDhhIj!hK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r (j$)r }r (hBXretvalhK}r (hM]hN]hO]hP]hR]uhCj h=]r h^Xretvalr r }r (hBUhCj ubahIj,ubj$)r }r (hBX*argshK}r (hM]hN]hO]hP]hR]uhCj h=]r h^X*argsr r }r (hBUhCj ubahIj,ubeubeubh)r }r (hBUhCj hDhhIhhK}r (hM]hN]hO]hP]hR]uhTNhUhh=]r h)r }r (hBXHandle successful execution.r hCj hDj hIhhK}r (hM]hN]hO]hP]hR]uhTKhUhh=]r h^XHandle successful execution.r r }r (hBj hCj ubaubaubeubeubeubhj)r }r (hBUhCh@hDXz/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/job.py:docstring of celery.worker.job.execute_and_tracer hIhmhK}r (hP]hO]hM]hN]hR]Uentries]r (hpX1execute_and_trace() (in module celery.worker.job)hUtr auhTNhUhh=]ubhy)r }r (hBUhCh@hDj hIh|hK}r (h~hXpyhP]hO]hM]hN]hR]hXfunctionr hj uhTNhUhh=]r (h)r }r (hBX-execute_and_trace(task_name, *args, **kwargs)hCj hDhhIhhK}r! (hP]r" hahhEXcelery.worker.jobr# r$ }r% bhO]hM]hN]hR]r& hahXexecute_and_tracer' hUhuhTNhUhh=]r( (h)r) }r* (hBXcelery.worker.job.hCj hDhhIhhK}r+ (hM]hN]hO]hP]hR]uhTNhUhh=]r, h^Xcelery.worker.job.r- r. }r/ (hBUhCj) ubaubh)r0 }r1 (hBj' hCj hDhhIhhK}r2 (hM]hN]hO]hP]hR]uhTNhUhh=]r3 h^Xexecute_and_tracer4 r5 }r6 (hBUhCj0 ubaubj)r7 }r8 (hBUhCj hDhhIj!hK}r9 (hM]hN]hO]hP]hR]uhTNhUhh=]r: (j$)r; }r< (hBX task_namehK}r= (hM]hN]hO]hP]hR]uhCj7 h=]r> h^X task_namer? r@ }rA (hBUhCj; ubahIj,ubj$)rB }rC (hBX*argshK}rD (hM]hN]hO]hP]hR]uhCj7 h=]rE h^X*argsrF rG }rH (hBUhCjB ubahIj,ubj$)rI }rJ (hBX**kwargshK}rK (hM]hN]hO]hP]hR]uhCj7 h=]rL h^X**kwargsrM rN }rO (hBUhCjI ubahIj,ubeubeubh)rP }rQ (hBUhCj hDhhIhhK}rR (hM]hN]hO]hP]hR]uhTNhUhh=]rS (h)rT }rU (hBXDThis is a pickleable method used as a target when applying to pools.rV hCjP hDj hIhhK}rW (hM]hN]hO]hP]hR]uhTKhUhh=]rX h^XDThis is a pickleable method used as a target when applying to pools.rY rZ }r[ (hBjV hCjT ubaubh)r\ }r] (hBXIt's the same as::r^ hCjP hDj hIhhK}r_ (hM]hN]hO]hP]hR]uhTKhUhh=]r` h^XIt's the same as:ra rb }rc (hBXIt's the same as:hCj\ ubaubcdocutils.nodes literal_block rd )re }rf (hBX>>>> WorkerTaskTrace(task_name, *args, **kwargs).execute_safe()hCjP hDj hIU literal_blockrg hK}rh (U xml:spaceri Upreserverj hP]hO]hM]hN]hR]uhTMhUhh=]rk h^X>>>> WorkerTaskTrace(task_name, *args, **kwargs).execute_safe()rl rm }rn (hBUhCje ubaubeubeubeubahBUU transformerro NU footnote_refsrp }rq Urefnamesrr }rs Usymbol_footnotesrt ]ru Uautofootnote_refsrv ]rw Usymbol_footnote_refsrx ]ry U citationsrz ]r{ hUhU current_liner| NUtransform_messagesr} ]r~ cdocutils.nodes system_message r )r }r (hBUhK}r (hM]UlevelKhP]hO]UsourcehehN]hR]UlineKUtypeUINFOr uh=]r h)r }r (hBUhK}r (hM]hN]hO]hP]hR]uhCj h=]r h^X>Hyperlink target "module-celery.worker.job" is not referenced.r r }r (hBUhCj ubahIhubahIUsystem_messager ubaUreporterr NUid_startr KU autofootnotesr ]r U citation_refsr }r Uindirect_targetsr ]r Usettingsr (cdocutils.frontend Values r or }r (Ufootnote_backlinksr KUrecord_dependenciesr NU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr Nh[NUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr UUTF-8r U_sourcer Uc/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.job.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr j Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (h jhj!hjEhj h jh jmh(hUhhhU q?h#Utargetq@h%}qA(h']h*]qBXmodule-celery.db.sessionqCah)]Uismodh(]h,]uh.Kh/hh]ubcsphinx.addnodes index qD)qE}qF(hUhhhh?h#UindexqGh%}qH(h*]h)]h']h(]h,]Uentries]qI(UsingleqJXcelery.db.session (module)Xmodule-celery.db.sessionUtqKauh.Kh/hh]ubhD)qL}qM(hUhhhNh#hGh%}qN(h*]h)]h']h(]h,]Uentries]qO(hJX-ResultSession() (in module celery.db.session)hUtqPauh.Nh/hh]ubcsphinx.addnodes desc qQ)qR}qS(hUhhhNh#UdescqTh%}qU(UnoindexqVUdomainqWXpyh*]h)]h']h(]h,]UobjtypeqXXfunctionqYUdesctypeqZhYuh.Nh/hh]q[(csphinx.addnodes desc_signature q\)q]}q^(hX#ResultSession(dburi=None, **kwargs)hhRhU q_h#Udesc_signatureq`h%}qa(h*]qbhaUmoduleqchXcelery.db.sessionqdqe}qfbh)]h']h(]h,]qghaUfullnameqhX ResultSessionqiUclassqjUUfirstqkuh.Nh/hh]ql(csphinx.addnodes desc_addname qm)qn}qo(hXcelery.db.session.hh]hh_h#U desc_addnameqph%}qq(h']h(]h)]h*]h,]uh.Nh/hh]qrh8Xcelery.db.session.qsqt}qu(hUhhnubaubcsphinx.addnodes desc_name qv)qw}qx(hhihh]hh_h#U desc_nameqyh%}qz(h']h(]h)]h*]h,]uh.Nh/hh]q{h8X ResultSessionq|q}}q~(hUhhwubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhh]hh_h#Udesc_parameterlistqh%}q(h']h(]h)]h*]h,]uh.Nh/hh]q(csphinx.addnodes desc_parameter q)q}q(hX dburi=Noneh%}q(h']h(]h)]h*]h,]uhhh]qh8X dburi=Noneqq}q(hUhhubah#Udesc_parameterqubh)q}q(hX**kwargsh%}q(h']h(]h)]h*]h,]uhhh]qh8X**kwargsqq}q(hUhhubah#hubeubeubcsphinx.addnodes desc_content q)q}q(hUhhRhh_h#U desc_contentqh%}q(h']h(]h)]h*]h,]uh.Nh/hh]ubeubhD)q}q(hUhhhNh#hGh%}q(h*]h)]h']h(]h,]Uentries]q(hJX.create_session() (in module celery.db.session)hUtqauh.Nh/hh]ubhQ)q}q(hUhhhNh#hTh%}q(hVhWXpyh*]h)]h']h(]h,]hXXfunctionqhZhuh.Nh/hh]q(h\)q}q(hXcreate_session(dburi, **kwargs)hhhh_h#h`h%}q(h*]qhahchXcelery.db.sessionqq}qbh)]h']h(]h,]qhahhXcreate_sessionqhjUhkuh.Nh/hh]q(hm)q}q(hXcelery.db.session.hhhh_h#hph%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh8Xcelery.db.session.qq}q(hUhhubaubhv)q}q(hhhhhh_h#hyh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh8Xcreate_sessionqq}q(hUhhubaubh)q}q(hUhhhh_h#hh%}q(h']h(]h)]h*]h,]uh.Nh/hh]q(h)q}q(hXdburih%}q(h']h(]h)]h*]h,]uhhh]qh8Xdburiqąq}q(hUhhubah#hubh)q}q(hX**kwargsh%}q(h']h(]h)]h*]h,]uhhh]qh8X**kwargsq˅q}q(hUhhubah#hubeubeubh)q}q(hUhhhh_h#hh%}q(h']h(]h)]h*]h,]uh.Nh/hh]ubeubhD)q}q(hUhhhNh#hGh%}q(h*]h)]h']h(]h,]Uentries]q(hJX*get_engine() (in module celery.db.session)h Utqauh.Nh/hh]ubhQ)q}q(hUhhhNh#hTh%}q(hVhWXpyh*]h)]h']h(]h,]hXXfunctionqhZhuh.Nh/hh]q(h\)q}q(hXget_engine(dburi, **kwargs)hhhh_h#h`h%}q(h*]qh ahchXcelery.db.sessionq߅q}qbh)]h']h(]h,]qh ahhX get_engineqhjUhkuh.Nh/hh]q(hm)q}q(hXcelery.db.session.hhhh_h#hph%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh8Xcelery.db.session.q酁q}q(hUhhubaubhv)q}q(hhhhhh_h#hyh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh8X get_engineqq}q(hUhhubaubh)q}q(hUhhhh_h#hh%}q(h']h(]h)]h*]h,]uh.Nh/hh]q(h)q}q(hXdburih%}q(h']h(]h)]h*]h,]uhhh]qh8Xdburiqq}q(hUhhubah#hubh)q}q(hX**kwargsh%}r(h']h(]h)]h*]h,]uhhh]rh8X**kwargsrr}r(hUhhubah#hubeubeubh)r}r(hUhhhh_h#hh%}r(h']h(]h)]h*]h,]uh.Nh/hh]ubeubhD)r}r (hUhhhNh#hGh%}r (h*]h)]h']h(]h,]Uentries]r (hJX-setup_results() (in module celery.db.session)h Utr auh.Nh/hh]ubhQ)r }r(hUhhhNh#hTh%}r(hVhWXpyh*]h)]h']h(]h,]hXXfunctionrhZjuh.Nh/hh]r(h\)r}r(hXsetup_results(engine)rhj hh_h#h`h%}r(h*]rh ahchXcelery.db.sessionrr}rbh)]h']h(]h,]rh ahhX setup_resultsrhjUhkuh.Nh/hh]r(hm)r}r(hXcelery.db.session.hjhh_h#hph%}r(h']h(]h)]h*]h,]uh.Nh/hh]r h8Xcelery.db.session.r!r"}r#(hUhjubaubhv)r$}r%(hjhjhh_h#hyh%}r&(h']h(]h)]h*]h,]uh.Nh/hh]r'h8X setup_resultsr(r)}r*(hUhj$ubaubh)r+}r,(hUhjhh_h#hh%}r-(h']h(]h)]h*]h,]uh.Nh/hh]r.h)r/}r0(hXengineh%}r1(h']h(]h)]h*]h,]uhj+h]r2h8Xenginer3r4}r5(hUhj/ubah#hubaubeubh)r6}r7(hUhj hh_h#hh%}r8(h']h(]h)]h*]h,]uh.Nh/hh]ubeubeubahUU transformerr9NU footnote_refsr:}r;Urefnamesr<}r=Usymbol_footnotesr>]r?Uautofootnote_refsr@]rAUsymbol_footnote_refsrB]rCU citationsrD]rEh/hU current_linerFNUtransform_messagesrG]rHcdocutils.nodes system_message rI)rJ}rK(hUh%}rL(h']UlevelKh*]h)]Usourceh?h(]h,]UlineKUtypeUINFOrMuh]rNcdocutils.nodes paragraph rO)rP}rQ(hUh%}rR(h']h(]h)]h*]h,]uhjJh]rSh8X>Hyperlink target "module-celery.db.session" is not referenced.rTrU}rV(hUhjPubah#U paragraphrWubah#Usystem_messagerXubaUreporterrYNUid_startrZKU autofootnotesr[]r\U citation_refsr]}r^Uindirect_targetsr_]r`Usettingsra(cdocutils.frontend Values rborc}rd(Ufootnote_backlinksreKUrecord_dependenciesrfNU rfc_base_urlrgUhttp://tools.ietf.org/html/rhU tracebackriUpep_referencesrjNUstrip_commentsrkNU toc_backlinksrlUentryrmU language_codernUenroU datestamprpNU report_levelrqKU _destinationrrNU halt_levelrsKU strip_classesrtNh5NUerror_encoding_error_handlerruUbackslashreplacervUdebugrwNUembed_stylesheetrxUoutput_encoding_error_handlerryUstrictrzU sectnum_xformr{KUdump_transformsr|NU docinfo_xformr}KUwarning_streamr~NUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUc/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.db.session.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjzUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhh]hCh=hhh hh jhcdocutils.nodes topic r)r}r(hUhhhh!h#Utopicrh%}r(h']h(]r(UcontentsrUlocalreh)]h*]rhah,]rh auh.Kh/hh]rcdocutils.nodes pending r)r}r(hX.. contents:: :local:hjU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh#Upendingrh%}r(h']h(]h)]h*]h,]uh]ubaubuUsubstitution_namesr}rh#h/h%}r(h']h*]h)]Usourceh!h(]h,]uU footnotesr]rUrefidsr}rub.PKYDDYnnXcelery-2.1-archived/.doctrees/internals/reference/celery.worker.control.builtins.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X*celery.worker.control.builtins.dump_activeqX,celery.worker.control.builtins.enable_eventsqX'celery.worker.control.builtins.shutdownqX)celery.worker.control.builtins.rate_limitq X-celery.worker.control.builtins.disable_eventsq X+celery.worker.control.builtins.add_consumerq X(celery.worker.control.builtins.heartbeatq X,celery.worker.control.builtins.dump_reservedq X$celery.worker.control.builtins.statsqXAbuilt-in remote control commands - celery.worker.control.builtinsqNX,celery.worker.control.builtins.dump_scheduleqX.celery.worker.control.builtins.cancel_consumerqX#celery.worker.control.builtins.pingqX+celery.worker.control.builtins.dump_revokedqX+celery.worker.control.builtins.set_loglevelqX%celery.worker.control.builtins.revokeqUcontentsqNX)celery.worker.control.builtins.dump_tasksquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q (hhhhhhh h h h h h h h h h hhhU?built-in-remote-control-commands-celery-worker-control-builtinsq!hhhhhhhhhhhhhUcontentsq"hhuUchildrenq#]q$cdocutils.nodes section q%)q&}q'(U rawsourceq(UUparentq)hUsourceq*cdocutils.nodes reprunicode q+Xp/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.control.builtins.rstq,q-}q.bUtagnameq/Usectionq0U attributesq1}q2(Udupnamesq3]Uclassesq4]Ubackrefsq5]Uidsq6]q7h!aUnamesq8]q9hauUlineq:KUdocumentq;hh#]q<(cdocutils.nodes title q=)q>}q?(h(XABuilt-in Remote Control Commands - celery.worker.control.builtinsq@h)h&h*h-h/UtitleqAh1}qB(h3]h4]h5]h6]h8]uh:Kh;hh#]qCcdocutils.nodes Text qDXABuilt-in Remote Control Commands - celery.worker.control.builtinsqEqF}qG(h(h@h)h>ubaubcdocutils.nodes target qH)qI}qJ(h(Uh)h&h*U qKh/UtargetqLh1}qM(h3]h6]qNX%module-celery.worker.control.builtinsqOah5]Uismodh4]h8]uh:Kh;hh#]ubcsphinx.addnodes index qP)qQ}qR(h(Uh)h&h*hKh/UindexqSh1}qT(h6]h5]h3]h4]h8]Uentries]qU(UsingleqVX'celery.worker.control.builtins (module)X%module-celery.worker.control.builtinsUtqWauh:Kh;hh#]ubhP)qX}qY(h(Uh)h&h*Nh/hSh1}qZ(h6]h5]h3]h4]h8]Uentries]q[(hVX9add_consumer() (in module celery.worker.control.builtins)h Utq\auh:Nh;hh#]ubcsphinx.addnodes desc q])q^}q_(h(Uh)h&h*Nh/Udescq`h1}qa(UnoindexqbUdomainqcXpyh6]h5]h3]h4]h8]UobjtypeqdXfunctionqeUdesctypeqfheuh:Nh;hh#]qg(csphinx.addnodes desc_signature qh)qi}qj(h(Xcadd_consumer(panel, queue=None, exchange=None, exchange_type='direct', routing_key=None, **options)h)h^h*U qkh/Udesc_signatureqlh1}qm(h6]qnh aUmoduleqoh+Xcelery.worker.control.builtinsqpqq}qrbh5]h3]h4]h8]qsh aUfullnameqtX add_consumerquUclassqvUUfirstqwuh:Nh;hh#]qx(csphinx.addnodes desc_addname qy)qz}q{(h(Xcelery.worker.control.builtins.h)hih*hkh/U desc_addnameq|h1}q}(h3]h4]h5]h6]h8]uh:Nh;hh#]q~hDXcelery.worker.control.builtins.qq}q(h(Uh)hzubaubcsphinx.addnodes desc_name q)q}q(h(huh)hih*hkh/U desc_nameqh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]qhDX add_consumerqq}q(h(Uh)hubaubcsphinx.addnodes desc_parameterlist q)q}q(h(Uh)hih*hkh/Udesc_parameterlistqh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]q(csphinx.addnodes desc_parameter q)q}q(h(Xpanelh1}q(h3]h4]h5]h6]h8]uh)hh#]qhDXpanelqq}q(h(Uh)hubah/Udesc_parameterqubh)q}q(h(X queue=Noneh1}q(h3]h4]h5]h6]h8]uh)hh#]qhDX queue=Noneqq}q(h(Uh)hubah/hubh)q}q(h(X exchange=Noneh1}q(h3]h4]h5]h6]h8]uh)hh#]qhDX exchange=Noneqq}q(h(Uh)hubah/hubh)q}q(h(Xexchange_type='direct'h1}q(h3]h4]h5]h6]h8]uh)hh#]qhDXexchange_type='direct'qq}q(h(Uh)hubah/hubh)q}q(h(Xrouting_key=Noneh1}q(h3]h4]h5]h6]h8]uh)hh#]qhDXrouting_key=Noneqq}q(h(Uh)hubah/hubh)q}q(h(X **optionsh1}q(h3]h4]h5]h6]h8]uh)hh#]qhDX **optionsqq}q(h(Uh)hubah/hubeubeubcsphinx.addnodes desc_content q)q}q(h(Uh)h^h*hkh/U desc_contentqh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)q}q(h(Uh)h&h*Nh/hSh1}q(h6]h5]h3]h4]h8]Uentries]q(hVX<cancel_consumer() (in module celery.worker.control.builtins)hUtqauh:Nh;hh#]ubh])q}q(h(Uh)h&h*Nh/h`h1}q(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionqhfhuh:Nh;hh#]q(hh)q}q(h(X'cancel_consumer(panel, queue=None, **_)h)hh*hkh/hlh1}q(h6]qhahoh+Xcelery.worker.control.builtinsqЅq}qbh5]h3]h4]h8]qhahtXcancel_consumerqhvUhwuh:Nh;hh#]q(hy)q}q(h(Xcelery.worker.control.builtins.h)hh*hkh/h|h1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]qhDXcelery.worker.control.builtins.qڅq}q(h(Uh)hubaubh)q}q(h(hh)hh*hkh/hh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]qhDXcancel_consumerqᅁq}q(h(Uh)hubaubh)q}q(h(Uh)hh*hkh/hh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]q(h)q}q(h(Xpanelh1}q(h3]h4]h5]h6]h8]uh)hh#]qhDXpanelq셁q}q(h(Uh)hubah/hubh)q}q(h(X queue=Noneh1}q(h3]h4]h5]h6]h8]uh)hh#]qhDX queue=Noneqq}q(h(Uh)hubah/hubh)q}q(h(X**_h1}q(h3]h4]h5]h6]h8]uh)hh#]qhDX**_qq}q(h(Uh)hubah/hubeubeubh)q}q(h(Uh)hh*hkh/hh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)h&h*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX;disable_events() (in module celery.worker.control.builtins)h Utrauh:Nh;hh#]ubh])r}r(h(Uh)h&h*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrhfjuh:Nh;hh#]r (hh)r }r (h(Xdisable_events(panel)h)jh*hkh/hlh1}r (h6]r h ahoh+Xcelery.worker.control.builtinsrr}rbh5]h3]h4]h8]rh ahtXdisable_eventsrhvUhwuh:Nh;hh#]r(hy)r}r(h(Xcelery.worker.control.builtins.h)j h*hkh/h|h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXcelery.worker.control.builtins.rr}r(h(Uh)jubaubh)r}r(h(jh)j h*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXdisable_eventsrr }r!(h(Uh)jubaubh)r"}r#(h(Uh)j h*hkh/hh1}r$(h3]h4]h5]h6]h8]uh:Nh;hh#]r%h)r&}r'(h(Xpanelh1}r((h3]h4]h5]h6]h8]uh)j"h#]r)hDXpanelr*r+}r,(h(Uh)j&ubah/hubaubeubh)r-}r.(h(Uh)jh*hkh/hh1}r/(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r0}r1(h(Uh)h&h*Nh/hSh1}r2(h6]h5]h3]h4]h8]Uentries]r3(hVX8dump_active() (in module celery.worker.control.builtins)hUtr4auh:Nh;hh#]ubh])r5}r6(h(Uh)h&h*Nh/h`h1}r7(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionr8hfj8uh:Nh;hh#]r9(hh)r:}r;(h(X(dump_active(panel, safe=False, **kwargs)h)j5h*hkh/hlh1}r<(h6]r=hahoh+Xcelery.worker.control.builtinsr>r?}r@bh5]h3]h4]h8]rAhahtX dump_activerBhvUhwuh:Nh;hh#]rC(hy)rD}rE(h(Xcelery.worker.control.builtins.h)j:h*hkh/h|h1}rF(h3]h4]h5]h6]h8]uh:Nh;hh#]rGhDXcelery.worker.control.builtins.rHrI}rJ(h(Uh)jDubaubh)rK}rL(h(jBh)j:h*hkh/hh1}rM(h3]h4]h5]h6]h8]uh:Nh;hh#]rNhDX dump_activerOrP}rQ(h(Uh)jKubaubh)rR}rS(h(Uh)j:h*hkh/hh1}rT(h3]h4]h5]h6]h8]uh:Nh;hh#]rU(h)rV}rW(h(Xpanelh1}rX(h3]h4]h5]h6]h8]uh)jRh#]rYhDXpanelrZr[}r\(h(Uh)jVubah/hubh)r]}r^(h(X safe=Falseh1}r_(h3]h4]h5]h6]h8]uh)jRh#]r`hDX safe=Falserarb}rc(h(Uh)j]ubah/hubh)rd}re(h(X**kwargsh1}rf(h3]h4]h5]h6]h8]uh)jRh#]rghDX**kwargsrhri}rj(h(Uh)jdubah/hubeubeubh)rk}rl(h(Uh)j5h*hkh/hh1}rm(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)rn}ro(h(Uh)h&h*Nh/hSh1}rp(h6]h5]h3]h4]h8]Uentries]rq(hVX:dump_reserved() (in module celery.worker.control.builtins)h Utrrauh:Nh;hh#]ubh])rs}rt(h(Uh)h&h*Nh/h`h1}ru(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrvhfjvuh:Nh;hh#]rw(hh)rx}ry(h(X*dump_reserved(panel, safe=False, **kwargs)h)jsh*hkh/hlh1}rz(h6]r{h ahoh+Xcelery.worker.control.builtinsr|r}}r~bh5]h3]h4]h8]rh ahtX dump_reservedrhvUhwuh:Nh;hh#]r(hy)r}r(h(Xcelery.worker.control.builtins.h)jxh*hkh/h|h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXcelery.worker.control.builtins.rr}r(h(Uh)jubaubh)r}r(h(jh)jxh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDX dump_reservedrr}r(h(Uh)jubaubh)r}r(h(Uh)jxh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(h)r}r(h(Xpanelh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXpanelrr}r(h(Uh)jubah/hubh)r}r(h(X safe=Falseh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX safe=Falserr}r(h(Uh)jubah/hubh)r}r(h(X**kwargsh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX**kwargsrr}r(h(Uh)jubah/hubeubeubh)r}r(h(Uh)jsh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)h&h*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX9dump_revoked() (in module celery.worker.control.builtins)hUtrauh:Nh;hh#]ubh])r}r(h(Uh)h&h*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrhfjuh:Nh;hh#]r(hh)r}r(h(Xdump_revoked(panel, **kwargs)h)jh*hkh/hlh1}r(h6]rhahoh+Xcelery.worker.control.builtinsrr}rbh5]h3]h4]h8]rhahtX dump_revokedrhvUhwuh:Nh;hh#]r(hy)r}r(h(Xcelery.worker.control.builtins.h)jh*hkh/h|h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXcelery.worker.control.builtins.rr}r(h(Uh)jubaubh)r}r(h(jh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDX dump_revokedrr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(h)r}r(h(Xpanelh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXpanelrr}r(h(Uh)jubah/hubh)r}r(h(X**kwargsh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX**kwargsrr}r(h(Uh)jubah/hubeubeubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)h&h*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX:dump_schedule() (in module celery.worker.control.builtins)hUtrauh:Nh;hh#]ubh])r}r(h(Uh)h&h*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrhfjuh:Nh;hh#]r(hh)r}r(h(X*dump_schedule(panel, safe=False, **kwargs)h)jh*hkh/hlh1}r(h6]rhahoh+Xcelery.worker.control.builtinsrr}rbh5]h3]h4]h8]rhahtX dump_schedulerhvUhwuh:Nh;hh#]r(hy)r}r(h(Xcelery.worker.control.builtins.h)jh*hkh/h|h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXcelery.worker.control.builtins.rr}r(h(Uh)jubaubh)r}r(h(jh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDX dump_schedulerr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(h)r }r (h(Xpanelh1}r (h3]h4]h5]h6]h8]uh)jh#]r hDXpanelr r}r(h(Uh)j ubah/hubh)r}r(h(X safe=Falseh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX safe=Falserr}r(h(Uh)jubah/hubh)r}r(h(X**kwargsh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX**kwargsrr}r(h(Uh)jubah/hubeubeubh)r}r(h(Uh)jh*hkh/hh1}r (h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r!}r"(h(Uh)h&h*Nh/hSh1}r#(h6]h5]h3]h4]h8]Uentries]r$(hVX7dump_tasks() (in module celery.worker.control.builtins)hUtr%auh:Nh;hh#]ubh])r&}r'(h(Uh)h&h*Nh/h`h1}r((hbhcXpyh6]h5]h3]h4]h8]hdXfunctionr)hfj)uh:Nh;hh#]r*(hh)r+}r,(h(Xdump_tasks(panel, **kwargs)h)j&h*hkh/hlh1}r-(h6]r.hahoh+Xcelery.worker.control.builtinsr/r0}r1bh5]h3]h4]h8]r2hahtX dump_tasksr3hvUhwuh:Nh;hh#]r4(hy)r5}r6(h(Xcelery.worker.control.builtins.h)j+h*hkh/h|h1}r7(h3]h4]h5]h6]h8]uh:Nh;hh#]r8hDXcelery.worker.control.builtins.r9r:}r;(h(Uh)j5ubaubh)r<}r=(h(j3h)j+h*hkh/hh1}r>(h3]h4]h5]h6]h8]uh:Nh;hh#]r?hDX dump_tasksr@rA}rB(h(Uh)j<ubaubh)rC}rD(h(Uh)j+h*hkh/hh1}rE(h3]h4]h5]h6]h8]uh:Nh;hh#]rF(h)rG}rH(h(Xpanelh1}rI(h3]h4]h5]h6]h8]uh)jCh#]rJhDXpanelrKrL}rM(h(Uh)jGubah/hubh)rN}rO(h(X**kwargsh1}rP(h3]h4]h5]h6]h8]uh)jCh#]rQhDX**kwargsrRrS}rT(h(Uh)jNubah/hubeubeubh)rU}rV(h(Uh)j&h*hkh/hh1}rW(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)rX}rY(h(Uh)h&h*Nh/hSh1}rZ(h6]h5]h3]h4]h8]Uentries]r[(hVX:enable_events() (in module celery.worker.control.builtins)hUtr\auh:Nh;hh#]ubh])r]}r^(h(Uh)h&h*Nh/h`h1}r_(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionr`hfj`uh:Nh;hh#]ra(hh)rb}rc(h(Xenable_events(panel)h)j]h*hkh/hlh1}rd(h6]rehahoh+Xcelery.worker.control.builtinsrfrg}rhbh5]h3]h4]h8]rihahtX enable_eventsrjhvUhwuh:Nh;hh#]rk(hy)rl}rm(h(Xcelery.worker.control.builtins.h)jbh*hkh/h|h1}rn(h3]h4]h5]h6]h8]uh:Nh;hh#]rohDXcelery.worker.control.builtins.rprq}rr(h(Uh)jlubaubh)rs}rt(h(jjh)jbh*hkh/hh1}ru(h3]h4]h5]h6]h8]uh:Nh;hh#]rvhDX enable_eventsrwrx}ry(h(Uh)jsubaubh)rz}r{(h(Uh)jbh*hkh/hh1}r|(h3]h4]h5]h6]h8]uh:Nh;hh#]r}h)r~}r(h(Xpanelh1}r(h3]h4]h5]h6]h8]uh)jzh#]rhDXpanelrr}r(h(Uh)j~ubah/hubaubeubh)r}r(h(Uh)j]h*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)h&h*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX6heartbeat() (in module celery.worker.control.builtins)h Utrauh:Nh;hh#]ubh])r}r(h(Uh)h&h*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrhfjuh:Nh;hh#]r(hh)r}r(h(Xheartbeat(panel)h)jh*hkh/hlh1}r(h6]rh ahoh+Xcelery.worker.control.builtinsrr}rbh5]h3]h4]h8]rh ahtX heartbeatrhvUhwuh:Nh;hh#]r(hy)r}r(h(Xcelery.worker.control.builtins.h)jh*hkh/h|h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXcelery.worker.control.builtins.rr}r(h(Uh)jubaubh)r}r(h(jh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDX heartbeatrr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rh)r}r(h(Xpanelh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXpanelrr}r(h(Uh)jubah/hubaubeubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)h&h*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX1ping() (in module celery.worker.control.builtins)hUtrauh:Nh;hh#]ubh])r}r(h(Uh)h&h*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrhfjuh:Nh;hh#]r(hh)r}r(h(Xping(panel, **kwargs)h)jh*hkh/hlh1}r(h6]rhahoh+Xcelery.worker.control.builtinsrr}rbh5]h3]h4]h8]rhahtXpingrhvUhwuh:Nh;hh#]r(hy)r}r(h(Xcelery.worker.control.builtins.h)jh*hkh/h|h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXcelery.worker.control.builtins.rr}r(h(Uh)jubaubh)r}r(h(jh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXpingrr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(h)r}r(h(Xpanelh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXpanelrr}r(h(Uh)jubah/hubh)r}r(h(X**kwargsh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX**kwargsrr}r(h(Uh)jubah/hubeubeubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)h&h*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX7rate_limit() (in module celery.worker.control.builtins)h Utrauh:Nh;hh#]ubh])r}r(h(Uh)h&h*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrhfjuh:Nh;hh#]r(hh)r}r(h(X2rate_limit(panel, task_name, rate_limit, **kwargs)h)jh*hkh/hlh1}r(h6]rh ahoh+Xcelery.worker.control.builtinsrr}rbh5]h3]h4]h8]rh ahtX rate_limitrhvUhwuh:Nh;hh#]r(hy)r}r(h(Xcelery.worker.control.builtins.h)jh*hkh/h|h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXcelery.worker.control.builtins.rr}r (h(Uh)jubaubh)r }r (h(jh)jh*hkh/hh1}r (h3]h4]h5]h6]h8]uh:Nh;hh#]r hDX rate_limitrr}r(h(Uh)j ubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(h)r}r(h(Xpanelh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXpanelrr}r(h(Uh)jubah/hubh)r}r(h(X task_nameh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX task_namer r!}r"(h(Uh)jubah/hubh)r#}r$(h(X rate_limith1}r%(h3]h4]h5]h6]h8]uh)jh#]r&hDX rate_limitr'r(}r)(h(Uh)j#ubah/hubh)r*}r+(h(X**kwargsh1}r,(h3]h4]h5]h6]h8]uh)jh#]r-hDX**kwargsr.r/}r0(h(Uh)j*ubah/hubeubeubh)r1}r2(h(Uh)jh*hkh/hh1}r3(h3]h4]h5]h6]h8]uh:Nh;hh#]r4(cdocutils.nodes paragraph r5)r6}r7(h(X#Set new rate limit for a task type.r8h)j1h*X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/control/builtins.py:docstring of celery.worker.control.builtins.rate_limitr9h/U paragraphr:h1}r;(h3]h4]h5]h6]h8]uh:Kh;hh#]r<hDX#Set new rate limit for a task type.r=r>}r?(h(j8h)j6ubaubj5)r@}rA(h(X-See :attr:`celery.task.base.Task.rate_limit`.rBh)j1h*j9h/j:h1}rC(h3]h4]h5]h6]h8]uh:Kh;hh#]rD(hDXSee rErF}rG(h(XSee h)j@ubcsphinx.addnodes pending_xref rH)rI}rJ(h(X(:attr:`celery.task.base.Task.rate_limit`rKh)j@h*Nh/U pending_xrefrLh1}rM(UreftypeXattrUrefwarnrNU reftargetrOX celery.task.base.Task.rate_limitU refdomainXpyrPh6]h5]U refexplicith3]h4]h8]UrefdocrQX2internals/reference/celery.worker.control.builtinsrRUpy:classrSNU py:modulerTXcelery.worker.control.builtinsrUuh:Nh#]rVcdocutils.nodes literal rW)rX}rY(h(jKh1}rZ(h3]h4]r[(Uxrefr\jPXpy-attrr]eh5]h6]h8]uh)jIh#]r^hDX celery.task.base.Task.rate_limitr_r`}ra(h(Uh)jXubah/UliteralrbubaubhDX.rc}rd(h(X.h)j@ubeubcdocutils.nodes field_list re)rf}rg(h(Uh)j1h*Nh/U field_listrhh1}ri(h3]h4]h5]h6]h8]uh:Nh;hh#]rjcdocutils.nodes field rk)rl}rm(h(Uh1}rn(h3]h4]h5]h6]h8]uh)jfh#]ro(cdocutils.nodes field_name rp)rq}rr(h(Uh1}rs(h3]h4]h5]h6]h8]uh)jlh#]rthDX Parametersrurv}rw(h(Uh)jqubah/U field_namerxubcdocutils.nodes field_body ry)rz}r{(h(Uh1}r|(h3]h4]h5]h6]h8]uh)jlh#]r}cdocutils.nodes bullet_list r~)r}r(h(Uh1}r(h3]h4]h5]h6]h8]uh)jzh#]r(cdocutils.nodes list_item r)r}r(h(Uh1}r(h3]h4]h5]h6]h8]uh)jh#]rj5)r}r(h(Uh1}r(h3]h4]h5]h6]h8]uh)jh#]r(cdocutils.nodes strong r)r}r(h(X task_nameh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX task_namerr}r(h(Uh)jubah/UstrongrubhDX -- rr}r(h(Uh)jubhDX Type of task.rr}r(h(X Type of task.rh)jubeh/j:ubah/U list_itemrubj)r}r(h(Uh1}r(h3]h4]h5]h6]h8]uh)jh#]rj5)r}r(h(Uh1}r(h3]h4]h5]h6]h8]uh)jh#]r(j)r}r(h(X rate_limith1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX rate_limitrr}r(h(Uh)jubah/jubhDX -- rr}r(h(Uh)jubhDXNew rate limit.rr}r(h(XNew rate limit.rh)jubeh/j:ubah/jubeh/U bullet_listrubah/U field_bodyrubeh/UfieldrubaubeubeubhP)r}r(h(Uh)h&h*X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/control/builtins.py:docstring of celery.worker.control.builtins.revokerh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX3revoke() (in module celery.worker.control.builtins)hUtrauh:Nh;hh#]ubh])r}r(h(Uh)h&h*jh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrhfjuh:Nh;hh#]r(hh)r}r(h(X revoke(panel, task_id, **kwargs)h)jh*hkh/hlh1}r(h6]rhahoh+Xcelery.worker.control.builtinsrr}rbh5]h3]h4]h8]rhahtXrevokerhvUhwuh:Nh;hh#]r(hy)r}r(h(Xcelery.worker.control.builtins.h)jh*hkh/h|h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXcelery.worker.control.builtins.rr}r(h(Uh)jubaubh)r}r(h(jh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXrevokerr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(h)r}r(h(Xpanelh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXpanelrr}r(h(Uh)jubah/hubh)r}r(h(Xtask_idh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXtask_idrr}r(h(Uh)jubah/hubh)r}r(h(X**kwargsh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX**kwargsrr}r(h(Uh)jubah/hubeubeubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rj5)r}r(h(XRevoke task by task id.rh)jh*jh/j:h1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]rhDXRevoke task by task id.rr}r(h(jh)jubaubaubeubhP)r}r(h(Uh)h&h*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX9set_loglevel() (in module celery.worker.control.builtins)hUtrauh:Nh;hh#]ubh])r}r(h(Uh)h&h*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrhfjuh:Nh;hh#]r(hh)r}r (h(X"set_loglevel(panel, loglevel=None)h)jh*hkh/hlh1}r (h6]r hahoh+Xcelery.worker.control.builtinsr r }rbh5]h3]h4]h8]rhahtX set_loglevelrhvUhwuh:Nh;hh#]r(hy)r}r(h(Xcelery.worker.control.builtins.h)jh*hkh/h|h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXcelery.worker.control.builtins.rr}r(h(Uh)jubaubh)r}r(h(jh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDX set_loglevelrr}r(h(Uh)jubaubh)r }r!(h(Uh)jh*hkh/hh1}r"(h3]h4]h5]h6]h8]uh:Nh;hh#]r#(h)r$}r%(h(Xpanelh1}r&(h3]h4]h5]h6]h8]uh)j h#]r'hDXpanelr(r)}r*(h(Uh)j$ubah/hubh)r+}r,(h(X loglevel=Noneh1}r-(h3]h4]h5]h6]h8]uh)j h#]r.hDX loglevel=Noner/r0}r1(h(Uh)j+ubah/hubeubeubh)r2}r3(h(Uh)jh*hkh/hh1}r4(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r5}r6(h(Uh)h&h*Nh/hSh1}r7(h6]h5]h3]h4]h8]Uentries]r8(hVX5shutdown() (in module celery.worker.control.builtins)hUtr9auh:Nh;hh#]ubh])r:}r;(h(Uh)h&h*Nh/h`h1}r<(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionr=hfj=uh:Nh;hh#]r>(hh)r?}r@(h(Xshutdown(panel, **kwargs)h)j:h*hkh/hlh1}rA(h6]rBhahoh+Xcelery.worker.control.builtinsrCrD}rEbh5]h3]h4]h8]rFhahtXshutdownrGhvUhwuh:Nh;hh#]rH(hy)rI}rJ(h(Xcelery.worker.control.builtins.h)j?h*hkh/h|h1}rK(h3]h4]h5]h6]h8]uh:Nh;hh#]rLhDXcelery.worker.control.builtins.rMrN}rO(h(Uh)jIubaubh)rP}rQ(h(jGh)j?h*hkh/hh1}rR(h3]h4]h5]h6]h8]uh:Nh;hh#]rShDXshutdownrTrU}rV(h(Uh)jPubaubh)rW}rX(h(Uh)j?h*hkh/hh1}rY(h3]h4]h5]h6]h8]uh:Nh;hh#]rZ(h)r[}r\(h(Xpanelh1}r](h3]h4]h5]h6]h8]uh)jWh#]r^hDXpanelr_r`}ra(h(Uh)j[ubah/hubh)rb}rc(h(X**kwargsh1}rd(h3]h4]h5]h6]h8]uh)jWh#]rehDX**kwargsrfrg}rh(h(Uh)jbubah/hubeubeubh)ri}rj(h(Uh)j:h*hkh/hh1}rk(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)rl}rm(h(Uh)h&h*Nh/hSh1}rn(h6]h5]h3]h4]h8]Uentries]ro(hVX2stats() (in module celery.worker.control.builtins)hUtrpauh:Nh;hh#]ubh])rq}rr(h(Uh)h&h*Nh/h`h1}rs(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrthfjtuh:Nh;hh#]ru(hh)rv}rw(h(Xstats(panel, **kwargs)h)jqh*hkh/hlh1}rx(h6]ryhahoh+Xcelery.worker.control.builtinsrzr{}r|bh5]h3]h4]h8]r}hahtXstatsr~hvUhwuh:Nh;hh#]r(hy)r}r(h(Xcelery.worker.control.builtins.h)jvh*hkh/h|h1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXcelery.worker.control.builtins.rr}r(h(Uh)jubaubh)r}r(h(j~h)jvh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXstatsrr}r(h(Uh)jubaubh)r}r(h(Uh)jvh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(h)r}r(h(Xpanelh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXpanelrr}r(h(Uh)jubah/hubh)r}r(h(X**kwargsh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX**kwargsrr}r(h(Uh)jubah/hubeubeubh)r}r(h(Uh)jqh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubeubah(UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh;hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h(Uh1}r(h3]UlevelKh6]h5]UsourcehKh4]h8]UlineKUtypeUINFOruh#]rj5)r}r(h(Uh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXKHyperlink target "module-celery.worker.control.builtins" is not referenced.rr}r(h(Uh)jubah/j:ubah/Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhANUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUp/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.control.builtins.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjbhj:h!h&hj?h jh j hOhIh hih jh jxhjvhjhhhjhjhjhjh"cdocutils.nodes topic r)r}r(h(Uh)h&h*h-h/Utopicrh1}r(h3]h4]r(UcontentsrUlocalreh5]h6]rh"ah8]rhauh:Kh;hh#]rcdocutils.nodes pending r)r }r!(h(X.. contents:: :local: h)jU transformr"cdocutils.transforms.parts Contents r#Udetailsr$}r%UlocalNsh/Upendingr&h1}r'(h3]h4]h5]h6]h8]uh#]ubaubhj+uUsubstitution_namesr(}r)h/h;h1}r*(h3]h6]h5]Usourceh-h4]h8]uU footnotesr+]r,Urefidsr-}r.ub.PKYDD{^ Gcelery-2.1-archived/.doctrees/internals/reference/celery.worker.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X)celery.worker.WorkController.process_taskqX!celery.worker.process_initializerqX"celery.worker.WorkController.startqX!celery.worker.WorkController.poolq X/celery.worker.WorkController.embed_clockserviceq X%celery.worker.WorkController.listenerq X#celery.worker.WorkController.loggerq X0celery.worker.WorkController.schedule_controllerq X(celery.worker.WorkController.concurrencyqX+celery.worker.WorkController.on_timer_errorqX(celery.worker.WorkController.ready_queueqX%celery.worker.WorkController.mediatorqXcelery.worker.WorkControllerqX*celery.worker.WorkController.on_timer_tickqX$celery.worker.WorkController.logfileqX&celery.worker.WorkController.terminateqX!celery.worker.WorkController.stopqX%celery.worker.WorkController.loglevelqX&multiprocessing worker - celery.workerqNUcontentsqNX(celery.worker.WorkController.send_eventsquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationq NUautofootnote_startq!KUnameidsq"}q#(hhhhhhh h h h h h h h h h hhhhhhhhhhhhhhhhhhhhhU$multiprocessing-worker-celery-workerq$hUcontentsq%hhuUchildrenq&]q'cdocutils.nodes section q()q)}q*(U rawsourceq+UUparentq,hUsourceq-cdocutils.nodes reprunicode q.X_/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.rstq/q0}q1bUtagnameq2Usectionq3U attributesq4}q5(Udupnamesq6]Uclassesq7]Ubackrefsq8]Uidsq9]q:h$aUnamesq;]qhh&]q?(cdocutils.nodes title q@)qA}qB(h+X&Multiprocessing Worker - celery.workerqCh,h)h-h0h2UtitleqDh4}qE(h6]h7]h8]h9]h;]uh=Kh>hh&]qFcdocutils.nodes Text qGX&Multiprocessing Worker - celery.workerqHqI}qJ(h+hCh,hAubaubcdocutils.nodes target qK)qL}qM(h+Uh,h)h-U qNh2UtargetqOh4}qP(h6]h9]qQXmodule-celery.workerqRah8]Uismodh7]h;]uh=Kh>hh&]ubcsphinx.addnodes index qS)qT}qU(h+Uh,h)h-hNh2UindexqVh4}qW(h9]h8]h6]h7]h;]Uentries]qX(UsingleqYXcelery.worker (module)Xmodule-celery.workerUtqZauh=Kh>hh&]ubcdocutils.nodes paragraph q[)q\}q](h+X!The Multiprocessing Worker Serverq^h,h)h-Xi/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/__init__.py:docstring of celery.workerq_h2U paragraphq`h4}qa(h6]h7]h8]h9]h;]uh=Kh>hh&]qbhGX!The Multiprocessing Worker Serverqcqd}qe(h+h^h,h\ubaubhS)qf}qg(h+Uh,h)h-Nh2hVh4}qh(h9]h8]h6]h7]h;]Uentries]qi(hYX'WorkController (class in celery.worker)hUtqjauh=Nh>hh&]ubcsphinx.addnodes desc qk)ql}qm(h+Uh,h)h-Nh2Udescqnh4}qo(UnoindexqpUdomainqqXpyh9]h8]h6]h7]h;]UobjtypeqrXclassqsUdesctypeqthsuh=Nh>hh&]qu(csphinx.addnodes desc_signature qv)qw}qx(h+XMWorkController(concurrency=None, logfile=None, loglevel=None, send_events=False, hostname=None, ready_callback=, embed_clockservice=False, pool_cls='celery.concurrency.processes.TaskPool', listener_cls='celery.worker.listener.CarrotListener', mediator_cls='celery.worker.controllers.Mediator', eta_scheduler_cls='celery.utils.timer2.Timer', schedule_filename='celerybeat-schedule', task_time_limit=None, task_soft_time_limit=None, max_tasks_per_child=None, pool_putlocks=True, disable_rate_limits=False, db=None, scheduler_cls='celery.beat.PersistentScheduler')h,hlh-U qyh2Udesc_signatureqzh4}q{(h9]q|haUmoduleq}h.X celery.workerq~q}qbh8]h6]h7]h;]qhaUfullnameqXWorkControllerqUclassqUUfirstquh=Nh>hh&]q(csphinx.addnodes desc_annotation q)q}q(h+Xclass h,hwh-hyh2Udesc_annotationqh4}q(h6]h7]h8]h9]h;]uh=Nh>hh&]qhGXclass qq}q(h+Uh,hubaubcsphinx.addnodes desc_addname q)q}q(h+Xcelery.worker.h,hwh-hyh2U desc_addnameqh4}q(h6]h7]h8]h9]h;]uh=Nh>hh&]qhGXcelery.worker.qq}q(h+Uh,hubaubcsphinx.addnodes desc_name q)q}q(h+hh,hwh-hyh2U desc_nameqh4}q(h6]h7]h8]h9]h;]uh=Nh>hh&]qhGXWorkControllerqq}q(h+Uh,hubaubcsphinx.addnodes desc_parameterlist q)q}q(h+Uh,hwh-hyh2Udesc_parameterlistqh4}q(h6]h7]h8]h9]h;]uh=Nh>hh&]q(csphinx.addnodes desc_parameter q)q}q(h+Xconcurrency=Noneh4}q(h6]h7]h8]h9]h;]uh,hh&]qhGXconcurrency=Noneqq}q(h+Uh,hubah2Udesc_parameterqubh)q}q(h+X logfile=Noneh4}q(h6]h7]h8]h9]h;]uh,hh&]qhGX logfile=Noneqq}q(h+Uh,hubah2hubh)q}q(h+X loglevel=Noneh4}q(h6]h7]h8]h9]h;]uh,hh&]qhGX loglevel=Noneqq}q(h+Uh,hubah2hubh)q}q(h+Xsend_events=Falseh4}q(h6]h7]h8]h9]h;]uh,hh&]qhGXsend_events=FalseqÅq}q(h+Uh,hubah2hubh)q}q(h+X hostname=Noneh4}q(h6]h7]h8]h9]h;]uh,hh&]qhGX hostname=Noneqʅq}q(h+Uh,hubah2hubh)q}q(h+X+ready_callback=h4}q(h6]h7]h8]h9]h;]uh,hh&]qhGX+ready_callback=qхq}q(h+Uh,hubah2hubh)q}q(h+Xembed_clockservice=Falseh4}q(h6]h7]h8]h9]h;]uh,hh&]qhGXembed_clockservice=Falseq؅q}q(h+Uh,hubah2hubh)q}q(h+X0pool_cls='celery.concurrency.processes.TaskPool'h4}q(h6]h7]h8]h9]h;]uh,hh&]qhGX0pool_cls='celery.concurrency.processes.TaskPool'q߅q}q(h+Uh,hubah2hubh)q}q(h+X4listener_cls='celery.worker.listener.CarrotListener'h4}q(h6]h7]h8]h9]h;]uh,hh&]qhGX4listener_cls='celery.worker.listener.CarrotListener'q慁q}q(h+Uh,hubah2hubh)q}q(h+X1mediator_cls='celery.worker.controllers.Mediator'h4}q(h6]h7]h8]h9]h;]uh,hh&]qhGX1mediator_cls='celery.worker.controllers.Mediator'q텁q}q(h+Uh,hubah2hubh)q}q(h+X-eta_scheduler_cls='celery.utils.timer2.Timer'h4}q(h6]h7]h8]h9]h;]uh,hh&]qhGX-eta_scheduler_cls='celery.utils.timer2.Timer'qq}q(h+Uh,hubah2hubh)q}q(h+X'schedule_filename='celerybeat-schedule'h4}q(h6]h7]h8]h9]h;]uh,hh&]qhGX'schedule_filename='celerybeat-schedule'qq}q(h+Uh,hubah2hubh)q}q(h+Xtask_time_limit=Noneh4}r(h6]h7]h8]h9]h;]uh,hh&]rhGXtask_time_limit=Nonerr}r(h+Uh,hubah2hubh)r}r(h+Xtask_soft_time_limit=Noneh4}r(h6]h7]h8]h9]h;]uh,hh&]rhGXtask_soft_time_limit=Noner r }r (h+Uh,jubah2hubh)r }r (h+Xmax_tasks_per_child=Noneh4}r(h6]h7]h8]h9]h;]uh,hh&]rhGXmax_tasks_per_child=Nonerr}r(h+Uh,j ubah2hubh)r}r(h+Xpool_putlocks=Trueh4}r(h6]h7]h8]h9]h;]uh,hh&]rhGXpool_putlocks=Truerr}r(h+Uh,jubah2hubh)r}r(h+Xdisable_rate_limits=Falseh4}r(h6]h7]h8]h9]h;]uh,hh&]rhGXdisable_rate_limits=Falserr}r (h+Uh,jubah2hubh)r!}r"(h+Xdb=Noneh4}r#(h6]h7]h8]h9]h;]uh,hh&]r$hGXdb=Noner%r&}r'(h+Uh,j!ubah2hubh)r(}r)(h+X/scheduler_cls='celery.beat.PersistentScheduler'h4}r*(h6]h7]h8]h9]h;]uh,hh&]r+hGX/scheduler_cls='celery.beat.PersistentScheduler'r,r-}r.(h+Uh,j(ubah2hubeubeubcsphinx.addnodes desc_content r/)r0}r1(h+Uh,hlh-hyh2U desc_contentr2h4}r3(h6]h7]h8]h9]h;]uh=Nh>hh&]r4(h[)r5}r6(h+X)Executes tasks waiting in the task queue.r7h,j0h-Xx/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/__init__.py:docstring of celery.worker.WorkControllerr8h2h`h4}r9(h6]h7]h8]h9]h;]uh=Kh>hh&]r:hGX)Executes tasks waiting in the task queue.r;r<}r=(h+j7h,j5ubaubcdocutils.nodes field_list r>)r?}r@(h+Uh,j0h-Nh2U field_listrAh4}rB(h6]h7]h8]h9]h;]uh=Nh>hh&]rCcdocutils.nodes field rD)rE}rF(h+Uh4}rG(h6]h7]h8]h9]h;]uh,j?h&]rH(cdocutils.nodes field_name rI)rJ}rK(h+Uh4}rL(h6]h7]h8]h9]h;]uh,jEh&]rMhGX ParametersrNrO}rP(h+Uh,jJubah2U field_namerQubcdocutils.nodes field_body rR)rS}rT(h+Uh4}rU(h6]h7]h8]h9]h;]uh,jEh&]rVcdocutils.nodes bullet_list rW)rX}rY(h+Uh4}rZ(h6]h7]h8]h9]h;]uh,jSh&]r[(cdocutils.nodes list_item r\)r]}r^(h+Uh4}r_(h6]h7]h8]h9]h;]uh,jXh&]r`h[)ra}rb(h+Uh4}rc(h6]h7]h8]h9]h;]uh,j]h&]rd(cdocutils.nodes strong re)rf}rg(h+X concurrencyh4}rh(h6]h7]h8]h9]h;]uh,jah&]rihGX concurrencyrjrk}rl(h+Uh,jfubah2UstrongrmubhGX -- rnro}rp(h+Uh,jaubhGXsee rqrr}rs(h+Xsee h,jaubcsphinx.addnodes pending_xref rt)ru}rv(h+X:attr:`concurrency`rwh,jah-h0h2U pending_xrefrxh4}ry(UreftypeXattrUrefwarnrzU reftargetr{X concurrencyU refdomainXpyr|h9]h8]U refexplicith6]h7]h;]Urefdocr}X!internals/reference/celery.workerr~Upy:classrhU py:modulerX celery.workerruh=K h&]rcdocutils.nodes literal r)r}r(h+jwh4}r(h6]h7]r(Uxrefrj|Xpy-attrreh8]h9]h;]uh,juh&]rhGX concurrencyrr}r(h+Uh,jubah2UliteralrubaubhGX.r}r(h+X.h,jaubeh2h`ubah2U list_itemrubj\)r}r(h+Uh4}r(h6]h7]h8]h9]h;]uh,jXh&]rh[)r}r(h+Uh4}r(h6]h7]h8]h9]h;]uh,jh&]r(je)r}r(h+Xlogfileh4}r(h6]h7]h8]h9]h;]uh,jh&]rhGXlogfilerr}r(h+Uh,jubah2jmubhGX -- rr}r(h+Uh,jubhGXsee rr}r(h+Xsee h,jubjt)r}r(h+X:attr:`logfile`rh,jh-Nh2jxh4}r(UreftypeXattrjzj{XlogfileU refdomainXpyrh9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]rj)r}r(h+jh4}r(h6]h7]r(jjXpy-attrreh8]h9]h;]uh,jh&]rhGXlogfilerr}r(h+Uh,jubah2jubaubhGX.r}r(h+X.h,jubeh2h`ubah2jubj\)r}r(h+Uh4}r(h6]h7]h8]h9]h;]uh,jXh&]rh[)r}r(h+Uh4}r(h6]h7]h8]h9]h;]uh,jh&]r(je)r}r(h+Xloglevelh4}r(h6]h7]h8]h9]h;]uh,jh&]rhGXloglevelrr}r(h+Uh,jubah2jmubhGX -- rr}r(h+Uh,jubhGXsee rr}r(h+Xsee h,jubjt)r}r(h+X:attr:`loglevel`rh,jh-Nh2jxh4}r(UreftypeXattrjzj{XloglevelU refdomainXpyrh9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]rj)r}r(h+jh4}r(h6]h7]r(jjXpy-attrreh8]h9]h;]uh,jh&]rhGXloglevelrr}r(h+Uh,jubah2jubaubhGX.r}r(h+X.h,jubeh2h`ubah2jubj\)r}r(h+Uh4}r(h6]h7]h8]h9]h;]uh,jXh&]rh[)r}r(h+Uh4}r(h6]h7]h8]h9]h;]uh,jh&]r(je)r}r(h+Xembed_clockserviceh4}r(h6]h7]h8]h9]h;]uh,jh&]rhGXembed_clockservicerr}r(h+Uh,jubah2jmubhGX -- rr}r(h+Uh,jubhGXsee rr}r(h+Xsee h,jubjt)r}r(h+X:attr:`embed_clockservice`rh,jh-Nh2jxh4}r(UreftypeXattrjzj{Xembed_clockserviceU refdomainXpyrh9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]rj)r}r(h+jh4}r(h6]h7]r(jjXpy-attrreh8]h9]h;]uh,jh&]rhGXembed_clockservicerr}r(h+Uh,jubah2jubaubhGX.r}r(h+X.h,jubeh2h`ubah2jubj\)r}r(h+Uh4}r(h6]h7]h8]h9]h;]uh,jXh&]rh[)r}r (h+Uh4}r (h6]h7]h8]h9]h;]uh,jh&]r (je)r }r (h+X send_eventsh4}r(h6]h7]h8]h9]h;]uh,jh&]rhGX send_eventsrr}r(h+Uh,j ubah2jmubhGX -- rr}r(h+Uh,jubhGXsee rr}r(h+Xsee h,jubjt)r}r(h+X:attr:`send_events`rh,jh-Nh2jxh4}r(UreftypeXattrjzj{X send_eventsU refdomainXpyrh9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]rj)r}r (h+jh4}r!(h6]h7]r"(jjXpy-attrr#eh8]h9]h;]uh,jh&]r$hGX send_eventsr%r&}r'(h+Uh,jubah2jubaubhGX.r(}r)(h+X.h,jubeh2h`ubah2jubeh2U bullet_listr*ubah2U field_bodyr+ubeh2Ufieldr,ubaubhS)r-}r.(h+Uh,j0h-j8h2hVh4}r/(h9]h8]h6]h7]h;]Uentries]r0(hYX4concurrency (celery.worker.WorkController attribute)hUtr1auh=Nh>hh&]ubhk)r2}r3(h+Uh,j0h-j8h2hnh4}r4(hphqXpyh9]h8]h6]h7]h;]hrX attributer5htj5uh=Nh>hh&]r6(hv)r7}r8(h+X concurrencyr9h,j2h-j8h2hzh4}r:(h9]r;hah}jh8]h6]h7]h;]r<hahXWorkController.concurrencyhhhuh=K h>hh&]r=h)r>}r?(h+j9h,j7h-j8h2hh4}r@(h6]h7]h8]h9]h;]uh=K h>hh&]rAhGX concurrencyrBrC}rD(h+Uh,j>ubaubaubj/)rE}rF(h+Uh,j2h-j8h2j2h4}rG(h6]h7]h8]h9]h;]uh=K h>hh&]rHh[)rI}rJ(h+XWThe number of simultaneous processes doing work (default: ``conf.CELERYD_CONCURRENCY``)h,jEh-j8h2h`h4}rK(h6]h7]h8]h9]h;]uh=K h>hh&]rL(hGX:The number of simultaneous processes doing work (default: rMrN}rO(h+X:The number of simultaneous processes doing work (default: h,jIubj)rP}rQ(h+X``conf.CELERYD_CONCURRENCY``h4}rR(h6]h7]h8]h9]h;]uh,jIh&]rShGXconf.CELERYD_CONCURRENCYrTrU}rV(h+Uh,jPubah2jubhGX)rW}rX(h+X)h,jIubeubaubeubhS)rY}rZ(h+Uh,j0h-j8h2hVh4}r[(h9]h8]h6]h7]h;]Uentries]r\(hYX1loglevel (celery.worker.WorkController attribute)hUtr]auh=Nh>hh&]ubhk)r^}r_(h+Uh,j0h-j8h2hnh4}r`(hphqXpyh9]h8]h6]h7]h;]hrX attributerahtjauh=Nh>hh&]rb(hv)rc}rd(h+Xloglevelreh,j^h-j8h2hzh4}rf(h9]rghah}jh8]h6]h7]h;]rhhahXWorkController.loglevelhhhuh=Kh>hh&]rih)rj}rk(h+jeh,jch-j8h2hh4}rl(h6]h7]h8]h9]h;]uh=Kh>hh&]rmhGXloglevelrnro}rp(h+Uh,jjubaubaubj/)rq}rr(h+Uh,j^h-j8h2j2h4}rs(h6]h7]h8]h9]h;]uh=Kh>hh&]rth[)ru}rv(h+X2The loglevel used (default: :const:`logging.INFO`)h,jqh-j8h2h`h4}rw(h6]h7]h8]h9]h;]uh=Kh>hh&]rx(hGXThe loglevel used (default: ryrz}r{(h+XThe loglevel used (default: h,juubjt)r|}r}(h+X:const:`logging.INFO`r~h,juh-Nh2jxh4}r(UreftypeXconstjzj{X logging.INFOU refdomainXpyrh9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]rj)r}r(h+j~h4}r(h6]h7]r(jjXpy-constreh8]h9]h;]uh,j|h&]rhGX logging.INFOrr}r(h+Uh,jubah2jubaubhGX)r}r(h+X)h,juubeubaubeubhS)r}r(h+Uh,j0h-j8h2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX0logfile (celery.worker.WorkController attribute)hUtrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-j8h2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrX attributerhtjuh=Nh>hh&]r(hv)r}r(h+Xlogfilerh,jh-j8h2hzh4}r(h9]rhah}jh8]h6]h7]h;]rhahXWorkController.logfilehhhuh=Kh>hh&]rh)r}r(h+jh,jh-j8h2hh4}r(h6]h7]h8]h9]h;]uh=Kh>hh&]rhGXlogfilerr}r(h+Uh,jubaubaubj/)r}r(h+Uh,jh-j8h2j2h4}r(h6]h7]h8]h9]h;]uh=Kh>hh&]rh[)r}r(h+XjThe logfile used, if no logfile is specified it uses ``stderr`` (default: `celery.conf.CELERYD_LOG_FILE`).h,jh-j8h2h`h4}r(h6]h7]h8]h9]h;]uh=Kh>hh&]r(hGX5The logfile used, if no logfile is specified it uses rr}r(h+X5The logfile used, if no logfile is specified it uses h,jubj)r}r(h+X ``stderr``h4}r(h6]h7]h8]h9]h;]uh,jh&]rhGXstderrrr}r(h+Uh,jubah2jubhGX (default: rr}r(h+X (default: h,jubcdocutils.nodes title_reference r)r}r(h+X`celery.conf.CELERYD_LOG_FILE`h4}r(h6]h7]h8]h9]h;]uh,jh&]rhGXcelery.conf.CELERYD_LOG_FILErr}r(h+Uh,jubah2Utitle_referencerubhGX).rr}r(h+X).h,jubeubaubeubhS)r}r(h+Uh,j0h-j8h2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX;embed_clockservice (celery.worker.WorkController attribute)h Utrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-j8h2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrX attributerhtjuh=Nh>hh&]r(hv)r}r(h+Xembed_clockservicerh,jh-j8h2hzh4}r(h9]rh ah}jh8]h6]h7]h;]rh ahX!WorkController.embed_clockservicehhhuh=Kh>hh&]rh)r}r(h+jh,jh-j8h2hh4}r(h6]h7]h8]h9]h;]uh=Kh>hh&]rhGXembed_clockservicerr}r(h+Uh,jubaubaubj/)r}r(h+Uh,jh-j8h2j2h4}r(h6]h7]h8]h9]h;]uh=Kh>hh&]rh[)r}r(h+XYIf :const:`True`, celerybeat is embedded, running in the main worker process as a thread.h,jh-j8h2h`h4}r(h6]h7]h8]h9]h;]uh=Kh>hh&]r(hGXIf rr}r(h+XIf h,jubjt)r}r(h+X :const:`True`rh,jh-Nh2jxh4}r(UreftypeXconstjzj{XTrueU refdomainXpyrh9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]rj)r}r(h+jh4}r(h6]h7]r(jjXpy-constreh8]h9]h;]uh,jh&]rhGXTruerr}r(h+Uh,jubah2jubaubhGXI, celerybeat is embedded, running in the main worker process as a thread.rr}r(h+XI, celerybeat is embedded, running in the main worker process as a thread.h,jubeubaubeubhS)r}r(h+Uh,j0h-j8h2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX4send_events (celery.worker.WorkController attribute)hUtrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-j8h2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrX attributerhtjuh=Nh>hh&]r(hv)r}r(h+X send_eventsrh,jh-j8h2hzh4}r(h9]r hah}jh8]h6]h7]h;]r hahXWorkController.send_eventshhhuh=K h>hh&]r h)r }r (h+jh,jh-j8h2hh4}r(h6]h7]h8]h9]h;]uh=K h>hh&]rhGX send_eventsrr}r(h+Uh,j ubaubaubj/)r}r(h+Uh,jh-j8h2j2h4}r(h6]h7]h8]h9]h;]uh=K h>hh&]rh[)r}r(h+X^Enable the sending of monitoring events, these events can be captured by monitors (celerymon).rh,jh-j8h2h`h4}r(h6]h7]h8]h9]h;]uh=Kh>hh&]rhGX^Enable the sending of monitoring events, these events can be captured by monitors (celerymon).rr}r(h+jh,jubaubaubeubhS)r}r (h+Uh,j0h-j8h2hVh4}r!(h9]h8]h6]h7]h;]Uentries]r"(hYX/logger (celery.worker.WorkController attribute)h Utr#auh=Nh>hh&]ubhk)r$}r%(h+Uh,j0h-j8h2hnh4}r&(hphqXpyh9]h8]h6]h7]h;]hrX attributer'htj'uh=Nh>hh&]r((hv)r)}r*(h+Xloggerr+h,j$h-j8h2hzh4}r,(h9]r-h ah}jh8]h6]h7]h;]r.h ahXWorkController.loggerhhhuh=K$h>hh&]r/h)r0}r1(h+j+h,j)h-j8h2hh4}r2(h6]h7]h8]h9]h;]uh=K$h>hh&]r3hGXloggerr4r5}r6(h+Uh,j0ubaubaubj/)r7}r8(h+Uh,j$h-j8h2j2h4}r9(h6]h7]h8]h9]h;]uh=K$h>hh&]r:h[)r;}r<(h+X6The :class:`logging.Logger` instance used for logging.h,j7h-j8h2h`h4}r=(h6]h7]h8]h9]h;]uh=K#h>hh&]r>(hGXThe r?r@}rA(h+XThe h,j;ubjt)rB}rC(h+X:class:`logging.Logger`rDh,j;h-Nh2jxh4}rE(UreftypeXclassjzj{Xlogging.LoggerU refdomainXpyrFh9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]rGj)rH}rI(h+jDh4}rJ(h6]h7]rK(jjFXpy-classrLeh8]h9]h;]uh,jBh&]rMhGXlogging.LoggerrNrO}rP(h+Uh,jHubah2jubaubhGX instance used for logging.rQrR}rS(h+X instance used for logging.h,j;ubeubaubeubhS)rT}rU(h+Uh,j0h-j8h2hVh4}rV(h9]h8]h6]h7]h;]Uentries]rW(hYX-pool (celery.worker.WorkController attribute)h UtrXauh=Nh>hh&]ubhk)rY}rZ(h+Uh,j0h-j8h2hnh4}r[(hphqXpyh9]h8]h6]h7]h;]hrX attributer\htj\uh=Nh>hh&]r](hv)r^}r_(h+Xpoolr`h,jYh-j8h2hzh4}ra(h9]rbh ah}jh8]h6]h7]h;]rch ahXWorkController.poolhhhuh=K(h>hh&]rdh)re}rf(h+j`h,j^h-j8h2hh4}rg(h6]h7]h8]h9]h;]uh=K(h>hh&]rhhGXpoolrirj}rk(h+Uh,jeubaubaubj/)rl}rm(h+Uh,jYh-j8h2j2h4}rn(h6]h7]h8]h9]h;]uh=K(h>hh&]roh[)rp}rq(h+X0The :class:`multiprocessing.Pool` instance used.h,jlh-j8h2h`h4}rr(h6]h7]h8]h9]h;]uh=K'h>hh&]rs(hGXThe rtru}rv(h+XThe h,jpubjt)rw}rx(h+X:class:`multiprocessing.Pool`ryh,jph-Nh2jxh4}rz(UreftypeXclassjzj{Xmultiprocessing.PoolU refdomainXpyr{h9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]r|j)r}}r~(h+jyh4}r(h6]h7]r(jj{Xpy-classreh8]h9]h;]uh,jwh&]rhGXmultiprocessing.Poolrr}r(h+Uh,j}ubah2jubaubhGX instance used.rr}r(h+X instance used.h,jpubeubaubeubhS)r}r(h+Uh,j0h-j8h2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX4ready_queue (celery.worker.WorkController attribute)hUtrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-j8h2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrX attributerhtjuh=Nh>hh&]r(hv)r}r(h+X ready_queuerh,jh-j8h2hzh4}r(h9]rhah}jh8]h6]h7]h;]rhahXWorkController.ready_queuehhhuh=K-h>hh&]rh)r}r(h+jh,jh-j8h2hh4}r(h6]h7]h8]h9]h;]uh=K-h>hh&]rhGX ready_queuerr}r(h+Uh,jubaubaubj/)r}r(h+Uh,jh-j8h2j2h4}r(h6]h7]h8]h9]h;]uh=K-h>hh&]rh[)r}r(h+XIThe :class:`Queue.Queue` that holds tasks ready for immediate processing.h,jh-j8h2h`h4}r(h6]h7]h8]h9]h;]uh=K+h>hh&]r(hGXThe rr}r(h+XThe h,jubjt)r}r(h+X:class:`Queue.Queue`rh,jh-Nh2jxh4}r(UreftypeXclassjzj{X Queue.QueueU refdomainXpyrh9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]rj)r}r(h+jh4}r(h6]h7]r(jjXpy-classreh8]h9]h;]uh,jh&]rhGX Queue.Queuerr}r(h+Uh,jubah2jubaubhGX1 that holds tasks ready for immediate processing.rr}r(h+X1 that holds tasks ready for immediate processing.h,jubeubaubeubhS)r}r(h+Uh,j0h-j8h2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX<schedule_controller (celery.worker.WorkController attribute)h Utrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-j8h2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrX attributerhtjuh=Nh>hh&]r(hv)r}r(h+Xschedule_controllerrh,jh-j8h2hzh4}r(h9]rh ah}jh8]h6]h7]h;]rh ahX"WorkController.schedule_controllerhhhuh=K1h>hh&]rh)r}r(h+jh,jh-j8h2hh4}r(h6]h7]h8]h9]h;]uh=K1h>hh&]rhGXschedule_controllerrr}r(h+Uh,jubaubaubj/)r}r(h+Uh,jh-j8h2j2h4}r(h6]h7]h8]h9]h;]uh=K1h>hh&]rh[)r}r(h+XBInstance of :class:`celery.worker.controllers.ScheduleController`.h,jh-j8h2h`h4}r(h6]h7]h8]h9]h;]uh=K0h>hh&]r(hGX Instance of rr}r(h+X Instance of h,jubjt)r}r(h+X5:class:`celery.worker.controllers.ScheduleController`rh,jh-Nh2jxh4}r(UreftypeXclassjzj{X,celery.worker.controllers.ScheduleControllerU refdomainXpyrh9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]rj)r}r(h+jh4}r(h6]h7]r(jjXpy-classreh8]h9]h;]uh,jh&]rhGX,celery.worker.controllers.ScheduleControllerrr}r(h+Uh,jubah2jubaubhGX.r}r(h+X.h,jubeubaubeubhS)r}r(h+Uh,j0h-j8h2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX1mediator (celery.worker.WorkController attribute)hUtrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-j8h2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrX attributerhtjuh=Nh>hh&]r(hv)r}r(h+Xmediatorrh,jh-j8h2hzh4}r(h9]rhah}jh8]h6]h7]h;]rhahXWorkController.mediatorhhhuh=K5h>hh&]rh)r}r(h+jh,jh-j8h2hh4}r(h6]h7]h8]h9]h;]uh=K5h>hh&]rhGXmediatorrr}r (h+Uh,jubaubaubj/)r }r (h+Uh,jh-j8h2j2h4}r (h6]h7]h8]h9]h;]uh=K5h>hh&]r h[)r}r(h+X8Instance of :class:`celery.worker.controllers.Mediator`.h,j h-j8h2h`h4}r(h6]h7]h8]h9]h;]uh=K4h>hh&]r(hGX Instance of rr}r(h+X Instance of h,jubjt)r}r(h+X+:class:`celery.worker.controllers.Mediator`rh,jh-Nh2jxh4}r(UreftypeXclassjzj{X"celery.worker.controllers.MediatorU refdomainXpyrh9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]rj)r}r(h+jh4}r(h6]h7]r(jjXpy-classreh8]h9]h;]uh,jh&]r hGX"celery.worker.controllers.Mediatorr!r"}r#(h+Uh,jubah2jubaubhGX.r$}r%(h+X.h,jubeubaubeubhS)r&}r'(h+Uh,j0h-j8h2hVh4}r((h9]h8]h6]h7]h;]Uentries]r)(hYX1listener (celery.worker.WorkController attribute)h Utr*auh=Nh>hh&]ubhk)r+}r,(h+Uh,j0h-j8h2hnh4}r-(hphqXpyh9]h8]h6]h7]h;]hrX attributer.htj.uh=Nh>hh&]r/(hv)r0}r1(h+Xlistenerr2h,j+h-hNh2hzh4}r3(h9]r4h ah}jh8]h6]h7]h;]r5h ahXWorkController.listenerhhhuh=Kh>hh&]r6h)r7}r8(h+j2h,j0h-hNh2hh4}r9(h6]h7]h8]h9]h;]uh=Kh>hh&]r:hGXlistenerr;r<}r=(h+Uh,j7ubaubaubj/)r>}r?(h+Uh,j+h-hNh2j2h4}r@(h6]h7]h8]h9]h;]uh=Kh>hh&]rAh[)rB}rC(h+X$Instance of :class:`CarrotListener`.h,j>h-j8h2h`h4}rD(h6]h7]h8]h9]h;]uh=K8h>hh&]rE(hGX Instance of rFrG}rH(h+X Instance of h,jBubjt)rI}rJ(h+X:class:`CarrotListener`rKh,jBh-Nh2jxh4}rL(UreftypeXclassjzj{XCarrotListenerU refdomainXpyrMh9]h8]U refexplicith6]h7]h;]j}j~jhjjuh=Nh&]rNj)rO}rP(h+jKh4}rQ(h6]h7]rR(jjMXpy-classrSeh8]h9]h;]uh,jIh&]rThGXCarrotListenerrUrV}rW(h+Uh,jOubah2jubaubhGX.rX}rY(h+X.h,jBubeubaubeubhS)rZ}r[(h+Uh,j0h-Nh2hVh4}r\(h9]h8]h6]h7]h;]Uentries]r](hYX4concurrency (celery.worker.WorkController attribute)X(celery.worker.WorkController.concurrencyUtr^auh=Nh>hh&]ubhk)r_}r`(h+Uh,j0h-Nh2hnh4}ra(hphqXpyh9]h8]h6]h7]h;]hrX attributerbhtjbuh=Nh>hh&]rc(hv)rd}re(h+XWorkController.concurrencyh,j_h-U rfh2hzh4}rg(h9]h}h.X celery.workerrhri}rjbh8]h6]h7]h;]hXWorkController.concurrencyhhhuh=Nh>hh&]rk(h)rl}rm(h+X concurrencyh,jdh-jfh2hh4}rn(h6]h7]h8]h9]h;]uh=Nh>hh&]rohGX concurrencyrprq}rr(h+Uh,jlubaubh)rs}rt(h+X = 0h,jdh-jfh2hh4}ru(h6]h7]h8]h9]h;]uh=Nh>hh&]rvhGX = 0rwrx}ry(h+Uh,jsubaubeubj/)rz}r{(h+Uh,j_h-jfh2j2h4}r|(h6]h7]h8]h9]h;]uh=Nh>hh&]ubeubhS)r}}r~(h+Uh,j0h-Nh2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX0logfile (celery.worker.WorkController attribute)X$celery.worker.WorkController.logfileUtrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-Nh2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrX attributerhtjuh=Nh>hh&]r(hv)r}r(h+XWorkController.logfileh,jh-jfh2hzh4}r(h9]h}h.X celery.workerrr}rbh8]h6]h7]h;]hXWorkController.logfilehhhuh=Nh>hh&]r(h)r}r(h+Xlogfileh,jh-jfh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rhGXlogfilerr}r(h+Uh,jubaubh)r}r(h+X = Noneh,jh-jfh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rhGX = Nonerr}r(h+Uh,jubaubeubj/)r}r(h+Uh,jh-jfh2j2h4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]ubeubhS)r}r(h+Uh,j0h-Nh2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX1loglevel (celery.worker.WorkController attribute)X%celery.worker.WorkController.loglevelUtrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-Nh2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrX attributerhtjuh=Nh>hh&]r(hv)r}r(h+XWorkController.loglevelh,jh-jfh2hzh4}r(h9]h}h.X celery.workerrr}rbh8]h6]h7]h;]hXWorkController.loglevelhhhuh=Nh>hh&]r(h)r}r(h+Xloglevelh,jh-jfh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rhGXloglevelrr}r(h+Uh,jubaubh)r}r(h+X = 40h,jh-jfh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rhGX = 40rr}r(h+Uh,jubaubeubj/)r}r(h+Uh,jh-jfh2j2h4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]ubeubhS)r}r(h+Uh,j0h-Nh2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX6on_timer_error() (celery.worker.WorkController method)hUtrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-Nh2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrXmethodrhtjuh=Nh>hh&]r(hv)r}r(h+X'WorkController.on_timer_error(exc_info)h,jh-hyh2hzh4}r(h9]rhah}h.X celery.workerrr}rbh8]h6]h7]h;]rhahXWorkController.on_timer_errorhhhuh=Nh>hh&]r(h)r}r(h+Xon_timer_errorh,jh-hyh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rhGXon_timer_errorrr}r(h+Uh,jubaubh)r}r(h+Uh,jh-hyh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rh)r}r(h+Xexc_infoh4}r(h6]h7]h8]h9]h;]uh,jh&]rhGXexc_inforr}r(h+Uh,jubah2hubaubeubj/)r}r(h+Uh,jh-hyh2j2h4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]ubeubhS)r}r(h+Uh,j0h-Nh2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX5on_timer_tick() (celery.worker.WorkController method)hUtrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-Nh2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrXmethodrhtjuh=Nh>hh&]r(hv)r}r(h+X#WorkController.on_timer_tick(delay)h,jh-hyh2hzh4}r(h9]rhah}h.X celery.workerrr}rbh8]h6]h7]h;]rhahXWorkController.on_timer_tickhhhuh=Nh>hh&]r(h)r}r(h+X on_timer_tickh,jh-hyh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rhGX on_timer_tickrr}r(h+Uh,jubaubh)r}r(h+Uh,jh-hyh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rh)r}r(h+Xdelayh4}r (h6]h7]h8]h9]h;]uh,jh&]r hGXdelayr r }r (h+Uh,jubah2hubaubeubj/)r}r(h+Uh,jh-hyh2j2h4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]ubeubhS)r}r(h+Uh,j0h-X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/__init__.py:docstring of celery.worker.WorkController.process_taskrh2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX4process_task() (celery.worker.WorkController method)hUtrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-jh2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrXmethodrhtjuh=Nh>hh&]r(hv)r}r(h+X$WorkController.process_task(wrapper)h,jh-hyh2hzh4}r(h9]rhah}h.X celery.workerr r!}r"bh8]h6]h7]h;]r#hahXWorkController.process_taskhhhuh=Nh>hh&]r$(h)r%}r&(h+X process_taskh,jh-hyh2hh4}r'(h6]h7]h8]h9]h;]uh=Nh>hh&]r(hGX process_taskr)r*}r+(h+Uh,j%ubaubh)r,}r-(h+Uh,jh-hyh2hh4}r.(h6]h7]h8]h9]h;]uh=Nh>hh&]r/h)r0}r1(h+Xwrapperh4}r2(h6]h7]h8]h9]h;]uh,j,h&]r3hGXwrapperr4r5}r6(h+Uh,j0ubah2hubaubeubj/)r7}r8(h+Uh,jh-hyh2j2h4}r9(h6]h7]h8]h9]h;]uh=Nh>hh&]r:h[)r;}r<(h+X2Process task by sending it to the pool of workers.r=h,j7h-jh2h`h4}r>(h6]h7]h8]h9]h;]uh=Kh>hh&]r?hGX2Process task by sending it to the pool of workers.r@rA}rB(h+j=h,j;ubaubaubeubhS)rC}rD(h+Uh,j0h-X~/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/__init__.py:docstring of celery.worker.WorkController.startrEh2hVh4}rF(h9]h8]h6]h7]h;]Uentries]rG(hYX-start() (celery.worker.WorkController method)hUtrHauh=Nh>hh&]ubhk)rI}rJ(h+Uh,j0h-jEh2hnh4}rK(hphqXpyh9]h8]h6]h7]h;]hrXmethodrLhtjLuh=Nh>hh&]rM(hv)rN}rO(h+XWorkController.start()h,jIh-hyh2hzh4}rP(h9]rQhah}h.X celery.workerrRrS}rTbh8]h6]h7]h;]rUhahXWorkController.starthhhuh=Nh>hh&]rV(h)rW}rX(h+Xstarth,jNh-hyh2hh4}rY(h6]h7]h8]h9]h;]uh=Nh>hh&]rZhGXstartr[r\}r](h+Uh,jWubaubh)r^}r_(h+Uh,jNh-hyh2hh4}r`(h6]h7]h8]h9]h;]uh=Nh>hh&]ubeubj/)ra}rb(h+Uh,jIh-hyh2j2h4}rc(h6]h7]h8]h9]h;]uh=Nh>hh&]rdh[)re}rf(h+XStarts the workers main loop.rgh,jah-jEh2h`h4}rh(h6]h7]h8]h9]h;]uh=Kh>hh&]rihGXStarts the workers main loop.rjrk}rl(h+jgh,jeubaubaubeubhS)rm}rn(h+Uh,j0h-X}/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/__init__.py:docstring of celery.worker.WorkController.stoproh2hVh4}rp(h9]h8]h6]h7]h;]Uentries]rq(hYX,stop() (celery.worker.WorkController method)hUtrrauh=Nh>hh&]ubhk)rs}rt(h+Uh,j0h-joh2hnh4}ru(hphqXpyh9]h8]h6]h7]h;]hrXmethodrvhtjvuh=Nh>hh&]rw(hv)rx}ry(h+XWorkController.stop()h,jsh-hyh2hzh4}rz(h9]r{hah}h.X celery.workerr|r}}r~bh8]h6]h7]h;]rhahXWorkController.stophhhuh=Nh>hh&]r(h)r}r(h+Xstoph,jxh-hyh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rhGXstoprr}r(h+Uh,jubaubh)r}r(h+Uh,jxh-hyh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]ubeubj/)r}r(h+Uh,jsh-hyh2j2h4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rh[)r}r(h+X'Graceful shutdown of the worker server.rh,jh-joh2h`h4}r(h6]h7]h8]h9]h;]uh=Kh>hh&]rhGX'Graceful shutdown of the worker server.rr}r(h+jh,jubaubaubeubhS)r}r(h+Uh,j0h-X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/__init__.py:docstring of celery.worker.WorkController.terminaterh2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX1terminate() (celery.worker.WorkController method)hUtrauh=Nh>hh&]ubhk)r}r(h+Uh,j0h-jh2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrXmethodrhtjuh=Nh>hh&]r(hv)r}r(h+XWorkController.terminate()rh,jh-hyh2hzh4}r(h9]rhah}h.X celery.workerrr}rbh8]h6]h7]h;]rhahXWorkController.terminatehhhuh=Nh>hh&]r(h)r}r(h+X terminateh,jh-hyh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rhGX terminaterr}r(h+Uh,jubaubh)r}r(h+Uh,jh-hyh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]ubeubj/)r}r(h+Uh,jh-hyh2j2h4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rh[)r}r(h+X.Not so graceful shutdown of the worker server.rh,jh-jh2h`h4}r(h6]h7]h8]h9]h;]uh=Kh>hh&]rhGX.Not so graceful shutdown of the worker server.rr}r(h+jh,jubaubaubeubeubeubhS)r}r(h+Uh,h)h-X}/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/__init__.py:docstring of celery.worker.process_initializerrh2hVh4}r(h9]h8]h6]h7]h;]Uentries]r(hYX/process_initializer() (in module celery.worker)hUtrauh=Nh>hh&]ubhk)r}r(h+Uh,h)h-jh2hnh4}r(hphqXpyh9]h8]h6]h7]h;]hrXfunctionrhtjuh=Nh>hh&]r(hv)r}r(h+Xprocess_initializer(hostname)rh,jh-hyh2hzh4}r(h9]rhah}h.X celery.workerrr}rbh8]h6]h7]h;]rhahXprocess_initializerrhUhuh=Nh>hh&]r(h)r}r(h+Xcelery.worker.h,jh-hyh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rhGXcelery.worker.rr}r(h+Uh,jubaubh)r}r(h+jh,jh-hyh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rhGXprocess_initializerrr}r(h+Uh,jubaubh)r}r(h+Uh,jh-hyh2hh4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]rh)r}r(h+Xhostnameh4}r(h6]h7]h8]h9]h;]uh,jh&]rhGXhostnamerr}r(h+Uh,jubah2hubaubeubj/)r}r(h+Uh,jh-hyh2j2h4}r(h6]h7]h8]h9]h;]uh=Nh>hh&]r(h[)r}r(h+X;Initializes the process so it can be used to process tasks.rh,jh-jh2h`h4}r(h6]h7]h8]h9]h;]uh=Kh>hh&]rhGX;Initializes the process so it can be used to process tasks.rr}r(h+jh,jubaubh[)r}r(h+X&Used for multiprocessing environments.rh,jh-jh2h`h4}r(h6]h7]h8]h9]h;]uh=Kh>hh&]rhGX&Used for multiprocessing environments.rr}r(h+jh,jubaubeubeubeubah+UU transformerrNU footnote_refsr}rUrefnamesr}r Usymbol_footnotesr ]r Uautofootnote_refsr ]r Usymbol_footnote_refsr]rU citationsr]rh>hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h+Uh4}r(h6]UlevelKh9]h8]UsourcehNh7]h;]UlineKUtypeUINFOruh&]rh[)r}r(h+Uh4}r(h6]h7]h8]h9]h;]uh,jh&]rhGX:Hyperlink target "module-celery.worker" is not referenced.rr }r!(h+Uh,jubah2h`ubah2Usystem_messager"ubaUreporterr#NUid_startr$KU autofootnotesr%]r&U citation_refsr'}r(Uindirect_targetsr)]r*Usettingsr+(cdocutils.frontend Values r,or-}r.(Ufootnote_backlinksr/KUrecord_dependenciesr0NU rfc_base_urlr1Uhttp://tools.ietf.org/html/r2U tracebackr3Upep_referencesr4NUstrip_commentsr5NU toc_backlinksr6Uentryr7U language_coder8Uenr9U datestampr:NU report_levelr;KU _destinationr<NU halt_levelr=KU strip_classesr>NhDNUerror_encoding_error_handlerr?Ubackslashreplacer@UdebugrANUembed_stylesheetrBUoutput_encoding_error_handlerrCUstrictrDU sectnum_xformrEKUdump_transformsrFNU docinfo_xformrGKUwarning_streamrHNUpep_file_url_templaterIUpep-%04drJUexit_status_levelrKKUconfigrLNUstrict_visitorrMNUcloak_email_addressesrNUtrim_footnote_reference_spacerOUenvrPNUdump_pseudo_xmlrQNUexpose_internalsrRNUsectsubtitle_xformrSU source_linkrTNUrfc_referencesrUNUoutput_encodingrVUutf-8rWU source_urlrXNUinput_encodingrYU utf-8-sigrZU_disable_configr[NU id_prefixr\UU tab_widthr]KUerror_encodingr^UUTF-8r_U_sourcer`U_/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.rstraUgettext_compactrbU generatorrcNUdump_internalsrdNU smart_quotesreU pep_base_urlrfUhttp://www.python.org/dev/peps/rgUsyntax_highlightrhUlongriUinput_encoding_error_handlerrjjDUauto_id_prefixrkUidrlUdoctitle_xformrmUstrip_elements_with_classesrnNU _config_filesro]Ufile_insertion_enabledrpU raw_enabledrqKU dump_settingsrrNubUsymbol_footnote_startrsKUidsrt}ru(hjhjNhj7hjh$h)h j0h%cdocutils.nodes topic rv)rw}rx(h+Uh,h)h-h0h2Utopicryh4}rz(h6]h7]r{(Ucontentsr|Ulocalr}eh8]h9]r~h%ah;]rhauh=Kh>hh&]rcdocutils.nodes pending r)r}r(h+X.. contents:: :local:h,jwU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh2Upendingrh4}r(h6]h7]h8]h9]h;]uh&]ubaubhjhjhhwhjhjh jh j^h j)hRhLhjxhjhjhjchjh juUsubstitution_namesr}rh2h>h4}r(h6]h9]h8]Usourceh0h7]h;]uU footnotesr]rUrefidsr}rub.PKYDD@YX<<Ocelery-2.1-archived/.doctrees/internals/reference/celery.backends.cache.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X(celery.backends.cache.DummyClient.deleteqX)backend: memcache - celery.backends.cacheqNX)celery.backends.cache.CacheBackend.deleteqX%celery.backends.cache.DummyClient.setq X'celery.backends.cache.get_best_memcacheq X%celery.backends.cache.DummyClient.getq X)celery.backends.cache.CacheBackend.clientq X"celery.backends.cache.CacheBackendq X&celery.backends.cache.CacheBackend.getqX&celery.backends.cache.CacheBackend.setqUcontentsqNX!celery.backends.cache.DummyClientquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhU&backend-memcache-celery-backends-cacheqhhh h h h h h h h h h hhhhhUcontentsqhhuUchildrenq]qcdocutils.nodes section q)q }q!(U rawsourceq"UUparentq#hUsourceq$cdocutils.nodes reprunicode q%Xg/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.cache.rstq&q'}q(bUtagnameq)Usectionq*U attributesq+}q,(Udupnamesq-]Uclassesq.]Ubackrefsq/]Uidsq0]q1haUnamesq2]q3hauUlineq4KUdocumentq5hh]q6(cdocutils.nodes title q7)q8}q9(h"X)Backend: Memcache - celery.backends.cacheq:h#h h$h'h)Utitleq;h+}q<(h-]h.]h/]h0]h2]uh4Kh5hh]q=cdocutils.nodes Text q>X)Backend: Memcache - celery.backends.cacheq?q@}qA(h"h:h#h8ubaubcdocutils.nodes target qB)qC}qD(h"Uh#h h$U qEh)UtargetqFh+}qG(h-]h0]qHXmodule-celery.backends.cacheqIah/]Uismodh.]h2]uh4Kh5hh]ubcsphinx.addnodes index qJ)qK}qL(h"Uh#h h$hEh)UindexqMh+}qN(h0]h/]h-]h.]h2]Uentries]qO(UsingleqPXcelery.backends.cache (module)Xmodule-celery.backends.cacheUtqQauh4Kh5hh]ubhJ)qR}qS(h"Uh#h h$Nh)hMh+}qT(h0]h/]h-]h.]h2]Uentries]qU(hPX-CacheBackend (class in celery.backends.cache)h UtqVauh4Nh5hh]ubcsphinx.addnodes desc qW)qX}qY(h"Uh#h h$Nh)UdescqZh+}q[(Unoindexq\Udomainq]Xpyh0]h/]h-]h.]h2]Uobjtypeq^Xclassq_Udesctypeq`h_uh4Nh5hh]qa(csphinx.addnodes desc_signature qb)qc}qd(h"XOCacheBackend(expires=datetime.timedelta(1), backend=None, options={}, **kwargs)h#hXh$U qeh)Udesc_signatureqfh+}qg(h0]qhh aUmoduleqih%Xcelery.backends.cacheqjqk}qlbh/]h-]h.]h2]qmh aUfullnameqnX CacheBackendqoUclassqpUUfirstqquh4Nh5hh]qr(csphinx.addnodes desc_annotation qs)qt}qu(h"Xclass h#hch$heh)Udesc_annotationqvh+}qw(h-]h.]h/]h0]h2]uh4Nh5hh]qxh>Xclass qyqz}q{(h"Uh#htubaubcsphinx.addnodes desc_addname q|)q}}q~(h"Xcelery.backends.cache.h#hch$heh)U desc_addnameqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>Xcelery.backends.cache.qq}q(h"Uh#h}ubaubcsphinx.addnodes desc_name q)q}q(h"hoh#hch$heh)U desc_nameqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>X CacheBackendqq}q(h"Uh#hubaubcsphinx.addnodes desc_parameterlist q)q}q(h"Uh#hch$heh)Udesc_parameterlistqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]q(csphinx.addnodes desc_parameter q)q}q(h"Xexpires=datetime.timedelta(1)h+}q(h-]h.]h/]h0]h2]uh#hh]qh>Xexpires=datetime.timedelta(1)qq}q(h"Uh#hubah)Udesc_parameterqubh)q}q(h"X backend=Noneh+}q(h-]h.]h/]h0]h2]uh#hh]qh>X backend=Noneqq}q(h"Uh#hubah)hubh)q}q(h"X options={}h+}q(h-]h.]h/]h0]h2]uh#hh]qh>X options={}qq}q(h"Uh#hubah)hubh)q}q(h"X**kwargsh+}q(h-]h.]h/]h0]h2]uh#hh]qh>X**kwargsqq}q(h"Uh#hubah)hubeubeubcsphinx.addnodes desc_content q)q}q(h"Uh#hXh$heh)U desc_contentqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]q(hJ)q}q(h"Uh#hh$Nh)hMh+}q(h0]h/]h-]h.]h2]Uentries]q(hPX5client (celery.backends.cache.CacheBackend attribute)h Utqauh4Nh5hh]ubhW)q}q(h"Uh#hh$Nh)hZh+}q(h\h]Xpyh0]h/]h-]h.]h2]h^X attributeqh`huh4Nh5hh]q(hb)q}q(h"XCacheBackend.clienth#hh$heh)hfh+}q(h0]qh ahih%Xcelery.backends.cacheqƅq}qbh/]h-]h.]h2]qh ahnXCacheBackend.clienthphohquh4Nh5hh]qh)q}q(h"Xclienth#hh$heh)hh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>Xclientqυq}q(h"Uh#hubaubaubh)q}q(h"Uh#hh$heh)hh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)q}q(h"Uh#hh$Nh)hMh+}q(h0]h/]h-]h.]h2]Uentries]q(hPX4delete() (celery.backends.cache.CacheBackend method)hUtqauh4Nh5hh]ubhW)q}q(h"Uh#hh$Nh)hZh+}q(h\h]Xpyh0]h/]h-]h.]h2]h^Xmethodqh`huh4Nh5hh]q(hb)q}q(h"XCacheBackend.delete(key)h#hh$heh)hfh+}q(h0]qhahih%Xcelery.backends.cacheqㅁq}qbh/]h-]h.]h2]qhahnXCacheBackend.deletehphohquh4Nh5hh]q(h)q}q(h"Xdeleteh#hh$heh)hh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>Xdeleteq셁q}q(h"Uh#hubaubh)q}q(h"Uh#hh$heh)hh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh)q}q(h"Xkeyh+}q(h-]h.]h/]h0]h2]uh#hh]qh>Xkeyqq}q(h"Uh#hubah)hubaubeubh)q}q(h"Uh#hh$heh)hh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)q}q(h"Uh#hh$Nh)hMh+}q(h0]h/]h-]h.]h2]Uentries]r(hPX1get() (celery.backends.cache.CacheBackend method)hUtrauh4Nh5hh]ubhW)r}r(h"Uh#hh$Nh)hZh+}r(h\h]Xpyh0]h/]h-]h.]h2]h^Xmethodrh`juh4Nh5hh]r(hb)r}r(h"XCacheBackend.get(key)h#jh$heh)hfh+}r (h0]r hahih%Xcelery.backends.cacher r }r bh/]h-]h.]h2]rhahnXCacheBackend.gethphohquh4Nh5hh]r(h)r}r(h"Xgeth#jh$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>Xgetrr}r(h"Uh#jubaubh)r}r(h"Uh#jh$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh)r}r(h"Xkeyh+}r(h-]h.]h/]h0]h2]uh#jh]rh>Xkeyrr }r!(h"Uh#jubah)hubaubeubh)r"}r#(h"Uh#jh$heh)hh+}r$(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)r%}r&(h"Uh#hh$Nh)hMh+}r'(h0]h/]h-]h.]h2]Uentries]r((hPX1set() (celery.backends.cache.CacheBackend method)hUtr)auh4Nh5hh]ubhW)r*}r+(h"Uh#hh$Nh)hZh+}r,(h\h]Xpyh0]h/]h-]h.]h2]h^Xmethodr-h`j-uh4Nh5hh]r.(hb)r/}r0(h"XCacheBackend.set(key, value)h#j*h$heh)hfh+}r1(h0]r2hahih%Xcelery.backends.cacher3r4}r5bh/]h-]h.]h2]r6hahnXCacheBackend.sethphohquh4Nh5hh]r7(h)r8}r9(h"Xseth#j/h$heh)hh+}r:(h-]h.]h/]h0]h2]uh4Nh5hh]r;h>Xsetr<r=}r>(h"Uh#j8ubaubh)r?}r@(h"Uh#j/h$heh)hh+}rA(h-]h.]h/]h0]h2]uh4Nh5hh]rB(h)rC}rD(h"Xkeyh+}rE(h-]h.]h/]h0]h2]uh#j?h]rFh>XkeyrGrH}rI(h"Uh#jCubah)hubh)rJ}rK(h"Xvalueh+}rL(h-]h.]h/]h0]h2]uh#j?h]rMh>XvaluerNrO}rP(h"Uh#jJubah)hubeubeubh)rQ}rR(h"Uh#j*h$heh)hh+}rS(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubeubeubhJ)rT}rU(h"Uh#h h$Nh)hMh+}rV(h0]h/]h-]h.]h2]Uentries]rW(hPX,DummyClient (class in celery.backends.cache)hUtrXauh4Nh5hh]ubhW)rY}rZ(h"Uh#h h$Nh)hZh+}r[(h\h]Xpyh0]h/]h-]h.]h2]h^Xclassr\h`j\uh4Nh5hh]r](hb)r^}r_(h"XDummyClient(*args, **kwargs)h#jYh$heh)hfh+}r`(h0]rahahih%Xcelery.backends.cacherbrc}rdbh/]h-]h.]h2]rehahnX DummyClientrfhpUhquh4Nh5hh]rg(hs)rh}ri(h"Xclass h#j^h$heh)hvh+}rj(h-]h.]h/]h0]h2]uh4Nh5hh]rkh>Xclass rlrm}rn(h"Uh#jhubaubh|)ro}rp(h"Xcelery.backends.cache.h#j^h$heh)hh+}rq(h-]h.]h/]h0]h2]uh4Nh5hh]rrh>Xcelery.backends.cache.rsrt}ru(h"Uh#joubaubh)rv}rw(h"jfh#j^h$heh)hh+}rx(h-]h.]h/]h0]h2]uh4Nh5hh]ryh>X DummyClientrzr{}r|(h"Uh#jvubaubh)r}}r~(h"Uh#j^h$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]r(h)r}r(h"X*argsh+}r(h-]h.]h/]h0]h2]uh#j}h]rh>X*argsrr}r(h"Uh#jubah)hubh)r}r(h"X**kwargsh+}r(h-]h.]h/]h0]h2]uh#j}h]rh>X**kwargsrr}r(h"Uh#jubah)hubeubeubh)r}r(h"Uh#jYh$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]r(hJ)r}r(h"Uh#jh$Nh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPX3delete() (celery.backends.cache.DummyClient method)hUtrauh4Nh5hh]ubhW)r}r(h"Uh#jh$Nh)hZh+}r(h\h]Xpyh0]h/]h-]h.]h2]h^Xmethodrh`juh4Nh5hh]r(hb)r}r(h"X(DummyClient.delete(key, *args, **kwargs)h#jh$heh)hfh+}r(h0]rhahih%Xcelery.backends.cacherr}rbh/]h-]h.]h2]rhahnXDummyClient.deletehpjfhquh4Nh5hh]r(h)r}r(h"Xdeleteh#jh$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>Xdeleterr}r(h"Uh#jubaubh)r}r(h"Uh#jh$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]r(h)r}r(h"Xkeyh+}r(h-]h.]h/]h0]h2]uh#jh]rh>Xkeyrr}r(h"Uh#jubah)hubh)r}r(h"X*argsh+}r(h-]h.]h/]h0]h2]uh#jh]rh>X*argsrr}r(h"Uh#jubah)hubh)r}r(h"X**kwargsh+}r(h-]h.]h/]h0]h2]uh#jh]rh>X**kwargsrr}r(h"Uh#jubah)hubeubeubh)r}r(h"Uh#jh$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)r}r(h"Uh#jh$Nh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPX0get() (celery.backends.cache.DummyClient method)h Utrauh4Nh5hh]ubhW)r}r(h"Uh#jh$Nh)hZh+}r(h\h]Xpyh0]h/]h-]h.]h2]h^Xmethodrh`juh4Nh5hh]r(hb)r}r(h"X%DummyClient.get(key, *args, **kwargs)h#jh$heh)hfh+}r(h0]rh ahih%Xcelery.backends.cacherr}rbh/]h-]h.]h2]rh ahnXDummyClient.gethpjfhquh4Nh5hh]r(h)r}r(h"Xgeth#jh$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>Xgetrr}r(h"Uh#jubaubh)r}r(h"Uh#jh$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]r(h)r}r(h"Xkeyh+}r(h-]h.]h/]h0]h2]uh#jh]rh>Xkeyrr}r(h"Uh#jubah)hubh)r}r(h"X*argsh+}r(h-]h.]h/]h0]h2]uh#jh]rh>X*argsrr}r(h"Uh#jubah)hubh)r}r(h"X**kwargsh+}r(h-]h.]h/]h0]h2]uh#jh]rh>X**kwargsrr}r(h"Uh#jubah)hubeubeubh)r}r(h"Uh#jh$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)r}r(h"Uh#jh$Nh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPX0set() (celery.backends.cache.DummyClient method)h Utrauh4Nh5hh]ubhW)r}r(h"Uh#jh$Nh)hZh+}r(h\h]Xpyh0]h/]h-]h.]h2]h^Xmethodrh`juh4Nh5hh]r(hb)r }r (h"X,DummyClient.set(key, value, *args, **kwargs)h#jh$heh)hfh+}r (h0]r h ahih%Xcelery.backends.cacher r}rbh/]h-]h.]h2]rh ahnXDummyClient.sethpjfhquh4Nh5hh]r(h)r}r(h"Xseth#j h$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>Xsetrr}r(h"Uh#jubaubh)r}r(h"Uh#j h$heh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]r(h)r}r(h"Xkeyh+}r(h-]h.]h/]h0]h2]uh#jh]r h>Xkeyr!r"}r#(h"Uh#jubah)hubh)r$}r%(h"Xvalueh+}r&(h-]h.]h/]h0]h2]uh#jh]r'h>Xvaluer(r)}r*(h"Uh#j$ubah)hubh)r+}r,(h"X*argsh+}r-(h-]h.]h/]h0]h2]uh#jh]r.h>X*argsr/r0}r1(h"Uh#j+ubah)hubh)r2}r3(h"X**kwargsh+}r4(h-]h.]h/]h0]h2]uh#jh]r5h>X**kwargsr6r7}r8(h"Uh#j2ubah)hubeubeubh)r9}r:(h"Uh#jh$heh)hh+}r;(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubeubeubhJ)r<}r=(h"Uh#h h$Nh)hMh+}r>(h0]h/]h-]h.]h2]Uentries]r?(hPX5get_best_memcache() (in module celery.backends.cache)h Utr@auh4Nh5hh]ubhW)rA}rB(h"Uh#h h$Nh)hZh+}rC(h\h]Xpyh0]h/]h-]h.]h2]h^XfunctionrDh`jDuh4Nh5hh]rE(hb)rF}rG(h"X"get_best_memcache(*args, **kwargs)h#jAh$heh)hfh+}rH(h0]rIh ahih%Xcelery.backends.cacherJrK}rLbh/]h-]h.]h2]rMh ahnXget_best_memcacherNhpUhquh4Nh5hh]rO(h|)rP}rQ(h"Xcelery.backends.cache.h#jFh$heh)hh+}rR(h-]h.]h/]h0]h2]uh4Nh5hh]rSh>Xcelery.backends.cache.rTrU}rV(h"Uh#jPubaubh)rW}rX(h"jNh#jFh$heh)hh+}rY(h-]h.]h/]h0]h2]uh4Nh5hh]rZh>Xget_best_memcacher[r\}r](h"Uh#jWubaubh)r^}r_(h"Uh#jFh$heh)hh+}r`(h-]h.]h/]h0]h2]uh4Nh5hh]ra(h)rb}rc(h"X*argsh+}rd(h-]h.]h/]h0]h2]uh#j^h]reh>X*argsrfrg}rh(h"Uh#jbubah)hubh)ri}rj(h"X**kwargsh+}rk(h-]h.]h/]h0]h2]uh#j^h]rlh>X**kwargsrmrn}ro(h"Uh#jiubah)hubeubeubh)rp}rq(h"Uh#jAh$heh)hh+}rr(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubeubah"UU transformerrsNU footnote_refsrt}ruUrefnamesrv}rwUsymbol_footnotesrx]ryUautofootnote_refsrz]r{Usymbol_footnote_refsr|]r}U citationsr~]rh5hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h"Uh+}r(h-]UlevelKh0]h/]UsourcehEh.]h2]UlineKUtypeUINFOruh]rcdocutils.nodes paragraph r)r}r(h"Uh+}r(h-]h.]h/]h0]h2]uh#jh]rh>XBHyperlink target "module-celery.backends.cache" is not referenced.rr}r(h"Uh#jubah)U paragraphrubah)Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh;NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUg/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.cache.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhhhIhChh h j h jFh jh hh hchjhj/hcdocutils.nodes topic r)r}r(h"Uh#h h$h'h)Utopicrh+}r(h-]h.]r(UcontentsrUlocalreh/]h0]rhah2]rhauh4Kh5hh]rcdocutils.nodes pending r)r}r(h"X.. contents:: :local:h#jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh)Upendingrh+}r(h-]h.]h/]h0]h2]uh]ubaubhj^uUsubstitution_namesr}rh)h5h+}r(h-]h0]h/]Usourceh'h.]h2]uU footnotesr]rUrefidsr}rub.PKYDDx7 IIOcelery-2.1-archived/.doctrees/internals/reference/celery.datastructures.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X&celery.datastructures.LimitedSet.firstqX!celery.datastructures.TokenBucketqX-celery.datastructures.SharedCounter.incrementqX*celery.datastructures.TokenBucket.capacityq X/celery.datastructures.TokenBucket.expected_timeq X+celery.datastructures.TokenBucket.fill_rateq X*celery.datastructures.PositionQueue.filledq X+celery.datastructures.TokenBucket.timestampq X&datastructures - celery.datastructuresqNX(celery.datastructures.PositionQueue.fullqUcontentsqNX-celery.datastructures.TokenBucket.can_consumeqX'celery.datastructures.LimitedSet.updateqX*celery.datastructures.PositionQueue.lengthqX#celery.datastructures.AttributeDictqX#celery.datastructures.PositionQueueqX#celery.datastructures.SharedCounterqX#celery.datastructures.consume_queueqX-celery.datastructures.ExceptionInfo.tracebackqX-celery.datastructures.SharedCounter.decrementqX(celery.datastructures.LimitedSet.as_dictqX#celery.datastructures.ExceptionInfoqX*celery.datastructures.LimitedSet.pop_valueqX-celery.datastructures.ExceptionInfo.exceptionqX4celery.datastructures.PositionQueue.UnfilledPositionqX celery.datastructures.LocalCacheqX&celery.datastructures.LimitedSet.clearq X0celery.datastructures.LimitedSet.chronologicallyq!X$celery.datastructures.LimitedSet.addq"X celery.datastructures.LimitedSetq#uUsubstitution_defsq$}q%Uparse_messagesq&]q'Ucurrent_sourceq(NU decorationq)NUautofootnote_startq*KUnameidsq+}q,(hhhhhhh h h h h h h h h h hU$datastructures-celery-datastructuresq-hhhUcontentsq.hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh h h!h!h"h"h#h#uUchildrenq/]q0cdocutils.nodes section q1)q2}q3(U rawsourceq4UUparentq5hUsourceq6cdocutils.nodes reprunicode q7Xg/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.datastructures.rstq8q9}q:bUtagnameq;Usectionq(Udupnamesq?]Uclassesq@]UbackrefsqA]UidsqB]qCh-aUnamesqD]qEhauUlineqFKUdocumentqGhh/]qH(cdocutils.nodes title qI)qJ}qK(h4X&Datastructures - celery.datastructuresqLh5h2h6h9h;UtitleqMh=}qN(h?]h@]hA]hB]hD]uhFKhGhh/]qOcdocutils.nodes Text qPX&Datastructures - celery.datastructuresqQqR}qS(h4hLh5hJubaubcdocutils.nodes target qT)qU}qV(h4Uh5h2h6U qWh;UtargetqXh=}qY(h?]hB]qZXmodule-celery.datastructuresq[ahA]Uismodh@]hD]uhFKhGhh/]ubcsphinx.addnodes index q\)q]}q^(h4Uh5h2h6hWh;Uindexq_h=}q`(hB]hA]h?]h@]hD]Uentries]qa(UsingleqbXcelery.datastructures (module)Xmodule-celery.datastructuresUtqcauhFKhGhh/]ubh\)qd}qe(h4Uh5h2h6X~/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.AttributeDictqfh;h_h=}qg(hB]hA]h?]h@]hD]Uentries]qh(hbX.AttributeDict (class in celery.datastructures)hUtqiauhFNhGhh/]ubcsphinx.addnodes desc qj)qk}ql(h4Uh5h2h6hfh;Udescqmh=}qn(UnoindexqoUdomainqpXpyhB]hA]h?]h@]hD]UobjtypeqqXclassqrUdesctypeqshruhFNhGhh/]qt(csphinx.addnodes desc_signature qu)qv}qw(h4X AttributeDictqxh5hkh6U qyh;Udesc_signatureqzh=}q{(hB]q|haUmoduleq}h7Xcelery.datastructuresq~q}qbhA]h?]h@]hD]qhaUfullnameqhxUclassqUUfirstquhFNhGhh/]q(csphinx.addnodes desc_annotation q)q}q(h4Xclass h5hvh6hyh;Udesc_annotationqh=}q(h?]h@]hA]hB]hD]uhFNhGhh/]qhPXclass qq}q(h4Uh5hubaubcsphinx.addnodes desc_addname q)q}q(h4Xcelery.datastructures.h5hvh6hyh;U desc_addnameqh=}q(h?]h@]hA]hB]hD]uhFNhGhh/]qhPXcelery.datastructures.qq}q(h4Uh5hubaubcsphinx.addnodes desc_name q)q}q(h4hxh5hvh6hyh;U desc_nameqh=}q(h?]h@]hA]hB]hD]uhFNhGhh/]qhPX AttributeDictqq}q(h4Uh5hubaubeubcsphinx.addnodes desc_content q)q}q(h4Uh5hkh6hyh;U desc_contentqh=}q(h?]h@]hA]hB]hD]uhFNhGhh/]qcdocutils.nodes paragraph q)q}q(h4X$Dict subclass with attribute access.qh5hh6hfh;U paragraphqh=}q(h?]h@]hA]hB]hD]uhFKhGhh/]qhPX$Dict subclass with attribute access.qq}q(h4hh5hubaubaubeubh\)q}q(h4Uh5h2h6Nh;h_h=}q(hB]hA]h?]h@]hD]Uentries]q(hbX.ExceptionInfo (class in celery.datastructures)hUtqauhFNhGhh/]ubhj)q}q(h4Uh5h2h6Nh;hmh=}q(hohpXpyhB]hA]h?]h@]hD]hqXclassqhshuhFNhGhh/]q(hu)q}q(h4XExceptionInfo(exc_info)h5hh6hyh;hzh=}q(hB]qhah}h7Xcelery.datastructuresqq}qbhA]h?]h@]hD]qhahX ExceptionInfoqhUhuhFNhGhh/]q(h)q}q(h4Xclass h5hh6hyh;hh=}q(h?]h@]hA]hB]hD]uhFNhGhh/]qhPXclass qɅq}q(h4Uh5hubaubh)q}q(h4Xcelery.datastructures.h5hh6hyh;hh=}q(h?]h@]hA]hB]hD]uhFNhGhh/]qhPXcelery.datastructures.qЅq}q(h4Uh5hubaubh)q}q(h4hh5hh6hyh;hh=}q(h?]h@]hA]hB]hD]uhFNhGhh/]qhPX ExceptionInfoqׅq}q(h4Uh5hubaubcsphinx.addnodes desc_parameterlist q)q}q(h4Uh5hh6hyh;Udesc_parameterlistqh=}q(h?]h@]hA]hB]hD]uhFNhGhh/]qcsphinx.addnodes desc_parameter q)q}q(h4Xexc_infoh=}q(h?]h@]hA]hB]hD]uh5hh/]qhPXexc_infoq允q}q(h4Uh5hubah;Udesc_parameterqubaubeubh)q}q(h4Uh5hh6hyh;hh=}q(h?]h@]hA]hB]hD]uhFNhGhh/]q(h)q}q(h4X2Exception wrapping an exception and its traceback.qh5hh6X~/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.ExceptionInfoqh;hh=}q(h?]h@]hA]hB]hD]uhFKhGhh/]qhPX2Exception wrapping an exception and its traceback.qq}q(h4hh5hubaubcdocutils.nodes field_list q)q}q(h4Uh5hh6Nh;U field_listqh=}q(h?]h@]hA]hB]hD]uhFNhGhh/]qcdocutils.nodes field q)q}q(h4Uh=}q(h?]h@]hA]hB]hD]uh5hh/]r(cdocutils.nodes field_name r)r}r(h4Uh=}r(h?]h@]hA]hB]hD]uh5hh/]rhPX Parametersrr}r(h4Uh5jubah;U field_namer ubcdocutils.nodes field_body r )r }r (h4Uh=}r (h?]h@]hA]hB]hD]uh5hh/]rh)r}r(h4Uh=}r(h?]h@]hA]hB]hD]uh5j h/]r(cdocutils.nodes strong r)r}r(h4Xexc_infoh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPXexc_inforr}r(h4Uh5jubah;UstrongrubhPX -- rr}r(h4Uh5jubhPX(The exception tuple info as returned by rr }r!(h4X(The exception tuple info as returned by h5jubcsphinx.addnodes pending_xref r")r#}r$(h4X":func:`traceback.format_exception`r%h5jh6Nh;U pending_xrefr&h=}r'(UreftypeXfuncUrefwarnr(U reftargetr)Xtraceback.format_exceptionU refdomainXpyr*hB]hA]U refexplicith?]h@]hD]Urefdocr+X)internals/reference/celery.datastructuresr,Upy:classr-hU py:moduler.Xcelery.datastructuresr/uhFNh/]r0cdocutils.nodes literal r1)r2}r3(h4j%h=}r4(h?]h@]r5(Uxrefr6j*Xpy-funcr7ehA]hB]hD]uh5j#h/]r8hPXtraceback.format_exception()r9r:}r;(h4Uh5j2ubah;Uliteralr<ubaubhPX.r=}r>(h4X.h5jubeh;hubah;U field_bodyr?ubeh;Ufieldr@ubaubh\)rA}rB(h4Uh5hh6hh;h_h=}rC(hB]hA]h?]h@]hD]Uentries]rD(hbX9exception (celery.datastructures.ExceptionInfo attribute)hUtrEauhFNhGhh/]ubhj)rF}rG(h4Uh5hh6hh;hmh=}rH(hohpXpyhB]hA]h?]h@]hD]hqX attributerIhsjIuhFNhGhh/]rJ(hu)rK}rL(h4X exceptionrMh5jFh6hh;hzh=}rN(hB]rOhah}j/hA]h?]h@]hD]rPhahXExceptionInfo.exceptionhhhuhFK hGhh/]rQh)rR}rS(h4jMh5jKh6hh;hh=}rT(h?]h@]hA]hB]hD]uhFK hGhh/]rUhPX exceptionrVrW}rX(h4Uh5jRubaubaubh)rY}rZ(h4Uh5jFh6hh;hh=}r[(h?]h@]hA]hB]hD]uhFK hGhh/]r\h)r]}r^(h4XThe original exception.r_h5jYh6hh;hh=}r`(h?]h@]hA]hB]hD]uhFKhGhh/]rahPXThe original exception.rbrc}rd(h4j_h5j]ubaubaubeubh\)re}rf(h4Uh5hh6hh;h_h=}rg(hB]hA]h?]h@]hD]Uentries]rh(hbX9traceback (celery.datastructures.ExceptionInfo attribute)hUtriauhFNhGhh/]ubhj)rj}rk(h4Uh5hh6hh;hmh=}rl(hohpXpyhB]hA]h?]h@]hD]hqX attributermhsjmuhFNhGhh/]rn(hu)ro}rp(h4X tracebackrqh5jjh6hh;hzh=}rr(hB]rshah}j/hA]h?]h@]hD]rthahXExceptionInfo.tracebackhhhuhFK hGhh/]ruh)rv}rw(h4jqh5joh6hh;hh=}rx(h?]h@]hA]hB]hD]uhFK hGhh/]ryhPX tracebackrzr{}r|(h4Uh5jvubaubaubh)r}}r~(h4Uh5jjh6hh;hh=}r(h?]h@]hA]hB]hD]uhFK hGhh/]rh)r}r(h4X=A traceback from the point when :attr:`exception` was raised.h5j}h6hh;hh=}r(h?]h@]hA]hB]hD]uhFK hGhh/]r(hPX A traceback from the point when rr}r(h4X A traceback from the point when h5jubj")r}r(h4X:attr:`exception`rh5jh6Nh;j&h=}r(UreftypeXattrj(j)X exceptionU refdomainXpyrhB]hA]U refexplicith?]h@]hD]j+j,j-hj.j/uhFNh/]rj1)r}r(h4jh=}r(h?]h@]r(j6jXpy-attrrehA]hB]hD]uh5jh/]rhPX exceptionrr}r(h4Uh5jubah;j<ubaubhPX was raised.rr}r(h4X was raised.h5jubeubaubeubeubeubh\)r}r(h4Uh5h2h6Nh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX+LimitedSet (class in celery.datastructures)h#UtrauhFNhGhh/]ubhj)r}r(h4Uh5h2h6Nh;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqXclassrhsjuhFNhGhh/]r(hu)r}r(h4X%LimitedSet(maxlen=None, expires=None)h5jh6hyh;hzh=}r(hB]rh#ah}h7Xcelery.datastructuresrr}rbhA]h?]h@]hD]rh#ahX LimitedSetrhUhuhFNhGhh/]r(h)r}r(h4Xclass h5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXclass rr}r(h4Uh5jubaubh)r}r(h4Xcelery.datastructures.h5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXcelery.datastructures.rr}r(h4Uh5jubaubh)r}r(h4jh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPX LimitedSetrr}r(h4Uh5jubaubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]r(h)r}r(h4X maxlen=Noneh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPX maxlen=Nonerr}r(h4Uh5jubah;hubh)r}r(h4X expires=Noneh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPX expires=Nonerr}r(h4Uh5jubah;hubeubeubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]r(h)r}r(h4XKind-of Set with limitations.rh5jh6X{/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.LimitedSetrh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPXKind-of Set with limitations.rr}r(h4jh5jubaubh)r}r(h4XGood for when you need to test for membership (``a in set``), but the list might become to big, so you want to limit it so it doesn't consume too much resources.h5jh6jh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]r(hPX/Good for when you need to test for membership (rr}r(h4X/Good for when you need to test for membership (h5jubj1)r}r(h4X ``a in set``h=}r(h?]h@]hA]hB]hD]uh5jh/]rhPXa in setrr}r(h4Uh5jubah;j<ubhPXf), but the list might become to big, so you want to limit it so it doesn't consume too much resources.rr}r(h4Xf), but the list might become to big, so you want to limit it so it doesn't consume too much resources.h5jubeubh)r}r(h4Uh5jh6Nh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4Uh=}r(h?]h@]hA]hB]hD]uh5jh/]r(j)r}r(h4Uh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPX Parametersrr}r(h4Uh5jubah;j ubj )r}r(h4Uh=}r(h?]h@]hA]hB]hD]uh5jh/]rcdocutils.nodes bullet_list r)r}r(h4Uh=}r (h?]h@]hA]hB]hD]uh5jh/]r (cdocutils.nodes list_item r )r }r (h4Uh=}r(h?]h@]hA]hB]hD]uh5jh/]rh)r}r(h4Uh=}r(h?]h@]hA]hB]hD]uh5j h/]r(j)r}r(h4Xmaxlenh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPXmaxlenrr}r(h4Uh5jubah;jubhPX -- rr}r(h4Uh5jubhPXCMaximum number of members before we start deleting expired members.rr}r (h4XCMaximum number of members before we start deleting expired members.h5jubeh;hubah;U list_itemr!ubj )r"}r#(h4Uh=}r$(h?]h@]hA]hB]hD]uh5jh/]r%h)r&}r'(h4Uh=}r((h?]h@]hA]hB]hD]uh5j"h/]r)(j)r*}r+(h4Xexpiresh=}r,(h?]h@]hA]hB]hD]uh5j&h/]r-hPXexpiresr.r/}r0(h4Uh5j*ubah;jubhPX -- r1r2}r3(h4Uh5j&ubhPX-Time in seconds, before a membership expires.r4r5}r6(h4X-Time in seconds, before a membership expires.h5j&ubeh;hubah;j!ubeh;U bullet_listr7ubah;j?ubeh;j@ubaubh\)r8}r9(h4Uh5jh6X/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.LimitedSet.addr:h;h_h=}r;(hB]hA]h?]h@]hD]Uentries]r<(hbX/add() (celery.datastructures.LimitedSet method)h"Utr=auhFNhGhh/]ubhj)r>}r?(h4Uh5jh6j:h;hmh=}r@(hohpXpyhB]hA]h?]h@]hD]hqXmethodrAhsjAuhFNhGhh/]rB(hu)rC}rD(h4XLimitedSet.add(value)h5j>h6hyh;hzh=}rE(hB]rFh"ah}h7Xcelery.datastructuresrGrH}rIbhA]h?]h@]hD]rJh"ahXLimitedSet.addhjhuhFNhGhh/]rK(h)rL}rM(h4Xaddh5jCh6hyh;hh=}rN(h?]h@]hA]hB]hD]uhFNhGhh/]rOhPXaddrPrQ}rR(h4Uh5jLubaubh)rS}rT(h4Uh5jCh6hyh;hh=}rU(h?]h@]hA]hB]hD]uhFNhGhh/]rVh)rW}rX(h4Xvalueh=}rY(h?]h@]hA]hB]hD]uh5jSh/]rZhPXvaluer[r\}r](h4Uh5jWubah;hubaubeubh)r^}r_(h4Uh5j>h6hyh;hh=}r`(h?]h@]hA]hB]hD]uhFNhGhh/]rah)rb}rc(h4XAdd a new member.rdh5j^h6j:h;hh=}re(h?]h@]hA]hB]hD]uhFKhGhh/]rfhPXAdd a new member.rgrh}ri(h4jdh5jbubaubaubeubh\)rj}rk(h4Uh5jh6Nh;h_h=}rl(hB]hA]h?]h@]hD]Uentries]rm(hbX3as_dict() (celery.datastructures.LimitedSet method)hUtrnauhFNhGhh/]ubhj)ro}rp(h4Uh5jh6Nh;hmh=}rq(hohpXpyhB]hA]h?]h@]hD]hqXmethodrrhsjruhFNhGhh/]rs(hu)rt}ru(h4XLimitedSet.as_dict()h5joh6hyh;hzh=}rv(hB]rwhah}h7Xcelery.datastructuresrxry}rzbhA]h?]h@]hD]r{hahXLimitedSet.as_dicthjhuhFNhGhh/]r|(h)r}}r~(h4Xas_dicth5jth6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXas_dictrr}r(h4Uh5j}ubaubh)r}r(h4Uh5jth6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]ubeubh)r}r(h4Uh5joh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]ubeubh\)r}r(h4Uh5jh6Nh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX<chronologically (celery.datastructures.LimitedSet attribute)h!UtrauhFNhGhh/]ubhj)r}r(h4Uh5jh6Nh;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqX attributerhsjuhFNhGhh/]r(hu)r}r(h4XLimitedSet.chronologicallyh5jh6hyh;hzh=}r(hB]rh!ah}h7Xcelery.datastructuresrr}rbhA]h?]h@]hD]rh!ahXLimitedSet.chronologicallyhjhuhFNhGhh/]rh)r}r(h4Xchronologicallyh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXchronologicallyrr}r(h4Uh5jubaubaubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]ubeubh\)r}r(h4Uh5jh6X/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.LimitedSet.clearrh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX1clear() (celery.datastructures.LimitedSet method)h UtrauhFNhGhh/]ubhj)r}r(h4Uh5jh6jh;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqXmethodrhsjuhFNhGhh/]r(hu)r}r(h4XLimitedSet.clear()h5jh6hyh;hzh=}r(hB]rh ah}h7Xcelery.datastructuresrr}rbhA]h?]h@]hD]rh ahXLimitedSet.clearhjhuhFNhGhh/]r(h)r}r(h4Xclearh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXclearrr}r(h4Uh5jubaubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]ubeubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4XRemove all membersrh5jh6jh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPXRemove all membersrr}r(h4jh5jubaubaubeubh\)r}r(h4Uh5jh6X/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.LimitedSet.firstrh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX2first (celery.datastructures.LimitedSet attribute)hUtrauhFNhGhh/]ubhj)r}r(h4Uh5jh6jh;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqX attributerhsjuhFNhGhh/]r(hu)r}r(h4XLimitedSet.firsth5jh6hyh;hzh=}r(hB]rhah}h7Xcelery.datastructuresrr}rbhA]h?]h@]hD]rhahXLimitedSet.firsthjhuhFNhGhh/]rh)r}r(h4Xfirsth5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXfirstrr}r(h4Uh5jubaubaubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4XGet the oldest member.rh5jh6jh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPXGet the oldest member.rr}r(h4jh5jubaubaubeubh\)r}r(h4Uh5jh6X/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.LimitedSet.pop_valuerh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX5pop_value() (celery.datastructures.LimitedSet method)hUtrauhFNhGhh/]ubhj)r}r(h4Uh5jh6jh;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqXmethodrhsjuhFNhGhh/]r(hu)r}r(h4XLimitedSet.pop_value(value)h5jh6hyh;hzh=}r(hB]rhah}h7Xcelery.datastructuresrr}r bhA]h?]h@]hD]r hahXLimitedSet.pop_valuehjhuhFNhGhh/]r (h)r }r (h4X pop_valueh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPX pop_valuerr}r(h4Uh5j ubaubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4Xvalueh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPXvaluerr}r(h4Uh5jubah;hubaubeubh)r}r(h4Uh5jh6hyh;hh=}r (h?]h@]hA]hB]hD]uhFNhGhh/]r!h)r"}r#(h4X#Remove membership by finding value.r$h5jh6jh;hh=}r%(h?]h@]hA]hB]hD]uhFKhGhh/]r&hPX#Remove membership by finding value.r'r(}r)(h4j$h5j"ubaubaubeubh\)r*}r+(h4Uh5jh6Nh;h_h=}r,(hB]hA]h?]h@]hD]Uentries]r-(hbX2update() (celery.datastructures.LimitedSet method)hUtr.auhFNhGhh/]ubhj)r/}r0(h4Uh5jh6Nh;hmh=}r1(hohpXpyhB]hA]h?]h@]hD]hqXmethodr2hsj2uhFNhGhh/]r3(hu)r4}r5(h4XLimitedSet.update(other)h5j/h6hyh;hzh=}r6(hB]r7hah}h7Xcelery.datastructuresr8r9}r:bhA]h?]h@]hD]r;hahXLimitedSet.updatehjhuhFNhGhh/]r<(h)r=}r>(h4Xupdateh5j4h6hyh;hh=}r?(h?]h@]hA]hB]hD]uhFNhGhh/]r@hPXupdaterArB}rC(h4Uh5j=ubaubh)rD}rE(h4Uh5j4h6hyh;hh=}rF(h?]h@]hA]hB]hD]uhFNhGhh/]rGh)rH}rI(h4Xotherh=}rJ(h?]h@]hA]hB]hD]uh5jDh/]rKhPXotherrLrM}rN(h4Uh5jHubah;hubaubeubh)rO}rP(h4Uh5j/h6hyh;hh=}rQ(h?]h@]hA]hB]hD]uhFNhGhh/]ubeubeubeubh\)rR}rS(h4Uh5h2h6X{/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.LocalCacherTh;h_h=}rU(hB]hA]h?]h@]hD]Uentries]rV(hbX+LocalCache (class in celery.datastructures)hUtrWauhFNhGhh/]ubhj)rX}rY(h4Uh5h2h6jTh;hmh=}rZ(hohpXpyhB]hA]h?]h@]hD]hqXclassr[hsj[uhFNhGhh/]r\(hu)r]}r^(h4XLocalCache(limit=None)h5jXh6hyh;hzh=}r_(hB]r`hah}h7Xcelery.datastructuresrarb}rcbhA]h?]h@]hD]rdhahX LocalCacherehUhuhFNhGhh/]rf(h)rg}rh(h4Xclass h5j]h6hyh;hh=}ri(h?]h@]hA]hB]hD]uhFNhGhh/]rjhPXclass rkrl}rm(h4Uh5jgubaubh)rn}ro(h4Xcelery.datastructures.h5j]h6hyh;hh=}rp(h?]h@]hA]hB]hD]uhFNhGhh/]rqhPXcelery.datastructures.rrrs}rt(h4Uh5jnubaubh)ru}rv(h4jeh5j]h6hyh;hh=}rw(h?]h@]hA]hB]hD]uhFNhGhh/]rxhPX LocalCacheryrz}r{(h4Uh5juubaubh)r|}r}(h4Uh5j]h6hyh;hh=}r~(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4X limit=Noneh=}r(h?]h@]hA]hB]hD]uh5j|h/]rhPX limit=Nonerr}r(h4Uh5jubah;hubaubeubh)r}r(h4Uh5jXh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]r(h)r}r(h4X(Dictionary with a finite number of keys.rh5jh6jTh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPX(Dictionary with a finite number of keys.rr}r(h4jh5jubaubh)r}r(h4XOlder items expires first.rh5jh6jTh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPXOlder items expires first.rr}r(h4jh5jubaubeubeubh\)r}r(h4Uh5h2h6Nh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX.PositionQueue (class in celery.datastructures)hUtrauhFNhGhh/]ubhj)r}r(h4Uh5h2h6Nh;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqXclassrhsjuhFNhGhh/]r(hu)r}r(h4XPositionQueue(length)h5jh6hyh;hzh=}r(hB]rhah}h7Xcelery.datastructuresrr}rbhA]h?]h@]hD]rhahX PositionQueuerhUhuhFNhGhh/]r(h)r}r(h4Xclass h5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXclass rr}r(h4Uh5jubaubh)r}r(h4Xcelery.datastructures.h5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXcelery.datastructures.rr}r(h4Uh5jubaubh)r}r(h4jh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPX PositionQueuerr}r(h4Uh5jubaubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4Xlengthh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPXlengthrr}r(h4Uh5jubah;hubaubeubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]r(h)r}r(h4XA positional queue of a specific length, with slots that are either filled or unfilled. When all of the positions are filled, the queue is considered :meth:`full`.h5jh6X~/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.PositionQueuerh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]r(hPXA positional queue of a specific length, with slots that are either filled or unfilled. When all of the positions are filled, the queue is considered rr}r(h4XA positional queue of a specific length, with slots that are either filled or unfilled. When all of the positions are filled, the queue is considered h5jubj")r}r(h4X :meth:`full`rh5jh6Nh;j&h=}r(UreftypeXmethj(j)XfullU refdomainXpyrhB]hA]U refexplicith?]h@]hD]j+j,j-jj.j/uhFNh/]rj1)r}r(h4jh=}r(h?]h@]r(j6jXpy-methrehA]hB]hD]uh5jh/]rhPXfull()rr}r(h4Uh5jubah;j<ubaubhPX.r}r(h4X.h5jubeubh)r}r(h4Uh5jh6Nh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4Uh=}r(h?]h@]hA]hB]hD]uh5jh/]r(j)r}r(h4Uh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPX Parametersrr}r(h4Uh5jubah;j ubj )r}r(h4Uh=}r(h?]h@]hA]hB]hD]uh5jh/]rh)r}r(h4Uh=}r(h?]h@]hA]hB]hD]uh5jh/]r(j)r}r(h4Xlengthh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPXlengthrr}r (h4Uh5jubah;jubhPX -- r r }r (h4Uh5jubhPXsee r r}r(h4Xsee h5jubj")r}r(h4X:attr:`length`rh5jh6Nh;j&h=}r(UreftypeXattrj(j)XlengthU refdomainXpyrhB]hA]U refexplicith?]h@]hD]j+j,j-jj.j/uhFNh/]rj1)r}r(h4jh=}r(h?]h@]r(j6jXpy-attrrehA]hB]hD]uh5jh/]rhPXlengthrr}r(h4Uh5jubah;j<ubaubhPX.r}r (h4X.h5jubeh;hubah;j?ubeh;j@ubaubh\)r!}r"(h4Uh5jh6jh;h_h=}r#(hB]hA]h?]h@]hD]Uentries]r$(hbX6length (celery.datastructures.PositionQueue attribute)hUtr%auhFNhGhh/]ubhj)r&}r'(h4Uh5jh6jh;hmh=}r((hohpXpyhB]hA]h?]h@]hD]hqX attributer)hsj)uhFNhGhh/]r*(hu)r+}r,(h4Xlengthr-h5j&h6hWh;hzh=}r.(hB]r/hah}j/hA]h?]h@]hD]r0hahXPositionQueue.lengthhjhuhFKhGhh/]r1h)r2}r3(h4j-h5j+h6hWh;hh=}r4(h?]h@]hA]hB]hD]uhFKhGhh/]r5hPXlengthr6r7}r8(h4Uh5j2ubaubaubh)r9}r:(h4Uh5j&h6hWh;hh=}r;(h?]h@]hA]hB]hD]uhFKhGhh/]r<h)r=}r>(h4XAThe number of items required for the queue to be considered full.r?h5j9h6jh;hh=}r@(h?]h@]hA]hB]hD]uhFK hGhh/]rAhPXAThe number of items required for the queue to be considered full.rBrC}rD(h4j?h5j=ubaubaubeubh\)rE}rF(h4Uh5jh6X/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.PositionQueue.UnfilledPositionrGh;h_h=}rH(hB]hA]h?]h@]hD]Uentries]rI(hbX?PositionQueue.UnfilledPosition (class in celery.datastructures)hUtrJauhFNhGhh/]ubhj)rK}rL(h4Uh5jh6jGh;hmh=}rM(hohpXpyhB]hA]h?]h@]hD]hqXclassrNhsjNuhFNhGhh/]rO(hu)rP}rQ(h4X(PositionQueue.UnfilledPosition(position)h5jKh6hyh;hzh=}rR(hB]rShah}h7Xcelery.datastructuresrTrU}rVbhA]h?]h@]hD]rWhahXPositionQueue.UnfilledPositionhjhuhFNhGhh/]rX(h)rY}rZ(h4Xclass h5jPh6hyh;hh=}r[(h?]h@]hA]hB]hD]uhFNhGhh/]r\hPXclass r]r^}r_(h4Uh5jYubaubh)r`}ra(h4XUnfilledPositionh5jPh6hyh;hh=}rb(h?]h@]hA]hB]hD]uhFNhGhh/]rchPXUnfilledPositionrdre}rf(h4Uh5j`ubaubh)rg}rh(h4Uh5jPh6hyh;hh=}ri(h?]h@]hA]hB]hD]uhFNhGhh/]rjh)rk}rl(h4Xpositionh=}rm(h?]h@]hA]hB]hD]uh5jgh/]rnhPXpositionrorp}rq(h4Uh5jkubah;hubaubeubh)rr}rs(h4Uh5jKh6hyh;hh=}rt(h?]h@]hA]hB]hD]uhFNhGhh/]ruh)rv}rw(h4XDescribes an unfilled slot.rxh5jrh6jGh;hh=}ry(h?]h@]hA]hB]hD]uhFKhGhh/]rzhPXDescribes an unfilled slot.r{r|}r}(h4jxh5jvubaubaubeubh\)r~}r(h4Uh5jh6X/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.PositionQueue.filledrh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX6filled (celery.datastructures.PositionQueue attribute)h UtrauhFNhGhh/]ubhj)r}r(h4Uh5jh6jh;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqX attributerhsjuhFNhGhh/]r(hu)r}r(h4XPositionQueue.filledh5jh6hyh;hzh=}r(hB]rh ah}h7Xcelery.datastructuresrr}rbhA]h?]h@]hD]rh ahXPositionQueue.filledhX PositionQueuehuhFNhGhh/]r(h)r}r(h4XPositionQueue.h5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXPositionQueue.rr}r(h4Uh5jubaubh)r}r(h4Xfilledh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXfilledrr}r(h4Uh5jubaubeubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4X#Returns the filled slots as a list.rh5jh6jh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPX#Returns the filled slots as a list.rr}r(h4jh5jubaubaubeubh\)r}r(h4Uh5jh6X/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.PositionQueue.fullrh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX3full() (celery.datastructures.PositionQueue method)hUtrauhFNhGhh/]ubhj)r}r(h4Uh5jh6jh;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqXmethodrhsjuhFNhGhh/]r(hu)r}r(h4XPositionQueue.full()h5jh6hyh;hzh=}r(hB]rhah}h7Xcelery.datastructuresrr}rbhA]h?]h@]hD]rhahXPositionQueue.fullhX PositionQueuehuhFNhGhh/]r(h)r}r(h4XPositionQueue.h5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXPositionQueue.rr}r(h4Uh5jubaubh)r}r(h4Xfullh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXfullrr}r(h4Uh5jubaubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]ubeubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4X5Returns ``True`` if all of the slots has been filled.h5jh6jh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]r(hPXReturns rr}r(h4XReturns h5jubj1)r}r(h4X``True``h=}r(h?]h@]hA]hB]hD]uh5jh/]rhPXTruerr}r(h4Uh5jubah;j<ubhPX% if all of the slots has been filled.rr}r(h4X% if all of the slots has been filled.h5jubeubaubeubeubeubh\)r}r(h4Uh5h2h6Nh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX.SharedCounter (class in celery.datastructures)hUtrauhFNhGhh/]ubhj)r}r(h4Uh5h2h6Nh;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqXclassrhsjuhFNhGhh/]r(hu)r}r(h4XSharedCounter(initial_value)h5jh6hyh;hzh=}r(hB]rhah}h7Xcelery.datastructuresrr}rbhA]h?]h@]hD]rhahX SharedCounterrhUhuhFNhGhh/]r(h)r}r(h4Xclass h5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXclass rr}r(h4Uh5jubaubh)r}r(h4Xcelery.datastructures.h5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXcelery.datastructures.rr}r(h4Uh5jubaubh)r}r (h4jh5jh6hyh;hh=}r (h?]h@]hA]hB]hD]uhFNhGhh/]r hPX SharedCounterr r }r(h4Uh5jubaubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4X initial_valueh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPX initial_valuerr}r(h4Uh5jubah;hubaubeubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]r(h)r}r(h4XThread-safe counter.r h5jh6X~/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.SharedCounterr!h;hh=}r"(h?]h@]hA]hB]hD]uhFKhGhh/]r#hPXThread-safe counter.r$r%}r&(h4j h5jubaubh)r'}r((h4XPlease note that the final value is not synchronized, this means that you should not update the value by using a previous value, the only reliable operations are increment and decrement.r)h5jh6j!h;hh=}r*(h?]h@]hA]hB]hD]uhFKhGhh/]r+hPXPlease note that the final value is not synchronized, this means that you should not update the value by using a previous value, the only reliable operations are increment and decrement.r,r-}r.(h4j)h5j'ubaubh)r/}r0(h4XExampler1h5jh6j!h;hh=}r2(h?]h@]hA]hB]hD]uhFKhGhh/]r3hPXExampler4r5}r6(h4j1h5j/ubaubcdocutils.nodes block_quote r7)r8}r9(h4Uh5jh6hWh;U block_quoter:h=}r;(h?]h@]hA]hB]hD]uhFNhGhh/]r<(cdocutils.nodes doctest_block r=)r>}r?(h4X1>>> max_clients = SharedCounter(initial_value=10)h=}r@(U xml:spacerAUpreserverBhB]hA]h?]h@]hD]uh5j8h/]rChPX1>>> max_clients = SharedCounter(initial_value=10)rDrE}rF(h4Uh5j>ubah;U doctest_blockrGubh)rH}rI(h4X-# Thread one >>> max_clients += 1 # OK (safe)rJh5j8h6j!h;hh=}rK(h?]h@]hA]hB]hD]uhFK h/]rLhPX-# Thread one >>> max_clients += 1 # OK (safe)rMrN}rO(h4jJh5jHubaubh)rP}rQ(h4X-# Thread two >>> max_clients -= 3 # OK (safe)rRh5j8h6j!h;hh=}rS(h?]h@]hA]hB]hD]uhFKh/]rThPX-# Thread two >>> max_clients -= 3 # OK (safe)rUrV}rW(h4jRh5jPubaubh)rX}rY(h4XU# Main thread >>> if client >= int(max_clients): # Max clients now at 8 ... wait()rZh5j8h6j!h;hh=}r[(h?]h@]hA]hB]hD]uhFKh/]r\hPXU# Main thread >>> if client >= int(max_clients): # Max clients now at 8 ... wait()r]r^}r_(h4jZh5jXubaubj=)r`}ra(h4X3>>> max_client = max_clients + 10 # NOT OK (unsafe)h=}rb(jAjBhB]hA]h?]h@]hD]uh5j8h/]rchPX3>>> max_client = max_clients + 10 # NOT OK (unsafe)rdre}rf(h4Uh5j`ubah;jGubeubh\)rg}rh(h4Uh5jh6X/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.SharedCounter.decrementrih;h_h=}rj(hB]hA]h?]h@]hD]Uentries]rk(hbX8decrement() (celery.datastructures.SharedCounter method)hUtrlauhFNhGhh/]ubhj)rm}rn(h4Uh5jh6jih;hmh=}ro(hohpXpyhB]hA]h?]h@]hD]hqXmethodrphsjpuhFNhGhh/]rq(hu)rr}rs(h4XSharedCounter.decrement(n=1)h5jmh6hyh;hzh=}rt(hB]ruhah}h7Xcelery.datastructuresrvrw}rxbhA]h?]h@]hD]ryhahXSharedCounter.decrementhjhuhFNhGhh/]rz(h)r{}r|(h4X decrementh5jrh6hyh;hh=}r}(h?]h@]hA]hB]hD]uhFNhGhh/]r~hPX decrementrr}r(h4Uh5j{ubaubh)r}r(h4Uh5jrh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4Xn=1h=}r(h?]h@]hA]hB]hD]uh5jh/]rhPXn=1rr}r(h4Uh5jubah;hubaubeubh)r}r(h4Uh5jmh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4XDecrement value.rh5jh6jih;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPXDecrement value.rr}r(h4jh5jubaubaubeubh\)r}r(h4Uh5jh6X/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.SharedCounter.incrementrh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX8increment() (celery.datastructures.SharedCounter method)hUtrauhFNhGhh/]ubhj)r}r(h4Uh5jh6jh;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqXmethodrhsjuhFNhGhh/]r(hu)r}r(h4XSharedCounter.increment(n=1)h5jh6hyh;hzh=}r(hB]rhah}h7Xcelery.datastructuresrr}rbhA]h?]h@]hD]rhahXSharedCounter.incrementhjhuhFNhGhh/]r(h)r}r(h4X incrementh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPX incrementrr}r(h4Uh5jubaubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4Xn=1h=}r(h?]h@]hA]hB]hD]uh5jh/]rhPXn=1rr}r(h4Uh5jubah;hubaubeubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4XIncrement value.rh5jh6jh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPXIncrement value.rr}r(h4jh5jubaubaubeubeubeubh\)r}r(h4Uh5h2h6Nh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX,TokenBucket (class in celery.datastructures)hUtrauhFNhGhh/]ubhj)r}r(h4Uh5h2h6Nh;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqXclassrhsjuhFNhGhh/]r(hu)r}r(h4X"TokenBucket(fill_rate, capacity=1)h5jh6hyh;hzh=}r(hB]rhah}h7Xcelery.datastructuresrr}rbhA]h?]h@]hD]rhahX TokenBucketrhUhuhFNhGhh/]r(h)r}r(h4Xclass h5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXclass rr}r(h4Uh5jubaubh)r}r(h4Xcelery.datastructures.h5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXcelery.datastructures.rr}r(h4Uh5jubaubh)r}r(h4jh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPX TokenBucketrr}r(h4Uh5jubaubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]r(h)r}r(h4X fill_rateh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPX fill_raterr}r(h4Uh5jubah;hubh)r}r(h4X capacity=1h=}r(h?]h@]hA]hB]hD]uh5jh/]rhPX capacity=1rr}r(h4Uh5jubah;hubeubeubh)r}r(h4Uh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]r (h)r }r (h4XToken Bucket Algorithm.r h5jh6X|/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.TokenBucketr h;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPXToken Bucket Algorithm.rr}r(h4j h5j ubaubh)r}r(h4XSee http://en.wikipedia.org/wiki/Token_Bucket Most of this code was stolen from an entry in the ASPN Python Cookbook: http://code.activestate.com/recipes/511490/h5jh6j h;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]r(hPXSee rr}r(h4XSee h5jubcdocutils.nodes reference r)r}r(h4X)http://en.wikipedia.org/wiki/Token_Bucketrh=}r(UrefurijhB]hA]h?]h@]hD]uh5jh/]rhPX)http://en.wikipedia.org/wiki/Token_Bucketr r!}r"(h4Uh5jubah;U referencer#ubhPXI Most of this code was stolen from an entry in the ASPN Python Cookbook: r$r%}r&(h4XI Most of this code was stolen from an entry in the ASPN Python Cookbook: h5jubj)r'}r((h4X+http://code.activestate.com/recipes/511490/r)h=}r*(Urefurij)hB]hA]h?]h@]hD]uh5jh/]r+hPX+http://code.activestate.com/recipes/511490/r,r-}r.(h4Uh5j'ubah;j#ubeubh)r/}r0(h4Uh5jh6Nh;hh=}r1(h?]h@]hA]hB]hD]uhFNhGhh/]r2h)r3}r4(h4Uh=}r5(h?]h@]hA]hB]hD]uh5j/h/]r6(j)r7}r8(h4Uh=}r9(h?]h@]hA]hB]hD]uh5j3h/]r:hPX Parametersr;r<}r=(h4Uh5j7ubah;j ubj )r>}r?(h4Uh=}r@(h?]h@]hA]hB]hD]uh5j3h/]rAj)rB}rC(h4Uh=}rD(h?]h@]hA]hB]hD]uh5j>h/]rE(j )rF}rG(h4Uh=}rH(h?]h@]hA]hB]hD]uh5jBh/]rIh)rJ}rK(h4Uh=}rL(h?]h@]hA]hB]hD]uh5jFh/]rM(j)rN}rO(h4X fill_rateh=}rP(h?]h@]hA]hB]hD]uh5jJh/]rQhPX fill_raterRrS}rT(h4Uh5jNubah;jubhPX -- rUrV}rW(h4Uh5jJubhPXsee rXrY}rZ(h4Xsee h5jJubj")r[}r\(h4X:attr:`fill_rate`r]h5jJh6Nh;j&h=}r^(UreftypeXattrj(j)X fill_rateU refdomainXpyr_hB]hA]U refexplicith?]h@]hD]j+j,j-jj.j/uhFNh/]r`j1)ra}rb(h4j]h=}rc(h?]h@]rd(j6j_Xpy-attrreehA]hB]hD]uh5j[h/]rfhPX fill_ratergrh}ri(h4Uh5jaubah;j<ubaubhPX.rj}rk(h4X.h5jJubeh;hubah;j!ubj )rl}rm(h4Uh=}rn(h?]h@]hA]hB]hD]uh5jBh/]roh)rp}rq(h4Uh=}rr(h?]h@]hA]hB]hD]uh5jlh/]rs(j)rt}ru(h4Xcapacityh=}rv(h?]h@]hA]hB]hD]uh5jph/]rwhPXcapacityrxry}rz(h4Uh5jtubah;jubhPX -- r{r|}r}(h4Uh5jpubhPXsee r~r}r(h4Xsee h5jpubj")r}r(h4X:attr:`capacity`rh5jph6Nh;j&h=}r(UreftypeXattrj(j)XcapacityU refdomainXpyrhB]hA]U refexplicith?]h@]hD]j+j,j-jj.j/uhFNh/]rj1)r}r(h4jh=}r(h?]h@]r(j6jXpy-attrrehA]hB]hD]uh5jh/]rhPXcapacityrr}r(h4Uh5jubah;j<ubaubhPX.r}r(h4X.h5jpubeh;hubah;j!ubeh;j7ubah;j?ubeh;j@ubaubh\)r}r(h4Uh5jh6j h;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX7fill_rate (celery.datastructures.TokenBucket attribute)h UtrauhFNhGhh/]ubhj)r}r(h4Uh5jh6j h;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqX attributerhsjuhFNhGhh/]r(hu)r}r(h4X fill_raterh5jh6j h;hzh=}r(hB]rh ah}j/hA]h?]h@]hD]rh ahXTokenBucket.fill_ratehjhuhFK hGhh/]rh)r}r(h4jh5jh6j h;hh=}r(h?]h@]hA]hB]hD]uhFK hGhh/]rhPX fill_raterr}r(h4Uh5jubaubaubh)r}r(h4Uh5jh6j h;hh=}r(h?]h@]hA]hB]hD]uhFK hGhh/]rh)r}r(h4X;The rate in tokens/second that the bucket will be refilled.rh5jh6j h;hh=}r(h?]h@]hA]hB]hD]uhFK hGhh/]rhPX;The rate in tokens/second that the bucket will be refilled.rr}r(h4jh5jubaubaubeubh\)r}r(h4Uh5jh6j h;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX6capacity (celery.datastructures.TokenBucket attribute)h UtrauhFNhGhh/]ubhj)r}r(h4Uh5jh6j h;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqX attributerhsjuhFNhGhh/]r(hu)r}r(h4Xcapacityrh5jh6j h;hzh=}r(hB]rh ah}j/hA]h?]h@]hD]rh ahXTokenBucket.capacityhjhuhFKhGhh/]rh)r}r(h4jh5jh6j h;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPXcapacityrr}r(h4Uh5jubaubaubh)r}r(h4Uh5jh6j h;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rh)r}r(h4X9Maximum number of tokens in the bucket. Default is ``1``.h5jh6j h;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]r(hPX3Maximum number of tokens in the bucket. Default is rr}r(h4X3Maximum number of tokens in the bucket. Default is h5jubj1)r}r(h4X``1``h=}r(h?]h@]hA]hB]hD]uh5jh/]rhPX1r}r(h4Uh5jubah;j<ubhPX.r}r(h4X.h5jubeubaubeubh\)r}r(h4Uh5jh6j h;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX7timestamp (celery.datastructures.TokenBucket attribute)h UtrauhFNhGhh/]ubhj)r}r(h4Uh5jh6j h;hmh=}r(hohpXpyhB]hA]h?]h@]hD]hqX attributerhsjuhFNhGhh/]r(hu)r}r(h4X timestamprh5jh6hWh;hzh=}r(hB]rh ah}j/hA]h?]h@]hD]rh ahXTokenBucket.timestamphjhuhFKhGhh/]rh)r}r(h4jh5jh6hWh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPX timestamprr}r(h4Uh5jubaubaubh)r}r(h4Uh5jh6hWh;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rh)r}r(h4X?Timestamp of the last time a token was taken out of the bucket.rh5jh6j h;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPX?Timestamp of the last time a token was taken out of the bucket.rr}r(h4jh5jubaubaubeubh\)r}r(h4Uh5jh6Nh;h_h=}r(hB]hA]h?]h@]hD]Uentries]r(hbX8can_consume() (celery.datastructures.TokenBucket method)hUtr auhFNhGhh/]ubhj)r }r (h4Uh5jh6Nh;hmh=}r (hohpXpyhB]hA]h?]h@]hD]hqXmethodr hsj uhFNhGhh/]r(hu)r}r(h4X!TokenBucket.can_consume(tokens=1)h5j h6hyh;hzh=}r(hB]rhah}h7Xcelery.datastructuresrr}rbhA]h?]h@]hD]rhahXTokenBucket.can_consumehjhuhFNhGhh/]r(h)r}r(h4X can_consumeh5jh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPX can_consumerr}r(h4Uh5jubaubh)r}r (h4Uh5jh6hyh;hh=}r!(h?]h@]hA]hB]hD]uhFNhGhh/]r"h)r#}r$(h4Xtokens=1h=}r%(h?]h@]hA]hB]hD]uh5jh/]r&hPXtokens=1r'r(}r)(h4Uh5j#ubah;hubaubeubh)r*}r+(h4Uh5j h6hyh;hh=}r,(h?]h@]hA]hB]hD]uhFNhGhh/]ubeubh\)r-}r.(h4Uh5jh6X/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.TokenBucket.expected_timer/h;h_h=}r0(hB]hA]h?]h@]hD]Uentries]r1(hbX:expected_time() (celery.datastructures.TokenBucket method)h Utr2auhFNhGhh/]ubhj)r3}r4(h4Uh5jh6j/h;hmh=}r5(hohpXpyhB]hA]h?]h@]hD]hqXmethodr6hsj6uhFNhGhh/]r7(hu)r8}r9(h4X#TokenBucket.expected_time(tokens=1)h5j3h6hyh;hzh=}r:(hB]r;h ah}h7Xcelery.datastructuresr<r=}r>bhA]h?]h@]hD]r?h ahXTokenBucket.expected_timehjhuhFNhGhh/]r@(h)rA}rB(h4X expected_timeh5j8h6hyh;hh=}rC(h?]h@]hA]hB]hD]uhFNhGhh/]rDhPX expected_timerErF}rG(h4Uh5jAubaubh)rH}rI(h4Uh5j8h6hyh;hh=}rJ(h?]h@]hA]hB]hD]uhFNhGhh/]rKh)rL}rM(h4Xtokens=1h=}rN(h?]h@]hA]hB]hD]uh5jHh/]rOhPXtokens=1rPrQ}rR(h4Uh5jLubah;hubaubeubh)rS}rT(h4Uh5j3h6hyh;hh=}rU(h?]h@]hA]hB]hD]uhFNhGhh/]rVh)rW}rX(h4XsReturns the expected time in seconds when a new token should be available. *Note: consumes a token from the bucket*h5jSh6j/h;hh=}rY(h?]h@]hA]hB]hD]uhFKhGhh/]rZ(hPXKReturns the expected time in seconds when a new token should be available. r[r\}r](h4XKReturns the expected time in seconds when a new token should be available. h5jWubcdocutils.nodes emphasis r^)r_}r`(h4X(*Note: consumes a token from the bucket*h=}ra(h?]h@]hA]hB]hD]uh5jWh/]rbhPX&Note: consumes a token from the bucketrcrd}re(h4Uh5j_ubah;Uemphasisrfubeubaubeubeubeubh\)rg}rh(h4Uh5h2h6X~/var/build/user_builds/celery/checkouts/2.1-archived/celery/datastructures.py:docstring of celery.datastructures.consume_queuerih;h_h=}rj(hB]hA]h?]h@]hD]Uentries]rk(hbX1consume_queue() (in module celery.datastructures)hUtrlauhFNhGhh/]ubhj)rm}rn(h4Uh5h2h6jih;hmh=}ro(hohpXpyhB]hA]h?]h@]hD]hqXfunctionrphsjpuhFNhGhh/]rq(hu)rr}rs(h4Xconsume_queue(queue)rth5jmh6hyh;hzh=}ru(hB]rvhah}h7Xcelery.datastructuresrwrx}rybhA]h?]h@]hD]rzhahX consume_queuer{hUhuhFNhGhh/]r|(h)r}}r~(h4Xcelery.datastructures.h5jrh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPXcelery.datastructures.rr}r(h4Uh5j}ubaubh)r}r(h4j{h5jrh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rhPX consume_queuerr}r(h4Uh5jubaubh)r}r(h4Uh5jrh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]rh)r}r(h4Xqueueh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPXqueuerr}r(h4Uh5jubah;hubaubeubh)r}r(h4Uh5jmh6hyh;hh=}r(h?]h@]hA]hB]hD]uhFNhGhh/]r(h)r}r(h4XLIterator yielding all immediately available items in a :class:`Queue.Queue`.h5jh6jih;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]r(hPX7Iterator yielding all immediately available items in a rr}r(h4X7Iterator yielding all immediately available items in a h5jubj")r}r(h4X:class:`Queue.Queue`rh5jh6Nh;j&h=}r(UreftypeXclassj(j)X Queue.QueueU refdomainXpyrhB]hA]U refexplicith?]h@]hD]j+j,j-Nj.j/uhFNh/]rj1)r}r(h4jh=}r(h?]h@]r(j6jXpy-classrehA]hB]hD]uh5jh/]rhPX Queue.Queuerr}r(h4Uh5jubah;j<ubaubhPX.r}r(h4X.h5jubeubh)r}r(h4XBThe iterator stops as soon as the queue raises :exc:`Queue.Empty`.rh5jh6jih;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]r(hPX/The iterator stops as soon as the queue raises rr}r(h4X/The iterator stops as soon as the queue raises h5jubj")r}r(h4X:exc:`Queue.Empty`rh5jh6Nh;j&h=}r(UreftypeXexcj(j)X Queue.EmptyU refdomainXpyrhB]hA]U refexplicith?]h@]hD]j+j,j-Nj.j/uhFNh/]rj1)r}r(h4jh=}r(h?]h@]r(j6jXpy-excrehA]hB]hD]uh5jh/]rhPX Queue.Emptyrr}r(h4Uh5jubah;j<ubaubhPX.r}r(h4X.h5jubeubh)r}r(h4XExamplerh5jh6jih;hh=}r(h?]h@]hA]hB]hD]uhFKhGhh/]rhPXExamplerr}r(h4jh5jubaubj=)r}r(h4Xn>>> q = Queue() >>> map(q.put, range(4)) >>> list(consume_queue(q)) [0, 1, 2, 3] >>> list(consume_queue(q)) []h5jh6Nh;jGh=}r(jAjBhB]hA]h?]h@]hD]uhFNhGhh/]rhPXn>>> q = Queue() >>> map(q.put, range(4)) >>> list(consume_queue(q)) [0, 1, 2, 3] >>> list(consume_queue(q)) []rr}r(h4Uh5jubaubeubeubeubah4UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhGhU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h4Uh=}r(h?]UlevelKhB]hA]UsourcehWh@]hD]UlineKUtypeUINFOruh/]rh)r}r(h4Uh=}r(h?]h@]hA]hB]hD]uh5jh/]rhPXBHyperlink target "module-celery.datastructures" is not referenced.rr}r(h4Uh5jubah;hubah;Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder UenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhMNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelr KUconfigr!NUstrict_visitorr"NUcloak_email_addressesr#Utrim_footnote_reference_spacer$Uenvr%NUdump_pseudo_xmlr&NUexpose_internalsr'NUsectsubtitle_xformr(U source_linkr)NUrfc_referencesr*NUoutput_encodingr+Uutf-8r,U source_urlr-NUinput_encodingr.U utf-8-sigr/U_disable_configr0NU id_prefixr1UU tab_widthr2KUerror_encodingr3UUTF-8r4U_sourcer5Ug/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.datastructures.rstr6Ugettext_compactr7U generatorr8NUdump_internalsr9NU smart_quotesr:U pep_base_urlr;Uhttp://www.python.org/dev/peps/r<Usyntax_highlightr=Ulongr>Uinput_encoding_error_handlerr?jUauto_id_prefixr@UidrAUdoctitle_xformrBUstrip_elements_with_classesrCNU _config_filesrD]Ufile_insertion_enabledrEU raw_enabledrFKU dump_settingsrGNubUsymbol_footnote_startrHKUidsrI}rJ(hjhjhjh jh j8h jh jh jhjh-h2h.cdocutils.nodes topic rK)rL}rM(h4Uh5h2h6h9h;UtopicrNh=}rO(h?]h@]rP(UcontentsrQUlocalrRehA]hB]rSh.ahD]rThauhFKhGhh/]rUcdocutils.nodes pending rV)rW}rX(h4X.. contents:: :local:h5jLU transformrYcdocutils.transforms.parts Contents rZUdetailsr[}r\UlocalNsh;Upendingr]h=}r^(h?]h@]hA]hB]hD]uh/]ubaubhjhj4hj+hhvhjhjhjrhjohjrhjthhhjhjKhjPhj]h jh!jh"jCh[hUh#juUsubstitution_namesr_}r`h;hGh=}ra(h?]hB]hA]Usourceh9h@]hD]uU footnotesrb]rcUrefidsrd}reub.PKYDD*V[celery-2.1-archived/.doctrees/internals/reference/celery.concurrency.processes.pool.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X+celery.concurrency.processes.pool.Pool.imapqX6celery.concurrency.processes.pool.Pool.Process.authkeyqX<celery.concurrency.processes.pool.Pool.SoftTimeLimitExceededqX*celery.concurrency.processes.pool.Pool.mapq X2celery.concurrency.processes.pool.Pool.TaskHandlerq X7celery.concurrency.processes.pool.Pool.Process.exitcodeq Ucontentsq NX4celery.concurrency.processes.pool.Pool.Process.startq X7celery.concurrency.processes.pool.Pool.TaskHandler.bodyqX.celery.concurrency.processes.pool.Pool.ProcessqX5celery.concurrency.processes.pool.Pool.Process.daemonqX4celery.concurrency.processes.pool.Pool.Process.identqX+celery.concurrency.processes.pool.Pool.joinqX5celery.concurrency.processes.pool.Pool.TimeoutHandlerqX4celery.concurrency.processes.pool.Pool.ResultHandlerqX3celery.concurrency.processes.pool.Pool.Process.joinqX7celery.concurrency.processes.pool.Pool.Process.is_aliveqX,celery.concurrency.processes.pool.Pool.closeqX9celery.concurrency.processes.pool.Pool.ResultHandler.bodyqX2celery.concurrency.processes.pool.Pool.Process.runqXAextended multiprocessing.pool - celery.concurrency.processes.poolqNX5celery.concurrency.processes.pool.Pool.imap_unorderedqX2celery.concurrency.processes.pool.Pool.apply_asyncqX8celery.concurrency.processes.pool.Pool.Process.terminateqX1celery.concurrency.processes.pool.Pool.SupervisorqX&celery.concurrency.processes.pool.PoolqX2celery.concurrency.processes.pool.Pool.Process.pidq X0celery.concurrency.processes.pool.Pool.map_asyncq!X3celery.concurrency.processes.pool.Pool.Process.nameq"X:celery.concurrency.processes.pool.Pool.TimeoutHandler.bodyq#X6celery.concurrency.processes.pool.Pool.Supervisor.bodyq$X,celery.concurrency.processes.pool.Pool.applyq%X0celery.concurrency.processes.pool.Pool.terminateq&uUsubstitution_defsq'}q(Uparse_messagesq)]q*Ucurrent_sourceq+NU decorationq,NUautofootnote_startq-KUnameidsq.}q/(hhhhhhh h h h h h h Ucontentsq0h h hhhhhhhhhhhhhhhhhhhhhhhhhU?extended-multiprocessing-pool-celery-concurrency-processes-poolq1hhhhhhhhhhh h h!h!h"h"h#h#h$h$h%h%h&h&uUchildrenq2]q3cdocutils.nodes section q4)q5}q6(U rawsourceq7UUparentq8hUsourceq9cdocutils.nodes reprunicode q:Xs/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.concurrency.processes.pool.rstq;q<}q=bUtagnameq>Usectionq?U attributesq@}qA(UdupnamesqB]UclassesqC]UbackrefsqD]UidsqE]qFh1aUnamesqG]qHhauUlineqIKUdocumentqJhh2]qK(cdocutils.nodes title qL)qM}qN(h7XAextended multiprocessing.pool - celery.concurrency.processes.poolqOh8h5h9hUtitleqPh@}qQ(hB]hC]hD]hE]hG]uhIKhJhh2]qRcdocutils.nodes Text qSXAextended multiprocessing.pool - celery.concurrency.processes.poolqTqU}qV(h7hOh8hMubaubcdocutils.nodes target qW)qX}qY(h7Uh8h5h9U qZh>Utargetq[h@}q\(hB]hE]q]X(module-celery.concurrency.processes.poolq^ahD]UismodhC]hG]uhIKhJhh2]ubcsphinx.addnodes index q_)q`}qa(h7Uh8h5h9hZh>Uindexqbh@}qc(hE]hD]hB]hC]hG]Uentries]qd(UsingleqeX*celery.concurrency.processes.pool (module)X(module-celery.concurrency.processes.poolUtqfauhIKhJhh2]ubh_)qg}qh(h7Uh8h5h9Nh>hbh@}qi(hE]hD]hB]hC]hG]Uentries]qj(heX1Pool (class in celery.concurrency.processes.pool)hUtqkauhINhJhh2]ubcsphinx.addnodes desc ql)qm}qn(h7Uh8h5h9Nh>Udescqoh@}qp(UnoindexqqUdomainqrXpyhE]hD]hB]hC]hG]UobjtypeqsXclassqtUdesctypequhtuhINhJhh2]qv(csphinx.addnodes desc_signature qw)qx}qy(h7XkPool(processes=None, initializer=None, initargs=(), maxtasksperchild=None, timeout=None, soft_timeout=None)h8hmh9U qzh>Udesc_signatureq{h@}q|(hE]q}haUmoduleq~h:X!celery.concurrency.processes.poolqq}qbhD]hB]hC]hG]qhaUfullnameqXPoolqUclassqUUfirstquhINhJhh2]q(csphinx.addnodes desc_annotation q)q}q(h7Xclass h8hxh9hzh>Udesc_annotationqh@}q(hB]hC]hD]hE]hG]uhINhJhh2]qhSXclass qq}q(h7Uh8hubaubcsphinx.addnodes desc_addname q)q}q(h7X"celery.concurrency.processes.pool.h8hxh9hzh>U desc_addnameqh@}q(hB]hC]hD]hE]hG]uhINhJhh2]qhSX"celery.concurrency.processes.pool.qq}q(h7Uh8hubaubcsphinx.addnodes desc_name q)q}q(h7hh8hxh9hzh>U desc_nameqh@}q(hB]hC]hD]hE]hG]uhINhJhh2]qhSXPoolqq}q(h7Uh8hubaubcsphinx.addnodes desc_parameterlist q)q}q(h7Uh8hxh9hzh>Udesc_parameterlistqh@}q(hB]hC]hD]hE]hG]uhINhJhh2]q(csphinx.addnodes desc_parameter q)q}q(h7Xprocesses=Noneh@}q(hB]hC]hD]hE]hG]uh8hh2]qhSXprocesses=Noneqq}q(h7Uh8hubah>Udesc_parameterqubh)q}q(h7Xinitializer=Noneh@}q(hB]hC]hD]hE]hG]uh8hh2]qhSXinitializer=Noneqq}q(h7Uh8hubah>hubh)q}q(h7X initargs=()h@}q(hB]hC]hD]hE]hG]uh8hh2]qhSX initargs=()qq}q(h7Uh8hubah>hubh)q}q(h7Xmaxtasksperchild=Noneh@}q(hB]hC]hD]hE]hG]uh8hh2]qhSXmaxtasksperchild=Noneqąq}q(h7Uh8hubah>hubh)q}q(h7X timeout=Noneh@}q(hB]hC]hD]hE]hG]uh8hh2]qhSX timeout=Noneq˅q}q(h7Uh8hubah>hubh)q}q(h7Xsoft_timeout=Noneh@}q(hB]hC]hD]hE]hG]uh8hh2]qhSXsoft_timeout=Noneq҅q}q(h7Uh8hubah>hubeubeubcsphinx.addnodes desc_content q)q}q(h7Uh8hmh9hzh>U desc_contentqh@}q(hB]hC]hD]hE]hG]uhINhJhh2]q(cdocutils.nodes paragraph q)q}q(h7X>Class which supports an async version of the `apply()` builtinqh8hh9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Poolqh>U paragraphqh@}q(hB]hC]hD]hE]hG]uhIKhJhh2]q(hSX-Class which supports an async version of the qㅁq}q(h7X-Class which supports an async version of the h8hubcdocutils.nodes title_reference q)q}q(h7X `apply()`h@}q(hB]hC]hD]hE]hG]uh8hh2]qhSXapply()q녁q}q(h7Uh8hubah>Utitle_referencequbhSX builtinqq}q(h7X builtinh8hubeubh_)q}q(h7Uh8hh9Nh>hbh@}q(hE]hD]hB]hC]hG]Uentries]q(heX9Pool.Process (class in celery.concurrency.processes.pool)hUtqauhINhJhh2]ubhl)q}q(h7Uh8hh9Nh>hoh@}q(hqhrXpyhE]hD]hB]hC]hG]hsXclassqhuhuhINhJhh2]q(hw)q}q(h7XDPool.Process(group=None, target=None, name=None, args=(), kwargs={})h8hh9hzh>h{h@}q(hE]qhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rhahX Pool.ProcessrhhhuhINhJhh2]r(h)r}r(h7Xclass h8hh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]r hSXclass r r }r (h7Uh8jubaubh)r }r(h7XProcessh8hh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXProcessrr}r(h7Uh8j ubaubh)r}r(h7Uh8hh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]r(h)r}r(h7X group=Noneh@}r(hB]hC]hD]hE]hG]uh8jh2]rhSX group=Nonerr}r(h7Uh8jubah>hubh)r}r (h7X target=Noneh@}r!(hB]hC]hD]hE]hG]uh8jh2]r"hSX target=Noner#r$}r%(h7Uh8jubah>hubh)r&}r'(h7X name=Noneh@}r((hB]hC]hD]hE]hG]uh8jh2]r)hSX name=Noner*r+}r,(h7Uh8j&ubah>hubh)r-}r.(h7Xargs=()h@}r/(hB]hC]hD]hE]hG]uh8jh2]r0hSXargs=()r1r2}r3(h7Uh8j-ubah>hubh)r4}r5(h7X kwargs={}h@}r6(hB]hC]hD]hE]hG]uh8jh2]r7hSX kwargs={}r8r9}r:(h7Uh8j4ubah>hubeubeubh)r;}r<(h7Uh8hh9hzh>hh@}r=(hB]hC]hD]hE]hG]uhINhJhh2]r>(h)r?}r@(h7XDProcess objects represent activity that is run in a separate processrAh8j;h9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.ProcessrBh>hh@}rC(hB]hC]hD]hE]hG]uhIKhJhh2]rDhSXDProcess objects represent activity that is run in a separate processrErF}rG(h7jAh8j?ubaubh)rH}rI(h7X,The class is analagous to `threading.Thread`h8j;h9jBh>hh@}rJ(hB]hC]hD]hE]hG]uhIKhJhh2]rK(hSXThe class is analagous to rLrM}rN(h7XThe class is analagous to h8jHubh)rO}rP(h7X`threading.Thread`h@}rQ(hB]hC]hD]hE]hG]uh8jHh2]rRhSXthreading.ThreadrSrT}rU(h7Uh8jOubah>hubeubh_)rV}rW(h7Uh8j;h9Nh>hbh@}rX(hE]hD]hB]hC]hG]Uentries]rY(heXBauthkey (celery.concurrency.processes.pool.Pool.Process attribute)hUtrZauhINhJhh2]ubhl)r[}r\(h7Uh8j;h9Nh>hoh@}r](hqhrXpyhE]hD]hB]hC]hG]hsX attributer^huj^uhINhJhh2]r_(hw)r`}ra(h7XPool.Process.authkeyh8j[h9hzh>h{h@}rb(hE]rchah~h:X!celery.concurrency.processes.poolrdre}rfbhD]hB]hC]hG]rghahXPool.Process.authkeyhjhuhINhJhh2]rhh)ri}rj(h7Xauthkeyh8j`h9hzh>hh@}rk(hB]hC]hD]hE]hG]uhINhJhh2]rlhSXauthkeyrmrn}ro(h7Uh8jiubaubaubh)rp}rq(h7Uh8j[h9hzh>hh@}rr(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh_)rs}rt(h7Uh8j;h9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.Process.daemonruh>hbh@}rv(hE]hD]hB]hC]hG]Uentries]rw(heXAdaemon (celery.concurrency.processes.pool.Pool.Process attribute)hUtrxauhINhJhh2]ubhl)ry}rz(h7Uh8j;h9juh>hoh@}r{(hqhrXpyhE]hD]hB]hC]hG]hsX attributer|huj|uhINhJhh2]r}(hw)r~}r(h7XPool.Process.daemonh8jyh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rhahXPool.Process.daemonhjhuhINhJhh2]rh)r}r(h7Xdaemonh8j~h9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXdaemonrr}r(h7Uh8jubaubaubh)r}r(h7Uh8jyh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7X"Return whether process is a daemonrh8jh9juh>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]rhSX"Return whether process is a daemonrr}r(h7jh8jubaubaubeubh_)r}r(h7Uh8j;h9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.Process.exitcoderh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heXCexitcode (celery.concurrency.processes.pool.Pool.Process attribute)h UtrauhINhJhh2]ubhl)r}r(h7Uh8j;h9jh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsX attributerhujuhINhJhh2]r(hw)r}r(h7XPool.Process.exitcodeh8jh9hzh>h{h@}r(hE]rh ah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rh ahXPool.Process.exitcodehjhuhINhJhh2]rh)r}r(h7Xexitcodeh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXexitcoderr}r(h7Uh8jubaubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7X;Return exit code of process or `None` if it has yet to stoph8jh9jh>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]r(hSXReturn exit code of process or rr}r(h7XReturn exit code of process or h8jubh)r}r(h7X`None`h@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXNonerr}r(h7Uh8jubah>hubhSX if it has yet to stoprr}r(h7X if it has yet to stoph8jubeubaubeubh_)r}r(h7Uh8j;h9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.Process.identrh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heX@ident (celery.concurrency.processes.pool.Pool.Process attribute)hUtrauhINhJhh2]ubhl)r}r(h7Uh8j;h9jh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsX attributerhujuhINhJhh2]r(hw)r}r(h7XPool.Process.identh8jh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rhahXPool.Process.identhjhuhINhJhh2]rh)r}r(h7Xidenth8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXidentrr}r(h7Uh8jubaubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7XCReturn identifier (PID) of process or `None` if it has yet to starth8jh9jh>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]r(hSX&Return identifier (PID) of process or rr}r(h7X&Return identifier (PID) of process or h8jubh)r}r(h7X`None`h@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXNonerr}r(h7Uh8jubah>hubhSX if it has yet to startrr}r(h7X if it has yet to starth8jubeubaubeubh_)r}r(h7Uh8j;h9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.Process.is_aliverh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heXBis_alive() (celery.concurrency.processes.pool.Pool.Process method)hUtrauhINhJhh2]ubhl)r}r(h7Uh8j;h9jh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7XPool.Process.is_alive()h8jh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolr r }r bhD]hB]hC]hG]r hahXPool.Process.is_alivehjhuhINhJhh2]r (h)r}r(h7Xis_aliveh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXis_aliverr}r(h7Uh8jubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7XReturn whether process is aliverh8jh9jh>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]r hSXReturn whether process is aliver!r"}r#(h7jh8jubaubaubeubh_)r$}r%(h7Uh8j;h9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.Process.joinr&h>hbh@}r'(hE]hD]hB]hC]hG]Uentries]r((heX>join() (celery.concurrency.processes.pool.Pool.Process method)hUtr)auhINhJhh2]ubhl)r*}r+(h7Uh8j;h9j&h>hoh@}r,(hqhrXpyhE]hD]hB]hC]hG]hsXmethodr-huj-uhINhJhh2]r.(hw)r/}r0(h7XPool.Process.join(timeout=None)h8j*h9hzh>h{h@}r1(hE]r2hah~h:X!celery.concurrency.processes.poolr3r4}r5bhD]hB]hC]hG]r6hahXPool.Process.joinhjhuhINhJhh2]r7(h)r8}r9(h7Xjoinh8j/h9hzh>hh@}r:(hB]hC]hD]hE]hG]uhINhJhh2]r;hSXjoinr<r=}r>(h7Uh8j8ubaubh)r?}r@(h7Uh8j/h9hzh>hh@}rA(hB]hC]hD]hE]hG]uhINhJhh2]rBh)rC}rD(h7X timeout=Noneh@}rE(hB]hC]hD]hE]hG]uh8j?h2]rFhSX timeout=NonerGrH}rI(h7Uh8jCubah>hubaubeubh)rJ}rK(h7Uh8j*h9hzh>hh@}rL(hB]hC]hD]hE]hG]uhINhJhh2]rMh)rN}rO(h7X#Wait until child process terminatesrPh8jJh9j&h>hh@}rQ(hB]hC]hD]hE]hG]uhIKhJhh2]rRhSX#Wait until child process terminatesrSrT}rU(h7jPh8jNubaubaubeubh_)rV}rW(h7Uh8j;h9Nh>hbh@}rX(hE]hD]hB]hC]hG]Uentries]rY(heX?name (celery.concurrency.processes.pool.Pool.Process attribute)h"UtrZauhINhJhh2]ubhl)r[}r\(h7Uh8j;h9Nh>hoh@}r](hqhrXpyhE]hD]hB]hC]hG]hsX attributer^huj^uhINhJhh2]r_(hw)r`}ra(h7XPool.Process.nameh8j[h9hzh>h{h@}rb(hE]rch"ah~h:X!celery.concurrency.processes.poolrdre}rfbhD]hB]hC]hG]rgh"ahXPool.Process.namehjhuhINhJhh2]rhh)ri}rj(h7Xnameh8j`h9hzh>hh@}rk(hB]hC]hD]hE]hG]uhINhJhh2]rlhSXnamermrn}ro(h7Uh8jiubaubaubh)rp}rq(h7Uh8j[h9hzh>hh@}rr(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh_)rs}rt(h7Uh8j;h9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.Process.pidruh>hbh@}rv(hE]hD]hB]hC]hG]Uentries]rw(heX>pid (celery.concurrency.processes.pool.Pool.Process attribute)h UtrxauhINhJhh2]ubhl)ry}rz(h7Uh8j;h9juh>hoh@}r{(hqhrXpyhE]hD]hB]hC]hG]hsX attributer|huj|uhINhJhh2]r}(hw)r~}r(h7XPool.Process.pidh8jyh9hzh>h{h@}r(hE]rh ah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rh ahXPool.Process.pidhjhuhINhJhh2]rh)r}r(h7Xpidh8j~h9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXpidrr}r(h7Uh8jubaubaubh)r}r(h7Uh8jyh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7XCReturn identifier (PID) of process or `None` if it has yet to starth8jh9juh>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]r(hSX&Return identifier (PID) of process or rr}r(h7X&Return identifier (PID) of process or h8jubh)r}r(h7X`None`h@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXNonerr}r(h7Uh8jubah>hubhSX if it has yet to startrr}r(h7X if it has yet to starth8jubeubaubeubh_)r}r(h7Uh8j;h9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.Process.runrh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heX=run() (celery.concurrency.processes.pool.Pool.Process method)hUtrauhINhJhh2]ubhl)r}r(h7Uh8j;h9jh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7XPool.Process.run()h8jh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rhahXPool.Process.runhjhuhINhJhh2]r(h)r}r(h7Xrunh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXrunrr}r(h7Uh8jubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7X?Method to be run in sub-process; can be overridden in sub-classrh8jh9jh>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]rhSX?Method to be run in sub-process; can be overridden in sub-classrr}r(h7jh8jubaubaubeubh_)r}r(h7Uh8j;h9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.Process.startrh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heX?start() (celery.concurrency.processes.pool.Pool.Process method)h UtrauhINhJhh2]ubhl)r}r(h7Uh8j;h9jh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7XPool.Process.start()h8jh9hzh>h{h@}r(hE]rh ah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rh ahXPool.Process.starthjhuhINhJhh2]r(h)r}r(h7Xstarth8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXstartrr}r(h7Uh8jubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7XStart child processrh8jh9jh>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]rhSXStart child processrr}r(h7jh8jubaubaubeubh_)r}r(h7Uh8j;h9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.Process.terminaterh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heXCterminate() (celery.concurrency.processes.pool.Pool.Process method)hUtrauhINhJhh2]ubhl)r}r(h7Uh8j;h9jh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7XPool.Process.terminate()h8jh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]r hahXPool.Process.terminatehjhuhINhJhh2]r (h)r }r (h7X terminateh8jh9hzh>hh@}r (hB]hC]hD]hE]hG]uhINhJhh2]rhSX terminaterr}r(h7Uh8j ubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7XBTerminate process; sends SIGTERM signal or uses TerminateProcess()rh8jh9jh>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]rhSXBTerminate process; sends SIGTERM signal or uses TerminateProcess()rr}r (h7jh8jubaubaubeubeubeubh_)r!}r"(h7Uh8hh9Nh>hbh@}r#(hE]hD]hB]hC]hG]Uentries]r$(heX?Pool.ResultHandler (class in celery.concurrency.processes.pool)hUtr%auhINhJhh2]ubhl)r&}r'(h7Uh8hh9Nh>hoh@}r((hqhrXpyhE]hD]hB]hC]hG]hsXclassr)huj)uhINhJhh2]r*(hw)r+}r,(h7XLPool.ResultHandler(outqueue, get, cache, poll, join_exited_workers, putlock)h8j&h9hzh>h{h@}r-(hE]r.hah~h:X!celery.concurrency.processes.poolr/r0}r1bhD]hB]hC]hG]r2hahXPool.ResultHandlerr3hXPoolhuhINhJhh2]r4(h)r5}r6(h7Xclass h8j+h9hzh>hh@}r7(hB]hC]hD]hE]hG]uhINhJhh2]r8hSXclass r9r:}r;(h7Uh8j5ubaubh)r<}r=(h7XPool.h8j+h9hzh>hh@}r>(hB]hC]hD]hE]hG]uhINhJhh2]r?hSXPool.r@rA}rB(h7Uh8j<ubaubh)rC}rD(h7X ResultHandlerh8j+h9hzh>hh@}rE(hB]hC]hD]hE]hG]uhINhJhh2]rFhSX ResultHandlerrGrH}rI(h7Uh8jCubaubh)rJ}rK(h7Uh8j+h9hzh>hh@}rL(hB]hC]hD]hE]hG]uhINhJhh2]rM(h)rN}rO(h7Xoutqueueh@}rP(hB]hC]hD]hE]hG]uh8jJh2]rQhSXoutqueuerRrS}rT(h7Uh8jNubah>hubh)rU}rV(h7Xgeth@}rW(hB]hC]hD]hE]hG]uh8jJh2]rXhSXgetrYrZ}r[(h7Uh8jUubah>hubh)r\}r](h7Xcacheh@}r^(hB]hC]hD]hE]hG]uh8jJh2]r_hSXcacher`ra}rb(h7Uh8j\ubah>hubh)rc}rd(h7Xpollh@}re(hB]hC]hD]hE]hG]uh8jJh2]rfhSXpollrgrh}ri(h7Uh8jcubah>hubh)rj}rk(h7Xjoin_exited_workersh@}rl(hB]hC]hD]hE]hG]uh8jJh2]rmhSXjoin_exited_workersrnro}rp(h7Uh8jjubah>hubh)rq}rr(h7Xputlockh@}rs(hB]hC]hD]hE]hG]uh8jJh2]rthSXputlockrurv}rw(h7Uh8jqubah>hubeubeubh)rx}ry(h7Uh8j&h9hzh>hh@}rz(hB]hC]hD]hE]hG]uhINhJhh2]r{(h_)r|}r}(h7Uh8jxh9Nh>hbh@}r~(hE]hD]hB]hC]hG]Uentries]r(heXDbody() (celery.concurrency.processes.pool.Pool.ResultHandler method)hUtrauhINhJhh2]ubhl)r}r(h7Uh8jxh9Nh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7XPool.ResultHandler.body()h8jh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rhahXPool.ResultHandler.bodyhj3huhINhJhh2]r(h)r}r(h7Xbodyh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXbodyrr}r(h7Uh8jubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubeubeubh_)r}r(h7Uh8hh9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.SoftTimeLimitExceededrh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heXPool.SoftTimeLimitExceededrhUtrauhINhJhh2]ubhl)r}r(h7Uh8hh9jh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsX exceptionrhujuhINhJhh2]r(hw)r}r(h7XPool.SoftTimeLimitExceededh8jh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rhahjhXPoolhuhINhJhh2]r(h)r}r(h7X exception h8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSX exception rr}r(h7Uh8jubaubh)r}r(h7XPool.h8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXPool.rr}r(h7Uh8jubaubh)r}r(h7XSoftTimeLimitExceededh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXSoftTimeLimitExceededrr}r(h7Uh8jubaubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7XfThe soft time limit has been exceeded. This exception is raised to give the task a chance to clean up.rh8jh9jh>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]rhSXfThe soft time limit has been exceeded. This exception is raised to give the task a chance to clean up.rr}r(h7jh8jubaubaubeubh_)r}r(h7Uh8hh9Nh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heX<Pool.Supervisor (class in celery.concurrency.processes.pool)hUtrauhINhJhh2]ubhl)r}r(h7Uh8hh9Nh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXclassrhujuhINhJhh2]r(hw)r}r(h7XPool.Supervisor(pool)h8jh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rhahXPool.SupervisorrhXPoolhuhINhJhh2]r(h)r}r(h7Xclass h8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXclass rr}r(h7Uh8jubaubh)r}r(h7XPool.h8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXPool.rr}r(h7Uh8jubaubh)r}r(h7X Supervisorh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSX Supervisorrr}r(h7Uh8jubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7Xpoolh@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXpoolrr}r(h7Uh8jubah>hubaubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]r (h_)r }r (h7Uh8jh9Nh>hbh@}r (hE]hD]hB]hC]hG]Uentries]r (heXAbody() (celery.concurrency.processes.pool.Pool.Supervisor method)h$UtrauhINhJhh2]ubhl)r}r(h7Uh8jh9Nh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7XPool.Supervisor.body()h8jh9hzh>h{h@}r(hE]rh$ah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rh$ahXPool.Supervisor.bodyhjhuhINhJhh2]r(h)r}r(h7Xbodyh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]r hSXbodyr!r"}r#(h7Uh8jubaubh)r$}r%(h7Uh8jh9hzh>hh@}r&(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh)r'}r((h7Uh8jh9hzh>hh@}r)(hB]hC]hD]hE]hG]uhINhJhh2]ubeubeubeubh_)r*}r+(h7Uh8hh9Nh>hbh@}r,(hE]hD]hB]hC]hG]Uentries]r-(heX=Pool.TaskHandler (class in celery.concurrency.processes.pool)h Utr.auhINhJhh2]ubhl)r/}r0(h7Uh8hh9Nh>hoh@}r1(hqhrXpyhE]hD]hB]hC]hG]hsXclassr2huj2uhINhJhh2]r3(hw)r4}r5(h7X0Pool.TaskHandler(taskqueue, put, outqueue, pool)h8j/h9hzh>h{h@}r6(hE]r7h ah~h:X!celery.concurrency.processes.poolr8r9}r:bhD]hB]hC]hG]r;h ahXPool.TaskHandlerr<hXPoolhuhINhJhh2]r=(h)r>}r?(h7Xclass h8j4h9hzh>hh@}r@(hB]hC]hD]hE]hG]uhINhJhh2]rAhSXclass rBrC}rD(h7Uh8j>ubaubh)rE}rF(h7XPool.h8j4h9hzh>hh@}rG(hB]hC]hD]hE]hG]uhINhJhh2]rHhSXPool.rIrJ}rK(h7Uh8jEubaubh)rL}rM(h7X TaskHandlerh8j4h9hzh>hh@}rN(hB]hC]hD]hE]hG]uhINhJhh2]rOhSX TaskHandlerrPrQ}rR(h7Uh8jLubaubh)rS}rT(h7Uh8j4h9hzh>hh@}rU(hB]hC]hD]hE]hG]uhINhJhh2]rV(h)rW}rX(h7X taskqueueh@}rY(hB]hC]hD]hE]hG]uh8jSh2]rZhSX taskqueuer[r\}r](h7Uh8jWubah>hubh)r^}r_(h7Xputh@}r`(hB]hC]hD]hE]hG]uh8jSh2]rahSXputrbrc}rd(h7Uh8j^ubah>hubh)re}rf(h7Xoutqueueh@}rg(hB]hC]hD]hE]hG]uh8jSh2]rhhSXoutqueuerirj}rk(h7Uh8jeubah>hubh)rl}rm(h7Xpoolh@}rn(hB]hC]hD]hE]hG]uh8jSh2]rohSXpoolrprq}rr(h7Uh8jlubah>hubeubeubh)rs}rt(h7Uh8j/h9hzh>hh@}ru(hB]hC]hD]hE]hG]uhINhJhh2]rv(h_)rw}rx(h7Uh8jsh9Nh>hbh@}ry(hE]hD]hB]hC]hG]Uentries]rz(heXBbody() (celery.concurrency.processes.pool.Pool.TaskHandler method)hUtr{auhINhJhh2]ubhl)r|}r}(h7Uh8jsh9Nh>hoh@}r~(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7XPool.TaskHandler.body()h8j|h9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rhahXPool.TaskHandler.bodyhj<huhINhJhh2]r(h)r}r(h7Xbodyh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXbodyrr}r(h7Uh8jubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh)r}r(h7Uh8j|h9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubeubeubh_)r}r(h7Uh8hh9Nh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heX@Pool.TimeoutHandler (class in celery.concurrency.processes.pool)hUtrauhINhJhh2]ubhl)r}r(h7Uh8hh9Nh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXclassrhujuhINhJhh2]r(hw)r}r(h7X>Pool.TimeoutHandler(processes, cache, t_soft, t_hard, putlock)h8jh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rhahXPool.TimeoutHandlerrhXPoolhuhINhJhh2]r(h)r}r(h7Xclass h8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXclass rr}r(h7Uh8jubaubh)r}r(h7XPool.h8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXPool.rr}r(h7Uh8jubaubh)r}r(h7XTimeoutHandlerh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXTimeoutHandlerrr}r(h7Uh8jubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]r(h)r}r(h7X processesh@}r(hB]hC]hD]hE]hG]uh8jh2]rhSX processesrr}r(h7Uh8jubah>hubh)r}r(h7Xcacheh@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXcacherr}r(h7Uh8jubah>hubh)r}r(h7Xt_softh@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXt_softrr}r(h7Uh8jubah>hubh)r}r(h7Xt_hardh@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXt_hardrr}r(h7Uh8jubah>hubh)r}r(h7Xputlockh@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXputlockrr}r(h7Uh8jubah>hubeubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]r(h_)r}r(h7Uh8jh9Nh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heXEbody() (celery.concurrency.processes.pool.Pool.TimeoutHandler method)h#UtrauhINhJhh2]ubhl)r}r(h7Uh8jh9Nh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7XPool.TimeoutHandler.body()h8jh9hzh>h{h@}r(hE]rh#ah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rh#ahXPool.TimeoutHandler.bodyhjhuhINhJhh2]r(h)r}r(h7Xbodyh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXbodyrr}r(h7Uh8jubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh)r}r (h7Uh8jh9hzh>hh@}r (hB]hC]hD]hE]hG]uhINhJhh2]ubeubeubeubh_)r }r (h7Uh8hh9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.applyr h>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heX7apply() (celery.concurrency.processes.pool.Pool method)h%UtrauhINhJhh2]ubhl)r}r(h7Uh8hh9j h>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7X"Pool.apply(func, args=(), kwds={})h8jh9hzh>h{h@}r(hE]rh%ah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rh%ahX Pool.applyhXPoolhuhINhJhh2]r(h)r}r (h7XPool.h8jh9hzh>hh@}r!(hB]hC]hD]hE]hG]uhINhJhh2]r"hSXPool.r#r$}r%(h7Uh8jubaubh)r&}r'(h7Xapplyh8jh9hzh>hh@}r((hB]hC]hD]hE]hG]uhINhJhh2]r)hSXapplyr*r+}r,(h7Uh8j&ubaubh)r-}r.(h7Uh8jh9hzh>hh@}r/(hB]hC]hD]hE]hG]uhINhJhh2]r0(h)r1}r2(h7Xfunch@}r3(hB]hC]hD]hE]hG]uh8j-h2]r4hSXfuncr5r6}r7(h7Uh8j1ubah>hubh)r8}r9(h7Xargs=()h@}r:(hB]hC]hD]hE]hG]uh8j-h2]r;hSXargs=()r<r=}r>(h7Uh8j8ubah>hubh)r?}r@(h7Xkwds={}h@}rA(hB]hC]hD]hE]hG]uh8j-h2]rBhSXkwds={}rCrD}rE(h7Uh8j?ubah>hubeubeubh)rF}rG(h7Uh8jh9hzh>hh@}rH(hB]hC]hD]hE]hG]uhINhJhh2]rIh)rJ}rK(h7XEquivalent of `apply()` builtinh8jFh9j h>hh@}rL(hB]hC]hD]hE]hG]uhIKhJhh2]rM(hSXEquivalent of rNrO}rP(h7XEquivalent of h8jJubh)rQ}rR(h7X `apply()`h@}rS(hB]hC]hD]hE]hG]uh8jJh2]rThSXapply()rUrV}rW(h7Uh8jQubah>hubhSX builtinrXrY}rZ(h7X builtinh8jJubeubaubeubh_)r[}r\(h7Uh8hh9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.apply_asyncr]h>hbh@}r^(hE]hD]hB]hC]hG]Uentries]r_(heX=apply_async() (celery.concurrency.processes.pool.Pool method)hUtr`auhINhJhh2]ubhl)ra}rb(h7Uh8hh9j]h>hoh@}rc(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrdhujduhINhJhh2]re(hw)rf}rg(h7XPool.apply_async(func, args=(), kwds={}, callback=None, accept_callback=None, timeout_callback=None, waitforslot=False, error_callback=None)h8jah9hzh>h{h@}rh(hE]rihah~h:X!celery.concurrency.processes.poolrjrk}rlbhD]hB]hC]hG]rmhahXPool.apply_asynchXPoolhuhINhJhh2]rn(h)ro}rp(h7XPool.h8jfh9hzh>hh@}rq(hB]hC]hD]hE]hG]uhINhJhh2]rrhSXPool.rsrt}ru(h7Uh8joubaubh)rv}rw(h7X apply_asynch8jfh9hzh>hh@}rx(hB]hC]hD]hE]hG]uhINhJhh2]ryhSX apply_asyncrzr{}r|(h7Uh8jvubaubh)r}}r~(h7Uh8jfh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]r(h)r}r(h7Xfunch@}r(hB]hC]hD]hE]hG]uh8j}h2]rhSXfuncrr}r(h7Uh8jubah>hubh)r}r(h7Xargs=()h@}r(hB]hC]hD]hE]hG]uh8j}h2]rhSXargs=()rr}r(h7Uh8jubah>hubh)r}r(h7Xkwds={}h@}r(hB]hC]hD]hE]hG]uh8j}h2]rhSXkwds={}rr}r(h7Uh8jubah>hubh)r}r(h7X callback=Noneh@}r(hB]hC]hD]hE]hG]uh8j}h2]rhSX callback=Nonerr}r(h7Uh8jubah>hubh)r}r(h7Xaccept_callback=Noneh@}r(hB]hC]hD]hE]hG]uh8j}h2]rhSXaccept_callback=Nonerr}r(h7Uh8jubah>hubh)r}r(h7Xtimeout_callback=Noneh@}r(hB]hC]hD]hE]hG]uh8j}h2]rhSXtimeout_callback=Nonerr}r(h7Uh8jubah>hubh)r}r(h7Xwaitforslot=Falseh@}r(hB]hC]hD]hE]hG]uh8j}h2]rhSXwaitforslot=Falserr}r(h7Uh8jubah>hubh)r}r(h7Xerror_callback=Noneh@}r(hB]hC]hD]hE]hG]uh8j}h2]rhSXerror_callback=Nonerr}r(h7Uh8jubah>hubeubeubh)r}r(h7Uh8jah9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]r(h)r}r(h7X-Asynchronous equivalent of `apply()` builtin.rh8jh9j]h>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]r(hSXAsynchronous equivalent of rr}r(h7XAsynchronous equivalent of h8jubh)r}r(h7X `apply()`h@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXapply()rr}r(h7Uh8jubah>hubhSX builtin.rr}r(h7X builtin.h8jubeubh)r}r(h7XCallback is called when the functions return value is ready. The accept callback is called when the job is accepted to be executed.rh8jh9j]h>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]rhSXCallback is called when the functions return value is ready. The accept callback is called when the job is accepted to be executed.rr}r(h7jh8jubaubh)r}r(h7X!Simplified the flow is like this:rh8jh9j]h>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]rhSX!Simplified the flow is like this:rr}r(h7jh8jubaubcdocutils.nodes doctest_block r)r}r(h7X|>>> if accept_callback: ... accept_callback() >>> retval = func(*args, **kwds) >>> if callback: ... callback(retval)h8jh9Nh>U doctest_blockrh@}r(U xml:spacerUpreserverhE]hD]hB]hC]hG]uhINhJhh2]rhSX|>>> if accept_callback: ... accept_callback() >>> retval = func(*args, **kwds) >>> if callback: ... callback(retval)rr}r(h7Uh8jubaubeubeubh_)r}r(h7Uh8hh9Nh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heX7close() (celery.concurrency.processes.pool.Pool method)hUtrauhINhJhh2]ubhl)r}r(h7Uh8hh9Nh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7X Pool.close()h8jh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rhahX Pool.closehXPoolhuhINhJhh2]r(h)r}r(h7XPool.h8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXPool.rr}r(h7Uh8jubaubh)r}r(h7Xcloseh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXcloserr }r (h7Uh8jubaubh)r }r (h7Uh8jh9hzh>hh@}r (hB]hC]hD]hE]hG]uhINhJhh2]ubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh_)r}r(h7Uh8hh9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.imaprh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heX6imap() (celery.concurrency.processes.pool.Pool method)hUtrauhINhJhh2]ubhl)r}r(h7Uh8hh9jh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7X&Pool.imap(func, iterable, chunksize=1)h8jh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolr r!}r"bhD]hB]hC]hG]r#hahX Pool.imaphXPoolhuhINhJhh2]r$(h)r%}r&(h7XPool.h8jh9hzh>hh@}r'(hB]hC]hD]hE]hG]uhINhJhh2]r(hSXPool.r)r*}r+(h7Uh8j%ubaubh)r,}r-(h7Ximaph8jh9hzh>hh@}r.(hB]hC]hD]hE]hG]uhINhJhh2]r/hSXimapr0r1}r2(h7Uh8j,ubaubh)r3}r4(h7Uh8jh9hzh>hh@}r5(hB]hC]hD]hE]hG]uhINhJhh2]r6(h)r7}r8(h7Xfunch@}r9(hB]hC]hD]hE]hG]uh8j3h2]r:hSXfuncr;r<}r=(h7Uh8j7ubah>hubh)r>}r?(h7Xiterableh@}r@(hB]hC]hD]hE]hG]uh8j3h2]rAhSXiterablerBrC}rD(h7Uh8j>ubah>hubh)rE}rF(h7X chunksize=1h@}rG(hB]hC]hD]hE]hG]uh8j3h2]rHhSX chunksize=1rIrJ}rK(h7Uh8jEubah>hubeubeubh)rL}rM(h7Uh8jh9hzh>hh@}rN(hB]hC]hD]hE]hG]uhINhJhh2]rOh)rP}rQ(h7XHEquivalent of `itertools.imap()` -- can be MUCH slower than `Pool.map()`h8jLh9jh>hh@}rR(hB]hC]hD]hE]hG]uhIKhJhh2]rS(hSXEquivalent of rTrU}rV(h7XEquivalent of h8jPubh)rW}rX(h7X`itertools.imap()`h@}rY(hB]hC]hD]hE]hG]uh8jPh2]rZhSXitertools.imap()r[r\}r](h7Uh8jWubah>hubhSX -- can be MUCH slower than r^r_}r`(h7X -- can be MUCH slower than h8jPubh)ra}rb(h7X `Pool.map()`h@}rc(hB]hC]hD]hE]hG]uh8jPh2]rdhSX Pool.map()rerf}rg(h7Uh8jaubah>hubeubaubeubh_)rh}ri(h7Uh8hh9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.imap_unorderedrjh>hbh@}rk(hE]hD]hB]hC]hG]Uentries]rl(heX@imap_unordered() (celery.concurrency.processes.pool.Pool method)hUtrmauhINhJhh2]ubhl)rn}ro(h7Uh8hh9jjh>hoh@}rp(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrqhujquhINhJhh2]rr(hw)rs}rt(h7X0Pool.imap_unordered(func, iterable, chunksize=1)h8jnh9hzh>h{h@}ru(hE]rvhah~h:X!celery.concurrency.processes.poolrwrx}rybhD]hB]hC]hG]rzhahXPool.imap_unorderedhXPoolhuhINhJhh2]r{(h)r|}r}(h7XPool.h8jsh9hzh>hh@}r~(hB]hC]hD]hE]hG]uhINhJhh2]rhSXPool.rr}r(h7Uh8j|ubaubh)r}r(h7Ximap_unorderedh8jsh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXimap_unorderedrr}r(h7Uh8jubaubh)r}r(h7Uh8jsh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]r(h)r}r(h7Xfunch@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXfuncrr}r(h7Uh8jubah>hubh)r}r(h7Xiterableh@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXiterablerr}r(h7Uh8jubah>hubh)r}r(h7X chunksize=1h@}r(hB]hC]hD]hE]hG]uh8jh2]rhSX chunksize=1rr}r(h7Uh8jubah>hubeubeubh)r}r(h7Uh8jnh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7X9Like `imap()` method but ordering of results is arbitraryh8jh9jjh>hh@}r(hB]hC]hD]hE]hG]uhIKhJhh2]r(hSXLike rr}r(h7XLike h8jubh)r}r(h7X`imap()`h@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXimap()rr}r(h7Uh8jubah>hubhSX, method but ordering of results is arbitraryrr}r(h7X, method but ordering of results is arbitraryh8jubeubaubeubh_)r}r(h7Uh8hh9Nh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heX6join() (celery.concurrency.processes.pool.Pool method)hUtrauhINhJhh2]ubhl)r}r(h7Uh8hh9Nh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7X Pool.join()h8jh9hzh>h{h@}r(hE]rhah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rhahX Pool.joinhXPoolhuhINhJhh2]r(h)r}r(h7XPool.h8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXPool.rr}r(h7Uh8jubaubh)r}r(h7Xjoinh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXjoinrr}r(h7Uh8jubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh_)r}r(h7Uh8hh9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.maprh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heX5map() (celery.concurrency.processes.pool.Pool method)h UtrauhINhJhh2]ubhl)r}r(h7Uh8hh9jh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7X(Pool.map(func, iterable, chunksize=None)h8jh9hzh>h{h@}r(hE]rh ah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rh ahXPool.maphXPoolhuhINhJhh2]r(h)r}r(h7XPool.h8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXPool.rr}r(h7Uh8jubaubh)r}r(h7Xmaph8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXmaprr}r(h7Uh8jubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]r(h)r}r(h7Xfunch@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXfuncr r }r (h7Uh8jubah>hubh)r }r (h7Xiterableh@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXiterablerr}r(h7Uh8j ubah>hubh)r}r(h7Xchunksize=Noneh@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXchunksize=Nonerr}r(h7Uh8jubah>hubeubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rh)r}r(h7XEquivalent of `map()` builtinh8jh9jh>hh@}r (hB]hC]hD]hE]hG]uhIKhJhh2]r!(hSXEquivalent of r"r#}r$(h7XEquivalent of h8jubh)r%}r&(h7X`map()`h@}r'(hB]hC]hD]hE]hG]uh8jh2]r(hSXmap()r)r*}r+(h7Uh8j%ubah>hubhSX builtinr,r-}r.(h7X builtinh8jubeubaubeubh_)r/}r0(h7Uh8hh9X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/pool.py:docstring of celery.concurrency.processes.pool.Pool.map_asyncr1h>hbh@}r2(hE]hD]hB]hC]hG]Uentries]r3(heX;map_async() (celery.concurrency.processes.pool.Pool method)h!Utr4auhINhJhh2]ubhl)r5}r6(h7Uh8hh9j1h>hoh@}r7(hqhrXpyhE]hD]hB]hC]hG]hsXmethodr8huj8uhINhJhh2]r9(hw)r:}r;(h7X=Pool.map_async(func, iterable, chunksize=None, callback=None)h8j5h9hzh>h{h@}r<(hE]r=h!ah~h:X!celery.concurrency.processes.poolr>r?}r@bhD]hB]hC]hG]rAh!ahXPool.map_asynchXPoolhuhINhJhh2]rB(h)rC}rD(h7XPool.h8j:h9hzh>hh@}rE(hB]hC]hD]hE]hG]uhINhJhh2]rFhSXPool.rGrH}rI(h7Uh8jCubaubh)rJ}rK(h7X map_asynch8j:h9hzh>hh@}rL(hB]hC]hD]hE]hG]uhINhJhh2]rMhSX map_asyncrNrO}rP(h7Uh8jJubaubh)rQ}rR(h7Uh8j:h9hzh>hh@}rS(hB]hC]hD]hE]hG]uhINhJhh2]rT(h)rU}rV(h7Xfunch@}rW(hB]hC]hD]hE]hG]uh8jQh2]rXhSXfuncrYrZ}r[(h7Uh8jUubah>hubh)r\}r](h7Xiterableh@}r^(hB]hC]hD]hE]hG]uh8jQh2]r_hSXiterabler`ra}rb(h7Uh8j\ubah>hubh)rc}rd(h7Xchunksize=Noneh@}re(hB]hC]hD]hE]hG]uh8jQh2]rfhSXchunksize=Nonergrh}ri(h7Uh8jcubah>hubh)rj}rk(h7X callback=Noneh@}rl(hB]hC]hD]hE]hG]uh8jQh2]rmhSX callback=Nonernro}rp(h7Uh8jjubah>hubeubeubh)rq}rr(h7Uh8j5h9hzh>hh@}rs(hB]hC]hD]hE]hG]uhINhJhh2]rth)ru}rv(h7X*Asynchronous equivalent of `map()` builtinh8jqh9j1h>hh@}rw(hB]hC]hD]hE]hG]uhIKhJhh2]rx(hSXAsynchronous equivalent of ryrz}r{(h7XAsynchronous equivalent of h8juubh)r|}r}(h7X`map()`h@}r~(hB]hC]hD]hE]hG]uh8juh2]rhSXmap()rr}r(h7Uh8j|ubah>hubhSX builtinrr}r(h7X builtinh8juubeubaubeubh_)r}r(h7Uh8hh9Nh>hbh@}r(hE]hD]hB]hC]hG]Uentries]r(heX;terminate() (celery.concurrency.processes.pool.Pool method)h&UtrauhINhJhh2]ubhl)r}r(h7Uh8hh9Nh>hoh@}r(hqhrXpyhE]hD]hB]hC]hG]hsXmethodrhujuhINhJhh2]r(hw)r}r(h7XPool.terminate()rh8jh9hzh>h{h@}r(hE]rh&ah~h:X!celery.concurrency.processes.poolrr}rbhD]hB]hC]hG]rh&ahXPool.terminatehXPoolhuhINhJhh2]r(h)r}r(h7XPool.h8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSXPool.rr}r(h7Uh8jubaubh)r}r(h7X terminateh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]rhSX terminaterr}r(h7Uh8jubaubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubh)r}r(h7Uh8jh9hzh>hh@}r(hB]hC]hD]hE]hG]uhINhJhh2]ubeubeubeubeubah7UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhJhU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h7Uh@}r(hB]UlevelKhE]hD]UsourcehZhC]hG]UlineKUtypeUINFOruh2]rh)r}r(h7Uh@}r(hB]hC]hD]hE]hG]uh8jh2]rhSXNHyperlink target "module-celery.concurrency.processes.pool" is not referenced.rr}r(h7Uh8jubah>hubah>Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhPNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcer Us/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.concurrency.processes.pool.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjh1h5h^hXhj`hjh jh j4h jh0cdocutils.nodes topic r)r }r!(h7Uh8h5h9hUtopicr"h@}r#(hB]hC]r$(Ucontentsr%Ulocalr&ehD]hE]r'h0ahG]r(h auhIKhJhh2]r)cdocutils.nodes pending r*)r+}r,(h7X.. contents:: :local:h8j U transformr-cdocutils.transforms.parts Contents r.Udetailsr/}r0UlocalNsh>Upendingr1h@}r2(hB]hC]hD]hE]hG]uh2]ubaubh jhjhhhj~hjhjhjhj+hj/hjhjhjhjhjshjfhjhjhhxh j~h!j:h"j`h#jh$jh%jh&juUsubstitution_namesr3}r4h>hJh@}r5(hB]hE]hD]Usourceh]q?hauUlineq@KUdocumentqAhh)]qB(cdocutils.nodes title qC)qD}qE(h.XLogging - celery.logqFh/h,h0h3h5UtitleqGh7}qH(h9]h:]h;]h<]h>]uh@KhAhh)]qIcdocutils.nodes Text qJXLogging - celery.logqKqL}qM(h.hFh/hDubaubcdocutils.nodes target qN)qO}qP(h.Uh/h,h0U qQh5UtargetqRh7}qS(h9]h<]qTXmodule-celery.logqUah;]Uismodh:]h>]uh@KhAhh)]ubcsphinx.addnodes index qV)qW}qX(h.Uh/h,h0hQh5UindexqYh7}qZ(h<]h;]h9]h:]h>]Uentries]q[(Usingleq\Xcelery.log (module)Xmodule-celery.logUtq]auh@KhAhh)]ubcdocutils.nodes paragraph q^)q_}q`(h.X celery.logqah/h,h0XZ/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.logqbh5U paragraphqch7}qd(h9]h:]h;]h<]h>]uh@KhAhh)]qehJX celery.logqfqg}qh(h.hah/h_ubaubhV)qi}qj(h.Uh/h,h0Nh5hYh7}qk(h<]h;]h9]h:]h>]Uentries]ql(h\X$ColorFormatter (class in celery.log)h Utqmauh@NhAhh)]ubcsphinx.addnodes desc qn)qo}qp(h.Uh/h,h0Nh5Udescqqh7}qr(UnoindexqsUdomainqtXpyh<]h;]h9]h:]h>]UobjtypequXclassqvUdesctypeqwhvuh@NhAhh)]qx(csphinx.addnodes desc_signature qy)qz}q{(h.X#ColorFormatter(msg, use_color=True)h/hoh0U q|h5Udesc_signatureq}h7}q~(h<]qh aUmoduleqh1X celery.logqq}qbh;]h9]h:]h>]qh aUfullnameqXColorFormatterqUclassqUUfirstquh@NhAhh)]q(csphinx.addnodes desc_annotation q)q}q(h.Xclass h/hzh0h|h5Udesc_annotationqh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qhJXclass qq}q(h.Uh/hubaubcsphinx.addnodes desc_addname q)q}q(h.X celery.log.h/hzh0h|h5U desc_addnameqh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qhJX celery.log.qq}q(h.Uh/hubaubcsphinx.addnodes desc_name q)q}q(h.hh/hzh0h|h5U desc_nameqh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qhJXColorFormatterqq}q(h.Uh/hubaubcsphinx.addnodes desc_parameterlist q)q}q(h.Uh/hzh0h|h5Udesc_parameterlistqh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]q(csphinx.addnodes desc_parameter q)q}q(h.Xmsgh7}q(h9]h:]h;]h<]h>]uh/hh)]qhJXmsgqq}q(h.Uh/hubah5Udesc_parameterqubh)q}q(h.Xuse_color=Trueh7}q(h9]h:]h;]h<]h>]uh/hh)]qhJXuse_color=Trueqq}q(h.Uh/hubah5hubeubeubcsphinx.addnodes desc_content q)q}q(h.Uh/hoh0h|h5U desc_contentqh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]q(hV)q}q(h.Uh/hh0Nh5hYh7}q(h<]h;]h9]h:]h>]Uentries]q(h\X+format() (celery.log.ColorFormatter method)hUtqauh@NhAhh)]ubhn)q}q(h.Uh/hh0Nh5hqh7}q(hshtXpyh<]h;]h9]h:]h>]huXmethodqhwhuh@NhAhh)]q(hy)q}q(h.XColorFormatter.format(record)h/hh0h|h5h}h7}q(h<]qhahh1X celery.logqυq}qbh;]h9]h:]h>]qhahXColorFormatter.formathhhuh@NhAhh)]q(h)q}q(h.Xformath/hh0h|h5hh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qhJXformatq؅q}q(h.Uh/hubaubh)q}q(h.Uh/hh0h|h5hh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qh)q}q(h.Xrecordh7}q(h9]h:]h;]h<]h>]uh/hh)]qhJXrecordqㅁq}q(h.Uh/hubah5hubaubeubh)q}q(h.Uh/hh0h|h5hh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubhV)q}q(h.Uh/hh0Nh5hYh7}q(h<]h;]h9]h:]h>]Uentries]q(h\X4formatException() (celery.log.ColorFormatter method)h Utqauh@NhAhh)]ubhn)q}q(h.Uh/hh0Nh5hqh7}q(hshtXpyh<]h;]h9]h:]h>]huXmethodqhwhuh@NhAhh)]q(hy)q}q(h.X"ColorFormatter.formatException(ei)h/hh0h|h5h}h7}q(h<]qh ahh1X celery.logqq}qbh;]h9]h:]h>]qh ahXColorFormatter.formatExceptionhhhuh@NhAhh)]q(h)q}q(h.XformatExceptionh/hh0h|h5hh7}q(h9]h:]h;]h<]h>]uh@NhAhh)]qhJXformatExceptionrr}r(h.Uh/hubaubh)r}r(h.Uh/hh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rh)r}r(h.Xeih7}r (h9]h:]h;]h<]h>]uh/jh)]r hJXeir r }r (h.Uh/jubah5hubaubeubh)r}r(h.Uh/hh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubeubeubhV)r}r(h.Uh/h,h0Nh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X"LoggingProxy (class in celery.log)h Utrauh@NhAhh)]ubhn)r}r(h.Uh/h,h0Nh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huXclassrhwjuh@NhAhh)]r(hy)r}r(h.X#LoggingProxy(logger, loglevel=None)h/jh0h|h5h}h7}r(h<]rh ahh1X celery.logrr }r!bh;]h9]h:]h>]r"h ahX LoggingProxyr#hUhuh@NhAhh)]r$(h)r%}r&(h.Xclass h/jh0h|h5hh7}r'(h9]h:]h;]h<]h>]uh@NhAhh)]r(hJXclass r)r*}r+(h.Uh/j%ubaubh)r,}r-(h.X celery.log.h/jh0h|h5hh7}r.(h9]h:]h;]h<]h>]uh@NhAhh)]r/hJX celery.log.r0r1}r2(h.Uh/j,ubaubh)r3}r4(h.j#h/jh0h|h5hh7}r5(h9]h:]h;]h<]h>]uh@NhAhh)]r6hJX LoggingProxyr7r8}r9(h.Uh/j3ubaubh)r:}r;(h.Uh/jh0h|h5hh7}r<(h9]h:]h;]h<]h>]uh@NhAhh)]r=(h)r>}r?(h.Xloggerh7}r@(h9]h:]h;]h<]h>]uh/j:h)]rAhJXloggerrBrC}rD(h.Uh/j>ubah5hubh)rE}rF(h.X loglevel=Noneh7}rG(h9]h:]h;]h<]h>]uh/j:h)]rHhJX loglevel=NonerIrJ}rK(h.Uh/jEubah5hubeubeubh)rL}rM(h.Uh/jh0h|h5hh7}rN(h9]h:]h;]h<]h>]uh@NhAhh)]rO(h^)rP}rQ(h.X8Forward file object to :class:`logging.Logger` instance.h/jLh0Xg/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.log.LoggingProxyrRh5hch7}rS(h9]h:]h;]h<]h>]uh@KhAhh)]rT(hJXForward file object to rUrV}rW(h.XForward file object to h/jPubcsphinx.addnodes pending_xref rX)rY}rZ(h.X:class:`logging.Logger`r[h/jPh0Nh5U pending_xrefr\h7}r](UreftypeXclassUrefwarnr^U reftargetr_Xlogging.LoggerU refdomainXpyr`h<]h;]U refexplicith9]h:]h>]UrefdocraXinternals/reference/celery.logrbUpy:classrcj#U py:modulerdX celery.logreuh@Nh)]rfcdocutils.nodes literal rg)rh}ri(h.j[h7}rj(h9]h:]rk(Uxrefrlj`Xpy-classrmeh;]h<]h>]uh/jYh)]rnhJXlogging.Loggerrorp}rq(h.Uh/jhubah5UliteralrrubaubhJX instance.rsrt}ru(h.X instance.h/jPubeubcdocutils.nodes field_list rv)rw}rx(h.Uh/jLh0Nh5U field_listryh7}rz(h9]h:]h;]h<]h>]uh@NhAhh)]r{cdocutils.nodes field r|)r}}r~(h.Uh7}r(h9]h:]h;]h<]h>]uh/jwh)]r(cdocutils.nodes field_name r)r}r(h.Uh7}r(h9]h:]h;]h<]h>]uh/j}h)]rhJX Parametersrr}r(h.Uh/jubah5U field_namerubcdocutils.nodes field_body r)r}r(h.Uh7}r(h9]h:]h;]h<]h>]uh/j}h)]rcdocutils.nodes bullet_list r)r}r(h.Uh7}r(h9]h:]h;]h<]h>]uh/jh)]r(cdocutils.nodes list_item r)r}r(h.Uh7}r(h9]h:]h;]h<]h>]uh/jh)]rh^)r}r(h.Uh7}r(h9]h:]h;]h<]h>]uh/jh)]r(cdocutils.nodes strong r)r}r(h.Xloggerh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXloggerrr}r(h.Uh/jubah5UstrongrubhJX -- rr}r(h.Uh/jubhJXThe rr}r(h.XThe h/jubjX)r}r(h.X:class:`logging.Logger`rh/jh0Nh5j\h7}r(UreftypeXclassj^j_Xlogging.LoggerU refdomainXpyrh<]h;]U refexplicith9]h:]h>]jajbjcj#jdjeuh@Nh)]rjg)r}r(h.jh7}r(h9]h:]r(jljXpy-classreh;]h<]h>]uh/jh)]rhJXlogging.Loggerrr}r(h.Uh/jubah5jrubaubhJX instance to forward to.rr}r(h.X instance to forward to.h/jubeh5hcubah5U list_itemrubj)r}r(h.Uh7}r(h9]h:]h;]h<]h>]uh/jh)]rh^)r}r(h.Uh7}r(h9]h:]h;]h<]h>]uh/jh)]r(j)r}r(h.Xloglevelh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXloglevelrr}r(h.Uh/jubah5jubhJX -- rr}r(h.Uh/jubhJX&Loglevel to use when writing messages.rr}r(h.X&Loglevel to use when writing messages.h/jubeh5hcubah5jubeh5U bullet_listrubah5U field_bodyrubeh5UfieldrubaubhV)r}r(h.Uh/jLh0Xm/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.log.LoggingProxy.closerh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X(close() (celery.log.LoggingProxy method)hUtrauh@NhAhh)]ubhn)r}r(h.Uh/jLh0jh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huXmethodrhwjuh@NhAhh)]r(hy)r}r(h.XLoggingProxy.close()h/jh0h|h5h}h7}r(h<]rhahh1X celery.logrr}rbh;]h9]h:]h>]rhahXLoggingProxy.closehj#huh@NhAhh)]r(h)r}r(h.Xcloseh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJXcloserr}r(h.Uh/jubaubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rh^)r}r(h.XYWhen the object is closed, no write requests are forwarded to the logging object anymore.rh/jh0jh5hch7}r(h9]h:]h;]h<]h>]uh@KhAhh)]rhJXYWhen the object is closed, no write requests are forwarded to the logging object anymore.rr}r(h.jh/jubaubaubeubhV)r}r(h.Uh/jLh0Nh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X*closed (celery.log.LoggingProxy attribute)hUtrauh@NhAhh)]ubhn)r}r(h.Uh/jLh0Nh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huX attributer hwj uh@NhAhh)]r (hy)r }r (h.XLoggingProxy.closedh/jh0U r h5h}h7}r(h<]rhahh1X celery.logrr}rbh;]h9]h:]h>]rhahXLoggingProxy.closedhj#huh@NhAhh)]r(h)r}r(h.Xclosedh/j h0j h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJXclosedrr}r(h.Uh/jubaubh)r}r(h.X = Falseh/j h0j h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJX = Falser r!}r"(h.Uh/jubaubeubh)r#}r$(h.Uh/jh0j h5hh7}r%(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubhV)r&}r'(h.Uh/jLh0Nh5hYh7}r((h<]h;]h9]h:]h>]Uentries]r)(h\X)fileno() (celery.log.LoggingProxy method)h Utr*auh@NhAhh)]ubhn)r+}r,(h.Uh/jLh0Nh5hqh7}r-(hshtXpyh<]h;]h9]h:]h>]huXmethodr.hwj.uh@NhAhh)]r/(hy)r0}r1(h.XLoggingProxy.fileno()h/j+h0h|h5h}h7}r2(h<]r3h ahh1X celery.logr4r5}r6bh;]h9]h:]h>]r7h ahXLoggingProxy.filenohj#huh@NhAhh)]r8(h)r9}r:(h.Xfilenoh/j0h0h|h5hh7}r;(h9]h:]h;]h<]h>]uh@NhAhh)]r<hJXfilenor=r>}r?(h.Uh/j9ubaubh)r@}rA(h.Uh/j0h0h|h5hh7}rB(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubh)rC}rD(h.Uh/j+h0h|h5hh7}rE(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubhV)rF}rG(h.Uh/jLh0Xm/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.log.LoggingProxy.flushrHh5hYh7}rI(h<]h;]h9]h:]h>]Uentries]rJ(h\X(flush() (celery.log.LoggingProxy method)hUtrKauh@NhAhh)]ubhn)rL}rM(h.Uh/jLh0jHh5hqh7}rN(hshtXpyh<]h;]h9]h:]h>]huXmethodrOhwjOuh@NhAhh)]rP(hy)rQ}rR(h.XLoggingProxy.flush()h/jLh0h|h5h}h7}rS(h<]rThahh1X celery.logrUrV}rWbh;]h9]h:]h>]rXhahXLoggingProxy.flushhj#huh@NhAhh)]rY(h)rZ}r[(h.Xflushh/jQh0h|h5hh7}r\(h9]h:]h;]h<]h>]uh@NhAhh)]r]hJXflushr^r_}r`(h.Uh/jZubaubh)ra}rb(h.Uh/jQh0h|h5hh7}rc(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubh)rd}re(h.Uh/jLh0h|h5hh7}rf(h9]h:]h;]h<]h>]uh@NhAhh)]rgh^)rh}ri(h.XFThis object is not buffered so any :meth:`flush` requests are ignored.h/jdh0jHh5hch7}rj(h9]h:]h;]h<]h>]uh@KhAhh)]rk(hJX#This object is not buffered so any rlrm}rn(h.X#This object is not buffered so any h/jhubjX)ro}rp(h.X :meth:`flush`rqh/jhh0Nh5j\h7}rr(UreftypeXmethj^j_XflushU refdomainXpyrsh<]h;]U refexplicith9]h:]h>]jajbjcj#jdjeuh@Nh)]rtjg)ru}rv(h.jqh7}rw(h9]h:]rx(jljsXpy-methryeh;]h<]h>]uh/joh)]rzhJXflush()r{r|}r}(h.Uh/juubah5jrubaubhJX requests are ignored.r~r}r(h.X requests are ignored.h/jhubeubaubeubhV)r}r(h.Uh/jLh0Xn/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.log.LoggingProxy.isattyrh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X)isatty() (celery.log.LoggingProxy method)hUtrauh@NhAhh)]ubhn)r}r(h.Uh/jLh0jh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huXmethodrhwjuh@NhAhh)]r(hy)r}r(h.XLoggingProxy.isatty()h/jh0h|h5h}h7}r(h<]rhahh1X celery.logrr}rbh;]h9]h:]h>]rhahXLoggingProxy.isattyhj#huh@NhAhh)]r(h)r}r(h.Xisattyh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJXisattyrr}r(h.Uh/jubaubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rh^)r}r(h.X5Always returns ``False``. Just here for file support.h/jh0jh5hch7}r(h9]h:]h;]h<]h>]uh@KhAhh)]r(hJXAlways returns rr}r(h.XAlways returns h/jubjg)r}r(h.X ``False``h7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXFalserr}r(h.Uh/jubah5jrubhJX. Just here for file support.rr}r(h.X. Just here for file support.h/jubeubaubeubhV)r}r(h.Uh/jLh0Nh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X,loglevel (celery.log.LoggingProxy attribute)hUtrauh@NhAhh)]ubhn)r}r(h.Uh/jLh0Nh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huX attributerhwjuh@NhAhh)]r(hy)r}r(h.XLoggingProxy.loglevelh/jh0j h5h}h7}r(h<]rhahh1X celery.logrr}rbh;]h9]h:]h>]rhahXLoggingProxy.loglevelhj#huh@NhAhh)]r(h)r}r(h.Xloglevelh/jh0j h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJXloglevelrr}r(h.Uh/jubaubh)r}r(h.X = 40h/jh0j h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJX = 40rr}r(h.Uh/jubaubeubh)r}r(h.Uh/jh0j h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubhV)r}r(h.Uh/jLh0Nh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X(mode (celery.log.LoggingProxy attribute)hUtrauh@NhAhh)]ubhn)r}r(h.Uh/jLh0Nh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huX attributerhwjuh@NhAhh)]r(hy)r}r(h.XLoggingProxy.modeh/jh0j h5h}h7}r(h<]rhahh1X celery.logrr}rbh;]h9]h:]h>]rhahXLoggingProxy.modehj#huh@NhAhh)]r(h)r}r(h.Xmodeh/jh0j h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJXmoderr}r(h.Uh/jubaubh)r}r(h.X = 'w'h/jh0j h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJX = 'w'rr}r(h.Uh/jubaubeubh)r}r(h.Uh/jh0j h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubhV)r}r(h.Uh/jLh0Nh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X(name (celery.log.LoggingProxy attribute)h Utrauh@NhAhh)]ubhn)r}r(h.Uh/jLh0Nh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huX attributerhwjuh@NhAhh)]r(hy)r}r(h.XLoggingProxy.nameh/jh0j h5h}h7}r(h<]r h ahh1X celery.logr r }r bh;]h9]h:]h>]r h ahXLoggingProxy.namehj#huh@NhAhh)]r(h)r}r(h.Xnameh/jh0j h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJXnamerr}r(h.Uh/jubaubh)r}r(h.X = Noneh/jh0j h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJX = Nonerr}r(h.Uh/jubaubeubh)r}r(h.Uh/jh0j h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubhV)r }r!(h.Uh/jLh0Nh5hYh7}r"(h<]h;]h9]h:]h>]Uentries]r#(h\X(write() (celery.log.LoggingProxy method)hUtr$auh@NhAhh)]ubhn)r%}r&(h.Uh/jLh0Nh5hqh7}r'(hshtXpyh<]h;]h9]h:]h>]huXmethodr(hwj(uh@NhAhh)]r)(hy)r*}r+(h.XLoggingProxy.write(data)h/j%h0h|h5h}h7}r,(h<]r-hahh1X celery.logr.r/}r0bh;]h9]h:]h>]r1hahXLoggingProxy.writehj#huh@NhAhh)]r2(h)r3}r4(h.Xwriteh/j*h0h|h5hh7}r5(h9]h:]h;]h<]h>]uh@NhAhh)]r6hJXwriter7r8}r9(h.Uh/j3ubaubh)r:}r;(h.Uh/j*h0h|h5hh7}r<(h9]h:]h;]h<]h>]uh@NhAhh)]r=h)r>}r?(h.Xdatah7}r@(h9]h:]h;]h<]h>]uh/j:h)]rAhJXdatarBrC}rD(h.Uh/j>ubah5hubaubeubh)rE}rF(h.Uh/j%h0h|h5hh7}rG(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubhV)rH}rI(h.Uh/jLh0Xr/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.log.LoggingProxy.writelinesrJh5hYh7}rK(h<]h;]h9]h:]h>]Uentries]rL(h\X-writelines() (celery.log.LoggingProxy method)hUtrMauh@NhAhh)]ubhn)rN}rO(h.Uh/jLh0jJh5hqh7}rP(hshtXpyh<]h;]h9]h:]h>]huXmethodrQhwjQuh@NhAhh)]rR(hy)rS}rT(h.X!LoggingProxy.writelines(sequence)h/jNh0h|h5h}h7}rU(h<]rVhahh1X celery.logrWrX}rYbh;]h9]h:]h>]rZhahXLoggingProxy.writelineshj#huh@NhAhh)]r[(h)r\}r](h.X writelinesh/jSh0h|h5hh7}r^(h9]h:]h;]h<]h>]uh@NhAhh)]r_hJX writelinesr`ra}rb(h.Uh/j\ubaubh)rc}rd(h.Uh/jSh0h|h5hh7}re(h9]h:]h;]h<]h>]uh@NhAhh)]rfh)rg}rh(h.Xsequenceh7}ri(h9]h:]h;]h<]h>]uh/jch)]rjhJXsequencerkrl}rm(h.Uh/jgubah5hubaubeubh)rn}ro(h.Uh/jNh0h|h5hh7}rp(h9]h:]h;]h<]h>]uh@NhAhh)]rq(h^)rr}rs(h.X,``writelines(sequence_of_strings) -> None``.h/jnh0jJh5hch7}rt(h9]h:]h;]h<]h>]uh@KhAhh)]ru(jg)rv}rw(h.X+``writelines(sequence_of_strings) -> None``h7}rx(h9]h:]h;]h<]h>]uh/jrh)]ryhJX'writelines(sequence_of_strings) -> Nonerzr{}r|(h.Uh/jvubah5jrubhJX.r}}r~(h.X.h/jrubeubh^)r}r(h.XWrite the strings to the file.rh/jnh0jJh5hch7}r(h9]h:]h;]h<]h>]uh@KhAhh)]rhJXWrite the strings to the file.rr}r(h.jh/jubaubh^)r}r(h.XwThe sequence can be any iterable object producing strings. This is equivalent to calling :meth:`write` for each string.h/jnh0jJh5hch7}r(h9]h:]h;]h<]h>]uh@KhAhh)]r(hJXYThe sequence can be any iterable object producing strings. This is equivalent to calling rr}r(h.XYThe sequence can be any iterable object producing strings. This is equivalent to calling h/jubjX)r}r(h.X :meth:`write`rh/jh0Nh5j\h7}r(UreftypeXmethj^j_XwriteU refdomainXpyrh<]h;]U refexplicith9]h:]h>]jajbjcj#jdjeuh@Nh)]rjg)r}r(h.jh7}r(h9]h:]r(jljXpy-methreh;]h<]h>]uh/jh)]rhJXwrite()rr}r(h.Uh/jubah5jrubaubhJX for each string.rr}r(h.X for each string.h/jubeubeubeubeubeubhV)r}r(h.Uh/h,h0Xj/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.log.SilenceRepeatedrh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X%SilenceRepeated (class in celery.log)hUtrauh@NhAhh)]ubhn)r}r(h.Uh/h,h0jh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huXclassrhwjuh@NhAhh)]r(hy)r}r(h.X*SilenceRepeated(action, max_iterations=10)h/jh0h|h5h}h7}r(h<]rhahh1X celery.logrr}rbh;]h9]h:]h>]rhahXSilenceRepeatedrhUhuh@NhAhh)]r(h)r}r(h.Xclass h/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJXclass rr}r(h.Uh/jubaubh)r}r(h.X celery.log.h/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJX celery.log.rr}r(h.Uh/jubaubh)r}r(h.jh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJXSilenceRepeatedrr}r(h.Uh/jubaubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]r(h)r}r(h.Xactionh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXactionrr}r(h.Uh/jubah5hubh)r}r(h.Xmax_iterations=10h7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXmax_iterations=10rr}r(h.Uh/jubah5hubeubeubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rh^)r}r(h.X#Only log action every n iterations.rh/jh0jh5hch7}r(h9]h:]h;]h<]h>]uh@KhAhh)]rhJX#Only log action every n iterations.rr}r(h.jh/jubaubaubeubhV)r}r(h.Uh/h,h0Xj/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.log.emergency_errorrh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X(emergency_error() (in module celery.log)hUtrauh@NhAhh)]ubhn)r}r(h.Uh/h,h0jh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huXfunctionrhwjuh@NhAhh)]r(hy)r}r(h.X!emergency_error(logfile, message)h/jh0h|h5h}h7}r(h<]rhahh1X celery.logrr}rbh;]h9]h:]h>]rhahXemergency_errorrhUhuh@NhAhh)]r(h)r}r(h.X celery.log.h/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJX celery.log.rr}r(h.Uh/jubaubh)r}r(h.jh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJXemergency_errorrr }r (h.Uh/jubaubh)r }r (h.Uh/jh0h|h5hh7}r (h9]h:]h;]h<]h>]uh@NhAhh)]r(h)r}r(h.Xlogfileh7}r(h9]h:]h;]h<]h>]uh/j h)]rhJXlogfilerr}r(h.Uh/jubah5hubh)r}r(h.Xmessageh7}r(h9]h:]h;]h<]h>]uh/j h)]rhJXmessagerr}r(h.Uh/jubah5hubeubeubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]r h^)r!}r"(h.XEmergency error logging, for when there's no standard file descriptors open because the process has been daemonized or for some other reason.r#h/jh0jh5hch7}r$(h9]h:]h;]h<]h>]uh@KhAhh)]r%hJXEmergency error logging, for when there's no standard file descriptors open because the process has been daemonized or for some other reason.r&r'}r((h.j#h/j!ubaubaubeubhV)r)}r*(h.Uh/h,h0Nh5hYh7}r+(h<]h;]h9]h:]h>]Uentries]r,(h\X+get_default_logger() (in module celery.log)hUtr-auh@NhAhh)]ubhn)r.}r/(h.Uh/h,h0Nh5hqh7}r0(hshtXpyh<]h;]h9]h:]h>]huXfunctionr1hwj1uh@NhAhh)]r2(hy)r3}r4(h.X0get_default_logger(loglevel=None, name='celery')h/j.h0h|h5h}h7}r5(h<]r6hahh1X celery.logr7r8}r9bh;]h9]h:]h>]r:hahXget_default_loggerr;hUhuh@NhAhh)]r<(h)r=}r>(h.X celery.log.h/j3h0h|h5hh7}r?(h9]h:]h;]h<]h>]uh@NhAhh)]r@hJX celery.log.rArB}rC(h.Uh/j=ubaubh)rD}rE(h.j;h/j3h0h|h5hh7}rF(h9]h:]h;]h<]h>]uh@NhAhh)]rGhJXget_default_loggerrHrI}rJ(h.Uh/jDubaubh)rK}rL(h.Uh/j3h0h|h5hh7}rM(h9]h:]h;]h<]h>]uh@NhAhh)]rN(h)rO}rP(h.X loglevel=Noneh7}rQ(h9]h:]h;]h<]h>]uh/jKh)]rRhJX loglevel=NonerSrT}rU(h.Uh/jOubah5hubh)rV}rW(h.X name='celery'h7}rX(h9]h:]h;]h<]h>]uh/jKh)]rYhJX name='celery'rZr[}r\(h.Uh/jVubah5hubeubeubh)r]}r^(h.Uh/j.h0h|h5hh7}r_(h9]h:]h;]h<]h>]uh@NhAhh)]r`(h^)ra}rb(h.XGet default logger instance.rch/j]h0Xm/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.log.get_default_loggerrdh5hch7}re(h9]h:]h;]h<]h>]uh@KhAhh)]rfhJXGet default logger instance.rgrh}ri(h.jch/jaubaubjv)rj}rk(h.Uh/j]h0Nh5jyh7}rl(h9]h:]h;]h<]h>]uh@NhAhh)]rmj|)rn}ro(h.Uh7}rp(h9]h:]h;]h<]h>]uh/jjh)]rq(j)rr}rs(h.Uh7}rt(h9]h:]h;]h<]h>]uh/jnh)]ruhJX Parametersrvrw}rx(h.Uh/jrubah5jubj)ry}rz(h.Uh7}r{(h9]h:]h;]h<]h>]uh/jnh)]r|h^)r}}r~(h.Uh7}r(h9]h:]h;]h<]h>]uh/jyh)]r(j)r}r(h.Xloglevelh7}r(h9]h:]h;]h<]h>]uh/j}h)]rhJXloglevelrr}r(h.Uh/jubah5jubhJX -- rr}r(h.Uh/j}ubhJXInitial log level.rr}r(h.XInitial log level.h/j}ubeh5hcubah5jubeh5jubaubeubeubhV)r}r(h.Uh/h,h0Nh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X(get_task_logger() (in module celery.log)hUtrauh@NhAhh)]ubhn)r}r(h.Uh/h,h0Nh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huXfunctionrhwjuh@NhAhh)]r(hy)r}r(h.X)get_task_logger(loglevel=None, name=None)h/jh0h|h5h}h7}r(h<]rhahh1X celery.logrr}rbh;]h9]h:]h>]rhahXget_task_loggerrhUhuh@NhAhh)]r(h)r}r(h.X celery.log.h/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJX celery.log.rr}r(h.Uh/jubaubh)r}r(h.jh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJXget_task_loggerrr}r(h.Uh/jubaubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]r(h)r}r(h.X loglevel=Noneh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJX loglevel=Nonerr}r(h.Uh/jubah5hubh)r}r(h.X name=Noneh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJX name=Nonerr}r(h.Uh/jubah5hubeubeubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubhV)r}r(h.Uh/h,h0Nh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X3redirect_stdouts_to_logger() (in module celery.log)hUtrauh@NhAhh)]ubhn)r}r(h.Uh/h,h0Nh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huXfunctionrhwjuh@NhAhh)]r(hy)r}r(h.X1redirect_stdouts_to_logger(logger, loglevel=None)h/jh0h|h5h}h7}r(h<]rhahh1X celery.logrr}rbh;]h9]h:]h>]rhahXredirect_stdouts_to_loggerrhUhuh@NhAhh)]r(h)r}r(h.X celery.log.h/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJX celery.log.rr}r(h.Uh/jubaubh)r}r(h.jh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJXredirect_stdouts_to_loggerrr}r(h.Uh/jubaubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]r(h)r}r(h.Xloggerh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXloggerrr}r(h.Uh/jubah5hubh)r}r(h.X loglevel=Noneh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJX loglevel=Nonerr}r(h.Uh/jubah5hubeubeubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]r(h^)r}r(h.XKRedirect :class:`sys.stdout` and :class:`sys.stderr` to a logging instance.h/jh0Xu/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.log.redirect_stdouts_to_loggerrh5hch7}r(h9]h:]h;]h<]h>]uh@KhAhh)]r(hJX Redirect rr}r(h.X Redirect h/jubjX)r}r(h.X:class:`sys.stdout`rh/jh0Nh5j\h7}r(UreftypeXclassj^j_X sys.stdoutU refdomainXpyr h<]h;]U refexplicith9]h:]h>]jajbjcNjdjeuh@Nh)]r jg)r }r (h.jh7}r (h9]h:]r(jlj Xpy-classreh;]h<]h>]uh/jh)]rhJX sys.stdoutrr}r(h.Uh/j ubah5jrubaubhJX and rr}r(h.X and h/jubjX)r}r(h.X:class:`sys.stderr`rh/jh0Nh5j\h7}r(UreftypeXclassj^j_X sys.stderrU refdomainXpyrh<]h;]U refexplicith9]h:]h>]jajbjcNjdjeuh@Nh)]rjg)r}r(h.jh7}r(h9]h:]r (jljXpy-classr!eh;]h<]h>]uh/jh)]r"hJX sys.stderrr#r$}r%(h.Uh/jubah5jrubaubhJX to a logging instance.r&r'}r((h.X to a logging instance.h/jubeubjv)r)}r*(h.Uh/jh0Nh5jyh7}r+(h9]h:]h;]h<]h>]uh@NhAhh)]r,j|)r-}r.(h.Uh7}r/(h9]h:]h;]h<]h>]uh/j)h)]r0(j)r1}r2(h.Uh7}r3(h9]h:]h;]h<]h>]uh/j-h)]r4hJX Parametersr5r6}r7(h.Uh/j1ubah5jubj)r8}r9(h.Uh7}r:(h9]h:]h;]h<]h>]uh/j-h)]r;j)r<}r=(h.Uh7}r>(h9]h:]h;]h<]h>]uh/j8h)]r?(j)r@}rA(h.Uh7}rB(h9]h:]h;]h<]h>]uh/j<h)]rCh^)rD}rE(h.Uh7}rF(h9]h:]h;]h<]h>]uh/j@h)]rG(j)rH}rI(h.Xloggerh7}rJ(h9]h:]h;]h<]h>]uh/jDh)]rKhJXloggerrLrM}rN(h.Uh/jHubah5jubhJX -- rOrP}rQ(h.Uh/jDubhJXThe rRrS}rT(h.XThe h/jDubjX)rU}rV(h.X:class:`logging.Logger`rWh/jDh0Nh5j\h7}rX(UreftypeXclassj^j_Xlogging.LoggerU refdomainXpyrYh<]h;]U refexplicith9]h:]h>]jajbjcNjdjeuh@Nh)]rZjg)r[}r\(h.jWh7}r](h9]h:]r^(jljYXpy-classr_eh;]h<]h>]uh/jUh)]r`hJXlogging.Loggerrarb}rc(h.Uh/j[ubah5jrubaubhJX instance to redirect to.rdre}rf(h.X instance to redirect to.h/jDubeh5hcubah5jubj)rg}rh(h.Uh7}ri(h9]h:]h;]h<]h>]uh/j<h)]rjh^)rk}rl(h.Uh7}rm(h9]h:]h;]h<]h>]uh/jgh)]rn(j)ro}rp(h.Xloglevelh7}rq(h9]h:]h;]h<]h>]uh/jkh)]rrhJXloglevelrsrt}ru(h.Uh/joubah5jubhJX -- rvrw}rx(h.Uh/jkubhJX3The loglevel redirected messages will be logged as.ryrz}r{(h.X3The loglevel redirected messages will be logged as.r|h/jkubeh5hcubah5jubeh5jubah5jubeh5jubaubeubeubhV)r}}r~(h.Uh/h,h0Xg/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.log.setup_loggerrh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r(h\X%setup_logger() (in module celery.log)hUtrauh@NhAhh)]ubhn)r}r(h.Uh/h,h0jh5hqh7}r(hshtXpyh<]h;]h9]h:]h>]huXfunctionrhwjuh@NhAhh)]r(hy)r}r(h.Xsetup_logger(loglevel=30, logfile=None, format='[%(asctime)s: %(levelname)s/%(processName)s] %(message)s', colorize=False, name='celery', root=True, **kwargs)h/jh0h|h5h}h7}r(h<]rhahh1X celery.logrr}rbh;]h9]h:]h>]rhahX setup_loggerrhUhuh@NhAhh)]r(h)r}r(h.X celery.log.h/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJX celery.log.rr}r(h.Uh/jubaubh)r}r(h.jh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJX setup_loggerrr}r(h.Uh/jubaubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]r(h)r}r(h.X loglevel=30h7}r(h9]h:]h;]h<]h>]uh/jh)]rhJX loglevel=30rr}r(h.Uh/jubah5hubh)r}r(h.X logfile=Noneh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJX logfile=Nonerr}r(h.Uh/jubah5hubh)r}r(h.XAformat='[%(asctime)s: %(levelname)s/%(processName)s] %(message)s'h7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXAformat='[%(asctime)s: %(levelname)s/%(processName)s] %(message)s'rr}r(h.Uh/jubah5hubh)r}r(h.Xcolorize=Falseh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXcolorize=Falserr}r(h.Uh/jubah5hubh)r}r(h.X name='celery'h7}r(h9]h:]h;]h<]h>]uh/jh)]rhJX name='celery'rr}r(h.Uh/jubah5hubh)r}r(h.X root=Trueh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJX root=Truerr}r(h.Uh/jubah5hubh)r}r(h.X**kwargsh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJX**kwargsrr}r(h.Uh/jubah5hubeubeubh)r}r(h.Uh/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]r(h^)r}r(h.X_Setup the ``multiprocessing`` logger. If ``logfile`` is not specified, then ``stderr`` is used.h/jh0jh5hch7}r(h9]h:]h;]h<]h>]uh@KhAhh)]r(hJX Setup the rr}r(h.X Setup the h/jubjg)r}r(h.X``multiprocessing``h7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXmultiprocessingrr}r(h.Uh/jubah5jrubhJX logger. If rr}r(h.X logger. If h/jubjg)r}r(h.X ``logfile``h7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXlogfilerr}r(h.Uh/jubah5jrubhJX is not specified, then rr}r(h.X is not specified, then h/jubjg)r}r(h.X ``stderr``h7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXstderrrr}r(h.Uh/jubah5jrubhJX is used.rr}r(h.X is used.h/jubeubh^)r}r(h.XReturns logger object.rh/jh0jh5hch7}r(h9]h:]h;]h<]h>]uh@KhAhh)]rhJXReturns logger object.rr}r(h.jh/jubaubeubeubhV)r}r(h.Uh/h,h0Nh5hYh7}r(h<]h;]h9]h:]h>]Uentries]r (h\X0setup_logging_subsystem() (in module celery.log)hUtr auh@NhAhh)]ubhn)r }r (h.Uh/h,h0Nh5hqh7}r (hshtXpyh<]h;]h9]h:]h>]huXfunctionrhwjuh@NhAhh)]r(hy)r}r(h.Xsetup_logging_subsystem(loglevel=30, logfile=None, format='[%(asctime)s: %(levelname)s/%(processName)s] %(message)s', colorize=False, **kwargs)h/j h0h|h5h}h7}r(h<]rhahh1X celery.logrr}rbh;]h9]h:]h>]rhahXsetup_logging_subsystemrhUhuh@NhAhh)]r(h)r}r(h.X celery.log.h/jh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]rhJX celery.log.rr}r (h.Uh/jubaubh)r!}r"(h.jh/jh0h|h5hh7}r#(h9]h:]h;]h<]h>]uh@NhAhh)]r$hJXsetup_logging_subsystemr%r&}r'(h.Uh/j!ubaubh)r(}r)(h.Uh/jh0h|h5hh7}r*(h9]h:]h;]h<]h>]uh@NhAhh)]r+(h)r,}r-(h.X loglevel=30h7}r.(h9]h:]h;]h<]h>]uh/j(h)]r/hJX loglevel=30r0r1}r2(h.Uh/j,ubah5hubh)r3}r4(h.X logfile=Noneh7}r5(h9]h:]h;]h<]h>]uh/j(h)]r6hJX logfile=Noner7r8}r9(h.Uh/j3ubah5hubh)r:}r;(h.XAformat='[%(asctime)s: %(levelname)s/%(processName)s] %(message)s'h7}r<(h9]h:]h;]h<]h>]uh/j(h)]r=hJXAformat='[%(asctime)s: %(levelname)s/%(processName)s] %(message)s'r>r?}r@(h.Uh/j:ubah5hubh)rA}rB(h.Xcolorize=Falseh7}rC(h9]h:]h;]h<]h>]uh/j(h)]rDhJXcolorize=FalserErF}rG(h.Uh/jAubah5hubh)rH}rI(h.X**kwargsh7}rJ(h9]h:]h;]h<]h>]uh/j(h)]rKhJX**kwargsrLrM}rN(h.Uh/jHubah5hubeubeubh)rO}rP(h.Uh/j h0h|h5hh7}rQ(h9]h:]h;]h<]h>]uh@NhAhh)]ubeubhV)rR}rS(h.Uh/h,h0Xl/var/build/user_builds/celery/checkouts/2.1-archived/celery/log.py:docstring of celery.log.setup_task_loggerrTh5hYh7}rU(h<]h;]h9]h:]h>]Uentries]rV(h\X*setup_task_logger() (in module celery.log)hUtrWauh@NhAhh)]ubhn)rX}rY(h.Uh/h,h0jTh5hqh7}rZ(hshtXpyh<]h;]h9]h:]h>]huXfunctionr[hwj[uh@NhAhh)]r\(hy)r]}r^(h.Xsetup_task_logger(loglevel=30, logfile=None, format='[%(asctime)s: %(levelname)s/%(processName)s] [%(task_name)s(%(task_id)s)] %(message)s', colorize=False, task_kwargs=None, propagate=False, **kwargs)h/jXh0h|h5h}h7}r_(h<]r`hahh1X celery.lograrb}rcbh;]h9]h:]h>]rdhahXsetup_task_loggerrehUhuh@NhAhh)]rf(h)rg}rh(h.X celery.log.h/j]h0h|h5hh7}ri(h9]h:]h;]h<]h>]uh@NhAhh)]rjhJX celery.log.rkrl}rm(h.Uh/jgubaubh)rn}ro(h.jeh/j]h0h|h5hh7}rp(h9]h:]h;]h<]h>]uh@NhAhh)]rqhJXsetup_task_loggerrrrs}rt(h.Uh/jnubaubh)ru}rv(h.Uh/j]h0h|h5hh7}rw(h9]h:]h;]h<]h>]uh@NhAhh)]rx(h)ry}rz(h.X loglevel=30h7}r{(h9]h:]h;]h<]h>]uh/juh)]r|hJX loglevel=30r}r~}r(h.Uh/jyubah5hubh)r}r(h.X logfile=Noneh7}r(h9]h:]h;]h<]h>]uh/juh)]rhJX logfile=Nonerr}r(h.Uh/jubah5hubh)r}r(h.X^format='[%(asctime)s: %(levelname)s/%(processName)s] [%(task_name)s(%(task_id)s)] %(message)s'h7}r(h9]h:]h;]h<]h>]uh/juh)]rhJX^format='[%(asctime)s: %(levelname)s/%(processName)s] [%(task_name)s(%(task_id)s)] %(message)s'rr}r(h.Uh/jubah5hubh)r}r(h.Xcolorize=Falseh7}r(h9]h:]h;]h<]h>]uh/juh)]rhJXcolorize=Falserr}r(h.Uh/jubah5hubh)r}r(h.Xtask_kwargs=Noneh7}r(h9]h:]h;]h<]h>]uh/juh)]rhJXtask_kwargs=Nonerr}r(h.Uh/jubah5hubh)r}r(h.Xpropagate=Falseh7}r(h9]h:]h;]h<]h>]uh/juh)]rhJXpropagate=Falserr}r(h.Uh/jubah5hubh)r}r(h.X**kwargsh7}r(h9]h:]h;]h<]h>]uh/juh)]rhJX**kwargsrr}r(h.Uh/jubah5hubeubeubh)r}r(h.Uh/jXh0h|h5hh7}r(h9]h:]h;]h<]h>]uh@NhAhh)]r(h^)r}r(h.XPSetup the task logger. If ``logfile`` is not specified, then ``stderr`` is used.h/jh0jTh5hch7}r(h9]h:]h;]h<]h>]uh@KhAhh)]r(hJXSetup the task logger. If rr}r(h.XSetup the task logger. If h/jubjg)r}r(h.X ``logfile``h7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXlogfilerr}r(h.Uh/jubah5jrubhJX is not specified, then rr}r(h.X is not specified, then h/jubjg)r}r(h.X ``stderr``h7}r(h9]h:]h;]h<]h>]uh/jh)]rhJXstderrrr}r(h.Uh/jubah5jrubhJX is used.rr}r(h.X is used.h/jubeubh^)r}r(h.XReturns logger object.rh/jh0jTh5hch7}r(h9]h:]h;]h<]h>]uh@KhAhh)]rhJXReturns logger object.rr}r(h.jh/jubaubeubeubeubah.UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhAhU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h.Uh7}r(h9]UlevelKh<]h;]UsourcehQh:]h>]UlineKUtypeUINFOruh)]rh^)r}r(h.Uh7}r(h9]h:]h;]h<]h>]uh/jh)]rhJX7Hyperlink target "module-celery.log" is not referenced.rr}r(h.Uh/jubah5hcubah5Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelr KU strip_classesr NhGNUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkr NUrfc_referencesr!NUoutput_encodingr"Uutf-8r#U source_urlr$NUinput_encodingr%U utf-8-sigr&U_disable_configr'NU id_prefixr(UU tab_widthr)KUerror_encodingr*UUTF-8r+U_sourcer,U\/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.log.rstr-Ugettext_compactr.U generatorr/NUdump_internalsr0NU smart_quotesr1U pep_base_urlr2Uhttp://www.python.org/dev/peps/r3Usyntax_highlightr4Ulongr5Uinput_encoding_error_handlerr6jUauto_id_prefixr7Uidr8Udoctitle_xformr9Ustrip_elements_with_classesr:NU _config_filesr;]Ufile_insertion_enabledr<U raw_enabledr=KU dump_settingsr>NubUsymbol_footnote_startr?KUidsr@}rA(hjhjShjh jh jh j0h hzh hhj*h'cdocutils.nodes topic rB)rC}rD(h.Uh/h,h0h3h5UtopicrEh7}rF(h9]h:]rG(UcontentsrHUlocalrIeh;]h<]rJh'ah>]rKhauh@KhAhh)]rLcdocutils.nodes pending rM)rN}rO(h.X.. contents:: :local:h/jCU transformrPcdocutils.transforms.parts Contents rQUdetailsrR}rSUlocalNsh5UpendingrTh7}rU(h9]h:]h;]h<]h>]uh)]ubaubhj3hjhjhjhjhjhj]hhhjQhjhjhj hUhOh(h,hjuUsubstitution_namesrV}rWh5hAh7}rX(h9]h<]h;]Usourceh3h:]h>]uU footnotesrY]rZUrefidsr[}r\ub.PKYDD$99Scelery-2.1-archived/.doctrees/internals/reference/celery.backends.cassandra.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X*celery.backends.cassandra.CassandraBackendqX2celery.backends.cassandra.CassandraBackend.serversqX8celery.backends.cassandra.CassandraBackend.column_familyqX:celery.backends.cassandra.CassandraBackend.process_cleanupq X,celery.backends.cassandra.CassandraBackend.iq X3celery.backends.cassandra.CassandraBackend.keyspaceq X.backend: cassandra - celery.backends.cassandraq NX2celery.backends.cassandra.CassandraBackend.cleanupq UcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h U+backend-cassandra-celery-backends-cassandraqh h hUcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentq hUsourceq!cdocutils.nodes reprunicode q"Xk/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.cassandra.rstq#q$}q%bUtagnameq&Usectionq'U attributesq(}q)(Udupnamesq*]Uclassesq+]Ubackrefsq,]Uidsq-]q.haUnamesq/]q0h auUlineq1KUdocumentq2hh]q3(cdocutils.nodes title q4)q5}q6(hX.Backend: Cassandra - celery.backends.cassandraq7h hh!h$h&Utitleq8h(}q9(h*]h+]h,]h-]h/]uh1Kh2hh]q:cdocutils.nodes Text q;X.Backend: Cassandra - celery.backends.cassandraq(hh7h h5ubaubcdocutils.nodes target q?)q@}qA(hUh hh!U qBh&UtargetqCh(}qD(h*]h-]qEX module-celery.backends.cassandraqFah,]Uismodh+]h/]uh1Kh2hh]ubcsphinx.addnodes index qG)qH}qI(hUh hh!hBh&UindexqJh(}qK(h-]h,]h*]h+]h/]Uentries]qL(UsingleqMX"celery.backends.cassandra (module)X module-celery.backends.cassandraUtqNauh1Kh2hh]ubcdocutils.nodes paragraph qO)qP}qQ(hXcelery.backends.cassandraqRh hh!Xx/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/cassandra.py:docstring of celery.backends.cassandraqSh&U paragraphqTh(}qU(h*]h+]h,]h-]h/]uh1Kh2hh]qVh;Xcelery.backends.cassandraqWqX}qY(hhRh hPubaubhG)qZ}q[(hUh hh!Nh&hJh(}q\(h-]h,]h*]h+]h/]Uentries]q](hMX5CassandraBackend (class in celery.backends.cassandra)hUtq^auh1Nh2hh]ubcsphinx.addnodes desc q_)q`}qa(hUh hh!Nh&Udescqbh(}qc(UnoindexqdUdomainqeXpyqfh-]h,]h*]h+]h/]UobjtypeqgXclassqhUdesctypeqihhuh1Nh2hh]qj(csphinx.addnodes desc_signature qk)ql}qm(hXcCassandraBackend(servers=None, keyspace=None, column_family=None, cassandra_options=None, **kwargs)h h`h!U qnh&Udesc_signatureqoh(}qp(h-]qqhaUmoduleqrh"Xcelery.backends.cassandraqsqt}qubh,]h*]h+]h/]qvhaUfullnameqwXCassandraBackendqxUclassqyUUfirstqzuh1Nh2hh]q{(csphinx.addnodes desc_annotation q|)q}}q~(hXclass h hlh!hnh&Udesc_annotationqh(}q(h*]h+]h,]h-]h/]uh1Nh2hh]qh;Xclass qq}q(hUh h}ubaubcsphinx.addnodes desc_addname q)q}q(hXcelery.backends.cassandra.h hlh!hnh&U desc_addnameqh(}q(h*]h+]h,]h-]h/]uh1Nh2hh]qh;Xcelery.backends.cassandra.qq}q(hUh hubaubcsphinx.addnodes desc_name q)q}q(hhxh hlh!hnh&U desc_nameqh(}q(h*]h+]h,]h-]h/]uh1Nh2hh]qh;XCassandraBackendqq}q(hUh hubaubcsphinx.addnodes desc_parameterlist q)q}q(hUh hlh!hnh&Udesc_parameterlistqh(}q(h*]h+]h,]h-]h/]uh1Nh2hh]q(csphinx.addnodes desc_parameter q)q}q(hX servers=Noneh(}q(h*]h+]h,]h-]h/]uh hh]qh;X servers=Noneqq}q(hUh hubah&Udesc_parameterqubh)q}q(hX keyspace=Noneh(}q(h*]h+]h,]h-]h/]uh hh]qh;X keyspace=Noneqq}q(hUh hubah&hubh)q}q(hXcolumn_family=Noneh(}q(h*]h+]h,]h-]h/]uh hh]qh;Xcolumn_family=Noneqq}q(hUh hubah&hubh)q}q(hXcassandra_options=Noneh(}q(h*]h+]h,]h-]h/]uh hh]qh;Xcassandra_options=Noneqq}q(hUh hubah&hubh)q}q(hX**kwargsh(}q(h*]h+]h,]h-]h/]uh hh]qh;X**kwargsqq}q(hUh hubah&hubeubeubcsphinx.addnodes desc_content q)q}q(hUh h`h!hnh&U desc_contentqh(}q(h*]h+]h,]h-]h/]uh1Nh2hh]q(hO)q}q(hX(Highly fault tolerant Cassandra backend.qh hh!X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/cassandra.py:docstring of celery.backends.cassandra.CassandraBackendqh&hTh(}q(h*]h+]h,]h-]h/]uh1Kh2hh]qh;X(Highly fault tolerant Cassandra backend.q΅q}q(hhh hubaubhG)q}q(hUh hh!hh&hJh(}q(h-]h,]h*]h+]h/]Uentries]q(hMX>servers (celery.backends.cassandra.CassandraBackend attribute)hUtqauh1Nh2hh]ubh_)q}q(hUh hh!hh&hbh(}q(hdheXpyh-]h,]h*]h+]h/]hgX attributeqhihuh1Nh2hh]q(hk)q}q(hXserversqh hh!hh&hoh(}q(h-]qhahrXcelery.backends.cassandraqh,]h*]h+]h/]qhahwXCassandraBackend.servershyhxhzuh1Kh2hh]qh)q}q(hhh hh!hh&hh(}q(h*]h+]h,]h-]h/]uh1Kh2hh]qh;Xserversq煁q}q(hUh hubaubaubh)q}q(hUh hh!hh&hh(}q(h*]h+]h,]h-]h/]uh1Kh2hh]qhO)q}q(hX7List of Cassandra servers with format: "hostname:port".qh hh!hh&hTh(}q(h*]h+]h,]h-]h/]uh1Kh2hh]qh;X7List of Cassandra servers with format: "hostname:port".qq}q(hhh hubaubaubeubcdocutils.nodes field_list q)q}q(hUh hh!Nh&U field_listqh(}q(h*]h+]h,]h-]h/]uh1Nh2hh]qcdocutils.nodes field q)q}q(hUh(}q(h*]h+]h,]h-]h/]uh hh]r(cdocutils.nodes field_name r)r}r(hUh(}r(h*]h+]h,]h-]h/]uh hh]r(h;XRaisesrr}r(hUh jubh;X r }r (hUh jubcsphinx.addnodes pending_xref r )r }r (hUh(}r(UreftypeUexcrU reftargetX&celery.exceptions.ImproperlyConfiguredrU refdomainhfh-]h,]U refexplicith*]h+]h/]uh jh]rh;X&celery.exceptions.ImproperlyConfiguredrr}r(hjh j ubah&U pending_xrefrubeh&U field_namerubcdocutils.nodes field_body r)r}r(hUh(}r(h*]h+]h,]h-]h/]uh hh]rhO)r}r(hUh(}r(h*]h+]h,]h-]h/]uh jh]r(h;X if module r r!}r"(hX if module h jubj )r#}r$(hX:mod:`pycassa`r%h jh!Nh&jh(}r&(UreftypeXmodUrefwarnr'U reftargetr(XpycassaU refdomainXpyr)h-]h,]U refexplicith*]h+]h/]Urefdocr*X-internals/reference/celery.backends.cassandrar+Upy:classr,hxU py:moduler-huh1Nh]r.cdocutils.nodes literal r/)r0}r1(hj%h(}r2(h*]h+]r3(Uxrefr4j)Xpy-modr5eh,]h-]h/]uh j#h]r6h;Xpycassar7r8}r9(hUh j0ubah&Uliteralr:ubaubh;X is not available.r;r<}r=(hX is not available.h jubeh&hTubah&U field_bodyr>ubeh&Ufieldr?ubaubhG)r@}rA(hUh hh!X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/cassandra.py:docstring of celery.backends.cassandra.CassandraBackend.cleanuprBh&hJh(}rC(h-]h,]h*]h+]h/]Uentries]rD(hMX=cleanup() (celery.backends.cassandra.CassandraBackend method)h UtrEauh1Nh2hh]ubh_)rF}rG(hUh hh!jBh&hbh(}rH(hdheXpyh-]h,]h*]h+]h/]hgXmethodrIhijIuh1Nh2hh]rJ(hk)rK}rL(hXCassandraBackend.cleanup()h jFh!hnh&hoh(}rM(h-]rNh ahrh"Xcelery.backends.cassandrarOrP}rQbh,]h*]h+]h/]rRh ahwXCassandraBackend.cleanuphyhxhzuh1Nh2hh]rS(h)rT}rU(hXcleanuph jKh!hnh&hh(}rV(h*]h+]h,]h-]h/]uh1Nh2hh]rWh;XcleanuprXrY}rZ(hUh jTubaubh)r[}r\(hUh jKh!hnh&hh(}r](h*]h+]h,]h-]h/]uh1Nh2hh]ubeubh)r^}r_(hUh jFh!hnh&hh(}r`(h*]h+]h,]h-]h/]uh1Nh2hh]rahO)rb}rc(hXDelete expired metadata.rdh j^h!jBh&hTh(}re(h*]h+]h,]h-]h/]uh1Kh2hh]rfh;XDelete expired metadata.rgrh}ri(hjdh jbubaubaubeubhG)rj}rk(hUh hh!Nh&hJh(}rl(h-]h,]h*]h+]h/]Uentries]rm(hMXDcolumn_family (celery.backends.cassandra.CassandraBackend attribute)hUtrnauh1Nh2hh]ubh_)ro}rp(hUh hh!Nh&hbh(}rq(hdheXpyh-]h,]h*]h+]h/]hgX attributerrhijruh1Nh2hh]rs(hk)rt}ru(hXCassandraBackend.column_familyh joh!U rvh&hoh(}rw(h-]rxhahrh"Xcelery.backends.cassandraryrz}r{bh,]h*]h+]h/]r|hahwXCassandraBackend.column_familyhyhxhzuh1Nh2hh]r}(h)r~}r(hX column_familyh jth!jvh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]rh;X column_familyrr}r(hUh j~ubaubh|)r}r(hX = Noneh jth!jvh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]rh;X = Nonerr}r(hUh jubaubeubh)r}r(hUh joh!jvh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]ubeubhG)r}r(hUh hh!Nh&hJh(}r(h-]h,]h*]h+]h/]Uentries]r(hMX8i (celery.backends.cassandra.CassandraBackend attribute)h Utrauh1Nh2hh]ubh_)r}r(hUh hh!Nh&hbh(}r(hdheXpyh-]h,]h*]h+]h/]hgX attributerhijuh1Nh2hh]r(hk)r}r(hXCassandraBackend.ih jh!jvh&hoh(}r(h-]rh ahrh"Xcelery.backends.cassandrarr}rbh,]h*]h+]h/]rh ahwXCassandraBackend.ihyhxhzuh1Nh2hh]r(h)r}r(hXih jh!jvh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]rh;Xir}r(hUh jubaubh|)r}r(hX = 63h jh!jvh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]rh;X = 63rr}r(hUh jubaubeubh)r}r(hUh jh!jvh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]ubeubhG)r}r(hUh hh!Nh&hJh(}r(h-]h,]h*]h+]h/]Uentries]r(hMX?keyspace (celery.backends.cassandra.CassandraBackend attribute)h Utrauh1Nh2hh]ubh_)r}r(hUh hh!Nh&hbh(}r(hdheXpyh-]h,]h*]h+]h/]hgX attributerhijuh1Nh2hh]r(hk)r}r(hXCassandraBackend.keyspaceh jh!jvh&hoh(}r(h-]rh ahrh"Xcelery.backends.cassandrarr}rbh,]h*]h+]h/]rh ahwXCassandraBackend.keyspacehyhxhzuh1Nh2hh]r(h)r}r(hXkeyspaceh jh!jvh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]rh;Xkeyspacerr}r(hUh jubaubh|)r}r(hX = Noneh jh!jvh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]rh;X = Nonerr}r(hUh jubaubeubh)r}r(hUh jh!jvh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]ubeubhG)r}r(hUh hh!Nh&hJh(}r(h-]h,]h*]h+]h/]Uentries]r(hMXEprocess_cleanup() (celery.backends.cassandra.CassandraBackend method)h Utrauh1Nh2hh]ubh_)r}r(hUh hh!Nh&hbh(}r(hdheXpyh-]h,]h*]h+]h/]hgXmethodrhijuh1Nh2hh]r(hk)r}r(hX"CassandraBackend.process_cleanup()h jh!hnh&hoh(}r(h-]rh ahrh"Xcelery.backends.cassandrarr}rbh,]h*]h+]h/]rh ahwX CassandraBackend.process_cleanuphyhxhzuh1Nh2hh]r(h)r}r(hXprocess_cleanuph jh!hnh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]rh;Xprocess_cleanuprr}r(hUh jubaubh)r}r(hUh jh!hnh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]ubeubh)r}r(hUh jh!hnh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]ubeubhG)r}r(hUh hh!Nh&hJh(}r(h-]h,]h*]h+]h/]Uentries]r(hMX>servers (celery.backends.cassandra.CassandraBackend attribute)X2celery.backends.cassandra.CassandraBackend.serversUtrauh1Nh2hh]ubh_)r}r(hUh hh!Nh&hbh(}r(hdheXpyh-]h,]h*]h+]h/]hgX attributerhijuh1Nh2hh]r(hk)r}r(hXCassandraBackend.serversrh jh!jvh&hoh(}r(h-]hrh"Xcelery.backends.cassandrarr}rbh,]h*]h+]h/]hwXCassandraBackend.servershyhxhzuh1Nh2hh]r(h)r}r (hXserversh jh!jvh&hh(}r (h*]h+]h,]h-]h/]uh1Nh2hh]r h;Xserversr r }r(hUh jubaubh|)r}r(hX = []h jh!jvh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]rh;X = []rr}r(hUh jubaubeubh)r}r(hUh jh!jvh&hh(}r(h*]h+]h,]h-]h/]uh1Nh2hh]ubeubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr ]r!Usymbol_footnote_refsr"]r#U citationsr$]r%h2hU current_liner&NUtransform_messagesr']r(cdocutils.nodes system_message r))r*}r+(hUh(}r,(h*]UlevelKh-]h,]UsourcehBh+]h/]UlineKUtypeUINFOr-uh]r.hO)r/}r0(hUh(}r1(h*]h+]h,]h-]h/]uh j*h]r2h;XFHyperlink target "module-celery.backends.cassandra" is not referenced.r3r4}r5(hUh j/ubah&hTubah&Usystem_messager6ubaUreporterr7NUid_startr8KU autofootnotesr9]r:U citation_refsr;}r<Uindirect_targetsr=]r>Usettingsr?(cdocutils.frontend Values r@orA}rB(Ufootnote_backlinksrCKUrecord_dependenciesrDNU rfc_base_urlrEUhttp://tools.ietf.org/html/rFU tracebackrGUpep_referencesrHNUstrip_commentsrINU toc_backlinksrJUentryrKU language_coderLUenrMU datestamprNNU report_levelrOKU _destinationrPNU halt_levelrQKU strip_classesrRNh8NUerror_encoding_error_handlerrSUbackslashreplacerTUdebugrUNUembed_stylesheetrVUoutput_encoding_error_handlerrWUstrictrXU sectnum_xformrYKUdump_transformsrZNU docinfo_xformr[KUwarning_streamr\NUpep_file_url_templater]Upep-%04dr^Uexit_status_levelr_KUconfigr`NUstrict_visitorraNUcloak_email_addressesrbUtrim_footnote_reference_spacercUenvrdNUdump_pseudo_xmlreNUexpose_internalsrfNUsectsubtitle_xformrgU source_linkrhNUrfc_referencesriNUoutput_encodingrjUutf-8rkU source_urlrlNUinput_encodingrmU utf-8-sigrnU_disable_configroNU id_prefixrpUU tab_widthrqKUerror_encodingrrUUTF-8rsU_sourcertUk/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.cassandra.rstruUgettext_compactrvU generatorrwNUdump_internalsrxNU smart_quotesryU pep_base_urlrzUhttp://www.python.org/dev/peps/r{Usyntax_highlightr|Ulongr}Uinput_encoding_error_handlerr~jXUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhlhhhjth jhFh@h jh jhhh jKhcdocutils.nodes topic r)r}r(hUh hh!h$h&Utopicrh(}r(h*]h+]r(UcontentsrUlocalreh,]h-]rhah/]rhauh1Kh2hh]rcdocutils.nodes pending r)r}r(hX.. contents:: :local:h jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh&Upendingrh(}r(h*]h+]h,]h-]h/]uh]ubaubuUsubstitution_namesr}rh&h2h(}r(h*]h-]h,]Usourceh$h+]h/]uU footnotesr]rUrefidsr}rub.PKYDDBBEcelery-2.1-archived/.doctrees/internals/reference/celery.beat.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery.beat.ScheduleEntry.argsqX"celery.beat.Scheduler.get_scheduleqXcelery.beat.ScheduleEntry.nameqX$celery.beat.PersistentScheduler.infoq Xcelery.beat.Scheduler.infoq Xcelery.beat.Scheduler.scheduleq Xcelery.beat.EmbeddedServiceq Xcelery.beat.Service.schedulerq Xcelery.beat.Scheduler.EntryqX!celery.beat.Scheduler.apply_asyncqX$celery.beat.Scheduler.setup_scheduleqX!celery.beat.Service.scheduler_clsqXcelery.beat.PersistentSchedulerqX celery.beat.ScheduleEntry.is_dueqX.celery.beat.PersistentScheduler.setup_scheduleqXcelery.beat.ScheduleEntry.nextqXcelery.beat.Service.stopqX&celery.beat.Scheduler.update_from_dictqXcelery.beat.Scheduler.addqXcelery.beat.Scheduler.syncqXcelery.beat.Scheduler.maybe_dueqXcelery.beat.Scheduler.closeqXcelery.beat.Scheduler.reserveqXcelery.beat.Service.startqXcelery.beat.Scheduler.send_taskqX$celery.beat.PersistentScheduler.syncqX celery.beat.ScheduleEntry.updateq Ucontentsq!NXcelery.beat.Scheduler.tickq"X+celery.beat.PersistentScheduler.persistenceq#X"celery.beat.Scheduler.max_intervalq$Xcelery.beat.Schedulerq%Xcelery.beat.ScheduleEntryq&Xcelery.beat.Scheduler.loggerq'Xcelery.beat.Service.syncq(Xcelery.beat.Scheduler.Publisherq)X celery.beat.ScheduleEntry.kwargsq*X%celery.beat.PersistentScheduler.closeq+X)celery.beat.ScheduleEntry.total_run_countq,X!celery.beat.Service.get_schedulerq-X#celery.beat.Scheduler.merge_inplaceq.Xcelery.beat.Serviceq/Xclock service - celery.beatq0NX%celery.beat.ScheduleEntry.last_run_atq1Xcelery.beat.SchedulingErrorq2X"celery.beat.ScheduleEntry.scheduleq3uUsubstitution_defsq4}q5Uparse_messagesq6]q7Ucurrent_sourceq8NU decorationq9NUautofootnote_startq:KUnameidsq;}q<(hhhhhhh h h h h h h h h h hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh h h!Ucontentsq=h"h"h#h#h$h$h%h%h&h&h'h'h(h(h)h)h*h*h+h+h,h,h-h-h.h.h/h/h0Uclock-service-celery-beatq>h1h1h2h2h3h3uUchildrenq?]q@cdocutils.nodes section qA)qB}qC(U rawsourceqDUUparentqEhUsourceqFcdocutils.nodes reprunicode qGX]/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.beat.rstqHqI}qJbUtagnameqKUsectionqLU attributesqM}qN(UdupnamesqO]UclassesqP]UbackrefsqQ]UidsqR]qSh>aUnamesqT]qUh0auUlineqVKUdocumentqWhh?]qX(cdocutils.nodes title qY)qZ}q[(hDXClock Service - celery.beatq\hEhBhFhIhKUtitleq]hM}q^(hO]hP]hQ]hR]hT]uhVKhWhh?]q_cdocutils.nodes Text q`XClock Service - celery.beatqaqb}qc(hDh\hEhZubaubcdocutils.nodes target qd)qe}qf(hDUhEhBhFU qghKUtargetqhhM}qi(hO]hR]qjXmodule-celery.beatqkahQ]UismodhP]hT]uhVKhWhh?]ubcsphinx.addnodes index ql)qm}qn(hDUhEhBhFhghKUindexqohM}qp(hR]hQ]hO]hP]hT]Uentries]qq(UsingleqrXcelery.beat (module)Xmodule-celery.beatUtqsauhVKhWhh?]ubcdocutils.nodes paragraph qt)qu}qv(hDXPeriodic Task SchedulerqwhEhBhFX\/var/build/user_builds/celery/checkouts/2.1-archived/celery/beat.py:docstring of celery.beatqxhKU paragraphqyhM}qz(hO]hP]hQ]hR]hT]uhVKhWhh?]q{h`XPeriodic Task Schedulerq|q}}q~(hDhwhEhuubaubhl)q}q(hDUhEhBhFNhKhohM}q(hR]hQ]hO]hP]hT]Uentries]q(hrX)EmbeddedService() (in module celery.beat)h UtqauhVNhWhh?]ubcsphinx.addnodes desc q)q}q(hDUhEhBhFNhKUdescqhM}q(UnoindexqUdomainqXpyhR]hQ]hO]hP]hT]UobjtypeqXfunctionqUdesctypeqhuhVNhWhh?]q(csphinx.addnodes desc_signature q)q}q(hDX EmbeddedService(*args, **kwargs)hEhhFU qhKUdesc_signatureqhM}q(hR]qh aUmoduleqhGX celery.beatqq}qbhQ]hO]hP]hT]qh aUfullnameqXEmbeddedServiceqUclassqUUfirstquhVNhWhh?]q(csphinx.addnodes desc_addname q)q}q(hDX celery.beat.hEhhFhhKU desc_addnameqhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]qh`X celery.beat.qq}q(hDUhEhubaubcsphinx.addnodes desc_name q)q}q(hDhhEhhFhhKU desc_nameqhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]qh`XEmbeddedServiceqq}q(hDUhEhubaubcsphinx.addnodes desc_parameterlist q)q}q(hDUhEhhFhhKUdesc_parameterlistqhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]q(csphinx.addnodes desc_parameter q)q}q(hDX*argshM}q(hO]hP]hQ]hR]hT]uhEhh?]qh`X*argsqq}q(hDUhEhubahKUdesc_parameterqubh)q}q(hDX**kwargshM}q(hO]hP]hQ]hR]hT]uhEhh?]qh`X**kwargsqŅq}q(hDUhEhubahKhubeubeubcsphinx.addnodes desc_content q)q}q(hDUhEhhFhhKU desc_contentqhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]q(ht)q}q(hDXReturn embedded clock service.qhEhhFXl/var/build/user_builds/celery/checkouts/2.1-archived/celery/beat.py:docstring of celery.beat.EmbeddedServiceqhKhyhM}q(hO]hP]hQ]hR]hT]uhVKhWhh?]qh`XReturn embedded clock service.qԅq}q(hDhhEhubaubcdocutils.nodes field_list q)q}q(hDUhEhhFNhKU field_listqhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]qcdocutils.nodes field q)q}q(hDUhM}q(hO]hP]hQ]hR]hT]uhEhh?]q(cdocutils.nodes field_name q)q}q(hDUhM}q(hO]hP]hQ]hR]hT]uhEhh?]qh`X Parametersq煁q}q(hDUhEhubahKU field_namequbcdocutils.nodes field_body q)q}q(hDUhM}q(hO]hP]hQ]hR]hT]uhEhh?]qht)q}q(hDUhM}q(hO]hP]hQ]hR]hT]uhEhh?]q(cdocutils.nodes strong q)q}q(hDXthreadhM}q(hO]hP]hQ]hR]hT]uhEhh?]qh`Xthreadqq}q(hDUhEhubahKUstrongqubh`X -- qq}q(hDUhEhubh`X:Run threaded instead of as a separate process. Default is rr}r(hDX:Run threaded instead of as a separate process. Default is hEhubcdocutils.nodes literal r)r}r(hDX ``False``hM}r(hO]hP]hQ]hR]hT]uhEhh?]rh`XFalserr }r (hDUhEjubahKUliteralr ubh`X.r }r (hDX.hEhubehKhyubahKU field_bodyrubehKUfieldrubaubeubeubhl)r}r(hDUhEhBhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX*PersistentScheduler (class in celery.beat)hUtrauhVNhWhh?]ubh)r}r(hDUhEhBhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXclassrhjuhVNhWhh?]r(h)r}r(hDX$PersistentScheduler(*args, **kwargs)hEjhFhhKhhM}r(hR]rhahhGX celery.beatrr}r bhQ]hO]hP]hT]r!hahXPersistentSchedulerr"hUhuhVNhWhh?]r#(csphinx.addnodes desc_annotation r$)r%}r&(hDXclass hEjhFhhKUdesc_annotationr'hM}r((hO]hP]hQ]hR]hT]uhVNhWhh?]r)h`Xclass r*r+}r,(hDUhEj%ubaubh)r-}r.(hDX celery.beat.hEjhFhhKhhM}r/(hO]hP]hQ]hR]hT]uhVNhWhh?]r0h`X celery.beat.r1r2}r3(hDUhEj-ubaubh)r4}r5(hDj"hEjhFhhKhhM}r6(hO]hP]hQ]hR]hT]uhVNhWhh?]r7h`XPersistentSchedulerr8r9}r:(hDUhEj4ubaubh)r;}r<(hDUhEjhFhhKhhM}r=(hO]hP]hQ]hR]hT]uhVNhWhh?]r>(h)r?}r@(hDX*argshM}rA(hO]hP]hQ]hR]hT]uhEj;h?]rBh`X*argsrCrD}rE(hDUhEj?ubahKhubh)rF}rG(hDX**kwargshM}rH(hO]hP]hQ]hR]hT]uhEj;h?]rIh`X**kwargsrJrK}rL(hDUhEjFubahKhubeubeubh)rM}rN(hDUhEjhFhhKhhM}rO(hO]hP]hQ]hR]hT]uhVNhWhh?]rP(hl)rQ}rR(hDUhEjMhFNhKhohM}rS(hR]hQ]hO]hP]hT]Uentries]rT(hrX0close() (celery.beat.PersistentScheduler method)h+UtrUauhVNhWhh?]ubh)rV}rW(hDUhEjMhFNhKhhM}rX(hhXpyhR]hQ]hO]hP]hT]hXmethodrYhjYuhVNhWhh?]rZ(h)r[}r\(hDXPersistentScheduler.close()hEjVhFhhKhhM}r](hR]r^h+ahhGX celery.beatr_r`}rabhQ]hO]hP]hT]rbh+ahXPersistentScheduler.closehj"huhVNhWhh?]rc(h)rd}re(hDXclosehEj[hFhhKhhM}rf(hO]hP]hQ]hR]hT]uhVNhWhh?]rgh`Xcloserhri}rj(hDUhEjdubaubh)rk}rl(hDUhEj[hFhhKhhM}rm(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)rn}ro(hDUhEjVhFhhKhhM}rp(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)rq}rr(hDUhEjMhFNhKhohM}rs(hR]hQ]hO]hP]hT]Uentries]rt(hrX0info (celery.beat.PersistentScheduler attribute)h UtruauhVNhWhh?]ubh)rv}rw(hDUhEjMhFNhKhhM}rx(hhXpyhR]hQ]hO]hP]hT]hX attributeryhjyuhVNhWhh?]rz(h)r{}r|(hDXPersistentScheduler.infohEjvhFhhKhhM}r}(hR]r~h ahhGX celery.beatrr}rbhQ]hO]hP]hT]rh ahXPersistentScheduler.infohj"huhVNhWhh?]rh)r}r(hDXinfohEj{hFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xinforr}r(hDUhEjubaubaubh)r}r(hDUhEjvhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEjMhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX7persistence (celery.beat.PersistentScheduler attribute)h#UtrauhVNhWhh?]ubh)r}r(hDUhEjMhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hX attributerhjuhVNhWhh?]r(h)r}r(hDXPersistentScheduler.persistencehEjhFU rhKhhM}r(hR]rh#ahhGX celery.beatrr}rbhQ]hO]hP]hT]rh#ahXPersistentScheduler.persistencehj"huhVNhWhh?]r(h)r}r(hDX persistencehEjhFjhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X persistencerr}r(hDUhEjubaubj$)r}r(hDX9 = hEjhFjhKj'hM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X9 = rr}r(hDUhEjubaubeubh)r}r(hDUhEjhFjhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEjMhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX9setup_schedule() (celery.beat.PersistentScheduler method)hUtrauhVNhWhh?]ubh)r}r(hDUhEjMhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX$PersistentScheduler.setup_schedule()hEjhFhhKhhM}r(hR]rhahhGX celery.beatrr}rbhQ]hO]hP]hT]rhahX"PersistentScheduler.setup_schedulehj"huhVNhWhh?]r(h)r}r(hDXsetup_schedulehEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xsetup_schedulerr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEjMhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX/sync() (celery.beat.PersistentScheduler method)hUtrauhVNhWhh?]ubh)r}r(hDUhEjMhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDXPersistentScheduler.sync()hEjhFhhKhhM}r(hR]rhahhGX celery.beatrr}rbhQ]hO]hP]hT]rhahXPersistentScheduler.synchj"huhVNhWhh?]r(h)r}r(hDXsynchEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xsyncrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubeubeubhl)r}r(hDUhEhBhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX$ScheduleEntry (class in celery.beat)h&UtrauhVNhWhh?]ubh)r}r(hDUhEhBhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXclassrhjuhVNhWhh?]r(h)r}r(hDXScheduleEntry(name=None, task=None, last_run_at=None, total_run_count=None, schedule=None, args=(), kwargs={}, options={}, relative=False)hEjhFhhKhhM}r(hR]rh&ahhGX celery.beatrr}rbhQ]hO]hP]hT]rh&ahX ScheduleEntryrhUhuhVNhWhh?]r(j$)r}r(hDXclass hEjhFhhKj'hM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h`Xclass r r }r (hDUhEjubaubh)r}r(hDX celery.beat.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X celery.beat.rr}r(hDUhEjubaubh)r}r(hDjhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X ScheduleEntryrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r }r!(hDX name=NonehM}r"(hO]hP]hQ]hR]hT]uhEjh?]r#h`X name=Noner$r%}r&(hDUhEj ubahKhubh)r'}r((hDX task=NonehM}r)(hO]hP]hQ]hR]hT]uhEjh?]r*h`X task=Noner+r,}r-(hDUhEj'ubahKhubh)r.}r/(hDXlast_run_at=NonehM}r0(hO]hP]hQ]hR]hT]uhEjh?]r1h`Xlast_run_at=Noner2r3}r4(hDUhEj.ubahKhubh)r5}r6(hDXtotal_run_count=NonehM}r7(hO]hP]hQ]hR]hT]uhEjh?]r8h`Xtotal_run_count=Noner9r:}r;(hDUhEj5ubahKhubh)r<}r=(hDX schedule=NonehM}r>(hO]hP]hQ]hR]hT]uhEjh?]r?h`X schedule=Noner@rA}rB(hDUhEj<ubahKhubh)rC}rD(hDXargs=()hM}rE(hO]hP]hQ]hR]hT]uhEjh?]rFh`Xargs=()rGrH}rI(hDUhEjCubahKhubh)rJ}rK(hDX kwargs={}hM}rL(hO]hP]hQ]hR]hT]uhEjh?]rMh`X kwargs={}rNrO}rP(hDUhEjJubahKhubh)rQ}rR(hDX options={}hM}rS(hO]hP]hQ]hR]hT]uhEjh?]rTh`X options={}rUrV}rW(hDUhEjQubahKhubh)rX}rY(hDXrelative=FalsehM}rZ(hO]hP]hQ]hR]hT]uhEjh?]r[h`Xrelative=Falser\r]}r^(hDUhEjXubahKhubeubeubh)r_}r`(hDUhEjhFhhKhhM}ra(hO]hP]hQ]hR]hT]uhVNhWhh?]rb(ht)rc}rd(hDXAn entry in the scheduler.rehEj_hFXj/var/build/user_builds/celery/checkouts/2.1-archived/celery/beat.py:docstring of celery.beat.ScheduleEntryrfhKhyhM}rg(hO]hP]hQ]hR]hT]uhVKhWhh?]rhh`XAn entry in the scheduler.rirj}rk(hDjehEjcubaubh)rl}rm(hDUhEj_hFNhKhhM}rn(hO]hP]hQ]hR]hT]uhVNhWhh?]roh)rp}rq(hDUhM}rr(hO]hP]hQ]hR]hT]uhEjlh?]rs(h)rt}ru(hDUhM}rv(hO]hP]hQ]hR]hT]uhEjph?]rwh`X Parametersrxry}rz(hDUhEjtubahKhubh)r{}r|(hDUhM}r}(hO]hP]hQ]hR]hT]uhEjph?]r~cdocutils.nodes bullet_list r)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEj{h?]r(cdocutils.nodes list_item r)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjh?]rht)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjh?]r(h)r}r(hDXnamehM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xnamerr}r(hDUhEjubahKhubh`X -- rr}r(hDUhEjubh`Xsee rr}r(hDXsee hEjubcsphinx.addnodes pending_xref r)r}r(hDX :attr:`name`rhEjhFNhKU pending_xrefrhM}r(UreftypeXattrUrefwarnrU reftargetrXnameU refdomainXpyrhR]hQ]U refexplicithO]hP]hT]UrefdocrXinternals/reference/celery.beatrUpy:classrjU py:modulerX celery.beatruhVNh?]rj)r}r(hDjhM}r(hO]hP]r(UxrefrjXpy-attrrehQ]hR]hT]uhEjh?]rh`Xnamerr}r(hDUhEjubahKj ubaubh`X.r}r(hDX.hEjubehKhyubahKU list_itemrubj)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjh?]rht)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjh?]r(h)r}r(hDXschedulehM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xschedulerr}r(hDUhEjubahKhubh`X -- rr}r(hDUhEjubh`Xsee rr}r(hDXsee hEjubj)r}r(hDX:attr:`schedule`rhEjhFNhKjhM}r(UreftypeXattrjjXscheduleU refdomainXpyrhR]hQ]U refexplicithO]hP]hT]jjjjjjuhVNh?]rj)r}r(hDjhM}r(hO]hP]r(jjXpy-attrrehQ]hR]hT]uhEjh?]rh`Xschedulerr}r(hDUhEjubahKj ubaubh`X.r}r(hDX.hEjubehKhyubahKjubj)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjh?]rht)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjh?]r(h)r}r(hDXargshM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xargsrr}r(hDUhEjubahKhubh`X -- rr}r(hDUhEjubh`Xsee rr}r(hDXsee hEjubj)r}r(hDX :attr:`args`rhEjhFNhKjhM}r(UreftypeXattrjjXargsU refdomainXpyrhR]hQ]U refexplicithO]hP]hT]jjjjjjuhVNh?]rj)r}r(hDjhM}r(hO]hP]r(jjXpy-attrrehQ]hR]hT]uhEjh?]rh`Xargsrr}r(hDUhEjubahKj ubaubh`X.r}r(hDX.hEjubehKhyubahKjubj)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjh?]rht)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjh?]r (h)r }r (hDXkwargshM}r (hO]hP]hQ]hR]hT]uhEjh?]r h`Xkwargsrr}r(hDUhEj ubahKhubh`X -- rr}r(hDUhEjubh`Xsee rr}r(hDXsee hEjubj)r}r(hDX:attr:`kwargs`rhEjhFNhKjhM}r(UreftypeXattrjjXkwargsU refdomainXpyrhR]hQ]U refexplicithO]hP]hT]jjjjjjuhVNh?]rj)r}r(hDjhM}r(hO]hP]r (jjXpy-attrr!ehQ]hR]hT]uhEjh?]r"h`Xkwargsr#r$}r%(hDUhEjubahKj ubaubh`X.r&}r'(hDX.hEjubehKhyubahKjubj)r(}r)(hDUhM}r*(hO]hP]hQ]hR]hT]uhEjh?]r+ht)r,}r-(hDUhM}r.(hO]hP]hQ]hR]hT]uhEj(h?]r/(h)r0}r1(hDX last_run_athM}r2(hO]hP]hQ]hR]hT]uhEj,h?]r3h`X last_run_atr4r5}r6(hDUhEj0ubahKhubh`X -- r7r8}r9(hDUhEj,ubh`Xsee r:r;}r<(hDXsee hEj,ubj)r=}r>(hDX:attr:`last_run_at`r?hEj,hFNhKjhM}r@(UreftypeXattrjjX last_run_atU refdomainXpyrAhR]hQ]U refexplicithO]hP]hT]jjjjjjuhVNh?]rBj)rC}rD(hDj?hM}rE(hO]hP]rF(jjAXpy-attrrGehQ]hR]hT]uhEj=h?]rHh`X last_run_atrIrJ}rK(hDUhEjCubahKj ubaubh`X.rL}rM(hDX.hEj,ubehKhyubahKjubj)rN}rO(hDUhM}rP(hO]hP]hQ]hR]hT]uhEjh?]rQht)rR}rS(hDUhM}rT(hO]hP]hQ]hR]hT]uhEjNh?]rU(h)rV}rW(hDXtotal_run_counthM}rX(hO]hP]hQ]hR]hT]uhEjRh?]rYh`Xtotal_run_countrZr[}r\(hDUhEjVubahKhubh`X -- r]r^}r_(hDUhEjRubh`Xsee r`ra}rb(hDXsee hEjRubj)rc}rd(hDX:attr:`total_run_count`rehEjRhFNhKjhM}rf(UreftypeXattrjjXtotal_run_countU refdomainXpyrghR]hQ]U refexplicithO]hP]hT]jjjjjjuhVNh?]rhj)ri}rj(hDjehM}rk(hO]hP]rl(jjgXpy-attrrmehQ]hR]hT]uhEjch?]rnh`Xtotal_run_countrorp}rq(hDUhEjiubahKj ubaubh`X.rr}rs(hDX.hEjRubehKhyubahKjubehKU bullet_listrtubahKjubehKjubaubhl)ru}rv(hDUhEj_hFjfhKhohM}rw(hR]hQ]hO]hP]hT]Uentries]rx(hrX*name (celery.beat.ScheduleEntry attribute)hUtryauhVNhWhh?]ubh)rz}r{(hDUhEj_hFjfhKhhM}r|(hhXpyhR]hQ]hO]hP]hT]hX attributer}hj}uhVNhWhh?]r~(h)r}r(hDXnamerhEjzhFjfhKhhM}r(hR]rhahjhQ]hO]hP]hT]rhahXScheduleEntry.namehjhuhVK hWhh?]rh)r}r(hDjhEjhFjfhKhhM}r(hO]hP]hQ]hR]hT]uhVK hWhh?]rh`Xnamerr}r(hDUhEjubaubaubh)r}r(hDUhEjzhFjfhKhhM}r(hO]hP]hQ]hR]hT]uhVK hWhh?]rht)r}r(hDXThe task name.rhEjhFjfhKhyhM}r(hO]hP]hQ]hR]hT]uhVK hWhh?]rh`XThe task name.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEj_hFjfhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX.schedule (celery.beat.ScheduleEntry attribute)h3UtrauhVNhWhh?]ubh)r}r(hDUhEj_hFjfhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hX attributerhjuhVNhWhh?]r(h)r}r(hDXschedulerhEjhFjfhKhhM}r(hR]rh3ahjhQ]hO]hP]hT]rh3ahXScheduleEntry.schedulehjhuhVKhWhh?]rh)r}r(hDjhEjhFjfhKhhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`Xschedulerr}r(hDUhEjubaubaubh)r}r(hDUhEjhFjfhKhhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rht)r}r(hDX The schedule (run_every/crontab)rhEjhFjfhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X The schedule (run_every/crontab)rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEj_hFjfhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX*args (celery.beat.ScheduleEntry attribute)hUtrauhVNhWhh?]ubh)r}r(hDUhEj_hFjfhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hX attributerhjuhVNhWhh?]r(h)r}r(hDXargsrhEjhFjfhKhhM}r(hR]rhahjhQ]hO]hP]hT]rhahXScheduleEntry.argshjhuhVKhWhh?]rh)r}r(hDjhEjhFjfhKhhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`Xargsrr}r(hDUhEjubaubaubh)r}r(hDUhEjhFjfhKhhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rht)r}r(hDXArgs to apply.rhEjhFjfhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XArgs to apply.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEj_hFjfhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX,kwargs (celery.beat.ScheduleEntry attribute)h*UtrauhVNhWhh?]ubh)r}r(hDUhEj_hFjfhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hX attributerhjuhVNhWhh?]r(h)r}r(hDXkwargsrhEjhFjfhKhhM}r(hR]rh*ahjhQ]hO]hP]hT]rh*ahXScheduleEntry.kwargshjhuhVKhWhh?]rh)r}r(hDjhEjhFjfhKhhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`Xkwargsrr}r(hDUhEjubaubaubh)r}r(hDUhEjhFjfhKhhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rht)r}r(hDXKeyword arguments to apply.rhEjhFjfhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XKeyword arguments to apply.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEj_hFjfhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX1last_run_at (celery.beat.ScheduleEntry attribute)h1Utr auhVNhWhh?]ubh)r }r (hDUhEj_hFjfhKhhM}r (hhXpyhR]hQ]hO]hP]hT]hX attributer hj uhVNhWhh?]r(h)r}r(hDX last_run_atrhEj hFjfhKhhM}r(hR]rh1ahjhQ]hO]hP]hT]rh1ahXScheduleEntry.last_run_athjhuhVKhWhh?]rh)r}r(hDjhEjhFjfhKhhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X last_run_atrr}r(hDUhEjubaubaubh)r}r(hDUhEj hFjfhKhhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]r ht)r!}r"(hDX1The time and date of when this task was last run.r#hEjhFjfhKhyhM}r$(hO]hP]hQ]hR]hT]uhVKhWhh?]r%h`X1The time and date of when this task was last run.r&r'}r((hDj#hEj!ubaubaubeubhl)r)}r*(hDUhEj_hFjfhKhohM}r+(hR]hQ]hO]hP]hT]Uentries]r,(hrX5total_run_count (celery.beat.ScheduleEntry attribute)h,Utr-auhVNhWhh?]ubh)r.}r/(hDUhEj_hFjfhKhhM}r0(hhXpyhR]hQ]hO]hP]hT]hX attributer1hj1uhVNhWhh?]r2(h)r3}r4(hDXtotal_run_countr5hEj.hFhghKhhM}r6(hR]r7h,ahjhQ]hO]hP]hT]r8h,ahXScheduleEntry.total_run_counthjhuhVKhWhh?]r9h)r:}r;(hDj5hEj3hFhghKhhM}r<(hO]hP]hQ]hR]hT]uhVKhWhh?]r=h`Xtotal_run_countr>r?}r@(hDUhEj:ubaubaubh)rA}rB(hDUhEj.hFhghKhhM}rC(hO]hP]hQ]hR]hT]uhVKhWhh?]rDht)rE}rF(hDX;Total number of times this periodic task has been executed.rGhEjAhFjfhKhyhM}rH(hO]hP]hQ]hR]hT]uhVK hWhh?]rIh`X;Total number of times this periodic task has been executed.rJrK}rL(hDjGhEjEubaubaubeubhl)rM}rN(hDUhEj_hFXq/var/build/user_builds/celery/checkouts/2.1-archived/celery/beat.py:docstring of celery.beat.ScheduleEntry.is_duerOhKhohM}rP(hR]hQ]hO]hP]hT]Uentries]rQ(hrX+is_due() (celery.beat.ScheduleEntry method)hUtrRauhVNhWhh?]ubh)rS}rT(hDUhEj_hFjOhKhhM}rU(hhXpyhR]hQ]hO]hP]hT]hXmethodrVhjVuhVNhWhh?]rW(h)rX}rY(hDXScheduleEntry.is_due()hEjShFhhKhhM}rZ(hR]r[hahhGX celery.beatr\r]}r^bhQ]hO]hP]hT]r_hahXScheduleEntry.is_duehjhuhVNhWhh?]r`(h)ra}rb(hDXis_duehEjXhFhhKhhM}rc(hO]hP]hQ]hR]hT]uhVNhWhh?]rdh`Xis_duererf}rg(hDUhEjaubaubh)rh}ri(hDUhEjXhFhhKhhM}rj(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)rk}rl(hDUhEjShFhhKhhM}rm(hO]hP]hQ]hR]hT]uhVNhWhh?]rnht)ro}rp(hDX1See :meth:`celery.task.base.PeriodicTask.is_due`.hEjkhFjOhKhyhM}rq(hO]hP]hQ]hR]hT]uhVKhWhh?]rr(h`XSee rsrt}ru(hDXSee hEjoubj)rv}rw(hDX,:meth:`celery.task.base.PeriodicTask.is_due`rxhEjohFNhKjhM}ry(UreftypeXmethjjX$celery.task.base.PeriodicTask.is_dueU refdomainXpyrzhR]hQ]U refexplicithO]hP]hT]jjjjjjuhVNh?]r{j)r|}r}(hDjxhM}r~(hO]hP]r(jjzXpy-methrehQ]hR]hT]uhEjvh?]rh`X&celery.task.base.PeriodicTask.is_due()rr}r(hDUhEj|ubahKj ubaubh`X.r}r(hDX.hEjoubeubaubeubhl)r}r(hDUhEj_hFXo/var/build/user_builds/celery/checkouts/2.1-archived/celery/beat.py:docstring of celery.beat.ScheduleEntry.nextrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX)next() (celery.beat.ScheduleEntry method)hUtrauhVNhWhh?]ubh)r}r(hDUhEj_hFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX$ScheduleEntry.next(last_run_at=None)hEjhFhhKhhM}r(hR]rhahhGX celery.beatrr}rbhQ]hO]hP]hT]rhahXScheduleEntry.nexthjhuhVNhWhh?]r(h)r}r(hDXnexthEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xnextrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r(hDXlast_run_at=NonehM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xlast_run_at=Nonerr}r(hDUhEjubahKhubaubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDXUReturns a new instance of the same class, but with its date and count fields updated.rhEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XUReturns a new instance of the same class, but with its date and count fields updated.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEj_hFXq/var/build/user_builds/celery/checkouts/2.1-archived/celery/beat.py:docstring of celery.beat.ScheduleEntry.updaterhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX+update() (celery.beat.ScheduleEntry method)h UtrauhVNhWhh?]ubh)r}r(hDUhEj_hFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDXScheduleEntry.update(other)hEjhFhhKhhM}r(hR]rh ahhGX celery.beatrr}rbhQ]hO]hP]hT]rh ahXScheduleEntry.updatehjhuhVNhWhh?]r(h)r}r(hDXupdatehEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xupdaterr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r(hDXotherhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xotherrr}r(hDUhEjubahKhubaubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(ht)r}r(hDX!Update values from another entry.rhEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X!Update values from another entry.rr}r(hDjhEjubaubht)r}r(hDXEDoes only update "editable" fields (schedule, args, kwargs, options).rhEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XEDoes only update "editable" fields (schedule, args, kwargs, options).rr}r(hDjhEjubaubeubeubeubeubhl)r}r(hDUhEhBhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX Scheduler (class in celery.beat)h%UtrauhVNhWhh?]ubh)r}r(hDUhEhBhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXclassrhjuhVNhWhh?]r(h)r}r(hDXNScheduler(schedule=None, logger=None, max_interval=None, lazy=False, **kwargs)hEjhFhhKhhM}r(hR]rh%ahhGX celery.beatrr}rbhQ]hO]hP]hT]rh%ahX SchedulerrhUhuhVNhWhh?]r(j$)r}r(hDXclass hEjhFhhKj'hM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h`Xclass r r }r (hDUhEjubaubh)r}r(hDX celery.beat.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X celery.beat.rr}r(hDUhEjubaubh)r}r(hDjhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X Schedulerrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r }r!(hDX schedule=NonehM}r"(hO]hP]hQ]hR]hT]uhEjh?]r#h`X schedule=Noner$r%}r&(hDUhEj ubahKhubh)r'}r((hDX logger=NonehM}r)(hO]hP]hQ]hR]hT]uhEjh?]r*h`X logger=Noner+r,}r-(hDUhEj'ubahKhubh)r.}r/(hDXmax_interval=NonehM}r0(hO]hP]hQ]hR]hT]uhEjh?]r1h`Xmax_interval=Noner2r3}r4(hDUhEj.ubahKhubh)r5}r6(hDX lazy=FalsehM}r7(hO]hP]hQ]hR]hT]uhEjh?]r8h`X lazy=Falser9r:}r;(hDUhEj5ubahKhubh)r<}r=(hDX**kwargshM}r>(hO]hP]hQ]hR]hT]uhEjh?]r?h`X**kwargsr@rA}rB(hDUhEj<ubahKhubeubeubh)rC}rD(hDUhEjhFhhKhhM}rE(hO]hP]hQ]hR]hT]uhVNhWhh?]rF(ht)rG}rH(hDXScheduler for periodic tasks.rIhEjChFXf/var/build/user_builds/celery/checkouts/2.1-archived/celery/beat.py:docstring of celery.beat.SchedulerrJhKhyhM}rK(hO]hP]hQ]hR]hT]uhVKhWhh?]rLh`XScheduler for periodic tasks.rMrN}rO(hDjIhEjGubaubh)rP}rQ(hDUhEjChFNhKhhM}rR(hO]hP]hQ]hR]hT]uhVNhWhh?]rSh)rT}rU(hDUhM}rV(hO]hP]hQ]hR]hT]uhEjPh?]rW(h)rX}rY(hDUhM}rZ(hO]hP]hQ]hR]hT]uhEjTh?]r[h`X Parametersr\r]}r^(hDUhEjXubahKhubh)r_}r`(hDUhM}ra(hO]hP]hQ]hR]hT]uhEjTh?]rbj)rc}rd(hDUhM}re(hO]hP]hQ]hR]hT]uhEj_h?]rf(j)rg}rh(hDUhM}ri(hO]hP]hQ]hR]hT]uhEjch?]rjht)rk}rl(hDUhM}rm(hO]hP]hQ]hR]hT]uhEjgh?]rn(h)ro}rp(hDXschedulehM}rq(hO]hP]hQ]hR]hT]uhEjkh?]rrh`Xschedulersrt}ru(hDUhEjoubahKhubh`X -- rvrw}rx(hDUhEjkubh`Xsee ryrz}r{(hDXsee hEjkubj)r|}r}(hDX:attr:`schedule`r~hEjkhFNhKjhM}r(UreftypeXattrjjXscheduleU refdomainXpyrhR]hQ]U refexplicithO]hP]hT]jjjjjjuhVNh?]rj)r}r(hDj~hM}r(hO]hP]r(jjXpy-attrrehQ]hR]hT]uhEj|h?]rh`Xschedulerr}r(hDUhEjubahKj ubaubh`X.r}r(hDX.hEjkubehKhyubahKjubj)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjch?]rht)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjh?]r(h)r}r(hDXloggerhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xloggerrr}r(hDUhEjubahKhubh`X -- rr}r(hDUhEjubh`Xsee rr}r(hDXsee hEjubj)r}r(hDX:attr:`logger`rhEjhFNhKjhM}r(UreftypeXattrjjXloggerU refdomainXpyrhR]hQ]U refexplicithO]hP]hT]jjjjjjuhVNh?]rj)r}r(hDjhM}r(hO]hP]r(jjXpy-attrrehQ]hR]hT]uhEjh?]rh`Xloggerrr}r(hDUhEjubahKj ubaubh`X.r}r(hDX.hEjubehKhyubahKjubj)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjch?]rht)r}r(hDUhM}r(hO]hP]hQ]hR]hT]uhEjh?]r(h)r}r(hDX max_intervalhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X max_intervalrr}r(hDUhEjubahKhubh`X -- rr}r(hDUhEjubh`Xsee rr}r(hDXsee hEjubj)r}r(hDX:attr:`max_interval`rhEjhFNhKjhM}r(UreftypeXattrjjX max_intervalU refdomainXpyrhR]hQ]U refexplicithO]hP]hT]jjjjjjuhVNh?]rj)r}r(hDjhM}r(hO]hP]r(jjXpy-attrrehQ]hR]hT]uhEjh?]rh`X max_intervalrr}r(hDUhEjubahKj ubaubh`X.r}r(hDX.hEjubehKhyubahKjubehKjtubahKjubehKjubaubhl)r}r(hDUhEjChFjJhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX*schedule (celery.beat.Scheduler attribute)h UtrauhVNhWhh?]ubh)r}r(hDUhEjChFjJhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hX attributerhjuhVNhWhh?]r(h)r}r(hDXschedulerhEjhFjJhKhhM}r(hR]rh ahjhQ]hO]hP]hT]rh ahXScheduler.schedulehjhuhVK hWhh?]rh)r}r(hDjhEjhFjJhKhhM}r(hO]hP]hQ]hR]hT]uhVK hWhh?]rh`Xschedulerr}r(hDUhEjubaubaubh)r}r(hDUhEjhFjJhKhhM}r(hO]hP]hQ]hR]hT]uhVK hWhh?]rht)r}r(hDXThe schedule dict/shelve.rhEjhFjJhKhyhM}r(hO]hP]hQ]hR]hT]uhVK hWhh?]rh`XThe schedule dict/shelve.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEjChFjJhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX(logger (celery.beat.Scheduler attribute)h'UtrauhVNhWhh?]ubh)r}r(hDUhEjChFjJhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hX attributerhjuhVNhWhh?]r(h)r}r(hDXloggerr hEjhFjJhKhhM}r (hR]r h'ahjhQ]hO]hP]hT]r h'ahXScheduler.loggerhjhuhVKhWhh?]r h)r}r(hDj hEjhFjJhKhhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`Xloggerrr}r(hDUhEjubaubaubh)r}r(hDUhEjhFjJhKhhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rht)r}r(hDXThe logger to use.rhEjhFjJhKhyhM}r(hO]hP]hQ]hR]hT]uhVK hWhh?]rh`XThe logger to use.rr}r (hDjhEjubaubaubeubhl)r!}r"(hDUhEjChFjJhKhohM}r#(hR]hQ]hO]hP]hT]Uentries]r$(hrX.max_interval (celery.beat.Scheduler attribute)h$Utr%auhVNhWhh?]ubh)r&}r'(hDUhEjChFjJhKhhM}r((hhXpyhR]hQ]hO]hP]hT]hX attributer)hj)uhVNhWhh?]r*(h)r+}r,(hDX max_intervalr-hEj&hFhghKhhM}r.(hR]r/h$ahjhQ]hO]hP]hT]r0h$ahXScheduler.max_intervalhjhuhVKhWhh?]r1h)r2}r3(hDj-hEj+hFhghKhhM}r4(hO]hP]hQ]hR]hT]uhVKhWhh?]r5h`X max_intervalr6r7}r8(hDUhEj2ubaubaubh)r9}r:(hDUhEj&hFhghKhhM}r;(hO]hP]hQ]hR]hT]uhVKhWhh?]r<ht)r=}r>(hDX7Maximum time to sleep between re-checking the schedule.r?hEj9hFjJhKhyhM}r@(hO]hP]hQ]hR]hT]uhVKhWhh?]rAh`X7Maximum time to sleep between re-checking the schedule.rBrC}rD(hDj?hEj=ubaubaubeubhl)rE}rF(hDUhEjChFUhKhohM}rG(hR]hQ]hO]hP]hT]Uentries]rH(hrX'Entry (celery.beat.Scheduler attribute)hUtrIauhVNhWhh?]ubh)rJ}rK(hDUhEjChFUhKhhM}rL(hhXpyhR]hQ]hO]hP]hT]hX attributerMhjMuhVNhWhh?]rN(h)rO}rP(hDXScheduler.EntryhEjJhFhhKhhM}rQ(hR]rRhahhGX celery.beatrSrT}rUbhQ]hO]hP]hT]rVhahXScheduler.EntryhjhuhVNhWhh?]rWh)rX}rY(hDXEntryhEjOhFhhKhhM}rZ(hO]hP]hQ]hR]hT]uhVNhWhh?]r[h`XEntryr\r]}r^(hDUhEjXubaubaubh)r_}r`(hDUhEjJhFhhKhhM}ra(hO]hP]hQ]hR]hT]uhVNhWhh?]rbht)rc}rd(hDXalias of :class:`ScheduleEntry`hEj_hFUhKhyhM}re(hO]hP]hQ]hR]hT]uhVKhWhh?]rf(h`X alias of rgrh}ri(hDX alias of hEjcubj)rj}rk(hDX:class:`ScheduleEntry`rlhEjchFNhKjhM}rm(UreftypeXclassjjX ScheduleEntryU refdomainXpyrnhR]hQ]U refexplicithO]hP]hT]jjjjjjuhVNh?]roj)rp}rq(hDjlhM}rr(hO]hP]rs(jjnXpy-classrtehQ]hR]hT]uhEjjh?]ruh`X ScheduleEntryrvrw}rx(hDUhEjpubahKj ubaubeubaubeubhl)ry}rz(hDUhEjChFUhKhohM}r{(hR]hQ]hO]hP]hT]Uentries]r|(hrX+Publisher (celery.beat.Scheduler attribute)h)Utr}auhVNhWhh?]ubh)r~}r(hDUhEjChFUhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hX attributerhjuhVNhWhh?]r(h)r}r(hDXScheduler.PublisherhEj~hFhhKhhM}r(hR]rh)ahhGX celery.beatrr}rbhQ]hO]hP]hT]rh)ahXScheduler.PublisherhjhuhVNhWhh?]rh)r}r(hDX PublisherhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X Publisherrr}r(hDUhEjubaubaubh)r}r(hDUhEj~hFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDXalias of :class:`TaskPublisher`hEjhFUhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]r(h`X alias of rr}r(hDX alias of hEjubj)r}r(hDX:class:`TaskPublisher`rhEjhFNhKjhM}r(UreftypeXclassjjX TaskPublisherU refdomainXpyrhR]hQ]U refexplicithO]hP]hT]jjjjjjuhVNh?]rj)r}r(hDjhM}r(hO]hP]r(jjXpy-classrehQ]hR]hT]uhEjh?]rh`X TaskPublisherrr}r(hDUhEjubahKj ubaubeubaubeubhl)r}r(hDUhEjChFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX$add() (celery.beat.Scheduler method)hUtrauhVNhWhh?]ubh)r}r(hDUhEjChFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDXScheduler.add(**kwargs)hEjhFhhKhhM}r(hR]rhahhGX celery.beatrr}rbhQ]hO]hP]hT]rhahX Scheduler.addhjhuhVNhWhh?]r(h)r}r(hDXaddhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xaddrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r(hDX**kwargshM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X**kwargsrr}r(hDUhEjubahKhubaubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEjChFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX,apply_async() (celery.beat.Scheduler method)hUtrauhVNhWhh?]ubh)r}r(hDUhEjChFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX6Scheduler.apply_async(entry, publisher=None, **kwargs)hEjhFhhKhhM}r(hR]rhahhGX celery.beatrr}rbhQ]hO]hP]hT]rhahXScheduler.apply_asynchjhuhVNhWhh?]r(h)r}r(hDX apply_asynchEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X apply_asyncrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDXentryhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xentryrr}r(hDUhEjubahKhubh)r}r(hDXpublisher=NonehM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xpublisher=Nonerr}r(hDUhEjubahKhubh)r}r(hDX**kwargshM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X**kwargsrr}r(hDUhEjubahKhubeubeubh)r}r (hDUhEjhFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r }r (hDUhEjChFNhKhohM}r (hR]hQ]hO]hP]hT]Uentries]r(hrX&close() (celery.beat.Scheduler method)hUtrauhVNhWhh?]ubh)r}r(hDUhEjChFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDXScheduler.close()hEjhFhhKhhM}r(hR]rhahhGX celery.beatrr}rbhQ]hO]hP]hT]rhahXScheduler.closehjhuhVNhWhh?]r(h)r}r(hDXclosehEjhFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r!h`Xcloser"r#}r$(hDUhEjubaubh)r%}r&(hDUhEjhFhhKhhM}r'(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)r(}r)(hDUhEjhFhhKhhM}r*(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r+}r,(hDUhEjChFNhKhohM}r-(hR]hQ]hO]hP]hT]Uentries]r.(hrX-get_schedule() (celery.beat.Scheduler method)hUtr/auhVNhWhh?]ubh)r0}r1(hDUhEjChFNhKhhM}r2(hhXpyhR]hQ]hO]hP]hT]hXmethodr3hj3uhVNhWhh?]r4(h)r5}r6(hDXScheduler.get_schedule()hEj0hFhhKhhM}r7(hR]r8hahhGX celery.beatr9r:}r;bhQ]hO]hP]hT]r<hahXScheduler.get_schedulehjhuhVNhWhh?]r=(h)r>}r?(hDX get_schedulehEj5hFhhKhhM}r@(hO]hP]hQ]hR]hT]uhVNhWhh?]rAh`X get_schedulerBrC}rD(hDUhEj>ubaubh)rE}rF(hDUhEj5hFhhKhhM}rG(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)rH}rI(hDUhEj0hFhhKhhM}rJ(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)rK}rL(hDUhEjChFNhKhohM}rM(hR]hQ]hO]hP]hT]Uentries]rN(hrX&info (celery.beat.Scheduler attribute)h UtrOauhVNhWhh?]ubh)rP}rQ(hDUhEjChFNhKhhM}rR(hhXpyhR]hQ]hO]hP]hT]hX attributerShjSuhVNhWhh?]rT(h)rU}rV(hDXScheduler.infohEjPhFhhKhhM}rW(hR]rXh ahhGX celery.beatrYrZ}r[bhQ]hO]hP]hT]r\h ahXScheduler.infohjhuhVNhWhh?]r]h)r^}r_(hDXinfohEjUhFhhKhhM}r`(hO]hP]hQ]hR]hT]uhVNhWhh?]rah`Xinforbrc}rd(hDUhEj^ubaubaubh)re}rf(hDUhEjPhFhhKhhM}rg(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)rh}ri(hDUhEjChFNhKhohM}rj(hR]hQ]hO]hP]hT]Uentries]rk(hrX*maybe_due() (celery.beat.Scheduler method)hUtrlauhVNhWhh?]ubh)rm}rn(hDUhEjChFNhKhhM}ro(hhXpyhR]hQ]hO]hP]hT]hXmethodrphjpuhVNhWhh?]rq(h)rr}rs(hDX*Scheduler.maybe_due(entry, publisher=None)hEjmhFhhKhhM}rt(hR]ruhahhGX celery.beatrvrw}rxbhQ]hO]hP]hT]ryhahXScheduler.maybe_duehjhuhVNhWhh?]rz(h)r{}r|(hDX maybe_duehEjrhFhhKhhM}r}(hO]hP]hQ]hR]hT]uhVNhWhh?]r~h`X maybe_duerr}r(hDUhEj{ubaubh)r}r(hDUhEjrhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDXentryhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xentryrr}r(hDUhEjubahKhubh)r}r(hDXpublisher=NonehM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xpublisher=Nonerr}r(hDUhEjubahKhubeubeubh)r}r(hDUhEjmhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEjChFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX.merge_inplace() (celery.beat.Scheduler method)h.UtrauhVNhWhh?]ubh)r}r(hDUhEjChFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDXScheduler.merge_inplace(b)hEjhFhhKhhM}r(hR]rh.ahhGX celery.beatrr}rbhQ]hO]hP]hT]rh.ahXScheduler.merge_inplacehjhuhVNhWhh?]r(h)r}r(hDX merge_inplacehEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X merge_inplacerr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r(hDXbhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xbr}r(hDUhEjubahKhubaubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEjChFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX(reserve() (celery.beat.Scheduler method)hUtrauhVNhWhh?]ubh)r}r(hDUhEjChFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDXScheduler.reserve(entry)hEjhFhhKhhM}r(hR]rhahhGX celery.beatrr}rbhQ]hO]hP]hT]rhahXScheduler.reservehjhuhVNhWhh?]r(h)r}r(hDXreservehEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xreserverr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r(hDXentryhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xentryrr}r(hDUhEjubahKhubaubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEjChFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX*schedule (celery.beat.Scheduler attribute)Xcelery.beat.Scheduler.scheduleUtrauhVNhWhh?]ubh)r}r(hDUhEjChFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hX attributerhjuhVNhWhh?]r(h)r}r(hDXScheduler.schedulehEjhFhhKhhM}r(hR]hhGX celery.beatrr}rbhQ]hO]hP]hT]hXScheduler.schedulehjhuhVNhWhh?]rh)r}r(hDXschedulehEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xschedulerr}r(hDUhEjubaubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEjChFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX*send_task() (celery.beat.Scheduler method)hUtrauhVNhWhh?]ubh)r}r(hDUhEjChFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodr hj uhVNhWhh?]r (h)r }r (hDX$Scheduler.send_task(*args, **kwargs)hEjhFhhKhhM}r (hR]rhahhGX celery.beatrr}rbhQ]hO]hP]hT]rhahXScheduler.send_taskhjhuhVNhWhh?]r(h)r}r(hDX send_taskhEj hFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X send_taskrr}r(hDUhEjubaubh)r}r(hDUhEj hFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r (hDX*argshM}r!(hO]hP]hQ]hR]hT]uhEjh?]r"h`X*argsr#r$}r%(hDUhEjubahKhubh)r&}r'(hDX**kwargshM}r((hO]hP]hQ]hR]hT]uhEjh?]r)h`X**kwargsr*r+}r,(hDUhEj&ubahKhubeubeubh)r-}r.(hDUhEjhFhhKhhM}r/(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r0}r1(hDUhEjChFNhKhohM}r2(hR]hQ]hO]hP]hT]Uentries]r3(hrX/setup_schedule() (celery.beat.Scheduler method)hUtr4auhVNhWhh?]ubh)r5}r6(hDUhEjChFNhKhhM}r7(hhXpyhR]hQ]hO]hP]hT]hXmethodr8hj8uhVNhWhh?]r9(h)r:}r;(hDXScheduler.setup_schedule()hEj5hFhhKhhM}r<(hR]r=hahhGX celery.beatr>r?}r@bhQ]hO]hP]hT]rAhahXScheduler.setup_schedulehjhuhVNhWhh?]rB(h)rC}rD(hDXsetup_schedulehEj:hFhhKhhM}rE(hO]hP]hQ]hR]hT]uhVNhWhh?]rFh`Xsetup_schedulerGrH}rI(hDUhEjCubaubh)rJ}rK(hDUhEj:hFhhKhhM}rL(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)rM}rN(hDUhEj5hFhhKhhM}rO(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)rP}rQ(hDUhEjChFNhKhohM}rR(hR]hQ]hO]hP]hT]Uentries]rS(hrX%sync() (celery.beat.Scheduler method)hUtrTauhVNhWhh?]ubh)rU}rV(hDUhEjChFNhKhhM}rW(hhXpyhR]hQ]hO]hP]hT]hXmethodrXhjXuhVNhWhh?]rY(h)rZ}r[(hDXScheduler.sync()hEjUhFhhKhhM}r\(hR]r]hahhGX celery.beatr^r_}r`bhQ]hO]hP]hT]rahahXScheduler.synchjhuhVNhWhh?]rb(h)rc}rd(hDXsynchEjZhFhhKhhM}re(hO]hP]hQ]hR]hT]uhVNhWhh?]rfh`Xsyncrgrh}ri(hDUhEjcubaubh)rj}rk(hDUhEjZhFhhKhhM}rl(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)rm}rn(hDUhEjUhFhhKhhM}ro(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)rp}rq(hDUhEjChFXk/var/build/user_builds/celery/checkouts/2.1-archived/celery/beat.py:docstring of celery.beat.Scheduler.tickrrhKhohM}rs(hR]hQ]hO]hP]hT]Uentries]rt(hrX%tick() (celery.beat.Scheduler method)h"UtruauhVNhWhh?]ubh)rv}rw(hDUhEjChFjrhKhhM}rx(hhXpyhR]hQ]hO]hP]hT]hXmethodryhjyuhVNhWhh?]rz(h)r{}r|(hDXScheduler.tick()hEjvhFhhKhhM}r}(hR]r~h"ahhGX celery.beatrr}rbhQ]hO]hP]hT]rh"ahXScheduler.tickhjhuhVNhWhh?]r(h)r}r(hDXtickhEj{hFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xtickrr}r(hDUhEjubaubh)r}r(hDUhEj{hFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)r}r(hDUhEjvhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(ht)r}r(hDX3Run a tick, that is one iteration of the scheduler.rhEjhFjrhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X3Run a tick, that is one iteration of the scheduler.rr}r(hDjhEjubaubht)r}r(hDXExecutes all due tasks.rhEjhFjrhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XExecutes all due tasks.rr}r(hDjhEjubaubeubeubhl)r}r(hDUhEjChFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX1update_from_dict() (celery.beat.Scheduler method)hUtrauhVNhWhh?]ubh)r}r(hDUhEjChFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX!Scheduler.update_from_dict(dict_)hEjhFhhKhhM}r(hR]rhahhGX celery.beatrr}rbhQ]hO]hP]hT]rhahXScheduler.update_from_dicthjhuhVNhWhh?]r(h)r}r(hDXupdate_from_dicthEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xupdate_from_dictrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r(hDXdict_hM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xdict_rr}r(hDUhEjubahKhubaubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubeubeubhl)r}r(hDUhEhBhFXl/var/build/user_builds/celery/checkouts/2.1-archived/celery/beat.py:docstring of celery.beat.SchedulingErrorrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrXSchedulingErrorrh2UtrauhVNhWhh?]ubh)r}r(hDUhEhBhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hX exceptionrhjuhVNhWhh?]r(h)r}r(hDjhEjhFhhKhhM}r(hR]rh2ahhGX celery.beatrr}rbhQ]hO]hP]hT]rh2ahjhUhuhVNhWhh?]r(j$)r}r(hDX exception hEjhFhhKj'hM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X exception rr}r(hDUhEjubaubh)r}r(hDX celery.beat.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X celery.beat.rr}r(hDUhEjubaubh)r}r(hDjhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`XSchedulingErrorrr}r(hDUhEjubaubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDX)An error occured while scheduling a task.rhEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X)An error occured while scheduling a task.rr}r(hDjhEjubaubaubeubhl)r }r (hDUhEhBhFNhKhohM}r (hR]hQ]hO]hP]hT]Uentries]r (hrXService (class in celery.beat)h/Utr auhVNhWhh?]ubh)r }r (hDUhEhBhFNhKhhM}r (hhXpyhR]hQ]hO]hP]hT]hXclassr hj uhVNhWhh?]r (h)r }r (hDXpService(logger=None, max_interval=300, schedule={}, schedule_filename='celerybeat-schedule', scheduler_cls=None)hEj hFhhKhhM}r (hR]r h/ahhGX celery.beatr r }r bhQ]hO]hP]hT]r h/ahXServicer hUhuhVNhWhh?]r (j$)r }r (hDXclass hEj hFhhKj'hM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h`Xclass r r }r (hDUhEj ubaubh)r }r (hDX celery.beat.hEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h`X celery.beat.r r }r! (hDUhEj ubaubh)r" }r# (hDj hEj hFhhKhhM}r$ (hO]hP]hQ]hR]hT]uhVNhWhh?]r% h`XServicer& r' }r( (hDUhEj" ubaubh)r) }r* (hDUhEj hFhhKhhM}r+ (hO]hP]hQ]hR]hT]uhVNhWhh?]r, (h)r- }r. (hDX logger=NonehM}r/ (hO]hP]hQ]hR]hT]uhEj) h?]r0 h`X logger=Noner1 r2 }r3 (hDUhEj- ubahKhubh)r4 }r5 (hDXmax_interval=300hM}r6 (hO]hP]hQ]hR]hT]uhEj) h?]r7 h`Xmax_interval=300r8 r9 }r: (hDUhEj4 ubahKhubh)r; }r< (hDX schedule={}hM}r= (hO]hP]hQ]hR]hT]uhEj) h?]r> h`X schedule={}r? r@ }rA (hDUhEj; ubahKhubh)rB }rC (hDX'schedule_filename='celerybeat-schedule'hM}rD (hO]hP]hQ]hR]hT]uhEj) h?]rE h`X'schedule_filename='celerybeat-schedule'rF rG }rH (hDUhEjB ubahKhubh)rI }rJ (hDXscheduler_cls=NonehM}rK (hO]hP]hQ]hR]hT]uhEj) h?]rL h`Xscheduler_cls=NonerM rN }rO (hDUhEjI ubahKhubeubeubh)rP }rQ (hDUhEj hFhhKhhM}rR (hO]hP]hQ]hR]hT]uhVNhWhh?]rS (hl)rT }rU (hDUhEjP hFNhKhohM}rV (hR]hQ]hO]hP]hT]Uentries]rW (hrX,get_scheduler() (celery.beat.Service method)h-UtrX auhVNhWhh?]ubh)rY }rZ (hDUhEjP hFNhKhhM}r[ (hhXpyhR]hQ]hO]hP]hT]hXmethodr\ hj\ uhVNhWhh?]r] (h)r^ }r_ (hDX!Service.get_scheduler(lazy=False)hEjY hFhhKhhM}r` (hR]ra h-ahhGX celery.beatrb rc }rd bhQ]hO]hP]hT]re h-ahXService.get_schedulerhj huhVNhWhh?]rf (h)rg }rh (hDX get_schedulerhEj^ hFhhKhhM}ri (hO]hP]hQ]hR]hT]uhVNhWhh?]rj h`X get_schedulerrk rl }rm (hDUhEjg ubaubh)rn }ro (hDUhEj^ hFhhKhhM}rp (hO]hP]hQ]hR]hT]uhVNhWhh?]rq h)rr }rs (hDX lazy=FalsehM}rt (hO]hP]hQ]hR]hT]uhEjn h?]ru h`X lazy=Falserv rw }rx (hDUhEjr ubahKhubaubeubh)ry }rz (hDUhEjY hFhhKhhM}r{ (hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r| }r} (hDUhEjP hFNhKhohM}r~ (hR]hQ]hO]hP]hT]Uentries]r (hrX)scheduler (celery.beat.Service attribute)h Utr auhVNhWhh?]ubh)r }r (hDUhEjP hFNhKhhM}r (hhXpyhR]hQ]hO]hP]hT]hX attributer hj uhVNhWhh?]r (h)r }r (hDXService.schedulerhEj hFhhKhhM}r (hR]r h ahhGX celery.beatr r }r bhQ]hO]hP]hT]r h ahXService.schedulerhj huhVNhWhh?]r h)r }r (hDX schedulerhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h`X schedulerr r }r (hDUhEj ubaubaubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r }r (hDUhEjP hFUhKhohM}r (hR]hQ]hO]hP]hT]Uentries]r (hrX-scheduler_cls (celery.beat.Service attribute)hUtr auhVNhWhh?]ubh)r }r (hDUhEjP hFUhKhhM}r (hhXpyhR]hQ]hO]hP]hT]hX attributer hj uhVNhWhh?]r (h)r }r (hDXService.scheduler_clshEj hFhhKhhM}r (hR]r hahhGX celery.beatr r }r bhQ]hO]hP]hT]r hahXService.scheduler_clshj huhVNhWhh?]r h)r }r (hDX scheduler_clshEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h`X scheduler_clsr r }r (hDUhEj ubaubaubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r ht)r }r (hDX%alias of :class:`PersistentScheduler`hEj hFUhKhyhM}r (hO]hP]hQ]hR]hT]uhVKhWhh?]r (h`X alias of r r }r (hDX alias of hEj ubj)r }r (hDX:class:`PersistentScheduler`r hEj hFNhKjhM}r (UreftypeXclassjjXPersistentSchedulerU refdomainXpyr hR]hQ]U refexplicithO]hP]hT]jjjj jjuhVNh?]r j)r }r (hDj hM}r (hO]hP]r (jj Xpy-classr ehQ]hR]hT]uhEj h?]r h`XPersistentSchedulerr r }r (hDUhEj ubahKj ubaubeubaubeubhl)r }r (hDUhEjP hFNhKhohM}r (hR]hQ]hO]hP]hT]Uentries]r (hrX$start() (celery.beat.Service method)hUtr auhVNhWhh?]ubh)r }r (hDUhEjP hFNhKhhM}r (hhXpyhR]hQ]hO]hP]hT]hXmethodr hj uhVNhWhh?]r (h)r }r (hDX%Service.start(embedded_process=False)hEj hFhhKhhM}r (hR]r hahhGX celery.beatr r }r bhQ]hO]hP]hT]r hahX Service.starthj huhVNhWhh?]r (h)r }r (hDXstarthEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h`Xstartr r }r (hDUhEj ubaubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h)r }r (hDXembedded_process=FalsehM}r (hO]hP]hQ]hR]hT]uhEj h?]r h`Xembedded_process=Falser r }r (hDUhEj ubahKhubaubeubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r }r (hDUhEjP hFNhKhohM}r (hR]hQ]hO]hP]hT]Uentries]r (hrX#stop() (celery.beat.Service method)hUtr auhVNhWhh?]ubh)r }r (hDUhEjP hFNhKhhM}r (hhXpyhR]hQ]hO]hP]hT]hXmethodr hj uhVNhWhh?]r (h)r }r (hDXService.stop(wait=False)hEj hFhhKhhM}r (hR]r hahhGX celery.beatr r }r bhQ]hO]hP]hT]r hahX Service.stophj huhVNhWhh?]r (h)r }r (hDXstophEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h`Xstopr r }r (hDUhEj ubaubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h)r }r (hDX wait=FalsehM}r (hO]hP]hQ]hR]hT]uhEj h?]r h`X wait=Falser r }r (hDUhEj ubahKhubaubeubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r }r (hDUhEjP hFNhKhohM}r (hR]hQ]hO]hP]hT]Uentries]r (hrX#sync() (celery.beat.Service method)h(Utr! auhVNhWhh?]ubh)r" }r# (hDUhEjP hFNhKhhM}r$ (hhXpyhR]hQ]hO]hP]hT]hXmethodr% hj% uhVNhWhh?]r& (h)r' }r( (hDXService.sync()r) hEj" hFhhKhhM}r* (hR]r+ h(ahhGX celery.beatr, r- }r. bhQ]hO]hP]hT]r/ h(ahX Service.synchj huhVNhWhh?]r0 (h)r1 }r2 (hDXsynchEj' hFhhKhhM}r3 (hO]hP]hQ]hR]hT]uhVNhWhh?]r4 h`Xsyncr5 r6 }r7 (hDUhEj1 ubaubh)r8 }r9 (hDUhEj' hFhhKhhM}r: (hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)r; }r< (hDUhEj" hFhhKhhM}r= (hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubeubeubeubahDUU transformerr> NU footnote_refsr? }r@ UrefnamesrA }rB Usymbol_footnotesrC ]rD Uautofootnote_refsrE ]rF Usymbol_footnote_refsrG ]rH U citationsrI ]rJ hWhU current_linerK NUtransform_messagesrL ]rM cdocutils.nodes system_message rN )rO }rP (hDUhM}rQ (hO]UlevelKhR]hQ]UsourcehghP]hT]UlineKUtypeUINFOrR uh?]rS ht)rT }rU (hDUhM}rV (hO]hP]hQ]hR]hT]uhEjO h?]rW h`X8Hyperlink target "module-celery.beat" is not referenced.rX rY }rZ (hDUhEjT ubahKhyubahKUsystem_messager[ ubaUreporterr\ NUid_startr] KU autofootnotesr^ ]r_ U citation_refsr` }ra Uindirect_targetsrb ]rc Usettingsrd (cdocutils.frontend Values re orf }rg (Ufootnote_backlinksrh KUrecord_dependenciesri NU rfc_base_urlrj Uhttp://tools.ietf.org/html/rk U tracebackrl Upep_referencesrm NUstrip_commentsrn NU toc_backlinksro Uentryrp U language_coderq Uenrr U datestamprs NU report_levelrt KU _destinationru NU halt_levelrv KU strip_classesrw Nh]NUerror_encoding_error_handlerrx Ubackslashreplacery Udebugrz NUembed_stylesheetr{ Uoutput_encoding_error_handlerr| Ustrictr} U sectnum_xformr~ KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr UUTF-8r U_sourcer U]/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.beat.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr j} Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (hjhj5hjh j{hkheh jUh jh hh j hjOhjhj:hj hjhjXhjhjhj hjhjhjZhjrhjhjhj hj hjh jh=cdocutils.nodes topic r )r }r (hDUhEhBhFhIhKUtopicr hM}r (hO]hP]r (Ucontentsr Ulocalr ehQ]hR]r h=ahT]r h!auhVKhWhh?]r cdocutils.nodes pending r )r }r (hDX.. contents:: :local:hEj U transformr cdocutils.transforms.parts Contents r Udetailsr }r UlocalNshKUpendingr hM}r (hO]hP]hQ]hR]hT]uh?]ubaubh"j{h#jh$j+h>hBh%jh&jh'jh(j' h)jh*jh+j[h,j3h-j^ h.jh/j h1jh2jh3juUsubstitution_namesr }r hKhWhM}r (hO]hR]hQ]UsourcehIhP]hT]uU footnotesr ]r Urefidsr }r ub.PKYDDl_sAsAGcelery-2.1-archived/.doctrees/internals/reference/celery.routes.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X%celery.routes.MapRoute.route_for_taskqXcelery.routes.MapRouteqXcelery.routes.Router.routeqXcelery.routes.mergeq Xcelery.routes.Routerq X!celery.routes.Router.lookup_routeq Xmessage routers - celery.routesq NXcelery.routes.prepareq Xcelery.routes.Router.add_queueqX'celery.routes.Router.expand_destinationqUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h Umessage-routers-celery-routesqh h hhhhhUcontentsquUchildrenq]qcdocutils.nodes section q)q}q (U rawsourceq!UUparentq"hUsourceq#cdocutils.nodes reprunicode q$X_/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.routes.rstq%q&}q'bUtagnameq(Usectionq)U attributesq*}q+(Udupnamesq,]Uclassesq-]Ubackrefsq.]Uidsq/]q0haUnamesq1]q2h auUlineq3KUdocumentq4hh]q5(cdocutils.nodes title q6)q7}q8(h!XMessage Routers - celery.routesq9h"hh#h&h(Utitleq:h*}q;(h,]h-]h.]h/]h1]uh3Kh4hh]qq?}q@(h!h9h"h7ubaubcdocutils.nodes target qA)qB}qC(h!Uh"hh#U qDh(UtargetqEh*}qF(h,]h/]qGXmodule-celery.routesqHah.]Uismodh-]h1]uh3Kh4hh]ubcsphinx.addnodes index qI)qJ}qK(h!Uh"hh#hDh(UindexqLh*}qM(h/]h.]h,]h-]h1]Uentries]qN(UsingleqOXcelery.routes (module)Xmodule-celery.routesUtqPauh3Kh4hh]ubhI)qQ}qR(h!Uh"hh#Nh(hLh*}qS(h/]h.]h,]h-]h1]Uentries]qT(hOX!MapRoute (class in celery.routes)hUtqUauh3Nh4hh]ubcsphinx.addnodes desc qV)qW}qX(h!Uh"hh#Nh(UdescqYh*}qZ(Unoindexq[Udomainq\Xpyh/]h.]h,]h-]h1]Uobjtypeq]Xclassq^Udesctypeq_h^uh3Nh4hh]q`(csphinx.addnodes desc_signature qa)qb}qc(h!X MapRoute(map)h"hWh#U qdh(Udesc_signatureqeh*}qf(h/]qghaUmoduleqhh$X celery.routesqiqj}qkbh.]h,]h-]h1]qlhaUfullnameqmXMapRouteqnUclassqoUUfirstqpuh3Nh4hh]qq(csphinx.addnodes desc_annotation qr)qs}qt(h!Xclass h"hbh#hdh(Udesc_annotationquh*}qv(h,]h-]h.]h/]h1]uh3Nh4hh]qwh=Xclass qxqy}qz(h!Uh"hsubaubcsphinx.addnodes desc_addname q{)q|}q}(h!Xcelery.routes.h"hbh#hdh(U desc_addnameq~h*}q(h,]h-]h.]h/]h1]uh3Nh4hh]qh=Xcelery.routes.qq}q(h!Uh"h|ubaubcsphinx.addnodes desc_name q)q}q(h!hnh"hbh#hdh(U desc_nameqh*}q(h,]h-]h.]h/]h1]uh3Nh4hh]qh=XMapRouteqq}q(h!Uh"hubaubcsphinx.addnodes desc_parameterlist q)q}q(h!Uh"hbh#hdh(Udesc_parameterlistqh*}q(h,]h-]h.]h/]h1]uh3Nh4hh]qcsphinx.addnodes desc_parameter q)q}q(h!Xmaph*}q(h,]h-]h.]h/]h1]uh"hh]qh=Xmapqq}q(h!Uh"hubah(Udesc_parameterqubaubeubcsphinx.addnodes desc_content q)q}q(h!Uh"hWh#hdh(U desc_contentqh*}q(h,]h-]h.]h/]h1]uh3Nh4hh]q(cdocutils.nodes paragraph q)q}q(h!X&Makes a router out of a :class:`dict`.h"hh#Xi/var/build/user_builds/celery/checkouts/2.1-archived/celery/routes.py:docstring of celery.routes.MapRouteqh(U paragraphqh*}q(h,]h-]h.]h/]h1]uh3Kh4hh]q(h=XMakes a router out of a qq}q(h!XMakes a router out of a h"hubcsphinx.addnodes pending_xref q)q}q(h!X :class:`dict`qh"hh#h&h(U pending_xrefqh*}q(UreftypeXclassUrefwarnqU reftargetqXdictU refdomainXpyqh/]h.]U refexplicith,]h-]h1]UrefdocqX!internals/reference/celery.routesqUpy:classqhnU py:moduleqX celery.routesquh3Kh]qcdocutils.nodes literal q)q}q(h!hh*}q(h,]h-]q(UxrefqhXpy-classqeh.]h/]h1]uh"hh]qh=XdictqÅq}q(h!Uh"hubah(Uliteralqubaubh=X.q}q(h!X.h"hubeubhI)q}q(h!Uh"hh#Nh(hLh*}q(h/]h.]h,]h-]h1]Uentries]q(hOX0route_for_task() (celery.routes.MapRoute method)hUtqauh3Nh4hh]ubhV)q}q(h!Uh"hh#Nh(hYh*}q(h[h\Xpyh/]h.]h,]h-]h1]h]Xmethodqh_huh3Nh4hh]q(ha)q}q(h!X.MapRoute.route_for_task(task, *args, **kwargs)h"hh#hdh(heh*}q(h/]qhahhh$X celery.routesqׅq}qbh.]h,]h-]h1]qhahmXMapRoute.route_for_taskhohnhpuh3Nh4hh]q(h)q}q(h!Xroute_for_taskh"hh#hdh(hh*}q(h,]h-]h.]h/]h1]uh3Nh4hh]qh=Xroute_for_taskqq}q(h!Uh"hubaubh)q}q(h!Uh"hh#hdh(hh*}q(h,]h-]h.]h/]h1]uh3Nh4hh]q(h)q}q(h!Xtaskh*}q(h,]h-]h.]h/]h1]uh"hh]qh=Xtaskq녁q}q(h!Uh"hubah(hubh)q}q(h!X*argsh*}q(h,]h-]h.]h/]h1]uh"hh]qh=X*argsqq}q(h!Uh"hubah(hubh)q}q(h!X**kwargsh*}q(h,]h-]h.]h/]h1]uh"hh]qh=X**kwargsqq}q(h!Uh"hubah(hubeubeubh)q}q(h!Uh"hh#hdh(hh*}q(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubeubeubhI)q}r(h!Uh"hh#Nh(hLh*}r(h/]h.]h,]h-]h1]Uentries]r(hOXRouter (class in celery.routes)h Utrauh3Nh4hh]ubhV)r}r(h!Uh"hh#Nh(hYh*}r(h[h\Xpyh/]h.]h,]h-]h1]h]Xclassrh_juh3Nh4hh]r(ha)r }r (h!X6Router(routes=None, queues=None, create_missing=False)h"jh#hdh(heh*}r (h/]r h ahhh$X celery.routesr r}rbh.]h,]h-]h1]rh ahmXRouterrhoUhpuh3Nh4hh]r(hr)r}r(h!Xclass h"j h#hdh(huh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh=Xclass rr}r(h!Uh"jubaubh{)r}r(h!Xcelery.routes.h"j h#hdh(h~h*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh=Xcelery.routes.rr}r (h!Uh"jubaubh)r!}r"(h!jh"j h#hdh(hh*}r#(h,]h-]h.]h/]h1]uh3Nh4hh]r$h=XRouterr%r&}r'(h!Uh"j!ubaubh)r(}r)(h!Uh"j h#hdh(hh*}r*(h,]h-]h.]h/]h1]uh3Nh4hh]r+(h)r,}r-(h!X routes=Noneh*}r.(h,]h-]h.]h/]h1]uh"j(h]r/h=X routes=Noner0r1}r2(h!Uh"j,ubah(hubh)r3}r4(h!X queues=Noneh*}r5(h,]h-]h.]h/]h1]uh"j(h]r6h=X queues=Noner7r8}r9(h!Uh"j3ubah(hubh)r:}r;(h!Xcreate_missing=Falseh*}r<(h,]h-]h.]h/]h1]uh"j(h]r=h=Xcreate_missing=Falser>r?}r@(h!Uh"j:ubah(hubeubeubh)rA}rB(h!Uh"jh#hdh(hh*}rC(h,]h-]h.]h/]h1]uh3Nh4hh]rD(hI)rE}rF(h!Uh"jAh#Nh(hLh*}rG(h/]h.]h,]h-]h1]Uentries]rH(hOX)add_queue() (celery.routes.Router method)hUtrIauh3Nh4hh]ubhV)rJ}rK(h!Uh"jAh#Nh(hYh*}rL(h[h\Xpyh/]h.]h,]h-]h1]h]XmethodrMh_jMuh3Nh4hh]rN(ha)rO}rP(h!XRouter.add_queue(queue)h"jJh#hdh(heh*}rQ(h/]rRhahhh$X celery.routesrSrT}rUbh.]h,]h-]h1]rVhahmXRouter.add_queuehojhpuh3Nh4hh]rW(h)rX}rY(h!X add_queueh"jOh#hdh(hh*}rZ(h,]h-]h.]h/]h1]uh3Nh4hh]r[h=X add_queuer\r]}r^(h!Uh"jXubaubh)r_}r`(h!Uh"jOh#hdh(hh*}ra(h,]h-]h.]h/]h1]uh3Nh4hh]rbh)rc}rd(h!Xqueueh*}re(h,]h-]h.]h/]h1]uh"j_h]rfh=Xqueuergrh}ri(h!Uh"jcubah(hubaubeubh)rj}rk(h!Uh"jJh#hdh(hh*}rl(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubhI)rm}rn(h!Uh"jAh#Nh(hLh*}ro(h/]h.]h,]h-]h1]Uentries]rp(hOX2expand_destination() (celery.routes.Router method)hUtrqauh3Nh4hh]ubhV)rr}rs(h!Uh"jAh#Nh(hYh*}rt(h[h\Xpyh/]h.]h,]h-]h1]h]Xmethodruh_juuh3Nh4hh]rv(ha)rw}rx(h!X Router.expand_destination(route)h"jrh#hdh(heh*}ry(h/]rzhahhh$X celery.routesr{r|}r}bh.]h,]h-]h1]r~hahmXRouter.expand_destinationhojhpuh3Nh4hh]r(h)r}r(h!Xexpand_destinationh"jwh#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh=Xexpand_destinationrr}r(h!Uh"jubaubh)r}r(h!Uh"jwh#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh)r}r(h!Xrouteh*}r(h,]h-]h.]h/]h1]uh"jh]rh=Xrouterr}r(h!Uh"jubah(hubaubeubh)r}r(h!Uh"jrh#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubhI)r}r(h!Uh"jAh#Nh(hLh*}r(h/]h.]h,]h-]h1]Uentries]r(hOX,lookup_route() (celery.routes.Router method)h Utrauh3Nh4hh]ubhV)r}r(h!Uh"jAh#Nh(hYh*}r(h[h\Xpyh/]h.]h,]h-]h1]h]Xmethodrh_juh3Nh4hh]r(ha)r}r(h!X1Router.lookup_route(task, args=None, kwargs=None)h"jh#hdh(heh*}r(h/]rh ahhh$X celery.routesrr}rbh.]h,]h-]h1]rh ahmXRouter.lookup_routehojhpuh3Nh4hh]r(h)r}r(h!X lookup_routeh"jh#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh=X lookup_routerr}r(h!Uh"jubaubh)r}r(h!Uh"jh#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]r(h)r}r(h!Xtaskh*}r(h,]h-]h.]h/]h1]uh"jh]rh=Xtaskrr}r(h!Uh"jubah(hubh)r}r(h!X args=Noneh*}r(h,]h-]h.]h/]h1]uh"jh]rh=X args=Nonerr}r(h!Uh"jubah(hubh)r}r(h!X kwargs=Noneh*}r(h,]h-]h.]h/]h1]uh"jh]rh=X kwargs=Nonerr}r(h!Uh"jubah(hubeubeubh)r}r(h!Uh"jh#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubhI)r}r(h!Uh"jAh#Nh(hLh*}r(h/]h.]h,]h-]h1]Uentries]r(hOX%route() (celery.routes.Router method)hUtrauh3Nh4hh]ubhV)r}r(h!Uh"jAh#Nh(hYh*}r(h[h\Xpyh/]h.]h,]h-]h1]h]Xmethodrh_juh3Nh4hh]r(ha)r}r(h!X/Router.route(options, task, args=(), kwargs={})h"jh#hdh(heh*}r(h/]rhahhh$X celery.routesrr}rbh.]h,]h-]h1]rhahmX Router.routehojhpuh3Nh4hh]r(h)r}r(h!Xrouteh"jh#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh=Xrouterr}r(h!Uh"jubaubh)r}r(h!Uh"jh#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]r(h)r}r(h!Xoptionsh*}r(h,]h-]h.]h/]h1]uh"jh]rh=Xoptionsrr}r(h!Uh"jubah(hubh)r}r(h!Xtaskh*}r(h,]h-]h.]h/]h1]uh"jh]rh=Xtaskrr}r(h!Uh"jubah(hubh)r}r(h!Xargs=()h*}r(h,]h-]h.]h/]h1]uh"jh]rh=Xargs=()rr}r(h!Uh"jubah(hubh)r}r(h!X kwargs={}h*}r(h,]h-]h.]h/]h1]uh"jh]rh=X kwargs={}rr}r(h!Uh"jubah(hubeubeubh)r}r(h!Uh"jh#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubeubeubhI)r}r (h!Uh"hh#Xf/var/build/user_builds/celery/checkouts/2.1-archived/celery/routes.py:docstring of celery.routes.merger h(hLh*}r (h/]h.]h,]h-]h1]Uentries]r (hOX!merge() (in module celery.routes)h Utr auh3Nh4hh]ubhV)r}r(h!Uh"hh#j h(hYh*}r(h[h\Xpyh/]h.]h,]h-]h1]h]Xfunctionrh_juh3Nh4hh]r(ha)r}r(h!X merge(a, b)h"jh#hdh(heh*}r(h/]rh ahhh$X celery.routesrr}rbh.]h,]h-]h1]rh ahmXmergerhoUhpuh3Nh4hh]r(h{)r}r(h!Xcelery.routes.h"jh#hdh(h~h*}r(h,]h-]h.]h/]h1]uh3Nh4hh]r h=Xcelery.routes.r!r"}r#(h!Uh"jubaubh)r$}r%(h!jh"jh#hdh(hh*}r&(h,]h-]h.]h/]h1]uh3Nh4hh]r'h=Xmerger(r)}r*(h!Uh"j$ubaubh)r+}r,(h!Uh"jh#hdh(hh*}r-(h,]h-]h.]h/]h1]uh3Nh4hh]r.(h)r/}r0(h!Xah*}r1(h,]h-]h.]h/]h1]uh"j+h]r2h=Xar3}r4(h!Uh"j/ubah(hubh)r5}r6(h!Xbh*}r7(h,]h-]h.]h/]h1]uh"j+h]r8h=Xbr9}r:(h!Uh"j5ubah(hubeubeubh)r;}r<(h!Uh"jh#hdh(hh*}r=(h,]h-]h.]h/]h1]uh3Nh4hh]r>h)r?}r@(h!XdLike ``dict(a, **b)`` except it will keep values from ``a``, if the value in ``b`` is :const:`None`.h"j;h#j h(hh*}rA(h,]h-]h.]h/]h1]uh3Kh4hh]rB(h=XLike rCrD}rE(h!XLike h"j?ubh)rF}rG(h!X``dict(a, **b)``h*}rH(h,]h-]h.]h/]h1]uh"j?h]rIh=X dict(a, **b)rJrK}rL(h!Uh"jFubah(hubh=X! except it will keep values from rMrN}rO(h!X! except it will keep values from h"j?ubh)rP}rQ(h!X``a``h*}rR(h,]h-]h.]h/]h1]uh"j?h]rSh=XarT}rU(h!Uh"jPubah(hubh=X, if the value in rVrW}rX(h!X, if the value in h"j?ubh)rY}rZ(h!X``b``h*}r[(h,]h-]h.]h/]h1]uh"j?h]r\h=Xbr]}r^(h!Uh"jYubah(hubh=X is r_r`}ra(h!X is h"j?ubh)rb}rc(h!X :const:`None`rdh"j?h#Nh(hh*}re(UreftypeXconsthhXNoneU refdomainXpyrfh/]h.]U refexplicith,]h-]h1]hhhNhhuh3Nh]rgh)rh}ri(h!jdh*}rj(h,]h-]rk(hjfXpy-constrleh.]h/]h1]uh"jbh]rmh=XNonernro}rp(h!Uh"jhubah(hubaubh=X.rq}rr(h!X.h"j?ubeubaubeubhI)rs}rt(h!Uh"hh#Xh/var/build/user_builds/celery/checkouts/2.1-archived/celery/routes.py:docstring of celery.routes.prepareruh(hLh*}rv(h/]h.]h,]h-]h1]Uentries]rw(hOX#prepare() (in module celery.routes)h Utrxauh3Nh4hh]ubhV)ry}rz(h!Uh"hh#juh(hYh*}r{(h[h\Xpyh/]h.]h,]h-]h1]h]Xfunctionr|h_j|uh3Nh4hh]r}(ha)r~}r(h!Xprepare(routes)rh"jyh#hdh(heh*}r(h/]rh ahhh$X celery.routesrr}rbh.]h,]h-]h1]rh ahmXpreparerhoUhpuh3Nh4hh]r(h{)r}r(h!Xcelery.routes.h"j~h#hdh(h~h*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh=Xcelery.routes.rr}r(h!Uh"jubaubh)r}r(h!jh"j~h#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh=Xpreparerr}r(h!Uh"jubaubh)r}r(h!Uh"j~h#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh)r}r(h!Xroutesh*}r(h,]h-]h.]h/]h1]uh"jh]rh=Xroutesrr}r(h!Uh"jubah(hubaubeubh)r}r(h!Uh"jyh#hdh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh)r}r(h!XExpand ROUTES setting.rh"jh#juh(hh*}r(h,]h-]h.]h/]h1]uh3Kh4hh]rh=XExpand ROUTES setting.rr}r(h!jh"jubaubaubeubeubah!UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh4hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h!Uh*}r(h,]UlevelKh/]h.]UsourcehDh-]h1]UlineKUtypeUINFOruh]rh)r}r(h!Uh*}r(h,]h-]h.]h/]h1]uh"jh]rh=X:Hyperlink target "module-celery.routes" is not referenced.rr}r(h!Uh"jubah(hubah(Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh:NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcer U_/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.routes.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhhbhjhHhBh jh j h jh j~hjOhjwhcdocutils.nodes topic r)r }r!(h!Uh"hh#h&h(Utopicr"h*}r#(h,]h-]r$(Ucontentsr%Ulocalr&eh.]h/]r'hah1]r(hauh3Kh4hh]r)cdocutils.nodes pending r*)r+}r,(h!X.. contents:: :local:h"j U transformr-cdocutils.transforms.parts Contents r.Udetailsr/}r0UlocalNsh(Upendingr1h*}r2(h,]h-]h.]h/]h1]uh]ubaubhhuUsubstitution_namesr3}r4h(h4h*}r5(h,]h/]h.]Usourceh&h-]h1]uU footnotesr6]r7Urefidsr8}r9ub.PKYDDG1b1bQcelery-2.1-archived/.doctrees/internals/reference/celery.backends.pyredis.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X4celery.backends.pyredis.RedisBackend.process_cleanupqX(celery.backends.pyredis.RedisBackend.getqX/celery.backends.pyredis.RedisBackend.redis_hostqX+celery.backends.pyredis.RedisBackend.deleteq X-celery.backends.pyredis.RedisBackend.redis_dbq X)celery.backends.pyredis.RedisBackend.openq X/celery.backends.pyredis.RedisBackend.redis_portq X,celery.backends.pyredis.RedisBackend.expiresq X8celery.backends.pyredis.RedisBackend.redis_connect_retryqX$celery.backends.pyredis.RedisBackendqX2celery.backends.pyredis.RedisBackend.redis_timeoutqX3celery.backends.pyredis.RedisBackend.redis_passwordqX*celery.backends.pyredis.RedisBackend.closeqX8celery.backends.pyredis.RedisBackend.deprecated_settingsqX(celery.backends.pyredis.RedisBackend.setqX(backend: redis - celery.backends.pyredisqNUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h h h h hhhhhhhhhhhhhhhU%backend-redis-celery-backends-pyredisq hUcontentsq!uUchildrenq"]q#cdocutils.nodes section q$)q%}q&(U rawsourceq'UUparentq(hUsourceq)cdocutils.nodes reprunicode q*Xi/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.pyredis.rstq+q,}q-bUtagnameq.Usectionq/U attributesq0}q1(Udupnamesq2]Uclassesq3]Ubackrefsq4]Uidsq5]q6h aUnamesq7]q8hauUlineq9KUdocumentq:hh"]q;(cdocutils.nodes title q<)q=}q>(h'X(Backend: Redis - celery.backends.pyredisq?h(h%h)h,h.Utitleq@h0}qA(h2]h3]h4]h5]h7]uh9Kh:hh"]qBcdocutils.nodes Text qCX(Backend: Redis - celery.backends.pyredisqDqE}qF(h'h?h(h=ubaubcdocutils.nodes target qG)qH}qI(h'Uh(h%h)U qJh.UtargetqKh0}qL(h2]h5]qMXmodule-celery.backends.pyredisqNah4]Uismodh3]h7]uh9Kh:hh"]ubcsphinx.addnodes index qO)qP}qQ(h'Uh(h%h)hJh.UindexqRh0}qS(h5]h4]h2]h3]h7]Uentries]qT(UsingleqUX celery.backends.pyredis (module)Xmodule-celery.backends.pyredisUtqVauh9Kh:hh"]ubhO)qW}qX(h'Uh(h%h)Nh.hRh0}qY(h5]h4]h2]h3]h7]Uentries]qZ(hUX/RedisBackend (class in celery.backends.pyredis)hUtq[auh9Nh:hh"]ubcsphinx.addnodes desc q\)q]}q^(h'Uh(h%h)Nh.Udescq_h0}q`(UnoindexqaUdomainqbXpyh5]h4]h2]h3]h7]UobjtypeqcXclassqdUdesctypeqehduh9Nh:hh"]qf(csphinx.addnodes desc_signature qg)qh}qi(h'XRedisBackend(redis_host=None, redis_port=None, redis_db=None, redis_timeout=None, redis_password=None, redis_connect_retry=None, redis_connect_timeout=None, expires=None)h(h]h)U qjh.Udesc_signatureqkh0}ql(h5]qmhaUmoduleqnh*Xcelery.backends.pyredisqoqp}qqbh4]h2]h3]h7]qrhaUfullnameqsX RedisBackendqtUclassquUUfirstqvuh9Nh:hh"]qw(csphinx.addnodes desc_annotation qx)qy}qz(h'Xclass h(hhh)hjh.Udesc_annotationq{h0}q|(h2]h3]h4]h5]h7]uh9Nh:hh"]q}hCXclass q~q}q(h'Uh(hyubaubcsphinx.addnodes desc_addname q)q}q(h'Xcelery.backends.pyredis.h(hhh)hjh.U desc_addnameqh0}q(h2]h3]h4]h5]h7]uh9Nh:hh"]qhCXcelery.backends.pyredis.qq}q(h'Uh(hubaubcsphinx.addnodes desc_name q)q}q(h'hth(hhh)hjh.U desc_nameqh0}q(h2]h3]h4]h5]h7]uh9Nh:hh"]qhCX RedisBackendqq}q(h'Uh(hubaubcsphinx.addnodes desc_parameterlist q)q}q(h'Uh(hhh)hjh.Udesc_parameterlistqh0}q(h2]h3]h4]h5]h7]uh9Nh:hh"]q(csphinx.addnodes desc_parameter q)q}q(h'Xredis_host=Noneh0}q(h2]h3]h4]h5]h7]uh(hh"]qhCXredis_host=Noneqq}q(h'Uh(hubah.Udesc_parameterqubh)q}q(h'Xredis_port=Noneh0}q(h2]h3]h4]h5]h7]uh(hh"]qhCXredis_port=Noneqq}q(h'Uh(hubah.hubh)q}q(h'X redis_db=Noneh0}q(h2]h3]h4]h5]h7]uh(hh"]qhCX redis_db=Noneqq}q(h'Uh(hubah.hubh)q}q(h'Xredis_timeout=Noneh0}q(h2]h3]h4]h5]h7]uh(hh"]qhCXredis_timeout=Noneqq}q(h'Uh(hubah.hubh)q}q(h'Xredis_password=Noneh0}q(h2]h3]h4]h5]h7]uh(hh"]qhCXredis_password=Noneqq}q(h'Uh(hubah.hubh)q}q(h'Xredis_connect_retry=Noneh0}q(h2]h3]h4]h5]h7]uh(hh"]qhCXredis_connect_retry=Noneq…q}q(h'Uh(hubah.hubh)q}q(h'Xredis_connect_timeout=Noneh0}q(h2]h3]h4]h5]h7]uh(hh"]qhCXredis_connect_timeout=NoneqɅq}q(h'Uh(hubah.hubh)q}q(h'X expires=Noneh0}q(h2]h3]h4]h5]h7]uh(hh"]qhCX expires=NoneqЅq}q(h'Uh(hubah.hubeubeubcsphinx.addnodes desc_content q)q}q(h'Uh(h]h)hjh.U desc_contentqh0}q(h2]h3]h4]h5]h7]uh9Nh:hh"]q(cdocutils.nodes paragraph q)q}q(h'XRedis based task backend store.qh(hh)X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/pyredis.py:docstring of celery.backends.pyredis.RedisBackendqh.U paragraphqh0}q(h2]h3]h4]h5]h7]uh9Kh:hh"]qhCXRedis based task backend store.qᅁq}q(h'hh(hubaubhO)q}q(h'Uh(hh)hh.hRh0}q(h5]h4]h2]h3]h7]Uentries]q(hUX;redis_host (celery.backends.pyredis.RedisBackend attribute)hUtqauh9Nh:hh"]ubh\)q}q(h'Uh(hh)hh.h_h0}q(hahbXpyh5]h4]h2]h3]h7]hcX attributeqhehuh9Nh:hh"]q(hg)q}q(h'X redis_hostqh(hh)hh.hkh0}q(h5]qhahnXcelery.backends.pyredisqh4]h2]h3]h7]qhahsXRedisBackend.redis_hosthuhthvuh9Kh:hh"]qh)q}q(h'hh(hh)hh.hh0}q(h2]h3]h4]h5]h7]uh9Kh:hh"]qhCX redis_hostqq}q(h'Uh(hubaubaubh)q}q(h'Uh(hh)hh.hh0}q(h2]h3]h4]h5]h7]uh9Kh:hh"]rh)r}r(h'X!The hostname to the Redis server.rh(hh)hh.hh0}r(h2]h3]h4]h5]h7]uh9Kh:hh"]rhCX!The hostname to the Redis server.rr}r(h'jh(jubaubaubeubhO)r }r (h'Uh(hh)hh.hRh0}r (h5]h4]h2]h3]h7]Uentries]r (hUX;redis_port (celery.backends.pyredis.RedisBackend attribute)h Utr auh9Nh:hh"]ubh\)r}r(h'Uh(hh)hh.h_h0}r(hahbXpyh5]h4]h2]h3]h7]hcX attributerhejuh9Nh:hh"]r(hg)r}r(h'X redis_portrh(jh)hJh.hkh0}r(h5]rh ahnhh4]h2]h3]h7]rh ahsXRedisBackend.redis_porthuhthvuh9Kh:hh"]rh)r}r(h'jh(jh)hJh.hh0}r(h2]h3]h4]h5]h7]uh9Kh:hh"]rhCX redis_portrr}r (h'Uh(jubaubaubh)r!}r"(h'Uh(jh)hJh.hh0}r#(h2]h3]h4]h5]h7]uh9Kh:hh"]r$(h)r%}r&(h'XThe port to the Redis server.r'h(j!h)hh.hh0}r((h2]h3]h4]h5]h7]uh9K h:hh"]r)hCXThe port to the Redis server.r*r+}r,(h'j'h(j%ubaubh)r-}r.(h'XRaises :class:`celery.exceptions.ImproperlyConfigured` if the :setting:`REDIS_HOST` or :setting:`REDIS_PORT` settings is not set.h(j!h)hh.hh0}r/(h2]h3]h4]h5]h7]uh9K h:hh"]r0(hCXRaises r1r2}r3(h'XRaises h(j-ubcsphinx.addnodes pending_xref r4)r5}r6(h'X/:class:`celery.exceptions.ImproperlyConfigured`r7h(j-h)Nh.U pending_xrefr8h0}r9(UreftypeXclassUrefwarnr:U reftargetr;X&celery.exceptions.ImproperlyConfiguredU refdomainXpyr<h5]h4]U refexplicith2]h3]h7]Urefdocr=X+internals/reference/celery.backends.pyredisr>Upy:classr?htU py:moduler@huh9Nh"]rAcdocutils.nodes literal rB)rC}rD(h'j7h0}rE(h2]h3]rF(UxrefrGj<Xpy-classrHeh4]h5]h7]uh(j5h"]rIhCX&celery.exceptions.ImproperlyConfiguredrJrK}rL(h'Uh(jCubah.UliteralrMubaubhCX if the rNrO}rP(h'X if the h(j-ubj4)rQ}rR(h'X:setting:`REDIS_HOST`rSh(j-h)Nh.j8h0}rT(UreftypeXsettingj:j;X REDIS_HOSTU refdomainXstdrUh5]h4]U refexplicith2]h3]h7]j=j>uh9Nh"]rVjB)rW}rX(h'jSh0}rY(h2]h3]rZ(jGjUX std-settingr[eh4]h5]h7]uh(jQh"]r\hCX REDIS_HOSTr]r^}r_(h'Uh(jWubah.jMubaubhCX or r`ra}rb(h'X or h(j-ubj4)rc}rd(h'X:setting:`REDIS_PORT`reh(j-h)Nh.j8h0}rf(UreftypeXsettingj:j;X REDIS_PORTU refdomainXstdrgh5]h4]U refexplicith2]h3]h7]j=j>uh9Nh"]rhjB)ri}rj(h'jeh0}rk(h2]h3]rl(jGjgX std-settingrmeh4]h5]h7]uh(jch"]rnhCX REDIS_PORTrorp}rq(h'Uh(jiubah.jMubaubhCX settings is not set.rrrs}rt(h'X settings is not set.h(j-ubeubeubeubhO)ru}rv(h'Uh(hh)X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/pyredis.py:docstring of celery.backends.pyredis.RedisBackend.closerwh.hRh0}rx(h5]h4]h2]h3]h7]Uentries]ry(hUX5close() (celery.backends.pyredis.RedisBackend method)hUtrzauh9Nh:hh"]ubh\)r{}r|(h'Uh(hh)jwh.h_h0}r}(hahbXpyh5]h4]h2]h3]h7]hcXmethodr~hej~uh9Nh:hh"]r(hg)r}r(h'XRedisBackend.close()h(j{h)hjh.hkh0}r(h5]rhahnh*Xcelery.backends.pyredisrr}rbh4]h2]h3]h7]rhahsXRedisBackend.closehuhthvuh9Nh:hh"]r(h)r}r(h'Xcloseh(jh)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCXcloserr}r(h'Uh(jubaubh)r}r(h'Uh(jh)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubh)r}r(h'Uh(j{h)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rh)r}r(h'XClose the connection to redis.rh(jh)jwh.hh0}r(h2]h3]h4]h5]h7]uh9Kh:hh"]rhCXClose the connection to redis.rr}r(h'jh(jubaubaubeubhO)r}r(h'Uh(hh)Nh.hRh0}r(h5]h4]h2]h3]h7]Uentries]r(hUX6delete() (celery.backends.pyredis.RedisBackend method)h Utrauh9Nh:hh"]ubh\)r}r(h'Uh(hh)Nh.h_h0}r(hahbXpyh5]h4]h2]h3]h7]hcXmethodrhejuh9Nh:hh"]r(hg)r}r(h'XRedisBackend.delete(key)h(jh)hjh.hkh0}r(h5]rh ahnh*Xcelery.backends.pyredisrr}rbh4]h2]h3]h7]rh ahsXRedisBackend.deletehuhthvuh9Nh:hh"]r(h)r}r(h'Xdeleteh(jh)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCXdeleterr}r(h'Uh(jubaubh)r}r(h'Uh(jh)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rh)r}r(h'Xkeyh0}r(h2]h3]h4]h5]h7]uh(jh"]rhCXkeyrr}r(h'Uh(jubah.hubaubeubh)r}r(h'Uh(jh)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubhO)r}r(h'Uh(hh)Nh.hRh0}r(h5]h4]h2]h3]h7]Uentries]r(hUXDdeprecated_settings (celery.backends.pyredis.RedisBackend attribute)hUtrauh9Nh:hh"]ubh\)r}r(h'Uh(hh)Nh.h_h0}r(hahbXpyh5]h4]h2]h3]h7]hcX attributerhejuh9Nh:hh"]r(hg)r}r(h'X RedisBackend.deprecated_settingsh(jh)U rh.hkh0}r(h5]rhahnh*Xcelery.backends.pyredisrr}rbh4]h2]h3]h7]rhahsX RedisBackend.deprecated_settingshuhthvuh9Nh:hh"]r(h)r}r(h'Xdeprecated_settingsh(jh)jh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCXdeprecated_settingsrr}r(h'Uh(jubaubhx)r}r(h'X6 = frozenset(['REDIS_TIMEOUT', 'REDIS_CONNECT_RETRY'])h(jh)jh.h{h0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCX6 = frozenset(['REDIS_TIMEOUT', 'REDIS_CONNECT_RETRY'])rr}r(h'Uh(jubaubeubh)r}r(h'Uh(jh)jh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubhO)r}r(h'Uh(hh)Nh.hRh0}r(h5]h4]h2]h3]h7]Uentries]r(hUX8expires (celery.backends.pyredis.RedisBackend attribute)h Utrauh9Nh:hh"]ubh\)r}r(h'Uh(hh)Nh.h_h0}r(hahbXpyh5]h4]h2]h3]h7]hcX attributerhejuh9Nh:hh"]r(hg)r}r(h'XRedisBackend.expiresh(jh)jh.hkh0}r(h5]rh ahnh*Xcelery.backends.pyredisrr}rbh4]h2]h3]h7]rh ahsXRedisBackend.expireshuhthvuh9Nh:hh"]r(h)r}r(h'Xexpiresh(jh)jh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCXexpiresrr}r(h'Uh(jubaubhx)r}r(h'X = Noneh(jh)jh.h{h0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]r hCX = Noner r }r (h'Uh(jubaubeubh)r }r(h'Uh(jh)jh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubhO)r}r(h'Uh(hh)Nh.hRh0}r(h5]h4]h2]h3]h7]Uentries]r(hUX3get() (celery.backends.pyredis.RedisBackend method)hUtrauh9Nh:hh"]ubh\)r}r(h'Uh(hh)Nh.h_h0}r(hahbXpyh5]h4]h2]h3]h7]hcXmethodrhejuh9Nh:hh"]r(hg)r}r(h'XRedisBackend.get(key)h(jh)hjh.hkh0}r(h5]rhahnh*Xcelery.backends.pyredisrr}r bh4]h2]h3]h7]r!hahsXRedisBackend.gethuhthvuh9Nh:hh"]r"(h)r#}r$(h'Xgeth(jh)hjh.hh0}r%(h2]h3]h4]h5]h7]uh9Nh:hh"]r&hCXgetr'r(}r)(h'Uh(j#ubaubh)r*}r+(h'Uh(jh)hjh.hh0}r,(h2]h3]h4]h5]h7]uh9Nh:hh"]r-h)r.}r/(h'Xkeyh0}r0(h2]h3]h4]h5]h7]uh(j*h"]r1hCXkeyr2r3}r4(h'Uh(j.ubah.hubaubeubh)r5}r6(h'Uh(jh)hjh.hh0}r7(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubhO)r8}r9(h'Uh(hh)X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/pyredis.py:docstring of celery.backends.pyredis.RedisBackend.openr:h.hRh0}r;(h5]h4]h2]h3]h7]Uentries]r<(hUX4open() (celery.backends.pyredis.RedisBackend method)h Utr=auh9Nh:hh"]ubh\)r>}r?(h'Uh(hh)j:h.h_h0}r@(hahbXpyh5]h4]h2]h3]h7]hcXmethodrAhejAuh9Nh:hh"]rB(hg)rC}rD(h'XRedisBackend.open()h(j>h)hjh.hkh0}rE(h5]rFh ahnh*Xcelery.backends.pyredisrGrH}rIbh4]h2]h3]h7]rJh ahsXRedisBackend.openhuhthvuh9Nh:hh"]rK(h)rL}rM(h'Xopenh(jCh)hjh.hh0}rN(h2]h3]h4]h5]h7]uh9Nh:hh"]rOhCXopenrPrQ}rR(h'Uh(jLubaubh)rS}rT(h'Uh(jCh)hjh.hh0}rU(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubh)rV}rW(h'Uh(j>h)hjh.hh0}rX(h2]h3]h4]h5]h7]uh9Nh:hh"]rY(h)rZ}r[(h'XIGet :class:`redis.Redis`` instance with the current server configuration.h(jVh)j:h.hh0}r\(h2]h3]h4]h5]h7]uh9Kh:hh"]r](hCXGet r^r_}r`(h'XGet h(jZubj4)ra}rb(h'X:class:`redis.Redis``rch(jZh)Nh.j8h0}rd(UreftypeXclassj:j;X redis.Redis`U refdomainXpyreh5]h4]U refexplicith2]h3]h7]j=j>j?htj@huh9Nh"]rfjB)rg}rh(h'jch0}ri(h2]h3]rj(jGjeXpy-classrkeh4]h5]h7]uh(jah"]rlhCX redis.Redis`rmrn}ro(h'Uh(jgubah.jMubaubhCX0 instance with the current server configuration.rprq}rr(h'X0 instance with the current server configuration.h(jZubeubh)rs}rt(h'XEThe connection is then cached until you do an explicit :meth:`close`.h(jVh)j:h.hh0}ru(h2]h3]h4]h5]h7]uh9Kh:hh"]rv(hCX7The connection is then cached until you do an explicit rwrx}ry(h'X7The connection is then cached until you do an explicit h(jsubj4)rz}r{(h'X :meth:`close`r|h(jsh)Nh.j8h0}r}(UreftypeXmethj:j;XcloseU refdomainXpyr~h5]h4]U refexplicith2]h3]h7]j=j>j?htj@huh9Nh"]rjB)r}r(h'j|h0}r(h2]h3]r(jGj~Xpy-methreh4]h5]h7]uh(jzh"]rhCXclose()rr}r(h'Uh(jubah.jMubaubhCX.r}r(h'X.h(jsubeubeubeubhO)r}r(h'Uh(hh)Nh.hRh0}r(h5]h4]h2]h3]h7]Uentries]r(hUX?process_cleanup() (celery.backends.pyredis.RedisBackend method)hUtrauh9Nh:hh"]ubh\)r}r(h'Uh(hh)Nh.h_h0}r(hahbXpyh5]h4]h2]h3]h7]hcXmethodrhejuh9Nh:hh"]r(hg)r}r(h'XRedisBackend.process_cleanup()h(jh)hjh.hkh0}r(h5]rhahnh*Xcelery.backends.pyredisrr}rbh4]h2]h3]h7]rhahsXRedisBackend.process_cleanuphuhthvuh9Nh:hh"]r(h)r}r(h'Xprocess_cleanuph(jh)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCXprocess_cleanuprr}r(h'Uh(jubaubh)r}r(h'Uh(jh)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubh)r}r(h'Uh(jh)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubhO)r}r(h'Uh(hh)Nh.hRh0}r(h5]h4]h2]h3]h7]Uentries]r(hUXDredis_connect_retry (celery.backends.pyredis.RedisBackend attribute)hUtrauh9Nh:hh"]ubh\)r}r(h'Uh(hh)Nh.h_h0}r(hahbXpyh5]h4]h2]h3]h7]hcX attributerhejuh9Nh:hh"]r(hg)r}r(h'X RedisBackend.redis_connect_retryh(jh)jh.hkh0}r(h5]rhahnh*Xcelery.backends.pyredisrr}rbh4]h2]h3]h7]rhahsX RedisBackend.redis_connect_retryhuhthvuh9Nh:hh"]r(h)r}r(h'Xredis_connect_retryh(jh)jh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCXredis_connect_retryrr}r(h'Uh(jubaubhx)r}r(h'X = Noneh(jh)jh.h{h0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCX = Nonerr}r(h'Uh(jubaubeubh)r}r(h'Uh(jh)jh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubhO)r}r(h'Uh(hh)Nh.hRh0}r(h5]h4]h2]h3]h7]Uentries]r(hUX9redis_db (celery.backends.pyredis.RedisBackend attribute)h Utrauh9Nh:hh"]ubh\)r}r(h'Uh(hh)Nh.h_h0}r(hahbXpyh5]h4]h2]h3]h7]hcX attributerhejuh9Nh:hh"]r(hg)r}r(h'XRedisBackend.redis_dbh(jh)jh.hkh0}r(h5]rh ahnh*Xcelery.backends.pyredisrr}rbh4]h2]h3]h7]rh ahsXRedisBackend.redis_dbhuhthvuh9Nh:hh"]r(h)r}r(h'Xredis_dbh(jh)jh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCXredis_dbrr}r(h'Uh(jubaubhx)r}r(h'X = 0h(jh)jh.h{h0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCX = 0rr}r(h'Uh(jubaubeubh)r}r(h'Uh(jh)jh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubhO)r}r(h'Uh(hh)Nh.hRh0}r(h5]h4]h2]h3]h7]Uentries]r(hUX;redis_host (celery.backends.pyredis.RedisBackend attribute)X/celery.backends.pyredis.RedisBackend.redis_hostUtrauh9Nh:hh"]ubh\)r}r(h'Uh(hh)Nh.h_h0}r(hahbXpyh5]h4]h2]h3]h7]hcX attributerhejuh9Nh:hh"]r(hg)r}r(h'XRedisBackend.redis_hosth(jh)jh.hkh0}r(h5]hnh*Xcelery.backends.pyredisrr}rbh4]h2]h3]h7]hsXRedisBackend.redis_hosthuhthvuh9Nh:hh"]r(h)r}r(h'X redis_hosth(jh)jh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCX redis_hostrr }r (h'Uh(jubaubhx)r }r (h'X = 'localhost'h(jh)jh.h{h0}r (h2]h3]h4]h5]h7]uh9Nh:hh"]rhCX = 'localhost'rr}r(h'Uh(j ubaubeubh)r}r(h'Uh(jh)jh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubhO)r}r(h'Uh(hh)Nh.hRh0}r(h5]h4]h2]h3]h7]Uentries]r(hUX?redis_password (celery.backends.pyredis.RedisBackend attribute)hUtrauh9Nh:hh"]ubh\)r}r(h'Uh(hh)Nh.h_h0}r(hahbXpyh5]h4]h2]h3]h7]hcX attributerhejuh9Nh:hh"]r(hg)r}r (h'XRedisBackend.redis_passwordh(jh)jh.hkh0}r!(h5]r"hahnh*Xcelery.backends.pyredisr#r$}r%bh4]h2]h3]h7]r&hahsXRedisBackend.redis_passwordhuhthvuh9Nh:hh"]r'(h)r(}r)(h'Xredis_passwordh(jh)jh.hh0}r*(h2]h3]h4]h5]h7]uh9Nh:hh"]r+hCXredis_passwordr,r-}r.(h'Uh(j(ubaubhx)r/}r0(h'X = Noneh(jh)jh.h{h0}r1(h2]h3]h4]h5]h7]uh9Nh:hh"]r2hCX = Noner3r4}r5(h'Uh(j/ubaubeubh)r6}r7(h'Uh(jh)jh.hh0}r8(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubhO)r9}r:(h'Uh(hh)Nh.hRh0}r;(h5]h4]h2]h3]h7]Uentries]r<(hUX;redis_port (celery.backends.pyredis.RedisBackend attribute)X/celery.backends.pyredis.RedisBackend.redis_portUtr=auh9Nh:hh"]ubh\)r>}r?(h'Uh(hh)Nh.h_h0}r@(hahbXpyh5]h4]h2]h3]h7]hcX attributerAhejAuh9Nh:hh"]rB(hg)rC}rD(h'XRedisBackend.redis_porth(j>h)jh.hkh0}rE(h5]hnh*Xcelery.backends.pyredisrFrG}rHbh4]h2]h3]h7]hsXRedisBackend.redis_porthuhthvuh9Nh:hh"]rI(h)rJ}rK(h'X redis_porth(jCh)jh.hh0}rL(h2]h3]h4]h5]h7]uh9Nh:hh"]rMhCX redis_portrNrO}rP(h'Uh(jJubaubhx)rQ}rR(h'X = 6379h(jCh)jh.h{h0}rS(h2]h3]h4]h5]h7]uh9Nh:hh"]rThCX = 6379rUrV}rW(h'Uh(jQubaubeubh)rX}rY(h'Uh(j>h)jh.hh0}rZ(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubhO)r[}r\(h'Uh(hh)Nh.hRh0}r](h5]h4]h2]h3]h7]Uentries]r^(hUX>redis_timeout (celery.backends.pyredis.RedisBackend attribute)hUtr_auh9Nh:hh"]ubh\)r`}ra(h'Uh(hh)Nh.h_h0}rb(hahbXpyh5]h4]h2]h3]h7]hcX attributerchejcuh9Nh:hh"]rd(hg)re}rf(h'XRedisBackend.redis_timeouth(j`h)jh.hkh0}rg(h5]rhhahnh*Xcelery.backends.pyredisrirj}rkbh4]h2]h3]h7]rlhahsXRedisBackend.redis_timeouthuhthvuh9Nh:hh"]rm(h)rn}ro(h'X redis_timeouth(jeh)jh.hh0}rp(h2]h3]h4]h5]h7]uh9Nh:hh"]rqhCX redis_timeoutrrrs}rt(h'Uh(jnubaubhx)ru}rv(h'X = Noneh(jeh)jh.h{h0}rw(h2]h3]h4]h5]h7]uh9Nh:hh"]rxhCX = Noneryrz}r{(h'Uh(juubaubeubh)r|}r}(h'Uh(j`h)jh.hh0}r~(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubhO)r}r(h'Uh(hh)Nh.hRh0}r(h5]h4]h2]h3]h7]Uentries]r(hUX3set() (celery.backends.pyredis.RedisBackend method)hUtrauh9Nh:hh"]ubh\)r}r(h'Uh(hh)Nh.h_h0}r(hahbXpyh5]h4]h2]h3]h7]hcXmethodrhejuh9Nh:hh"]r(hg)r}r(h'XRedisBackend.set(key, value)h(jh)hjh.hkh0}r(h5]rhahnh*Xcelery.backends.pyredisrr}rbh4]h2]h3]h7]rhahsXRedisBackend.sethuhthvuh9Nh:hh"]r(h)r}r(h'Xseth(jh)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]rhCXsetrr}r(h'Uh(jubaubh)r}r(h'Uh(jh)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]r(h)r}r(h'Xkeyh0}r(h2]h3]h4]h5]h7]uh(jh"]rhCXkeyrr}r(h'Uh(jubah.hubh)r}r(h'Xvalueh0}r(h2]h3]h4]h5]h7]uh(jh"]rhCXvaluerr}r(h'Uh(jubah.hubeubeubh)r}r(h'Uh(jh)hjh.hh0}r(h2]h3]h4]h5]h7]uh9Nh:hh"]ubeubeubeubeubah'UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh:hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h'Uh0}r(h2]UlevelKh5]h4]UsourcehJh3]h7]UlineKUtypeUINFOruh"]rh)r}r(h'Uh0}r(h2]h3]h4]h5]h7]uh(jh"]rhCXDHyperlink target "module-celery.backends.pyredis" is not referenced.rr}r(h'Uh(jubah.hubah.Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh@NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcer Ui/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.pyredis.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhjhhh jh jh jCh jhNhHhjhhhhjehjhjhjhjh h%h jh!cdocutils.nodes topic r)r }r!(h'Uh(h%h)h,h.Utopicr"h0}r#(h2]h3]r$(Ucontentsr%Ulocalr&eh4]h5]r'h!ah7]r(hauh9Kh:hh"]r)cdocutils.nodes pending r*)r+}r,(h'X.. contents:: :local:h(j U transformr-cdocutils.transforms.parts Contents r.Udetailsr/}r0UlocalNsh.Upendingr1h0}r2(h2]h3]h4]h5]h7]uh"]ubaubuUsubstitution_namesr3}r4h.h:h0}r5(h2]h5]h4]Usourceh,h3]h7]uU footnotesr6]r7Urefidsr8}r9ub.PKYDDAZ$Z$Pcelery-2.1-archived/.doctrees/internals/reference/celery.worker.listener.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X0worker message listener - celery.worker.listenerqNX6celery.worker.listener.CarrotListener.close_connectionqX*celery.worker.listener.CarrotListener.hartqX5celery.worker.listener.CarrotListener.on_decode_errorq X/celery.worker.listener.QoS.decrement_eventuallyq Xcelery.worker.listener.QoS.prevq X.celery.worker.listener.CarrotListener.hostnameq X!celery.worker.listener.QoS.updateq UcontentsqNX5celery.worker.listener.CarrotListener.receive_messageqX*celery.worker.listener.CarrotListener.stopqX6celery.worker.listener.CarrotListener.control_dispatchqX3celery.worker.listener.CarrotListener.init_callbackqX%celery.worker.listener.CarrotListenerqX+celery.worker.listener.CarrotListener.startqX6celery.worker.listener.CarrotListener.event_dispatcherqX1celery.worker.listener.CarrotListener.ready_queueqX6celery.worker.listener.CarrotListener.reset_connectionqX4celery.worker.listener.CarrotListener.stop_consumersqXcelery.worker.listener.QoSqX-celery.worker.listener.CarrotListener.on_taskqX$celery.worker.listener.QoS.decrementqX1celery.worker.listener.CarrotListener.send_eventsqX*celery.worker.listener.CarrotListener.infoqXcelery.worker.listener.QoS.nextqX0celery.worker.listener.CarrotListener.on_controlqX,celery.worker.listener.CarrotListener.loggerq X4celery.worker.listener.CarrotListener.apply_eta_taskq!X$celery.worker.listener.QoS.incrementq"Xcelery.worker.listener.QoS.setq#X2celery.worker.listener.CarrotListener.eta_scheduleq$X6celery.worker.listener.CarrotListener.maybe_conn_errorq%X<celery.worker.listener.CarrotListener.initial_prefetch_countq&X6celery.worker.listener.CarrotListener.consume_messagesq'X7celery.worker.listener.CarrotListener.restart_heartbeatq(uUsubstitution_defsq)}q*Uparse_messagesq+]q,Ucurrent_sourceq-NU decorationq.NUautofootnote_startq/KUnameidsq0}q1(hU.worker-message-listener-celery-worker-listenerq2hhhhh h h h h h h h h h hUcontentsq3hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh h h!h!h"h"h#h#h$h$h%h%h&h&h'h'h(h(uUchildrenq4]q5cdocutils.nodes section q6)q7}q8(U rawsourceq9UUparentq:hUsourceq;cdocutils.nodes reprunicode q}q?bUtagnameq@UsectionqAU attributesqB}qC(UdupnamesqD]UclassesqE]UbackrefsqF]UidsqG]qHh2aUnamesqI]qJhauUlineqKKUdocumentqLhh4]qM(cdocutils.nodes title qN)qO}qP(h9X0Worker Message Listener - celery.worker.listenerqQh:h7h;h>h@UtitleqRhB}qS(hD]hE]hF]hG]hI]uhKKhLhh4]qTcdocutils.nodes Text qUX0Worker Message Listener - celery.worker.listenerqVqW}qX(h9hQh:hOubaubcdocutils.nodes target qY)qZ}q[(h9Uh:h7h;U q\h@Utargetq]hB}q^(hD]hG]q_Xmodule-celery.worker.listenerq`ahF]UismodhE]hI]uhKKhLhh4]ubcsphinx.addnodes index qa)qb}qc(h9Uh:h7h;h\h@UindexqdhB}qe(hG]hF]hD]hE]hI]Uentries]qf(UsingleqgXcelery.worker.listener (module)Xmodule-celery.worker.listenerUtqhauhKKhLhh4]ubcdocutils.nodes paragraph qi)qj}qk(h9XThis module contains the component responsible for consuming messages from the broker, processing the messages and keeping the broker connections up and running.qlh:h7h;Xr/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/listener.py:docstring of celery.worker.listenerqmh@U paragraphqnhB}qo(hD]hE]hF]hG]hI]uhKKhLhh4]qphUXThis module contains the component responsible for consuming messages from the broker, processing the messages and keeping the broker connections up and running.qqqr}qs(h9hlh:hjubaubcdocutils.nodes bullet_list qt)qu}qv(h9Uh:h7h;hmh@U bullet_listqwhB}qx(UbulletqyX*hG]hF]hD]hE]hI]uhKKhLhh4]qz(cdocutils.nodes list_item q{)q|}q}(h9X$:meth:`~CarrotListener.start` is an infinite loop, which only iterates again if the connection is lost. For each iteration (at start, or if the connection is lost) it calls :meth:`~CarrotListener.reset_connection`, and starts the consumer by calling :meth:`~CarrotListener.consume_messages`. h:huh;hmh@U list_itemq~hB}q(hD]hE]hF]hG]hI]uhKNhLhh4]qhi)q}q(h9X#:meth:`~CarrotListener.start` is an infinite loop, which only iterates again if the connection is lost. For each iteration (at start, or if the connection is lost) it calls :meth:`~CarrotListener.reset_connection`, and starts the consumer by calling :meth:`~CarrotListener.consume_messages`.h:h|h;hmh@hnhB}q(hD]hE]hF]hG]hI]uhKKh4]q(csphinx.addnodes pending_xref q)q}q(h9X:meth:`~CarrotListener.start`qh:hh;h>h@U pending_xrefqhB}q(UreftypeXmethUrefwarnqU reftargetqXCarrotListener.startU refdomainXpyqhG]hF]U refexplicithD]hE]hI]UrefdocqX*internals/reference/celery.worker.listenerqUpy:classqNU py:moduleqXcelery.worker.listenerquhKK h4]qcdocutils.nodes literal q)q}q(h9hhB}q(hD]hE]q(UxrefqhXpy-methqehF]hG]hI]uh:hh4]qhUXstart()qq}q(h9Uh:hubah@UliteralqubaubhUX is an infinite loop, which only iterates again if the connection is lost. For each iteration (at start, or if the connection is lost) it calls qq}q(h9X is an infinite loop, which only iterates again if the connection is lost. For each iteration (at start, or if the connection is lost) it calls h:hubh)q}q(h9X(:meth:`~CarrotListener.reset_connection`qh:hh;h>h@hhB}q(UreftypeXmethhhXCarrotListener.reset_connectionU refdomainXpyqhG]hF]U refexplicithD]hE]hI]hhhNhhuhKK h4]qh)q}q(h9hhB}q(hD]hE]q(hhXpy-methqehF]hG]hI]uh:hh4]qhUXreset_connection()qq}q(h9Uh:hubah@hubaubhUX%, and starts the consumer by calling qq}q(h9X%, and starts the consumer by calling h:hubh)q}q(h9X(:meth:`~CarrotListener.consume_messages`qh:hh;h>h@hhB}q(UreftypeXmethhhXCarrotListener.consume_messagesU refdomainXpyqhG]hF]U refexplicithD]hE]hI]hhhNhhuhKK h4]qh)q}q(h9hhB}q(hD]hE]q(hhXpy-methqehF]hG]hI]uh:hh4]qhUXconsume_messages()qq}q(h9Uh:hubah@hubaubhUX.q}q(h9X.h:hubeubaubh{)q}q(h9X*:meth:`~CarrotListener.reset_connection`, clears the internal queues, establishes a new connection to the broker, sets up the task consumer (+ QoS), and the broadcast remote control command consumer. Also if events are enabled it configures the event dispatcher and starts up the hartbeat thread. h:huh;hmh@h~hB}q(hD]hE]hF]hG]hI]uhKNhLhh4]q(hi)q}q(h9X:meth:`~CarrotListener.reset_connection`, clears the internal queues, establishes a new connection to the broker, sets up the task consumer (+ QoS), and the broadcast remote control command consumer.h:hh;hmh@hnhB}q(hD]hE]hF]hG]hI]uhKK h4]q(h)q}q(h9X(:meth:`~CarrotListener.reset_connection`qh:hh;Nh@hhB}q(UreftypeXmethhhXCarrotListener.reset_connectionU refdomainXpyqhG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]qh)q}q(h9hhB}q(hD]hE]q(hhXpy-methqehF]hG]hI]uh:hh4]qhUXreset_connection()qڅq}q(h9Uh:hubah@hubaubhUX, clears the internal queues, establishes a new connection to the broker, sets up the task consumer (+ QoS), and the broadcast remote control command consumer.q݅q}q(h9X, clears the internal queues, establishes a new connection to the broker, sets up the task consumer (+ QoS), and the broadcast remote control command consumer.h:hubeubhi)q}q(h9X`Also if events are enabled it configures the event dispatcher and starts up the hartbeat thread.qh:hh;hmh@hnhB}q(hD]hE]hF]hG]hI]uhKKh4]qhUX`Also if events are enabled it configures the event dispatcher and starts up the hartbeat thread.q允q}q(h9hh:hubaubeubh{)q}q(h9X(Finally it can consume messages. :meth:`~CarrotListener.consume_messages` is simply an infinite loop waiting for events on the AMQP channels. Both the task consumer and the broadcast consumer uses the same callback: :meth:`~CarrotListener.receive_message`. The reason is that some carrot backends doesn't support consuming from several channels simultaneously, so we use a little nasty trick (:meth:`~CarrotListener._detect_wait_method`) to select the best possible channel distribution depending on the functionality supported by the carrot backend. h:huh;hmh@h~hB}q(hD]hE]hF]hG]hI]uhKNhLhh4]q(hi)q}q(h9XFinally it can consume messages. :meth:`~CarrotListener.consume_messages` is simply an infinite loop waiting for events on the AMQP channels.h:hh;hmh@hnhB}q(hD]hE]hF]hG]hI]uhKKh4]q(hUX!Finally it can consume messages. qq}q(h9X!Finally it can consume messages. h:hubh)q}q(h9X(:meth:`~CarrotListener.consume_messages`qh:hh;Nh@hhB}q(UreftypeXmethhhXCarrotListener.consume_messagesU refdomainXpyqhG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]qh)q}q(h9hhB}q(hD]hE]q(hhXpy-methqehF]hG]hI]uh:hh4]qhUXconsume_messages()qr}r(h9Uh:hubah@hubaubhUXD is simply an infinite loop waiting for events on the AMQP channels.rr}r(h9XD is simply an infinite loop waiting for events on the AMQP channels.h:hubeubhi)r}r(h9XBoth the task consumer and the broadcast consumer uses the same callback: :meth:`~CarrotListener.receive_message`. The reason is that some carrot backends doesn't support consuming from several channels simultaneously, so we use a little nasty trick (:meth:`~CarrotListener._detect_wait_method`) to select the best possible channel distribution depending on the functionality supported by the carrot backend.h:hh;hmh@hnhB}r(hD]hE]hF]hG]hI]uhKKh4]r(hUXJBoth the task consumer and the broadcast consumer uses the same callback: r r }r (h9XJBoth the task consumer and the broadcast consumer uses the same callback: h:jubh)r }r (h9X':meth:`~CarrotListener.receive_message`rh:jh;Nh@hhB}r(UreftypeXmethhhXCarrotListener.receive_messageU refdomainXpyrhG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]rh)r}r(h9jhB}r(hD]hE]r(hjXpy-methrehF]hG]hI]uh:j h4]rhUXreceive_message()rr}r(h9Uh:jubah@hubaubhUX. The reason is that some carrot backends doesn't support consuming from several channels simultaneously, so we use a little nasty trick (rr}r(h9X. The reason is that some carrot backends doesn't support consuming from several channels simultaneously, so we use a little nasty trick (h:jubh)r}r(h9X+:meth:`~CarrotListener._detect_wait_method`r h:jh;Nh@hhB}r!(UreftypeXmethhhX"CarrotListener._detect_wait_methodU refdomainXpyr"hG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]r#h)r$}r%(h9j hB}r&(hD]hE]r'(hj"Xpy-methr(ehF]hG]hI]uh:jh4]r)hUX_detect_wait_method()r*r+}r,(h9Uh:j$ubah@hubaubhUXr) to select the best possible channel distribution depending on the functionality supported by the carrot backend.r-r.}r/(h9Xr) to select the best possible channel distribution depending on the functionality supported by the carrot backend.h:jubeubeubh{)r0}r1(h9XSo for each message received the :meth:`~CarrotListener.receive_message` method is called, this checks the payload of the message for either a ``task`` key or a ``control`` key. If the message is a task, it verifies the validity of the message converts it to a :class:`celery.worker.job.TaskRequest`, and sends it to :meth:`~CarrotListener.on_task`. If the message is a control command the message is passed to :meth:`~CarrotListener.on_control`, which in turn dispatches the control command using the control dispatcher. It also tries to handle malformed or invalid messages properly, so the worker doesn't choke on them and die. Any invalid messages are acknowledged immediately and logged, so the message is not resent again, and again. h:huh;hmh@h~hB}r2(hD]hE]hF]hG]hI]uhKNhLhh4]r3(hi)r4}r5(h9XSo for each message received the :meth:`~CarrotListener.receive_message` method is called, this checks the payload of the message for either a ``task`` key or a ``control`` key.h:j0h;hmh@hnhB}r6(hD]hE]hF]hG]hI]uhKKh4]r7(hUX!So for each message received the r8r9}r:(h9X!So for each message received the h:j4ubh)r;}r<(h9X':meth:`~CarrotListener.receive_message`r=h:j4h;Nh@hhB}r>(UreftypeXmethhhXCarrotListener.receive_messageU refdomainXpyr?hG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]r@h)rA}rB(h9j=hB}rC(hD]hE]rD(hj?Xpy-methrEehF]hG]hI]uh:j;h4]rFhUXreceive_message()rGrH}rI(h9Uh:jAubah@hubaubhUXG method is called, this checks the payload of the message for either a rJrK}rL(h9XG method is called, this checks the payload of the message for either a h:j4ubh)rM}rN(h9X``task``hB}rO(hD]hE]hF]hG]hI]uh:j4h4]rPhUXtaskrQrR}rS(h9Uh:jMubah@hubhUX key or a rTrU}rV(h9X key or a h:j4ubh)rW}rX(h9X ``control``hB}rY(hD]hE]hF]hG]hI]uh:j4h4]rZhUXcontrolr[r\}r](h9Uh:jWubah@hubhUX key.r^r_}r`(h9X key.h:j4ubeubhi)ra}rb(h9XIf the message is a task, it verifies the validity of the message converts it to a :class:`celery.worker.job.TaskRequest`, and sends it to :meth:`~CarrotListener.on_task`.h:j0h;hmh@hnhB}rc(hD]hE]hF]hG]hI]uhKK!h4]rd(hUXSIf the message is a task, it verifies the validity of the message converts it to a rerf}rg(h9XSIf the message is a task, it verifies the validity of the message converts it to a h:jaubh)rh}ri(h9X&:class:`celery.worker.job.TaskRequest`rjh:jah;Nh@hhB}rk(UreftypeXclasshhXcelery.worker.job.TaskRequestU refdomainXpyrlhG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]rmh)rn}ro(h9jjhB}rp(hD]hE]rq(hjlXpy-classrrehF]hG]hI]uh:jhh4]rshUXcelery.worker.job.TaskRequestrtru}rv(h9Uh:jnubah@hubaubhUX, and sends it to rwrx}ry(h9X, and sends it to h:jaubh)rz}r{(h9X:meth:`~CarrotListener.on_task`r|h:jah;Nh@hhB}r}(UreftypeXmethhhXCarrotListener.on_taskU refdomainXpyr~hG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]rh)r}r(h9j|hB}r(hD]hE]r(hj~Xpy-methrehF]hG]hI]uh:jzh4]rhUX on_task()rr}r(h9Uh:jubah@hubaubhUX.r}r(h9X.h:jaubeubhi)r}r(h9XIf the message is a control command the message is passed to :meth:`~CarrotListener.on_control`, which in turn dispatches the control command using the control dispatcher.h:j0h;hmh@hnhB}r(hD]hE]hF]hG]hI]uhKK%h4]r(hUX=If the message is a control command the message is passed to rr}r(h9X=If the message is a control command the message is passed to h:jubh)r}r(h9X":meth:`~CarrotListener.on_control`rh:jh;Nh@hhB}r(UreftypeXmethhhXCarrotListener.on_controlU refdomainXpyrhG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]rh)r}r(h9jhB}r(hD]hE]r(hjXpy-methrehF]hG]hI]uh:jh4]rhUX on_control()rr}r(h9Uh:jubah@hubaubhUXL, which in turn dispatches the control command using the control dispatcher.rr}r(h9XL, which in turn dispatches the control command using the control dispatcher.h:jubeubhi)r}r(h9XIt also tries to handle malformed or invalid messages properly, so the worker doesn't choke on them and die. Any invalid messages are acknowledged immediately and logged, so the message is not resent again, and again.rh:j0h;hmh@hnhB}r(hD]hE]hF]hG]hI]uhKK)h4]rhUXIt also tries to handle malformed or invalid messages properly, so the worker doesn't choke on them and die. Any invalid messages are acknowledged immediately and logged, so the message is not resent again, and again.rr}r(h9jh:jubaubeubh{)r}r(h9X2If the task has an ETA/countdown, the task is moved to the ``eta_schedule`` so the :class:`timer2.Timer` can schedule it at its deadline. Tasks without an eta are moved immediately to the ``ready_queue``, so they can be picked up by the :class:`~celery.worker.controllers.Mediator` to be sent to the pool. h:huh;hmh@h~hB}r(hD]hE]hF]hG]hI]uhKNhLhh4]rhi)r}r(h9X1If the task has an ETA/countdown, the task is moved to the ``eta_schedule`` so the :class:`timer2.Timer` can schedule it at its deadline. Tasks without an eta are moved immediately to the ``ready_queue``, so they can be picked up by the :class:`~celery.worker.controllers.Mediator` to be sent to the pool.h:jh;hmh@hnhB}r(hD]hE]hF]hG]hI]uhKK.h4]r(hUX;If the task has an ETA/countdown, the task is moved to the rr}r(h9X;If the task has an ETA/countdown, the task is moved to the h:jubh)r}r(h9X``eta_schedule``hB}r(hD]hE]hF]hG]hI]uh:jh4]rhUX eta_schedulerr}r(h9Uh:jubah@hubhUX so the rr}r(h9X so the h:jubh)r}r(h9X:class:`timer2.Timer`rh:jh;Nh@hhB}r(UreftypeXclasshhX timer2.TimerU refdomainXpyrhG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]rh)r}r(h9jhB}r(hD]hE]r(hjXpy-classrehF]hG]hI]uh:jh4]rhUX timer2.Timerrr}r(h9Uh:jubah@hubaubhUXT can schedule it at its deadline. Tasks without an eta are moved immediately to the rr}r(h9XT can schedule it at its deadline. Tasks without an eta are moved immediately to the h:jubh)r}r(h9X``ready_queue``hB}r(hD]hE]hF]hG]hI]uh:jh4]rhUX ready_queuerr}r(h9Uh:jubah@hubhUX", so they can be picked up by the rr}r(h9X", so they can be picked up by the h:jubh)r}r(h9X,:class:`~celery.worker.controllers.Mediator`rh:jh;Nh@hhB}r(UreftypeXclasshhX"celery.worker.controllers.MediatorU refdomainXpyrhG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]rh)r}r(h9jhB}r(hD]hE]r(hjXpy-classrehF]hG]hI]uh:jh4]rhUXMediatorrr}r(h9Uh:jubah@hubaubhUX to be sent to the pool.rr}r(h9X to be sent to the pool.h:jubeubaubh{)r}r(h9XWhen a task with an ETA is received the QoS prefetch count is also incremented, so another message can be reserved. When the ETA is met the prefetch count is decremented again, though this cannot happen immediately because amqplib doesn't support doing broker requests across threads. Instead the current prefetch count is kept as a shared counter, so as soon as :meth:`~CarrotListener.consume_messages` detects that the value has changed it will send out the actual QoS event to the broker. h:huh;hmh@h~hB}r(hD]hE]hF]hG]hI]uhKNhLhh4]rhi)r}r(h9XWhen a task with an ETA is received the QoS prefetch count is also incremented, so another message can be reserved. When the ETA is met the prefetch count is decremented again, though this cannot happen immediately because amqplib doesn't support doing broker requests across threads. Instead the current prefetch count is kept as a shared counter, so as soon as :meth:`~CarrotListener.consume_messages` detects that the value has changed it will send out the actual QoS event to the broker.h:jh;hmh@hnhB}r(hD]hE]hF]hG]hI]uhKK4h4]r(hUXlWhen a task with an ETA is received the QoS prefetch count is also incremented, so another message can be reserved. When the ETA is met the prefetch count is decremented again, though this cannot happen immediately because amqplib doesn't support doing broker requests across threads. Instead the current prefetch count is kept as a shared counter, so as soon as rr}r(h9XlWhen a task with an ETA is received the QoS prefetch count is also incremented, so another message can be reserved. When the ETA is met the prefetch count is decremented again, though this cannot happen immediately because amqplib doesn't support doing broker requests across threads. Instead the current prefetch count is kept as a shared counter, so as soon as h:jubh)r}r(h9X(:meth:`~CarrotListener.consume_messages`rh:jh;Nh@hhB}r(UreftypeXmethhhXCarrotListener.consume_messagesU refdomainXpyrhG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]rh)r}r(h9jhB}r(hD]hE]r(hjXpy-methrehF]hG]hI]uh:jh4]rhUXconsume_messages()rr}r(h9Uh:jubah@hubaubhUXX detects that the value has changed it will send out the actual QoS event to the broker.r r }r (h9XX detects that the value has changed it will send out the actual QoS event to the broker.h:jubeubaubh{)r }r (h9XNotice that when the connection is lost all internal queues are cleared because we can no longer ack the messages reserved in memory. Hoever, this is not dangerous as the broker will resend them to another worker when the channel is closed. h:huh;hmh@h~hB}r(hD]hE]hF]hG]hI]uhKNhLhh4]rhi)r}r(h9XNotice that when the connection is lost all internal queues are cleared because we can no longer ack the messages reserved in memory. Hoever, this is not dangerous as the broker will resend them to another worker when the channel is closed.rh:j h;hmh@hnhB}r(hD]hE]hF]hG]hI]uhKK=h4]rhUXNotice that when the connection is lost all internal queues are cleared because we can no longer ack the messages reserved in memory. Hoever, this is not dangerous as the broker will resend them to another worker when the channel is closed.rr}r(h9jh:jubaubaubh{)r}r(h9X***WARNING**: :meth:`~CarrotListener.stop` does not close the connection! This is because some pre-acked messages may be in processing, and they need to be finished before the channel is closed. For celeryd this means the pool must finish the tasks it has acked early, *then* close the connection. h:huh;h\h@h~hB}r(hD]hE]hF]hG]hI]uhKNhLhh4]rhi)r}r(h9X(**WARNING**: :meth:`~CarrotListener.stop` does not close the connection! This is because some pre-acked messages may be in processing, and they need to be finished before the channel is closed. For celeryd this means the pool must finish the tasks it has acked early, *then* close the connection.h:jh;hmh@hnhB}r(hD]hE]hF]hG]hI]uhKKBh4]r(cdocutils.nodes strong r )r!}r"(h9X **WARNING**hB}r#(hD]hE]hF]hG]hI]uh:jh4]r$hUXWARNINGr%r&}r'(h9Uh:j!ubah@Ustrongr(ubhUX: r)r*}r+(h9X: h:jubh)r,}r-(h9X:meth:`~CarrotListener.stop`r.h:jh;Nh@hhB}r/(UreftypeXmethhhXCarrotListener.stopU refdomainXpyr0hG]hF]U refexplicithD]hE]hI]hhhNhhuhKNh4]r1h)r2}r3(h9j.hB}r4(hD]hE]r5(hj0Xpy-methr6ehF]hG]hI]uh:j,h4]r7hUXstop()r8r9}r:(h9Uh:j2ubah@hubaubhUX does not close the connection! This is because some pre-acked messages may be in processing, and they need to be finished before the channel is closed. For celeryd this means the pool must finish the tasks it has acked early, r;r<}r=(h9X does not close the connection! This is because some pre-acked messages may be in processing, and they need to be finished before the channel is closed. For celeryd this means the pool must finish the tasks it has acked early, h:jubcdocutils.nodes emphasis r>)r?}r@(h9X*then*hB}rA(hD]hE]hF]hG]hI]uh:jh4]rBhUXthenrCrD}rE(h9Uh:j?ubah@UemphasisrFubhUX close the connection.rGrH}rI(h9X close the connection.h:jubeubaubeubha)rJ}rK(h9Uh:h7h;Nh@hdhB}rL(hG]hF]hD]hE]hI]Uentries]rM(hgX0CarrotListener (class in celery.worker.listener)hUtrNauhKNhLhh4]ubcsphinx.addnodes desc rO)rP}rQ(h9Uh:h7h;Nh@UdescrRhB}rS(UnoindexrTUdomainrUXpyhG]hF]hD]hE]hI]UobjtyperVXclassrWUdesctyperXjWuhKNhLhh4]rY(csphinx.addnodes desc_signature rZ)r[}r\(h9XCarrotListener(ready_queue, eta_schedule, logger, init_callback=, send_events=False, hostname=None, initial_prefetch_count=2, pool=None)h:jPh;U r]h@Udesc_signaturer^hB}r_(hG]r`haUmodulerahhB}r(hD]hE]hF]hG]hI]uh:jh4]rhUX*init_callback=rr}r(h9Uh:jubah@jubj)r}r(h9Xsend_events=FalsehB}r(hD]hE]hF]hG]hI]uh:jh4]rhUXsend_events=Falserr}r(h9Uh:jubah@jubj)r}r(h9X hostname=NonehB}r(hD]hE]hF]hG]hI]uh:jh4]rhUX hostname=Nonerr}r(h9Uh:jubah@jubj)r}r(h9Xinitial_prefetch_count=2hB}r(hD]hE]hF]hG]hI]uh:jh4]rhUXinitial_prefetch_count=2rr}r(h9Uh:jubah@jubj)r}r(h9X pool=NonehB}r(hD]hE]hF]hG]hI]uh:jh4]rhUX pool=Nonerr}r(h9Uh:jubah@jubeubeubcsphinx.addnodes desc_content r)r}r(h9Uh:jPh;j]h@U desc_contentrhB}r(hD]hE]hF]hG]hI]uhKNhLhh4]r(hi)r}r(h9XcListen for messages received from the broker and move them the the ready queue for task processing.rh:jh;X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/listener.py:docstring of celery.worker.listener.CarrotListenerrh@hnhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhUXcListen for messages received from the broker and move them the the ready queue for task processing.rr}r(h9jh:jubaubcdocutils.nodes field_list r)r}r(h9Uh:jh;Nh@U field_listrhB}r(hD]hE]hF]hG]hI]uhKNhLhh4]rcdocutils.nodes field r)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]r(cdocutils.nodes field_name r)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]rhUX Parametersrr}r(h9Uh:jubah@U field_namerubcdocutils.nodes field_body r)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]rht)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]r(h{)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]rhi)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]r(j )r}r(h9X ready_queuehB}r(hD]hE]hF]hG]hI]uh:jh4]rhUX ready_queuerr}r(h9Uh:jubah@j(ubhUX -- rr}r(h9Uh:jubhUXSee rr}r(h9XSee h:jubh)r}r(h9X:attr:`ready_queue`r h:jh;Nh@hhB}r (UreftypeXattrhhX ready_queueU refdomainXpyr hG]hF]U refexplicithD]hE]hI]hhhjghhuhKNh4]r h)r }r(h9j hB}r(hD]hE]r(hj Xpy-attrrehF]hG]hI]uh:jh4]rhUX ready_queuerr}r(h9Uh:j ubah@hubaubhUX.r}r(h9X.h:jubeh@hnubah@h~ubh{)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]rhi)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]r(j )r }r!(h9X eta_schedulehB}r"(hD]hE]hF]hG]hI]uh:jh4]r#hUX eta_scheduler$r%}r&(h9Uh:j ubah@j(ubhUX -- r'r(}r)(h9Uh:jubhUXSee r*r+}r,(h9XSee h:jubh)r-}r.(h9X:attr:`eta_schedule`r/h:jh;Nh@hhB}r0(UreftypeXattrhhX eta_scheduleU refdomainXpyr1hG]hF]U refexplicithD]hE]hI]hhhjghhuhKNh4]r2h)r3}r4(h9j/hB}r5(hD]hE]r6(hj1Xpy-attrr7ehF]hG]hI]uh:j-h4]r8hUX eta_scheduler9r:}r;(h9Uh:j3ubah@hubaubhUX.r<}r=(h9X.h:jubeh@hnubah@h~ubeh@hwubah@U field_bodyr>ubeh@Ufieldr?ubaubha)r@}rA(h9Uh:jh;jh@hdhB}rB(hG]hF]hD]hE]hI]Uentries]rC(hgX=ready_queue (celery.worker.listener.CarrotListener attribute)hUtrDauhKNhLhh4]ubjO)rE}rF(h9Uh:jh;jh@jRhB}rG(jTjUXpyhG]hF]hD]hE]hI]jVX attributerHjXjHuhKNhLhh4]rI(jZ)rJ}rK(h9X ready_queuerLh:jEh;jh@j^hB}rM(hG]rNhajahhF]hD]hE]hI]rOhajfXCarrotListener.ready_queuejhjgjiuhKK hLhh4]rPj})rQ}rR(h9jLh:jJh;jh@jhB}rS(hD]hE]hF]hG]hI]uhKK hLhh4]rThUX ready_queuerUrV}rW(h9Uh:jQubaubaubj)rX}rY(h9Uh:jEh;jh@jhB}rZ(hD]hE]hF]hG]hI]uhKK hLhh4]r[hi)r\}r](h9X:The queue that holds tasks ready for immediate processing.r^h:jXh;jh@hnhB}r_(hD]hE]hF]hG]hI]uhKK hLhh4]r`hUX:The queue that holds tasks ready for immediate processing.rarb}rc(h9j^h:j\ubaubaubeubha)rd}re(h9Uh:jh;jh@hdhB}rf(hG]hF]hD]hE]hI]Uentries]rg(hgX>eta_schedule (celery.worker.listener.CarrotListener attribute)h$UtrhauhKNhLhh4]ubjO)ri}rj(h9Uh:jh;jh@jRhB}rk(jTjUXpyhG]hF]hD]hE]hI]jVX attributerljXjluhKNhLhh4]rm(jZ)rn}ro(h9X eta_schedulerph:jih;jh@j^hB}rq(hG]rrh$ajahhF]hD]hE]hI]rsh$ajfXCarrotListener.eta_schedulejhjgjiuhKKhLhh4]rtj})ru}rv(h9jph:jnh;jh@jhB}rw(hD]hE]hF]hG]hI]uhKKhLhh4]rxhUX eta_scheduleryrz}r{(h9Uh:juubaubaubj)r|}r}(h9Uh:jih;jh@jhB}r~(hD]hE]hF]hG]hI]uhKKhLhh4]rhi)r}r(h9XlScheduler for paused tasks. Reasons for being paused include a countdown/eta or that it's waiting for retry.rh:j|h;jh@hnhB}r(hD]hE]hF]hG]hI]uhKK hLhh4]rhUXlScheduler for paused tasks. Reasons for being paused include a countdown/eta or that it's waiting for retry.rr}r(h9jh:jubaubaubeubha)r}r(h9Uh:jh;jh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgX=send_events (celery.worker.listener.CarrotListener attribute)hUtrauhKNhLhh4]ubjO)r}r(h9Uh:jh;jh@jRhB}r(jTjUXpyhG]hF]hD]hE]hI]jVX attributerjXjuhKNhLhh4]r(jZ)r}r(h9X send_eventsrh:jh;jh@j^hB}r(hG]rhajahhF]hD]hE]hI]rhajfXCarrotListener.send_eventsjhjgjiuhKKhLhh4]rj})r}r(h9jh:jh;jh@jhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhUX send_eventsrr}r(h9Uh:jubaubaubj)r}r(h9Uh:jh;jh@jhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhi)r}r(h9XIs events enabled?rh:jh;jh@hnhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhUXIs events enabled?rr}r(h9jh:jubaubaubeubha)r}r(h9Uh:jh;jh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgX?init_callback (celery.worker.listener.CarrotListener attribute)hUtrauhKNhLhh4]ubjO)r}r(h9Uh:jh;jh@jRhB}r(jTjUXpyhG]hF]hD]hE]hI]jVX attributerjXjuhKNhLhh4]r(jZ)r}r(h9X init_callbackrh:jh;jh@j^hB}r(hG]rhajahhF]hD]hE]hI]rhajfXCarrotListener.init_callbackjhjgjiuhKKhLhh4]rj})r}r(h9jh:jh;jh@jhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhUX init_callbackrr}r(h9Uh:jubaubaubj)r}r(h9Uh:jh;jh@jhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhi)r}r(h9X>Callback to be called the first time the connection is active.rh:jh;jh@hnhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhUX>Callback to be called the first time the connection is active.rr}r(h9jh:jubaubaubeubha)r}r(h9Uh:jh;jh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgX:hostname (celery.worker.listener.CarrotListener attribute)h UtrauhKNhLhh4]ubjO)r}r(h9Uh:jh;jh@jRhB}r(jTjUXpyhG]hF]hD]hE]hI]jVX attributerjXjuhKNhLhh4]r(jZ)r}r(h9Xhostnamerh:jh;jh@j^hB}r(hG]rh ajahhF]hD]hE]hI]rh ajfXCarrotListener.hostnamejhjgjiuhKKhLhh4]rj})r}r(h9jh:jh;jh@jhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhUXhostnamerr}r(h9Uh:jubaubaubj)r}r(h9Uh:jh;jh@jhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhi)r}r(h9X2Current hostname. Defaults to the system hostname.rh:jh;jh@hnhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhUX2Current hostname. Defaults to the system hostname.rr}r(h9jh:jubaubaubeubha)r}r(h9Uh:jh;jh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgXHinitial_prefetch_count (celery.worker.listener.CarrotListener attribute)h&UtrauhKNhLhh4]ubjO)r}r(h9Uh:jh;jh@jRhB}r(jTjUXpyhG]hF]hD]hE]hI]jVX attributerjXjuhKNhLhh4]r(jZ)r}r(h9Xinitial_prefetch_countrh:jh;jh@j^hB}r(hG]rh&ajahhF]hD]hE]hI]rh&ajfX%CarrotListener.initial_prefetch_countjhjgjiuhKKhLhh4]rj})r}r(h9jh:jh;jh@jhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhUXinitial_prefetch_countr r }r (h9Uh:jubaubaubj)r }r (h9Uh:jh;jh@jhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhi)r}r(h9X0Initial QoS prefetch count for the task channel.rh:j h;jh@hnhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhUX0Initial QoS prefetch count for the task channel.rr}r(h9jh:jubaubaubeubha)r}r(h9Uh:jh;jh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgXBcontrol_dispatch (celery.worker.listener.CarrotListener attribute)hUtrauhKNhLhh4]ubjO)r}r(h9Uh:jh;jh@jRhB}r(jTjUXpyhG]hF]hD]hE]hI]jVX attributer jXj uhKNhLhh4]r!(jZ)r"}r#(h9Xcontrol_dispatchr$h:jh;jh@j^hB}r%(hG]r&hajahhF]hD]hE]hI]r'hajfXCarrotListener.control_dispatchjhjgjiuhKK$hLhh4]r(j})r)}r*(h9j$h:j"h;jh@jhB}r+(hD]hE]hF]hG]hI]uhKK$hLhh4]r,hUXcontrol_dispatchr-r.}r/(h9Uh:j)ubaubaubj)r0}r1(h9Uh:jh;jh@jhB}r2(hD]hE]hF]hG]hI]uhKK$hLhh4]r3hi)r4}r5(h9XOControl command dispatcher. See :class:`celery.worker.control.ControlDispatch`.h:j0h;jh@hnhB}r6(hD]hE]hF]hG]hI]uhKK"hLhh4]r7(hUX Control command dispatcher. See r8r9}r:(h9X Control command dispatcher. See h:j4ubh)r;}r<(h9X.:class:`celery.worker.control.ControlDispatch`r=h:j4h;Nh@hhB}r>(UreftypeXclasshhX%celery.worker.control.ControlDispatchU refdomainXpyr?hG]hF]U refexplicithD]hE]hI]hhhjghhuhKNh4]r@h)rA}rB(h9j=hB}rC(hD]hE]rD(hj?Xpy-classrEehF]hG]hI]uh:j;h4]rFhUX%celery.worker.control.ControlDispatchrGrH}rI(h9Uh:jAubah@hubaubhUX.rJ}rK(h9X.h:j4ubeubaubeubha)rL}rM(h9Uh:jh;jh@hdhB}rN(hG]hF]hD]hE]hI]Uentries]rO(hgXBevent_dispatcher (celery.worker.listener.CarrotListener attribute)hUtrPauhKNhLhh4]ubjO)rQ}rR(h9Uh:jh;jh@jRhB}rS(jTjUXpyhG]hF]hD]hE]hI]jVX attributerTjXjTuhKNhLhh4]rU(jZ)rV}rW(h9Xevent_dispatcherrXh:jQh;jh@j^hB}rY(hG]rZhajahhF]hD]hE]hI]r[hajfXCarrotListener.event_dispatcherjhjgjiuhKK(hLhh4]r\j})r]}r^(h9jXh:jVh;jh@jhB}r_(hD]hE]hF]hG]hI]uhKK(hLhh4]r`hUXevent_dispatcherrarb}rc(h9Uh:j]ubaubaubj)rd}re(h9Uh:jQh;jh@jhB}rf(hD]hE]hF]hG]hI]uhKK(hLhh4]rghi)rh}ri(h9X+See :class:`celery.events.EventDispatcher`.h:jdh;jh@hnhB}rj(hD]hE]hF]hG]hI]uhKK'hLhh4]rk(hUXSee rlrm}rn(h9XSee h:jhubh)ro}rp(h9X&:class:`celery.events.EventDispatcher`rqh:jhh;Nh@hhB}rr(UreftypeXclasshhXcelery.events.EventDispatcherU refdomainXpyrshG]hF]U refexplicithD]hE]hI]hhhjghhuhKNh4]rth)ru}rv(h9jqhB}rw(hD]hE]rx(hjsXpy-classryehF]hG]hI]uh:joh4]rzhUXcelery.events.EventDispatcherr{r|}r}(h9Uh:juubah@hubaubhUX.r~}r(h9X.h:jhubeubaubeubha)r}r(h9Uh:jh;jh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgX6hart (celery.worker.listener.CarrotListener attribute)hUtrauhKNhLhh4]ubjO)r}r(h9Uh:jh;jh@jRhB}r(jTjUXpyhG]hF]hD]hE]hI]jVX attributerjXjuhKNhLhh4]r(jZ)r}r(h9Xhartrh:jh;jh@j^hB}r(hG]rhajahhF]hD]hE]hI]rhajfXCarrotListener.hartjhjgjiuhKK-hLhh4]rj})r}r(h9jh:jh;jh@jhB}r(hD]hE]hF]hG]hI]uhKK-hLhh4]rhUXhartrr}r(h9Uh:jubaubaubj)r}r(h9Uh:jh;jh@jhB}r(hD]hE]hF]hG]hI]uhKK-hLhh4]rhi)r}r(h9XR:class:`~celery.worker.heartbeat.Heart` sending out heart beats if events enabled.h:jh;jh@hnhB}r(hD]hE]hF]hG]hI]uhKK+hLhh4]r(h)r}r(h9X':class:`~celery.worker.heartbeat.Heart`rh:jh;Nh@hhB}r(UreftypeXclasshhXcelery.worker.heartbeat.HeartU refdomainXpyrhG]hF]U refexplicithD]hE]hI]hhhjghhuhKNh4]rh)r}r(h9jhB}r(hD]hE]r(hjXpy-classrehF]hG]hI]uh:jh4]rhUXHeartrr}r(h9Uh:jubah@hubaubhUX+ sending out heart beats if events enabled.rr}r(h9X+ sending out heart beats if events enabled.h:jubeubaubeubha)r}r(h9Uh:jh;jh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgX8logger (celery.worker.listener.CarrotListener attribute)h UtrauhKNhLhh4]ubjO)r}r(h9Uh:jh;jh@jRhB}r(jTjUXpyhG]hF]hD]hE]hI]jVX attributerjXjuhKNhLhh4]r(jZ)r}r(h9Xloggerrh:jh;h\h@j^hB}r(hG]rh ajahhF]hD]hE]hI]rh ajfXCarrotListener.loggerjhjgjiuhKKhLhh4]rj})r}r(h9jh:jh;h\h@jhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhUXloggerrr}r(h9Uh:jubaubaubj)r}r(h9Uh:jh;h\h@jhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]rhi)r}r(h9XThe logger used.rh:jh;jh@hnhB}r(hD]hE]hF]hG]hI]uhKK0hLhh4]rhUXThe logger used.rr}r(h9jh:jubaubaubeubha)r}r(h9Uh:jh;Nh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgX?apply_eta_task() (celery.worker.listener.CarrotListener method)h!UtrauhKNhLhh4]ubjO)r}r(h9Uh:jh;Nh@jRhB}r(jTjUXpyhG]hF]hD]hE]hI]jVXmethodrjXjuhKNhLhh4]r(jZ)r}r(h9X#CarrotListener.apply_eta_task(task)h:jh;j]h@j^hB}r(hG]rh!ajah(hD]hE]hF]hG]hI]uhKNhLhh4]r?hi)r@}rA(h9X;Consume messages forever (or until an exception is raised).rBh:j<h;j h@hnhB}rC(hD]hE]hF]hG]hI]uhKKhLhh4]rDhUX;Consume messages forever (or until an exception is raised).rErF}rG(h9jBh:j@ubaubaubeubha)rH}rI(h9Uh:jh;Nh@hdhB}rJ(hG]hF]hD]hE]hI]Uentries]rK(hgX6info (celery.worker.listener.CarrotListener attribute)hUtrLauhKNhLhh4]ubjO)rM}rN(h9Uh:jh;Nh@jRhB}rO(jTjUXpyhG]hF]hD]hE]hI]jVX attributerPjXjPuhKNhLhh4]rQ(jZ)rR}rS(h9XCarrotListener.infoh:jMh;j]h@j^hB}rT(hG]rUhajahubeh@j?ubaubeubeubha)r;}r<(h9Uh:jh;X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/listener.py:docstring of celery.worker.listener.CarrotListener.on_taskr=h@hdhB}r>(hG]hF]hD]hE]hI]Uentries]r?(hgX8on_task() (celery.worker.listener.CarrotListener method)hUtr@auhKNhLhh4]ubjO)rA}rB(h9Uh:jh;j=h@jRhB}rC(jTjUXpyhG]hF]hD]hE]hI]jVXmethodrDjXjDuhKNhLhh4]rE(jZ)rF}rG(h9XCarrotListener.on_task(task)h:jAh;j]h@j^hB}rH(hG]rIhajah}r?(h9XCarrotListener.stop()h:j9h;j]h@j^hB}r@(hG]rAhajahh;j]h@jhB}rI(hD]hE]hF]hG]hI]uhKNhLhh4]rJhUXstoprKrL}rM(h9Uh:jGubaubj)rN}rO(h9Uh:j>h;j]h@jhB}rP(hD]hE]hF]hG]hI]uhKNhLhh4]ubeubj)rQ}rR(h9Uh:j9h;j]h@jhB}rS(hD]hE]hF]hG]hI]uhKNhLhh4]rT(hi)rU}rV(h9XStop consuming.rWh:jQh;j5h@hnhB}rX(hD]hE]hF]hG]hI]uhKKhLhh4]rYhUXStop consuming.rZr[}r\(h9jWh:jUubaubhi)r]}r^(h9XDoes not close connection.r_h:jQh;j5h@hnhB}r`(hD]hE]hF]hG]hI]uhKKhLhh4]rahUXDoes not close connection.rbrc}rd(h9j_h:j]ubaubeubeubha)re}rf(h9Uh:jh;X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/listener.py:docstring of celery.worker.listener.CarrotListener.stop_consumersrgh@hdhB}rh(hG]hF]hD]hE]hI]Uentries]ri(hgX?stop_consumers() (celery.worker.listener.CarrotListener method)hUtrjauhKNhLhh4]ubjO)rk}rl(h9Uh:jh;jgh@jRhB}rm(jTjUXpyhG]hF]hD]hE]hI]jVXmethodrnjXjnuhKNhLhh4]ro(jZ)rp}rq(h9X)CarrotListener.stop_consumers(close=True)h:jkh;j]h@j^hB}rr(hG]rshajahr?}r@(h9XInitial prefetch count value.h:j0ubeh@hnubah@h~ubh{)rA}rB(h9UhB}rC(hD]hE]hF]hG]hI]uh:jh4]rDhi)rE}rF(h9UhB}rG(hD]hE]hF]hG]hI]uh:jAh4]rH(j )rI}rJ(h9XloggerhB}rK(hD]hE]hF]hG]hI]uh:jEh4]rLhUXloggerrMrN}rO(h9Uh:jIubah@j(ubhUX -- rPrQ}rR(h9Uh:jEubhUX"Logger used to log debug messages.rSrT}rU(h9X"Logger used to log debug messages.h:jEubeh@hnubah@h~ubeh@hwubah@j>ubeh@j?ubaubha)rV}rW(h9Uh:jh;X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/listener.py:docstring of celery.worker.listener.QoS.decrementrXh@hdhB}rY(hG]hF]hD]hE]hI]Uentries]rZ(hgX/decrement() (celery.worker.listener.QoS method)hUtr[auhKNhLhh4]ubjO)r\}r](h9Uh:jh;jXh@jRhB}r^(jTjUXpyhG]hF]hD]hE]hI]jVXmethodr_jXj_uhKNhLhh4]r`(jZ)ra}rb(h9XQoS.decrement()h:j\h;j]h@j^hB}rc(hG]rdhajahr h@j^hB}r (hG]r h ajah r? }r@ bhF]hD]hE]hI]rA h#ajfXQoS.setjhjjiuhKNhLhh4]rB (j})rC }rD (h9Xseth:j: h;j]h@jhB}rE (hD]hE]hF]hG]hI]uhKNhLhh4]rF hUXsetrG rH }rI (h9Uh:jC ubaubj)rJ }rK (h9Uh:j: h;j]h@jhB}rL (hD]hE]hF]hG]hI]uhKNhLhh4]rM j)rN }rO (h9XpcounthB}rP (hD]hE]hF]hG]hI]uh:jJ h4]rQ hUXpcountrR rS }rT (h9Uh:jN ubah@jubaubeubj)rU }rV (h9Uh:j5 h;j]h@jhB}rW (hD]hE]hF]hG]hI]uhKNhLhh4]rX hi)rY }rZ (h9X#Set channel prefetch_count setting.r[ h:jU h;j1 h@hnhB}r\ (hD]hE]hF]hG]hI]uhKKhLhh4]r] hUX#Set channel prefetch_count setting.r^ r_ }r` (h9j[ h:jY ubaubaubeubha)ra }rb (h9Uh:jh;X}/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/listener.py:docstring of celery.worker.listener.QoS.updaterc h@hdhB}rd (hG]hF]hD]hE]hI]Uentries]re (hgX,update() (celery.worker.listener.QoS method)h Utrf auhKNhLhh4]ubjO)rg }rh (h9Uh:jh;jc h@jRhB}ri (jTjUXpyhG]hF]hD]hE]hI]jVXmethodrj jXjj uhKNhLhh4]rk (jZ)rl }rm (h9X QoS.update()rn h:jg h;j]h@j^hB}ro (hG]rp h ajahh@Utopicr hB}r (hD]hE]r (Ucontentsr Ulocalr ehF]hG]r h3ahI]r hauhKKhLhh4]r cdocutils.nodes pending r )r }r (h9X.. contents:: :local:h:j U transformr cdocutils.transforms.parts Contents r Udetailsr }r UlocalNsh@Upendingr hB}r (hD]hE]hF]hG]hI]uh4]ubaubhjhj>hj"hjhj[hj h`hZhjVhjJhjhjphjhjFhjahjhjRhjhjh jh!jh"jh#j: h2h7h$jnh%joh&jh'j)h(juUsubstitution_namesr }r h@hLhB}r (hD]hG]hF]Usourceh>hE]hI]uU footnotesr ]r Urefidsr }r ub.PKYDD cJcelery-2.1-archived/.doctrees/internals/reference/celery.platforms.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X'celery.platforms.install_signal_handlerqX"celery.platforms.set_process_titleqXcelery.platforms.parse_gidqX%celery.platforms.DaemonContext.detachq Xcelery.platforms.PIDFile.removeq X celery.platforms.PIDFile.releaseq Xcelery.platforms.strargvq X$celery.platforms.DaemonContext.closeq Xcelery.platforms.ignore_signalqUcontentsqNX#celery.platforms.set_effective_userqXcelery.platforms.seteuidqX!celery.platforms.PIDFile.read_pidqXcelery.platforms.setegidqXcelery.platforms.get_fdmaxqXcelery.platforms.parse_uidqX&celery.platforms.create_daemon_contextqXcelery.platforms.DaemonContextqX$platform specific - celery.platformsqNX%celery.platforms.set_mp_process_titleqX"celery.platforms.PIDFile.write_pidqX celery.platforms.PIDFile.acquireqX"celery.platforms.PIDFile.is_lockedqXcelery.platforms.create_pidlockqXcelery.platforms.reset_signalqXcelery.platforms.PIDFileqX#celery.platforms.DaemonContext.openq Xcelery.platforms.LockFailedq!X(celery.platforms.PIDFile.remove_if_staleq"uUsubstitution_defsq#}q$Uparse_messagesq%]q&Ucurrent_sourceq'NU decorationq(NUautofootnote_startq)KUnameidsq*}q+(hhhhhhh h h h h h h h h h hhhUcontentsq,hhhhhhhhhhhhhhhhhU"platform-specific-celery-platformsq-hhhhhhhhhhhhhhh h h!h!h"h"uUchildrenq.]q/cdocutils.nodes section q0)q1}q2(U rawsourceq3UUparentq4hUsourceq5cdocutils.nodes reprunicode q6Xb/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.platforms.rstq7q8}q9bUtagnameq:Usectionq;U attributesq<}q=(Udupnamesq>]Uclassesq?]Ubackrefsq@]UidsqA]qBh-aUnamesqC]qDhauUlineqEKUdocumentqFhh.]qG(cdocutils.nodes title qH)qI}qJ(h3X$Platform Specific - celery.platformsqKh4h1h5h8h:UtitleqLh<}qM(h>]h?]h@]hA]hC]uhEKhFhh.]qNcdocutils.nodes Text qOX$Platform Specific - celery.platformsqPqQ}qR(h3hKh4hIubaubcdocutils.nodes target qS)qT}qU(h3Uh4h1h5U qVh:UtargetqWh<}qX(h>]hA]qYXmodule-celery.platformsqZah@]Uismodh?]hC]uhEKhFhh.]ubcsphinx.addnodes index q[)q\}q](h3Uh4h1h5hVh:Uindexq^h<}q_(hA]h@]h>]h?]hC]Uentries]q`(UsingleqaXcelery.platforms (module)Xmodule-celery.platformsUtqbauhEKhFhh.]ubh[)qc}qd(h3Uh4h1h5Nh:h^h<}qe(hA]h@]h>]h?]hC]Uentries]qf(haX)DaemonContext (class in celery.platforms)hUtqgauhENhFhh.]ubcsphinx.addnodes desc qh)qi}qj(h3Uh4h1h5Nh:Udescqkh<}ql(UnoindexqmUdomainqnXpyhA]h@]h>]h?]hC]UobjtypeqoXclassqpUdesctypeqqhpuhENhFhh.]qr(csphinx.addnodes desc_signature qs)qt}qu(h3XEDaemonContext(pidfile=None, working_directory='/', umask=0, **kwargs)h4hih5U qvh:Udesc_signatureqwh<}qx(hA]qyhaUmoduleqzh6Xcelery.platformsq{q|}q}bh@]h>]h?]hC]q~haUfullnameqX DaemonContextqUclassqUUfirstquhENhFhh.]q(csphinx.addnodes desc_annotation q)q}q(h3Xclass h4hth5hvh:Udesc_annotationqh<}q(h>]h?]h@]hA]hC]uhENhFhh.]qhOXclass qq}q(h3Uh4hubaubcsphinx.addnodes desc_addname q)q}q(h3Xcelery.platforms.h4hth5hvh:U desc_addnameqh<}q(h>]h?]h@]hA]hC]uhENhFhh.]qhOXcelery.platforms.qq}q(h3Uh4hubaubcsphinx.addnodes desc_name q)q}q(h3hh4hth5hvh:U desc_nameqh<}q(h>]h?]h@]hA]hC]uhENhFhh.]qhOX DaemonContextqq}q(h3Uh4hubaubcsphinx.addnodes desc_parameterlist q)q}q(h3Uh4hth5hvh:Udesc_parameterlistqh<}q(h>]h?]h@]hA]hC]uhENhFhh.]q(csphinx.addnodes desc_parameter q)q}q(h3X pidfile=Noneh<}q(h>]h?]h@]hA]hC]uh4hh.]qhOX pidfile=Noneqq}q(h3Uh4hubah:Udesc_parameterqubh)q}q(h3Xworking_directory='/'h<}q(h>]h?]h@]hA]hC]uh4hh.]qhOXworking_directory='/'qq}q(h3Uh4hubah:hubh)q}q(h3Xumask=0h<}q(h>]h?]h@]hA]hC]uh4hh.]qhOXumask=0qq}q(h3Uh4hubah:hubh)q}q(h3X**kwargsh<}q(h>]h?]h@]hA]hC]uh4hh.]qhOX**kwargsqq}q(h3Uh4hubah:hubeubeubcsphinx.addnodes desc_content q)q}q(h3Uh4hih5hvh:U desc_contentqh<}q(h>]h?]h@]hA]hC]uhENhFhh.]q(h[)q}q(h3Uh4hh5Nh:h^h<}q(hA]h@]h>]h?]hC]Uentries]q(haX/close() (celery.platforms.DaemonContext method)h UtqauhENhFhh.]ubhh)q}q(h3Uh4hh5Nh:hkh<}q(hmhnXpyhA]h@]h>]h?]hC]hoXmethodqhqhuhENhFhh.]q(hs)q}q(h3XDaemonContext.close()h4hh5hvh:hwh<}q(hA]qh ahzh6Xcelery.platformsqׅq}qbh@]h>]h?]hC]qh ahXDaemonContext.closehhhuhENhFhh.]q(h)q}q(h3Xcloseh4hh5hvh:hh<}q(h>]h?]h@]hA]hC]uhENhFhh.]qhOXcloseqq}q(h3Uh4hubaubh)q}q(h3Uh4hh5hvh:hh<}q(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh)q}q(h3Uh4hh5hvh:hh<}q(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh[)q}q(h3Uh4hh5Nh:h^h<}q(hA]h@]h>]h?]hC]Uentries]q(haX0detach() (celery.platforms.DaemonContext method)h UtqauhENhFhh.]ubhh)q}q(h3Uh4hh5Nh:hkh<}q(hmhnXpyhA]h@]h>]h?]hC]hoXmethodqhqhuhENhFhh.]q(hs)q}q(h3XDaemonContext.detach()h4hh5hvh:hwh<}q(hA]qh ahzh6Xcelery.platformsqq}qbh@]h>]h?]hC]qh ahXDaemonContext.detachhhhuhENhFhh.]q(h)q}q(h3Xdetachh4hh5hvh:hh<}q(h>]h?]h@]hA]hC]uhENhFhh.]qhOXdetachrr}r(h3Uh4hubaubh)r}r(h3Uh4hh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh)r}r(h3Uh4hh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh[)r }r (h3Uh4hh5Nh:h^h<}r (hA]h@]h>]h?]hC]Uentries]r (haX.open() (celery.platforms.DaemonContext method)h Utr auhENhFhh.]ubhh)r}r(h3Uh4hh5Nh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXmethodrhqjuhENhFhh.]r(hs)r}r(h3XDaemonContext.open()h4jh5hvh:hwh<}r(hA]rh ahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rh ahXDaemonContext.openhhhuhENhFhh.]r(h)r}r(h3Xopenh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXopenr r!}r"(h3Uh4jubaubh)r#}r$(h3Uh4jh5hvh:hh<}r%(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh)r&}r'(h3Uh4jh5hvh:hh<}r((h>]h?]h@]hA]hC]uhENhFhh.]ubeubeubeubh[)r)}r*(h3Uh4h1h5Nh:h^h<}r+(hA]h@]h>]h?]hC]Uentries]r,(haX LockFailedr-h!Utr.auhENhFhh.]ubhh)r/}r0(h3Uh4h1h5Nh:hkh<}r1(hmhnXpyhA]h@]h>]h?]hC]hoX exceptionr2hqj2uhENhFhh.]r3(hs)r4}r5(h3j-h4j/h5hvh:hwh<}r6(hA]r7h!ahzh6Xcelery.platformsr8r9}r:bh@]h>]h?]hC]r;h!ahj-hUhuhENhFhh.]r<(h)r=}r>(h3X exception h4j4h5hvh:hh<}r?(h>]h?]h@]hA]hC]uhENhFhh.]r@hOX exception rArB}rC(h3Uh4j=ubaubh)rD}rE(h3Xcelery.platforms.h4j4h5hvh:hh<}rF(h>]h?]h@]hA]hC]uhENhFhh.]rGhOXcelery.platforms.rHrI}rJ(h3Uh4jDubaubh)rK}rL(h3j-h4j4h5hvh:hh<}rM(h>]h?]h@]hA]hC]uhENhFhh.]rNhOX LockFailedrOrP}rQ(h3Uh4jKubaubeubh)rR}rS(h3Uh4j/h5hvh:hh<}rT(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh[)rU}rV(h3Uh4h1h5Nh:h^h<}rW(hA]h@]h>]h?]hC]Uentries]rX(haX#PIDFile (class in celery.platforms)hUtrYauhENhFhh.]ubhh)rZ}r[(h3Uh4h1h5Nh:hkh<}r\(hmhnXpyhA]h@]h>]h?]hC]hoXclassr]hqj]uhENhFhh.]r^(hs)r_}r`(h3X PIDFile(path)rah4jZh5hvh:hwh<}rb(hA]rchahzh6Xcelery.platformsrdre}rfbh@]h>]h?]hC]rghahXPIDFilerhhUhuhENhFhh.]ri(h)rj}rk(h3Xclass h4j_h5hvh:hh<}rl(h>]h?]h@]hA]hC]uhENhFhh.]rmhOXclass rnro}rp(h3Uh4jjubaubh)rq}rr(h3Xcelery.platforms.h4j_h5hvh:hh<}rs(h>]h?]h@]hA]hC]uhENhFhh.]rthOXcelery.platforms.rurv}rw(h3Uh4jqubaubh)rx}ry(h3jhh4j_h5hvh:hh<}rz(h>]h?]h@]hA]hC]uhENhFhh.]r{hOXPIDFiler|r}}r~(h3Uh4jxubaubh)r}r(h3Uh4j_h5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rh)r}r(h3Xpathh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOXpathrr}r(h3Uh4jubah:hubaubeubh)r}r(h3Uh4jZh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r(h[)r}r(h3Uh4jh5Nh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX+acquire() (celery.platforms.PIDFile method)hUtrauhENhFhh.]ubhh)r}r(h3Uh4jh5Nh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXmethodrhqjuhENhFhh.]r(hs)r}r(h3XPIDFile.acquire()h4jh5hvh:hwh<}r(hA]rhahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rhahXPIDFile.acquirehjhhuhENhFhh.]r(h)r}r(h3Xacquireh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXacquirerr}r(h3Uh4jubaubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh[)r}r(h3Uh4jh5Nh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX-is_locked() (celery.platforms.PIDFile method)hUtrauhENhFhh.]ubhh)r}r(h3Uh4jh5Nh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXmethodrhqjuhENhFhh.]r(hs)r}r(h3XPIDFile.is_locked()h4jh5hvh:hwh<}r(hA]rhahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rhahXPIDFile.is_lockedhjhhuhENhFhh.]r(h)r}r(h3X is_lockedh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOX is_lockedrr}r(h3Uh4jubaubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh[)r}r(h3Uh4jh5Nh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX,read_pid() (celery.platforms.PIDFile method)hUtrauhENhFhh.]ubhh)r}r(h3Uh4jh5Nh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXmethodrhqjuhENhFhh.]r(hs)r}r(h3XPIDFile.read_pid()h4jh5hvh:hwh<}r(hA]rhahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rhahXPIDFile.read_pidhjhhuhENhFhh.]r(h)r}r(h3Xread_pidh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXread_pidrr}r(h3Uh4jubaubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh[)r}r(h3Uh4jh5Nh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX+release() (celery.platforms.PIDFile method)h UtrauhENhFhh.]ubhh)r}r(h3Uh4jh5Nh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXmethodrhqjuhENhFhh.]r(hs)r}r(h3XPIDFile.release()h4jh5hvh:hwh<}r(hA]rh ahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rh ahXPIDFile.releasehjhhuhENhFhh.]r(h)r}r(h3Xreleaseh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXreleaserr}r(h3Uh4jubaubh)r}r (h3Uh4jh5hvh:hh<}r (h>]h?]h@]hA]hC]uhENhFhh.]ubeubh)r }r (h3Uh4jh5hvh:hh<}r (h>]h?]h@]hA]hC]uhENhFhh.]ubeubh[)r}r(h3Uh4jh5Nh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX*remove() (celery.platforms.PIDFile method)h UtrauhENhFhh.]ubhh)r}r(h3Uh4jh5Nh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXmethodrhqjuhENhFhh.]r(hs)r}r(h3XPIDFile.remove()h4jh5hvh:hwh<}r(hA]rh ahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rh ahXPIDFile.removehjhhuhENhFhh.]r (h)r!}r"(h3Xremoveh4jh5hvh:hh<}r#(h>]h?]h@]hA]hC]uhENhFhh.]r$hOXremover%r&}r'(h3Uh4j!ubaubh)r(}r)(h3Uh4jh5hvh:hh<}r*(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh)r+}r,(h3Uh4jh5hvh:hh<}r-(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh[)r.}r/(h3Uh4jh5Nh:h^h<}r0(hA]h@]h>]h?]hC]Uentries]r1(haX3remove_if_stale() (celery.platforms.PIDFile method)h"Utr2auhENhFhh.]ubhh)r3}r4(h3Uh4jh5Nh:hkh<}r5(hmhnXpyhA]h@]h>]h?]hC]hoXmethodr6hqj6uhENhFhh.]r7(hs)r8}r9(h3XPIDFile.remove_if_stale()h4j3h5hvh:hwh<}r:(hA]r;h"ahzh6Xcelery.platformsr<r=}r>bh@]h>]h?]hC]r?h"ahXPIDFile.remove_if_stalehjhhuhENhFhh.]r@(h)rA}rB(h3Xremove_if_staleh4j8h5hvh:hh<}rC(h>]h?]h@]hA]hC]uhENhFhh.]rDhOXremove_if_stalerErF}rG(h3Uh4jAubaubh)rH}rI(h3Uh4j8h5hvh:hh<}rJ(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh)rK}rL(h3Uh4j3h5hvh:hh<}rM(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh[)rN}rO(h3Uh4jh5Nh:h^h<}rP(hA]h@]h>]h?]hC]Uentries]rQ(haX-write_pid() (celery.platforms.PIDFile method)hUtrRauhENhFhh.]ubhh)rS}rT(h3Uh4jh5Nh:hkh<}rU(hmhnXpyhA]h@]h>]h?]hC]hoXmethodrVhqjVuhENhFhh.]rW(hs)rX}rY(h3XPIDFile.write_pid()rZh4jSh5hvh:hwh<}r[(hA]r\hahzh6Xcelery.platformsr]r^}r_bh@]h>]h?]hC]r`hahXPIDFile.write_pidhjhhuhENhFhh.]ra(h)rb}rc(h3X write_pidh4jXh5hvh:hh<}rd(h>]h?]h@]hA]hC]uhENhFhh.]rehOX write_pidrfrg}rh(h3Uh4jbubaubh)ri}rj(h3Uh4jXh5hvh:hh<}rk(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh)rl}rm(h3Uh4jSh5hvh:hh<}rn(h>]h?]h@]hA]hC]uhENhFhh.]ubeubeubeubh[)ro}rp(h3Uh4h1h5Nh:h^h<}rq(hA]h@]h>]h?]hC]Uentries]rr(haX4create_daemon_context() (in module celery.platforms)hUtrsauhENhFhh.]ubhh)rt}ru(h3Uh4h1h5Nh:hkh<}rv(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionrwhqjwuhENhFhh.]rx(hs)ry}rz(h3XPcreate_daemon_context(logfile=None, pidfile=None, uid=None, gid=None, **options)h4jth5hvh:hwh<}r{(hA]r|hahzh6Xcelery.platformsr}r~}rbh@]h>]h?]hC]rhahXcreate_daemon_contextrhUhuhENhFhh.]r(h)r}r(h3Xcelery.platforms.h4jyh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXcelery.platforms.rr}r(h3Uh4jubaubh)r}r(h3jh4jyh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXcreate_daemon_contextrr}r(h3Uh4jubaubh)r}r(h3Uh4jyh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r(h)r}r(h3X logfile=Noneh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOX logfile=Nonerr}r(h3Uh4jubah:hubh)r}r(h3X pidfile=Noneh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOX pidfile=Nonerr}r(h3Uh4jubah:hubh)r}r(h3Xuid=Noneh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOXuid=Nonerr}r(h3Uh4jubah:hubh)r}r(h3Xgid=Noneh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOXgid=Nonerr}r(h3Uh4jubah:hubh)r}r(h3X **optionsh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOX **optionsrr}r(h3Uh4jubah:hubeubeubh)r}r(h3Uh4jth5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh[)r}r(h3Uh4h1h5Xu/var/build/user_builds/celery/checkouts/2.1-archived/celery/platforms.py:docstring of celery.platforms.create_pidlockrh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX-create_pidlock() (in module celery.platforms)hUtrauhENhFhh.]ubhh)r}r(h3Uh4h1h5jh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionrhqjuhENhFhh.]r(hs)r}r(h3Xcreate_pidlock(pidfile)h4jh5hvh:hwh<}r(hA]rhahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rhahXcreate_pidlockrhUhuhENhFhh.]r(h)r}r(h3Xcelery.platforms.h4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXcelery.platforms.rr}r(h3Uh4jubaubh)r}r(h3jh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXcreate_pidlockrr}r(h3Uh4jubaubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rh)r}r(h3Xpidfileh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOXpidfilerr}r(h3Uh4jubah:hubaubeubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r(cdocutils.nodes paragraph r)r}r(h3XCreate and verify pidfile.rh4jh5jh:U paragraphrh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOXCreate and verify pidfile.rr}r(h3jh4jubaubj)r}r(h3XIf the pidfile already exists the program exits with an error message, however if the process it refers to is not running anymore, the pidfile is just deleted.rh4jh5jh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOXIf the pidfile already exists the program exits with an error message, however if the process it refers to is not running anymore, the pidfile is just deleted.rr}r(h3jh4jubaubeubeubh[)r}r(h3Uh4h1h5Nh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX(get_fdmax() (in module celery.platforms)hUtrauhENhFhh.]ubhh)r}r(h3Uh4h1h5Nh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionrhqjuhENhFhh.]r(hs)r }r (h3Xget_fdmax(default=None)h4jh5hvh:hwh<}r (hA]r hahzh6Xcelery.platformsr r}rbh@]h>]h?]hC]rhahX get_fdmaxrhUhuhENhFhh.]r(h)r}r(h3Xcelery.platforms.h4j h5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXcelery.platforms.rr}r(h3Uh4jubaubh)r}r(h3jh4j h5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOX get_fdmaxrr}r (h3Uh4jubaubh)r!}r"(h3Uh4j h5hvh:hh<}r#(h>]h?]h@]hA]hC]uhENhFhh.]r$h)r%}r&(h3X default=Noneh<}r'(h>]h?]h@]hA]hC]uh4j!h.]r(hOX default=Noner)r*}r+(h3Uh4j%ubah:hubaubeubh)r,}r-(h3Uh4jh5hvh:hh<}r.(h>]h?]h@]hA]hC]uhENhFhh.]ubeubh[)r/}r0(h3Uh4h1h5Xt/var/build/user_builds/celery/checkouts/2.1-archived/celery/platforms.py:docstring of celery.platforms.ignore_signalr1h:h^h<}r2(hA]h@]h>]h?]hC]Uentries]r3(haX,ignore_signal() (in module celery.platforms)hUtr4auhENhFhh.]ubhh)r5}r6(h3Uh4h1h5j1h:hkh<}r7(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionr8hqj8uhENhFhh.]r9(hs)r:}r;(h3Xignore_signal(signal_name)h4j5h5hvh:hwh<}r<(hA]r=hahzh6Xcelery.platformsr>r?}r@bh@]h>]h?]hC]rAhahX ignore_signalrBhUhuhENhFhh.]rC(h)rD}rE(h3Xcelery.platforms.h4j:h5hvh:hh<}rF(h>]h?]h@]hA]hC]uhENhFhh.]rGhOXcelery.platforms.rHrI}rJ(h3Uh4jDubaubh)rK}rL(h3jBh4j:h5hvh:hh<}rM(h>]h?]h@]hA]hC]uhENhFhh.]rNhOX ignore_signalrOrP}rQ(h3Uh4jKubaubh)rR}rS(h3Uh4j:h5hvh:hh<}rT(h>]h?]h@]hA]hC]uhENhFhh.]rUh)rV}rW(h3X signal_nameh<}rX(h>]h?]h@]hA]hC]uh4jRh.]rYhOX signal_namerZr[}r\(h3Uh4jVubah:hubaubeubh)r]}r^(h3Uh4j5h5hvh:hh<}r_(h>]h?]h@]hA]hC]uhENhFhh.]r`(j)ra}rb(h3X%Ignore signal using :const:`SIG_IGN`.h4j]h5j1h:jh<}rc(h>]h?]h@]hA]hC]uhEKhFhh.]rd(hOXIgnore signal using rerf}rg(h3XIgnore signal using h4jaubcsphinx.addnodes pending_xref rh)ri}rj(h3X:const:`SIG_IGN`rkh4jah5Nh:U pending_xrefrlh<}rm(UreftypeXconstUrefwarnrnU reftargetroXSIG_IGNU refdomainXpyrphA]h@]U refexplicith>]h?]hC]UrefdocrqX$internals/reference/celery.platformsrrUpy:classrsNU py:modulertXcelery.platformsruuhENh.]rvcdocutils.nodes literal rw)rx}ry(h3jkh<}rz(h>]h?]r{(Uxrefr|jpXpy-constr}eh@]hA]hC]uh4jih.]r~hOXSIG_IGNrr}r(h3Uh4jxubah:UliteralrubaubhOX.r}r(h3X.h4jaubeubj)r}r(h3X\Does nothing if the platform doesn't support signals, or the specified signal in particular.rh4j]h5j1h:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOX\Does nothing if the platform doesn't support signals, or the specified signal in particular.rr}r(h3jh4jubaubeubeubh[)r}r(h3Uh4h1h5X}/var/build/user_builds/celery/checkouts/2.1-archived/celery/platforms.py:docstring of celery.platforms.install_signal_handlerrh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX5install_signal_handler() (in module celery.platforms)hUtrauhENhFhh.]ubhh)r}r(h3Uh4h1h5jh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionrhqjuhENhFhh.]r(hs)r}r(h3X,install_signal_handler(signal_name, handler)h4jh5hvh:hwh<}r(hA]rhahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rhahXinstall_signal_handlerrhUhuhENhFhh.]r(h)r}r(h3Xcelery.platforms.h4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXcelery.platforms.rr}r(h3Uh4jubaubh)r}r(h3jh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXinstall_signal_handlerrr}r(h3Uh4jubaubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r(h)r}r(h3X signal_nameh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOX signal_namerr}r(h3Uh4jubah:hubh)r}r(h3Xhandlerh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOXhandlerrr}r(h3Uh4jubah:hubeubeubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r(j)r}r(h3XInstall a handler.rh4jh5jh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOXInstall a handler.rr}r(h3jh4jubaubj)r}r(h3XdDoes nothing if the current platform doesn't support signals, or the specified signal in particular.rh4jh5jh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOXdDoes nothing if the current platform doesn't support signals, or the specified signal in particular.rr}r(h3jh4jubaubeubeubh[)r}r(h3Uh4h1h5Xp/var/build/user_builds/celery/checkouts/2.1-archived/celery/platforms.py:docstring of celery.platforms.parse_gidrh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX(parse_gid() (in module celery.platforms)hUtrauhENhFhh.]ubhh)r}r(h3Uh4h1h5jh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionrhqjuhENhFhh.]r(hs)r}r(h3Xparse_gid(gid)h4jh5hvh:hwh<}r(hA]rhahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rhahX parse_gidrhUhuhENhFhh.]r(h)r}r(h3Xcelery.platforms.h4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXcelery.platforms.rr}r(h3Uh4jubaubh)r}r(h3jh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOX parse_gidrr}r(h3Uh4jubaubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rh)r}r(h3Xgidh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOXgidrr}r(h3Uh4jubah:hubaubeubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r(j)r}r (h3XParse group id.r h4jh5jh:jh<}r (h>]h?]h@]hA]hC]uhEKhFhh.]r hOXParse group id.r r}r(h3j h4jubaubj)r}r(h3Xngid can be an integer (gid) or a string (group name), if a group name the gid is taken from the password file.rh4jh5jh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOXngid can be an integer (gid) or a string (group name), if a group name the gid is taken from the password file.rr}r(h3jh4jubaubeubeubh[)r}r(h3Uh4h1h5Xp/var/build/user_builds/celery/checkouts/2.1-archived/celery/platforms.py:docstring of celery.platforms.parse_uidrh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX(parse_uid() (in module celery.platforms)hUtrauhENhFhh.]ubhh)r}r(h3Uh4h1h5jh:hkh<}r (hmhnXpyhA]h@]h>]h?]hC]hoXfunctionr!hqj!uhENhFhh.]r"(hs)r#}r$(h3Xparse_uid(uid)h4jh5hvh:hwh<}r%(hA]r&hahzh6Xcelery.platformsr'r(}r)bh@]h>]h?]hC]r*hahX parse_uidr+hUhuhENhFhh.]r,(h)r-}r.(h3Xcelery.platforms.h4j#h5hvh:hh<}r/(h>]h?]h@]hA]hC]uhENhFhh.]r0hOXcelery.platforms.r1r2}r3(h3Uh4j-ubaubh)r4}r5(h3j+h4j#h5hvh:hh<}r6(h>]h?]h@]hA]hC]uhENhFhh.]r7hOX parse_uidr8r9}r:(h3Uh4j4ubaubh)r;}r<(h3Uh4j#h5hvh:hh<}r=(h>]h?]h@]hA]hC]uhENhFhh.]r>h)r?}r@(h3Xuidh<}rA(h>]h?]h@]hA]hC]uh4j;h.]rBhOXuidrCrD}rE(h3Uh4j?ubah:hubaubeubh)rF}rG(h3Uh4jh5hvh:hh<}rH(h>]h?]h@]hA]hC]uhENhFhh.]rI(j)rJ}rK(h3XParse user id.rLh4jFh5jh:jh<}rM(h>]h?]h@]hA]hC]uhEKhFhh.]rNhOXParse user id.rOrP}rQ(h3jLh4jJubaubj)rR}rS(h3Xkuid can be an interger (uid) or a string (username), if a username the uid is taken from the password file.rTh4jFh5jh:jh<}rU(h>]h?]h@]hA]hC]uhEKhFhh.]rVhOXkuid can be an interger (uid) or a string (username), if a username the uid is taken from the password file.rWrX}rY(h3jTh4jRubaubeubeubh[)rZ}r[(h3Uh4h1h5Xs/var/build/user_builds/celery/checkouts/2.1-archived/celery/platforms.py:docstring of celery.platforms.reset_signalr\h:h^h<}r](hA]h@]h>]h?]hC]Uentries]r^(haX+reset_signal() (in module celery.platforms)hUtr_auhENhFhh.]ubhh)r`}ra(h3Uh4h1h5j\h:hkh<}rb(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionrchqjcuhENhFhh.]rd(hs)re}rf(h3Xreset_signal(signal_name)h4j`h5hvh:hwh<}rg(hA]rhhahzh6Xcelery.platformsrirj}rkbh@]h>]h?]hC]rlhahX reset_signalrmhUhuhENhFhh.]rn(h)ro}rp(h3Xcelery.platforms.h4jeh5hvh:hh<}rq(h>]h?]h@]hA]hC]uhENhFhh.]rrhOXcelery.platforms.rsrt}ru(h3Uh4joubaubh)rv}rw(h3jmh4jeh5hvh:hh<}rx(h>]h?]h@]hA]hC]uhENhFhh.]ryhOX reset_signalrzr{}r|(h3Uh4jvubaubh)r}}r~(h3Uh4jeh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rh)r}r(h3X signal_nameh<}r(h>]h?]h@]hA]hC]uh4j}h.]rhOX signal_namerr}r(h3Uh4jubah:hubaubeubh)r}r(h3Uh4j`h5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r(j)r}r(h3X+Reset signal to the default signal handler.rh4jh5j\h:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOX+Reset signal to the default signal handler.rr}r(h3jh4jubaubj)r}r(h3X\Does nothing if the platform doesn't support signals, or the specified signal in particular.rh4jh5j\h:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOX\Does nothing if the platform doesn't support signals, or the specified signal in particular.rr}r(h3jh4jubaubeubeubh[)r}r(h3Uh4h1h5Xy/var/build/user_builds/celery/checkouts/2.1-archived/celery/platforms.py:docstring of celery.platforms.set_effective_userrh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX1set_effective_user() (in module celery.platforms)hUtrauhENhFhh.]ubhh)r}r(h3Uh4h1h5jh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionrhqjuhENhFhh.]r(hs)r}r(h3X&set_effective_user(uid=None, gid=None)h4jh5hvh:hwh<}r(hA]rhahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rhahXset_effective_userrhUhuhENhFhh.]r(h)r}r(h3Xcelery.platforms.h4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXcelery.platforms.rr}r(h3Uh4jubaubh)r}r(h3jh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXset_effective_userrr}r(h3Uh4jubaubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r(h)r}r(h3Xuid=Noneh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOXuid=Nonerr}r(h3Uh4jubah:hubh)r}r(h3Xgid=Noneh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOXgid=Nonerr}r(h3Uh4jubah:hubeubeubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r(j)r}r(h3X,Change process privileges to new user/group.rh4jh5jh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOX,Change process privileges to new user/group.rr}r(h3jh4jubaubj)r}r(h3X6If uid and gid is set the effective user/group is set.rh4jh5jh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOX6If uid and gid is set the effective user/group is set.rr}r(h3jh4jubaubj)r}r(h3X^If only uid is set, the effective uer is set, and the group is set to the users primary group.rh4jh5jh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOX^If only uid is set, the effective uer is set, and the group is set to the users primary group.rr}r(h3jh4jubaubj)r}r(h3X/If only gid is set, the effective group is set.rh4jh5jh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOX/If only gid is set, the effective group is set.rr}r(h3jh4jubaubeubeubh[)r}r(h3Uh4h1h5X{/var/build/user_builds/celery/checkouts/2.1-archived/celery/platforms.py:docstring of celery.platforms.set_mp_process_titlerh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX3set_mp_process_title() (in module celery.platforms)hUtrauhENhFhh.]ubhh)r}r(h3Uh4h1h5jh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionrhqjuhENhFhh.]r(hs)r}r(h3X8set_mp_process_title(progname, info=None, hostname=None)h4jh5hvh:hwh<}r(hA]rhahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rhahXset_mp_process_titlerhUhuhENhFhh.]r (h)r }r (h3Xcelery.platforms.h4jh5hvh:hh<}r (h>]h?]h@]hA]hC]uhENhFhh.]r hOXcelery.platforms.rr}r(h3Uh4j ubaubh)r}r(h3jh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXset_mp_process_titlerr}r(h3Uh4jubaubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r(h)r}r(h3Xprognameh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOXprognamer r!}r"(h3Uh4jubah:hubh)r#}r$(h3X info=Noneh<}r%(h>]h?]h@]hA]hC]uh4jh.]r&hOX info=Noner'r(}r)(h3Uh4j#ubah:hubh)r*}r+(h3X hostname=Noneh<}r,(h>]h?]h@]hA]hC]uh4jh.]r-hOX hostname=Noner.r/}r0(h3Uh4j*ubah:hubeubeubh)r1}r2(h3Uh4jh5hvh:hh<}r3(h>]h?]h@]hA]hC]uhENhFhh.]r4(j)r5}r6(h3X7Set the ps name using the multiprocessing process name.r7h4j1h5jh:jh<}r8(h>]h?]h@]hA]hC]uhEKhFhh.]r9hOX7Set the ps name using the multiprocessing process name.r:r;}r<(h3j7h4j5ubaubj)r=}r>(h3X/Only works if :mod:`setproctitle` is installed.h4j1h5jh:jh<}r?(h>]h?]h@]hA]hC]uhEKhFhh.]r@(hOXOnly works if rArB}rC(h3XOnly works if h4j=ubjh)rD}rE(h3X:mod:`setproctitle`rFh4j=h5Nh:jlh<}rG(UreftypeXmodjnjoX setproctitleU refdomainXpyrHhA]h@]U refexplicith>]h?]hC]jqjrjsNjtjuuhENh.]rIjw)rJ}rK(h3jFh<}rL(h>]h?]rM(j|jHXpy-modrNeh@]hA]hC]uh4jDh.]rOhOX setproctitlerPrQ}rR(h3Uh4jJubah:jubaubhOX is installed.rSrT}rU(h3X is installed.h4j=ubeubeubeubh[)rV}rW(h3Uh4h1h5Xx/var/build/user_builds/celery/checkouts/2.1-archived/celery/platforms.py:docstring of celery.platforms.set_process_titlerXh:h^h<}rY(hA]h@]h>]h?]hC]Uentries]rZ(haX0set_process_title() (in module celery.platforms)hUtr[auhENhFhh.]ubhh)r\}r](h3Uh4h1h5jXh:hkh<}r^(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionr_hqj_uhENhFhh.]r`(hs)ra}rb(h3X&set_process_title(progname, info=None)h4j\h5hvh:hwh<}rc(hA]rdhahzh6Xcelery.platformsrerf}rgbh@]h>]h?]hC]rhhahXset_process_titlerihUhuhENhFhh.]rj(h)rk}rl(h3Xcelery.platforms.h4jah5hvh:hh<}rm(h>]h?]h@]hA]hC]uhENhFhh.]rnhOXcelery.platforms.rorp}rq(h3Uh4jkubaubh)rr}rs(h3jih4jah5hvh:hh<}rt(h>]h?]h@]hA]hC]uhENhFhh.]ruhOXset_process_titlervrw}rx(h3Uh4jrubaubh)ry}rz(h3Uh4jah5hvh:hh<}r{(h>]h?]h@]hA]hC]uhENhFhh.]r|(h)r}}r~(h3Xprognameh<}r(h>]h?]h@]hA]hC]uh4jyh.]rhOXprognamerr}r(h3Uh4j}ubah:hubh)r}r(h3X info=Noneh<}r(h>]h?]h@]hA]hC]uh4jyh.]rhOX info=Nonerr}r(h3Uh4jubah:hubeubeubh)r}r(h3Uh4j\h5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r(j)r}r(h3X2Set the ps name for the currently running process.rh4jh5jXh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOX2Set the ps name for the currently running process.rr}r(h3jh4jubaubj)r}r(h3X/Only works if :mod:`setproctitle` is installed.h4jh5jXh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]r(hOXOnly works if rr}r(h3XOnly works if h4jubjh)r}r(h3X:mod:`setproctitle`rh4jh5Nh:jlh<}r(UreftypeXmodjnjoX setproctitleU refdomainXpyrhA]h@]U refexplicith>]h?]hC]jqjrjsNjtjuuhENh.]rjw)r}r(h3jh<}r(h>]h?]r(j|jXpy-modreh@]hA]hC]uh4jh.]rhOX setproctitlerr}r(h3Uh4jubah:jubaubhOX is installed.rr}r(h3X is installed.h4jubeubeubeubh[)r}r(h3Uh4h1h5Xn/var/build/user_builds/celery/checkouts/2.1-archived/celery/platforms.py:docstring of celery.platforms.setegidrh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX&setegid() (in module celery.platforms)hUtrauhENhFhh.]ubhh)r}r(h3Uh4h1h5jh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionrhqjuhENhFhh.]r(hs)r}r(h3X setegid(gid)h4jh5hvh:hwh<}r(hA]rhahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rhahXsetegidrhUhuhENhFhh.]r(h)r}r(h3Xcelery.platforms.h4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXcelery.platforms.rr}r(h3Uh4jubaubh)r}r(h3jh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXsetegidrr}r(h3Uh4jubaubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rh)r}r(h3Xgidh<}r(h>]h?]h@]hA]hC]uh4jh.]rhOXgidrr}r(h3Uh4jubah:hubaubeubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rj)r}r(h3XSet effective group id.rh4jh5jh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]rhOXSet effective group id.rr}r(h3jh4jubaubaubeubh[)r}r(h3Uh4h1h5Xn/var/build/user_builds/celery/checkouts/2.1-archived/celery/platforms.py:docstring of celery.platforms.seteuidrh:h^h<}r(hA]h@]h>]h?]hC]Uentries]r(haX&seteuid() (in module celery.platforms)hUtrauhENhFhh.]ubhh)r}r(h3Uh4h1h5jh:hkh<}r(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionrhqjuhENhFhh.]r(hs)r}r(h3X seteuid(uid)h4jh5hvh:hwh<}r(hA]rhahzh6Xcelery.platformsrr}rbh@]h>]h?]hC]rhahXseteuidrhUhuhENhFhh.]r(h)r}r(h3Xcelery.platforms.h4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rhOXcelery.platforms.rr}r(h3Uh4jubaubh)r}r(h3jh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]r hOXseteuidr r }r (h3Uh4jubaubh)r }r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rh)r}r(h3Xuidh<}r(h>]h?]h@]hA]hC]uh4j h.]rhOXuidrr}r(h3Uh4jubah:hubaubeubh)r}r(h3Uh4jh5hvh:hh<}r(h>]h?]h@]hA]hC]uhENhFhh.]rj)r}r(h3XSet effective user id.rh4jh5jh:jh<}r(h>]h?]h@]hA]hC]uhEKhFhh.]r hOXSet effective user id.r!r"}r#(h3jh4jubaubaubeubh[)r$}r%(h3Uh4h1h5Nh:h^h<}r&(hA]h@]h>]h?]hC]Uentries]r'(haX&strargv() (in module celery.platforms)h Utr(auhENhFhh.]ubhh)r)}r*(h3Uh4h1h5Nh:hkh<}r+(hmhnXpyhA]h@]h>]h?]hC]hoXfunctionr,hqj,uhENhFhh.]r-(hs)r.}r/(h3X strargv(argv)r0h4j)h5hvh:hwh<}r1(hA]r2h ahzh6Xcelery.platformsr3r4}r5bh@]h>]h?]hC]r6h ahXstrargvr7hUhuhENhFhh.]r8(h)r9}r:(h3Xcelery.platforms.h4j.h5hvh:hh<}r;(h>]h?]h@]hA]hC]uhENhFhh.]r<hOXcelery.platforms.r=r>}r?(h3Uh4j9ubaubh)r@}rA(h3j7h4j.h5hvh:hh<}rB(h>]h?]h@]hA]hC]uhENhFhh.]rChOXstrargvrDrE}rF(h3Uh4j@ubaubh)rG}rH(h3Uh4j.h5hvh:hh<}rI(h>]h?]h@]hA]hC]uhENhFhh.]rJh)rK}rL(h3Xargvh<}rM(h>]h?]h@]hA]hC]uh4jGh.]rNhOXargvrOrP}rQ(h3Uh4jKubah:hubaubeubh)rR}rS(h3Uh4j)h5hvh:hh<}rT(h>]h?]h@]hA]hC]uhENhFhh.]ubeubeubah3UU transformerrUNU footnote_refsrV}rWUrefnamesrX}rYUsymbol_footnotesrZ]r[Uautofootnote_refsr\]r]Usymbol_footnote_refsr^]r_U citationsr`]rahFhU current_linerbNUtransform_messagesrc]rdcdocutils.nodes system_message re)rf}rg(h3Uh<}rh(h>]UlevelKhA]h@]UsourcehVh?]hC]UlineKUtypeUINFOriuh.]rjj)rk}rl(h3Uh<}rm(h>]h?]h@]hA]hC]uh4jfh.]rnhOX=Hyperlink target "module-celery.platforms" is not referenced.rorp}rq(h3Uh4jkubah:jubah:Usystem_messagerrubaUreporterrsNUid_startrtKU autofootnotesru]rvU citation_refsrw}rxUindirect_targetsry]rzUsettingsr{(cdocutils.frontend Values r|or}}r~(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhLNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUb/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.platforms.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhjahjh hh jh jh j.h hhj:h,cdocutils.nodes topic r)r}r(h3Uh4h1h5h8h:Utopicrh<}r(h>]h?]r(UcontentsrUlocalreh@]hA]rh,ahC]rhauhEKhFhh.]rcdocutils.nodes pending r)r}r(h3X.. contents:: :local:h4jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh:Upendingrh<}r(h>]h?]h@]hA]hC]uh.]ubaubhjhZhThjhjhjh-h1hj hj#hjyhhthjhjXhjhjhjhjehj_h jh!j4h"j8uUsubstitution_namesr}rh:hFh<}r(h>]hA]h@]Usourceh8h?]hC]uU footnotesr]rUrefidsr}rub.PKYDDD;Qcelery-2.1-archived/.doctrees/internals/reference/celery.utils.functional.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X*functools compat - celery.utils.functionalqNUcontentsqNuUsubstitution_defsq}q Uparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startqKUnameidsq}q(hU(functools-compat-celery-utils-functionalqhUcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXi/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.functional.rstqq}qbUtagnameqUsectionq U attributesq!}q"(Udupnamesq#]Uclassesq$]Ubackrefsq%]Uidsq&]q'haUnamesq(]q)hauUlineq*KUdocumentq+hh]q,(cdocutils.nodes title q-)q.}q/(hX*functools compat - celery.utils.functionalq0hhhhhUtitleq1h!}q2(h#]h$]h%]h&]h(]uh*Kh+hh]q3cdocutils.nodes Text q4X*functools compat - celery.utils.functionalq5q6}q7(hh0hh.ubaubcdocutils.nodes target q8)q9}q:(hUhhhU q;hUtargetqXmodule-celery.utils.functionalq?ah%]Uismodh$]h(]uh*Kh+hh]ubcsphinx.addnodes index q@)qA}qB(hUhhhh;hUindexqCh!}qD(h&]h%]h#]h$]h(]Uentries]qE(UsingleqFX celery.utils.functional (module)Xmodule-celery.utils.functionalUtqGauh*Kh+hh]ubcdocutils.nodes paragraph qH)qI}qJ(hX2Functional utilities for Python 2.4 compatibility.qKhhhXt/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/functional.py:docstring of celery.utils.functionalqLhU paragraphqMh!}qN(h#]h$]h%]h&]h(]uh*Kh+hh]qOh4X2Functional utilities for Python 2.4 compatibility.qPqQ}qR(hhKhhIubaubeubahUU transformerqSNU footnote_refsqT}qUUrefnamesqV}qWUsymbol_footnotesqX]qYUautofootnote_refsqZ]q[Usymbol_footnote_refsq\]q]U citationsq^]q_h+hU current_lineq`NUtransform_messagesqa]qbcdocutils.nodes system_message qc)qd}qe(hUh!}qf(h#]UlevelKh&]h%]Usourceh;h$]h(]UlineKUtypeUINFOqguh]qhhH)qi}qj(hUh!}qk(h#]h$]h%]h&]h(]uhhdh]qlh4XDHyperlink target "module-celery.utils.functional" is not referenced.qmqn}qo(hUhhiubahhMubahUsystem_messageqpubaUreporterqqNUid_startqrKU autofootnotesqs]qtU citation_refsqu}qvUindirect_targetsqw]qxUsettingsqy(cdocutils.frontend Values qzoq{}q|(Ufootnote_backlinksq}KUrecord_dependenciesq~NU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh1NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUi/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.functional.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}q(hhh?h9hcdocutils.nodes topic q)q}q(hUhhhhhUtopicqh!}q(h#]h$]q(UcontentsqUlocalqeh%]h&]qhah(]qhauh*Kh+hh]qcdocutils.nodes pending q)q}q(hX.. contents:: :local:hhU transformqcdocutils.transforms.parts Contents qUdetailsq}qUlocalNshUpendingqh!}q(h#]h$]h%]h&]h(]uh]ubaubuUsubstitution_namesq}qhh+h!}q(h#]h&]h%]Usourcehh$]h(]uU footnotesq]qUrefidsq}qub.PKYDDÒ[WWMcelery-2.1-archived/.doctrees/internals/reference/celery.utils.compat.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X$celery.utils.compat.OrderedDict.keysqXcelery.utils.compat.OrderedDictqX(celery.utils.compat.OrderedDict.iterkeysqX$celery.utils.compat.OrderedDict.copyq X'celery.utils.compat.chain_from_iterableq X(celery.utils.compat.OrderedDict.fromkeysq X%celery.utils.compat.OrderedDict.itemsq X#celery.utils.compat.OrderedDict.popq X'celery.utils.compat.OrderedDict.popitemqX"celery.utils.compat.log_with_extraqX%celery.utils.compat.OrderedDict.clearqX*celery.utils.compat.OrderedDict.itervaluesqX*celery.utils.compat.OrderedDict.setdefaultqX*python compatibility - celery.utils.compatqNX&celery.utils.compat.OrderedDict.updateqX&celery.utils.compat.OrderedDict.valuesqUcontentsqNX)celery.utils.compat.OrderedDict.iteritemsquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q (hhhhhhh h h h h h h h h h hhhhhhhhhhhU(python-compatibility-celery-utils-compatq!hhhhhUcontentsq"hhuUchildrenq#]q$cdocutils.nodes section q%)q&}q'(U rawsourceq(UUparentq)hUsourceq*cdocutils.nodes reprunicode q+Xe/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.compat.rstq,q-}q.bUtagnameq/Usectionq0U attributesq1}q2(Udupnamesq3]Uclassesq4]Ubackrefsq5]Uidsq6]q7h!aUnamesq8]q9hauUlineq:KUdocumentq;hh#]q<(cdocutils.nodes title q=)q>}q?(h(X*Python Compatibility - celery.utils.compatq@h)h&h*h-h/UtitleqAh1}qB(h3]h4]h5]h6]h8]uh:Kh;hh#]qCcdocutils.nodes Text qDX*Python Compatibility - celery.utils.compatqEqF}qG(h(h@h)h>ubaubcdocutils.nodes target qH)qI}qJ(h(Uh)h&h*U qKh/UtargetqLh1}qM(h3]h6]qNXmodule-celery.utils.compatqOah5]Uismodh4]h8]uh:Kh;hh#]ubcsphinx.addnodes index qP)qQ}qR(h(Uh)h&h*hKh/UindexqSh1}qT(h6]h5]h3]h4]h8]Uentries]qU(UsingleqVXcelery.utils.compat (module)Xmodule-celery.utils.compatUtqWauh:Kh;hh#]ubhP)qX}qY(h(Uh)h&h*Nh/hSh1}qZ(h6]h5]h3]h4]h8]Uentries]q[(hVX*OrderedDict (class in celery.utils.compat)hUtq\auh:Nh;hh#]ubcsphinx.addnodes desc q])q^}q_(h(Uh)h&h*Nh/Udescq`h1}qa(UnoindexqbUdomainqcXpyh6]h5]h3]h4]h8]UobjtypeqdXclassqeUdesctypeqfheuh:Nh;hh#]qg(csphinx.addnodes desc_signature qh)qi}qj(h(XOrderedDict(*args, **kwds)h)h^h*U qkh/Udesc_signatureqlh1}qm(h6]qnhaUmoduleqoh+Xcelery.utils.compatqpqq}qrbh5]h3]h4]h8]qshaUfullnameqtX OrderedDictquUclassqvUUfirstqwuh:Nh;hh#]qx(csphinx.addnodes desc_annotation qy)qz}q{(h(Xclass h)hih*hkh/Udesc_annotationq|h1}q}(h3]h4]h5]h6]h8]uh:Nh;hh#]q~hDXclass qq}q(h(Uh)hzubaubcsphinx.addnodes desc_addname q)q}q(h(Xcelery.utils.compat.h)hih*hkh/U desc_addnameqh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]qhDXcelery.utils.compat.qq}q(h(Uh)hubaubcsphinx.addnodes desc_name q)q}q(h(huh)hih*hkh/U desc_nameqh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]qhDX OrderedDictqq}q(h(Uh)hubaubcsphinx.addnodes desc_parameterlist q)q}q(h(Uh)hih*hkh/Udesc_parameterlistqh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]q(csphinx.addnodes desc_parameter q)q}q(h(X*argsh1}q(h3]h4]h5]h6]h8]uh)hh#]qhDX*argsqq}q(h(Uh)hubah/Udesc_parameterqubh)q}q(h(X**kwdsh1}q(h3]h4]h5]h6]h8]uh)hh#]qhDX**kwdsqq}q(h(Uh)hubah/hubeubeubcsphinx.addnodes desc_content q)q}q(h(Uh)h^h*hkh/U desc_contentqh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]q(cdocutils.nodes paragraph q)q}q(h(X)Dictionary that remembers insertion orderqh)hh*Xx/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/compat.py:docstring of celery.utils.compat.OrderedDictqh/U paragraphqh1}q(h3]h4]h5]h6]h8]uh:Kh;hh#]qhDX)Dictionary that remembers insertion orderqq}q(h(hh)hubaubhP)q}q(h(Uh)hh*Nh/hSh1}q(h6]h5]h3]h4]h8]Uentries]q(hVX0clear() (celery.utils.compat.OrderedDict method)hUtqauh:Nh;hh#]ubh])q}q(h(Uh)hh*Nh/h`h1}q(hbhcXpyh6]h5]h3]h4]h8]hdXmethodqhfhuh:Nh;hh#]q(hh)q}q(h(X7OrderedDict.clear() -> None. Remove all items from od.h)hh*hkh/hlh1}q(h6]qhahoh+Xcelery.utils.compatqɅq}qbh5]h3]h4]h8]qhahtXOrderedDict.clearhvhuhwuh:Nh;hh#]q(h)q}q(h(Xclearh)hh*hkh/hh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]qhDXclearq҅q}q(h(Uh)hubaubh)q}q(h(Uh)hh*hkh/hh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]ubcsphinx.addnodes desc_returns q)q}q(h(X None. Remove all items from od.h)hh*hkh/U desc_returnsqh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]qhDX None. Remove all items from od.qޅq}q(h(Uh)hubaubeubh)q}q(h(Uh)hh*hkh/hh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)q}q(h(Uh)hh*Nh/hSh1}q(h6]h5]h3]h4]h8]Uentries]q(hVX/copy() (celery.utils.compat.OrderedDict method)h Utqauh:Nh;hh#]ubh])q}q(h(Uh)hh*Nh/h`h1}q(hbhcXpyh6]h5]h3]h4]h8]hdXmethodqhfhuh:Nh;hh#]q(hh)q}q(h(X*OrderedDict.copy() -> a shallow copy of odh)hh*hkh/hlh1}q(h6]qh ahoh+Xcelery.utils.compatqq}qbh5]h3]h4]h8]qh ahtXOrderedDict.copyhvhuhwuh:Nh;hh#]q(h)q}q(h(Xcopyh)hh*hkh/hh1}q(h3]h4]h5]h6]h8]uh:Nh;hh#]qhDXcopyqq}q(h(Uh)hubaubh)q}q(h(Uh)hh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubh)r}r(h(Xa shallow copy of odh)hh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXa shallow copy of odrr}r(h(Uh)jubaubeubh)r}r (h(Uh)hh*hkh/hh1}r (h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r }r (h(Uh)hh*X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/compat.py:docstring of celery.utils.compat.OrderedDict.fromkeysr h/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX9fromkeys() (celery.utils.compat.OrderedDict class method)h Utrauh:Nh;hh#]ubh])r}r(h(Uh)hh*j h/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdX classmethodrhfjuh:Nh;hh#]r(hh)r}r(h(XGOrderedDict.fromkeys(S[, v]) -> New ordered dictionary with keys from Sh)jh*hkh/hlh1}r(h6]rh ahoh+Xcelery.utils.compatrr}rbh5]h3]h4]h8]rh ahtXOrderedDict.fromkeyshvhuhwuh:Nh;hh#]r(hy)r}r (h(U classmethod r!h)jh*hkh/h|h1}r"(h3]h4]h5]h6]h8]uh:Nh;hh#]r#hDX classmethod r$r%}r&(h(Uh)jubaubh)r'}r((h(Xfromkeysh)jh*hkh/hh1}r)(h3]h4]h5]h6]h8]uh:Nh;hh#]r*hDXfromkeysr+r,}r-(h(Uh)j'ubaubh)r.}r/(h(Uh)jh*hkh/hh1}r0(h3]h4]h5]h6]h8]uh:Nh;hh#]r1(h)r2}r3(h(XSh1}r4(h3]h4]h5]h6]h8]uh)j.h#]r5hDXSr6}r7(h(Uh)j2ubah/hubcsphinx.addnodes desc_optional r8)r9}r:(h(Uh1}r;(h3]h4]h5]h6]h8]uh)j.h#]r<h)r=}r>(h(Xvh1}r?(h3]h4]h5]h6]h8]uh)j9h#]r@hDXvrA}rB(h(Uh)j=ubah/hubah/U desc_optionalrCubeubh)rD}rE(h(X'New ordered dictionary with keys from Sh)jh*hkh/hh1}rF(h3]h4]h5]h6]h8]uh:Nh;hh#]rGhDX'New ordered dictionary with keys from SrHrI}rJ(h(Uh)jDubaubeubh)rK}rL(h(Uh)jh*hkh/hh1}rM(h3]h4]h5]h6]h8]uh:Nh;hh#]rNh)rO}rP(h(X/and values equal to v (which defaults to None).rQh)jKh*j h/hh1}rR(h3]h4]h5]h6]h8]uh:Kh;hh#]rShDX/and values equal to v (which defaults to None).rTrU}rV(h(jQh)jOubaubaubeubhP)rW}rX(h(Uh)hh*Nh/hSh1}rY(h6]h5]h3]h4]h8]Uentries]rZ(hVX0items() (celery.utils.compat.OrderedDict method)h Utr[auh:Nh;hh#]ubh])r\}r](h(Uh)hh*Nh/h`h1}r^(hbhcXpyh6]h5]h3]h4]h8]hdXmethodr_hfj_uh:Nh;hh#]r`(hh)ra}rb(h(XOrderedDict.items()h)j\h*hkh/hlh1}rc(h6]rdh ahoh+Xcelery.utils.compatrerf}rgbh5]h3]h4]h8]rhh ahtXOrderedDict.itemshvhuhwuh:Nh;hh#]ri(h)rj}rk(h(Xitemsh)jah*hkh/hh1}rl(h3]h4]h5]h6]h8]uh:Nh;hh#]rmhDXitemsrnro}rp(h(Uh)jjubaubh)rq}rr(h(Uh)jah*hkh/hh1}rs(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubh)rt}ru(h(Uh)j\h*hkh/hh1}rv(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)rw}rx(h(Uh)hh*Nh/hSh1}ry(h6]h5]h3]h4]h8]Uentries]rz(hVX4iteritems() (celery.utils.compat.OrderedDict method)hUtr{auh:Nh;hh#]ubh])r|}r}(h(Uh)hh*Nh/h`h1}r~(hbhcXpyh6]h5]h3]h4]h8]hdXmethodrhfjuh:Nh;hh#]r(hh)r}r(h(XOrderedDict.iteritems()h)j|h*hkh/hlh1}r(h6]rhahoh+Xcelery.utils.compatrr}rbh5]h3]h4]h8]rhahtXOrderedDict.iteritemshvhuhwuh:Nh;hh#]r(h)r}r(h(X iteritemsh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDX iteritemsrr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubh)r}r(h(Uh)j|h*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)hh*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX3iterkeys() (celery.utils.compat.OrderedDict method)hUtrauh:Nh;hh#]ubh])r}r(h(Uh)hh*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXmethodrhfjuh:Nh;hh#]r(hh)r}r(h(XOrderedDict.iterkeys()h)jh*hkh/hlh1}r(h6]rhahoh+Xcelery.utils.compatrr}rbh5]h3]h4]h8]rhahtXOrderedDict.iterkeyshvhuhwuh:Nh;hh#]r(h)r}r(h(Xiterkeysh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXiterkeysrr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)hh*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX5itervalues() (celery.utils.compat.OrderedDict method)hUtrauh:Nh;hh#]ubh])r}r(h(Uh)hh*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXmethodrhfjuh:Nh;hh#]r(hh)r}r(h(XOrderedDict.itervalues()h)jh*hkh/hlh1}r(h6]rhahoh+Xcelery.utils.compatrr}rbh5]h3]h4]h8]rhahtXOrderedDict.itervalueshvhuhwuh:Nh;hh#]r(h)r}r(h(X itervaluesh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDX itervaluesrr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)hh*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX/keys() (celery.utils.compat.OrderedDict method)hUtrauh:Nh;hh#]ubh])r}r(h(Uh)hh*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXmethodrhfjuh:Nh;hh#]r(hh)r}r(h(XOrderedDict.keys()h)jh*hkh/hlh1}r(h6]rhahoh+Xcelery.utils.compatrr}rbh5]h3]h4]h8]rhahtXOrderedDict.keyshvhuhwuh:Nh;hh#]r(h)r}r(h(Xkeysh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXkeysrr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)hh*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX.pop() (celery.utils.compat.OrderedDict method)h Utrauh:Nh;hh#]ubh])r}r(h(Uh)hh*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXmethodrhfjuh:Nh;hh#]r(hh)r}r(h(X:OrderedDict.pop(key, default=)h)jh*hkh/hlh1}r(h6]rh ahoh+Xcelery.utils.compatrr}rbh5]h3]h4]h8]rh ahtXOrderedDict.pophvhuhwuh:Nh;hh#]r (h)r }r (h(Xpoph)jh*hkh/hh1}r (h3]h4]h5]h6]h8]uh:Nh;hh#]r hDXpoprr}r(h(Uh)j ubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(h)r}r(h(Xkeyh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXkeyrr}r(h(Uh)jubah/hubh)r}r(h(X$default=h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX$default=r r!}r"(h(Uh)jubah/hubeubeubh)r#}r$(h(Uh)jh*hkh/hh1}r%(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r&}r'(h(Uh)hh*X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/compat.py:docstring of celery.utils.compat.OrderedDict.popitemr(h/hSh1}r)(h6]h5]h3]h4]h8]Uentries]r*(hVX2popitem() (celery.utils.compat.OrderedDict method)hUtr+auh:Nh;hh#]ubh])r,}r-(h(Uh)hh*j(h/h`h1}r.(hbhcXpyh6]h5]h3]h4]h8]hdXmethodr/hfj/uh:Nh;hh#]r0(hh)r1}r2(h(XOrderedDict.popitem() -> (k, v)h)j,h*hkh/hlh1}r3(h6]r4hahoh+Xcelery.utils.compatr5r6}r7bh5]h3]h4]h8]r8hahtXOrderedDict.popitemhvhuhwuh:Nh;hh#]r9(h)r:}r;(h(Xpopitemh)j1h*hkh/hh1}r<(h3]h4]h5]h6]h8]uh:Nh;hh#]r=hDXpopitemr>r?}r@(h(Uh)j:ubaubh)rA}rB(h(Uh)j1h*hkh/hh1}rC(h3]h4]h5]h6]h8]uh:Nh;hh#]rD(h)rE}rF(h(X) -> (kh1}rG(h3]h4]h5]h6]h8]uh)jAh#]rHhDX) -> (krIrJ}rK(h(Uh)jEubah/hubh)rL}rM(h(Xvh1}rN(h3]h4]h5]h6]h8]uh)jAh#]rOhDXvrP}rQ(h(Uh)jLubah/hubeubeubh)rR}rS(h(Uh)j,h*hkh/hh1}rT(h3]h4]h5]h6]h8]uh:Nh;hh#]rUh)rV}rW(h(XoReturn and remove a (key, value) pair. Pairs are returned in LIFO order if last is true or FIFO order if false.rXh)jRh*j(h/hh1}rY(h3]h4]h5]h6]h8]uh:Kh;hh#]rZhDXoReturn and remove a (key, value) pair. Pairs are returned in LIFO order if last is true or FIFO order if false.r[r\}r](h(jXh)jVubaubaubeubhP)r^}r_(h(Uh)hh*Nh/hSh1}r`(h6]h5]h3]h4]h8]Uentries]ra(hVX5setdefault() (celery.utils.compat.OrderedDict method)hUtrbauh:Nh;hh#]ubh])rc}rd(h(Uh)hh*Nh/h`h1}re(hbhcXpyh6]h5]h3]h4]h8]hdXmethodrfhfjfuh:Nh;hh#]rg(hh)rh}ri(h(X)OrderedDict.setdefault(key, default=None)h)jch*hkh/hlh1}rj(h6]rkhahoh+Xcelery.utils.compatrlrm}rnbh5]h3]h4]h8]rohahtXOrderedDict.setdefaulthvhuhwuh:Nh;hh#]rp(h)rq}rr(h(X setdefaulth)jhh*hkh/hh1}rs(h3]h4]h5]h6]h8]uh:Nh;hh#]rthDX setdefaultrurv}rw(h(Uh)jqubaubh)rx}ry(h(Uh)jhh*hkh/hh1}rz(h3]h4]h5]h6]h8]uh:Nh;hh#]r{(h)r|}r}(h(Xkeyh1}r~(h3]h4]h5]h6]h8]uh)jxh#]rhDXkeyrr}r(h(Uh)j|ubah/hubh)r}r(h(X default=Noneh1}r(h3]h4]h5]h6]h8]uh)jxh#]rhDX default=Nonerr}r(h(Uh)jubah/hubeubeubh)r}r(h(Uh)jch*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)hh*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX1update() (celery.utils.compat.OrderedDict method)hUtrauh:Nh;hh#]ubh])r}r(h(Uh)hh*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXmethodrhfjuh:Nh;hh#]r(hh)r}r(h(X$OrderedDict.update(other=(), **kwds)h)jh*hkh/hlh1}r(h6]rhahoh+Xcelery.utils.compatrr}rbh5]h3]h4]h8]rhahtXOrderedDict.updatehvhuhwuh:Nh;hh#]r(h)r}r(h(Xupdateh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXupdaterr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(h)r}r(h(Xother=()h1}r(h3]h4]h5]h6]h8]uh)jh#]rhDXother=()rr}r(h(Uh)jubah/hubh)r}r(h(X**kwdsh1}r(h3]h4]h5]h6]h8]uh)jh#]rhDX**kwdsrr}r(h(Uh)jubah/hubeubeubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubhP)r}r(h(Uh)hh*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX1values() (celery.utils.compat.OrderedDict method)hUtrauh:Nh;hh#]ubh])r}r(h(Uh)hh*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXmethodrhfjuh:Nh;hh#]r(hh)r}r(h(XOrderedDict.values()rh)jh*hkh/hlh1}r(h6]rhahoh+Xcelery.utils.compatrr}rbh5]h3]h4]h8]rhahtXOrderedDict.valueshvhuhwuh:Nh;hh#]r(h)r}r(h(Xvaluesh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXvaluesrr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubeubeubhP)r}r(h(Uh)h&h*X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/compat.py:docstring of celery.utils.compat.chain_from_iterablerh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX5chain_from_iterable() (in module celery.utils.compat)h Utrauh:Nh;hh#]ubh])r}r(h(Uh)h&h*jh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrhfjuh:Nh;hh#]r(hh)r}r(h(Xchain_from_iterablerh)jh*hkh/hlh1}r(h6]rh ahoh+Xcelery.utils.compatrr}rbh5]h3]h4]h8]rh ahtjhvUhwuh:Nh;hh#]r(h)r}r(h(Xcelery.utils.compat.h)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXcelery.utils.compat.rr}r(h(Uh)jubaubh)r}r(h(jh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]rhDXchain_from_iterablerr}r(h(Uh)jubaubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubh)r}r(h(Uh)jh*hkh/hh1}r(h3]h4]h5]h6]h8]uh:Nh;hh#]r(h)r}r(h(X.chain.from_iterable(iterable) --> chain objectr h)jh*jh/hh1}r (h3]h4]h5]h6]h8]uh:Kh;hh#]r hDX.chain.from_iterable(iterable) --> chain objectr r }r(h(j h)jubaubh)r}r(h(XUAlternate chain() contructor taking a single iterable argument that evaluates lazily.rh)jh*jh/hh1}r(h3]h4]h5]h6]h8]uh:Kh;hh#]rhDXUAlternate chain() contructor taking a single iterable argument that evaluates lazily.rr}r(h(jh)jubaubeubeubhP)r}r(h(Uh)h&h*Nh/hSh1}r(h6]h5]h3]h4]h8]Uentries]r(hVX0log_with_extra() (in module celery.utils.compat)hUtrauh:Nh;hh#]ubh])r}r(h(Uh)h&h*Nh/h`h1}r(hbhcXpyh6]h5]h3]h4]h8]hdXfunctionrhfjuh:Nh;hh#]r (hh)r!}r"(h(X3log_with_extra(logger, level, msg, *args, **kwargs)h)jh*hkh/hlh1}r#(h6]r$hahoh+Xcelery.utils.compatr%r&}r'bh5]h3]h4]h8]r(hahtXlog_with_extrar)hvUhwuh:Nh;hh#]r*(h)r+}r,(h(Xcelery.utils.compat.h)j!h*hkh/hh1}r-(h3]h4]h5]h6]h8]uh:Nh;hh#]r.hDXcelery.utils.compat.r/r0}r1(h(Uh)j+ubaubh)r2}r3(h(j)h)j!h*hkh/hh1}r4(h3]h4]h5]h6]h8]uh:Nh;hh#]r5hDXlog_with_extrar6r7}r8(h(Uh)j2ubaubh)r9}r:(h(Uh)j!h*hkh/hh1}r;(h3]h4]h5]h6]h8]uh:Nh;hh#]r<(h)r=}r>(h(Xloggerh1}r?(h3]h4]h5]h6]h8]uh)j9h#]r@hDXloggerrArB}rC(h(Uh)j=ubah/hubh)rD}rE(h(Xlevelh1}rF(h3]h4]h5]h6]h8]uh)j9h#]rGhDXlevelrHrI}rJ(h(Uh)jDubah/hubh)rK}rL(h(Xmsgh1}rM(h3]h4]h5]h6]h8]uh)j9h#]rNhDXmsgrOrP}rQ(h(Uh)jKubah/hubh)rR}rS(h(X*argsh1}rT(h3]h4]h5]h6]h8]uh)j9h#]rUhDX*argsrVrW}rX(h(Uh)jRubah/hubh)rY}rZ(h(X**kwargsh1}r[(h3]h4]h5]h6]h8]uh)j9h#]r\hDX**kwargsr]r^}r_(h(Uh)jYubah/hubeubeubh)r`}ra(h(Uh)jh*hkh/hh1}rb(h3]h4]h5]h6]h8]uh:Nh;hh#]ubeubeubah(UU transformerrcNU footnote_refsrd}reUrefnamesrf}rgUsymbol_footnotesrh]riUautofootnote_refsrj]rkUsymbol_footnote_refsrl]rmU citationsrn]roh;hU current_linerpNUtransform_messagesrq]rrcdocutils.nodes system_message rs)rt}ru(h(Uh1}rv(h3]UlevelKh6]h5]UsourcehKh4]h8]UlineKUtypeUINFOrwuh#]rxh)ry}rz(h(Uh1}r{(h3]h4]h5]h6]h8]uh)jth#]r|hDX@Hyperlink target "module-celery.utils.compat" is not referenced.r}r~}r(h(Uh)jyubah/hubah/Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhANUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUe/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.compat.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhhihjh hh jh jh jah jhj1h!h&hhhjhjhhj!hOhIhjhjh"cdocutils.nodes topic r)r}r(h(Uh)h&h*h-h/Utopicrh1}r(h3]h4]r(UcontentsrUlocalreh5]h6]rh"ah8]rhauh:Kh;hh#]rcdocutils.nodes pending r)r}r(h(X.. contents:: :local:h)jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh/Upendingrh1}r(h3]h4]h5]h6]h8]uh#]ubaubhjuUsubstitution_namesr}rh/h;h1}r(h3]h6]h5]Usourceh-h4]h8]uU footnotesr]rUrefidsr}rub.PKYDDllKcelery-2.1-archived/.doctrees/internals/reference/celery.utils.term.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X!celery.utils.term.colored.magentaqXcelery.utils.term.fgqX"celery.utils.term.colored.imagentaqXcelery.utils.term.colored.redq Xcelery.utils.term.coloredq X celery.utils.term.colored.igreenq Ucontentsq NX celery.utils.term.colored.yellowq Xcelery.utils.term.colored.greenqX"celery.utils.term.colored.no_colorqX#celery.utils.term.colored.underlineqX&terminal utilities - celery.utils.termqNXcelery.utils.term.colored.whiteqX celery.utils.term.colored.iwhiteqXcelery.utils.term.colored.boldqX!celery.utils.term.colored.reverseqXcelery.utils.term.colored.icyanqXcelery.utils.term.colored.blueqXcelery.utils.term.colored.iredqXcelery.utils.term.colored.blinkqX!celery.utils.term.colored.iyellowqXcelery.utils.term.colored.iblueqXcelery.utils.term.colored.blackqX celery.utils.term.colored.brightqXcelery.utils.term.colored.cyanqXcelery.utils.term.colored.resetqXcelery.utils.term.colored.nodeq uUsubstitution_defsq!}q"Uparse_messagesq#]q$Ucurrent_sourceq%NU decorationq&NUautofootnote_startq'KUnameidsq(}q)(hhhhhhh h h h h h h Ucontentsq*h h hhhhhhhU$terminal-utilities-celery-utils-termq+hhhhhhhhhhhhhhhhhhhhhhhhhhhhh h uUchildrenq,]q-cdocutils.nodes section q.)q/}q0(U rawsourceq1UUparentq2hUsourceq3cdocutils.nodes reprunicode q4Xc/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.term.rstq5q6}q7bUtagnameq8Usectionq9U attributesq:}q;(Udupnamesq<]Uclassesq=]Ubackrefsq>]Uidsq?]q@h+aUnamesqA]qBhauUlineqCKUdocumentqDhh,]qE(cdocutils.nodes title qF)qG}qH(h1X&Terminal Utilities - celery.utils.termqIh2h/h3h6h8UtitleqJh:}qK(h<]h=]h>]h?]hA]uhCKhDhh,]qLcdocutils.nodes Text qMX&Terminal Utilities - celery.utils.termqNqO}qP(h1hIh2hGubaubcdocutils.nodes target qQ)qR}qS(h1Uh2h/h3U qTh8UtargetqUh:}qV(h<]h?]qWXmodule-celery.utils.termqXah>]Uismodh=]hA]uhCKhDhh,]ubcsphinx.addnodes index qY)qZ}q[(h1Uh2h/h3hTh8Uindexq\h:}q](h?]h>]h<]h=]hA]Uentries]q^(Usingleq_Xcelery.utils.term (module)Xmodule-celery.utils.termUtq`auhCKhDhh,]ubcdocutils.nodes paragraph qa)qb}qc(h1X term utils.qdh2h/h3Xh/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/term.py:docstring of celery.utils.termqeh8U paragraphqfh:}qg(h<]h=]h>]h?]hA]uhCKhDhh,]qhhMX term utils.qiqj}qk(h1hdh2hbubaubcdocutils.nodes doctest_block ql)qm}qn(h1X>>> c = colored(enabled=True) >>> print(str(c.red("the quick "), c.blue("brown ", c.bold("fox ")), c.magenta(c.underline("jumps over")), c.yellow(" the lazy "), c.green("dog ")))h2h/h3heh8U doctest_blockqoh:}qp(U xml:spaceqqUpreserveqrh?]h>]h<]h=]hA]uhCKhDhh,]qshMX>>> c = colored(enabled=True) >>> print(str(c.red("the quick "), c.blue("brown ", c.bold("fox ")), c.magenta(c.underline("jumps over")), c.yellow(" the lazy "), c.green("dog ")))qtqu}qv(h1Uh2hmubaubhY)qw}qx(h1Uh2h/h3Nh8h\h:}qy(h?]h>]h<]h=]hA]Uentries]qz(h_X$colored (class in celery.utils.term)h Utq{auhCNhDhh,]ubcsphinx.addnodes desc q|)q}}q~(h1Uh2h/h3Nh8Udescqh:}q(UnoindexqUdomainqXpyh?]h>]h<]h=]hA]UobjtypeqXclassqUdesctypeqhuhCNhDhh,]q(csphinx.addnodes desc_signature q)q}q(h1Xcolored(*s, **kwargs)h2h}h3U qh8Udesc_signatureqh:}q(h?]qh aUmoduleqh4Xcelery.utils.termqq}qbh>]h<]h=]hA]qh aUfullnameqXcoloredqUclassqUUfirstquhCNhDhh,]q(csphinx.addnodes desc_annotation q)q}q(h1Xclass h2hh3hh8Udesc_annotationqh:}q(h<]h=]h>]h?]hA]uhCNhDhh,]qhMXclass qq}q(h1Uh2hubaubcsphinx.addnodes desc_addname q)q}q(h1Xcelery.utils.term.h2hh3hh8U desc_addnameqh:}q(h<]h=]h>]h?]hA]uhCNhDhh,]qhMXcelery.utils.term.qq}q(h1Uh2hubaubcsphinx.addnodes desc_name q)q}q(h1hh2hh3hh8U desc_nameqh:}q(h<]h=]h>]h?]hA]uhCNhDhh,]qhMXcoloredqq}q(h1Uh2hubaubcsphinx.addnodes desc_parameterlist q)q}q(h1Uh2hh3hh8Udesc_parameterlistqh:}q(h<]h=]h>]h?]hA]uhCNhDhh,]q(csphinx.addnodes desc_parameter q)q}q(h1X*sh:}q(h<]h=]h>]h?]hA]uh2hh,]qhMX*sqq}q(h1Uh2hubah8Udesc_parameterqubh)q}q(h1X**kwargsh:}q(h<]h=]h>]h?]hA]uh2hh,]qhMX**kwargsqƅq}q(h1Uh2hubah8hubeubeubcsphinx.addnodes desc_content q)q}q(h1Uh2h}h3hh8U desc_contentqh:}q(h<]h=]h>]h?]hA]uhCNhDhh,]q(hY)q}q(h1Uh2hh3Nh8h\h:}q(h?]h>]h<]h=]hA]Uentries]q(h_X*black() (celery.utils.term.colored method)hUtqauhCNhDhh,]ubh|)q}q(h1Uh2hh3Nh8hh:}q(hhXpyh?]h>]h<]h=]hA]hXmethodqhhuhCNhDhh,]q(h)q}q(h1Xcolored.black(*s)h2hh3hh8hh:}q(h?]qhahh4Xcelery.utils.termq݅q}qbh>]h<]h=]hA]qhahX colored.blackhhhuhCNhDhh,]q(h)q}q(h1Xblackh2hh3hh8hh:}q(h<]h=]h>]h?]hA]uhCNhDhh,]qhMXblackq慁q}q(h1Uh2hubaubh)q}q(h1Uh2hh3hh8hh:}q(h<]h=]h>]h?]hA]uhCNhDhh,]qh)q}q(h1X*sh:}q(h<]h=]h>]h?]hA]uh2hh,]qhMX*sqq}q(h1Uh2hubah8hubaubeubh)q}q(h1Uh2hh3hh8hh:}q(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)q}q(h1Uh2hh3Nh8h\h:}q(h?]h>]h<]h=]hA]Uentries]q(h_X*blink() (celery.utils.term.colored method)hUtqauhCNhDhh,]ubh|)q}q(h1Uh2hh3Nh8hh:}q(hhXpyh?]h>]h<]h=]hA]hXmethodqhhuhCNhDhh,]r(h)r}r(h1Xcolored.blink(*s)h2hh3hh8hh:}r(h?]rhahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]rhahX colored.blinkhhhuhCNhDhh,]r (h)r }r (h1Xblinkh2jh3hh8hh:}r (h<]h=]h>]h?]hA]uhCNhDhh,]r hMXblinkrr}r(h1Uh2j ubaubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX*srr}r(h1Uh2jubah8hubaubeubh)r}r(h1Uh2hh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r (h1Uh2hh3Nh8h\h:}r!(h?]h>]h<]h=]hA]Uentries]r"(h_X)blue() (celery.utils.term.colored method)hUtr#auhCNhDhh,]ubh|)r$}r%(h1Uh2hh3Nh8hh:}r&(hhXpyh?]h>]h<]h=]hA]hXmethodr'hj'uhCNhDhh,]r((h)r)}r*(h1Xcolored.blue(*s)h2j$h3hh8hh:}r+(h?]r,hahh4Xcelery.utils.termr-r.}r/bh>]h<]h=]hA]r0hahX colored.bluehhhuhCNhDhh,]r1(h)r2}r3(h1Xblueh2j)h3hh8hh:}r4(h<]h=]h>]h?]hA]uhCNhDhh,]r5hMXbluer6r7}r8(h1Uh2j2ubaubh)r9}r:(h1Uh2j)h3hh8hh:}r;(h<]h=]h>]h?]hA]uhCNhDhh,]r<h)r=}r>(h1X*sh:}r?(h<]h=]h>]h?]hA]uh2j9h,]r@hMX*srArB}rC(h1Uh2j=ubah8hubaubeubh)rD}rE(h1Uh2j$h3hh8hh:}rF(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)rG}rH(h1Uh2hh3Nh8h\h:}rI(h?]h>]h<]h=]hA]Uentries]rJ(h_X)bold() (celery.utils.term.colored method)hUtrKauhCNhDhh,]ubh|)rL}rM(h1Uh2hh3Nh8hh:}rN(hhXpyh?]h>]h<]h=]hA]hXmethodrOhjOuhCNhDhh,]rP(h)rQ}rR(h1Xcolored.bold(*s)h2jLh3hh8hh:}rS(h?]rThahh4Xcelery.utils.termrUrV}rWbh>]h<]h=]hA]rXhahX colored.boldhhhuhCNhDhh,]rY(h)rZ}r[(h1Xboldh2jQh3hh8hh:}r\(h<]h=]h>]h?]hA]uhCNhDhh,]r]hMXboldr^r_}r`(h1Uh2jZubaubh)ra}rb(h1Uh2jQh3hh8hh:}rc(h<]h=]h>]h?]hA]uhCNhDhh,]rdh)re}rf(h1X*sh:}rg(h<]h=]h>]h?]hA]uh2jah,]rhhMX*srirj}rk(h1Uh2jeubah8hubaubeubh)rl}rm(h1Uh2jLh3hh8hh:}rn(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)ro}rp(h1Uh2hh3Nh8h\h:}rq(h?]h>]h<]h=]hA]Uentries]rr(h_X+bright() (celery.utils.term.colored method)hUtrsauhCNhDhh,]ubh|)rt}ru(h1Uh2hh3Nh8hh:}rv(hhXpyh?]h>]h<]h=]hA]hXmethodrwhjwuhCNhDhh,]rx(h)ry}rz(h1Xcolored.bright(*s)h2jth3hh8hh:}r{(h?]r|hahh4Xcelery.utils.termr}r~}rbh>]h<]h=]hA]rhahXcolored.brighthhhuhCNhDhh,]r(h)r}r(h1Xbrighth2jyh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXbrightrr}r(h1Uh2jubaubh)r}r(h1Uh2jyh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX*srr}r(h1Uh2jubah8hubaubeubh)r}r(h1Uh2jth3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X)cyan() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r}r(h1Xcolored.cyan(*s)h2jh3hh8hh:}r(h?]rhahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]rhahX colored.cyanhhhuhCNhDhh,]r(h)r}r(h1Xcyanh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXcyanrr}r(h1Uh2jubaubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX*srr}r(h1Uh2jubah8hubaubeubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X*green() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r}r(h1Xcolored.green(*s)h2jh3hh8hh:}r(h?]rhahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]rhahX colored.greenhhhuhCNhDhh,]r(h)r}r(h1Xgreenh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXgreenrr}r(h1Uh2jubaubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX*srr}r(h1Uh2jubah8hubaubeubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X*iblue() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r}r(h1Xcolored.iblue(*s)h2jh3hh8hh:}r(h?]rhahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]rhahX colored.ibluehhhuhCNhDhh,]r(h)r}r(h1Xiblueh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXibluerr}r(h1Uh2jubaubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX*sr r }r (h1Uh2jubah8hubaubeubh)r }r (h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X*icyan() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r}r(h1Xcolored.icyan(*s)h2jh3hh8hh:}r(h?]rhahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]r hahX colored.icyanhhhuhCNhDhh,]r!(h)r"}r#(h1Xicyanh2jh3hh8hh:}r$(h<]h=]h>]h?]hA]uhCNhDhh,]r%hMXicyanr&r'}r((h1Uh2j"ubaubh)r)}r*(h1Uh2jh3hh8hh:}r+(h<]h=]h>]h?]hA]uhCNhDhh,]r,h)r-}r.(h1X*sh:}r/(h<]h=]h>]h?]hA]uh2j)h,]r0hMX*sr1r2}r3(h1Uh2j-ubah8hubaubeubh)r4}r5(h1Uh2jh3hh8hh:}r6(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r7}r8(h1Uh2hh3Nh8h\h:}r9(h?]h>]h<]h=]hA]Uentries]r:(h_X+igreen() (celery.utils.term.colored method)h Utr;auhCNhDhh,]ubh|)r<}r=(h1Uh2hh3Nh8hh:}r>(hhXpyh?]h>]h<]h=]hA]hXmethodr?hj?uhCNhDhh,]r@(h)rA}rB(h1Xcolored.igreen(*s)h2j<h3hh8hh:}rC(h?]rDh ahh4Xcelery.utils.termrErF}rGbh>]h<]h=]hA]rHh ahXcolored.igreenhhhuhCNhDhh,]rI(h)rJ}rK(h1Xigreenh2jAh3hh8hh:}rL(h<]h=]h>]h?]hA]uhCNhDhh,]rMhMXigreenrNrO}rP(h1Uh2jJubaubh)rQ}rR(h1Uh2jAh3hh8hh:}rS(h<]h=]h>]h?]hA]uhCNhDhh,]rTh)rU}rV(h1X*sh:}rW(h<]h=]h>]h?]hA]uh2jQh,]rXhMX*srYrZ}r[(h1Uh2jUubah8hubaubeubh)r\}r](h1Uh2j<h3hh8hh:}r^(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r_}r`(h1Uh2hh3Nh8h\h:}ra(h?]h>]h<]h=]hA]Uentries]rb(h_X-imagenta() (celery.utils.term.colored method)hUtrcauhCNhDhh,]ubh|)rd}re(h1Uh2hh3Nh8hh:}rf(hhXpyh?]h>]h<]h=]hA]hXmethodrghjguhCNhDhh,]rh(h)ri}rj(h1Xcolored.imagenta(*s)h2jdh3hh8hh:}rk(h?]rlhahh4Xcelery.utils.termrmrn}robh>]h<]h=]hA]rphahXcolored.imagentahhhuhCNhDhh,]rq(h)rr}rs(h1Ximagentah2jih3hh8hh:}rt(h<]h=]h>]h?]hA]uhCNhDhh,]ruhMXimagentarvrw}rx(h1Uh2jrubaubh)ry}rz(h1Uh2jih3hh8hh:}r{(h<]h=]h>]h?]hA]uhCNhDhh,]r|h)r}}r~(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jyh,]rhMX*srr}r(h1Uh2j}ubah8hubaubeubh)r}r(h1Uh2jdh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X)ired() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r}r(h1Xcolored.ired(*s)h2jh3hh8hh:}r(h?]rhahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]rhahX colored.iredhhhuhCNhDhh,]r(h)r}r(h1Xiredh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXiredrr}r(h1Uh2jubaubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX*srr}r(h1Uh2jubah8hubaubeubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X+iwhite() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r}r(h1Xcolored.iwhite(*s)h2jh3hh8hh:}r(h?]rhahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]rhahXcolored.iwhitehhhuhCNhDhh,]r(h)r}r(h1Xiwhiteh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXiwhiterr}r(h1Uh2jubaubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX*srr}r(h1Uh2jubah8hubaubeubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X,iyellow() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r}r(h1Xcolored.iyellow(*s)h2jh3hh8hh:}r(h?]rhahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]rhahXcolored.iyellowhhhuhCNhDhh,]r(h)r}r(h1Xiyellowh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXiyellowrr}r(h1Uh2jubaubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX*srr}r(h1Uh2jubah8hubaubeubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X,magenta() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r }r (h1Xcolored.magenta(*s)h2jh3hh8hh:}r (h?]r hahh4Xcelery.utils.termr r}rbh>]h<]h=]hA]rhahXcolored.magentahhhuhCNhDhh,]r(h)r}r(h1Xmagentah2j h3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXmagentarr}r(h1Uh2jubaubh)r}r(h1Uh2j h3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]r hMX*sr!r"}r#(h1Uh2jubah8hubaubeubh)r$}r%(h1Uh2jh3hh8hh:}r&(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r'}r((h1Uh2hh3Nh8h\h:}r)(h?]h>]h<]h=]hA]Uentries]r*(h_X-no_color() (celery.utils.term.colored method)hUtr+auhCNhDhh,]ubh|)r,}r-(h1Uh2hh3Nh8hh:}r.(hhXpyh?]h>]h<]h=]hA]hXmethodr/hj/uhCNhDhh,]r0(h)r1}r2(h1Xcolored.no_color()h2j,h3hh8hh:}r3(h?]r4hahh4Xcelery.utils.termr5r6}r7bh>]h<]h=]hA]r8hahXcolored.no_colorhhhuhCNhDhh,]r9(h)r:}r;(h1Xno_colorh2j1h3hh8hh:}r<(h<]h=]h>]h?]hA]uhCNhDhh,]r=hMXno_colorr>r?}r@(h1Uh2j:ubaubh)rA}rB(h1Uh2j1h3hh8hh:}rC(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubh)rD}rE(h1Uh2j,h3hh8hh:}rF(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)rG}rH(h1Uh2hh3Nh8h\h:}rI(h?]h>]h<]h=]hA]Uentries]rJ(h_X)node() (celery.utils.term.colored method)h UtrKauhCNhDhh,]ubh|)rL}rM(h1Uh2hh3Nh8hh:}rN(hhXpyh?]h>]h<]h=]hA]hXmethodrOhjOuhCNhDhh,]rP(h)rQ}rR(h1Xcolored.node(s, op)h2jLh3hh8hh:}rS(h?]rTh ahh4Xcelery.utils.termrUrV}rWbh>]h<]h=]hA]rXh ahX colored.nodehhhuhCNhDhh,]rY(h)rZ}r[(h1Xnodeh2jQh3hh8hh:}r\(h<]h=]h>]h?]hA]uhCNhDhh,]r]hMXnoder^r_}r`(h1Uh2jZubaubh)ra}rb(h1Uh2jQh3hh8hh:}rc(h<]h=]h>]h?]hA]uhCNhDhh,]rd(h)re}rf(h1Xsh:}rg(h<]h=]h>]h?]hA]uh2jah,]rhhMXsri}rj(h1Uh2jeubah8hubh)rk}rl(h1Xoph:}rm(h<]h=]h>]h?]hA]uh2jah,]rnhMXoprorp}rq(h1Uh2jkubah8hubeubeubh)rr}rs(h1Uh2jLh3hh8hh:}rt(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)ru}rv(h1Uh2hh3Nh8h\h:}rw(h?]h>]h<]h=]hA]Uentries]rx(h_X(red() (celery.utils.term.colored method)h UtryauhCNhDhh,]ubh|)rz}r{(h1Uh2hh3Nh8hh:}r|(hhXpyh?]h>]h<]h=]hA]hXmethodr}hj}uhCNhDhh,]r~(h)r}r(h1Xcolored.red(*s)h2jzh3hh8hh:}r(h?]rh ahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]rh ahX colored.redhhhuhCNhDhh,]r(h)r}r(h1Xredh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXredrr}r(h1Uh2jubaubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX*srr}r(h1Uh2jubah8hubaubeubh)r}r(h1Uh2jzh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X*reset() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r}r(h1Xcolored.reset(*s)h2jh3hh8hh:}r(h?]rhahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]rhahX colored.resethhhuhCNhDhh,]r(h)r}r(h1Xreseth2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXresetrr}r(h1Uh2jubaubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX*srr}r(h1Uh2jubah8hubaubeubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X,reverse() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r}r(h1Xcolored.reverse(*s)h2jh3hh8hh:}r(h?]rhahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]rhahXcolored.reversehhhuhCNhDhh,]r(h)r}r(h1Xreverseh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXreverserr}r(h1Uh2jubaubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1X*sh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX*srr}r(h1Uh2jubah8hubaubeubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X.underline() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r}r(h1Xcolored.underline(*s)h2jh3hh8hh:}r(h?]rhahh4Xcelery.utils.termrr}rbh>]h<]h=]hA]rhahXcolored.underlinehhhuhCNhDhh,]r(h)r}r(h1X underlineh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMX underlinerr}r(h1Uh2jubaubh)r}r(h1Uh2jh3hh8hh:}r (h<]h=]h>]h?]hA]uhCNhDhh,]r h)r }r (h1X*sh:}r (h<]h=]h>]h?]hA]uh2jh,]rhMX*srr}r(h1Uh2j ubah8hubaubeubh)r}r(h1Uh2jh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r}r(h1Uh2hh3Nh8h\h:}r(h?]h>]h<]h=]hA]Uentries]r(h_X*white() (celery.utils.term.colored method)hUtrauhCNhDhh,]ubh|)r}r(h1Uh2hh3Nh8hh:}r(hhXpyh?]h>]h<]h=]hA]hXmethodrhjuhCNhDhh,]r(h)r}r (h1Xcolored.white(*s)h2jh3hh8hh:}r!(h?]r"hahh4Xcelery.utils.termr#r$}r%bh>]h<]h=]hA]r&hahX colored.whitehhhuhCNhDhh,]r'(h)r(}r)(h1Xwhiteh2jh3hh8hh:}r*(h<]h=]h>]h?]hA]uhCNhDhh,]r+hMXwhiter,r-}r.(h1Uh2j(ubaubh)r/}r0(h1Uh2jh3hh8hh:}r1(h<]h=]h>]h?]hA]uhCNhDhh,]r2h)r3}r4(h1X*sh:}r5(h<]h=]h>]h?]hA]uh2j/h,]r6hMX*sr7r8}r9(h1Uh2j3ubah8hubaubeubh)r:}r;(h1Uh2jh3hh8hh:}r<(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubhY)r=}r>(h1Uh2hh3Nh8h\h:}r?(h?]h>]h<]h=]hA]Uentries]r@(h_X+yellow() (celery.utils.term.colored method)h UtrAauhCNhDhh,]ubh|)rB}rC(h1Uh2hh3Nh8hh:}rD(hhXpyh?]h>]h<]h=]hA]hXmethodrEhjEuhCNhDhh,]rF(h)rG}rH(h1Xcolored.yellow(*s)rIh2jBh3hh8hh:}rJ(h?]rKh ahh4Xcelery.utils.termrLrM}rNbh>]h<]h=]hA]rOh ahXcolored.yellowhhhuhCNhDhh,]rP(h)rQ}rR(h1Xyellowh2jGh3hh8hh:}rS(h<]h=]h>]h?]hA]uhCNhDhh,]rThMXyellowrUrV}rW(h1Uh2jQubaubh)rX}rY(h1Uh2jGh3hh8hh:}rZ(h<]h=]h>]h?]hA]uhCNhDhh,]r[h)r\}r](h1X*sh:}r^(h<]h=]h>]h?]hA]uh2jXh,]r_hMX*sr`ra}rb(h1Uh2j\ubah8hubaubeubh)rc}rd(h1Uh2jBh3hh8hh:}re(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubeubeubhY)rf}rg(h1Uh2h/h3Nh8h\h:}rh(h?]h>]h<]h=]hA]Uentries]ri(h_X"fg() (in module celery.utils.term)hUtrjauhCNhDhh,]ubh|)rk}rl(h1Uh2h/h3Nh8hh:}rm(hhXpyh?]h>]h<]h=]hA]hXfunctionrnhjnuhCNhDhh,]ro(h)rp}rq(h1Xfg(s)rrh2jkh3hh8hh:}rs(h?]rthahh4Xcelery.utils.termrurv}rwbh>]h<]h=]hA]rxhahXfgryhUhuhCNhDhh,]rz(h)r{}r|(h1Xcelery.utils.term.h2jph3hh8hh:}r}(h<]h=]h>]h?]hA]uhCNhDhh,]r~hMXcelery.utils.term.rr}r(h1Uh2j{ubaubh)r}r(h1jyh2jph3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rhMXfgrr}r(h1Uh2jubaubh)r}r(h1Uh2jph3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]rh)r}r(h1Xsh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMXsr}r(h1Uh2jubah8hubaubeubh)r}r(h1Uh2jkh3hh8hh:}r(h<]h=]h>]h?]hA]uhCNhDhh,]ubeubeubah1UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhDhU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h1Uh:}r(h<]UlevelKh?]h>]UsourcehTh=]hA]UlineKUtypeUINFOruh,]rha)r}r(h1Uh:}r(h<]h=]h>]h?]hA]uh2jh,]rhMX>Hyperlink target "module-celery.utils.term" is not referenced.rr}r(h1Uh2jubah8hfubah8Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhJNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUc/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.term.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hXhRhj hjph+h/hjih jh hh*cdocutils.nodes topic r)r}r (h1Uh2h/h3h6h8Utopicr h:}r (h<]h=]r (Ucontentsr Ulocalreh>]h?]rh*ahA]rh auhCKhDhh,]rcdocutils.nodes pending r)r}r(h1X.. contents:: :local:h2jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh8Upendingrh:}r(h<]h=]h>]h?]hA]uh,]ubaubh jGhjhj1hjhjhjhjQhjhjhj)hjhjhjhjhhhjyhjhjh jAh jQuUsubstitution_namesr}rh8hDh:}r(h<]h?]h>]Usourceh6h=]hA]uU footnotesr]rUrefidsr }r!ub.PKYDD{GGMcelery-2.1-archived/.doctrees/internals/reference/celery.utils.timer2.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X!celery.utils.timer2.Timer.on_tickqX)celery.utils.timer2.Timer.Entry.cancelledqXtimer2 - celery.utils.timer2qNX celery.utils.timer2.Timer.cancelq X!celery.utils.timer2.Timer.runningq X$celery.utils.timer2.Timer.exit_afterq Xcelery.utils.timer2.Timer.emptyq Xcelery.utils.timer2.Timer.enterq X&celery.utils.timer2.Timer.Entry.cancelqUcontentsqNXcelery.utils.timer2.ScheduleqX(celery.utils.timer2.Timer.apply_intervalqXcelery.utils.timer2.EntryqX"celery.utils.timer2.Schedule.emptyqXcelery.utils.timer2.Timer.nextqX%celery.utils.timer2.Timer.apply_afterqX"celery.utils.timer2.Schedule.clearqX!celery.utils.timer2.Schedule.infoqX(celery.utils.timer2.Timer.ensure_startedqXcelery.utils.timer2.TimerqX"celery.utils.timer2.Schedule.queueqX'celery.utils.timer2.TimedFunctionFailedqXcelery.utils.timer2.Timer.stopqXcelery.utils.timer2.Timer.EntryqX)celery.utils.timer2.Schedule.handle_errorqX"celery.utils.timer2.Timer.apply_atqX"celery.utils.timer2.Schedule.enterq X%celery.utils.timer2.Timer.enter_afterq!X#celery.utils.timer2.Entry.cancelledq"Xcelery.utils.timer2.Timer.queueq#X celery.utils.timer2.to_timestampq$X celery.utils.timer2.Entry.cancelq%Xcelery.utils.timer2.Timer.clearq&Xcelery.utils.timer2.Timer.runq'X%celery.utils.timer2.Schedule.on_errorq(X%celery.utils.timer2.Timer.apply_entryq)uUsubstitution_defsq*}q+Uparse_messagesq,]q-Ucurrent_sourceq.NU decorationq/NUautofootnote_startq0KUnameidsq1}q2(hhhhhUtimer2-celery-utils-timer2q3h h h h h h h h h h hhhUcontentsq4hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh h h!h!h"h"h#h#h$h$h%h%h&h&h'h'h(h(h)h)uUchildrenq5]q6cdocutils.nodes section q7)q8}q9(U rawsourceq:UUparentq;hUsourceqq?}q@bUtagnameqAUsectionqBU attributesqC}qD(UdupnamesqE]UclassesqF]UbackrefsqG]UidsqH]qIh3aUnamesqJ]qKhauUlineqLKUdocumentqMhh5]qN(cdocutils.nodes title qO)qP}qQ(h:Xtimer2 - celery.utils.timer2qRh;h8hq]hAUtargetq^hC}q_(hE]hH]q`Xmodule-celery.utils.timer2qaahG]UismodhF]hJ]uhLKhMhh5]ubcsphinx.addnodes index qb)qc}qd(h:Uh;h8hqhAUdesc_signatureqhC}q(hH]qhaUmoduleqh=Xcelery.utils.timer2qq}qbhG]hE]hF]hJ]qhaUfullnameqXEntryqUclassqUUfirstquhLNhMhh5]q(csphinx.addnodes desc_annotation q)q}q(h:Xclass h;hhrhAhhC}r(hH]rh"ahh=Xcelery.utils.timer2rr}rbhG]hE]hF]hJ]rh"ahXEntry.cancelledhhhuhLNhMhh5]r(h)r}r (h:X cancelledh;hhhVXScheduler?r@}rA(h:Uh;j;ubaubh)rB}rC(h:Uh;j#hXdatetime.datetimeU refdomainXpyr?hH]hG]U refexplicithE]hF]hJ]Urefdocr@X'internals/reference/celery.utils.timer2rAUpy:classrBj+U py:modulerCXcelery.utils.timer2rDuhLNh5]rEcdocutils.nodes literal rF)rG}rH(h:j:hC}rI(hE]hF]rJ(UxrefrKj?Xpy-classrLehG]hH]hJ]uh;j8h5]rMhVXdatetime.datetimerNrO}rP(h:Uh;jGubahAUliteralrQubaubhVX object.rRrS}rT(h:X object.h;j&ubehAhoubahAj!ubj )rU}rV(h:UhC}rW(hE]hF]hG]hH]hJ]uh;jh5]rXhj)rY}rZ(h:UhC}r[(hE]hF]hG]hH]hJ]uh;jUh5]r\(j)r]}r^(h:XpriorityhC}r_(hE]hF]hG]hH]hJ]uh;jYh5]r`hVXpriorityrarb}rc(h:Uh;j]ubahAjubhVX -- rdre}rf(h:Uh;jYubhVXUnused.rgrh}ri(h:XUnused.h;jYubehAhoubahAj!ubehAU bullet_listrjubahAU field_bodyrkubehAUfieldrlubaubeubeubhb)rm}rn(h:Uh;jTh(h:Xcelery.utils.timer2.h;j,h}r?(h:Uh;jkh(hH]r?h&ahh=Xcelery.utils.timer2r@rA}rBbhG]hE]hF]hJ]rCh&ahX Timer.clearhXTimerhuhLNhMhh5]rD(h)rE}rF(h:XTimer.h;j<hhVX exit_afterr?r@}rA(h:Uh;j;ubaubh)rB}rC(h:Uh;j+hr?}r@(h:Uh;j:ubaubh)rA}rB(h:Uh;j)h)q?}q@(hX**EXPERIMENTAL**qAh'}qB(h)]h*]h+]h,]h.]uhh4h]qCh9X EXPERIMENTALqDqE}qF(hUhh?ubah%UstrongqGubh9X - celery.concurrency.threadsqHqI}qJ(hX - celery.concurrency.threadsqKhh4ubeubcdocutils.nodes target qL)qM}qN(hUhhh U qOh%UtargetqPh'}qQ(h)]h,]qRX!module-celery.concurrency.threadsqSah+]Uismodh*]h.]uh0Kh1hh]ubcsphinx.addnodes index qT)qU}qV(hUhhh hOh%UindexqWh'}qX(h,]h+]h)]h*]h.]Uentries]qY(UsingleqZX#celery.concurrency.threads (module)X!module-celery.concurrency.threadsUtq[auh0Kh1hh]ubhT)q\}q](hUhhh Nh%hWh'}q^(h,]h+]h)]h*]h.]Uentries]q_(hZX.TaskPool (class in celery.concurrency.threads)h Utq`auh0Nh1hh]ubcsphinx.addnodes desc qa)qb}qc(hUhhh Nh%Udescqdh'}qe(UnoindexqfUdomainqgXpyh,]h+]h)]h*]h.]UobjtypeqhXclassqiUdesctypeqjhiuh0Nh1hh]qk(csphinx.addnodes desc_signature ql)qm}qn(hX&TaskPool(limit, logger=None, **kwargs)hhbh U qoh%Udesc_signatureqph'}qq(h,]qrh aUmoduleqsh!Xcelery.concurrency.threadsqtqu}qvbh+]h)]h*]h.]qwh aUfullnameqxXTaskPoolqyUclassqzUUfirstq{uh0Nh1hh]q|(csphinx.addnodes desc_annotation q})q~}q(hXclass hhmh hoh%Udesc_annotationqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]qh9Xclass qq}q(hUhh~ubaubcsphinx.addnodes desc_addname q)q}q(hXcelery.concurrency.threads.hhmh hoh%U desc_addnameqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]qh9Xcelery.concurrency.threads.qq}q(hUhhubaubcsphinx.addnodes desc_name q)q}q(hhyhhmh hoh%U desc_nameqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]qh9XTaskPoolqq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhhmh hoh%Udesc_parameterlistqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]q(csphinx.addnodes desc_parameter q)q}q(hXlimith'}q(h)]h*]h+]h,]h.]uhhh]qh9Xlimitqq}q(hUhhubah%Udesc_parameterqubh)q}q(hX logger=Noneh'}q(h)]h*]h+]h,]h.]uhhh]qh9X logger=Noneqq}q(hUhhubah%hubh)q}q(hX**kwargsh'}q(h)]h*]h+]h,]h.]uhhh]qh9X**kwargsqq}q(hUhhubah%hubeubeubcsphinx.addnodes desc_content q)q}q(hUhhbh hoh%U desc_contentqh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]q(hT)q}q(hUhhh Nh%hWh'}q(h,]h+]h)]h*]h.]Uentries]q(hZX:apply_async() (celery.concurrency.threads.TaskPool method)h Utqauh0Nh1hh]ubha)q}q(hUhhh Nh%hdh'}q(hfhgXpyh,]h+]h)]h*]h.]hhXmethodqhjhuh0Nh1hh]q(hl)q}q(hXsTaskPool.apply_async(target, args=None, kwargs=None, callbacks=None, errbacks=None, accept_callback=None, **compat)hhh hoh%hph'}q(h,]qh ahsh!Xcelery.concurrency.threadsqɅq}qbh+]h)]h*]h.]qh ahxXTaskPool.apply_asynchzhyh{uh0Nh1hh]q(h)q}q(hX apply_asynchhh hoh%hh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]qh9X apply_asyncq҅q}q(hUhhubaubh)q}q(hUhhh hoh%hh'}q(h)]h*]h+]h,]h.]uh0Nh1hh]q(h)q}q(hXtargeth'}q(h)]h*]h+]h,]h.]uhhh]qh9Xtargetq݅q}q(hUhhubah%hubh)q}q(hX args=Noneh'}q(h)]h*]h+]h,]h.]uhhh]qh9X args=Noneq䅁q}q(hUhhubah%hubh)q}q(hX kwargs=Noneh'}q(h)]h*]h+]h,]h.]uhhh]qh9X kwargs=Noneq녁q}q(hUhhubah%hubh)q}q(hXcallbacks=Noneh'}q(h)]h*]h+]h,]h.]uhhh]qh9Xcallbacks=Noneqq}q(hUhhubah%hubh)q}q(hX errbacks=Noneh'}q(h)]h*]h+]h,]h.]uhhh]qh9X errbacks=Noneqq}q(hUhhubah%hubh)q}q(hXaccept_callback=Noneh'}q(h)]h*]h+]h,]h.]uhhh]qh9Xaccept_callback=Nonerr}r(hUhhubah%hubh)r}r(hX**compath'}r(h)]h*]h+]h,]h.]uhhh]rh9X**compatrr}r (hUhjubah%hubeubeubh)r }r (hUhhh hoh%hh'}r (h)]h*]h+]h,]h.]uh0Nh1hh]ubeubhT)r }r(hUhhh X/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/threads.py:docstring of celery.concurrency.threads.TaskPool.on_readyrh%hWh'}r(h,]h+]h)]h*]h.]Uentries]r(hZX7on_ready() (celery.concurrency.threads.TaskPool method)hUtrauh0Nh1hh]ubha)r}r(hUhhh jh%hdh'}r(hfhgXpyh,]h+]h)]h*]h.]hhXmethodrhjjuh0Nh1hh]r(hl)r}r(hX1TaskPool.on_ready(callbacks, errbacks, ret_value)hjh hoh%hph'}r(h,]rhahsh!Xcelery.concurrency.threadsrr}rbh+]h)]h*]h.]rhahxXTaskPool.on_readyhzhyh{uh0Nh1hh]r (h)r!}r"(hXon_readyhjh hoh%hh'}r#(h)]h*]h+]h,]h.]uh0Nh1hh]r$h9Xon_readyr%r&}r'(hUhj!ubaubh)r(}r)(hUhjh hoh%hh'}r*(h)]h*]h+]h,]h.]uh0Nh1hh]r+(h)r,}r-(hX callbacksh'}r.(h)]h*]h+]h,]h.]uhj(h]r/h9X callbacksr0r1}r2(hUhj,ubah%hubh)r3}r4(hXerrbacksh'}r5(h)]h*]h+]h,]h.]uhj(h]r6h9Xerrbacksr7r8}r9(hUhj3ubah%hubh)r:}r;(hX ret_valueh'}r<(h)]h*]h+]h,]h.]uhj(h]r=h9X ret_valuer>r?}r@(hUhj:ubah%hubeubeubh)rA}rB(hUhjh hoh%hh'}rC(h)]h*]h+]h,]h.]uh0Nh1hh]rDcdocutils.nodes paragraph rE)rF}rG(hXOWhat to do when a worker task is ready and its return value has been collected.rHhjAh jh%U paragraphrIh'}rJ(h)]h*]h+]h,]h.]uh0Kh1hh]rKh9XOWhat to do when a worker task is ready and its return value has been collected.rLrM}rN(hjHhjFubaubaubeubhT)rO}rP(hUhhh Nh%hWh'}rQ(h,]h+]h)]h*]h.]Uentries]rR(hZX4start() (celery.concurrency.threads.TaskPool method)h UtrSauh0Nh1hh]ubha)rT}rU(hUhhh Nh%hdh'}rV(hfhgXpyh,]h+]h)]h*]h.]hhXmethodrWhjjWuh0Nh1hh]rX(hl)rY}rZ(hXTaskPool.start()hjTh hoh%hph'}r[(h,]r\h ahsh!Xcelery.concurrency.threadsr]r^}r_bh+]h)]h*]h.]r`h ahxXTaskPool.starthzhyh{uh0Nh1hh]ra(h)rb}rc(hXstarthjYh hoh%hh'}rd(h)]h*]h+]h,]h.]uh0Nh1hh]reh9Xstartrfrg}rh(hUhjbubaubh)ri}rj(hUhjYh hoh%hh'}rk(h)]h*]h+]h,]h.]uh0Nh1hh]ubeubh)rl}rm(hUhjTh hoh%hh'}rn(h)]h*]h+]h,]h.]uh0Nh1hh]ubeubhT)ro}rp(hUhhh Nh%hWh'}rq(h,]h+]h)]h*]h.]Uentries]rr(hZX3stop() (celery.concurrency.threads.TaskPool method)hUtrsauh0Nh1hh]ubha)rt}ru(hUhhh Nh%hdh'}rv(hfhgXpyh,]h+]h)]h*]h.]hhXmethodrwhjjwuh0Nh1hh]rx(hl)ry}rz(hXTaskPool.stop()r{hjth hoh%hph'}r|(h,]r}hahsh!Xcelery.concurrency.threadsr~r}rbh+]h)]h*]h.]rhahxX TaskPool.stophzhyh{uh0Nh1hh]r(h)r}r(hXstophjyh hoh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]rh9Xstoprr}r(hUhjubaubh)r}r(hUhjyh hoh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]ubeubh)r}r(hUhjth hoh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]ubeubeubeubhT)r}r(hUhhh Nh%hWh'}r(h,]h+]h)]h*]h.]Uentries]r(hZX0do_work() (in module celery.concurrency.threads)h Utrauh0Nh1hh]ubha)r}r(hUhhh Nh%hdh'}r(hfhgXpyh,]h+]h)]h*]h.]hhXfunctionrhjjuh0Nh1hh]r(hl)r}r(hXHdo_work(target, args=(), kwargs={}, callback=None, accept_callback=None)hjh hoh%hph'}r(h,]rh ahsh!Xcelery.concurrency.threadsrr}rbh+]h)]h*]h.]rh ahxXdo_workrhzUh{uh0Nh1hh]r(h)r}r(hXcelery.concurrency.threads.hjh hoh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]rh9Xcelery.concurrency.threads.rr}r(hUhjubaubh)r}r(hjhjh hoh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]rh9Xdo_workrr}r(hUhjubaubh)r}r(hUhjh hoh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]r(h)r}r(hXtargeth'}r(h)]h*]h+]h,]h.]uhjh]rh9Xtargetrr}r(hUhjubah%hubh)r}r(hXargs=()h'}r(h)]h*]h+]h,]h.]uhjh]rh9Xargs=()rr}r(hUhjubah%hubh)r}r(hX kwargs={}h'}r(h)]h*]h+]h,]h.]uhjh]rh9X kwargs={}rr}r(hUhjubah%hubh)r}r(hX callback=Noneh'}r(h)]h*]h+]h,]h.]uhjh]rh9X callback=Nonerr}r(hUhjubah%hubh)r}r(hXaccept_callback=Noneh'}r(h)]h*]h+]h,]h.]uhjh]rh9Xaccept_callback=Nonerr}r(hUhjubah%hubeubeubh)r}r(hUhjh hoh%hh'}r(h)]h*]h+]h,]h.]uh0Nh1hh]ubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh1hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh'}r(h)]UlevelKh,]h+]UsourcehOh*]h.]UlineKUtypeUINFOruh]rjE)r}r(hUh'}r(h)]h*]h+]h,]h.]uhjh]rh9XGHyperlink target "module-celery.concurrency.threads" is not referenced.rr}r(hUhjubah%jIubah%Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr UentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh6NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templater Upep-%04dr!Uexit_status_levelr"KUconfigr#NUstrict_visitorr$NUcloak_email_addressesr%Utrim_footnote_reference_spacer&Uenvr'NUdump_pseudo_xmlr(NUexpose_internalsr)NUsectsubtitle_xformr*U source_linkr+NUrfc_referencesr,NUoutput_encodingr-Uutf-8r.U source_urlr/NUinput_encodingr0U utf-8-sigr1U_disable_configr2NU id_prefixr3UU tab_widthr4KUerror_encodingr5UUTF-8r6U_sourcer7Ul/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.concurrency.threads.rstr8Ugettext_compactr9U generatorr:NUdump_internalsr;NU smart_quotesr<U pep_base_urlr=Uhttp://www.python.org/dev/peps/r>Usyntax_highlightr?Ulongr@Uinput_encoding_error_handlerrAjUauto_id_prefixrBUidrCUdoctitle_xformrDUstrip_elements_with_classesrENU _config_filesrF]Ufile_insertion_enabledrGU raw_enabledrHKU dump_settingsrINubUsymbol_footnote_startrJKUidsrK}rL(hjhjyh hmh jYhhh hhShMh jhcdocutils.nodes topic rM)rN}rO(hUhhh h#h%UtopicrPh'}rQ(h)]h*]rR(UcontentsrSUlocalrTeh+]h,]rUhah.]rVh auh0Kh1hh]rWcdocutils.nodes pending rX)rY}rZ(hX.. contents:: :local:hjNU transformr[cdocutils.transforms.parts Contents r\Udetailsr]}r^UlocalNsh%Upendingr_h'}r`(h)]h*]h+]h,]h.]uh]ubaubuUsubstitution_namesra}rbh%h1h'}rc(h)]h,]h+]Usourceh#h*]h.]uU footnotesrd]reUrefidsrf}rgub.PKYDD/`MMOcelery-2.1-archived/.doctrees/internals/reference/celery.worker.control.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X0celery.worker.control.ControlDispatch.Panel.dataqX4celery.worker.control.ControlDispatch.Panel.registerqX&worker control - celery.worker.controlqNX+celery.worker.control.ControlDispatch.Panelq X%celery.worker.control.ControlDispatchq X4celery.worker.control.ControlDispatch.ReplyPublisherq X;celery.worker.control.ControlDispatch.dispatch_from_messageq X+celery.worker.control.ControlDispatch.replyq X-celery.worker.control.ControlDispatch.executeqUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhU$worker-control-celery-worker-controlqh h h h h h h h h h hhhUcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceq UUparentq!hUsourceq"cdocutils.nodes reprunicode q#Xg/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.control.rstq$q%}q&bUtagnameq'Usectionq(U attributesq)}q*(Udupnamesq+]Uclassesq,]Ubackrefsq-]Uidsq.]q/haUnamesq0]q1hauUlineq2KUdocumentq3hh]q4(cdocutils.nodes title q5)q6}q7(h X&Worker Control - celery.worker.controlq8h!hh"h%h'Utitleq9h)}q:(h+]h,]h-]h.]h0]uh2Kh3hh]q;cdocutils.nodes Text q}q?(h h8h!h6ubaubcdocutils.nodes target q@)qA}qB(h Uh!hh"U qCh'UtargetqDh)}qE(h+]h.]qFXmodule-celery.worker.controlqGah-]Uismodh,]h0]uh2Kh3hh]ubcsphinx.addnodes index qH)qI}qJ(h Uh!hh"hCh'UindexqKh)}qL(h.]h-]h+]h,]h0]Uentries]qM(UsingleqNXcelery.worker.control (module)Xmodule-celery.worker.controlUtqOauh2Kh3hh]ubhH)qP}qQ(h Uh!hh"Nh'hKh)}qR(h.]h-]h+]h,]h0]Uentries]qS(hNX0ControlDispatch (class in celery.worker.control)h UtqTauh2Nh3hh]ubcsphinx.addnodes desc qU)qV}qW(h Uh!hh"Nh'UdescqXh)}qY(UnoindexqZUdomainq[Xpyh.]h-]h+]h,]h0]Uobjtypeq\Xclassq]Udesctypeq^h]uh2Nh3hh]q_(csphinx.addnodes desc_signature q`)qa}qb(h X:ControlDispatch(logger=None, hostname=None, listener=None)h!hVh"U qch'Udesc_signatureqdh)}qe(h.]qfh aUmoduleqgh#Xcelery.worker.controlqhqi}qjbh-]h+]h,]h0]qkh aUfullnameqlXControlDispatchqmUclassqnUUfirstqouh2Nh3hh]qp(csphinx.addnodes desc_annotation qq)qr}qs(h Xclass h!hah"hch'Udesc_annotationqth)}qu(h+]h,]h-]h.]h0]uh2Nh3hh]qvhrh'hdh)}r(h.]rhahgh#Xcelery.worker.controlrr }r bh-]h+]h,]h0]r hahlXControlDispatch.Panel.datahnhhouh2Nh3hh]r (h)r }r(h Xdatah!jh"jh'hh)}r(h+]h,]h-]h.]h0]uh2Nh3hh]rh, 'revoke': , 'enable_events': , 'set_loglevel': , 'dump_active': , 'dump_schedule': , 'rate_limit': , 'disable_events': , 'cancel_consumer': , 'dump_tasks': , 'dump_reserved': , 'add_consumer': , 'shutdown': , 'dump_revoked': , 'heartbeat': , 'ping': }h!jh"jh'hth)}r(h+]h,]h-]h.]h0]uh2Nh3hh]rh, 'revoke': , 'enable_events': , 'set_loglevel': , 'dump_active': , 'dump_schedule': , 'rate_limit': , 'disable_events': , 'cancel_consumer': , 'dump_tasks': , 'dump_reserved': , 'add_consumer': , 'shutdown': , 'dump_revoked': , 'heartbeat': , 'ping': }rr}r(h Uh!jubaubeubh)r}r(h Uh!hh"jh'hh)}r(h+]h,]h-]h.]h0]uh2Nh3hh]ubeubhH)r}r(h Uh!hh"Nh'hKh)}r (h.]h-]h+]h,]h0]Uentries]r!(hNXEregister() (celery.worker.control.ControlDispatch.Panel class method)hUtr"auh2Nh3hh]ubhU)r#}r$(h Uh!hh"Nh'hXh)}r%(hZh[Xpyh.]h-]h+]h,]h0]h\X classmethodr&h^j&uh2Nh3hh]r'(h`)r(}r)(h X1ControlDispatch.Panel.register(method, name=None)h!j#h"hch'hdh)}r*(h.]r+hahgh#Xcelery.worker.controlr,r-}r.bh-]h+]h,]h0]r/hahlXControlDispatch.Panel.registerhnhhouh2Nh3hh]r0(hq)r1}r2(h U classmethod r3h!j(h"hch'hth)}r4(h+]h,]h-]h.]h0]uh2Nh3hh]r5h}r?(h Uh!j9ubaubh)r@}rA(h Uh!j(h"hch'hh)}rB(h+]h,]h-]h.]h0]uh2Nh3hh]rC(h)rD}rE(h Xmethodh)}rF(h+]h,]h-]h.]h0]uh!j@h]rGh>> def receive_message(message_data, message): ... control = message_data.get("control") ... if control: ... ControlDispatch().dispatch_from_message(control)h!jh"Nh'U doctest_blockrh)}r(U xml:spacerUpreserverh.]h-]h+]h,]h0]uh2Nh3hh]rh>> def receive_message(message_data, message): ... control = message_data.get("control") ... if control: ... ControlDispatch().dispatch_from_message(control)rr}r(h Uh!jubaubeubeubhH)r}r(h Uh!hh"Nh'hKh)}r(h.]h-]h+]h,]h0]Uentries]r(hNX8execute() (celery.worker.control.ControlDispatch method)hUtrauh2Nh3hh]ubhU)r}r(h Uh!hh"Nh'hXh)}r(hZh[Xpyh.]h-]h+]h,]h0]h\Xmethodrh^juh2Nh3hh]r(h`)r}r(h X<ControlDispatch.execute(command, kwargs=None, reply_to=None)h!jh"hch'hdh)}r(h.]rhahgh#Xcelery.worker.controlrr}rbh-]h+]h,]h0]rhahlXControlDispatch.executehnXControlDispatchhouh2Nh3hh]r(hz)r}r(h XControlDispatch.h!jh"hch'h}h)}r(h+]h,]h-]h.]h0]uh2Nh3hh]rhh]r?Urefidsr@}rAub.PKYDDDmmNcelery-2.1-archived/.doctrees/internals/reference/celery.serialization.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X9celery.serialization.UnpickleableExceptionWrapper.restoreqX<celery.serialization.UnpickleableExceptionWrapper.exc_moduleqX:celery.serialization.UnpickleableExceptionWrapper.exc_argsqX)celery.serialization.create_exception_clsq X'celery.serialization.subclass_exceptionq X>celery.serialization.UnpickleableExceptionWrapper.exc_cls_nameq X*serialization tools - celery.serializationq NX@celery.serialization.UnpickleableExceptionWrapper.from_exceptionq X-celery.serialization.get_pickleable_exceptionqX*celery.serialization.get_pickled_exceptionqX1celery.serialization.UnpickleableExceptionWrapperqX6celery.serialization.find_nearest_pickleable_exceptionqUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h U(serialization-tools-celery-serializationqh h hhhhhhhhhUcontentsquUchildrenq]qcdocutils.nodes section q )q!}q"(U rawsourceq#UUparentq$hUsourceq%cdocutils.nodes reprunicode q&Xf/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.serialization.rstq'q(}q)bUtagnameq*Usectionq+U attributesq,}q-(Udupnamesq.]Uclassesq/]Ubackrefsq0]Uidsq1]q2haUnamesq3]q4h auUlineq5KUdocumentq6hh]q7(cdocutils.nodes title q8)q9}q:(h#X*Serialization Tools - celery.serializationq;h$h!h%h(h*Utitleqcdocutils.nodes Text q?X*Serialization Tools - celery.serializationq@qA}qB(h#h;h$h9ubaubcdocutils.nodes target qC)qD}qE(h#Uh$h!h%U qFh*UtargetqGh,}qH(h.]h1]qIXmodule-celery.serializationqJah0]Uismodh/]h3]uh5Kh6hh]ubcsphinx.addnodes index qK)qL}qM(h#Uh$h!h%hFh*UindexqNh,}qO(h1]h0]h.]h/]h3]Uentries]qP(UsingleqQXcelery.serialization (module)Xmodule-celery.serializationUtqRauh5Kh6hh]ubhK)qS}qT(h#Uh$h!h%Nh*hNh,}qU(h1]h0]h.]h/]h3]Uentries]qV(hQXUnpickleableExceptionWrapperqWhUtqXauh5Nh6hh]ubcsphinx.addnodes desc qY)qZ}q[(h#Uh$h!h%Nh*Udescq\h,}q](Unoindexq^Udomainq_Xpyh1]h0]h.]h/]h3]Uobjtypeq`X exceptionqaUdesctypeqbhauh5Nh6hh]qc(csphinx.addnodes desc_signature qd)qe}qf(h#X@UnpickleableExceptionWrapper(exc_module, exc_cls_name, exc_args)h$hZh%U qgh*Udesc_signatureqhh,}qi(h1]qjhaUmoduleqkh&Xcelery.serializationqlqm}qnbh0]h.]h/]h3]qohaUfullnameqphWUclassqqUUfirstqruh5Nh6hh]qs(csphinx.addnodes desc_annotation qt)qu}qv(h#X exception h$heh%hgh*Udesc_annotationqwh,}qx(h.]h/]h0]h1]h3]uh5Nh6hh]qyh?X exception qzq{}q|(h#Uh$huubaubcsphinx.addnodes desc_addname q})q~}q(h#Xcelery.serialization.h$heh%hgh*U desc_addnameqh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]qh?Xcelery.serialization.qq}q(h#Uh$h~ubaubcsphinx.addnodes desc_name q)q}q(h#hWh$heh%hgh*U desc_nameqh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]qh?XUnpickleableExceptionWrapperqq}q(h#Uh$hubaubcsphinx.addnodes desc_parameterlist q)q}q(h#Uh$heh%hgh*Udesc_parameterlistqh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]q(csphinx.addnodes desc_parameter q)q}q(h#X exc_moduleh,}q(h.]h/]h0]h1]h3]uh$hh]qh?X exc_moduleqq}q(h#Uh$hubah*Udesc_parameterqubh)q}q(h#X exc_cls_nameh,}q(h.]h/]h0]h1]h3]uh$hh]qh?X exc_cls_nameqq}q(h#Uh$hubah*hubh)q}q(h#Xexc_argsh,}q(h.]h/]h0]h1]h3]uh$hh]qh?Xexc_argsqq}q(h#Uh$hubah*hubeubeubcsphinx.addnodes desc_content q)q}q(h#Uh$hZh%hgh*U desc_contentqh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]q(cdocutils.nodes paragraph q)q}q(h#XWraps unpickleable exceptions.qh$hh%X/var/build/user_builds/celery/checkouts/2.1-archived/celery/serialization.py:docstring of celery.serialization.UnpickleableExceptionWrapperqh*U paragraphqh,}q(h.]h/]h0]h1]h3]uh5Kh6hh]qh?XWraps unpickleable exceptions.qq}q(h#hh$hubaubcdocutils.nodes field_list q)q}q(h#Uh$hh%Nh*U field_listqh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]qcdocutils.nodes field q)q}q(h#Uh,}q(h.]h/]h0]h1]h3]uh$hh]q(cdocutils.nodes field_name q)q}q(h#Uh,}q(h.]h/]h0]h1]h3]uh$hh]qh?X Parametersqͅq}q(h#Uh$hubah*U field_namequbcdocutils.nodes field_body q)q}q(h#Uh,}q(h.]h/]h0]h1]h3]uh$hh]qcdocutils.nodes bullet_list q)q}q(h#Uh,}q(h.]h/]h0]h1]h3]uh$hh]q(cdocutils.nodes list_item q)q}q(h#Uh,}q(h.]h/]h0]h1]h3]uh$hh]qh)q}q(h#Uh,}q(h.]h/]h0]h1]h3]uh$hh]q(cdocutils.nodes strong q)q}q(h#X exc_moduleh,}q(h.]h/]h0]h1]h3]uh$hh]qh?X exc_moduleq酁q}q(h#Uh$hubah*Ustrongqubh?X -- q텁q}q(h#Uh$hubh?Xsee qq}q(h#Xsee h$hubcsphinx.addnodes pending_xref q)q}q(h#X:attr:`exc_module`qh$hh%h(h*U pending_xrefqh,}q(UreftypeXattrUrefwarnqU reftargetqX exc_moduleU refdomainXpyqh1]h0]U refexplicith.]h/]h3]UrefdocqX(internals/reference/celery.serializationqUpy:classqhWU py:moduleqXcelery.serializationruh5K h]rcdocutils.nodes literal r)r}r(h#hh,}r(h.]h/]r(UxrefrhXpy-attrreh0]h1]h3]uh$hh]r h?X exc_moduler r }r (h#Uh$jubah*Uliteralr ubaubh?X.r}r(h#X.h$hubeh*hubah*U list_itemrubh)r}r(h#Uh,}r(h.]h/]h0]h1]h3]uh$hh]rh)r}r(h#Uh,}r(h.]h/]h0]h1]h3]uh$jh]r(h)r}r(h#X exc_cls_nameh,}r(h.]h/]h0]h1]h3]uh$jh]rh?X exc_cls_namerr}r(h#Uh$jubah*hubh?X -- r r!}r"(h#Uh$jubh?Xsee r#r$}r%(h#Xsee h$jubh)r&}r'(h#X:attr:`exc_cls_name`r(h$jh%h(h*hh,}r)(UreftypeXattrhhX exc_cls_nameU refdomainXpyr*h1]h0]U refexplicith.]h/]h3]hhhhWhjuh5K h]r+j)r,}r-(h#j(h,}r.(h.]h/]r/(jj*Xpy-attrr0eh0]h1]h3]uh$j&h]r1h?X exc_cls_namer2r3}r4(h#Uh$j,ubah*j ubaubh?X.r5}r6(h#X.h$jubeh*hubah*jubh)r7}r8(h#Uh,}r9(h.]h/]h0]h1]h3]uh$hh]r:h)r;}r<(h#Uh,}r=(h.]h/]h0]h1]h3]uh$j7h]r>(h)r?}r@(h#Xexc_argsh,}rA(h.]h/]h0]h1]h3]uh$j;h]rBh?Xexc_argsrCrD}rE(h#Uh$j?ubah*hubh?X -- rFrG}rH(h#Uh$j;ubh?Xsee rIrJ}rK(h#Xsee h$j;ubh)rL}rM(h#X:attr:`exc_args`rNh$j;h%Nh*hh,}rO(UreftypeXattrhhXexc_argsU refdomainXpyrPh1]h0]U refexplicith.]h/]h3]hhhhWhjuh5Nh]rQj)rR}rS(h#jNh,}rT(h.]h/]rU(jjPXpy-attrrVeh0]h1]h3]uh$jLh]rWh?Xexc_argsrXrY}rZ(h#Uh$jRubah*j ubaubeh*hubah*jubeh*U bullet_listr[ubah*U field_bodyr\ubeh*Ufieldr]ubaubhK)r^}r_(h#Uh$hh%hh*hNh,}r`(h1]h0]h.]h/]h3]Uentries]ra(hQXHexc_module (celery.serialization.UnpickleableExceptionWrapper attribute)hUtrbauh5Nh6hh]ubhY)rc}rd(h#Uh$hh%hh*h\h,}re(h^h_Xpyh1]h0]h.]h/]h3]h`X attributerfhbjfuh5Nh6hh]rg(hd)rh}ri(h#X exc_modulerjh$jch%hh*hhh,}rk(h1]rlhahkjh0]h.]h/]h3]rmhahpX'UnpickleableExceptionWrapper.exc_modulehqhWhruh5K h6hh]rnh)ro}rp(h#jjh$jhh%hh*hh,}rq(h.]h/]h0]h1]h3]uh5K h6hh]rrh?X exc_modulersrt}ru(h#Uh$joubaubaubh)rv}rw(h#Uh$jch%hh*hh,}rx(h.]h/]h0]h1]h3]uh5K h6hh]ryh)rz}r{(h#X%The module of the original exception.r|h$jvh%hh*hh,}r}(h.]h/]h0]h1]h3]uh5K h6hh]r~h?X%The module of the original exception.rr}r(h#j|h$jzubaubaubeubhK)r}r(h#Uh$hh%hh*hNh,}r(h1]h0]h.]h/]h3]Uentries]r(hQXJexc_cls_name (celery.serialization.UnpickleableExceptionWrapper attribute)h Utrauh5Nh6hh]ubhY)r}r(h#Uh$hh%hh*h\h,}r(h^h_Xpyh1]h0]h.]h/]h3]h`X attributerhbjuh5Nh6hh]r(hd)r}r(h#X exc_cls_namerh$jh%hh*hhh,}r(h1]rh ahkjh0]h.]h/]h3]rh ahpX)UnpickleableExceptionWrapper.exc_cls_namehqhWhruh5Kh6hh]rh)r}r(h#jh$jh%hh*hh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh?X exc_cls_namerr}r(h#Uh$jubaubaubh)r}r(h#Uh$jh%hh*hh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh)r}r(h#X)The name of the original exception class.rh$jh%hh*hh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh?X)The name of the original exception class.rr}r(h#jh$jubaubaubeubhK)r}r(h#Uh$hh%hh*hNh,}r(h1]h0]h.]h/]h3]Uentries]r(hQXFexc_args (celery.serialization.UnpickleableExceptionWrapper attribute)hUtrauh5Nh6hh]ubhY)r}r(h#Uh$hh%hh*h\h,}r(h^h_Xpyh1]h0]h.]h/]h3]h`X attributerhbjuh5Nh6hh]r(hd)r}r(h#Xexc_argsrh$jh%hh*hhh,}r(h1]rhahkjh0]h.]h/]h3]rhahpX%UnpickleableExceptionWrapper.exc_argshqhWhruh5Kh6hh]rh)r}r(h#jh$jh%hh*hh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh?Xexc_argsrr}r(h#Uh$jubaubaubh)r}r(h#Uh$jh%hh*hh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh)r}r(h#X)The arguments for the original exception.rh$jh%hh*hh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh?X)The arguments for the original exception.rr}r(h#jh$jubaubaubeubh)r}r(h#XExamplerh$hh%hh*hh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh?XExamplerr}r(h#jh$jubaubcdocutils.nodes doctest_block r)r}r(h#X>>> try: ... something_raising_unpickleable_exc() >>> except Exception, e: ... exc = UnpickleableException(e.__class__.__module__, ... e.__class__.__name__, ... e.args) ... pickle.dumps(exc) # Works fine.h$hh%Nh*U doctest_blockrh,}r(U xml:spacerUpreserverh1]h0]h.]h/]h3]uh5Nh6hh]rh?X>>> try: ... something_raising_unpickleable_exc() >>> except Exception, e: ... exc = UnpickleableException(e.__class__.__module__, ... e.__class__.__name__, ... e.args) ... pickle.dumps(exc) # Works fine.rr}r(h#Uh$jubaubhK)r}r(h#Uh$hh%Nh*hNh,}r(h1]h0]h.]h/]h3]Uentries]r(hQXQfrom_exception() (celery.serialization.UnpickleableExceptionWrapper class method)h Utrauh5Nh6hh]ubhY)r}r(h#Uh$hh%Nh*h\h,}r(h^h_Xpyh1]h0]h.]h/]h3]h`X classmethodrhbjuh5Nh6hh]r(hd)r}r(h#X0UnpickleableExceptionWrapper.from_exception(exc)h$jh%hgh*hhh,}r(h1]rh ahkh&Xcelery.serializationrr}rbh0]h.]h/]h3]rh ahpX+UnpickleableExceptionWrapper.from_exceptionhqhWhruh5Nh6hh]r(ht)r}r(h#U classmethod rh$jh%hgh*hwh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?X classmethod rr}r(h#Uh$jubaubh)r}r(h#Xfrom_exceptionh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xfrom_exceptionrr}r(h#Uh$jubaubh)r}r(h#Uh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh)r}r(h#Xexch,}r(h.]h/]h0]h1]h3]uh$jh]rh?Xexcrr}r (h#Uh$jubah*hubaubeubh)r }r (h#Uh$jh%hgh*hh,}r (h.]h/]h0]h1]h3]uh5Nh6hh]ubeubhK)r }r(h#Uh$hh%Nh*hNh,}r(h1]h0]h.]h/]h3]Uentries]r(hQXDrestore() (celery.serialization.UnpickleableExceptionWrapper method)hUtrauh5Nh6hh]ubhY)r}r(h#Uh$hh%Nh*h\h,}r(h^h_Xpyh1]h0]h.]h/]h3]h`Xmethodrhbjuh5Nh6hh]r(hd)r}r(h#X&UnpickleableExceptionWrapper.restore()h$jh%hgh*hhh,}r(h1]rhahkh&Xcelery.serializationrr}rbh0]h.]h/]h3]rhahpX$UnpickleableExceptionWrapper.restorehqhWhruh5Nh6hh]r(h)r }r!(h#Xrestoreh$jh%hgh*hh,}r"(h.]h/]h0]h1]h3]uh5Nh6hh]r#h?Xrestorer$r%}r&(h#Uh$j ubaubh)r'}r((h#Uh$jh%hgh*hh,}r)(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubh)r*}r+(h#Uh$jh%hgh*hh,}r,(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubeubeubhK)r-}r.(h#Uh$h!h%X/var/build/user_builds/celery/checkouts/2.1-archived/celery/serialization.py:docstring of celery.serialization.create_exception_clsr/h*hNh,}r0(h1]h0]h.]h/]h3]Uentries]r1(hQX7create_exception_cls() (in module celery.serialization)h Utr2auh5Nh6hh]ubhY)r3}r4(h#Uh$h!h%j/h*h\h,}r5(h^h_Xpyh1]h0]h.]h/]h3]h`Xfunctionr6hbj6uh5Nh6hh]r7(hd)r8}r9(h#X/create_exception_cls(name, module, parent=None)h$j3h%hgh*hhh,}r:(h1]r;h ahkh&Xcelery.serializationr<r=}r>bh0]h.]h/]h3]r?h ahpXcreate_exception_clsr@hqUhruh5Nh6hh]rA(h})rB}rC(h#Xcelery.serialization.h$j8h%hgh*hh,}rD(h.]h/]h0]h1]h3]uh5Nh6hh]rEh?Xcelery.serialization.rFrG}rH(h#Uh$jBubaubh)rI}rJ(h#j@h$j8h%hgh*hh,}rK(h.]h/]h0]h1]h3]uh5Nh6hh]rLh?Xcreate_exception_clsrMrN}rO(h#Uh$jIubaubh)rP}rQ(h#Uh$j8h%hgh*hh,}rR(h.]h/]h0]h1]h3]uh5Nh6hh]rS(h)rT}rU(h#Xnameh,}rV(h.]h/]h0]h1]h3]uh$jPh]rWh?XnamerXrY}rZ(h#Uh$jTubah*hubh)r[}r\(h#Xmoduleh,}r](h.]h/]h0]h1]h3]uh$jPh]r^h?Xmoduler_r`}ra(h#Uh$j[ubah*hubh)rb}rc(h#X parent=Noneh,}rd(h.]h/]h0]h1]h3]uh$jPh]reh?X parent=Nonerfrg}rh(h#Uh$jbubah*hubeubeubh)ri}rj(h#Uh$j3h%hgh*hh,}rk(h.]h/]h0]h1]h3]uh5Nh6hh]rlh)rm}rn(h#X&Dynamically create an exception class.roh$jih%j/h*hh,}rp(h.]h/]h0]h1]h3]uh5Kh6hh]rqh?X&Dynamically create an exception class.rrrs}rt(h#joh$jmubaubaubeubhK)ru}rv(h#Uh$h!h%X/var/build/user_builds/celery/checkouts/2.1-archived/celery/serialization.py:docstring of celery.serialization.find_nearest_pickleable_exceptionrwh*hNh,}rx(h1]h0]h.]h/]h3]Uentries]ry(hQXDfind_nearest_pickleable_exception() (in module celery.serialization)hUtrzauh5Nh6hh]ubhY)r{}r|(h#Uh$h!h%jwh*h\h,}r}(h^h_Xpyh1]h0]h.]h/]h3]h`Xfunctionr~hbj~uh5Nh6hh]r(hd)r}r(h#X&find_nearest_pickleable_exception(exc)rh$j{h%hgh*hhh,}r(h1]rhahkh&Xcelery.serializationrr}rbh0]h.]h/]h3]rhahpX!find_nearest_pickleable_exceptionrhqUhruh5Nh6hh]r(h})r}r(h#Xcelery.serialization.h$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xcelery.serialization.rr}r(h#Uh$jubaubh)r}r(h#jh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?X!find_nearest_pickleable_exceptionrr}r(h#Uh$jubaubh)r}r(h#Uh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh)r}r(h#Xexch,}r(h.]h/]h0]h1]h3]uh$jh]rh?Xexcrr}r(h#Uh$jubah*hubaubeubh)r}r(h#Uh$j{h%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]r(h)r}r(h#X3With an exception instance, iterate over its super classes (by mro) and find the first super exception that is pickleable. It does not go below :exc:`Exception` (i.e. it skips :exc:`Exception`, :class:`BaseException` and :class:`object`). If that happens you should use :exc:`UnpickleableException` instead.h$jh%jwh*hh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]r(h?XWith an exception instance, iterate over its super classes (by mro) and find the first super exception that is pickleable. It does not go below rr}r(h#XWith an exception instance, iterate over its super classes (by mro) and find the first super exception that is pickleable. It does not go below h$jubh)r}r(h#X:exc:`Exception`rh$jh%Nh*hh,}r(UreftypeXexchhX ExceptionU refdomainXpyrh1]h0]U refexplicith.]h/]h3]hhhNhjuh5Nh]rj)r}r(h#jh,}r(h.]h/]r(jjXpy-excreh0]h1]h3]uh$jh]rh?X Exceptionrr}r(h#Uh$jubah*j ubaubh?X (i.e. it skips rr}r(h#X (i.e. it skips h$jubh)r}r(h#X:exc:`Exception`rh$jh%Nh*hh,}r(UreftypeXexchhX ExceptionU refdomainXpyrh1]h0]U refexplicith.]h/]h3]hhhNhjuh5Nh]rj)r}r(h#jh,}r(h.]h/]r(jjXpy-excreh0]h1]h3]uh$jh]rh?X Exceptionrr}r(h#Uh$jubah*j ubaubh?X, rr}r(h#X, h$jubh)r}r(h#X:class:`BaseException`rh$jh%Nh*hh,}r(UreftypeXclasshhX BaseExceptionU refdomainXpyrh1]h0]U refexplicith.]h/]h3]hhhNhjuh5Nh]rj)r}r(h#jh,}r(h.]h/]r(jjXpy-classreh0]h1]h3]uh$jh]rh?X BaseExceptionrr}r(h#Uh$jubah*j ubaubh?X and rr}r(h#X and h$jubh)r}r(h#X:class:`object`rh$jh%Nh*hh,}r(UreftypeXclasshhXobjectU refdomainXpyrh1]h0]U refexplicith.]h/]h3]hhhNhjuh5Nh]rj)r}r(h#jh,}r(h.]h/]r(jjXpy-classreh0]h1]h3]uh$jh]rh?Xobjectrr}r(h#Uh$jubah*j ubaubh?X"). If that happens you should use rr}r(h#X"). If that happens you should use h$jubh)r}r(h#X:exc:`UnpickleableException`rh$jh%Nh*hh,}r(UreftypeXexchhXUnpickleableExceptionU refdomainXpyrh1]h0]U refexplicith.]h/]h3]hhhNhjuh5Nh]rj)r}r(h#jh,}r(h.]h/]r(jjXpy-excreh0]h1]h3]uh$jh]rh?XUnpickleableExceptionrr}r(h#Uh$jubah*j ubaubh?X instead.rr}r(h#X instead.h$jubeubh)r }r (h#Uh$jh%jwh*hh,}r (h.]h/]h0]h1]h3]uh5Nh6hh]r (h)r }r(h#Uh,}r(h.]h/]h0]h1]h3]uh$j h]r(h)r}r(h#Uh,}r(h.]h/]h0]h1]h3]uh$j h]rh?X Parametersrr}r(h#Uh$jubah*hubh)r}r(h#Uh,}r(h.]h/]h0]h1]h3]uh$j h]rh)r}r(h#Uh,}r(h.]h/]h0]h1]h3]uh$jh]r(h)r }r!(h#Xexch,}r"(h.]h/]h0]h1]h3]uh$jh]r#h?Xexcr$r%}r&(h#Uh$j ubah*hubh?X -- r'r(}r)(h#Uh$jubh?XAn exception instance.r*r+}r,(h#XAn exception instance.r-h$jubeh*hubah*j\ubeh*j]ubh)r.}r/(h#Uh,}r0(h.]h/]h0]h1]h3]uh$j h]r1(h)r2}r3(h#Uh,}r4(h.]h/]h0]h1]h3]uh$j.h]r5h?XReturnsr6r7}r8(h#Uh$j2ubah*hubh)r9}r:(h#Uh,}r;(h.]h/]h0]h1]h3]uh$j.h]r<h)r=}r>(h#Uh,}r?(h.]h/]h0]h1]h3]uh$j9h]r@(h?X"the nearest exception if it's not rArB}rC(h#X"the nearest exception if it's not h$j=ubh)rD}rE(h#X:exc:`Exception`rFh$j=h%Nh*hh,}rG(UreftypeXexchhX ExceptionU refdomainXpyrHh1]h0]U refexplicith.]h/]h3]hhhNhjuh5Nh]rIj)rJ}rK(h#jFh,}rL(h.]h/]rM(jjHXpy-excrNeh0]h1]h3]uh$jDh]rOh?X ExceptionrPrQ}rR(h#Uh$jJubah*j ubaubh?X or below, if it is it returns rSrT}rU(h#X or below, if it is it returns h$j=ubh)rV}rW(h#X :const:`None`rXh$j=h%Nh*hh,}rY(UreftypeXconsthhXNoneU refdomainXpyrZh1]h0]U refexplicith.]h/]h3]hhhNhjuh5Nh]r[j)r\}r](h#jXh,}r^(h.]h/]r_(jjZXpy-constr`eh0]h1]h3]uh$jVh]rah?XNonerbrc}rd(h#Uh$j\ubah*j ubaubh?X.re}rf(h#X.h$j=ubeh*hubah*j\ubeh*j]ubeubh)rg}rh(h#X:rtype :exc:`Exception`:rih$jh%jwh*hh,}rj(h.]h/]h0]h1]h3]uh5K h6hh]rk(h?X:rtype rlrm}rn(h#X:rtype h$jgubh)ro}rp(h#X:exc:`Exception`rqh$jgh%Nh*hh,}rr(UreftypeXexchhX ExceptionU refdomainXpyrsh1]h0]U refexplicith.]h/]h3]hhhNhjuh5Nh]rtj)ru}rv(h#jqh,}rw(h.]h/]rx(jjsXpy-excryeh0]h1]h3]uh$joh]rzh?X Exceptionr{r|}r}(h#Uh$juubah*j ubaubh?X:r~}r(h#X:h$jgubeubeubeubhK)r}r(h#Uh$h!h%X/var/build/user_builds/celery/checkouts/2.1-archived/celery/serialization.py:docstring of celery.serialization.get_pickleable_exceptionrh*hNh,}r(h1]h0]h.]h/]h3]Uentries]r(hQX;get_pickleable_exception() (in module celery.serialization)hUtrauh5Nh6hh]ubhY)r}r(h#Uh$h!h%jh*h\h,}r(h^h_Xpyh1]h0]h.]h/]h3]h`Xfunctionrhbjuh5Nh6hh]r(hd)r}r(h#Xget_pickleable_exception(exc)h$jh%hgh*hhh,}r(h1]rhahkh&Xcelery.serializationrr}rbh0]h.]h/]h3]rhahpXget_pickleable_exceptionrhqUhruh5Nh6hh]r(h})r}r(h#Xcelery.serialization.h$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xcelery.serialization.rr}r(h#Uh$jubaubh)r}r(h#jh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xget_pickleable_exceptionrr}r(h#Uh$jubaubh)r}r(h#Uh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh)r}r(h#Xexch,}r(h.]h/]h0]h1]h3]uh$jh]rh?Xexcrr}r(h#Uh$jubah*hubaubeubh)r}r(h#Uh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh)r}r(h#X"Make sure exception is pickleable.rh$jh%jh*hh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh?X"Make sure exception is pickleable.rr}r(h#jh$jubaubaubeubhK)r}r(h#Uh$h!h%X/var/build/user_builds/celery/checkouts/2.1-archived/celery/serialization.py:docstring of celery.serialization.get_pickled_exceptionrh*hNh,}r(h1]h0]h.]h/]h3]Uentries]r(hQX8get_pickled_exception() (in module celery.serialization)hUtrauh5Nh6hh]ubhY)r}r(h#Uh$h!h%jh*h\h,}r(h^h_Xpyh1]h0]h.]h/]h3]h`Xfunctionrhbjuh5Nh6hh]r(hd)r}r(h#Xget_pickled_exception(exc)h$jh%hgh*hhh,}r(h1]rhahkh&Xcelery.serializationrr}rbh0]h.]h/]h3]rhahpXget_pickled_exceptionrhqUhruh5Nh6hh]r(h})r}r(h#Xcelery.serialization.h$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xcelery.serialization.rr}r(h#Uh$jubaubh)r}r(h#jh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xget_pickled_exceptionrr}r(h#Uh$jubaubh)r}r(h#Uh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh)r}r(h#Xexch,}r(h.]h/]h0]h1]h3]uh$jh]rh?Xexcrr}r(h#Uh$jubah*hubaubeubh)r}r(h#Uh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh)r}r(h#XUGet original exception from exception pickled using :meth:`get_pickleable_exception`.h$jh%jh*hh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]r(h?X4Get original exception from exception pickled using rr}r(h#X4Get original exception from exception pickled using h$jubh)r}r(h#X :meth:`get_pickleable_exception`rh$jh%Nh*hh,}r(UreftypeXmethhhXget_pickleable_exceptionU refdomainXpyrh1]h0]U refexplicith.]h/]h3]hhhNhjuh5Nh]rj)r}r(h#jh,}r(h.]h/]r(jjXpy-methreh0]h1]h3]uh$jh]rh?Xget_pickleable_exception()rr}r(h#Uh$jubah*j ubaubh?X.r}r(h#X.h$jubeubaubeubhK)r}r(h#Uh$h!h%Nh*hNh,}r(h1]h0]h.]h/]h3]Uentries]r(hQX5subclass_exception() (in module celery.serialization)h Utrauh5Nh6hh]ubhY)r }r (h#Uh$h!h%Nh*h\h,}r (h^h_Xpyh1]h0]h.]h/]h3]h`Xfunctionr hbj uh5Nh6hh]r (hd)r}r(h#X(subclass_exception(name, parent, module)h$j h%hgh*hhh,}r(h1]rh ahkh&Xcelery.serializationrr}rbh0]h.]h/]h3]rh ahpXsubclass_exceptionrhqUhruh5Nh6hh]r(h})r}r(h#Xcelery.serialization.h$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xcelery.serialization.rr}r(h#Uh$jubaubh)r}r (h#jh$jh%hgh*hh,}r!(h.]h/]h0]h1]h3]uh5Nh6hh]r"h?Xsubclass_exceptionr#r$}r%(h#Uh$jubaubh)r&}r'(h#Uh$jh%hgh*hh,}r((h.]h/]h0]h1]h3]uh5Nh6hh]r)(h)r*}r+(h#Xnameh,}r,(h.]h/]h0]h1]h3]uh$j&h]r-h?Xnamer.r/}r0(h#Uh$j*ubah*hubh)r1}r2(h#Xparenth,}r3(h.]h/]h0]h1]h3]uh$j&h]r4h?Xparentr5r6}r7(h#Uh$j1ubah*hubh)r8}r9(h#Xmoduleh,}r:(h.]h/]h0]h1]h3]uh$j&h]r;h?Xmoduler<r=}r>(h#Uh$j8ubah*hubeubeubh)r?}r@(h#Uh$j h%hgh*hh,}rA(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubeubah#UU transformerrBNU footnote_refsrC}rDUrefnamesrE}rFUsymbol_footnotesrG]rHUautofootnote_refsrI]rJUsymbol_footnote_refsrK]rLU citationsrM]rNh6hU current_linerONUtransform_messagesrP]rQcdocutils.nodes system_message rR)rS}rT(h#Uh,}rU(h.]UlevelKh1]h0]UsourcehFh/]h3]UlineKUtypeUINFOrVuh]rWh)rX}rY(h#Uh,}rZ(h.]h/]h0]h1]h3]uh$jSh]r[h?XAHyperlink target "module-celery.serialization" is not referenced.r\r]}r^(h#Uh$jXubah*hubah*Usystem_messager_ubaUreporterr`NUid_startraKU autofootnotesrb]rcU citation_refsrd}reUindirect_targetsrf]rgUsettingsrh(cdocutils.frontend Values riorj}rk(Ufootnote_backlinksrlKUrecord_dependenciesrmNU rfc_base_urlrnUhttp://tools.ietf.org/html/roU tracebackrpUpep_referencesrqNUstrip_commentsrrNU toc_backlinksrsUentryrtU language_coderuUenrvU datestamprwNU report_levelrxKU _destinationryNU halt_levelrzKU strip_classesr{Nh}q?(hUhhhU q@h$UtargetqAh&}qB(h(]h+]qCXmodule-celery.events.dumperqDah*]Uismodh)]h-]uh/Kh0hh]ubcsphinx.addnodes index qE)qF}qG(hUhhhh@h$UindexqHh&}qI(h+]h*]h(]h)]h-]Uentries]qJ(UsingleqKXcelery.events.dumper (module)Xmodule-celery.events.dumperUtqLauh/Kh0hh]ubhE)qM}qN(hUhhhNh$hHh&}qO(h+]h*]h(]h)]h-]Uentries]qP(hKX&Dumper (class in celery.events.dumper)hUtqQauh/Nh0hh]ubcsphinx.addnodes desc qR)qS}qT(hUhhhNh$UdescqUh&}qV(UnoindexqWUdomainqXXpyh+]h*]h(]h)]h-]UobjtypeqYXclassqZUdesctypeq[hZuh/Nh0hh]q\(csphinx.addnodes desc_signature q])q^}q_(hXDumperq`hhShU qah$Udesc_signatureqbh&}qc(h+]qdhaUmoduleqeh Xcelery.events.dumperqfqg}qhbh*]h(]h)]h-]qihaUfullnameqjh`UclassqkUUfirstqluh/Nh0hh]qm(csphinx.addnodes desc_annotation qn)qo}qp(hXclass hh^hhah$Udesc_annotationqqh&}qr(h(]h)]h*]h+]h-]uh/Nh0hh]qsh9Xclass qtqu}qv(hUhhoubaubcsphinx.addnodes desc_addname qw)qx}qy(hXcelery.events.dumper.hh^hhah$U desc_addnameqzh&}q{(h(]h)]h*]h+]h-]uh/Nh0hh]q|h9Xcelery.events.dumper.q}q~}q(hUhhxubaubcsphinx.addnodes desc_name q)q}q(hh`hh^hhah$U desc_nameqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9XDumperqq}q(hUhhubaubeubcsphinx.addnodes desc_content q)q}q(hUhhShhah$U desc_contentqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]q(hE)q}q(hUhhhNh$hHh&}q(h+]h*]h(]h)]h-]Uentries]q(hKX8format_task_event() (celery.events.dumper.Dumper method)h Utqauh/Nh0hh]ubhR)q}q(hUhhhNh$hUh&}q(hWhXXpyh+]h*]h(]h)]h-]hYXmethodqh[huh/Nh0hh]q(h])q}q(hX@Dumper.format_task_event(hostname, timestamp, type, task, event)hhhhah$hbh&}q(h+]qh aheh Xcelery.events.dumperqq}qbh*]h(]h)]h-]qh ahjXDumper.format_task_eventhkh`hluh/Nh0hh]q(h)q}q(hXformat_task_eventhhhhah$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9Xformat_task_eventqq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhhhhah$Udesc_parameterlistqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]q(csphinx.addnodes desc_parameter q)q}q(hXhostnameh&}q(h(]h)]h*]h+]h-]uhhh]qh9Xhostnameqq}q(hUhhubah$Udesc_parameterqubh)q}q(hX timestamph&}q(h(]h)]h*]h+]h-]uhhh]qh9X timestampqq}q(hUhhubah$hubh)q}q(hXtypeh&}q(h(]h)]h*]h+]h-]uhhh]qh9XtypeqÅq}q(hUhhubah$hubh)q}q(hXtaskh&}q(h(]h)]h*]h+]h-]uhhh]qh9Xtaskqʅq}q(hUhhubah$hubh)q}q(hXeventh&}q(h(]h)]h*]h+]h-]uhhh]qh9Xeventqхq}q(hUhhubah$hubeubeubh)q}q(hUhhhhah$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubhE)q}q(hUhhhNh$hHh&}q(h+]h*]h(]h)]h-]Uentries]q(hKX/on_event() (celery.events.dumper.Dumper method)hUtqauh/Nh0hh]ubhR)q}q(hUhhhNh$hUh&}q(hWhXXpyh+]h*]h(]h)]h-]hYXmethodqh[huh/Nh0hh]q(h])q}q(hXDumper.on_event(event)qhhhhah$hbh&}q(h+]qhaheh Xcelery.events.dumperq慁q}qbh*]h(]h)]h-]qhahjXDumper.on_eventhkh`hluh/Nh0hh]q(h)q}q(hXon_eventhhhhah$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9Xon_eventqq}q(hUhhubaubh)q}q(hUhhhhah$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh)q}q(hXeventh&}q(h(]h)]h*]h+]h-]uhhh]qh9Xeventqq}q(hUhhubah$hubaubeubh)q}q(hUhhhhah$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubeubeubhE)r}r(hUhhhNh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(hKX)evdump() (in module celery.events.dumper)h Utrauh/Nh0hh]ubhR)r}r(hUhhhNh$hUh&}r(hWhXXpyh+]h*]h(]h)]h-]hYXfunctionrh[juh/Nh0hh]r (h])r }r (hXevdump()hjhhah$hbh&}r (h+]r h aheh Xcelery.events.dumperrr}rbh*]h(]h)]h-]rh ahjXevdumprhkUhluh/Nh0hh]r(hw)r}r(hXcelery.events.dumper.hj hhah$hzh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9Xcelery.events.dumper.rr}r(hUhjubaubh)r}r(hjhj hhah$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9Xevdumprr }r!(hUhjubaubh)r"}r#(hUhj hhah$hh&}r$(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubh)r%}r&(hUhjhhah$hh&}r'(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubhE)r(}r)(hUhhhNh$hHh&}r*(h+]h*]h(]h)]h-]Uentries]r+(hKX0humanize_type() (in module celery.events.dumper)hUtr,auh/Nh0hh]ubhR)r-}r.(hUhhhNh$hUh&}r/(hWhXXpyh+]h*]h(]h)]h-]hYXfunctionr0h[j0uh/Nh0hh]r1(h])r2}r3(hXhumanize_type(type)r4hj-hhah$hbh&}r5(h+]r6haheh Xcelery.events.dumperr7r8}r9bh*]h(]h)]h-]r:hahjX humanize_typer;hkUhluh/Nh0hh]r<(hw)r=}r>(hXcelery.events.dumper.hj2hhah$hzh&}r?(h(]h)]h*]h+]h-]uh/Nh0hh]r@h9Xcelery.events.dumper.rArB}rC(hUhj=ubaubh)rD}rE(hj;hj2hhah$hh&}rF(h(]h)]h*]h+]h-]uh/Nh0hh]rGh9X humanize_typerHrI}rJ(hUhjDubaubh)rK}rL(hUhj2hhah$hh&}rM(h(]h)]h*]h+]h-]uh/Nh0hh]rNh)rO}rP(hXtypeh&}rQ(h(]h)]h*]h+]h-]uhjKh]rRh9XtyperSrT}rU(hUhjOubah$hubaubeubh)rV}rW(hUhj-hhah$hh&}rX(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubeubahUU transformerrYNU footnote_refsrZ}r[Urefnamesr\}r]Usymbol_footnotesr^]r_Uautofootnote_refsr`]raUsymbol_footnote_refsrb]rcU citationsrd]reh0hU current_linerfNUtransform_messagesrg]rhcdocutils.nodes system_message ri)rj}rk(hUh&}rl(h(]UlevelKh+]h*]Usourceh@h)]h-]UlineKUtypeUINFOrmuh]rncdocutils.nodes paragraph ro)rp}rq(hUh&}rr(h(]h)]h*]h+]h-]uhjjh]rsh9XAHyperlink target "module-celery.events.dumper" is not referenced.rtru}rv(hUhjpubah$U paragraphrwubah$Usystem_messagerxubaUreporterryNUid_startrzKU autofootnotesr{]r|U citation_refsr}}r~Uindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh6NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUf/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.events.dumper.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hj2hh^hhh j h hhhhcdocutils.nodes topic r)r}r(hUhhhh"h$Utopicrh&}r(h(]h)]r(UcontentsrUlocalreh*]h+]rhah-]rh auh/Kh0hh]rcdocutils.nodes pending r)r}r(hX.. contents:: :local:hjU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh$Upendingrh&}r(h(]h)]h*]h+]h-]uh]ubaubhDh>uUsubstitution_namesr}rh$h0h&}r(h(]h+]h*]Usourceh"h)]h-]uU footnotesr]rUrefidsr}rub.PKYDDN6 6 Ncelery-2.1-archived/.doctrees/internals/reference/celery.backends.base.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X-celery.backends.base.KeyValueStoreBackend.getqX celery.backends.base.BaseBackendqX0celery.backends.base.KeyValueStoreBackend.deleteqX1celery.backends.base.BaseDictBackend.store_resultq X+celery.backends.base.BaseBackend.get_resultq X)celery.backends.base.BaseBackend.wait_forq X.celery.backends.base.BaseBackend.encode_resultq X0celery.backends.base.BaseBackend.mark_as_revokedq X7celery.backends.base.BaseDictBackend.reload_task_resultqX-celery.backends.base.BaseBackend.mark_as_doneqX.celery.backends.base.BaseBackend.mark_as_retryqX/celery.backends.base.BaseBackend.UNREADY_STATESqX/celery.backends.base.BaseDictBackend.get_resultqUcontentsqNX(celery.backends.base.BaseBackend.cleanupqX-celery.backends.base.BaseBackend.READY_STATESqX-celery.backends.base.KeyValueStoreBackend.setqX'celery.backends.base.BaseBackend.forgetqX2celery.backends.base.BaseDictBackend.get_tracebackqX2celery.backends.base.BaseBackend.prepare_exceptionqX:celery.backends.base.BaseDictBackend.reload_taskset_resultqX0celery.backends.base.BaseBackend.process_cleanupqX.celery.backends.base.BaseBackend.get_tracebackqX5celery.backends.base.BaseDictBackend.get_taskset_metaqX-celery.backends.base.BaseBackend.TimeoutErrorqX1celery.backends.base.BaseBackend.EXCEPTION_STATESqX3celery.backends.base.BaseBackend.reload_task_resultq X/celery.backends.base.BaseDictBackend.get_statusq!X)celery.backends.base.KeyValueStoreBackendq"X-celery.backends.base.BaseBackend.store_resultq#X2celery.backends.base.BaseDictBackend.get_task_metaq$X=celery.backends.base.KeyValueStoreBackend.get_key_for_tasksetq%X:celery.backends.base.KeyValueStoreBackend.get_key_for_taskq&X+celery.backends.base.BaseBackend.get_statusq'X$celery.backends.base.BaseDictBackendq(X6celery.backends.base.BaseBackend.reload_taskset_resultq)X0celery.backends.base.BaseBackend.mark_as_failureq*X4celery.backends.base.BaseDictBackend.restore_tasksetq+X0celery.backends.base.BaseBackend.restore_tasksetq,X$backend: base - celery.backends.baseq-NX4celery.backends.base.BaseBackend.exception_to_pythonq.X.celery.backends.base.BaseBackend.prepare_valueq/X1celery.backends.base.BaseDictBackend.save_tasksetq0X+celery.backends.base.BaseDictBackend.forgetq1X-celery.backends.base.BaseBackend.save_tasksetq2X0celery.backends.base.BaseBackend.mark_as_startedq3uUsubstitution_defsq4}q5Uparse_messagesq6]q7Ucurrent_sourceq8NU decorationq9NUautofootnote_startq:KUnameidsq;}q<(hhhhhhh h h h h h h h h h hhhhhhhhhhhUcontentsq=hhhhhhhhhhhhhhhhhhhhhhhhh h h!h!h"h"h#h#h$h$h%h%h&h&h'h'h(h(h)h)h*h*h+h+h,h,h-U!backend-base-celery-backends-baseq>h.h.h/h/h0h0h1h1h2h2h3h3uUchildrenq?]q@cdocutils.nodes section qA)qB}qC(U rawsourceqDUUparentqEhUsourceqFcdocutils.nodes reprunicode qGXf/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.base.rstqHqI}qJbUtagnameqKUsectionqLU attributesqM}qN(UdupnamesqO]UclassesqP]UbackrefsqQ]UidsqR]qSh>aUnamesqT]qUh-auUlineqVKUdocumentqWhh?]qX(cdocutils.nodes title qY)qZ}q[(hDX$Backend: Base - celery.backends.baseq\hEhBhFhIhKUtitleq]hM}q^(hO]hP]hQ]hR]hT]uhVKhWhh?]q_cdocutils.nodes Text q`X$Backend: Base - celery.backends.baseqaqb}qc(hDh\hEhZubaubcdocutils.nodes target qd)qe}qf(hDUhEhBhFU qghKUtargetqhhM}qi(hO]hR]qjXmodule-celery.backends.baseqkahQ]UismodhP]hT]uhVKhWhh?]ubcsphinx.addnodes index ql)qm}qn(hDUhEhBhFhghKUindexqohM}qp(hR]hQ]hO]hP]hT]Uentries]qq(UsingleqrXcelery.backends.base (module)Xmodule-celery.backends.baseUtqsauhVKhWhh?]ubcdocutils.nodes paragraph qt)qu}qv(hDXcelery.backends.baseqwhEhBhFXn/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.baseqxhKU paragraphqyhM}qz(hO]hP]hQ]hR]hT]uhVKhWhh?]q{h`Xcelery.backends.baseq|q}}q~(hDhwhEhuubaubhl)q}q(hDUhEhBhFNhKhohM}q(hR]hQ]hO]hP]hT]Uentries]q(hrX+BaseBackend (class in celery.backends.base)hUtqauhVNhWhh?]ubcsphinx.addnodes desc q)q}q(hDUhEhBhFNhKUdescqhM}q(UnoindexqUdomainqXpyhR]hQ]hO]hP]hT]UobjtypeqXclassqUdesctypeqhuhVNhWhh?]q(csphinx.addnodes desc_signature q)q}q(hDXBaseBackend(*args, **kwargs)hEhhFU qhKUdesc_signatureqhM}q(hR]qhaUmoduleqhGXcelery.backends.baseqq}qbhQ]hO]hP]hT]qhaUfullnameqX BaseBackendqUclassqUUfirstquhVNhWhh?]q(csphinx.addnodes desc_annotation q)q}q(hDXclass hEhhFhhKUdesc_annotationqhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]qh`Xclass qq}q(hDUhEhubaubcsphinx.addnodes desc_addname q)q}q(hDXcelery.backends.base.hEhhFhhKU desc_addnameqhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]qh`Xcelery.backends.base.qq}q(hDUhEhubaubcsphinx.addnodes desc_name q)q}q(hDhhEhhFhhKU desc_nameqhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]qh`X BaseBackendqq}q(hDUhEhubaubcsphinx.addnodes desc_parameterlist q)q}q(hDUhEhhFhhKUdesc_parameterlistqhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]q(csphinx.addnodes desc_parameter q)q}q(hDX*argshM}q(hO]hP]hQ]hR]hT]uhEhh?]qh`X*argsqƅq}q(hDUhEhubahKUdesc_parameterqubh)q}q(hDX**kwargshM}q(hO]hP]hQ]hR]hT]uhEhh?]qh`X**kwargsq΅q}q(hDUhEhubahKhubeubeubcsphinx.addnodes desc_content q)q}q(hDUhEhhFhhKU desc_contentqhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]q(ht)q}q(hDX>The base backend class. All backends should inherit from this.qhEhhFXz/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackendqhKhyhM}q(hO]hP]hQ]hR]hT]uhVKhWhh?]qh`X>The base backend class. All backends should inherit from this.q݅q}q(hDhhEhubaubhl)q}q(hDUhEhhFNhKhohM}q(hR]hQ]hO]hP]hT]Uentries]q(hrX=EXCEPTION_STATES (celery.backends.base.BaseBackend attribute)hUtqauhVNhWhh?]ubh)q}q(hDUhEhhFNhKhhM}q(hhXpyhR]hQ]hO]hP]hT]hX attributeqhhuhVNhWhh?]q(h)q}q(hDXBaseBackend.EXCEPTION_STATEShEhhFU qhKhhM}q(hR]qhahhGXcelery.backends.baseqq}qbhQ]hO]hP]hT]qhahXBaseBackend.EXCEPTION_STATEShhhuhVNhWhh?]q(h)q}q(hDXEXCEPTION_STATEShEhhFhhKhhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]qh`XEXCEPTION_STATESqq}q(hDUhEhubaubh)q}q(hDX- = frozenset(['FAILURE', 'RETRY', 'REVOKED'])hEhhFhhKhhM}q(hO]hP]hQ]hR]hT]uhVNhWhh?]qh`X- = frozenset(['FAILURE', 'RETRY', 'REVOKED'])qr}r(hDUhEhubaubeubh)r}r(hDUhEhhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEhhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX9READY_STATES (celery.backends.base.BaseBackend attribute)hUtr auhVNhWhh?]ubh)r }r (hDUhEhhFNhKhhM}r (hhXpyhR]hQ]hO]hP]hT]hX attributer hj uhVNhWhh?]r(h)r}r(hDXBaseBackend.READY_STATEShEj hFhhKhhM}r(hR]rhahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rhahXBaseBackend.READY_STATEShhhuhVNhWhh?]r(h)r}r(hDX READY_STATEShEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X READY_STATESrr}r(hDUhEjubaubh)r}r (hDX/ = frozenset(['FAILURE', 'REVOKED', 'SUCCESS'])hEjhFhhKhhM}r!(hO]hP]hQ]hR]hT]uhVNhWhh?]r"h`X/ = frozenset(['FAILURE', 'REVOKED', 'SUCCESS'])r#r$}r%(hDUhEjubaubeubh)r&}r'(hDUhEj hFhhKhhM}r((hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r)}r*(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.TimeoutErrorr+hKhohM}r,(hR]hQ]hO]hP]hT]Uentries]r-(hrXBaseBackend.TimeoutErrorr.hUtr/auhVNhWhh?]ubh)r0}r1(hDUhEhhFj+hKhhM}r2(hhXpyhR]hQ]hO]hP]hT]hX exceptionr3hj3uhVNhWhh?]r4(h)r5}r6(hDXBaseBackend.TimeoutErrorhEj0hFhhKhhM}r7(hR]r8hahhGXcelery.backends.baser9r:}r;bhQ]hO]hP]hT]r<hahj.hhhuhVNhWhh?]r=(h)r>}r?(hDX exception hEj5hFhhKhhM}r@(hO]hP]hQ]hR]hT]uhVNhWhh?]rAh`X exception rBrC}rD(hDUhEj>ubaubh)rE}rF(hDX TimeoutErrorhEj5hFhhKhhM}rG(hO]hP]hQ]hR]hT]uhVNhWhh?]rHh`X TimeoutErrorrIrJ}rK(hDUhEjEubaubeubh)rL}rM(hDUhEj0hFhhKhhM}rN(hO]hP]hQ]hR]hT]uhVNhWhh?]rOht)rP}rQ(hDXThe operation timed out.rRhEjLhFj+hKhyhM}rS(hO]hP]hQ]hR]hT]uhVKhWhh?]rTh`XThe operation timed out.rUrV}rW(hDjRhEjPubaubaubeubhl)rX}rY(hDUhEhhFNhKhohM}rZ(hR]hQ]hO]hP]hT]Uentries]r[(hrX;UNREADY_STATES (celery.backends.base.BaseBackend attribute)hUtr\auhVNhWhh?]ubh)r]}r^(hDUhEhhFNhKhhM}r_(hhXpyhR]hQ]hO]hP]hT]hX attributer`hj`uhVNhWhh?]ra(h)rb}rc(hDXBaseBackend.UNREADY_STATEShEj]hFhhKhhM}rd(hR]rehahhGXcelery.backends.baserfrg}rhbhQ]hO]hP]hT]rihahXBaseBackend.UNREADY_STATEShX BaseBackendhuhVNhWhh?]rj(h)rk}rl(hDX BaseBackend.hEjbhFhhKhhM}rm(hO]hP]hQ]hR]hT]uhVNhWhh?]rnh`X BaseBackend.rorp}rq(hDUhEjkubaubh)rr}rs(hDXUNREADY_STATEShEjbhFhhKhhM}rt(hO]hP]hQ]hR]hT]uhVNhWhh?]ruh`XUNREADY_STATESrvrw}rx(hDUhEjrubaubh)ry}rz(hDX9 = frozenset(['STARTED', 'RECEIVED', 'RETRY', 'PENDING'])hEjbhFhhKhhM}r{(hO]hP]hQ]hR]hT]uhVNhWhh?]r|h`X9 = frozenset(['STARTED', 'RECEIVED', 'RETRY', 'PENDING'])r}r~}r(hDUhEjyubaubeubh)r}r(hDUhEj]hFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.cleanuprhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX3cleanup() (celery.backends.base.BaseBackend method)hUtrauhVNhWhh?]ubh)r}r(hDUhEhhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDXBaseBackend.cleanup()hEjhFhhKhhM}r(hR]rhahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rhahXBaseBackend.cleanuphX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDXcleanuphEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xcleanuprr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDXJBackend cleanup. Is run by :class:`celery.task.DeleteExpiredTaskMetaTask`.hEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]r(h`XBackend cleanup. Is run by rr}r(hDXBackend cleanup. Is run by hEjubcsphinx.addnodes pending_xref r)r}r(hDX.:class:`celery.task.DeleteExpiredTaskMetaTask`rhEjhFNhKU pending_xrefrhM}r(UreftypeXclassUrefwarnrU reftargetrX%celery.task.DeleteExpiredTaskMetaTaskU refdomainXpyrhR]hQ]U refexplicithO]hP]hT]UrefdocrX(internals/reference/celery.backends.baserUpy:classrX BaseBackendU py:modulerXcelery.backends.baseruhVNh?]rcdocutils.nodes literal r)r}r(hDjhM}r(hO]hP]r(UxrefrjXpy-classrehQ]hR]hT]uhEjh?]rh`X%celery.task.DeleteExpiredTaskMetaTaskrr}r(hDUhEjubahKUliteralrubaubh`X.r}r(hDX.hEjubeubaubeubhl)r}r(hDUhEhhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX9encode_result() (celery.backends.base.BaseBackend method)h UtrauhVNhWhh?]ubh)r}r(hDUhEhhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX)BaseBackend.encode_result(result, status)hEjhFhhKhhM}r(hR]rh ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh ahXBaseBackend.encode_resulthX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDX encode_resulthEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X encode_resultrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDXresulthM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xresultrr}r(hDUhEjubahKhubh)r}r(hDXstatushM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xstatusrr}r(hDUhEjubahKhubeubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.exception_to_pythonrhKhohM}r (hR]hQ]hO]hP]hT]Uentries]r (hrX?exception_to_python() (celery.backends.base.BaseBackend method)h.Utr auhVNhWhh?]ubh)r }r (hDUhEhhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX$BaseBackend.exception_to_python(exc)hEj hFhhKhhM}r(hR]rh.ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh.ahXBaseBackend.exception_to_pythonhX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r (hDUhEjubaubh)r!}r"(hDXexception_to_pythonhEjhFhhKhhM}r#(hO]hP]hQ]hR]hT]uhVNhWhh?]r$h`Xexception_to_pythonr%r&}r'(hDUhEj!ubaubh)r(}r)(hDUhEjhFhhKhhM}r*(hO]hP]hQ]hR]hT]uhVNhWhh?]r+h)r,}r-(hDXexchM}r.(hO]hP]hQ]hR]hT]uhEj(h?]r/h`Xexcr0r1}r2(hDUhEj,ubahKhubaubeubh)r3}r4(hDUhEj hFhhKhhM}r5(hO]hP]hQ]hR]hT]uhVNhWhh?]r6ht)r7}r8(hDX1Convert serialized exception to Python exception.r9hEj3hFjhKhyhM}r:(hO]hP]hQ]hR]hT]uhVKhWhh?]r;h`X1Convert serialized exception to Python exception.r<r=}r>(hDj9hEj7ubaubaubeubhl)r?}r@(hDUhEhhFNhKhohM}rA(hR]hQ]hO]hP]hT]Uentries]rB(hrX2forget() (celery.backends.base.BaseBackend method)hUtrCauhVNhWhh?]ubh)rD}rE(hDUhEhhFNhKhhM}rF(hhXpyhR]hQ]hO]hP]hT]hXmethodrGhjGuhVNhWhh?]rH(h)rI}rJ(hDXBaseBackend.forget(task_id)hEjDhFhhKhhM}rK(hR]rLhahhGXcelery.backends.baserMrN}rObhQ]hO]hP]hT]rPhahXBaseBackend.forgethX BaseBackendhuhVNhWhh?]rQ(h)rR}rS(hDX BaseBackend.hEjIhFhhKhhM}rT(hO]hP]hQ]hR]hT]uhVNhWhh?]rUh`X BaseBackend.rVrW}rX(hDUhEjRubaubh)rY}rZ(hDXforgethEjIhFhhKhhM}r[(hO]hP]hQ]hR]hT]uhVNhWhh?]r\h`Xforgetr]r^}r_(hDUhEjYubaubh)r`}ra(hDUhEjIhFhhKhhM}rb(hO]hP]hQ]hR]hT]uhVNhWhh?]rch)rd}re(hDXtask_idhM}rf(hO]hP]hQ]hR]hT]uhEj`h?]rgh`Xtask_idrhri}rj(hDUhEjdubahKhubaubeubh)rk}rl(hDUhEjDhFhhKhhM}rm(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)rn}ro(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.get_resultrphKhohM}rq(hR]hQ]hO]hP]hT]Uentries]rr(hrX6get_result() (celery.backends.base.BaseBackend method)h UtrsauhVNhWhh?]ubh)rt}ru(hDUhEhhFjphKhhM}rv(hhXpyhR]hQ]hO]hP]hT]hXmethodrwhjwuhVNhWhh?]rx(h)ry}rz(hDXBaseBackend.get_result(task_id)hEjthFhhKhhM}r{(hR]r|h ahhGXcelery.backends.baser}r~}rbhQ]hO]hP]hT]rh ahXBaseBackend.get_resulthX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjyhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDX get_resulthEjyhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X get_resultrr}r(hDUhEjubaubh)r}r(hDUhEjyhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r(hDXtask_idhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xtask_idrr}r(hDUhEjubahKhubaubeubh)r}r(hDUhEjthFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDXGet the result of a task.rhEjhFjphKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XGet the result of a task.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.get_statusrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX6get_status() (celery.backends.base.BaseBackend method)h'UtrauhVNhWhh?]ubh)r}r(hDUhEhhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDXBaseBackend.get_status(task_id)hEjhFhhKhhM}r(hR]rh'ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh'ahXBaseBackend.get_statushX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDX get_statushEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X get_statusrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r(hDXtask_idhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xtask_idrr}r(hDUhEjubahKhubaubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDXGet the status of a task.rhEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XGet the status of a task.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.get_tracebackrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX9get_traceback() (celery.backends.base.BaseBackend method)hUtrauhVNhWhh?]ubh)r}r(hDUhEhhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX"BaseBackend.get_traceback(task_id)hEjhFhhKhhM}r(hR]rhahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rhahXBaseBackend.get_tracebackhX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDX get_tracebackhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X get_tracebackrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r(hDXtask_idhM}r(hO]hP]hQ]hR]hT]uhEjh?]r h`Xtask_idr r }r (hDUhEjubahKhubaubeubh)r }r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDX$Get the traceback for a failed task.rhEj hFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X$Get the traceback for a failed task.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.mark_as_donerhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX8mark_as_done() (celery.backends.base.BaseBackend method)hUtrauhVNhWhh?]ubh)r}r (hDUhEhhFjhKhhM}r!(hhXpyhR]hQ]hO]hP]hT]hXmethodr"hj"uhVNhWhh?]r#(h)r$}r%(hDX)BaseBackend.mark_as_done(task_id, result)hEjhFhhKhhM}r&(hR]r'hahhGXcelery.backends.baser(r)}r*bhQ]hO]hP]hT]r+hahXBaseBackend.mark_as_donehX BaseBackendhuhVNhWhh?]r,(h)r-}r.(hDX BaseBackend.hEj$hFhhKhhM}r/(hO]hP]hQ]hR]hT]uhVNhWhh?]r0h`X BaseBackend.r1r2}r3(hDUhEj-ubaubh)r4}r5(hDX mark_as_donehEj$hFhhKhhM}r6(hO]hP]hQ]hR]hT]uhVNhWhh?]r7h`X mark_as_doner8r9}r:(hDUhEj4ubaubh)r;}r<(hDUhEj$hFhhKhhM}r=(hO]hP]hQ]hR]hT]uhVNhWhh?]r>(h)r?}r@(hDXtask_idhM}rA(hO]hP]hQ]hR]hT]uhEj;h?]rBh`Xtask_idrCrD}rE(hDUhEj?ubahKhubh)rF}rG(hDXresulthM}rH(hO]hP]hQ]hR]hT]uhEj;h?]rIh`XresultrJrK}rL(hDUhEjFubahKhubeubeubh)rM}rN(hDUhEjhFhhKhhM}rO(hO]hP]hQ]hR]hT]uhVNhWhh?]rPht)rQ}rR(hDX#Mark task as successfully executed.rShEjMhFjhKhyhM}rT(hO]hP]hQ]hR]hT]uhVKhWhh?]rUh`X#Mark task as successfully executed.rVrW}rX(hDjShEjQubaubaubeubhl)rY}rZ(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.mark_as_failurer[hKhohM}r\(hR]hQ]hO]hP]hT]Uentries]r](hrX;mark_as_failure() (celery.backends.base.BaseBackend method)h*Utr^auhVNhWhh?]ubh)r_}r`(hDUhEhhFj[hKhhM}ra(hhXpyhR]hQ]hO]hP]hT]hXmethodrbhjbuhVNhWhh?]rc(h)rd}re(hDX9BaseBackend.mark_as_failure(task_id, exc, traceback=None)hEj_hFhhKhhM}rf(hR]rgh*ahhGXcelery.backends.baserhri}rjbhQ]hO]hP]hT]rkh*ahXBaseBackend.mark_as_failurehX BaseBackendhuhVNhWhh?]rl(h)rm}rn(hDX BaseBackend.hEjdhFhhKhhM}ro(hO]hP]hQ]hR]hT]uhVNhWhh?]rph`X BaseBackend.rqrr}rs(hDUhEjmubaubh)rt}ru(hDXmark_as_failurehEjdhFhhKhhM}rv(hO]hP]hQ]hR]hT]uhVNhWhh?]rwh`Xmark_as_failurerxry}rz(hDUhEjtubaubh)r{}r|(hDUhEjdhFhhKhhM}r}(hO]hP]hQ]hR]hT]uhVNhWhh?]r~(h)r}r(hDXtask_idhM}r(hO]hP]hQ]hR]hT]uhEj{h?]rh`Xtask_idrr}r(hDUhEjubahKhubh)r}r(hDXexchM}r(hO]hP]hQ]hR]hT]uhEj{h?]rh`Xexcrr}r(hDUhEjubahKhubh)r}r(hDXtraceback=NonehM}r(hO]hP]hQ]hR]hT]uhEj{h?]rh`Xtraceback=Nonerr}r(hDUhEjubahKhubeubeubh)r}r(hDUhEj_hFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDX9Mark task as executed with failure. Stores the execption.rhEjhFj[hKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X9Mark task as executed with failure. Stores the execption.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.mark_as_retryrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX9mark_as_retry() (celery.backends.base.BaseBackend method)hUtrauhVNhWhh?]ubh)r}r(hDUhEhhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX7BaseBackend.mark_as_retry(task_id, exc, traceback=None)hEjhFhhKhhM}r(hR]rhahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rhahXBaseBackend.mark_as_retryhX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDX mark_as_retryhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X mark_as_retryrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDXtask_idhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xtask_idrr}r(hDUhEjubahKhubh)r}r(hDXexchM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xexcrr}r(hDUhEjubahKhubh)r}r(hDXtraceback=NonehM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xtraceback=Nonerr}r(hDUhEjubahKhubeubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDXBMark task as being retries. Stores the current exception (if any).rhEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XBMark task as being retries. Stores the current exception (if any).rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEhhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX;mark_as_revoked() (celery.backends.base.BaseBackend method)h UtrauhVNhWhh?]ubh)r}r(hDUhEhhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX$BaseBackend.mark_as_revoked(task_id)hEjhFhhKhhM}r(hR]rh ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh ahXBaseBackend.mark_as_revokedhX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDXmark_as_revokedhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xmark_as_revokedrr}r(hDUhEjubaubh)r}r (hDUhEjhFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h)r }r (hDXtask_idhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xtask_idrr}r(hDUhEj ubahKhubaubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.mark_as_startedrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX;mark_as_started() (celery.backends.base.BaseBackend method)h3UtrauhVNhWhh?]ubh)r}r(hDUhEhhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r (h)r!}r"(hDX,BaseBackend.mark_as_started(task_id, **meta)hEjhFhhKhhM}r#(hR]r$h3ahhGXcelery.backends.baser%r&}r'bhQ]hO]hP]hT]r(h3ahXBaseBackend.mark_as_startedhX BaseBackendhuhVNhWhh?]r)(h)r*}r+(hDX BaseBackend.hEj!hFhhKhhM}r,(hO]hP]hQ]hR]hT]uhVNhWhh?]r-h`X BaseBackend.r.r/}r0(hDUhEj*ubaubh)r1}r2(hDXmark_as_startedhEj!hFhhKhhM}r3(hO]hP]hQ]hR]hT]uhVNhWhh?]r4h`Xmark_as_startedr5r6}r7(hDUhEj1ubaubh)r8}r9(hDUhEj!hFhhKhhM}r:(hO]hP]hQ]hR]hT]uhVNhWhh?]r;(h)r<}r=(hDXtask_idhM}r>(hO]hP]hQ]hR]hT]uhEj8h?]r?h`Xtask_idr@rA}rB(hDUhEj<ubahKhubh)rC}rD(hDX**metahM}rE(hO]hP]hQ]hR]hT]uhEj8h?]rFh`X**metarGrH}rI(hDUhEjCubahKhubeubeubh)rJ}rK(hDUhEjhFhhKhhM}rL(hO]hP]hQ]hR]hT]uhVNhWhh?]rMht)rN}rO(hDXMark a task as startedrPhEjJhFjhKhyhM}rQ(hO]hP]hQ]hR]hT]uhVKhWhh?]rRh`XMark a task as startedrSrT}rU(hDjPhEjNubaubaubeubhl)rV}rW(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.prepare_exceptionrXhKhohM}rY(hR]hQ]hO]hP]hT]Uentries]rZ(hrX=prepare_exception() (celery.backends.base.BaseBackend method)hUtr[auhVNhWhh?]ubh)r\}r](hDUhEhhFjXhKhhM}r^(hhXpyhR]hQ]hO]hP]hT]hXmethodr_hj_uhVNhWhh?]r`(h)ra}rb(hDX"BaseBackend.prepare_exception(exc)hEj\hFhhKhhM}rc(hR]rdhahhGXcelery.backends.basererf}rgbhQ]hO]hP]hT]rhhahXBaseBackend.prepare_exceptionhX BaseBackendhuhVNhWhh?]ri(h)rj}rk(hDX BaseBackend.hEjahFhhKhhM}rl(hO]hP]hQ]hR]hT]uhVNhWhh?]rmh`X BaseBackend.rnro}rp(hDUhEjjubaubh)rq}rr(hDXprepare_exceptionhEjahFhhKhhM}rs(hO]hP]hQ]hR]hT]uhVNhWhh?]rth`Xprepare_exceptionrurv}rw(hDUhEjqubaubh)rx}ry(hDUhEjahFhhKhhM}rz(hO]hP]hQ]hR]hT]uhVNhWhh?]r{h)r|}r}(hDXexchM}r~(hO]hP]hQ]hR]hT]uhEjxh?]rh`Xexcrr}r(hDUhEj|ubahKhubaubeubh)r}r(hDUhEj\hFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDX$Prepare exception for serialization.rhEjhFjXhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X$Prepare exception for serialization.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.prepare_valuerhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX9prepare_value() (celery.backends.base.BaseBackend method)h/UtrauhVNhWhh?]ubh)r}r(hDUhEhhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX!BaseBackend.prepare_value(result)hEjhFhhKhhM}r(hR]rh/ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh/ahXBaseBackend.prepare_valuehX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDX prepare_valuehEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X prepare_valuerr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r(hDXresulthM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xresultrr}r(hDUhEjubahKhubaubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDXPrepare value for storage.rhEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XPrepare value for storage.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.process_cleanuprhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX;process_cleanup() (celery.backends.base.BaseBackend method)hUtrauhVNhWhh?]ubh)r}r(hDUhEhhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDXBaseBackend.process_cleanup()hEjhFhhKhhM}r(hR]rhahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rhahXBaseBackend.process_cleanuphX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDXprocess_cleanuphEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xprocess_cleanuprr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDX:Cleanup actions to do at the end of a task worker process.rhEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X:Cleanup actions to do at the end of a task worker process.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.reload_task_resultrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX>reload_task_result() (celery.backends.base.BaseBackend method)h UtrauhVNhWhh?]ubh)r}r(hDUhEhhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX'BaseBackend.reload_task_result(task_id)hEjhFhhKhhM}r(hR]rh ahhGXcelery.backends.baserr }r bhQ]hO]hP]hT]r h ahXBaseBackend.reload_task_resulthX BaseBackendhuhVNhWhh?]r (h)r }r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEj ubaubh)r}r(hDXreload_task_resulthEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xreload_task_resultrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r (hDXtask_idhM}r!(hO]hP]hQ]hR]hT]uhEjh?]r"h`Xtask_idr#r$}r%(hDUhEjubahKhubaubeubh)r&}r'(hDUhEjhFhhKhhM}r((hO]hP]hQ]hR]hT]uhVNhWhh?]r)ht)r*}r+(hDX;Reload task result, even if it has been previously fetched.r,hEj&hFjhKhyhM}r-(hO]hP]hQ]hR]hT]uhVKhWhh?]r.h`X;Reload task result, even if it has been previously fetched.r/r0}r1(hDj,hEj*ubaubaubeubhl)r2}r3(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.reload_taskset_resultr4hKhohM}r5(hR]hQ]hO]hP]hT]Uentries]r6(hrXAreload_taskset_result() (celery.backends.base.BaseBackend method)h)Utr7auhVNhWhh?]ubh)r8}r9(hDUhEhhFj4hKhhM}r:(hhXpyhR]hQ]hO]hP]hT]hXmethodr;hj;uhVNhWhh?]r<(h)r=}r>(hDX*BaseBackend.reload_taskset_result(task_id)hEj8hFhhKhhM}r?(hR]r@h)ahhGXcelery.backends.baserArB}rCbhQ]hO]hP]hT]rDh)ahX!BaseBackend.reload_taskset_resulthX BaseBackendhuhVNhWhh?]rE(h)rF}rG(hDX BaseBackend.hEj=hFhhKhhM}rH(hO]hP]hQ]hR]hT]uhVNhWhh?]rIh`X BaseBackend.rJrK}rL(hDUhEjFubaubh)rM}rN(hDXreload_taskset_resulthEj=hFhhKhhM}rO(hO]hP]hQ]hR]hT]uhVNhWhh?]rPh`Xreload_taskset_resultrQrR}rS(hDUhEjMubaubh)rT}rU(hDUhEj=hFhhKhhM}rV(hO]hP]hQ]hR]hT]uhVNhWhh?]rWh)rX}rY(hDXtask_idhM}rZ(hO]hP]hQ]hR]hT]uhEjTh?]r[h`Xtask_idr\r]}r^(hDUhEjXubahKhubaubeubh)r_}r`(hDUhEj8hFhhKhhM}ra(hO]hP]hQ]hR]hT]uhVNhWhh?]rbht)rc}rd(hDX>Reload taskset result, even if it has been previously fetched.rehEj_hFj4hKhyhM}rf(hO]hP]hQ]hR]hT]uhVKhWhh?]rgh`X>Reload taskset result, even if it has been previously fetched.rhri}rj(hDjehEjcubaubaubeubhl)rk}rl(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.restore_tasksetrmhKhohM}rn(hR]hQ]hO]hP]hT]Uentries]ro(hrX;restore_taskset() (celery.backends.base.BaseBackend method)h,UtrpauhVNhWhh?]ubh)rq}rr(hDUhEhhFjmhKhhM}rs(hhXpyhR]hQ]hO]hP]hT]hXmethodrthjtuhVNhWhh?]ru(h)rv}rw(hDX3BaseBackend.restore_taskset(taskset_id, cache=True)hEjqhFhhKhhM}rx(hR]ryh,ahhGXcelery.backends.baserzr{}r|bhQ]hO]hP]hT]r}h,ahXBaseBackend.restore_tasksethX BaseBackendhuhVNhWhh?]r~(h)r}r(hDX BaseBackend.hEjvhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDXrestore_tasksethEjvhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xrestore_tasksetrr}r(hDUhEjubaubh)r}r(hDUhEjvhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDX taskset_idhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X taskset_idrr}r(hDUhEjubahKhubh)r}r(hDX cache=TruehM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X cache=Truerr}r(hDUhEjubahKhubeubeubh)r}r(hDUhEjqhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDXGet the result of a taskset.rhEjhFjmhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XGet the result of a taskset.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.save_tasksetrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX8save_taskset() (celery.backends.base.BaseBackend method)h2UtrauhVNhWhh?]ubh)r}r(hDUhEhhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX,BaseBackend.save_taskset(taskset_id, result)hEjhFhhKhhM}r(hR]rh2ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh2ahXBaseBackend.save_tasksethX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDX save_tasksethEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X save_tasksetrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDX taskset_idhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X taskset_idrr}r(hDUhEjubahKhubh)r}r(hDXresulthM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xresultrr}r(hDUhEjubahKhubeubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDX&Store the result and status of a task.rhEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X&Store the result and status of a task.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.store_resultrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX8store_result() (celery.backends.base.BaseBackend method)h#UtrauhVNhWhh?]ubh)r}r(hDUhEhhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX1BaseBackend.store_result(task_id, result, status)hEjhFhhKhhM}r(hR]rh#ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh#ahXBaseBackend.store_resulthX BaseBackendhuhVNhWhh?]r(h)r}r(hDX BaseBackend.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X BaseBackend.rr}r(hDUhEjubaubh)r}r(hDX store_resulthEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r h`X store_resultr r }r (hDUhEjubaubh)r }r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDXtask_idhM}r(hO]hP]hQ]hR]hT]uhEj h?]rh`Xtask_idrr}r(hDUhEjubahKhubh)r}r(hDXresulthM}r(hO]hP]hQ]hR]hT]uhEj h?]rh`Xresultrr}r(hDUhEjubahKhubh)r}r (hDXstatushM}r!(hO]hP]hQ]hR]hT]uhEj h?]r"h`Xstatusr#r$}r%(hDUhEjubahKhubeubeubh)r&}r'(hDUhEjhFhhKhhM}r((hO]hP]hQ]hR]hT]uhVNhWhh?]r)ht)r*}r+(hDX&Store the result and status of a task.r,hEj&hFjhKhyhM}r-(hO]hP]hQ]hR]hT]uhVKhWhh?]r.h`X&Store the result and status of a task.r/r0}r1(hDj,hEj*ubaubaubeubhl)r2}r3(hDUhEhhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseBackend.wait_forr4hKhohM}r5(hR]hQ]hO]hP]hT]Uentries]r6(hrX4wait_for() (celery.backends.base.BaseBackend method)h Utr7auhVNhWhh?]ubh)r8}r9(hDUhEhhFj4hKhhM}r:(hhXpyhR]hQ]hO]hP]hT]hXmethodr;hj;uhVNhWhh?]r<(h)r=}r>(hDX+BaseBackend.wait_for(task_id, timeout=None)hEj8hFhhKhhM}r?(hR]r@h ahhGXcelery.backends.baserArB}rCbhQ]hO]hP]hT]rDh ahXBaseBackend.wait_forhX BaseBackendhuhVNhWhh?]rE(h)rF}rG(hDX BaseBackend.hEj=hFhhKhhM}rH(hO]hP]hQ]hR]hT]uhVNhWhh?]rIh`X BaseBackend.rJrK}rL(hDUhEjFubaubh)rM}rN(hDXwait_forhEj=hFhhKhhM}rO(hO]hP]hQ]hR]hT]uhVNhWhh?]rPh`Xwait_forrQrR}rS(hDUhEjMubaubh)rT}rU(hDUhEj=hFhhKhhM}rV(hO]hP]hQ]hR]hT]uhVNhWhh?]rW(h)rX}rY(hDXtask_idhM}rZ(hO]hP]hQ]hR]hT]uhEjTh?]r[h`Xtask_idr\r]}r^(hDUhEjXubahKhubh)r_}r`(hDX timeout=NonehM}ra(hO]hP]hQ]hR]hT]uhEjTh?]rbh`X timeout=Nonercrd}re(hDUhEj_ubahKhubeubeubh)rf}rg(hDUhEj8hFhhKhhM}rh(hO]hP]hQ]hR]hT]uhVNhWhh?]ri(ht)rj}rk(hDX$Wait for task and return its result.rlhEjfhFj4hKhyhM}rm(hO]hP]hQ]hR]hT]uhVKhWhh?]rnh`X$Wait for task and return its result.rorp}rq(hDjlhEjjubaubht)rr}rs(hDXVIf the task raises an exception, this exception will be re-raised by :func:`wait_for`.hEjfhFj4hKhyhM}rt(hO]hP]hQ]hR]hT]uhVKhWhh?]ru(h`XEIf the task raises an exception, this exception will be re-raised by rvrw}rx(hDXEIf the task raises an exception, this exception will be re-raised by hEjrubj)ry}rz(hDX:func:`wait_for`r{hEjrhFNhKjhM}r|(UreftypeXfuncjjXwait_forU refdomainXpyr}hR]hQ]U refexplicithO]hP]hT]jjjX BaseBackendr~jjuhVNh?]rj)r}r(hDj{hM}r(hO]hP]r(jj}Xpy-funcrehQ]hR]hT]uhEjyh?]rh`X wait_for()rr}r(hDUhEjubahKjubaubh`X.r}r(hDX.hEjrubeubht)r}r(hDXIf ``timeout`` is not ``None``, this raises the :class:`celery.exceptions.TimeoutError` exception if the operation takes longer than ``timeout`` seconds.hEjfhFj4hKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]r(h`XIf rr}r(hDXIf hEjubj)r}r(hDX ``timeout``hM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xtimeoutrr}r(hDUhEjubahKjubh`X is not rr}r(hDX is not hEjubj)r}r(hDX``None``hM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`XNonerr}r(hDUhEjubahKjubh`X, this raises the rr}r(hDX, this raises the hEjubj)r}r(hDX':class:`celery.exceptions.TimeoutError`rhEjhFNhKjhM}r(UreftypeXclassjjXcelery.exceptions.TimeoutErrorU refdomainXpyrhR]hQ]U refexplicithO]hP]hT]jjjj~jjuhVNh?]rj)r}r(hDjhM}r(hO]hP]r(jjXpy-classrehQ]hR]hT]uhEjh?]rh`Xcelery.exceptions.TimeoutErrorrr}r(hDUhEjubahKjubaubh`X. exception if the operation takes longer than rr}r(hDX. exception if the operation takes longer than hEjubj)r}r(hDX ``timeout``hM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xtimeoutrr}r(hDUhEjubahKjubh`X seconds.rr}r(hDX seconds.hEjubeubeubeubeubeubhl)r}r(hDUhEhBhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX/BaseDictBackend (class in celery.backends.base)h(UtrauhVNhWhh?]ubh)r}r(hDUhEhBhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXclassrhjuhVNhWhh?]r(h)r}r(hDX BaseDictBackend(*args, **kwargs)hEjhFhhKhhM}r(hR]rh(ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh(ahXBaseDictBackendrhUhuhVNhWhh?]r(h)r}r(hDXclass hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xclass rr}r(hDUhEjubaubh)r}r(hDXcelery.backends.base.hEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xcelery.backends.base.rr}r(hDUhEjubaubh)r}r(hDjhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`XBaseDictBackendrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDX*argshM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X*argsrr}r(hDUhEjubahKhubh)r}r(hDX**kwargshM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X**kwargsrr}r(hDUhEjubahKhubeubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(hl)r}r(hDUhEjhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX6forget() (celery.backends.base.BaseDictBackend method)h1UtrauhVNhWhh?]ubh)r}r(hDUhEjhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodr hj uhVNhWhh?]r (h)r }r (hDXBaseDictBackend.forget(task_id)hEjhFhhKhhM}r (hR]rh1ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh1ahXBaseDictBackend.forgethjhuhVNhWhh?]r(h)r}r(hDXforgethEj hFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xforgetrr}r(hDUhEjubaubh)r}r(hDUhEj hFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh)r}r (hDXtask_idhM}r!(hO]hP]hQ]hR]hT]uhEjh?]r"h`Xtask_idr#r$}r%(hDUhEjubahKhubaubeubh)r&}r'(hDUhEjhFhhKhhM}r((hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r)}r*(hDUhEjhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseDictBackend.get_resultr+hKhohM}r,(hR]hQ]hO]hP]hT]Uentries]r-(hrX:get_result() (celery.backends.base.BaseDictBackend method)hUtr.auhVNhWhh?]ubh)r/}r0(hDUhEjhFj+hKhhM}r1(hhXpyhR]hQ]hO]hP]hT]hXmethodr2hj2uhVNhWhh?]r3(h)r4}r5(hDX#BaseDictBackend.get_result(task_id)hEj/hFhhKhhM}r6(hR]r7hahhGXcelery.backends.baser8r9}r:bhQ]hO]hP]hT]r;hahXBaseDictBackend.get_resulthjhuhVNhWhh?]r<(h)r=}r>(hDX get_resulthEj4hFhhKhhM}r?(hO]hP]hQ]hR]hT]uhVNhWhh?]r@h`X get_resultrArB}rC(hDUhEj=ubaubh)rD}rE(hDUhEj4hFhhKhhM}rF(hO]hP]hQ]hR]hT]uhVNhWhh?]rGh)rH}rI(hDXtask_idhM}rJ(hO]hP]hQ]hR]hT]uhEjDh?]rKh`Xtask_idrLrM}rN(hDUhEjHubahKhubaubeubh)rO}rP(hDUhEj/hFhhKhhM}rQ(hO]hP]hQ]hR]hT]uhVNhWhh?]rRht)rS}rT(hDXGet the result of a task.rUhEjOhFj+hKhyhM}rV(hO]hP]hQ]hR]hT]uhVKhWhh?]rWh`XGet the result of a task.rXrY}rZ(hDjUhEjSubaubaubeubhl)r[}r\(hDUhEjhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseDictBackend.get_statusr]hKhohM}r^(hR]hQ]hO]hP]hT]Uentries]r_(hrX:get_status() (celery.backends.base.BaseDictBackend method)h!Utr`auhVNhWhh?]ubh)ra}rb(hDUhEjhFj]hKhhM}rc(hhXpyhR]hQ]hO]hP]hT]hXmethodrdhjduhVNhWhh?]re(h)rf}rg(hDX#BaseDictBackend.get_status(task_id)hEjahFhhKhhM}rh(hR]rih!ahhGXcelery.backends.baserjrk}rlbhQ]hO]hP]hT]rmh!ahXBaseDictBackend.get_statushjhuhVNhWhh?]rn(h)ro}rp(hDX get_statushEjfhFhhKhhM}rq(hO]hP]hQ]hR]hT]uhVNhWhh?]rrh`X get_statusrsrt}ru(hDUhEjoubaubh)rv}rw(hDUhEjfhFhhKhhM}rx(hO]hP]hQ]hR]hT]uhVNhWhh?]ryh)rz}r{(hDXtask_idhM}r|(hO]hP]hQ]hR]hT]uhEjvh?]r}h`Xtask_idr~r}r(hDUhEjzubahKhubaubeubh)r}r(hDUhEjahFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDXGet the status of a task.rhEjhFj]hKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XGet the status of a task.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEjhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX=get_task_meta() (celery.backends.base.BaseDictBackend method)h$UtrauhVNhWhh?]ubh)r}r(hDUhEjhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX2BaseDictBackend.get_task_meta(task_id, cache=True)hEjhFhhKhhM}r(hR]rh$ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh$ahXBaseDictBackend.get_task_metahjhuhVNhWhh?]r(h)r}r(hDX get_task_metahEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X get_task_metarr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDXtask_idhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xtask_idrr}r(hDUhEjubahKhubh)r}r(hDX cache=TruehM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X cache=Truerr}r(hDUhEjubahKhubeubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEjhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX@get_taskset_meta() (celery.backends.base.BaseDictBackend method)hUtrauhVNhWhh?]ubh)r}r(hDUhEjhFNhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX8BaseDictBackend.get_taskset_meta(taskset_id, cache=True)hEjhFhhKhhM}r(hR]rhahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rhahX BaseDictBackend.get_taskset_metahjhuhVNhWhh?]r(h)r}r(hDXget_taskset_metahEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xget_taskset_metarr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDX taskset_idhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X taskset_idrr}r(hDUhEjubahKhubh)r}r(hDX cache=TruehM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X cache=Truerr}r(hDUhEjubahKhubeubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r}r(hDUhEjhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseDictBackend.get_tracebackrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX=get_traceback() (celery.backends.base.BaseDictBackend method)hUtrauhVNhWhh?]ubh)r}r(hDUhEjhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX&BaseDictBackend.get_traceback(task_id)hEjhFhhKhhM}r(hR]rhahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rhahXBaseDictBackend.get_tracebackhjhuhVNhWhh?]r(h)r}r(hDX get_tracebackhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X get_tracebackrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r h)r }r (hDXtask_idhM}r (hO]hP]hQ]hR]hT]uhEjh?]r h`Xtask_idrr}r(hDUhEj ubahKhubaubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDX$Get the traceback for a failed task.rhEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X$Get the traceback for a failed task.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEjhFNhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r (hrXBreload_task_result() (celery.backends.base.BaseDictBackend method)hUtr!auhVNhWhh?]ubh)r"}r#(hDUhEjhFNhKhhM}r$(hhXpyhR]hQ]hO]hP]hT]hXmethodr%hj%uhVNhWhh?]r&(h)r'}r((hDX+BaseDictBackend.reload_task_result(task_id)hEj"hFhhKhhM}r)(hR]r*hahhGXcelery.backends.baser+r,}r-bhQ]hO]hP]hT]r.hahX"BaseDictBackend.reload_task_resulthjhuhVNhWhh?]r/(h)r0}r1(hDXreload_task_resulthEj'hFhhKhhM}r2(hO]hP]hQ]hR]hT]uhVNhWhh?]r3h`Xreload_task_resultr4r5}r6(hDUhEj0ubaubh)r7}r8(hDUhEj'hFhhKhhM}r9(hO]hP]hQ]hR]hT]uhVNhWhh?]r:h)r;}r<(hDXtask_idhM}r=(hO]hP]hQ]hR]hT]uhEj7h?]r>h`Xtask_idr?r@}rA(hDUhEj;ubahKhubaubeubh)rB}rC(hDUhEj"hFhhKhhM}rD(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)rE}rF(hDUhEjhFNhKhohM}rG(hR]hQ]hO]hP]hT]Uentries]rH(hrXEreload_taskset_result() (celery.backends.base.BaseDictBackend method)hUtrIauhVNhWhh?]ubh)rJ}rK(hDUhEjhFNhKhhM}rL(hhXpyhR]hQ]hO]hP]hT]hXmethodrMhjMuhVNhWhh?]rN(h)rO}rP(hDX1BaseDictBackend.reload_taskset_result(taskset_id)hEjJhFhhKhhM}rQ(hR]rRhahhGXcelery.backends.baserSrT}rUbhQ]hO]hP]hT]rVhahX%BaseDictBackend.reload_taskset_resulthjhuhVNhWhh?]rW(h)rX}rY(hDXreload_taskset_resulthEjOhFhhKhhM}rZ(hO]hP]hQ]hR]hT]uhVNhWhh?]r[h`Xreload_taskset_resultr\r]}r^(hDUhEjXubaubh)r_}r`(hDUhEjOhFhhKhhM}ra(hO]hP]hQ]hR]hT]uhVNhWhh?]rbh)rc}rd(hDX taskset_idhM}re(hO]hP]hQ]hR]hT]uhEj_h?]rfh`X taskset_idrgrh}ri(hDUhEjcubahKhubaubeubh)rj}rk(hDUhEjJhFhhKhhM}rl(hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)rm}rn(hDUhEjhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseDictBackend.restore_tasksetrohKhohM}rp(hR]hQ]hO]hP]hT]Uentries]rq(hrX?restore_taskset() (celery.backends.base.BaseDictBackend method)h+UtrrauhVNhWhh?]ubh)rs}rt(hDUhEjhFjohKhhM}ru(hhXpyhR]hQ]hO]hP]hT]hXmethodrvhjvuhVNhWhh?]rw(h)rx}ry(hDX7BaseDictBackend.restore_taskset(taskset_id, cache=True)hEjshFhhKhhM}rz(hR]r{h+ahhGXcelery.backends.baser|r}}r~bhQ]hO]hP]hT]rh+ahXBaseDictBackend.restore_tasksethjhuhVNhWhh?]r(h)r}r(hDXrestore_tasksethEjxhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`Xrestore_tasksetrr}r(hDUhEjubaubh)r}r(hDUhEjxhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDX taskset_idhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X taskset_idrr}r(hDUhEjubahKhubh)r}r(hDX cache=TruehM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X cache=Truerr}r(hDUhEjubahKhubeubeubh)r}r(hDUhEjshFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDXGet the result for a taskset.rhEjhFjohKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`XGet the result for a taskset.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEjhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseDictBackend.save_tasksetrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX<save_taskset() (celery.backends.base.BaseDictBackend method)h0UtrauhVNhWhh?]ubh)r}r(hDUhEjhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDX0BaseDictBackend.save_taskset(taskset_id, result)hEjhFhhKhhM}r(hR]rh0ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh0ahXBaseDictBackend.save_tasksethjhuhVNhWhh?]r(h)r}r(hDX save_tasksethEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X save_tasksetrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDX taskset_idhM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`X taskset_idrr}r(hDUhEjubahKhubh)r}r(hDXresulthM}r(hO]hP]hQ]hR]hT]uhEjh?]rh`Xresultrr}r(hDUhEjubahKhubeubeubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rht)r}r(hDX(Store the result of an executed taskset.rhEjhFjhKhyhM}r(hO]hP]hQ]hR]hT]uhVKhWhh?]rh`X(Store the result of an executed taskset.rr}r(hDjhEjubaubaubeubhl)r}r(hDUhEjhFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.BaseDictBackend.store_resultrhKhohM}r(hR]hQ]hO]hP]hT]Uentries]r(hrX<store_result() (celery.backends.base.BaseDictBackend method)h UtrauhVNhWhh?]ubh)r}r(hDUhEjhFjhKhhM}r(hhXpyhR]hQ]hO]hP]hT]hXmethodrhjuhVNhWhh?]r(h)r}r(hDXEBaseDictBackend.store_result(task_id, result, status, traceback=None)hEjhFhhKhhM}r(hR]rh ahhGXcelery.backends.baserr}rbhQ]hO]hP]hT]rh ahXBaseDictBackend.store_resulthjhuhVNhWhh?]r(h)r}r(hDX store_resulthEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]rh`X store_resultrr}r(hDUhEjubaubh)r}r(hDUhEjhFhhKhhM}r(hO]hP]hQ]hR]hT]uhVNhWhh?]r(h)r}r(hDXtask_idhM}r (hO]hP]hQ]hR]hT]uhEjh?]r h`Xtask_idr r }r (hDUhEjubahKhubh)r }r (hDXresulthM}r (hO]hP]hQ]hR]hT]uhEjh?]r h`Xresultr r }r (hDUhEj ubahKhubh)r }r (hDXstatushM}r (hO]hP]hQ]hR]hT]uhEjh?]r h`Xstatusr r }r (hDUhEj ubahKhubh)r }r (hDXtraceback=NonehM}r (hO]hP]hQ]hR]hT]uhEjh?]r h`Xtraceback=Noner r }r (hDUhEj ubahKhubeubeubh)r }r (hDUhEjhFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r ht)r }r (hDXStore task result and status.r hEj hFjhKhyhM}r! (hO]hP]hQ]hR]hT]uhVKhWhh?]r" h`XStore task result and status.r# r$ }r% (hDj hEj ubaubaubeubeubeubhl)r& }r' (hDUhEhBhFNhKhohM}r( (hR]hQ]hO]hP]hT]Uentries]r) (hrX4KeyValueStoreBackend (class in celery.backends.base)h"Utr* auhVNhWhh?]ubh)r+ }r, (hDUhEhBhFNhKhhM}r- (hhXpyhR]hQ]hO]hP]hT]hXclassr. hj. uhVNhWhh?]r/ (h)r0 }r1 (hDX%KeyValueStoreBackend(*args, **kwargs)hEj+ hFhhKhhM}r2 (hR]r3 h"ahhGXcelery.backends.baser4 r5 }r6 bhQ]hO]hP]hT]r7 h"ahXKeyValueStoreBackendr8 hUhuhVNhWhh?]r9 (h)r: }r; (hDXclass hEj0 hFhhKhhM}r< (hO]hP]hQ]hR]hT]uhVNhWhh?]r= h`Xclass r> r? }r@ (hDUhEj: ubaubh)rA }rB (hDXcelery.backends.base.hEj0 hFhhKhhM}rC (hO]hP]hQ]hR]hT]uhVNhWhh?]rD h`Xcelery.backends.base.rE rF }rG (hDUhEjA ubaubh)rH }rI (hDj8 hEj0 hFhhKhhM}rJ (hO]hP]hQ]hR]hT]uhVNhWhh?]rK h`XKeyValueStoreBackendrL rM }rN (hDUhEjH ubaubh)rO }rP (hDUhEj0 hFhhKhhM}rQ (hO]hP]hQ]hR]hT]uhVNhWhh?]rR (h)rS }rT (hDX*argshM}rU (hO]hP]hQ]hR]hT]uhEjO h?]rV h`X*argsrW rX }rY (hDUhEjS ubahKhubh)rZ }r[ (hDX**kwargshM}r\ (hO]hP]hQ]hR]hT]uhEjO h?]r] h`X**kwargsr^ r_ }r` (hDUhEjZ ubahKhubeubeubh)ra }rb (hDUhEj+ hFhhKhhM}rc (hO]hP]hQ]hR]hT]uhVNhWhh?]rd (hl)re }rf (hDUhEja hFNhKhohM}rg (hR]hQ]hO]hP]hT]Uentries]rh (hrX;delete() (celery.backends.base.KeyValueStoreBackend method)hUtri auhVNhWhh?]ubh)rj }rk (hDUhEja hFNhKhhM}rl (hhXpyhR]hQ]hO]hP]hT]hXmethodrm hjm uhVNhWhh?]rn (h)ro }rp (hDX KeyValueStoreBackend.delete(key)hEjj hFhhKhhM}rq (hR]rr hahhGXcelery.backends.basers rt }ru bhQ]hO]hP]hT]rv hahXKeyValueStoreBackend.deletehj8 huhVNhWhh?]rw (h)rx }ry (hDXdeletehEjo hFhhKhhM}rz (hO]hP]hQ]hR]hT]uhVNhWhh?]r{ h`Xdeleter| r} }r~ (hDUhEjx ubaubh)r }r (hDUhEjo hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h)r }r (hDXkeyhM}r (hO]hP]hQ]hR]hT]uhEj h?]r h`Xkeyr r }r (hDUhEj ubahKhubaubeubh)r }r (hDUhEjj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r }r (hDUhEja hFNhKhohM}r (hR]hQ]hO]hP]hT]Uentries]r (hrX8get() (celery.backends.base.KeyValueStoreBackend method)hUtr auhVNhWhh?]ubh)r }r (hDUhEja hFNhKhhM}r (hhXpyhR]hQ]hO]hP]hT]hXmethodr hj uhVNhWhh?]r (h)r }r (hDXKeyValueStoreBackend.get(key)hEj hFhhKhhM}r (hR]r hahhGXcelery.backends.baser r }r bhQ]hO]hP]hT]r hahXKeyValueStoreBackend.gethj8 huhVNhWhh?]r (h)r }r (hDXgethEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h`Xgetr r }r (hDUhEj ubaubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h)r }r (hDXkeyhM}r (hO]hP]hQ]hR]hT]uhEj h?]r h`Xkeyr r }r (hDUhEj ubahKhubaubeubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubhl)r }r (hDUhEja hFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.KeyValueStoreBackend.get_key_for_taskr hKhohM}r (hR]hQ]hO]hP]hT]Uentries]r (hrXEget_key_for_task() (celery.backends.base.KeyValueStoreBackend method)h&Utr auhVNhWhh?]ubh)r }r (hDUhEja hFj hKhhM}r (hhXpyhR]hQ]hO]hP]hT]hXmethodr hj uhVNhWhh?]r (h)r }r (hDX.KeyValueStoreBackend.get_key_for_task(task_id)hEj hFhhKhhM}r (hR]r h&ahhGXcelery.backends.baser r }r bhQ]hO]hP]hT]r h&ahX%KeyValueStoreBackend.get_key_for_taskhj8 huhVNhWhh?]r (h)r }r (hDXget_key_for_taskhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h`Xget_key_for_taskr r }r (hDUhEj ubaubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h)r }r (hDXtask_idhM}r (hO]hP]hQ]hR]hT]uhEj h?]r h`Xtask_idr r }r (hDUhEj ubahKhubaubeubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r ht)r }r (hDX#Get the cache key for a task by id.r hEj hFj hKhyhM}r (hO]hP]hQ]hR]hT]uhVKhWhh?]r h`X#Get the cache key for a task by id.r r }r (hDj hEj ubaubaubeubhl)r }r (hDUhEja hFX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/base.py:docstring of celery.backends.base.KeyValueStoreBackend.get_key_for_tasksetr hKhohM}r (hR]hQ]hO]hP]hT]Uentries]r (hrXHget_key_for_taskset() (celery.backends.base.KeyValueStoreBackend method)h%Utr auhVNhWhh?]ubh)r }r (hDUhEja hFj hKhhM}r (hhXpyhR]hQ]hO]hP]hT]hXmethodr hj uhVNhWhh?]r (h)r }r (hDX1KeyValueStoreBackend.get_key_for_taskset(task_id)hEj hFhhKhhM}r (hR]r h%ahhGXcelery.backends.baser r }r bhQ]hO]hP]hT]r h%ahX(KeyValueStoreBackend.get_key_for_tasksethj8 huhVNhWhh?]r (h)r }r (hDXget_key_for_tasksethEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h`Xget_key_for_tasksetr r }r (hDUhEj ubaubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r h)r }r (hDXtask_idhM}r (hO]hP]hQ]hR]hT]uhEj h?]r h`Xtask_idr r }r (hDUhEj ubahKhubaubeubh)r }r (hDUhEj hFhhKhhM}r (hO]hP]hQ]hR]hT]uhVNhWhh?]r ht)r }r (hDX#Get the cache key for a task by id.r hEj hFj hKhyhM}r (hO]hP]hQ]hR]hT]uhVKhWhh?]r h`X#Get the cache key for a task by id.r r }r (hDj hEj ubaubaubeubhl)r }r (hDUhEja hFNhKhohM}r (hR]hQ]hO]hP]hT]Uentries]r (hrX8set() (celery.backends.base.KeyValueStoreBackend method)hUtr auhVNhWhh?]ubh)r }r (hDUhEja hFNhKhhM}r (hhXpyhR]hQ]hO]hP]hT]hXmethodr! hj! uhVNhWhh?]r" (h)r# }r$ (hDX$KeyValueStoreBackend.set(key, value)hEj hFhhKhhM}r% (hR]r& hahhGXcelery.backends.baser' r( }r) bhQ]hO]hP]hT]r* hahXKeyValueStoreBackend.sethj8 huhVNhWhh?]r+ (h)r, }r- (hDXsethEj# hFhhKhhM}r. (hO]hP]hQ]hR]hT]uhVNhWhh?]r/ h`Xsetr0 r1 }r2 (hDUhEj, ubaubh)r3 }r4 (hDUhEj# hFhhKhhM}r5 (hO]hP]hQ]hR]hT]uhVNhWhh?]r6 (h)r7 }r8 (hDXkeyhM}r9 (hO]hP]hQ]hR]hT]uhEj3 h?]r: h`Xkeyr; r< }r= (hDUhEj7 ubahKhubh)r> }r? (hDXvaluehM}r@ (hO]hP]hQ]hR]hT]uhEj3 h?]rA h`XvaluerB rC }rD (hDUhEj> ubahKhubeubeubh)rE }rF (hDUhEj hFhhKhhM}rG (hO]hP]hQ]hR]hT]uhVNhWhh?]ubeubeubeubeubahDUU transformerrH NU footnote_refsrI }rJ UrefnamesrK }rL Usymbol_footnotesrM ]rN Uautofootnote_refsrO ]rP Usymbol_footnote_refsrQ ]rR U citationsrS ]rT hWhU current_linerU NUtransform_messagesrV ]rW cdocutils.nodes system_message rX )rY }rZ (hDUhM}r[ (hO]UlevelKhR]hQ]UsourcehghP]hT]UlineKUtypeUINFOr\ uh?]r] ht)r^ }r_ (hDUhM}r` (hO]hP]hQ]hR]hT]uhEjY h?]ra h`XAHyperlink target "module-celery.backends.base" is not referenced.rb rc }rd (hDUhEj^ ubahKhyubahKUsystem_messagere ubaUreporterrf NUid_startrg KU autofootnotesrh ]ri U citation_refsrj }rk Uindirect_targetsrl ]rm Usettingsrn (cdocutils.frontend Values ro orp }rq (Ufootnote_backlinksrr KUrecord_dependenciesrs NU rfc_base_urlrt Uhttp://tools.ietf.org/html/ru U tracebackrv Upep_referencesrw NUstrip_commentsrx NU toc_backlinksry Uentryrz U language_coder{ Uenr| U datestampr} NU report_levelr~ KU _destinationr NU halt_levelr KU strip_classesr Nh]NUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr UUTF-8r U_sourcer Uf/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.base.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr j Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (hj hhhjo h jh jyh j=h jh jhj'hj$hjhjbhj4h=cdocutils.nodes topic r )r }r (hDUhEhBhFhIhKUtopicr hM}r (hO]hP]r (Ucontentsr Ulocalr ehQ]hR]r h=ahT]r hauhVKhWhh?]r cdocutils.nodes pending r )r }r (hDX.. contents:: :local:hEj U transformr cdocutils.transforms.parts Contents r Udetailsr }r UlocalNshKUpendingr hM}r (hO]hP]hQ]hR]hT]uh?]ubaubhjhjhj# hjIhkhehjhjahjOhjhjhjhj5hhh jh>hBh!jfh"j0 h#jh$jh%j h&j h'jh(jh)j=h*jdh+jxh,jvh.jh/jh0jh1j h2jh3j!uUsubstitution_namesr }r hKhWhM}r (hO]hR]hQ]UsourcehIhP]hT]uU footnotesr ]r Urefidsr }r ub.PKYDD ?celery-2.1-archived/.doctrees/internals/reference/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qXinternal module referenceqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhUinternal-module-referenceqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXW/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hXInternal Module Referenceq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2XInternal Module Referenceq3q4}q5(hh.hh,ubaubcdocutils.nodes field_list q6)q7}q8(hUhhhhhU field_listq9h}q:(h!]h"]h#]h$]h&]uh(Kh)hh]q;(cdocutils.nodes field q<)q=}q>(hUhh7hhhUfieldq?h}q@(h!]h"]h#]h$]h&]uh(Kh)hh]qA(cdocutils.nodes field_name qB)qC}qD(hXReleaseqEh}qF(h!]h"]h#]h$]h&]uhh=h]qGh2XReleaseqHqI}qJ(hhEhhCubahU field_nameqKubcdocutils.nodes field_body qL)qM}qN(hX |version|qOh}qP(h!]h"]h#]h$]h&]uhh=h]qQcdocutils.nodes paragraph qR)qS}qT(hhOhhMhhhU paragraphqUh}qV(h!]h"]h#]h$]h&]uh(Kh]qWh2X2.1qXqY}qZ(hU2.1q[hhSubaubahU field_bodyq\ubeubh<)q]}q^(hUhh7hhhh?h}q_(h!]h"]h#]h$]h&]uh(Kh)hh]q`(hB)qa}qb(hXDateqch}qd(h!]h"]h#]h$]h&]uhh]h]qeh2XDateqfqg}qh(hhchhaubahhKubhL)qi}qj(hX|today| h}qk(h!]h"]h#]h$]h&]uhh]h]qlhR)qm}qn(hX|today|qohhihhhhUh}qp(h!]h"]h#]h$]h&]uh(Kh]qqh2XFebruary 04, 2014qrqs}qt(hXFebruary 04, 2014hhmubaubahh\ubeubeubcdocutils.nodes compound qu)qv}qw(hUhhhhhUcompoundqxh}qy(h!]h"]qzUtoctree-wrapperq{ah#]h$]h&]uh(Nh)hh]q|csphinx.addnodes toctree q})q~}q(hUhhvhhhUtoctreeqh}q(UnumberedqKU includehiddenqhXinternals/reference/indexqU titlesonlyqUglobqh$]h#]h!]h"]h&]Uentriesq]q(NX!internals/reference/celery.workerqqNX*internals/reference/celery.worker.listenerqqNX%internals/reference/celery.worker.jobqqNX-internals/reference/celery.worker.controllersqqNX)internals/reference/celery.worker.bucketsqqNX+internals/reference/celery.worker.heartbeatqqNX)internals/reference/celery.worker.controlqqNX2internals/reference/celery.worker.control.builtinsqqNX2internals/reference/celery.worker.control.registryqqNX'internals/reference/celery.worker.stateqqNX0internals/reference/celery.concurrency.processesqqNX5internals/reference/celery.concurrency.processes.poolqqNX.internals/reference/celery.concurrency.threadsqqNXinternals/reference/celery.beatqqNX#internals/reference/celery.backendsqqNX(internals/reference/celery.backends.baseqqNX,internals/reference/celery.backends.databaseqqNX)internals/reference/celery.backends.cacheqqNX(internals/reference/celery.backends.amqpqqNX+internals/reference/celery.backends.mongodbqqNX+internals/reference/celery.backends.pyredisqqNX-internals/reference/celery.backends.cassandraqqNX*internals/reference/celery.backends.tyrantqqNX(internals/reference/celery.execute.traceqqNX(internals/reference/celery.serializationqqNX)internals/reference/celery.datastructuresqqNX!internals/reference/celery.routesqqNXinternals/reference/celery.logqqNX*internals/reference/celery.events.snapshotqqNX+internals/reference/celery.events.cursesmonqÆqNX(internals/reference/celery.events.dumperqņqNX$internals/reference/celery.db.modelsqdžqNX%internals/reference/celery.db.sessionqɆqNX internals/reference/celery.utilsqˆqNX%internals/reference/celery.utils.termq͆qNX*internals/reference/celery.utils.timeutilsqφqNX%internals/reference/celery.utils.infoqцqNX'internals/reference/celery.utils.compatqӆqNX%internals/reference/celery.utils.mailqՆqNX&internals/reference/celery.utils.patchq׆qNX+internals/reference/celery.utils.functionalqنqNX'internals/reference/celery.utils.timer2qۆqNX)internals/reference/celery.utils.dispatchq݆qNX0internals/reference/celery.utils.dispatch.signalq߆qNX1internals/reference/celery.utils.dispatch.saferefqqNX$internals/reference/celery.platformsqqeUhiddenqU includefilesq]q(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhheUmaxdepthqKuh(Kh]ubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh/NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04dr Uexit_status_levelr!KUconfigr"NUstrict_visitorr#NUcloak_email_addressesr$Utrim_footnote_reference_spacer%Uenvr&NUdump_pseudo_xmlr'NUexpose_internalsr(NUsectsubtitle_xformr)U source_linkr*NUrfc_referencesr+NUoutput_encodingr,Uutf-8r-U source_urlr.NUinput_encodingr/U utf-8-sigr0U_disable_configr1NU id_prefixr2UU tab_widthr3KUerror_encodingr4UUTF-8r5U_sourcer6UW/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/index.rstr7Ugettext_compactr8U generatorr9NUdump_internalsr:NU smart_quotesr;U pep_base_urlr<Uhttp://www.python.org/dev/peps/r=Usyntax_highlightr>Ulongr?Uinput_encoding_error_handlerr@jUauto_id_prefixrAUidrBUdoctitle_xformrCUstrip_elements_with_classesrDNU _config_filesrE]Ufile_insertion_enabledrFU raw_enabledrGKU dump_settingsrHNubUsymbol_footnote_startrIKUidsrJ}rKhhsUsubstitution_namesrL}rMhh)h}rN(h!]h$]h#]Usourcehh"]h&]uU footnotesrO]rPUrefidsrQ}rRub.PKYDD:B-Rcelery-2.1-archived/.doctrees/internals/reference/celery.backends.database.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X6celery.backends.database.DatabaseBackend.ResultSessionqX0celery.backends.database.DatabaseBackend.cleanupqX(celery.backends.database.DatabaseBackendqUcontentsq NX7backend: sqlalchemy database - celery.backends.databaseq NuUsubstitution_defsq }q Uparse_messagesq ]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh Ucontentsqh U4backend-sqlalchemy-database-celery-backends-databasequUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXj/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.database.rstqq }q!bUtagnameq"Usectionq#U attributesq$}q%(Udupnamesq&]Uclassesq']Ubackrefsq(]Uidsq)]q*haUnamesq+]q,h auUlineq-KUdocumentq.hh]q/(cdocutils.nodes title q0)q1}q2(hX7Backend: SQLAlchemy Database - celery.backends.databaseq3hhhh h"Utitleq4h$}q5(h&]h']h(]h)]h+]uh-Kh.hh]q6cdocutils.nodes Text q7X7Backend: SQLAlchemy Database - celery.backends.databaseq8q9}q:(hh3hh1ubaubcdocutils.nodes target q;)q<}q=(hUhhhU q>h"Utargetq?h$}q@(h&]h)]qAXmodule-celery.backends.databaseqBah(]Uismodh']h+]uh-Kh.hh]ubcsphinx.addnodes index qC)qD}qE(hUhhhh>h"UindexqFh$}qG(h)]h(]h&]h']h+]Uentries]qH(UsingleqIX!celery.backends.database (module)Xmodule-celery.backends.databaseUtqJauh-Kh.hh]ubhC)qK}qL(hUhhhNh"hFh$}qM(h)]h(]h&]h']h+]Uentries]qN(hIX3DatabaseBackend (class in celery.backends.database)hUtqOauh-Nh.hh]ubcsphinx.addnodes desc qP)qQ}qR(hUhhhNh"UdescqSh$}qT(UnoindexqUUdomainqVXpyh)]h(]h&]h']h+]UobjtypeqWXclassqXUdesctypeqYhXuh-Nh.hh]qZ(csphinx.addnodes desc_signature q[)q\}q](hXODatabaseBackend(dburi=None, result_expires=None, engine_options=None, **kwargs)hhQhU q^h"Udesc_signatureq_h$}q`(h)]qahaUmoduleqbhXcelery.backends.databaseqcqd}qebh(]h&]h']h+]qfhaUfullnameqgXDatabaseBackendqhUclassqiUUfirstqjuh-Nh.hh]qk(csphinx.addnodes desc_annotation ql)qm}qn(hXclass hh\hh^h"Udesc_annotationqoh$}qp(h&]h']h(]h)]h+]uh-Nh.hh]qqh7Xclass qrqs}qt(hUhhmubaubcsphinx.addnodes desc_addname qu)qv}qw(hXcelery.backends.database.hh\hh^h"U desc_addnameqxh$}qy(h&]h']h(]h)]h+]uh-Nh.hh]qzh7Xcelery.backends.database.q{q|}q}(hUhhvubaubcsphinx.addnodes desc_name q~)q}q(hhhhh\hh^h"U desc_nameqh$}q(h&]h']h(]h)]h+]uh-Nh.hh]qh7XDatabaseBackendqq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhh\hh^h"Udesc_parameterlistqh$}q(h&]h']h(]h)]h+]uh-Nh.hh]q(csphinx.addnodes desc_parameter q)q}q(hX dburi=Noneh$}q(h&]h']h(]h)]h+]uhhh]qh7X dburi=Noneqq}q(hUhhubah"Udesc_parameterqubh)q}q(hXresult_expires=Noneh$}q(h&]h']h(]h)]h+]uhhh]qh7Xresult_expires=Noneqq}q(hUhhubah"hubh)q}q(hXengine_options=Noneh$}q(h&]h']h(]h)]h+]uhhh]qh7Xengine_options=Noneqq}q(hUhhubah"hubh)q}q(hX**kwargsh$}q(h&]h']h(]h)]h+]uhhh]qh7X**kwargsqq}q(hUhhubah"hubeubeubcsphinx.addnodes desc_content q)q}q(hUhhQhh^h"U desc_contentqh$}q(h&]h']h(]h)]h+]uh-Nh.hh]q(cdocutils.nodes paragraph q)q}q(hXThe database result backend.qhhhX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/database.py:docstring of celery.backends.database.DatabaseBackendqh"U paragraphqh$}q(h&]h']h(]h)]h+]uh-Kh.hh]qh7XThe database result backend.qq}q(hhhhubaubhC)q}q(hUhhhNh"hFh$}q(h)]h(]h&]h']h+]Uentries]q(hIXAResultSession() (celery.backends.database.DatabaseBackend method)hUtqauh-Nh.hh]ubhP)q}q(hUhhhNh"hSh$}q(hUhVXpyh)]h(]h&]h']h+]hWXmethodqhYhuh-Nh.hh]q(h[)q}q(hXDatabaseBackend.ResultSession()hhhh^h"h_h$}q(h)]qhahbhXcelery.backends.databaseqʅq}qbh(]h&]h']h+]qhahgXDatabaseBackend.ResultSessionhihhhjuh-Nh.hh]q(h~)q}q(hX ResultSessionhhhh^h"hh$}q(h&]h']h(]h)]h+]uh-Nh.hh]qh7X ResultSessionqӅq}q(hUhhubaubh)q}q(hUhhhh^h"hh$}q(h&]h']h(]h)]h+]uh-Nh.hh]ubeubh)q}q(hUhhhh^h"hh$}q(h&]h']h(]h)]h+]uh-Nh.hh]ubeubhC)q}q(hUhhhX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/database.py:docstring of celery.backends.database.DatabaseBackend.cleanupqh"hFh$}q(h)]h(]h&]h']h+]Uentries]q(hIX;cleanup() (celery.backends.database.DatabaseBackend method)hUtqauh-Nh.hh]ubhP)q}q(hUhhhhh"hSh$}q(hUhVXpyh)]h(]h&]h']h+]hWXmethodqhYhuh-Nh.hh]q(h[)q}q(hXDatabaseBackend.cleanup()qhhhh^h"h_h$}q(h)]qhahbhXcelery.backends.databaseq셁q}qbh(]h&]h']h+]qhahgXDatabaseBackend.cleanuphihhhjuh-Nh.hh]q(h~)q}q(hXcleanuphhhh^h"hh$}q(h&]h']h(]h)]h+]uh-Nh.hh]qh7Xcleanupqq}q(hUhhubaubh)q}q(hUhhhh^h"hh$}q(h&]h']h(]h)]h+]uh-Nh.hh]ubeubh)q}q(hUhhhh^h"hh$}q(h&]h']h(]h)]h+]uh-Nh.hh]qh)q}r(hXDelete expired metadata.rhhhhh"hh$}r(h&]h']h(]h)]h+]uh-Kh.hh]rh7XDelete expired metadata.rr}r(hjhhubaubaubeubeubeubeubahUU transformerrNU footnote_refsr}r Urefnamesr }r Usymbol_footnotesr ]r Uautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh.hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh$}r(h&]UlevelKh)]h(]Usourceh>h']h+]UlineKUtypeUINFOruh]rh)r}r(hUh$}r(h&]h']h(]h)]h+]uhjh]r h7XEHyperlink target "module-celery.backends.database" is not referenced.r!r"}r#(hUhjubah"hubah"Usystem_messager$ubaUreporterr%NUid_startr&KU autofootnotesr']r(U citation_refsr)}r*Uindirect_targetsr+]r,Usettingsr-(cdocutils.frontend Values r.or/}r0(Ufootnote_backlinksr1KUrecord_dependenciesr2NU rfc_base_urlr3Uhttp://tools.ietf.org/html/r4U tracebackr5Upep_referencesr6NUstrip_commentsr7NU toc_backlinksr8Uentryr9U language_coder:Uenr;U datestampr<NU report_levelr=KU _destinationr>NU halt_levelr?KU strip_classesr@Nh4NUerror_encoding_error_handlerrAUbackslashreplacerBUdebugrCNUembed_stylesheetrDUoutput_encoding_error_handlerrEUstrictrFU sectnum_xformrGKUdump_transformsrHNU docinfo_xformrIKUwarning_streamrJNUpep_file_url_templaterKUpep-%04drLUexit_status_levelrMKUconfigrNNUstrict_visitorrONUcloak_email_addressesrPUtrim_footnote_reference_spacerQUenvrRNUdump_pseudo_xmlrSNUexpose_internalsrTNUsectsubtitle_xformrUU source_linkrVNUrfc_referencesrWNUoutput_encodingrXUutf-8rYU source_urlrZNUinput_encodingr[U utf-8-sigr\U_disable_configr]NU id_prefixr^UU tab_widthr_KUerror_encodingr`UUTF-8raU_sourcerbUj/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.database.rstrcUgettext_compactrdU generatorreNUdump_internalsrfNU smart_quotesrgU pep_base_urlrhUhttp://www.python.org/dev/peps/riUsyntax_highlightrjUlongrkUinput_encoding_error_handlerrljFUauto_id_prefixrmUidrnUdoctitle_xformroUstrip_elements_with_classesrpNU _config_filesrq]Ufile_insertion_enabledrrU raw_enabledrsKU dump_settingsrtNubUsymbol_footnote_startruKUidsrv}rw(hhhhhh\hcdocutils.nodes topic rx)ry}rz(hUhhhh h"Utopicr{h$}r|(h&]h']r}(Ucontentsr~Ulocalreh(]h)]rhah+]rh auh-Kh.hh]rcdocutils.nodes pending r)r}r(hX.. contents:: :local:hjyU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh"Upendingrh$}r(h&]h']h(]h)]h+]uh]ubaubhBhcelery.concurrency.processes.TaskPool.Pool.TimeoutHandler.bodyqX=celery.concurrency.processes.TaskPool.Pool.ResultHandler.bodyqX/celery.concurrency.processes.TaskPool.terminateqX;multiprocessing pool support - celery.concurrency.processesqNX0celery.concurrency.processes.TaskPool.Pool.applyqX<celery.concurrency.processes.TaskPool.Pool.Process.terminateqX8celery.concurrency.processes.TaskPool.Pool.Process.identqUcontentsqNX,celery.concurrency.processes.TaskPool.loggerqX/celery.concurrency.processes.TaskPool.Pool.imapqX9celery.concurrency.processes.TaskPool.Pool.TimeoutHandlerqX%celery.concurrency.processes.pingbackqX6celery.concurrency.processes.TaskPool.Pool.Process.pidq X0celery.concurrency.processes.TaskPool.Pool.closeq!X7celery.concurrency.processes.TaskPool.Pool.Process.nameq"X5celery.concurrency.processes.TaskPool.Pool.Supervisorq#X7celery.concurrency.processes.TaskPool.Pool.Process.joinq$X;celery.concurrency.processes.TaskPool.Pool.Process.is_aliveq%X9celery.concurrency.processes.TaskPool.safe_apply_callbackq&X8celery.concurrency.processes.TaskPool.Pool.Process.startq'X1celery.concurrency.processes.TaskPool.apply_asyncq(X6celery.concurrency.processes.TaskPool.Pool.TaskHandlerq)X/celery.concurrency.processes.TaskPool.Pool.joinq*X.celery.concurrency.processes.TaskPool.Pool.mapq+X+celery.concurrency.processes.TaskPool.limitq,X@celery.concurrency.processes.TaskPool.Pool.SoftTimeLimitExceededq-X4celery.concurrency.processes.TaskPool.Pool.terminateq.X2celery.concurrency.processes.TaskPool.Pool.Processq/X5celery.concurrency.processes.TaskPool.on_worker_errorq0X8celery.concurrency.processes.TaskPool.Pool.ResultHandlerq1X.celery.concurrency.processes.TaskPool.on_readyq2uUsubstitution_defsq3}q4Uparse_messagesq5]q6Ucurrent_sourceq7NU decorationq8NUautofootnote_startq9KUnameidsq:}q;(hhhhhhh h h h h h h h h h hhhhhhhhhhhhhhhhhhhU9multiprocessing-pool-support-celery-concurrency-processesq]q?cdocutils.nodes section q@)qA}qB(U rawsourceqCUUparentqDhUsourceqEcdocutils.nodes reprunicode qFXn/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.concurrency.processes.rstqGqH}qIbUtagnameqJUsectionqKU attributesqL}qM(UdupnamesqN]UclassesqO]UbackrefsqP]UidsqQ]qRh]qW(cdocutils.nodes title qX)qY}qZ(hCX;Multiprocessing Pool Support - celery.concurrency.processesq[hDhAhEhHhJUtitleq\hL}q](hN]hO]hP]hQ]hS]uhUKhVhh>]q^cdocutils.nodes Text q_X;Multiprocessing Pool Support - celery.concurrency.processesq`qa}qb(hCh[hDhYubaubcdocutils.nodes target qc)qd}qe(hCUhDhAhEU qfhJUtargetqghL}qh(hN]hQ]qiX#module-celery.concurrency.processesqjahP]UismodhO]hS]uhUKhVhh>]ubcsphinx.addnodes index qk)ql}qm(hCUhDhAhEhfhJUindexqnhL}qo(hQ]hP]hN]hO]hS]Uentries]qp(UsingleqqX%celery.concurrency.processes (module)X#module-celery.concurrency.processesUtqrauhUKhVhh>]ubcdocutils.nodes paragraph qs)qt}qu(hCXProcess Pools.qvhDhAhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processesqwhJU paragraphqxhL}qy(hN]hO]hP]hQ]hS]uhUKhVhh>]qzh_XProcess Pools.q{q|}q}(hChvhDhtubaubhk)q~}q(hCUhDhAhENhJhnhL}q(hQ]hP]hN]hO]hS]Uentries]q(hqX0TaskPool (class in celery.concurrency.processes)h UtqauhUNhVhh>]ubcsphinx.addnodes desc q)q}q(hCUhDhAhENhJUdescqhL}q(UnoindexqUdomainqXpyhQ]hP]hN]hO]hS]UobjtypeqXclassqUdesctypeqhuhUNhVhh>]q(csphinx.addnodes desc_signature q)q}q(hCXTaskPool(limit, logger=None, initializer=None, maxtasksperchild=None, timeout=None, soft_timeout=None, putlocks=True, initargs=())hDhhEU qhJUdesc_signatureqhL}q(hQ]qh aUmoduleqhFXcelery.concurrency.processesqq}qbhP]hN]hO]hS]qh aUfullnameqXTaskPoolqUclassqUUfirstquhUNhVhh>]q(csphinx.addnodes desc_annotation q)q}q(hCXclass hDhhEhhJUdesc_annotationqhL}q(hN]hO]hP]hQ]hS]uhUNhVhh>]qh_Xclass qq}q(hCUhDhubaubcsphinx.addnodes desc_addname q)q}q(hCXcelery.concurrency.processes.hDhhEhhJU desc_addnameqhL}q(hN]hO]hP]hQ]hS]uhUNhVhh>]qh_Xcelery.concurrency.processes.qq}q(hCUhDhubaubcsphinx.addnodes desc_name q)q}q(hChhDhhEhhJU desc_nameqhL}q(hN]hO]hP]hQ]hS]uhUNhVhh>]qh_XTaskPoolqq}q(hCUhDhubaubcsphinx.addnodes desc_parameterlist q)q}q(hCUhDhhEhhJUdesc_parameterlistqhL}q(hN]hO]hP]hQ]hS]uhUNhVhh>]q(csphinx.addnodes desc_parameter q)q}q(hCXlimithL}q(hN]hO]hP]hQ]hS]uhDhh>]qh_XlimitqŅq}q(hCUhDhubahJUdesc_parameterqubh)q}q(hCX logger=NonehL}q(hN]hO]hP]hQ]hS]uhDhh>]qh_X logger=Noneqͅq}q(hCUhDhubahJhubh)q}q(hCXinitializer=NonehL}q(hN]hO]hP]hQ]hS]uhDhh>]qh_Xinitializer=Noneqԅq}q(hCUhDhubahJhubh)q}q(hCXmaxtasksperchild=NonehL}q(hN]hO]hP]hQ]hS]uhDhh>]qh_Xmaxtasksperchild=Noneqۅq}q(hCUhDhubahJhubh)q}q(hCX timeout=NonehL}q(hN]hO]hP]hQ]hS]uhDhh>]qh_X timeout=Noneq⅁q}q(hCUhDhubahJhubh)q}q(hCXsoft_timeout=NonehL}q(hN]hO]hP]hQ]hS]uhDhh>]qh_Xsoft_timeout=Noneq酁q}q(hCUhDhubahJhubh)q}q(hCX putlocks=TruehL}q(hN]hO]hP]hQ]hS]uhDhh>]qh_X putlocks=Trueqq}q(hCUhDhubahJhubh)q}q(hCX initargs=()hL}q(hN]hO]hP]hQ]hS]uhDhh>]qh_X initargs=()qq}q(hCUhDhubahJhubeubeubcsphinx.addnodes desc_content q)q}q(hCUhDhhEhhJU desc_contentqhL}q(hN]hO]hP]hQ]hS]uhUNhVhh>]q(hs)r}r(hCX.Process Pool for processing tasks in parallel.rhDhhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPoolrhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]rh_X.Process Pool for processing tasks in parallel.rr}r(hCjhDjubaubcdocutils.nodes field_list r )r }r (hCUhDhhENhJU field_listr hL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]rcdocutils.nodes field r)r}r(hCUhL}r(hN]hO]hP]hQ]hS]uhDj h>]r(cdocutils.nodes field_name r)r}r(hCUhL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_X Parametersrr}r(hCUhDjubahJU field_namerubcdocutils.nodes field_body r)r}r(hCUhL}r (hN]hO]hP]hQ]hS]uhDjh>]r!cdocutils.nodes bullet_list r")r#}r$(hCUhL}r%(hN]hO]hP]hQ]hS]uhDjh>]r&(cdocutils.nodes list_item r')r(}r)(hCUhL}r*(hN]hO]hP]hQ]hS]uhDj#h>]r+hs)r,}r-(hCUhL}r.(hN]hO]hP]hQ]hS]uhDj(h>]r/(cdocutils.nodes strong r0)r1}r2(hCXlimithL}r3(hN]hO]hP]hQ]hS]uhDj,h>]r4h_Xlimitr5r6}r7(hCUhDj1ubahJUstrongr8ubh_X -- r9r:}r;(hCUhDj,ubh_Xsee r<r=}r>(hCXsee hDj,ubcsphinx.addnodes pending_xref r?)r@}rA(hCX :attr:`limit`rBhDj,hEhHhJU pending_xrefrChL}rD(UreftypeXattrUrefwarnrEU reftargetrFXlimitU refdomainXpyrGhQ]hP]U refexplicithN]hO]hS]UrefdocrHX0internals/reference/celery.concurrency.processesrIUpy:classrJhU py:modulerKXcelery.concurrency.processesrLuhUK h>]rMcdocutils.nodes literal rN)rO}rP(hCjBhL}rQ(hN]hO]rR(UxrefrSjGXpy-attrrTehP]hQ]hS]uhDj@h>]rUh_XlimitrVrW}rX(hCUhDjOubahJUliteralrYubaubh_X.rZ}r[(hCX.hDj,ubehJhxubahJU list_itemr\ubj')r]}r^(hCUhL}r_(hN]hO]hP]hQ]hS]uhDj#h>]r`hs)ra}rb(hCUhL}rc(hN]hO]hP]hQ]hS]uhDj]h>]rd(j0)re}rf(hCXloggerhL}rg(hN]hO]hP]hQ]hS]uhDjah>]rhh_Xloggerrirj}rk(hCUhDjeubahJj8ubh_X -- rlrm}rn(hCUhDjaubh_Xsee rorp}rq(hCXsee hDjaubj?)rr}rs(hCX:attr:`logger`rthDjahENhJjChL}ru(UreftypeXattrjEjFXloggerU refdomainXpyrvhQ]hP]U refexplicithN]hO]hS]jHjIjJhjKjLuhUNh>]rwjN)rx}ry(hCjthL}rz(hN]hO]r{(jSjvXpy-attrr|ehP]hQ]hS]uhDjrh>]r}h_Xloggerr~r}r(hCUhDjxubahJjYubaubh_X.r}r(hCX.hDjaubehJhxubahJj\ubehJU bullet_listrubahJU field_bodyrubehJUfieldrubaubhk)r}r(hCUhDhhEjhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqX7limit (celery.concurrency.processes.TaskPool attribute)h,UtrauhUNhVhh>]ubh)r}r(hCUhDhhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hX attributerhjuhUNhVhh>]r(h)r}r(hCXlimitrhDjhEjhJhhL}r(hQ]rh,ahjLhP]hN]hO]hS]rh,ahXTaskPool.limithhhuhUK hVhh>]rh)r}r(hCjhDjhEjhJhhL}r(hN]hO]hP]hQ]hS]uhUK hVhh>]rh_Xlimitrr}r(hCUhDjubaubaubh)r}r(hCUhDjhEjhJhhL}r(hN]hO]hP]hQ]hS]uhUK hVhh>]rhs)r}r(hCX4The number of processes that can run simultaneously.rhDjhEjhJhxhL}r(hN]hO]hP]hQ]hS]uhUK hVhh>]rh_X4The number of processes that can run simultaneously.rr}r(hCjhDjubaubaubeubhk)r}r(hCUhDhhEjhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqX8logger (celery.concurrency.processes.TaskPool attribute)hUtrauhUNhVhh>]ubh)r}r(hCUhDhhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hX attributerhjuhUNhVhh>]r(h)r}r(hCXloggerrhDjhEhfhJhhL}r(hQ]rhahjLhP]hN]hO]hS]rhahXTaskPool.loggerhhhuhUKhVhh>]rh)r}r(hCjhDjhEhfhJhhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]rh_Xloggerrr}r(hCUhDjubaubaubh)r}r(hCUhDjhEhfhJhhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]rhs)r}r(hCXThe logger used for debugging.rhDjhEjhJhxhL}r(hN]hO]hP]hQ]hS]uhUK hVhh>]rh_XThe logger used for debugging.rr}r(hCjhDjubaubaubeubhk)r}r(hCUhDhhENhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqX5TaskPool.Pool (class in celery.concurrency.processes)h UtrauhUNhVhh>]ubh)r}r(hCUhDhhENhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXclassrhjuhUNhVhh>]r(h)r}r(hCXtTaskPool.Pool(processes=None, initializer=None, initargs=(), maxtasksperchild=None, timeout=None, soft_timeout=None)hDjhEhhJhhL}r(hQ]rh ahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rh ahX TaskPool.PoolrhhhuhUNhVhh>]r(h)r}r(hCXclass hDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xclass rr}r(hCUhDjubaubh)r}r(hCXPoolhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XPoolrr}r(hCUhDjubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r(h)r}r(hCXprocesses=NonehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xprocesses=Nonerr}r(hCUhDjubahJhubh)r}r(hCXinitializer=NonehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xinitializer=Nonerr}r(hCUhDjubahJhubh)r}r(hCX initargs=()hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_X initargs=()rr}r(hCUhDjubahJhubh)r }r (hCXmaxtasksperchild=NonehL}r (hN]hO]hP]hQ]hS]uhDjh>]r h_Xmaxtasksperchild=Noner r}r(hCUhDj ubahJhubh)r}r(hCX timeout=NonehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_X timeout=Nonerr}r(hCUhDjubahJhubh)r}r(hCXsoft_timeout=NonehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xsoft_timeout=Nonerr}r(hCUhDjubahJhubeubeubh)r}r(hCUhDjhEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r!(hs)r"}r#(hCX>Class which supports an async version of the `apply()` builtinr$hDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Poolr%hJhxhL}r&(hN]hO]hP]hQ]hS]uhUKhVhh>]r'(h_X-Class which supports an async version of the r(r)}r*(hCX-Class which supports an async version of the hDj"ubcdocutils.nodes title_reference r+)r,}r-(hCX `apply()`hL}r.(hN]hO]hP]hQ]hS]uhDj"h>]r/h_Xapply()r0r1}r2(hCUhDj,ubahJUtitle_referencer3ubh_X builtinr4r5}r6(hCX builtinhDj"ubeubhk)r7}r8(hCUhDjhENhJhnhL}r9(hQ]hP]hN]hO]hS]Uentries]r:(hqX=TaskPool.Pool.Process (class in celery.concurrency.processes)h/Utr;auhUNhVhh>]ubh)r<}r=(hCUhDjhENhJhhL}r>(hhXpyhQ]hP]hN]hO]hS]hXclassr?hj?uhUNhVhh>]r@(h)rA}rB(hCXMTaskPool.Pool.Process(group=None, target=None, name=None, args=(), kwargs={})hDj<hEhhJhhL}rC(hQ]rDh/ahhFXcelery.concurrency.processesrErF}rGbhP]hN]hO]hS]rHh/ahXTaskPool.Pool.ProcessrIhjhuhUNhVhh>]rJ(h)rK}rL(hCXclass hDjAhEhhJhhL}rM(hN]hO]hP]hQ]hS]uhUNhVhh>]rNh_Xclass rOrP}rQ(hCUhDjKubaubh)rR}rS(hCXProcesshDjAhEhhJhhL}rT(hN]hO]hP]hQ]hS]uhUNhVhh>]rUh_XProcessrVrW}rX(hCUhDjRubaubh)rY}rZ(hCUhDjAhEhhJhhL}r[(hN]hO]hP]hQ]hS]uhUNhVhh>]r\(h)r]}r^(hCX group=NonehL}r_(hN]hO]hP]hQ]hS]uhDjYh>]r`h_X group=Nonerarb}rc(hCUhDj]ubahJhubh)rd}re(hCX target=NonehL}rf(hN]hO]hP]hQ]hS]uhDjYh>]rgh_X target=Nonerhri}rj(hCUhDjdubahJhubh)rk}rl(hCX name=NonehL}rm(hN]hO]hP]hQ]hS]uhDjYh>]rnh_X name=Nonerorp}rq(hCUhDjkubahJhubh)rr}rs(hCXargs=()hL}rt(hN]hO]hP]hQ]hS]uhDjYh>]ruh_Xargs=()rvrw}rx(hCUhDjrubahJhubh)ry}rz(hCX kwargs={}hL}r{(hN]hO]hP]hQ]hS]uhDjYh>]r|h_X kwargs={}r}r~}r(hCUhDjyubahJhubeubeubh)r}r(hCUhDj<hEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r(hs)r}r(hCXDProcess objects represent activity that is run in a separate processrhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.ProcessrhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]rh_XDProcess objects represent activity that is run in a separate processrr}r(hCjhDjubaubhs)r}r(hCX,The class is analagous to `threading.Thread`hDjhEjhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]r(h_XThe class is analagous to rr}r(hCXThe class is analagous to hDjubj+)r}r(hCX`threading.Thread`hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xthreading.Threadrr}r(hCUhDjubahJj3ubeubhk)r}r(hCUhDjhENhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXFauthkey (celery.concurrency.processes.TaskPool.Pool.Process attribute)hUtrauhUNhVhh>]ubh)r}r(hCUhDjhENhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hX attributerhjuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.Process.authkeyhDjhEhhJhhL}r(hQ]rhahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rhahXTaskPool.Pool.Process.authkeyhjIhuhUNhVhh>]rh)r}r(hCXauthkeyhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xauthkeyrr}r(hCUhDjubaubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubhk)r}r(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.Process.daemonrhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXEdaemon (celery.concurrency.processes.TaskPool.Pool.Process attribute)h UtrauhUNhVhh>]ubh)r}r(hCUhDjhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hX attributerhjuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.Process.daemonhDjhEhhJhhL}r(hQ]rh ahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rh ahXTaskPool.Pool.Process.daemonhjIhuhUNhVhh>]rh)r}r(hCXdaemonhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xdaemonrr}r(hCUhDjubaubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rhs)r}r(hCX"Return whether process is a daemonrhDjhEjhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]rh_X"Return whether process is a daemonrr}r(hCjhDjubaubaubeubhk)r}r(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.Process.exitcoderhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXGexitcode (celery.concurrency.processes.TaskPool.Pool.Process attribute)hUtrauhUNhVhh>]ubh)r}r(hCUhDjhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hX attributerhjuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.Process.exitcodehDjhEhhJhhL}r(hQ]rhahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rhahXTaskPool.Pool.Process.exitcodehjIhuhUNhVhh>]rh)r}r(hCXexitcodehDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xexitcoderr}r(hCUhDjubaubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rhs)r}r(hCX;Return exit code of process or `None` if it has yet to stophDjhEjhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]r(h_XReturn exit code of process or rr}r(hCXReturn exit code of process or hDjubj+)r}r(hCX`None`hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_XNoner r }r (hCUhDjubahJj3ubh_X if it has yet to stopr r }r(hCX if it has yet to stophDjubeubaubeubhk)r}r(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.Process.identrhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXDident (celery.concurrency.processes.TaskPool.Pool.Process attribute)hUtrauhUNhVhh>]ubh)r}r(hCUhDjhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hX attributerhjuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.Process.identhDjhEhhJhhL}r(hQ]rhahhFXcelery.concurrency.processesrr}r bhP]hN]hO]hS]r!hahXTaskPool.Pool.Process.identhjIhuhUNhVhh>]r"h)r#}r$(hCXidenthDjhEhhJhhL}r%(hN]hO]hP]hQ]hS]uhUNhVhh>]r&h_Xidentr'r(}r)(hCUhDj#ubaubaubh)r*}r+(hCUhDjhEhhJhhL}r,(hN]hO]hP]hQ]hS]uhUNhVhh>]r-hs)r.}r/(hCXCReturn identifier (PID) of process or `None` if it has yet to starthDj*hEjhJhxhL}r0(hN]hO]hP]hQ]hS]uhUKhVhh>]r1(h_X&Return identifier (PID) of process or r2r3}r4(hCX&Return identifier (PID) of process or hDj.ubj+)r5}r6(hCX`None`hL}r7(hN]hO]hP]hQ]hS]uhDj.h>]r8h_XNoner9r:}r;(hCUhDj5ubahJj3ubh_X if it has yet to startr<r=}r>(hCX if it has yet to starthDj.ubeubaubeubhk)r?}r@(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.Process.is_aliverAhJhnhL}rB(hQ]hP]hN]hO]hS]Uentries]rC(hqXFis_alive() (celery.concurrency.processes.TaskPool.Pool.Process method)h%UtrDauhUNhVhh>]ubh)rE}rF(hCUhDjhEjAhJhhL}rG(hhXpyhQ]hP]hN]hO]hS]hXmethodrHhjHuhUNhVhh>]rI(h)rJ}rK(hCX TaskPool.Pool.Process.is_alive()hDjEhEhhJhhL}rL(hQ]rMh%ahhFXcelery.concurrency.processesrNrO}rPbhP]hN]hO]hS]rQh%ahXTaskPool.Pool.Process.is_alivehjIhuhUNhVhh>]rR(h)rS}rT(hCXis_alivehDjJhEhhJhhL}rU(hN]hO]hP]hQ]hS]uhUNhVhh>]rVh_Xis_aliverWrX}rY(hCUhDjSubaubh)rZ}r[(hCUhDjJhEhhJhhL}r\(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)r]}r^(hCUhDjEhEhhJhhL}r_(hN]hO]hP]hQ]hS]uhUNhVhh>]r`hs)ra}rb(hCXReturn whether process is aliverchDj]hEjAhJhxhL}rd(hN]hO]hP]hQ]hS]uhUKhVhh>]reh_XReturn whether process is aliverfrg}rh(hCjchDjaubaubaubeubhk)ri}rj(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.Process.joinrkhJhnhL}rl(hQ]hP]hN]hO]hS]Uentries]rm(hqXBjoin() (celery.concurrency.processes.TaskPool.Pool.Process method)h$UtrnauhUNhVhh>]ubh)ro}rp(hCUhDjhEjkhJhhL}rq(hhXpyhQ]hP]hN]hO]hS]hXmethodrrhjruhUNhVhh>]rs(h)rt}ru(hCX(TaskPool.Pool.Process.join(timeout=None)hDjohEhhJhhL}rv(hQ]rwh$ahhFXcelery.concurrency.processesrxry}rzbhP]hN]hO]hS]r{h$ahXTaskPool.Pool.Process.joinhjIhuhUNhVhh>]r|(h)r}}r~(hCXjoinhDjthEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xjoinrr}r(hCUhDj}ubaubh)r}r(hCUhDjthEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh)r}r(hCX timeout=NonehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_X timeout=Nonerr}r(hCUhDjubahJhubaubeubh)r}r(hCUhDjohEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rhs)r}r(hCX#Wait until child process terminatesrhDjhEjkhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]rh_X#Wait until child process terminatesrr}r(hCjhDjubaubaubeubhk)r}r(hCUhDjhENhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXCname (celery.concurrency.processes.TaskPool.Pool.Process attribute)h"UtrauhUNhVhh>]ubh)r}r(hCUhDjhENhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hX attributerhjuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.Process.namehDjhEhhJhhL}r(hQ]rh"ahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rh"ahXTaskPool.Pool.Process.namehjIhuhUNhVhh>]rh)r}r(hCXnamehDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xnamerr}r(hCUhDjubaubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubhk)r}r(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.Process.pidrhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXBpid (celery.concurrency.processes.TaskPool.Pool.Process attribute)h UtrauhUNhVhh>]ubh)r}r(hCUhDjhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hX attributerhjuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.Process.pidhDjhEhhJhhL}r(hQ]rh ahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rh ahXTaskPool.Pool.Process.pidhjIhuhUNhVhh>]rh)r}r(hCXpidhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xpidrr}r(hCUhDjubaubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rhs)r}r(hCXCReturn identifier (PID) of process or `None` if it has yet to starthDjhEjhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]r(h_X&Return identifier (PID) of process or rr}r(hCX&Return identifier (PID) of process or hDjubj+)r}r(hCX`None`hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_XNonerr}r(hCUhDjubahJj3ubh_X if it has yet to startrr}r(hCX if it has yet to starthDjubeubaubeubhk)r}r(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.Process.runrhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXArun() (celery.concurrency.processes.TaskPool.Pool.Process method)h UtrauhUNhVhh>]ubh)r}r(hCUhDjhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXmethodrhjuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.Process.run()hDjhEhhJhhL}r(hQ]rh ahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rh ahXTaskPool.Pool.Process.runhjIhuhUNhVhh>]r(h)r}r(hCXrunhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xrunrr}r(hCUhDjubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r hs)r }r (hCX?Method to be run in sub-process; can be overridden in sub-classr hDjhEjhJhxhL}r (hN]hO]hP]hQ]hS]uhUKhVhh>]rh_X?Method to be run in sub-process; can be overridden in sub-classrr}r(hCj hDj ubaubaubeubhk)r}r(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.Process.startrhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXCstart() (celery.concurrency.processes.TaskPool.Pool.Process method)h'UtrauhUNhVhh>]ubh)r}r(hCUhDjhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXmethodrhjuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.Process.start()hDjhEhhJhhL}r(hQ]r h'ahhFXcelery.concurrency.processesr!r"}r#bhP]hN]hO]hS]r$h'ahXTaskPool.Pool.Process.starthjIhuhUNhVhh>]r%(h)r&}r'(hCXstarthDjhEhhJhhL}r((hN]hO]hP]hQ]hS]uhUNhVhh>]r)h_Xstartr*r+}r,(hCUhDj&ubaubh)r-}r.(hCUhDjhEhhJhhL}r/(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)r0}r1(hCUhDjhEhhJhhL}r2(hN]hO]hP]hQ]hS]uhUNhVhh>]r3hs)r4}r5(hCXStart child processr6hDj0hEjhJhxhL}r7(hN]hO]hP]hQ]hS]uhUKhVhh>]r8h_XStart child processr9r:}r;(hCj6hDj4ubaubaubeubhk)r<}r=(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.Process.terminater>hJhnhL}r?(hQ]hP]hN]hO]hS]Uentries]r@(hqXGterminate() (celery.concurrency.processes.TaskPool.Pool.Process method)hUtrAauhUNhVhh>]ubh)rB}rC(hCUhDjhEj>hJhhL}rD(hhXpyhQ]hP]hN]hO]hS]hXmethodrEhjEuhUNhVhh>]rF(h)rG}rH(hCX!TaskPool.Pool.Process.terminate()hDjBhEhhJhhL}rI(hQ]rJhahhFXcelery.concurrency.processesrKrL}rMbhP]hN]hO]hS]rNhahXTaskPool.Pool.Process.terminatehjIhuhUNhVhh>]rO(h)rP}rQ(hCX terminatehDjGhEhhJhhL}rR(hN]hO]hP]hQ]hS]uhUNhVhh>]rSh_X terminaterTrU}rV(hCUhDjPubaubh)rW}rX(hCUhDjGhEhhJhhL}rY(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)rZ}r[(hCUhDjBhEhhJhhL}r\(hN]hO]hP]hQ]hS]uhUNhVhh>]r]hs)r^}r_(hCXBTerminate process; sends SIGTERM signal or uses TerminateProcess()r`hDjZhEj>hJhxhL}ra(hN]hO]hP]hQ]hS]uhUKhVhh>]rbh_XBTerminate process; sends SIGTERM signal or uses TerminateProcess()rcrd}re(hCj`hDj^ubaubaubeubeubeubhk)rf}rg(hCUhDjhENhJhnhL}rh(hQ]hP]hN]hO]hS]Uentries]ri(hqXCTaskPool.Pool.ResultHandler (class in celery.concurrency.processes)h1UtrjauhUNhVhh>]ubh)rk}rl(hCUhDjhENhJhhL}rm(hhXpyhQ]hP]hN]hO]hS]hXclassrnhjnuhUNhVhh>]ro(h)rp}rq(hCXUTaskPool.Pool.ResultHandler(outqueue, get, cache, poll, join_exited_workers, putlock)hDjkhEhhJhhL}rr(hQ]rsh1ahhFXcelery.concurrency.processesrtru}rvbhP]hN]hO]hS]rwh1ahXTaskPool.Pool.ResultHandlerrxhX TaskPool.PoolhuhUNhVhh>]ry(h)rz}r{(hCXclass hDjphEhhJhhL}r|(hN]hO]hP]hQ]hS]uhUNhVhh>]r}h_Xclass r~r}r(hCUhDjzubaubh)r}r(hCXTaskPool.Pool.hDjphEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XTaskPool.Pool.rr}r(hCUhDjubaubh)r}r(hCX ResultHandlerhDjphEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_X ResultHandlerrr}r(hCUhDjubaubh)r}r(hCUhDjphEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r(h)r}r(hCXoutqueuehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xoutqueuerr}r(hCUhDjubahJhubh)r}r(hCXgethL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xgetrr}r(hCUhDjubahJhubh)r}r(hCXcachehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xcacherr}r(hCUhDjubahJhubh)r}r(hCXpollhL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xpollrr}r(hCUhDjubahJhubh)r}r(hCXjoin_exited_workershL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xjoin_exited_workersrr}r(hCUhDjubahJhubh)r}r(hCXputlockhL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xputlockrr}r(hCUhDjubahJhubeubeubh)r}r(hCUhDjkhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r(hk)r}r(hCUhDjhENhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXHbody() (celery.concurrency.processes.TaskPool.Pool.ResultHandler method)hUtrauhUNhVhh>]ubh)r}r(hCUhDjhENhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXmethodrhjuhUNhVhh>]r(h)r}r(hCX"TaskPool.Pool.ResultHandler.body()hDjhEhhJhhL}r(hQ]rhahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rhahX TaskPool.Pool.ResultHandler.bodyhjxhuhUNhVhh>]r(h)r}r(hCXbodyhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xbodyrr}r(hCUhDjubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubeubeubhk)r}r(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.SoftTimeLimitExceededrhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqX#TaskPool.Pool.SoftTimeLimitExceededrh-UtrauhUNhVhh>]ubh)r}r(hCUhDjhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hX exceptionrhjuhUNhVhh>]r(h)r}r(hCX#TaskPool.Pool.SoftTimeLimitExceededhDjhEhhJhhL}r(hQ]rh-ahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rh-ahjhX TaskPool.PoolhuhUNhVhh>]r(h)r}r(hCX exception hDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_X exception rr}r(hCUhDjubaubh)r}r(hCXTaskPool.Pool.hDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XTaskPool.Pool.rr}r(hCUhDjubaubh)r}r(hCXSoftTimeLimitExceededhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XSoftTimeLimitExceededrr }r (hCUhDjubaubeubh)r }r (hCUhDjhEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]rhs)r}r(hCXfThe soft time limit has been exceeded. This exception is raised to give the task a chance to clean up.rhDj hEjhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]rh_XfThe soft time limit has been exceeded. This exception is raised to give the task a chance to clean up.rr}r(hCjhDjubaubaubeubhk)r}r(hCUhDjhENhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqX@TaskPool.Pool.Supervisor (class in celery.concurrency.processes)h#UtrauhUNhVhh>]ubh)r}r(hCUhDjhENhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXclassrhjuhUNhVhh>]r (h)r!}r"(hCXTaskPool.Pool.Supervisor(pool)hDjhEhhJhhL}r#(hQ]r$h#ahhFXcelery.concurrency.processesr%r&}r'bhP]hN]hO]hS]r(h#ahXTaskPool.Pool.Supervisorr)hX TaskPool.PoolhuhUNhVhh>]r*(h)r+}r,(hCXclass hDj!hEhhJhhL}r-(hN]hO]hP]hQ]hS]uhUNhVhh>]r.h_Xclass r/r0}r1(hCUhDj+ubaubh)r2}r3(hCXTaskPool.Pool.hDj!hEhhJhhL}r4(hN]hO]hP]hQ]hS]uhUNhVhh>]r5h_XTaskPool.Pool.r6r7}r8(hCUhDj2ubaubh)r9}r:(hCX SupervisorhDj!hEhhJhhL}r;(hN]hO]hP]hQ]hS]uhUNhVhh>]r<h_X Supervisorr=r>}r?(hCUhDj9ubaubh)r@}rA(hCUhDj!hEhhJhhL}rB(hN]hO]hP]hQ]hS]uhUNhVhh>]rCh)rD}rE(hCXpoolhL}rF(hN]hO]hP]hQ]hS]uhDj@h>]rGh_XpoolrHrI}rJ(hCUhDjDubahJhubaubeubh)rK}rL(hCUhDjhEhhJhhL}rM(hN]hO]hP]hQ]hS]uhUNhVhh>]rN(hk)rO}rP(hCUhDjKhENhJhnhL}rQ(hQ]hP]hN]hO]hS]Uentries]rR(hqXEbody() (celery.concurrency.processes.TaskPool.Pool.Supervisor method)h UtrSauhUNhVhh>]ubh)rT}rU(hCUhDjKhENhJhhL}rV(hhXpyhQ]hP]hN]hO]hS]hXmethodrWhjWuhUNhVhh>]rX(h)rY}rZ(hCXTaskPool.Pool.Supervisor.body()hDjThEhhJhhL}r[(hQ]r\h ahhFXcelery.concurrency.processesr]r^}r_bhP]hN]hO]hS]r`h ahXTaskPool.Pool.Supervisor.bodyhj)huhUNhVhh>]ra(h)rb}rc(hCXbodyhDjYhEhhJhhL}rd(hN]hO]hP]hQ]hS]uhUNhVhh>]reh_Xbodyrfrg}rh(hCUhDjbubaubh)ri}rj(hCUhDjYhEhhJhhL}rk(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)rl}rm(hCUhDjThEhhJhhL}rn(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubeubeubhk)ro}rp(hCUhDjhENhJhnhL}rq(hQ]hP]hN]hO]hS]Uentries]rr(hqXATaskPool.Pool.TaskHandler (class in celery.concurrency.processes)h)UtrsauhUNhVhh>]ubh)rt}ru(hCUhDjhENhJhhL}rv(hhXpyhQ]hP]hN]hO]hS]hXclassrwhjwuhUNhVhh>]rx(h)ry}rz(hCX9TaskPool.Pool.TaskHandler(taskqueue, put, outqueue, pool)hDjthEhhJhhL}r{(hQ]r|h)ahhFXcelery.concurrency.processesr}r~}rbhP]hN]hO]hS]rh)ahXTaskPool.Pool.TaskHandlerrhX TaskPool.PoolhuhUNhVhh>]r(h)r}r(hCXclass hDjyhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xclass rr}r(hCUhDjubaubh)r}r(hCXTaskPool.Pool.hDjyhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XTaskPool.Pool.rr}r(hCUhDjubaubh)r}r(hCX TaskHandlerhDjyhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_X TaskHandlerrr}r(hCUhDjubaubh)r}r(hCUhDjyhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r(h)r}r(hCX taskqueuehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_X taskqueuerr}r(hCUhDjubahJhubh)r}r(hCXputhL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xputrr}r(hCUhDjubahJhubh)r}r(hCXoutqueuehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xoutqueuerr}r(hCUhDjubahJhubh)r}r(hCXpoolhL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xpoolrr}r(hCUhDjubahJhubeubeubh)r}r(hCUhDjthEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r(hk)r}r(hCUhDjhENhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXFbody() (celery.concurrency.processes.TaskPool.Pool.TaskHandler method)hUtrauhUNhVhh>]ubh)r}r(hCUhDjhENhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXmethodrhjuhUNhVhh>]r(h)r}r(hCX TaskPool.Pool.TaskHandler.body()hDjhEhhJhhL}r(hQ]rhahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rhahXTaskPool.Pool.TaskHandler.bodyhjhuhUNhVhh>]r(h)r}r(hCXbodyhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xbodyrr}r(hCUhDjubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubeubeubhk)r}r(hCUhDjhENhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXDTaskPool.Pool.TimeoutHandler (class in celery.concurrency.processes)hUtrauhUNhVhh>]ubh)r}r(hCUhDjhENhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXclassrhjuhUNhVhh>]r(h)r}r(hCXGTaskPool.Pool.TimeoutHandler(processes, cache, t_soft, t_hard, putlock)hDjhEhhJhhL}r(hQ]rhahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rhahXTaskPool.Pool.TimeoutHandlerrhX TaskPool.PoolhuhUNhVhh>]r(h)r}r(hCXclass hDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xclass rr}r(hCUhDjubaubh)r}r(hCXTaskPool.Pool.hDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XTaskPool.Pool.rr}r(hCUhDjubaubh)r}r(hCXTimeoutHandlerhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XTimeoutHandlerrr}r(hCUhDjubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r(h)r }r (hCX processeshL}r (hN]hO]hP]hQ]hS]uhDjh>]r h_X processesr r}r(hCUhDj ubahJhubh)r}r(hCXcachehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xcacherr}r(hCUhDjubahJhubh)r}r(hCXt_softhL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xt_softrr}r(hCUhDjubahJhubh)r}r(hCXt_hardhL}r (hN]hO]hP]hQ]hS]uhDjh>]r!h_Xt_hardr"r#}r$(hCUhDjubahJhubh)r%}r&(hCXputlockhL}r'(hN]hO]hP]hQ]hS]uhDjh>]r(h_Xputlockr)r*}r+(hCUhDj%ubahJhubeubeubh)r,}r-(hCUhDjhEhhJhhL}r.(hN]hO]hP]hQ]hS]uhUNhVhh>]r/(hk)r0}r1(hCUhDj,hENhJhnhL}r2(hQ]hP]hN]hO]hS]Uentries]r3(hqXIbody() (celery.concurrency.processes.TaskPool.Pool.TimeoutHandler method)hUtr4auhUNhVhh>]ubh)r5}r6(hCUhDj,hENhJhhL}r7(hhXpyhQ]hP]hN]hO]hS]hXmethodr8hj8uhUNhVhh>]r9(h)r:}r;(hCX#TaskPool.Pool.TimeoutHandler.body()hDj5hEhhJhhL}r<(hQ]r=hahhFXcelery.concurrency.processesr>r?}r@bhP]hN]hO]hS]rAhahX!TaskPool.Pool.TimeoutHandler.bodyhjhuhUNhVhh>]rB(h)rC}rD(hCXbodyhDj:hEhhJhhL}rE(hN]hO]hP]hQ]hS]uhUNhVhh>]rFh_XbodyrGrH}rI(hCUhDjCubaubh)rJ}rK(hCUhDj:hEhhJhhL}rL(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)rM}rN(hCUhDj5hEhhJhhL}rO(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubeubeubhk)rP}rQ(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.applyrRhJhnhL}rS(hQ]hP]hN]hO]hS]Uentries]rT(hqX;apply() (celery.concurrency.processes.TaskPool.Pool method)hUtrUauhUNhVhh>]ubh)rV}rW(hCUhDjhEjRhJhhL}rX(hhXpyhQ]hP]hN]hO]hS]hXmethodrYhjYuhUNhVhh>]rZ(h)r[}r\(hCX+TaskPool.Pool.apply(func, args=(), kwds={})hDjVhEhhJhhL}r](hQ]r^hahhFXcelery.concurrency.processesr_r`}rabhP]hN]hO]hS]rbhahXTaskPool.Pool.applyhX TaskPool.PoolhuhUNhVhh>]rc(h)rd}re(hCXTaskPool.Pool.hDj[hEhhJhhL}rf(hN]hO]hP]hQ]hS]uhUNhVhh>]rgh_XTaskPool.Pool.rhri}rj(hCUhDjdubaubh)rk}rl(hCXapplyhDj[hEhhJhhL}rm(hN]hO]hP]hQ]hS]uhUNhVhh>]rnh_Xapplyrorp}rq(hCUhDjkubaubh)rr}rs(hCUhDj[hEhhJhhL}rt(hN]hO]hP]hQ]hS]uhUNhVhh>]ru(h)rv}rw(hCXfunchL}rx(hN]hO]hP]hQ]hS]uhDjrh>]ryh_Xfuncrzr{}r|(hCUhDjvubahJhubh)r}}r~(hCXargs=()hL}r(hN]hO]hP]hQ]hS]uhDjrh>]rh_Xargs=()rr}r(hCUhDj}ubahJhubh)r}r(hCXkwds={}hL}r(hN]hO]hP]hQ]hS]uhDjrh>]rh_Xkwds={}rr}r(hCUhDjubahJhubeubeubh)r}r(hCUhDjVhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rhs)r}r(hCXEquivalent of `apply()` builtinhDjhEjRhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]r(h_XEquivalent of rr}r(hCXEquivalent of hDjubj+)r}r(hCX `apply()`hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xapply()rr}r(hCUhDjubahJj3ubh_X builtinrr}r(hCX builtinhDjubeubaubeubhk)r}r(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.apply_asyncrhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXAapply_async() (celery.concurrency.processes.TaskPool.Pool method)hUtrauhUNhVhh>]ubh)r}r(hCUhDjhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXmethodrhjuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.apply_async(func, args=(), kwds={}, callback=None, accept_callback=None, timeout_callback=None, waitforslot=False, error_callback=None)hDjhEhhJhhL}r(hQ]rhahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rhahXTaskPool.Pool.apply_asynchX TaskPool.PoolhuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.hDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XTaskPool.Pool.rr}r(hCUhDjubaubh)r}r(hCX apply_asynchDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_X apply_asyncrr}r(hCUhDjubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r(h)r}r(hCXfunchL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xfuncrr}r(hCUhDjubahJhubh)r}r(hCXargs=()hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xargs=()rr}r(hCUhDjubahJhubh)r}r(hCXkwds={}hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xkwds={}rr}r(hCUhDjubahJhubh)r}r(hCX callback=NonehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_X callback=Nonerr}r(hCUhDjubahJhubh)r}r(hCXaccept_callback=NonehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xaccept_callback=Nonerr}r(hCUhDjubahJhubh)r}r(hCXtimeout_callback=NonehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xtimeout_callback=Nonerr}r(hCUhDjubahJhubh)r}r(hCXwaitforslot=FalsehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xwaitforslot=Falserr}r(hCUhDjubahJhubh)r}r(hCXerror_callback=NonehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xerror_callback=Nonerr}r(hCUhDjubahJhubeubeubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r(hs)r}r(hCX-Asynchronous equivalent of `apply()` builtin.rhDjhEjhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]r(h_XAsynchronous equivalent of rr}r (hCXAsynchronous equivalent of hDjubj+)r }r (hCX `apply()`hL}r (hN]hO]hP]hQ]hS]uhDjh>]r h_Xapply()rr}r(hCUhDj ubahJj3ubh_X builtin.rr}r(hCX builtin.hDjubeubhs)r}r(hCXCallback is called when the functions return value is ready. The accept callback is called when the job is accepted to be executed.rhDjhEjhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]rh_XCallback is called when the functions return value is ready. The accept callback is called when the job is accepted to be executed.rr}r(hCjhDjubaubhs)r}r(hCX!Simplified the flow is like this:rhDjhEjhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]r h_X!Simplified the flow is like this:r!r"}r#(hCjhDjubaubcdocutils.nodes doctest_block r$)r%}r&(hCX|>>> if accept_callback: ... accept_callback() >>> retval = func(*args, **kwds) >>> if callback: ... callback(retval)hDjhENhJU doctest_blockr'hL}r((U xml:spacer)Upreserver*hQ]hP]hN]hO]hS]uhUNhVhh>]r+h_X|>>> if accept_callback: ... accept_callback() >>> retval = func(*args, **kwds) >>> if callback: ... callback(retval)r,r-}r.(hCUhDj%ubaubeubeubhk)r/}r0(hCUhDjhENhJhnhL}r1(hQ]hP]hN]hO]hS]Uentries]r2(hqX;close() (celery.concurrency.processes.TaskPool.Pool method)h!Utr3auhUNhVhh>]ubh)r4}r5(hCUhDjhENhJhhL}r6(hhXpyhQ]hP]hN]hO]hS]hXmethodr7hj7uhUNhVhh>]r8(h)r9}r:(hCXTaskPool.Pool.close()hDj4hEhhJhhL}r;(hQ]r<h!ahhFXcelery.concurrency.processesr=r>}r?bhP]hN]hO]hS]r@h!ahXTaskPool.Pool.closehX TaskPool.PoolhuhUNhVhh>]rA(h)rB}rC(hCXTaskPool.Pool.hDj9hEhhJhhL}rD(hN]hO]hP]hQ]hS]uhUNhVhh>]rEh_XTaskPool.Pool.rFrG}rH(hCUhDjBubaubh)rI}rJ(hCXclosehDj9hEhhJhhL}rK(hN]hO]hP]hQ]hS]uhUNhVhh>]rLh_XcloserMrN}rO(hCUhDjIubaubh)rP}rQ(hCUhDj9hEhhJhhL}rR(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)rS}rT(hCUhDj4hEhhJhhL}rU(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubhk)rV}rW(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.imaprXhJhnhL}rY(hQ]hP]hN]hO]hS]Uentries]rZ(hqX:imap() (celery.concurrency.processes.TaskPool.Pool method)hUtr[auhUNhVhh>]ubh)r\}r](hCUhDjhEjXhJhhL}r^(hhXpyhQ]hP]hN]hO]hS]hXmethodr_hj_uhUNhVhh>]r`(h)ra}rb(hCX/TaskPool.Pool.imap(func, iterable, chunksize=1)hDj\hEhhJhhL}rc(hQ]rdhahhFXcelery.concurrency.processesrerf}rgbhP]hN]hO]hS]rhhahXTaskPool.Pool.imaphX TaskPool.PoolhuhUNhVhh>]ri(h)rj}rk(hCXTaskPool.Pool.hDjahEhhJhhL}rl(hN]hO]hP]hQ]hS]uhUNhVhh>]rmh_XTaskPool.Pool.rnro}rp(hCUhDjjubaubh)rq}rr(hCXimaphDjahEhhJhhL}rs(hN]hO]hP]hQ]hS]uhUNhVhh>]rth_Ximaprurv}rw(hCUhDjqubaubh)rx}ry(hCUhDjahEhhJhhL}rz(hN]hO]hP]hQ]hS]uhUNhVhh>]r{(h)r|}r}(hCXfunchL}r~(hN]hO]hP]hQ]hS]uhDjxh>]rh_Xfuncrr}r(hCUhDj|ubahJhubh)r}r(hCXiterablehL}r(hN]hO]hP]hQ]hS]uhDjxh>]rh_Xiterablerr}r(hCUhDjubahJhubh)r}r(hCX chunksize=1hL}r(hN]hO]hP]hQ]hS]uhDjxh>]rh_X chunksize=1rr}r(hCUhDjubahJhubeubeubh)r}r(hCUhDj\hEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rhs)r}r(hCXHEquivalent of `itertools.imap()` -- can be MUCH slower than `Pool.map()`hDjhEjXhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]r(h_XEquivalent of rr}r(hCXEquivalent of hDjubj+)r}r(hCX`itertools.imap()`hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xitertools.imap()rr}r(hCUhDjubahJj3ubh_X -- can be MUCH slower than rr}r(hCX -- can be MUCH slower than hDjubj+)r}r(hCX `Pool.map()`hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_X Pool.map()rr}r(hCUhDjubahJj3ubeubaubeubhk)r}r(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.imap_unorderedrhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqXDimap_unordered() (celery.concurrency.processes.TaskPool.Pool method)hUtrauhUNhVhh>]ubh)r}r(hCUhDjhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXmethodrhjuhUNhVhh>]r(h)r}r(hCX9TaskPool.Pool.imap_unordered(func, iterable, chunksize=1)hDjhEhhJhhL}r(hQ]rhahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rhahXTaskPool.Pool.imap_unorderedhX TaskPool.PoolhuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.hDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XTaskPool.Pool.rr}r(hCUhDjubaubh)r}r(hCXimap_unorderedhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Ximap_unorderedrr}r(hCUhDjubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r(h)r}r(hCXfunchL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xfuncrr}r(hCUhDjubahJhubh)r}r(hCXiterablehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xiterablerr}r(hCUhDjubahJhubh)r}r(hCX chunksize=1hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_X chunksize=1rr}r(hCUhDjubahJhubeubeubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rhs)r}r(hCX9Like `imap()` method but ordering of results is arbitraryhDjhEjhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]r(h_XLike rr}r(hCXLike hDjubj+)r}r(hCX`imap()`hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Ximap()rr}r(hCUhDjubahJj3ubh_X, method but ordering of results is arbitraryrr}r(hCX, method but ordering of results is arbitraryhDjubeubaubeubhk)r}r(hCUhDjhENhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqX:join() (celery.concurrency.processes.TaskPool.Pool method)h*UtrauhUNhVhh>]ubh)r}r(hCUhDjhENhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXmethodrhjuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.join()hDjhEhhJhhL}r (hQ]r h*ahhFXcelery.concurrency.processesr r }r bhP]hN]hO]hS]rh*ahXTaskPool.Pool.joinhX TaskPool.PoolhuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.hDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XTaskPool.Pool.rr}r(hCUhDjubaubh)r}r(hCXjoinhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_Xjoinrr}r(hCUhDjubaubh)r}r(hCUhDjhEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)r!}r"(hCUhDjhEhhJhhL}r#(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubhk)r$}r%(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.mapr&hJhnhL}r'(hQ]hP]hN]hO]hS]Uentries]r((hqX9map() (celery.concurrency.processes.TaskPool.Pool method)h+Utr)auhUNhVhh>]ubh)r*}r+(hCUhDjhEj&hJhhL}r,(hhXpyhQ]hP]hN]hO]hS]hXmethodr-hj-uhUNhVhh>]r.(h)r/}r0(hCX1TaskPool.Pool.map(func, iterable, chunksize=None)hDj*hEhhJhhL}r1(hQ]r2h+ahhFXcelery.concurrency.processesr3r4}r5bhP]hN]hO]hS]r6h+ahXTaskPool.Pool.maphX TaskPool.PoolhuhUNhVhh>]r7(h)r8}r9(hCXTaskPool.Pool.hDj/hEhhJhhL}r:(hN]hO]hP]hQ]hS]uhUNhVhh>]r;h_XTaskPool.Pool.r<r=}r>(hCUhDj8ubaubh)r?}r@(hCXmaphDj/hEhhJhhL}rA(hN]hO]hP]hQ]hS]uhUNhVhh>]rBh_XmaprCrD}rE(hCUhDj?ubaubh)rF}rG(hCUhDj/hEhhJhhL}rH(hN]hO]hP]hQ]hS]uhUNhVhh>]rI(h)rJ}rK(hCXfunchL}rL(hN]hO]hP]hQ]hS]uhDjFh>]rMh_XfuncrNrO}rP(hCUhDjJubahJhubh)rQ}rR(hCXiterablehL}rS(hN]hO]hP]hQ]hS]uhDjFh>]rTh_XiterablerUrV}rW(hCUhDjQubahJhubh)rX}rY(hCXchunksize=NonehL}rZ(hN]hO]hP]hQ]hS]uhDjFh>]r[h_Xchunksize=Noner\r]}r^(hCUhDjXubahJhubeubeubh)r_}r`(hCUhDj*hEhhJhhL}ra(hN]hO]hP]hQ]hS]uhUNhVhh>]rbhs)rc}rd(hCXEquivalent of `map()` builtinhDj_hEj&hJhxhL}re(hN]hO]hP]hQ]hS]uhUKhVhh>]rf(h_XEquivalent of rgrh}ri(hCXEquivalent of hDjcubj+)rj}rk(hCX`map()`hL}rl(hN]hO]hP]hQ]hS]uhDjch>]rmh_Xmap()rnro}rp(hCUhDjjubahJj3ubh_X builtinrqrr}rs(hCX builtinhDjcubeubaubeubhk)rt}ru(hCUhDjhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.Pool.map_asyncrvhJhnhL}rw(hQ]hP]hN]hO]hS]Uentries]rx(hqX?map_async() (celery.concurrency.processes.TaskPool.Pool method)hUtryauhUNhVhh>]ubh)rz}r{(hCUhDjhEjvhJhhL}r|(hhXpyhQ]hP]hN]hO]hS]hXmethodr}hj}uhUNhVhh>]r~(h)r}r(hCXFTaskPool.Pool.map_async(func, iterable, chunksize=None, callback=None)hDjzhEhhJhhL}r(hQ]rhahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rhahXTaskPool.Pool.map_asynchX TaskPool.PoolhuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.hDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XTaskPool.Pool.rr}r(hCUhDjubaubh)r}r(hCX map_asynchDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_X map_asyncrr}r(hCUhDjubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]r(h)r}r(hCXfunchL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xfuncrr}r(hCUhDjubahJhubh)r}r(hCXiterablehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xiterablerr}r(hCUhDjubahJhubh)r}r(hCXchunksize=NonehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xchunksize=Nonerr}r(hCUhDjubahJhubh)r}r(hCX callback=NonehL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_X callback=Nonerr}r(hCUhDjubahJhubeubeubh)r}r(hCUhDjzhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rhs)r}r(hCX*Asynchronous equivalent of `map()` builtinhDjhEjvhJhxhL}r(hN]hO]hP]hQ]hS]uhUKhVhh>]r(h_XAsynchronous equivalent of rr}r(hCXAsynchronous equivalent of hDjubj+)r}r(hCX`map()`hL}r(hN]hO]hP]hQ]hS]uhDjh>]rh_Xmap()rr}r(hCUhDjubahJj3ubh_X builtinrr}r(hCX builtinhDjubeubaubeubhk)r}r(hCUhDjhENhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqX?terminate() (celery.concurrency.processes.TaskPool.Pool method)h.UtrauhUNhVhh>]ubh)r}r(hCUhDjhENhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXmethodrhjuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.terminate()rhDjhEhhJhhL}r(hQ]rh.ahhFXcelery.concurrency.processesrr}rbhP]hN]hO]hS]rh.ahXTaskPool.Pool.terminatehX TaskPool.PoolhuhUNhVhh>]r(h)r}r(hCXTaskPool.Pool.hDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_XTaskPool.Pool.rr}r(hCUhDjubaubh)r}r(hCX terminatehDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]rh_X terminaterr}r(hCUhDjubaubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)r}r(hCUhDjhEhhJhhL}r(hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubeubeubhk)r}r(hCUhDhhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.apply_asyncrhJhnhL}r(hQ]hP]hN]hO]hS]Uentries]r(hqX<apply_async() (celery.concurrency.processes.TaskPool method)h(UtrauhUNhVhh>]ubh)r}r(hCUhDhhEjhJhhL}r(hhXpyhQ]hP]hN]hO]hS]hXmethodrhjuhUNhVhh>]r(h)r}r(hCXTaskPool.apply_async(target, args=None, kwargs=None, callbacks=None, errbacks=None, accept_callback=None, timeout_callback=None, **compat)hDjhEhhJhhL}r (hQ]r h(ahhFXcelery.concurrency.processesr r }r bhP]hN]hO]hS]r h(ahXTaskPool.apply_asynchXTaskPoolhuhUNhVhh>]r (h)r }r (hCX TaskPool.hDjhEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_X TaskPool.r r }r (hCUhDj ubaubh)r }r (hCX apply_asynchDjhEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_X apply_asyncr r }r (hCUhDj ubaubh)r }r (hCUhDjhEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r (h)r }r (hCXtargethL}r (hN]hO]hP]hQ]hS]uhDj h>]r h_Xtargetr r }r (hCUhDj ubahJhubh)r }r! (hCX args=NonehL}r" (hN]hO]hP]hQ]hS]uhDj h>]r# h_X args=Noner$ r% }r& (hCUhDj ubahJhubh)r' }r( (hCX kwargs=NonehL}r) (hN]hO]hP]hQ]hS]uhDj h>]r* h_X kwargs=Noner+ r, }r- (hCUhDj' ubahJhubh)r. }r/ (hCXcallbacks=NonehL}r0 (hN]hO]hP]hQ]hS]uhDj h>]r1 h_Xcallbacks=Noner2 r3 }r4 (hCUhDj. ubahJhubh)r5 }r6 (hCX errbacks=NonehL}r7 (hN]hO]hP]hQ]hS]uhDj h>]r8 h_X errbacks=Noner9 r: }r; (hCUhDj5 ubahJhubh)r< }r= (hCXaccept_callback=NonehL}r> (hN]hO]hP]hQ]hS]uhDj h>]r? h_Xaccept_callback=Noner@ rA }rB (hCUhDj< ubahJhubh)rC }rD (hCXtimeout_callback=NonehL}rE (hN]hO]hP]hQ]hS]uhDj h>]rF h_Xtimeout_callback=NonerG rH }rI (hCUhDjC ubahJhubh)rJ }rK (hCX**compathL}rL (hN]hO]hP]hQ]hS]uhDj h>]rM h_X**compatrN rO }rP (hCUhDjJ ubahJhubeubeubh)rQ }rR (hCUhDjhEhhJhhL}rS (hN]hO]hP]hQ]hS]uhUNhVhh>]rT (hs)rU }rV (hCX4Equivalent of the :func:``apply`` built-in function.hDjQ hEjhJhxhL}rW (hN]hO]hP]hQ]hS]uhUKhVhh>]rX (h_XEquivalent of the :func:rY rZ }r[ (hCXEquivalent of the :func:hDjU ubjN)r\ }r] (hCX ``apply``hL}r^ (hN]hO]hP]hQ]hS]uhDjU h>]r_ h_Xapplyr` ra }rb (hCUhDj\ ubahJjYubh_X built-in function.rc rd }re (hCX built-in function.hDjU ubeubhs)rf }rg (hCXAll ``callbacks`` and ``errbacks`` should complete immediately since otherwise the thread which handles the result will get blocked.hDjQ hEjhJhxhL}rh (hN]hO]hP]hQ]hS]uhUKhVhh>]ri (h_XAll rj rk }rl (hCXAll hDjf ubjN)rm }rn (hCX ``callbacks``hL}ro (hN]hO]hP]hQ]hS]uhDjf h>]rp h_X callbacksrq rr }rs (hCUhDjm ubahJjYubh_X and rt ru }rv (hCX and hDjf ubjN)rw }rx (hCX ``errbacks``hL}ry (hN]hO]hP]hQ]hS]uhDjf h>]rz h_Xerrbacksr{ r| }r} (hCUhDjw ubahJjYubh_Xb should complete immediately since otherwise the thread which handles the result will get blocked.r~ r }r (hCXb should complete immediately since otherwise the thread which handles the result will get blocked.hDjf ubeubeubeubhk)r }r (hCUhDhhENhJhnhL}r (hQ]hP]hN]hO]hS]Uentries]r (hqX6info (celery.concurrency.processes.TaskPool attribute)hUtr auhUNhVhh>]ubh)r }r (hCUhDhhENhJhhL}r (hhXpyhQ]hP]hN]hO]hS]hX attributer hj uhUNhVhh>]r (h)r }r (hCX TaskPool.infohDj hEhhJhhL}r (hQ]r hahhFXcelery.concurrency.processesr r }r bhP]hN]hO]hS]r hahX TaskPool.infohXTaskPoolhuhUNhVhh>]r (h)r }r (hCX TaskPool.hDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_X TaskPool.r r }r (hCUhDj ubaubh)r }r (hCXinfohDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_Xinfor r }r (hCUhDj ubaubeubh)r }r (hCUhDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubhk)r }r (hCUhDhhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.on_readyr hJhnhL}r (hQ]hP]hN]hO]hS]Uentries]r (hqX9on_ready() (celery.concurrency.processes.TaskPool method)h2Utr auhUNhVhh>]ubh)r }r (hCUhDhhEj hJhhL}r (hhXpyhQ]hP]hN]hO]hS]hXmethodr hj uhUNhVhh>]r (h)r }r (hCX1TaskPool.on_ready(callbacks, errbacks, ret_value)hDj hEhhJhhL}r (hQ]r h2ahhFXcelery.concurrency.processesr r }r bhP]hN]hO]hS]r h2ahXTaskPool.on_readyhXTaskPoolhuhUNhVhh>]r (h)r }r (hCX TaskPool.hDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_X TaskPool.r r }r (hCUhDj ubaubh)r }r (hCXon_readyhDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_Xon_readyr r }r (hCUhDj ubaubh)r }r (hCUhDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r (h)r }r (hCX callbackshL}r (hN]hO]hP]hQ]hS]uhDj h>]r h_X callbacksr r }r (hCUhDj ubahJhubh)r }r (hCXerrbackshL}r (hN]hO]hP]hQ]hS]uhDj h>]r h_Xerrbacksr r }r (hCUhDj ubahJhubh)r }r (hCX ret_valuehL}r (hN]hO]hP]hQ]hS]uhDj h>]r h_X ret_valuer r }r (hCUhDj ubahJhubeubeubh)r }r (hCUhDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r hs)r }r (hCXOWhat to do when a worker task is ready and its return value has been collected.r hDj hEj hJhxhL}r (hN]hO]hP]hQ]hS]uhUKhVhh>]r h_XOWhat to do when a worker task is ready and its return value has been collected.r r }r (hCj hDj ubaubaubeubhk)r }r (hCUhDhhENhJhnhL}r (hQ]hP]hN]hO]hS]Uentries]r (hqX@on_worker_error() (celery.concurrency.processes.TaskPool method)h0Utr auhUNhVhh>]ubh)r }r (hCUhDhhENhJhhL}r (hhXpyhQ]hP]hN]hO]hS]hXmethodr hj uhUNhVhh>]r (h)r }r (hCX'TaskPool.on_worker_error(errbacks, exc)hDj hEhhJhhL}r (hQ]r h0ahhFXcelery.concurrency.processesr r }r bhP]hN]hO]hS]r h0ahXTaskPool.on_worker_errorhXTaskPoolhuhUNhVhh>]r (h)r }r (hCX TaskPool.hDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_X TaskPool.r r }r (hCUhDj ubaubh)r }r (hCXon_worker_errorhDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_Xon_worker_errorr r }r (hCUhDj ubaubh)r }r (hCUhDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r (h)r }r (hCXerrbackshL}r (hN]hO]hP]hQ]hS]uhDj h>]r h_Xerrbacksr r }r (hCUhDj ubahJhubh)r }r (hCXexchL}r (hN]hO]hP]hQ]hS]uhDj h>]r h_Xexcr r }r (hCUhDj ubahJhubeubeubh)r }r (hCUhDj hEhhJhhL}r! (hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubhk)r" }r# (hCUhDhhENhJhnhL}r$ (hQ]hP]hN]hO]hS]Uentries]r% (hqXDsafe_apply_callback() (celery.concurrency.processes.TaskPool method)h&Utr& auhUNhVhh>]ubh)r' }r( (hCUhDhhENhJhhL}r) (hhXpyhQ]hP]hN]hO]hS]hXmethodr* hj* uhUNhVhh>]r+ (h)r, }r- (hCX(TaskPool.safe_apply_callback(fun, *args)hDj' hEhhJhhL}r. (hQ]r/ h&ahhFXcelery.concurrency.processesr0 r1 }r2 bhP]hN]hO]hS]r3 h&ahXTaskPool.safe_apply_callbackhXTaskPoolhuhUNhVhh>]r4 (h)r5 }r6 (hCX TaskPool.hDj, hEhhJhhL}r7 (hN]hO]hP]hQ]hS]uhUNhVhh>]r8 h_X TaskPool.r9 r: }r; (hCUhDj5 ubaubh)r< }r= (hCXsafe_apply_callbackhDj, hEhhJhhL}r> (hN]hO]hP]hQ]hS]uhUNhVhh>]r? h_Xsafe_apply_callbackr@ rA }rB (hCUhDj< ubaubh)rC }rD (hCUhDj, hEhhJhhL}rE (hN]hO]hP]hQ]hS]uhUNhVhh>]rF (h)rG }rH (hCXfunhL}rI (hN]hO]hP]hQ]hS]uhDjC h>]rJ h_XfunrK rL }rM (hCUhDjG ubahJhubh)rN }rO (hCX*argshL}rP (hN]hO]hP]hQ]hS]uhDjC h>]rQ h_X*argsrR rS }rT (hCUhDjN ubahJhubeubeubh)rU }rV (hCUhDj' hEhhJhhL}rW (hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubhk)rX }rY (hCUhDhhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.startrZ hJhnhL}r[ (hQ]hP]hN]hO]hS]Uentries]r\ (hqX6start() (celery.concurrency.processes.TaskPool method)hUtr] auhUNhVhh>]ubh)r^ }r_ (hCUhDhhEjZ hJhhL}r` (hhXpyhQ]hP]hN]hO]hS]hXmethodra hja uhUNhVhh>]rb (h)rc }rd (hCXTaskPool.start()hDj^ hEhhJhhL}re (hQ]rf hahhFXcelery.concurrency.processesrg rh }ri bhP]hN]hO]hS]rj hahXTaskPool.starthXTaskPoolhuhUNhVhh>]rk (h)rl }rm (hCX TaskPool.hDjc hEhhJhhL}rn (hN]hO]hP]hQ]hS]uhUNhVhh>]ro h_X TaskPool.rp rq }rr (hCUhDjl ubaubh)rs }rt (hCXstarthDjc hEhhJhhL}ru (hN]hO]hP]hQ]hS]uhUNhVhh>]rv h_Xstartrw rx }ry (hCUhDjs ubaubh)rz }r{ (hCUhDjc hEhhJhhL}r| (hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)r} }r~ (hCUhDj^ hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r (hs)r }r (hCXRun the task pool.r hDj} hEjZ hJhxhL}r (hN]hO]hP]hQ]hS]uhUKhVhh>]r h_XRun the task pool.r r }r (hCj hDj ubaubhs)r }r (hCX;Will pre-fork all workers so they're ready to accept tasks.r hDj} hEjZ hJhxhL}r (hN]hO]hP]hQ]hS]uhUKhVhh>]r h_X;Will pre-fork all workers so they're ready to accept tasks.r r }r (hCj hDj ubaubeubeubhk)r }r (hCUhDhhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.stopr hJhnhL}r (hQ]hP]hN]hO]hS]Uentries]r (hqX5stop() (celery.concurrency.processes.TaskPool method)hUtr auhUNhVhh>]ubh)r }r (hCUhDhhEj hJhhL}r (hhXpyhQ]hP]hN]hO]hS]hXmethodr hj uhUNhVhh>]r (h)r }r (hCXTaskPool.stop()hDj hEhhJhhL}r (hQ]r hahhFXcelery.concurrency.processesr r }r bhP]hN]hO]hS]r hahX TaskPool.stophXTaskPoolhuhUNhVhh>]r (h)r }r (hCX TaskPool.hDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_X TaskPool.r r }r (hCUhDj ubaubh)r }r (hCXstophDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_Xstopr r }r (hCUhDj ubaubh)r }r (hCUhDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)r }r (hCUhDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r hs)r }r (hCXGracefully stop the pool.r hDj hEj hJhxhL}r (hN]hO]hP]hQ]hS]uhUKhVhh>]r h_XGracefully stop the pool.r r }r (hCj hDj ubaubaubeubhk)r }r (hCUhDhhEX/var/build/user_builds/celery/checkouts/2.1-archived/celery/concurrency/processes/__init__.py:docstring of celery.concurrency.processes.TaskPool.terminater hJhnhL}r (hQ]hP]hN]hO]hS]Uentries]r (hqX:terminate() (celery.concurrency.processes.TaskPool method)hUtr auhUNhVhh>]ubh)r }r (hCUhDhhEj hJhhL}r (hhXpyhQ]hP]hN]hO]hS]hXmethodr hj uhUNhVhh>]r (h)r }r (hCXTaskPool.terminate()r hDj hEhhJhhL}r (hQ]r hahhFXcelery.concurrency.processesr r }r bhP]hN]hO]hS]r hahXTaskPool.terminatehXTaskPoolhuhUNhVhh>]r (h)r }r (hCX TaskPool.hDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_X TaskPool.r r }r (hCUhDj ubaubh)r }r (hCX terminatehDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_X terminater r }r (hCUhDj ubaubh)r }r (hCUhDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubh)r }r (hCUhDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r hs)r }r (hCXForce terminate the pool.r hDj hEj hJhxhL}r (hN]hO]hP]hQ]hS]uhUKhVhh>]r h_XForce terminate the pool.r r }r (hCj hDj ubaubaubeubeubeubhk)r }r (hCUhDhAhENhJhnhL}r (hQ]hP]hN]hO]hS]Uentries]r (hqX3pingback() (in module celery.concurrency.processes)hUtr auhUNhVhh>]ubh)r }r (hCUhDhAhENhJhhL}r (hhXpyhQ]hP]hN]hO]hS]hXfunctionr hj uhUNhVhh>]r (h)r }r (hCX pingback(i)r hDj hEhhJhhL}r (hQ]r hahhFXcelery.concurrency.processesr r }r bhP]hN]hO]hS]r hahXpingbackr hUhuhUNhVhh>]r (h)r }r (hCXcelery.concurrency.processes.hDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_Xcelery.concurrency.processes.r r }r (hCUhDj ubaubh)r }r (hCj hDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h_Xpingbackr r }r (hCUhDj ubaubh)r }r (hCUhDj hEhhJhhL}r (hN]hO]hP]hQ]hS]uhUNhVhh>]r h)r }r (hCXihL}r (hN]hO]hP]hQ]hS]uhDj h>]r h_Xir }r (hCUhDj ubahJhubaubeubh)r! }r" (hCUhDj hEhhJhhL}r# (hN]hO]hP]hQ]hS]uhUNhVhh>]ubeubeubahCUU transformerr$ NU footnote_refsr% }r& Urefnamesr' }r( Usymbol_footnotesr) ]r* Uautofootnote_refsr+ ]r, Usymbol_footnote_refsr- ]r. U citationsr/ ]r0 hVhU current_liner1 NUtransform_messagesr2 ]r3 cdocutils.nodes system_message r4 )r5 }r6 (hCUhL}r7 (hN]UlevelKhQ]hP]UsourcehfhO]hS]UlineKUtypeUINFOr8 uh>]r9 hs)r: }r; (hCUhL}r< (hN]hO]hP]hQ]hS]uhDj5 h>]r= h_XIHyperlink target "module-celery.concurrency.processes" is not referenced.r> r? }r@ (hCUhDj: ubahJhxubahJUsystem_messagerA ubaUreporterrB NUid_startrC KU autofootnotesrD ]rE U citation_refsrF }rG Uindirect_targetsrH ]rI UsettingsrJ (cdocutils.frontend Values rK orL }rM (Ufootnote_backlinksrN KUrecord_dependenciesrO NU rfc_base_urlrP Uhttp://tools.ietf.org/html/rQ U tracebackrR Upep_referencesrS NUstrip_commentsrT NU toc_backlinksrU UentryrV U language_coderW UenrX U datestamprY NU report_levelrZ KU _destinationr[ NU halt_levelr\ KU strip_classesr] Nh\NUerror_encoding_error_handlerr^ Ubackslashreplacer_ Udebugr` NUembed_stylesheetra Uoutput_encoding_error_handlerrb Ustrictrc U sectnum_xformrd KUdump_transformsre NU docinfo_xformrf KUwarning_streamrg NUpep_file_url_templaterh Upep-%04dri Uexit_status_levelrj KUconfigrk NUstrict_visitorrl NUcloak_email_addressesrm Utrim_footnote_reference_spacern Uenvro NUdump_pseudo_xmlrp NUexpose_internalsrq NUsectsubtitle_xformrr U source_linkrs NUrfc_referencesrt NUoutput_encodingru Uutf-8rv U source_urlrw NUinput_encodingrx U utf-8-sigry U_disable_configrz NU id_prefixr{ UU tab_widthr| KUerror_encodingr} UUTF-8r~ U_sourcer Un/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.concurrency.processes.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr jc Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (hjhj hjc h jh jh jYh hh jhjhjhjhjhjhj hj:hjhj hj[hjGhjh=cdocutils.nodes topic r )r }r (hCUhDhAhEhHhJUtopicr hL}r (hN]hO]r (Ucontentsr Ulocalr ehP]hQ]r h=ahS]r hauhUKhVhh>]r cdocutils.nodes pending r )r }r (hCX.. contents:: :local:hDj U transformr cdocutils.transforms.parts Contents r Udetailsr }r UlocalNshJUpendingr hL}r (hN]hO]hP]hQ]hS]uh>]ubaubhjhjahjhj h jh!j9h"jh#j!h$jth%jJh&j, h'jh(jh)jyh*jh+j/h}q?(hUhhhU q@h$UtargetqAh&}qB(h(]h+]qCXmodule-celery.utils.mailqDah*]Uismodh)]h-]uh/Kh0hh]ubcsphinx.addnodes index qE)qF}qG(hUhhhh@h$UindexqHh&}qI(h+]h*]h(]h)]h-]Uentries]qJ(UsingleqKXcelery.utils.mail (module)Xmodule-celery.utils.mailUtqLauh/Kh0hh]ubhE)qM}qN(hUhhhNh$hHh&}qO(h+]h*]h(]h)]h-]Uentries]qP(hKX#Mailer (class in celery.utils.mail)hUtqQauh/Nh0hh]ubcsphinx.addnodes desc qR)qS}qT(hUhhhNh$UdescqUh&}qV(UnoindexqWUdomainqXXpyh+]h*]h(]h)]h-]UobjtypeqYXclassqZUdesctypeq[hZuh/Nh0hh]q\(csphinx.addnodes desc_signature q])q^}q_(hXHMailer(host='localhost', port=0, user=None, password=None, timeout=None)hhShU q`h$Udesc_signatureqah&}qb(h+]qchaUmoduleqdh Xcelery.utils.mailqeqf}qgbh*]h(]h)]h-]qhhaUfullnameqiXMailerqjUclassqkUUfirstqluh/Nh0hh]qm(csphinx.addnodes desc_annotation qn)qo}qp(hXclass hh^hh`h$Udesc_annotationqqh&}qr(h(]h)]h*]h+]h-]uh/Nh0hh]qsh9Xclass qtqu}qv(hUhhoubaubcsphinx.addnodes desc_addname qw)qx}qy(hXcelery.utils.mail.hh^hh`h$U desc_addnameqzh&}q{(h(]h)]h*]h+]h-]uh/Nh0hh]q|h9Xcelery.utils.mail.q}q~}q(hUhhxubaubcsphinx.addnodes desc_name q)q}q(hhjhh^hh`h$U desc_nameqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9XMailerqq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhh^hh`h$Udesc_parameterlistqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]q(csphinx.addnodes desc_parameter q)q}q(hXhost='localhost'h&}q(h(]h)]h*]h+]h-]uhhh]qh9Xhost='localhost'qq}q(hUhhubah$Udesc_parameterqubh)q}q(hXport=0h&}q(h(]h)]h*]h+]h-]uhhh]qh9Xport=0qq}q(hUhhubah$hubh)q}q(hX user=Noneh&}q(h(]h)]h*]h+]h-]uhhh]qh9X user=Noneqq}q(hUhhubah$hubh)q}q(hX password=Noneh&}q(h(]h)]h*]h+]h-]uhhh]qh9X password=Noneqq}q(hUhhubah$hubh)q}q(hX timeout=Noneh&}q(h(]h)]h*]h+]h-]uhhh]qh9X timeout=Noneqq}q(hUhhubah$hubeubeubcsphinx.addnodes desc_content q)q}q(hUhhShh`h$U desc_contentqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]q(hE)q}q(hUhhhNh$hHh&}q(h+]h*]h(]h)]h-]Uentries]q(hKX(send() (celery.utils.mail.Mailer method)hUtqauh/Nh0hh]ubhR)q}q(hUhhhNh$hUh&}q(hWhXXpyh+]h*]h(]h)]h-]hYXmethodqh[huh/Nh0hh]q(h])q}q(hXMailer.send(message)qhhhh`h$hah&}q(h+]qhahdh Xcelery.utils.mailqɅq}qbh*]h(]h)]h-]qhahiX Mailer.sendhkhjhluh/Nh0hh]q(h)q}q(hXsendhhhh`h$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9Xsendq҅q}q(hUhhubaubh)q}q(hUhhhh`h$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh)q}q(hXmessageh&}q(h(]h)]h*]h+]h-]uhhh]qh9Xmessageq݅q}q(hUhhubah$hubaubeubh)q}q(hUhhhh`h$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubeubeubhE)q}q(hUhhhNh$hHh&}q(h+]h*]h(]h)]h-]Uentries]q(hKX$Message (class in celery.utils.mail)h Utqauh/Nh0hh]ubhR)q}q(hUhhhNh$hUh&}q(hWhXXpyh+]h*]h(]h)]h-]hYXclassqh[huh/Nh0hh]q(h])q}q(hXJMessage(to=None, sender=None, subject=None, body=None, charset='us-ascii')hhhh`h$hah&}q(h+]qh ahdh Xcelery.utils.mailqq}qbh*]h(]h)]h-]qh ahiXMessageqhkUhluh/Nh0hh]q(hn)q}q(hXclass hhhh`h$hqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9Xclass qq}q(hUhhubaubhw)q}q(hXcelery.utils.mail.hhhh`h$hzh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9Xcelery.utils.mail.rr}r(hUhhubaubh)r}r(hhhhhh`h$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9XMessager r }r (hUhjubaubh)r }r (hUhhhh`h$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]r(h)r}r(hXto=Noneh&}r(h(]h)]h*]h+]h-]uhj h]rh9Xto=Nonerr}r(hUhjubah$hubh)r}r(hX sender=Noneh&}r(h(]h)]h*]h+]h-]uhj h]rh9X sender=Nonerr}r(hUhjubah$hubh)r}r(hX subject=Noneh&}r (h(]h)]h*]h+]h-]uhj h]r!h9X subject=Noner"r#}r$(hUhjubah$hubh)r%}r&(hX body=Noneh&}r'(h(]h)]h*]h+]h-]uhj h]r(h9X body=Noner)r*}r+(hUhj%ubah$hubh)r,}r-(hXcharset='us-ascii'h&}r.(h(]h)]h*]h+]h-]uhj h]r/h9Xcharset='us-ascii'r0r1}r2(hUhj,ubah$hubeubeubh)r3}r4(hUhhhh`h$hh&}r5(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubhE)r6}r7(hUhhhXx/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/mail.py:docstring of celery.utils.mail.SendmailWarningr8h$hHh&}r9(h+]h*]h(]h)]h-]Uentries]r:(hKXSendmailWarningr;h Utr<auh/Nh0hh]ubhR)r=}r>(hUhhhj8h$hUh&}r?(hWhXXpyh+]h*]h(]h)]h-]hYX exceptionr@h[j@uh/Nh0hh]rA(h])rB}rC(hj;hj=hh`h$hah&}rD(h+]rEh ahdh Xcelery.utils.mailrFrG}rHbh*]h(]h)]h-]rIh ahij;hkUhluh/Nh0hh]rJ(hn)rK}rL(hX exception hjBhh`h$hqh&}rM(h(]h)]h*]h+]h-]uh/Nh0hh]rNh9X exception rOrP}rQ(hUhjKubaubhw)rR}rS(hXcelery.utils.mail.hjBhh`h$hzh&}rT(h(]h)]h*]h+]h-]uh/Nh0hh]rUh9Xcelery.utils.mail.rVrW}rX(hUhjRubaubh)rY}rZ(hj;hjBhh`h$hh&}r[(h(]h)]h*]h+]h-]uh/Nh0hh]r\h9XSendmailWarningr]r^}r_(hUhjYubaubeubh)r`}ra(hUhj=hh`h$hh&}rb(h(]h)]h*]h+]h-]uh/Nh0hh]rccdocutils.nodes paragraph rd)re}rf(hX2Problem happened while sending the e-mail message.rghj`hj8h$U paragraphrhh&}ri(h(]h)]h*]h+]h-]uh/Kh0hh]rjh9X2Problem happened while sending the e-mail message.rkrl}rm(hjghjeubaubaubeubhE)rn}ro(hUhhhXt/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/mail.py:docstring of celery.utils.mail.mail_adminsrph$hHh&}rq(h+]h*]h(]h)]h-]Uentries]rr(hKX+mail_admins() (in module celery.utils.mail)hUtrsauh/Nh0hh]ubhR)rt}ru(hUhhhjph$hUh&}rv(hWhXXpyh+]h*]h(]h)]h-]hYXfunctionrwh[jwuh/Nh0hh]rx(h])ry}rz(hX2mail_admins(subject, message, fail_silently=False)hjthh`h$hah&}r{(h+]r|hahdh Xcelery.utils.mailr}r~}rbh*]h(]h)]h-]rhahiX mail_adminsrhkUhluh/Nh0hh]r(hw)r}r(hXcelery.utils.mail.hjyhh`h$hzh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9Xcelery.utils.mail.rr}r(hUhjubaubh)r}r(hjhjyhh`h$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9X mail_adminsrr}r(hUhjubaubh)r}r(hUhjyhh`h$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]r(h)r}r(hXsubjecth&}r(h(]h)]h*]h+]h-]uhjh]rh9Xsubjectrr}r(hUhjubah$hubh)r}r(hXmessageh&}r(h(]h)]h*]h+]h-]uhjh]rh9Xmessagerr}r(hUhjubah$hubh)r}r(hXfail_silently=Falseh&}r(h(]h)]h*]h+]h-]uhjh]rh9Xfail_silently=Falserr}r(hUhjubah$hubeubeubh)r}r(hUhjthh`h$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rjd)r}r(hX,Send a message to the admins in conf.ADMINS.rhjhjph$jhh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rh9X,Send a message to the admins in conf.ADMINS.rr}r(hjhjubaubaubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh0hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh&}r(h(]UlevelKh+]h*]Usourceh@h)]h-]UlineKUtypeUINFOruh]rjd)r}r(hUh&}r(h(]h)]h*]h+]h-]uhjh]rh9X>Hyperlink target "module-celery.utils.mail" is not referenced.rr}r(hUhjubah$jhubah$Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh6NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUc/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.mail.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr ]Ufile_insertion_enabledr!U raw_enabledr"KU dump_settingsr#NubUsymbol_footnote_startr$KUidsr%}r&(hh^h jBhjyhhhhhDh>h hhcdocutils.nodes topic r')r(}r)(hUhhhh"h$Utopicr*h&}r+(h(]h)]r,(Ucontentsr-Ulocalr.eh*]h+]r/hah-]r0h auh/Kh0hh]r1cdocutils.nodes pending r2)r3}r4(hX.. contents:: :local:hj(U transformr5cdocutils.transforms.parts Contents r6Udetailsr7}r8UlocalNsh$Upendingr9h&}r:(h(]h)]h*]h+]h-]uh]ubaubuUsubstitution_namesr;}r<h$h0h&}r=(h(]h+]h*]Usourceh"h)]h-]uU footnotesr>]r?Urefidsr@}rAub.PKYDDIqIIMcelery-2.1-archived/.doctrees/internals/reference/celery.worker.state.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X#celery.worker.state.Persistent.syncqX!celery.worker.state.Persistent.dbqXcelery.worker.state.task_readyqXcelery.worker.state.Persistentq X"celery.worker.state.REVOKE_EXPIRESq X$celery.worker.state.Persistent.closeq Xcelery.worker.state.total_countq Xcelery.worker.state.revokedq X!celery.worker.state.task_acceptedqX#celery.worker.state.Persistent.saveqX#celery.worker.state.active_requestsqX"worker state - celery.worker.stateqNX$celery.worker.state.Persistent.mergeqX&celery.worker.state.Persistent.storageqX#celery.worker.state.Persistent.openqUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h h h h hhhhhhhU worker-state-celery-worker-stateqhhhhhhhUcontentsq uUchildrenq!]q"cdocutils.nodes section q#)q$}q%(U rawsourceq&UUparentq'hUsourceq(cdocutils.nodes reprunicode q)Xe/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.state.rstq*q+}q,bUtagnameq-Usectionq.U attributesq/}q0(Udupnamesq1]Uclassesq2]Ubackrefsq3]Uidsq4]q5haUnamesq6]q7hauUlineq8KUdocumentq9hh!]q:(cdocutils.nodes title q;)q<}q=(h&X"Worker State - celery.worker.stateq>h'h$h(h+h-Utitleq?h/}q@(h1]h2]h3]h4]h6]uh8Kh9hh!]qAcdocutils.nodes Text qBX"Worker State - celery.worker.stateqCqD}qE(h&h>h'hqIh-UtargetqJh/}qK(h1]h4]qLXmodule-celery.worker.stateqMah3]Uismodh2]h6]uh8Kh9hh!]ubcsphinx.addnodes index qN)qO}qP(h&Uh'h$h(hIh-UindexqQh/}qR(h4]h3]h1]h2]h6]Uentries]qS(UsingleqTXcelery.worker.state (module)Xmodule-celery.worker.stateUtqUauh8Kh9hh!]ubhN)qV}qW(h&Uh'h$h(Nh-hQh/}qX(h4]h3]h1]h2]h6]Uentries]qY(hTX)Persistent (class in celery.worker.state)h UtqZauh8Nh9hh!]ubcsphinx.addnodes desc q[)q\}q](h&Uh'h$h(Nh-Udescq^h/}q_(Unoindexq`UdomainqaXpyh4]h3]h1]h2]h6]UobjtypeqbXclassqcUdesctypeqdhcuh8Nh9hh!]qe(csphinx.addnodes desc_signature qf)qg}qh(h&XPersistent(filename)h'h\h(U qih-Udesc_signatureqjh/}qk(h4]qlh aUmoduleqmh)Xcelery.worker.stateqnqo}qpbh3]h1]h2]h6]qqh aUfullnameqrX PersistentqsUclassqtUUfirstquuh8Nh9hh!]qv(csphinx.addnodes desc_annotation qw)qx}qy(h&Xclass h'hgh(hih-Udesc_annotationqzh/}q{(h1]h2]h3]h4]h6]uh8Nh9hh!]q|hBXclass q}q~}q(h&Uh'hxubaubcsphinx.addnodes desc_addname q)q}q(h&Xcelery.worker.state.h'hgh(hih-U desc_addnameqh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhBXcelery.worker.state.qq}q(h&Uh'hubaubcsphinx.addnodes desc_name q)q}q(h&hsh'hgh(hih-U desc_nameqh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhBX Persistentqq}q(h&Uh'hubaubcsphinx.addnodes desc_parameterlist q)q}q(h&Uh'hgh(hih-Udesc_parameterlistqh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qcsphinx.addnodes desc_parameter q)q}q(h&Xfilenameh/}q(h1]h2]h3]h4]h6]uh'hh!]qhBXfilenameqq}q(h&Uh'hubah-Udesc_parameterqubaubeubcsphinx.addnodes desc_content q)q}q(h&Uh'h\h(hih-U desc_contentqh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]q(hN)q}q(h&Uh'hh(Nh-hQh/}q(h4]h3]h1]h2]h6]Uentries]q(hTX/close() (celery.worker.state.Persistent method)h Utqauh8Nh9hh!]ubh[)q}q(h&Uh'hh(Nh-h^h/}q(h`haXpyh4]h3]h1]h2]h6]hbXmethodqhdhuh8Nh9hh!]q(hf)q}q(h&XPersistent.close()h'hh(hih-hjh/}q(h4]qh ahmh)Xcelery.worker.stateqq}qbh3]h1]h2]h6]qh ahrXPersistent.closehthshuuh8Nh9hh!]q(h)q}q(h&Xcloseh'hh(hih-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhBXcloseqq}q(h&Uh'hubaubh)q}q(h&Uh'hh(hih-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubh)q}q(h&Uh'hh(hih-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)q}q(h&Uh'hh(Nh-hQh/}q(h4]h3]h1]h2]h6]Uentries]q(hTX-db (celery.worker.state.Persistent attribute)hUtqauh8Nh9hh!]ubh[)q}q(h&Uh'hh(Nh-h^h/}q(h`haXpyh4]h3]h1]h2]h6]hbX attributeqhdhuh8Nh9hh!]q(hf)q}q(h&X Persistent.dbh'hh(hih-hjh/}q(h4]qhahmh)Xcelery.worker.stateqՅq}qbh3]h1]h2]h6]qhahrX Persistent.dbhthshuuh8Nh9hh!]qh)q}q(h&Xdbh'hh(hih-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhBXdbqޅq}q(h&Uh'hubaubaubh)q}q(h&Uh'hh(hih-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)q}q(h&Uh'hh(Nh-hQh/}q(h4]h3]h1]h2]h6]Uentries]q(hTX/merge() (celery.worker.state.Persistent method)hUtqauh8Nh9hh!]ubh[)q}q(h&Uh'hh(Nh-h^h/}q(h`haXpyh4]h3]h1]h2]h6]hbXmethodqhdhuh8Nh9hh!]q(hf)q}q(h&XPersistent.merge(d)h'hh(hih-hjh/}q(h4]qhahmh)Xcelery.worker.stateqq}qbh3]h1]h2]h6]qhahrXPersistent.mergehthshuuh8Nh9hh!]q(h)q}q(h&Xmergeh'hh(hih-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhBXmergeqq}q(h&Uh'hubaubh)q}q(h&Uh'hh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rh)r}r(h&Xdh/}r(h1]h2]h3]h4]h6]uh'hh!]rhBXdr}r(h&Uh'jubah-hubaubeubh)r}r (h&Uh'hh(hih-hh/}r (h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)r }r (h&Uh'hh(Nh-hQh/}r (h4]h3]h1]h2]h6]Uentries]r(hTX.open() (celery.worker.state.Persistent method)hUtrauh8Nh9hh!]ubh[)r}r(h&Uh'hh(Nh-h^h/}r(h`haXpyh4]h3]h1]h2]h6]hbXmethodrhdjuh8Nh9hh!]r(hf)r}r(h&XPersistent.open()h'jh(hih-hjh/}r(h4]rhahmh)Xcelery.worker.staterr}rbh3]h1]h2]h6]rhahrXPersistent.openhthshuuh8Nh9hh!]r(h)r}r(h&Xopenh'jh(hih-hh/}r (h1]h2]h3]h4]h6]uh8Nh9hh!]r!hBXopenr"r#}r$(h&Uh'jubaubh)r%}r&(h&Uh'jh(hih-hh/}r'(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubh)r(}r)(h&Uh'jh(hih-hh/}r*(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)r+}r,(h&Uh'hh(Nh-hQh/}r-(h4]h3]h1]h2]h6]Uentries]r.(hTX.save() (celery.worker.state.Persistent method)hUtr/auh8Nh9hh!]ubh[)r0}r1(h&Uh'hh(Nh-h^h/}r2(h`haXpyh4]h3]h1]h2]h6]hbXmethodr3hdj3uh8Nh9hh!]r4(hf)r5}r6(h&XPersistent.save()h'j0h(hih-hjh/}r7(h4]r8hahmh)Xcelery.worker.stater9r:}r;bh3]h1]h2]h6]r<hahrXPersistent.savehthshuuh8Nh9hh!]r=(h)r>}r?(h&Xsaveh'j5h(hih-hh/}r@(h1]h2]h3]h4]h6]uh8Nh9hh!]rAhBXsaverBrC}rD(h&Uh'j>ubaubh)rE}rF(h&Uh'j5h(hih-hh/}rG(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubh)rH}rI(h&Uh'j0h(hih-hh/}rJ(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)rK}rL(h&Uh'hh(Nh-hQh/}rM(h4]h3]h1]h2]h6]Uentries]rN(hTX2storage (celery.worker.state.Persistent attribute)hUtrOauh8Nh9hh!]ubh[)rP}rQ(h&Uh'hh(Nh-h^h/}rR(h`haXpyh4]h3]h1]h2]h6]hbX attributerShdjSuh8Nh9hh!]rT(hf)rU}rV(h&XPersistent.storageh'jPh(U rWh-hjh/}rX(h4]rYhahmh)Xcelery.worker.staterZr[}r\bh3]h1]h2]h6]r]hahrXPersistent.storagehthshuuh8Nh9hh!]r^(h)r_}r`(h&Xstorageh'jUh(jWh-hh/}ra(h1]h2]h3]h4]h6]uh8Nh9hh!]rbhBXstoragercrd}re(h&Uh'j_ubaubhw)rf}rg(h&X9 = h'jUh(jWh-hzh/}rh(h1]h2]h3]h4]h6]uh8Nh9hh!]rihBX9 = rjrk}rl(h&Uh'jfubaubeubh)rm}rn(h&Uh'jPh(jWh-hh/}ro(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)rp}rq(h&Uh'hh(Nh-hQh/}rr(h4]h3]h1]h2]h6]Uentries]rs(hTX.sync() (celery.worker.state.Persistent method)hUtrtauh8Nh9hh!]ubh[)ru}rv(h&Uh'hh(Nh-h^h/}rw(h`haXpyh4]h3]h1]h2]h6]hbXmethodrxhdjxuh8Nh9hh!]ry(hf)rz}r{(h&XPersistent.sync(d)h'juh(hih-hjh/}r|(h4]r}hahmh)Xcelery.worker.stater~r}rbh3]h1]h2]h6]rhahrXPersistent.synchthshuuh8Nh9hh!]r(h)r}r(h&Xsynch'jzh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBXsyncrr}r(h&Uh'jubaubh)r}r(h&Uh'jzh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rh)r}r(h&Xdh/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXdr}r(h&Uh'jubah-hubaubeubh)r}r(h&Uh'juh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubeubeubhN)r}r(h&Uh'h$h(X{/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/state.py:docstring of celery.worker.state.REVOKE_EXPIRESrh-hQh/}r(h4]h3]h1]h2]h6]Uentries]r(hTX.REVOKE_EXPIRES (in module celery.worker.state)h Utrauh8Nh9hh!]ubh[)r}r(h&Uh'h$h(jh-h^h/}r(h`haXpyh4]h3]h1]h2]h6]hbXdatarhdjuh8Nh9hh!]r(hf)r}r(h&XREVOKE_EXPIRESrh'jh(U rh-hjh/}r(h4]rh ahmh)Xcelery.worker.staterr}rbh3]h1]h2]h6]rh ahrjhtUhuuh8Nh9hh!]r(h)r}r(h&Xcelery.worker.state.h'jh(jh-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBXcelery.worker.state.rr}r(h&Uh'jubaubh)r}r(h&jh'jh(jh-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBXREVOKE_EXPIRESrr}r(h&Uh'jubaubhw)r}r(h&X = 3600h'jh(jh-hzh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBX = 3600rr}r(h&Uh'jubaubeubh)r}r(h&Uh'jh(jh-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]r(hN)r}r(h&Uh'jh(Nh-hQh/}r(h4]h3]h1]h2]h6]Uentries]r(hTX/active_requests (in module celery.worker.state)hUtrauh8Nh9hh!]ubh[)r}r(h&Uh'jh(Nh-h^h/}r(h`haXpyh4]h3]h1]h2]h6]hbXdatarhdjuh8Nh9hh!]r(hf)r}r(h&Xactive_requestsrh'jh(jh-hjh/}r(h4]rhahmXcelery.worker.staterh3]h1]h2]h6]rhahrjhtUhuuh8Kh9hh!]r(h)r}r(h&Xcelery.worker.state.h'jh(jh-hh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]rhBXcelery.worker.state.rr}r(h&Uh'jubaubh)r}r(h&jh'jh(jh-hh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]rhBXactive_requestsrr}r(h&Uh'jubaubeubh)r}r(h&Uh'jh(jh-hh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]ubeubcdocutils.nodes paragraph r)r}r(h&XBSet of currently active :class:`~celery.worker.job.TaskRequest`'s.rh'jh(jh-U paragraphrh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]r(hBXSet of currently active rr}r(h&XSet of currently active h'jubcsphinx.addnodes pending_xref r)r}r(h&X':class:`~celery.worker.job.TaskRequest`rh'jh(Nh-U pending_xrefrh/}r(UreftypeXclassUrefwarnrU reftargetrXcelery.worker.job.TaskRequestU refdomainXpyrh4]h3]U refexplicith1]h2]h6]UrefdocrX'internals/reference/celery.worker.staterUpy:classrNU py:modulerjuh8Nh!]rcdocutils.nodes literal r)r}r(h&jh/}r(h1]h2]r(UxrefrjXpy-classreh3]h4]h6]uh'jh!]rhBX TaskRequestr r }r (h&Uh'jubah-Uliteralr ubaubhBX's.r r}r(h&X's.h'jubeubhN)r}r(h&Uh'jh(Nh-hQh/}r(h4]h3]h1]h2]h6]Uentries]r(hTX+total_count (in module celery.worker.state)h Utrauh8Nh9hh!]ubh[)r}r(h&Uh'jh(Nh-h^h/}r(h`haXpyh4]h3]h1]h2]h6]hbXdatarhdjuh8Nh9hh!]r(hf)r}r(h&X total_countrh'jh(jh-hjh/}r(h4]rh ahmjh3]h1]h2]h6]rh ahrjhtUhuuh8Kh9hh!]r (h)r!}r"(h&Xcelery.worker.state.h'jh(jh-hh/}r#(h1]h2]h3]h4]h6]uh8Kh9hh!]r$hBXcelery.worker.state.r%r&}r'(h&Uh'j!ubaubh)r(}r)(h&jh'jh(jh-hh/}r*(h1]h2]h3]h4]h6]uh8Kh9hh!]r+hBX total_countr,r-}r.(h&Uh'j(ubaubeubh)r/}r0(h&Uh'jh(jh-hh/}r1(h1]h2]h3]h4]h6]uh8Kh9hh!]ubeubj)r2}r3(h&X6Count of tasks executed by the worker, sorted by type.r4h'jh(jh-jh/}r5(h1]h2]h3]h4]h6]uh8Kh9hh!]r6hBX6Count of tasks executed by the worker, sorted by type.r7r8}r9(h&j4h'j2ubaubhN)r:}r;(h&Uh'jh(Nh-hQh/}r<(h4]h3]h1]h2]h6]Uentries]r=(hTX'revoked (in module celery.worker.state)h Utr>auh8Nh9hh!]ubh[)r?}r@(h&Uh'jh(Nh-h^h/}rA(h`haXpyh4]h3]h1]h2]h6]hbXdatarBhdjBuh8Nh9hh!]rC(hf)rD}rE(h&XrevokedrFh'j?h(jh-hjh/}rG(h4]rHh ahmjh3]h1]h2]h6]rIh ahrjFhtUhuuh8K h9hh!]rJ(h)rK}rL(h&Xcelery.worker.state.h'jDh(jh-hh/}rM(h1]h2]h3]h4]h6]uh8K h9hh!]rNhBXcelery.worker.state.rOrP}rQ(h&Uh'jKubaubh)rR}rS(h&jFh'jDh(jh-hh/}rT(h1]h2]h3]h4]h6]uh8K h9hh!]rUhBXrevokedrVrW}rX(h&Uh'jRubaubeubh)rY}rZ(h&Uh'j?h(jh-hh/}r[(h1]h2]h3]h4]h6]uh8K h9hh!]ubeubj)r\}r](h&XAThe list of currently revoked tasks. (PERSISTENT if statedb set).r^h'jh(jh-jh/}r_(h1]h2]h3]h4]h6]uh8K h9hh!]r`hBXAThe list of currently revoked tasks. (PERSISTENT if statedb set).rarb}rc(h&j^h'j\ubaubeubeubhN)rd}re(h&Uh'h$h(Xz/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/state.py:docstring of celery.worker.state.task_acceptedrfh-hQh/}rg(h4]h3]h1]h2]h6]Uentries]rh(hTX/task_accepted() (in module celery.worker.state)hUtriauh8Nh9hh!]ubh[)rj}rk(h&Uh'h$h(jfh-h^h/}rl(h`haXpyh4]h3]h1]h2]h6]hbXfunctionrmhdjmuh8Nh9hh!]rn(hf)ro}rp(h&Xtask_accepted(request)h'jjh(hih-hjh/}rq(h4]rrhahmh)Xcelery.worker.statersrt}rubh3]h1]h2]h6]rvhahrX task_acceptedrwhtUhuuh8Nh9hh!]rx(h)ry}rz(h&Xcelery.worker.state.h'joh(hih-hh/}r{(h1]h2]h3]h4]h6]uh8Nh9hh!]r|hBXcelery.worker.state.r}r~}r(h&Uh'jyubaubh)r}r(h&jwh'joh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBX task_acceptedrr}r(h&Uh'jubaubh)r}r(h&Uh'joh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rh)r}r(h&Xrequesth/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXrequestrr}r(h&Uh'jubah-hubaubeubh)r}r(h&Uh'jjh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rj)r}r(h&X3Updates global state when a task has been accepted.rh'jh(jfh-jh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]rhBX3Updates global state when a task has been accepted.rr}r(h&jh'jubaubaubeubhN)r}r(h&Uh'h$h(Xw/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/state.py:docstring of celery.worker.state.task_readyrh-hQh/}r(h4]h3]h1]h2]h6]Uentries]r(hTX,task_ready() (in module celery.worker.state)hUtrauh8Nh9hh!]ubh[)r}r(h&Uh'h$h(jh-h^h/}r(h`haXpyh4]h3]h1]h2]h6]hbXfunctionrhdjuh8Nh9hh!]r(hf)r}r(h&Xtask_ready(request)rh'jh(hih-hjh/}r(h4]rhahmh)Xcelery.worker.staterr}rbh3]h1]h2]h6]rhahrX task_readyrhtUhuuh8Nh9hh!]r(h)r}r(h&Xcelery.worker.state.h'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBXcelery.worker.state.rr}r(h&Uh'jubaubh)r}r(h&jh'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBX task_readyrr}r(h&Uh'jubaubh)r}r(h&Uh'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rh)r}r(h&Xrequesth/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXrequestrr}r(h&Uh'jubah-hubaubeubh)r}r(h&Uh'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rj)r}r(h&X*Updates global state when a task is ready.rh'jh(jh-jh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]rhBX*Updates global state when a task is ready.rr}r(h&jh'jubaubaubeubeubah&UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh9hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h&Uh/}r(h1]UlevelKh4]h3]UsourcehIh2]h6]UlineKUtypeUINFOruh!]rj)r}r(h&Uh/}r(h1]h2]h3]h4]h6]uh'jh!]rhBX@Hyperlink target "module-celery.worker.state" is not referenced.rr}r(h&Uh'jubah-jubah-Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh?NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigr NUstrict_visitorr!NUcloak_email_addressesr"Utrim_footnote_reference_spacer#Uenvr$NUdump_pseudo_xmlr%NUexpose_internalsr&NUsectsubtitle_xformr'U source_linkr(NUrfc_referencesr)NUoutput_encodingr*Uutf-8r+U source_urlr,NUinput_encodingr-U utf-8-sigr.U_disable_configr/NU id_prefixr0UU tab_widthr1KUerror_encodingr2UUTF-8r3U_sourcer4Ue/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.state.rstr5Ugettext_compactr6U generatorr7NUdump_internalsr8NU smart_quotesr9U pep_base_urlr:Uhttp://www.python.org/dev/peps/r;Usyntax_highlightr<Ulongr=Uinput_encoding_error_handlerr>jUauto_id_prefixr?Uidr@Udoctitle_xformrAUstrip_elements_with_classesrBNU _config_filesrC]Ufile_insertion_enabledrDU raw_enabledrEKU dump_settingsrFNubUsymbol_footnote_startrGKUidsrH}rI(hjzhhh jDhjh hgh jh hhjh jhh$hjohj5hjhMhGhjUhhh cdocutils.nodes topic rJ)rK}rL(h&Uh'h$h(h+h-UtopicrMh/}rN(h1]h2]rO(UcontentsrPUlocalrQeh3]h4]rRh ah6]rShauh8Kh9hh!]rTcdocutils.nodes pending rU)rV}rW(h&X.. contents:: :local:h'jKU transformrXcdocutils.transforms.parts Contents rYUdetailsrZ}r[UlocalNsh-Upendingr\h/}r](h1]h2]h3]h4]h6]uh!]ubaubuUsubstitution_namesr^}r_h-h9h/}r`(h1]h4]h3]Usourceh+h2]h6]uU footnotesra]rbUrefidsrc}rdub.PKYDDxi C*C*Qcelery-2.1-archived/.doctrees/internals/reference/celery.worker.heartbeat.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery.worker.heartbeat.HeartqX+worker heartbeats - celery.worker.heartbeatqNX!celery.worker.heartbeat.Heart.runqX!celery.worker.heartbeat.Heart.bpmq Ucontentsq NX"celery.worker.heartbeat.Heart.stopq uUsubstitution_defsq }q Uparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhU)worker-heartbeats-celery-worker-heartbeatqhhh h h Ucontentsqh h uUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXi/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.heartbeat.rstq q!}q"bUtagnameq#Usectionq$U attributesq%}q&(Udupnamesq']Uclassesq(]Ubackrefsq)]Uidsq*]q+haUnamesq,]q-hauUlineq.KUdocumentq/hh]q0(cdocutils.nodes title q1)q2}q3(hX+Worker Heartbeats - celery.worker.heartbeatq4hhhh!h#Utitleq5h%}q6(h']h(]h)]h*]h,]uh.Kh/hh]q7cdocutils.nodes Text q8X+Worker Heartbeats - celery.worker.heartbeatq9q:}q;(hh4hh2ubaubcdocutils.nodes target q<)q=}q>(hUhhhU q?h#Utargetq@h%}qA(h']h*]qBXmodule-celery.worker.heartbeatqCah)]Uismodh(]h,]uh.Kh/hh]ubcsphinx.addnodes index qD)qE}qF(hUhhhh?h#UindexqGh%}qH(h*]h)]h']h(]h,]Uentries]qI(UsingleqJX celery.worker.heartbeat (module)Xmodule-celery.worker.heartbeatUtqKauh.Kh/hh]ubhD)qL}qM(hUhhhNh#hGh%}qN(h*]h)]h']h(]h,]Uentries]qO(hJX(Heart (class in celery.worker.heartbeat)hUtqPauh.Nh/hh]ubcsphinx.addnodes desc qQ)qR}qS(hUhhhNh#UdescqTh%}qU(UnoindexqVUdomainqWXpyh*]h)]h']h(]h,]UobjtypeqXXclassqYUdesctypeqZhYuh.Nh/hh]q[(csphinx.addnodes desc_signature q\)q]}q^(hXHeart(eventer, interval=None)hhRhU q_h#Udesc_signatureq`h%}qa(h*]qbhaUmoduleqchXcelery.worker.heartbeatqdqe}qfbh)]h']h(]h,]qghaUfullnameqhXHeartqiUclassqjUUfirstqkuh.Nh/hh]ql(csphinx.addnodes desc_annotation qm)qn}qo(hXclass hh]hh_h#Udesc_annotationqph%}qq(h']h(]h)]h*]h,]uh.Nh/hh]qrh8Xclass qsqt}qu(hUhhnubaubcsphinx.addnodes desc_addname qv)qw}qx(hXcelery.worker.heartbeat.hh]hh_h#U desc_addnameqyh%}qz(h']h(]h)]h*]h,]uh.Nh/hh]q{h8Xcelery.worker.heartbeat.q|q}}q~(hUhhwubaubcsphinx.addnodes desc_name q)q}q(hhihh]hh_h#U desc_nameqh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh8XHeartqq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhh]hh_h#Udesc_parameterlistqh%}q(h']h(]h)]h*]h,]uh.Nh/hh]q(csphinx.addnodes desc_parameter q)q}q(hXeventerh%}q(h']h(]h)]h*]h,]uhhh]qh8Xeventerqq}q(hUhhubah#Udesc_parameterqubh)q}q(hX interval=Noneh%}q(h']h(]h)]h*]h,]uhhh]qh8X interval=Noneqq}q(hUhhubah#hubeubeubcsphinx.addnodes desc_content q)q}q(hUhhRhh_h#U desc_contentqh%}q(h']h(]h)]h*]h,]uh.Nh/hh]q(cdocutils.nodes paragraph q)q}q(hX)Thread sending heartbeats at an interval.qhhhXz/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/heartbeat.py:docstring of celery.worker.heartbeat.Heartqh#U paragraphqh%}q(h']h(]h)]h*]h,]uh.Kh/hh]qh8X)Thread sending heartbeats at an interval.qq}q(hhhhubaubcdocutils.nodes field_list q)q}q(hUhhhNh#U field_listqh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qcdocutils.nodes field q)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]q(cdocutils.nodes field_name q)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]qh8X Parametersqq}q(hUhhubah#U field_namequbcdocutils.nodes field_body q)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]qcdocutils.nodes bullet_list q)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]q(cdocutils.nodes list_item q)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]qh)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]q(cdocutils.nodes strong q)q}q(hXeventerh%}q(h']h(]h)]h*]h,]uhhh]qh8Xeventerqۅq}q(hUhhubah#Ustrongqubh8X -- q߅q}q(hUhhubh8X(Event dispatcher used to send the event.q⅁q}q(hX(Event dispatcher used to send the event.qhhubeh#hubah#U list_itemqubh)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]qh)q}q(hUh%}q(h']h(]h)]h*]h,]uhhh]q(h)q}q(hXintervalh%}q(h']h(]h)]h*]h,]uhhh]qh8Xintervalqq}q(hUhhubah#hubh8X -- qq}q(hUhhubh8X9Time in seconds between heartbeats. Default is 2 minutes.qq}q(hX9Time in seconds between heartbeats. Default is 2 minutes.qhhubeh#hubah#hubeh#U bullet_listqubah#U field_bodyqubeh#UfieldqubaubhD)r}r(hUhhhhh#hGh%}r(h*]h)]h']h(]h,]Uentries]r(hJX-bpm (celery.worker.heartbeat.Heart attribute)h Utrauh.Nh/hh]ubhQ)r}r(hUhhhhh#hTh%}r(hVhWXpyh*]h)]h']h(]h,]hXX attributerhZjuh.Nh/hh]r (h\)r }r (hXbpmr hjhh?h#h`h%}r (h*]rh ahcXcelery.worker.heartbeatrh)]h']h(]h,]rh ahhX Heart.bpmhjhihkuh.Kh/hh]rh)r}r(hj hj hh?h#hh%}r(h']h(]h)]h*]h,]uh.Kh/hh]rh8Xbpmrr}r(hUhjubaubaubh)r}r(hUhjhh?h#hh%}r(h']h(]h)]h*]h,]uh.Kh/hh]rh)r}r(hXBeats per minute.rhjhhh#hh%}r (h']h(]h)]h*]h,]uh.K h/hh]r!h8XBeats per minute.r"r#}r$(hjhjubaubaubeubhD)r%}r&(hUhhhNh#hGh%}r'(h*]h)]h']h(]h,]Uentries]r((hJX-bpm (celery.worker.heartbeat.Heart attribute)X!celery.worker.heartbeat.Heart.bpmUtr)auh.Nh/hh]ubhQ)r*}r+(hUhhhNh#hTh%}r,(hVhWXpyh*]h)]h']h(]h,]hXX attributer-hZj-uh.Nh/hh]r.(h\)r/}r0(hX Heart.bpmhj*hU r1h#h`h%}r2(h*]hchXcelery.worker.heartbeatr3r4}r5bh)]h']h(]h,]hhX Heart.bpmhjhihkuh.Nh/hh]r6(h)r7}r8(hXbpmhj/hj1h#hh%}r9(h']h(]h)]h*]h,]uh.Nh/hh]r:h8Xbpmr;r<}r=(hUhj7ubaubhm)r>}r?(hX = 0.5hj/hj1h#hph%}r@(h']h(]h)]h*]h,]uh.Nh/hh]rAh8X = 0.5rBrC}rD(hUhj>ubaubeubh)rE}rF(hUhj*hj1h#hh%}rG(h']h(]h)]h*]h,]uh.Nh/hh]ubeubhD)rH}rI(hUhhhNh#hGh%}rJ(h*]h)]h']h(]h,]Uentries]rK(hJX,run() (celery.worker.heartbeat.Heart method)hUtrLauh.Nh/hh]ubhQ)rM}rN(hUhhhNh#hTh%}rO(hVhWXpyh*]h)]h']h(]h,]hXXmethodrPhZjPuh.Nh/hh]rQ(h\)rR}rS(hX Heart.run()hjMhh_h#h`h%}rT(h*]rUhahchXcelery.worker.heartbeatrVrW}rXbh)]h']h(]h,]rYhahhX Heart.runhjhihkuh.Nh/hh]rZ(h)r[}r\(hXrunhjRhh_h#hh%}r](h']h(]h)]h*]h,]uh.Nh/hh]r^h8Xrunr_r`}ra(hUhj[ubaubh)rb}rc(hUhjRhh_h#hh%}rd(h']h(]h)]h*]h,]uh.Nh/hh]ubeubh)re}rf(hUhjMhh_h#hh%}rg(h']h(]h)]h*]h,]uh.Nh/hh]ubeubhD)rh}ri(hUhhhX/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/heartbeat.py:docstring of celery.worker.heartbeat.Heart.stoprjh#hGh%}rk(h*]h)]h']h(]h,]Uentries]rl(hJX-stop() (celery.worker.heartbeat.Heart method)h Utrmauh.Nh/hh]ubhQ)rn}ro(hUhhhjjh#hTh%}rp(hVhWXpyh*]h)]h']h(]h,]hXXmethodrqhZjquh.Nh/hh]rr(h\)rs}rt(hX Heart.stop()ruhjnhh_h#h`h%}rv(h*]rwh ahchXcelery.worker.heartbeatrxry}rzbh)]h']h(]h,]r{h ahhX Heart.stophjhihkuh.Nh/hh]r|(h)r}}r~(hXstophjshh_h#hh%}r(h']h(]h)]h*]h,]uh.Nh/hh]rh8Xstoprr}r(hUhj}ubaubh)r}r(hUhjshh_h#hh%}r(h']h(]h)]h*]h,]uh.Nh/hh]ubeubh)r}r(hUhjnhh_h#hh%}r(h']h(]h)]h*]h,]uh.Nh/hh]rh)r}r(hXGracefully shutdown the thread.rhjhjjh#hh%}r(h']h(]h)]h*]h,]uh.Kh/hh]rh8XGracefully shutdown the thread.rr}r(hjhjubaubaubeubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh/hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh%}r(h']UlevelKh*]h)]Usourceh?h(]h,]UlineKUtypeUINFOruh]rh)r}r(hUh%}r(h']h(]h)]h*]h,]uhjh]rh8XDHyperlink target "module-celery.worker.heartbeat" is not referenced.rr}r(hUhjubah#hubah#Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh5NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUi/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.heartbeat.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]rUfile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hh]hjRh j h jshhhCh=hcdocutils.nodes topic r)r}r(hUhhhh!h#Utopicrh%}r (h']h(]r (Ucontentsr Ulocalr eh)]h*]r hah,]rh auh.Kh/hh]rcdocutils.nodes pending r)r}r(hX.. contents:: :local:hjU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh#Upendingrh%}r(h']h(]h)]h*]h,]uh]ubaubuUsubstitution_namesr}rh#h/h%}r(h']h*]h)]Usourceh!h(]h,]uU footnotesr]rUrefidsr}rub.PKYDD3oJoJPcelery-2.1-archived/.doctrees/internals/reference/celery.utils.timeutils.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X0time and date utilities - celery.utils.timeutilsqNX(celery.utils.timeutils.timedelta_secondsqX'celery.utils.timeutils.delta_resolutionqX celery.utils.timeutils.remainingq Xcelery.utils.timeutils.rateq Xcelery.utils.timeutils.weekdayq Ucontentsq NuUsubstitution_defsq }qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU.time-and-date-utilities-celery-utils-timeutilsqhhhhh h h h h h h UcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode q Xh/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.timeutils.rstq!q"}q#bUtagnameq$Usectionq%U attributesq&}q'(Udupnamesq(]Uclassesq)]Ubackrefsq*]Uidsq+]q,haUnamesq-]q.hauUlineq/KUdocumentq0hh]q1(cdocutils.nodes title q2)q3}q4(hX0Time and Date Utilities - celery.utils.timeutilsq5hhhh"h$Utitleq6h&}q7(h(]h)]h*]h+]h-]uh/Kh0hh]q8cdocutils.nodes Text q9X0Time and Date Utilities - celery.utils.timeutilsq:q;}q<(hh5hh3ubaubcdocutils.nodes target q=)q>}q?(hUhhhU q@h$UtargetqAh&}qB(h(]h+]qCXmodule-celery.utils.timeutilsqDah*]Uismodh)]h-]uh/Kh0hh]ubcsphinx.addnodes index qE)qF}qG(hUhhhh@h$UindexqHh&}qI(h+]h*]h(]h)]h-]Uentries]qJ(UsingleqKXcelery.utils.timeutils (module)Xmodule-celery.utils.timeutilsUtqLauh/Kh0hh]ubhE)qM}qN(hUhhhX/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/timeutils.py:docstring of celery.utils.timeutils.delta_resolutionqOh$hHh&}qP(h+]h*]h(]h)]h-]Uentries]qQ(hKX5delta_resolution() (in module celery.utils.timeutils)hUtqRauh/Nh0hh]ubcsphinx.addnodes desc qS)qT}qU(hUhhhhOh$UdescqVh&}qW(UnoindexqXUdomainqYXpyh+]h*]h(]h)]h-]UobjtypeqZXfunctionq[Udesctypeq\h[uh/Nh0hh]q](csphinx.addnodes desc_signature q^)q_}q`(hXdelta_resolution(dt, delta)hhThU qah$Udesc_signatureqbh&}qc(h+]qdhaUmoduleqeh Xcelery.utils.timeutilsqfqg}qhbh*]h(]h)]h-]qihaUfullnameqjXdelta_resolutionqkUclassqlUUfirstqmuh/Nh0hh]qn(csphinx.addnodes desc_addname qo)qp}qq(hXcelery.utils.timeutils.hh_hhah$U desc_addnameqrh&}qs(h(]h)]h*]h+]h-]uh/Nh0hh]qth9Xcelery.utils.timeutils.quqv}qw(hUhhpubaubcsphinx.addnodes desc_name qx)qy}qz(hhkhh_hhah$U desc_nameq{h&}q|(h(]h)]h*]h+]h-]uh/Nh0hh]q}h9Xdelta_resolutionq~q}q(hUhhyubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhh_hhah$Udesc_parameterlistqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]q(csphinx.addnodes desc_parameter q)q}q(hXdth&}q(h(]h)]h*]h+]h-]uhhh]qh9Xdtqq}q(hUhhubah$Udesc_parameterqubh)q}q(hXdeltah&}q(h(]h)]h*]h+]h-]uhhh]qh9Xdeltaqq}q(hUhhubah$hubeubeubcsphinx.addnodes desc_content q)q}q(hUhhThhah$U desc_contentqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]q(cdocutils.nodes paragraph q)q}q(hX2Round a datetime to the resolution of a timedelta.qhhhhOh$U paragraphqh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]qh9X2Round a datetime to the resolution of a timedelta.qq}q(hhhhubaubh)q}q(hXIf the timedelta is in days, the datetime will be rounded to the nearest days, if the timedelta is in hours the datetime will be rounded to the nearest hour, and so on until seconds which will just return the original datetime.qhhhhOh$hh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]qh9XIf the timedelta is in days, the datetime will be rounded to the nearest days, if the timedelta is in hours the datetime will be rounded to the nearest hour, and so on until seconds which will just return the original datetime.qq}q(hhhhubaubeubeubhE)q}q(hUhhhXw/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/timeutils.py:docstring of celery.utils.timeutils.rateqh$hHh&}q(h+]h*]h(]h)]h-]Uentries]q(hKX)rate() (in module celery.utils.timeutils)h Utqauh/Nh0hh]ubhS)q}q(hUhhhhh$hVh&}q(hXhYXpyh+]h*]h(]h)]h-]hZXfunctionqh\huh/Nh0hh]q(h^)q}q(hX rate(rate)hhhhah$hbh&}q(h+]qh aheh Xcelery.utils.timeutilsqq}qbh*]h(]h)]h-]qh ahjXrateqhlUhmuh/Nh0hh]q(ho)q}q(hXcelery.utils.timeutils.hhhhah$hrh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9Xcelery.utils.timeutils.qȅq}q(hUhhubaubhx)q}q(hhhhhhah$h{h&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9Xrateqυq}q(hUhhubaubh)q}q(hUhhhhah$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh)q}q(hXrateh&}q(h(]h)]h*]h+]h-]uhhh]qh9Xrateqڅq}q(hUhhubah$hubaubeubh)q}q(hUhhhhah$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh)q}q(hXSParses rate strings, such as ``"100/m"`` or ``"2/h"`` and converts them to seconds.hhhhh$hh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]q(h9XParses rate strings, such as q允q}q(hXParses rate strings, such as hhubcdocutils.nodes literal q)q}q(hX ``"100/m"``h&}q(h(]h)]h*]h+]h-]uhhh]qh9X"100/m"q텁q}q(hUhhubah$Uliteralqubh9X or qq}q(hX or hhubh)q}q(hX ``"2/h"``h&}q(h(]h)]h*]h+]h-]uhhh]qh9X"2/h"qq}q(hUhhubah$hubh9X and converts them to seconds.qq}q(hX and converts them to seconds.hhubeubaubeubhE)q}q(hUhhhNh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(hKX.remaining() (in module celery.utils.timeutils)h Utrauh/Nh0hh]ubhS)r}r(hUhhhNh$hVh&}r(hXhYXpyh+]h*]h(]h)]h-]hZXfunctionrh\juh/Nh0hh]r(h^)r}r (hX2remaining(start, ends_in, now=None, relative=True)hjhhah$hbh&}r (h+]r h aheh Xcelery.utils.timeutilsr r }rbh*]h(]h)]h-]rh ahjX remainingrhlUhmuh/Nh0hh]r(ho)r}r(hXcelery.utils.timeutils.hjhhah$hrh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9Xcelery.utils.timeutils.rr}r(hUhjubaubhx)r}r(hjhjhhah$h{h&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9X remainingrr}r(hUhjubaubh)r }r!(hUhjhhah$hh&}r"(h(]h)]h*]h+]h-]uh/Nh0hh]r#(h)r$}r%(hXstarth&}r&(h(]h)]h*]h+]h-]uhj h]r'h9Xstartr(r)}r*(hUhj$ubah$hubh)r+}r,(hXends_inh&}r-(h(]h)]h*]h+]h-]uhj h]r.h9Xends_inr/r0}r1(hUhj+ubah$hubh)r2}r3(hXnow=Noneh&}r4(h(]h)]h*]h+]h-]uhj h]r5h9Xnow=Noner6r7}r8(hUhj2ubah$hubh)r9}r:(hX relative=Trueh&}r;(h(]h)]h*]h+]h-]uhj h]r<h9X relative=Truer=r>}r?(hUhj9ubah$hubeubeubh)r@}rA(hUhjhhah$hh&}rB(h(]h)]h*]h+]h-]uh/Nh0hh]rC(h)rD}rE(hX>Calculate the remaining time for a start date and a timedelta.rFhj@hX|/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/timeutils.py:docstring of celery.utils.timeutils.remainingrGh$hh&}rH(h(]h)]h*]h+]h-]uh/Kh0hh]rIh9X>Calculate the remaining time for a start date and a timedelta.rJrK}rL(hjFhjDubaubh)rM}rN(hX8e.g. "how many seconds left for 30 seconds after start?"rOhj@hjGh$hh&}rP(h(]h)]h*]h+]h-]uh/Kh0hh]rQh9X8e.g. "how many seconds left for 30 seconds after start?"rRrS}rT(hjOhjMubaubcdocutils.nodes field_list rU)rV}rW(hUhj@hNh$U field_listrXh&}rY(h(]h)]h*]h+]h-]uh/Nh0hh]rZcdocutils.nodes field r[)r\}r](hUh&}r^(h(]h)]h*]h+]h-]uhjVh]r_(cdocutils.nodes field_name r`)ra}rb(hUh&}rc(h(]h)]h*]h+]h-]uhj\h]rdh9X Parametersrerf}rg(hUhjaubah$U field_namerhubcdocutils.nodes field_body ri)rj}rk(hUh&}rl(h(]h)]h*]h+]h-]uhj\h]rmcdocutils.nodes bullet_list rn)ro}rp(hUh&}rq(h(]h)]h*]h+]h-]uhjjh]rr(cdocutils.nodes list_item rs)rt}ru(hUh&}rv(h(]h)]h*]h+]h-]uhjoh]rwh)rx}ry(hUh&}rz(h(]h)]h*]h+]h-]uhjth]r{(cdocutils.nodes strong r|)r}}r~(hXstarth&}r(h(]h)]h*]h+]h-]uhjxh]rh9Xstartrr}r(hUhj}ubah$Ustrongrubh9X -- rr}r(hUhjxubh9XStart rr}r(hXStart hjxubcsphinx.addnodes pending_xref r)r}r(hX:class:`~datetime.datetime`rhjxhNh$U pending_xrefrh&}r(UreftypeXclassUrefwarnrU reftargetrXdatetime.datetimeU refdomainXpyrh+]h*]U refexplicith(]h)]h-]UrefdocrX*internals/reference/celery.utils.timeutilsrUpy:classrNU py:modulerXcelery.utils.timeutilsruh/Nh]rh)r}r(hjh&}r(h(]h)]r(UxrefrjXpy-classreh*]h+]h-]uhjh]rh9Xdatetimerr}r(hUhjubah$hubaubh9X.r}r(hX.hjxubeh$hubah$U list_itemrubjs)r}r(hUh&}r(h(]h)]h*]h+]h-]uhjoh]rh)r}r(hUh&}r(h(]h)]h*]h+]h-]uhjh]r(j|)r}r(hXends_inh&}r(h(]h)]h*]h+]h-]uhjh]rh9Xends_inrr}r(hUhjubah$jubh9X -- rr}r(hUhjubh9XThe end delta as a rr}r(hXThe end delta as a hjubj)r}r(hX:class:`~datetime.timedelta`rhjhNh$jh&}r(UreftypeXclassjjXdatetime.timedeltaU refdomainXpyrh+]h*]U refexplicith(]h)]h-]jjjNjjuh/Nh]rh)r}r(hjh&}r(h(]h)]r(jjXpy-classreh*]h+]h-]uhjh]rh9X timedeltarr}r(hUhjubah$hubaubh9X.r}r(hX.hjubeh$hubah$jubjs)r}r(hUh&}r(h(]h)]h*]h+]h-]uhjoh]rh)r}r(hUh&}r(h(]h)]h*]h+]h-]uhjh]r(j|)r}r(hXrelativeh&}r(h(]h)]h*]h+]h-]uhjh]rh9Xrelativerr}r(hUhjubah$jubh9X -- rr}r(hUhjubh9X If set to rr}r(hX If set to hjubj)r}r(hX:const:`False`rhjhNh$jh&}r(UreftypeXconstjjXFalseU refdomainXpyrh+]h*]U refexplicith(]h)]h-]jjjNjjuh/Nh]rh)r}r(hjh&}r(h(]h)]r(jjXpy-constreh*]h+]h-]uhjh]rh9XFalserr}r(hUhjubah$hubaubh9X(, the end time will be calculated using rr}r(hX(, the end time will be calculated using hjubj)r}r(hX:func:`delta_resolution`rhjhNh$jh&}r(UreftypeXfuncjjXdelta_resolutionU refdomainXpyrh+]h*]U refexplicith(]h)]h-]jjjNjjuh/Nh]rh)r}r(hjh&}r(h(]h)]r(jjXpy-funcreh*]h+]h-]uhjh]rh9Xdelta_resolution()rr}r(hUhjubah$hubaubh9X$ (i.e. rounded to the resolution of rr}r(hX$ (i.e. rounded to the resolution of hjubh)r}r(hX ``ends_in``h&}r(h(]h)]h*]h+]h-]uhjh]r h9Xends_inr r }r (hUhjubah$hubh9X).r r}r(hX).hjubeh$hubah$jubjs)r}r(hUh&}r(h(]h)]h*]h+]h-]uhjoh]rh)r}r(hUh&}r(h(]h)]h*]h+]h-]uhjh]r(j|)r}r(hXnowh&}r(h(]h)]h*]h+]h-]uhjh]rh9Xnowrr}r(hUhjubah$jubh9X -- rr }r!(hUhjubh9X:Function returning the current time and date, defaults to r"r#}r$(hX:Function returning the current time and date, defaults to hjubj)r%}r&(hX:func:`datetime.now`r'hjhNh$jh&}r((UreftypeXfuncjjX datetime.nowU refdomainXpyr)h+]h*]U refexplicith(]h)]h-]jjjNjjuh/Nh]r*h)r+}r,(hj'h&}r-(h(]h)]r.(jj)Xpy-funcr/eh*]h+]h-]uhj%h]r0h9Xdatetime.now()r1r2}r3(hUhj+ubah$hubaubh9X.r4}r5(hX.hjubeh$hubah$jubeh$U bullet_listr6ubah$U field_bodyr7ubeh$Ufieldr8ubaubeubeubhE)r9}r:(hUhhhX/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/timeutils.py:docstring of celery.utils.timeutils.timedelta_secondsr;h$hHh&}r<(h+]h*]h(]h)]h-]Uentries]r=(hKX6timedelta_seconds() (in module celery.utils.timeutils)hUtr>auh/Nh0hh]ubhS)r?}r@(hUhhhj;h$hVh&}rA(hXhYXpyh+]h*]h(]h)]h-]hZXfunctionrBh\jBuh/Nh0hh]rC(h^)rD}rE(hXtimedelta_seconds(delta)hj?hhah$hbh&}rF(h+]rGhaheh Xcelery.utils.timeutilsrHrI}rJbh*]h(]h)]h-]rKhahjXtimedelta_secondsrLhlUhmuh/Nh0hh]rM(ho)rN}rO(hXcelery.utils.timeutils.hjDhhah$hrh&}rP(h(]h)]h*]h+]h-]uh/Nh0hh]rQh9Xcelery.utils.timeutils.rRrS}rT(hUhjNubaubhx)rU}rV(hjLhjDhhah$h{h&}rW(h(]h)]h*]h+]h-]uh/Nh0hh]rXh9Xtimedelta_secondsrYrZ}r[(hUhjUubaubh)r\}r](hUhjDhhah$hh&}r^(h(]h)]h*]h+]h-]uh/Nh0hh]r_h)r`}ra(hXdeltah&}rb(h(]h)]h*]h+]h-]uhj\h]rch9Xdeltardre}rf(hUhj`ubah$hubaubeubh)rg}rh(hUhj?hhah$hh&}ri(h(]h)]h*]h+]h-]uh/Nh0hh]rj(h)rk}rl(hX/Convert :class:`datetime.timedelta` to seconds.hjghj;h$hh&}rm(h(]h)]h*]h+]h-]uh/Kh0hh]rn(h9XConvert rorp}rq(hXConvert hjkubj)rr}rs(hX:class:`datetime.timedelta`rthjkhNh$jh&}ru(UreftypeXclassjjXdatetime.timedeltaU refdomainXpyrvh+]h*]U refexplicith(]h)]h-]jjjNjjuh/Nh]rwh)rx}ry(hjth&}rz(h(]h)]r{(jjvXpy-classr|eh*]h+]h-]uhjrh]r}h9Xdatetime.timedeltar~r}r(hUhjxubah$hubaubh9X to seconds.rr}r(hX to seconds.hjkubeubh)r}r(hX$Doesn't account for negative values.rhjghj;h$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rh9X$Doesn't account for negative values.rr}r(hjhjubaubeubeubhE)r}r(hUhhhXz/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/timeutils.py:docstring of celery.utils.timeutils.weekdayrh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(hKX,weekday() (in module celery.utils.timeutils)h Utrauh/Nh0hh]ubhS)r}r(hUhhhjh$hVh&}r(hXhYXpyh+]h*]h(]h)]h-]hZXfunctionrh\juh/Nh0hh]r(h^)r}r(hX weekday(name)rhjhhah$hbh&}r(h+]rh aheh Xcelery.utils.timeutilsrr}rbh*]h(]h)]h-]rh ahjXweekdayrhlUhmuh/Nh0hh]r(ho)r}r(hXcelery.utils.timeutils.hjhhah$hrh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9Xcelery.utils.timeutils.rr}r(hUhjubaubhx)r}r(hjhjhhah$h{h&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9Xweekdayrr}r(hUhjubaubh)r}r(hUhjhhah$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh)r}r(hXnameh&}r(h(]h)]h*]h+]h-]uhjh]rh9Xnamerr}r(hUhjubah$hubaubeubh)r}r(hUhjhhah$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]r(h)r}r(hX<Return the position of a weekday (0 - 7, where 0 is Sunday).rhjhjh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rh9X<Return the position of a weekday (0 - 7, where 0 is Sunday).rr}r(hjhjubaubh)r}r(hX Example::rhjhjh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rh9XExample:rr}r(hXExample:hjubaubcdocutils.nodes literal_block r)r}r(hX?>>> weekday("sunday"), weekday("sun"), weekday("mon") (0, 0, 1)hjhjh$U literal_blockrh&}r(U xml:spacerUpreserverh+]h*]h(]h)]h-]uh/K9h0hh]rh9X?>>> weekday("sunday"), weekday("sun"), weekday("mon") (0, 0, 1)rr}r(hUhjubaubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh0hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh&}r(h(]UlevelKh+]h*]Usourceh@h)]h-]UlineKUtypeUINFOruh]rh)r}r(hUh&}r(h(]h)]h*]h+]h-]uhjh]rh9XCHyperlink target "module-celery.utils.timeutils" is not referenced.rr}r(hUhjubah$hubah$Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder UenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh6NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelr KUconfigr!NUstrict_visitorr"NUcloak_email_addressesr#Utrim_footnote_reference_spacer$Uenvr%NUdump_pseudo_xmlr&NUexpose_internalsr'NUsectsubtitle_xformr(U source_linkr)NUrfc_referencesr*NUoutput_encodingr+Uutf-8r,U source_urlr-NUinput_encodingr.U utf-8-sigr/U_disable_configr0NU id_prefixr1UU tab_widthr2KUerror_encodingr3UUTF-8r4U_sourcer5Uh/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.timeutils.rstr6Ugettext_compactr7U generatorr8NUdump_internalsr9NU smart_quotesr:U pep_base_urlr;Uhttp://www.python.org/dev/peps/r<Usyntax_highlightr=Ulongr>Uinput_encoding_error_handlerr?jUauto_id_prefixr@UidrAUdoctitle_xformrBUstrip_elements_with_classesrCNU _config_filesrD]Ufile_insertion_enabledrEU raw_enabledrFKU dump_settingsrGNubUsymbol_footnote_startrHKUidsrI}rJ(hjDhh_hhh jh hh jhcdocutils.nodes topic rK)rL}rM(hUhhhh"h$UtopicrNh&}rO(h(]h)]rP(UcontentsrQUlocalrReh*]h+]rShah-]rTh auh/Kh0hh]rUcdocutils.nodes pending rV)rW}rX(hX.. contents:: :local:hjLU transformrYcdocutils.transforms.parts Contents rZUdetailsr[}r\UlocalNsh$Upendingr]h&}r^(h(]h)]h*]h+]h-]uh]ubaubhDh>uUsubstitution_namesr_}r`h$h0h&}ra(h(]h+]h*]Usourceh"h)]h-]uU footnotesrb]rcUrefidsrd}reub.PKYDDZJ_kkQcelery-2.1-archived/.doctrees/internals/reference/celery.events.cursesmon.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X.celery.events.cursesmon.CursesMonitor.info_strqX:celery.events.cursesmon.CursesMonitor.selection_rate_limitqX9celery.events.cursesmon.CursesMonitor.selection_tracebackqX.celery.events.cursesmon.CursesMonitor.readlineq X,celery.events.cursesmon.CursesMonitor.keymapq X+celery.events.cursesmon.CursesMonitor.limitq X6celery.events.cursesmon.CursesMonitor.revoke_selectionq X6celery.events.cursesmon.CursesMonitor.selection_resultq X7celery.events.cursesmon.CursesMonitor.selected_positionqX(curses monitor - celery.events.cursesmonqNX9celery.events.cursesmon.CursesMonitor.move_selection_downqX-celery.events.cursesmon.CursesMonitor.workersqUcontentsqNX+celery.events.cursesmon.CursesMonitor.tasksqX4celery.events.cursesmon.CursesMonitor.move_selectionqX1celery.events.cursesmon.CursesMonitor.init_screenqX3celery.events.cursesmon.CursesMonitor.selected_taskqX)celery.events.cursesmon.CursesMonitor.winqX*celery.events.cursesmon.CursesMonitor.helpqXcelery.events.cursesmon.evtopqX4celery.events.cursesmon.CursesMonitor.selection_infoqX%celery.events.cursesmon.CursesMonitorqX+celery.events.cursesmon.CursesMonitor.alertqX0celery.events.cursesmon.CursesMonitor.online_strqX2celery.events.cursesmon.CursesMonitor.screen_delayqX)celery.events.cursesmon.DisplayThread.runqX3celery.events.cursesmon.CursesMonitor.find_positionq X0celery.events.cursesmon.CursesMonitor.foregroundq!X0celery.events.cursesmon.CursesMonitor.help_titleq"X)celery.events.cursesmon.CursesMonitor.napq#X*celery.events.cursesmon.CursesMonitor.drawq$X3celery.events.cursesmon.CursesMonitor.display_widthq%X0celery.events.cursesmon.CursesMonitor.backgroundq&X2celery.events.cursesmon.CursesMonitor.screen_widthq'X%celery.events.cursesmon.DisplayThreadq(X+celery.events.cursesmon.CursesMonitor.greetq)X1celery.events.cursesmon.CursesMonitor.resetscreenq*X2celery.events.cursesmon.CursesMonitor.selected_strq+X@celery.events.cursesmon.CursesMonitor.alert_remote_control_replyq,X7celery.events.cursesmon.CursesMonitor.move_selection_upq-X.celery.events.cursesmon.CursesMonitor.keyaliasq.X0celery.events.cursesmon.CursesMonitor.format_rowq/X5celery.events.cursesmon.CursesMonitor.handle_keypressq0uUsubstitution_defsq1}q2Uparse_messagesq3]q4Ucurrent_sourceq5NU decorationq6NUautofootnote_startq7KUnameidsq8}q9(hhhhhhh h h h h h h h h h hhhU&curses-monitor-celery-events-cursesmonq:hhhhhUcontentsq;hhhhhhhhhhhhhhhhhhhhhhhhhhh h h!h!h"h"h#h#h$h$h%h%h&h&h'h'h(h(h)h)h*h*h+h+h,h,h-h-h.h.h/h/h0h0uUchildrenq<]q=cdocutils.nodes section q>)q?}q@(U rawsourceqAUUparentqBhUsourceqCcdocutils.nodes reprunicode qDXi/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.events.cursesmon.rstqEqF}qGbUtagnameqHUsectionqIU attributesqJ}qK(UdupnamesqL]UclassesqM]UbackrefsqN]UidsqO]qPh:aUnamesqQ]qRhauUlineqSKUdocumentqThh<]qU(cdocutils.nodes title qV)qW}qX(hAX(Curses Monitor - celery.events.cursesmonqYhBh?hChFhHUtitleqZhJ}q[(hL]hM]hN]hO]hQ]uhSKhThh<]q\cdocutils.nodes Text q]X(Curses Monitor - celery.events.cursesmonq^q_}q`(hAhYhBhWubaubcdocutils.nodes target qa)qb}qc(hAUhBh?hCU qdhHUtargetqehJ}qf(hL]hO]qgXmodule-celery.events.cursesmonqhahN]UismodhM]hQ]uhSKhThh<]ubcsphinx.addnodes index qi)qj}qk(hAUhBh?hChdhHUindexqlhJ}qm(hO]hN]hL]hM]hQ]Uentries]qn(UsingleqoX celery.events.cursesmon (module)Xmodule-celery.events.cursesmonUtqpauhSKhThh<]ubhi)qq}qr(hAUhBh?hCNhHhlhJ}qs(hO]hN]hL]hM]hQ]Uentries]qt(hoX0CursesMonitor (class in celery.events.cursesmon)hUtquauhSNhThh<]ubcsphinx.addnodes desc qv)qw}qx(hAUhBh?hCNhHUdescqyhJ}qz(Unoindexq{Udomainq|XpyhO]hN]hL]hM]hQ]Uobjtypeq}Xclassq~Udesctypeqh~uhSNhThh<]q(csphinx.addnodes desc_signature q)q}q(hAX!CursesMonitor(state, keymap=None)hBhwhCU qhHUdesc_signatureqhJ}q(hO]qhaUmoduleqhDXcelery.events.cursesmonqq}qbhN]hL]hM]hQ]qhaUfullnameqX CursesMonitorqUclassqUUfirstquhSNhThh<]q(csphinx.addnodes desc_annotation q)q}q(hAXclass hBhhChhHUdesc_annotationqhJ}q(hL]hM]hN]hO]hQ]uhSNhThh<]qh]Xclass qq}q(hAUhBhubaubcsphinx.addnodes desc_addname q)q}q(hAXcelery.events.cursesmon.hBhhChhHU desc_addnameqhJ}q(hL]hM]hN]hO]hQ]uhSNhThh<]qh]Xcelery.events.cursesmon.qq}q(hAUhBhubaubcsphinx.addnodes desc_name q)q}q(hAhhBhhChhHU desc_nameqhJ}q(hL]hM]hN]hO]hQ]uhSNhThh<]qh]X CursesMonitorqq}q(hAUhBhubaubcsphinx.addnodes desc_parameterlist q)q}q(hAUhBhhChhHUdesc_parameterlistqhJ}q(hL]hM]hN]hO]hQ]uhSNhThh<]q(csphinx.addnodes desc_parameter q)q}q(hAXstatehJ}q(hL]hM]hN]hO]hQ]uhBhh<]qh]Xstateqq}q(hAUhBhubahHUdesc_parameterqubh)q}q(hAX keymap=NonehJ}q(hL]hM]hN]hO]hQ]uhBhh<]qh]X keymap=Noneqq}q(hAUhBhubahHhubeubeubcsphinx.addnodes desc_content q)q}q(hAUhBhwhChhHU desc_contentqhJ}q(hL]hM]hN]hO]hQ]uhSNhThh<]q(hi)q}q(hAUhBhhCNhHhlhJ}q(hO]hN]hL]hM]hQ]Uentries]q(hoX6alert() (celery.events.cursesmon.CursesMonitor method)hUtqauhSNhThh<]ubhv)q}q(hAUhBhhCNhHhyhJ}q(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodqhhuhSNhThh<]q(h)q}q(hAX)CursesMonitor.alert(callback, title=None)hBhhChhHhhJ}q(hO]qhahhDXcelery.events.cursesmonqׅq}qbhN]hL]hM]hQ]qhahXCursesMonitor.alerthhhuhSNhThh<]q(h)q}q(hAXalerthBhhChhHhhJ}q(hL]hM]hN]hO]hQ]uhSNhThh<]qh]Xalertqq}q(hAUhBhubaubh)q}q(hAUhBhhChhHhhJ}q(hL]hM]hN]hO]hQ]uhSNhThh<]q(h)q}q(hAXcallbackhJ}q(hL]hM]hN]hO]hQ]uhBhh<]qh]Xcallbackq녁q}q(hAUhBhubahHhubh)q}q(hAX title=NonehJ}q(hL]hM]hN]hO]hQ]uhBhh<]qh]X title=Noneqq}q(hAUhBhubahHhubeubeubh)q}q(hAUhBhhChhHhhJ}q(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)q}q(hAUhBhhCNhHhlhJ}q(hO]hN]hL]hM]hQ]Uentries]q(hoXKalert_remote_control_reply() (celery.events.cursesmon.CursesMonitor method)h,UtqauhSNhThh<]ubhv)q}q(hAUhBhhCNhHhyhJ}q(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrhjuhSNhThh<]r(h)r}r(hAX/CursesMonitor.alert_remote_control_reply(reply)hBhhChhHhhJ}r(hO]rh,ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]r h,ahX(CursesMonitor.alert_remote_control_replyhhhuhSNhThh<]r (h)r }r (hAXalert_remote_control_replyhBjhChhHhhJ}r (hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xalert_remote_control_replyrr}r(hAUhBj ubaubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh)r}r(hAXreplyhJ}r(hL]hM]hN]hO]hQ]uhBjh<]rh]Xreplyrr}r(hAUhBjubahHhubaubeubh)r}r(hAUhBhhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r }r!(hAUhBhhCNhHhlhJ}r"(hO]hN]hL]hM]hQ]Uentries]r#(hoX<background (celery.events.cursesmon.CursesMonitor attribute)h&Utr$auhSNhThh<]ubhv)r%}r&(hAUhBhhCNhHhyhJ}r'(h{h|XpyhO]hN]hL]hM]hQ]h}X attributer(hj(uhSNhThh<]r)(h)r*}r+(hAXCursesMonitor.backgroundhBj%hCU r,hHhhJ}r-(hO]r.h&ahhDXcelery.events.cursesmonr/r0}r1bhN]hL]hM]hQ]r2h&ahXCursesMonitor.backgroundhhhuhSNhThh<]r3(h)r4}r5(hAX backgroundhBj*hCj,hHhhJ}r6(hL]hM]hN]hO]hQ]uhSNhThh<]r7h]X backgroundr8r9}r:(hAUhBj4ubaubh)r;}r<(hAX = 7hBj*hCj,hHhhJ}r=(hL]hM]hN]hO]hQ]uhSNhThh<]r>h]X = 7r?r@}rA(hAUhBj;ubaubeubh)rB}rC(hAUhBj%hCj,hHhhJ}rD(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)rE}rF(hAUhBhhCNhHhlhJ}rG(hO]hN]hL]hM]hQ]Uentries]rH(hoX?display_width (celery.events.cursesmon.CursesMonitor attribute)h%UtrIauhSNhThh<]ubhv)rJ}rK(hAUhBhhCNhHhyhJ}rL(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerMhjMuhSNhThh<]rN(h)rO}rP(hAXCursesMonitor.display_widthhBjJhChhHhhJ}rQ(hO]rRh%ahhDXcelery.events.cursesmonrSrT}rUbhN]hL]hM]hQ]rVh%ahXCursesMonitor.display_widthhhhuhSNhThh<]rWh)rX}rY(hAX display_widthhBjOhChhHhhJ}rZ(hL]hM]hN]hO]hQ]uhSNhThh<]r[h]X display_widthr\r]}r^(hAUhBjXubaubaubh)r_}r`(hAUhBjJhChhHhhJ}ra(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)rb}rc(hAUhBhhCNhHhlhJ}rd(hO]hN]hL]hM]hQ]Uentries]re(hoX5draw() (celery.events.cursesmon.CursesMonitor method)h$UtrfauhSNhThh<]ubhv)rg}rh(hAUhBhhCNhHhyhJ}ri(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrjhjjuhSNhThh<]rk(h)rl}rm(hAXCursesMonitor.draw()hBjghChhHhhJ}rn(hO]roh$ahhDXcelery.events.cursesmonrprq}rrbhN]hL]hM]hQ]rsh$ahXCursesMonitor.drawhhhuhSNhThh<]rt(h)ru}rv(hAXdrawhBjlhChhHhhJ}rw(hL]hM]hN]hO]hQ]uhSNhThh<]rxh]Xdrawryrz}r{(hAUhBjuubaubh)r|}r}(hAUhBjlhChhHhhJ}r~(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)r}r(hAUhBjghChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX>find_position() (celery.events.cursesmon.CursesMonitor method)h UtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.find_position()hBjhChhHhhJ}r(hO]rh ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh ahXCursesMonitor.find_positionhhhuhSNhThh<]r(h)r}r(hAX find_positionhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X find_positionrr}r(hAUhBjubaubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX<foreground (celery.events.cursesmon.CursesMonitor attribute)h!UtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.foregroundhBjhCj,hHhhJ}r(hO]rh!ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh!ahXCursesMonitor.foregroundhhhuhSNhThh<]r(h)r}r(hAX foregroundhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X foregroundrr}r(hAUhBjubaubh)r}r(hAX = 0hBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X = 0rr}r(hAUhBjubaubeubh)r}r(hAUhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX;format_row() (celery.events.cursesmon.CursesMonitor method)h/UtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrhjuhSNhThh<]r(h)r}r(hAX>CursesMonitor.format_row(uuid, task, worker, timestamp, state)hBjhChhHhhJ}r(hO]rh/ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh/ahXCursesMonitor.format_rowhhhuhSNhThh<]r(h)r}r(hAX format_rowhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X format_rowrr}r(hAUhBjubaubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]r(h)r}r(hAXuuidhJ}r(hL]hM]hN]hO]hQ]uhBjh<]rh]Xuuidrr}r(hAUhBjubahHhubh)r}r(hAXtaskhJ}r(hL]hM]hN]hO]hQ]uhBjh<]rh]Xtaskrr}r(hAUhBjubahHhubh)r}r(hAXworkerhJ}r(hL]hM]hN]hO]hQ]uhBjh<]rh]Xworkerrr}r(hAUhBjubahHhubh)r}r(hAX timestamphJ}r(hL]hM]hN]hO]hQ]uhBjh<]rh]X timestamprr}r(hAUhBjubahHhubh)r}r(hAXstatehJ}r(hL]hM]hN]hO]hQ]uhBjh<]rh]Xstaterr}r(hAUhBjubahHhubeubeubh)r}r(hAUhBjhChhHhhJ}r (hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r }r (hAUhBhhCNhHhlhJ}r (hO]hN]hL]hM]hQ]Uentries]r (hoX7greet (celery.events.cursesmon.CursesMonitor attribute)h)UtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.greethBjhCj,hHhhJ}r(hO]rh)ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh)ahXCursesMonitor.greethhhuhSNhThh<]r(h)r}r(hAXgreethBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]r h]Xgreetr!r"}r#(hAUhBjubaubh)r$}r%(hAX = 'celeryev 2.1.4'hBjhCj,hHhhJ}r&(hL]hM]hN]hO]hQ]uhSNhThh<]r'h]X = 'celeryev 2.1.4'r(r)}r*(hAUhBj$ubaubeubh)r+}r,(hAUhBjhCj,hHhhJ}r-(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r.}r/(hAUhBhhCNhHhlhJ}r0(hO]hN]hL]hM]hQ]Uentries]r1(hoX@handle_keypress() (celery.events.cursesmon.CursesMonitor method)h0Utr2auhSNhThh<]ubhv)r3}r4(hAUhBhhCNhHhyhJ}r5(h{h|XpyhO]hN]hL]hM]hQ]h}Xmethodr6hj6uhSNhThh<]r7(h)r8}r9(hAXCursesMonitor.handle_keypress()hBj3hChhHhhJ}r:(hO]r;h0ahhDXcelery.events.cursesmonr<r=}r>bhN]hL]hM]hQ]r?h0ahXCursesMonitor.handle_keypresshhhuhSNhThh<]r@(h)rA}rB(hAXhandle_keypresshBj8hChhHhhJ}rC(hL]hM]hN]hO]hQ]uhSNhThh<]rDh]Xhandle_keypressrErF}rG(hAUhBjAubaubh)rH}rI(hAUhBj8hChhHhhJ}rJ(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)rK}rL(hAUhBj3hChhHhhJ}rM(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)rN}rO(hAUhBhhCNhHhlhJ}rP(hO]hN]hL]hM]hQ]Uentries]rQ(hoX6help (celery.events.cursesmon.CursesMonitor attribute)hUtrRauhSNhThh<]ubhv)rS}rT(hAUhBhhCNhHhyhJ}rU(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerVhjVuhSNhThh<]rW(h)rX}rY(hAXCursesMonitor.helphBjShCj,hHhhJ}rZ(hO]r[hahhDXcelery.events.cursesmonr\r]}r^bhN]hL]hM]hQ]r_hahXCursesMonitor.helphhhuhSNhThh<]r`(h)ra}rb(hAXhelphBjXhCj,hHhhJ}rc(hL]hM]hN]hO]hQ]uhSNhThh<]rdh]Xhelprerf}rg(hAUhBjaubaubh)rh}ri(hAX> = 'j:up k:down i:info t:traceback r:result c:revoke ^c: quit'hBjXhCj,hHhhJ}rj(hL]hM]hN]hO]hQ]uhSNhThh<]rkh]X> = 'j:up k:down i:info t:traceback r:result c:revoke ^c: quit'rlrm}rn(hAUhBjhubaubeubh)ro}rp(hAUhBjShCj,hHhhJ}rq(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)rr}rs(hAUhBhhCNhHhlhJ}rt(hO]hN]hL]hM]hQ]Uentries]ru(hoX<help_title (celery.events.cursesmon.CursesMonitor attribute)h"UtrvauhSNhThh<]ubhv)rw}rx(hAUhBhhCNhHhyhJ}ry(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerzhjzuhSNhThh<]r{(h)r|}r}(hAXCursesMonitor.help_titlehBjwhCj,hHhhJ}r~(hO]rh"ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh"ahXCursesMonitor.help_titlehhhuhSNhThh<]r(h)r}r(hAX help_titlehBj|hCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X help_titlerr}r(hAUhBjubaubh)r}r(hAX = 'Keys: 'hBj|hCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X = 'Keys: 'rr}r(hAUhBjubaubeubh)r}r(hAUhBjwhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX:info_str (celery.events.cursesmon.CursesMonitor attribute)hUtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.info_strhBjhCj,hHhhJ}r(hO]rhahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rhahXCursesMonitor.info_strhhhuhSNhThh<]r(h)r}r(hAXinfo_strhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xinfo_strrr}r(hAUhBjubaubh)r}r(hAX = 'Info: 'hBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X = 'Info: 'rr}r(hAUhBjubaubeubh)r}r(hAUhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX<init_screen() (celery.events.cursesmon.CursesMonitor method)hUtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.init_screen()hBjhChhHhhJ}r(hO]rhahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rhahXCursesMonitor.init_screenhhhuhSNhThh<]r(h)r}r(hAX init_screenhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X init_screenrr}r(hAUhBjubaubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX:keyalias (celery.events.cursesmon.CursesMonitor attribute)h.UtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.keyaliashBjhCj,hHhhJ}r(hO]rh.ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh.ahXCursesMonitor.keyaliashhhuhSNhThh<]r(h)r}r(hAXkeyaliashBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xkeyaliasrr}r(hAUhBjubaubh)r}r(hAX! = {258: 'J', 259: 'K', 343: 'I'}hBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X! = {258: 'J', 259: 'K', 343: 'I'}rr}r(hAUhBjubaubeubh)r}r(hAUhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX8keymap (celery.events.cursesmon.CursesMonitor attribute)h UtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r (hAXCursesMonitor.keymaphBjhCj,hHhhJ}r (hO]r h ahhDXcelery.events.cursesmonr r }rbhN]hL]hM]hQ]rh ahXCursesMonitor.keymaphhhuhSNhThh<]r(h)r}r(hAXkeymaphBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xkeymaprr}r(hAUhBjubaubh)r}r(hAX = {}hBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X = {}rr}r(hAUhBjubaubeubh)r}r (hAUhBjhCj,hHhhJ}r!(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r"}r#(hAUhBhhCNhHhlhJ}r$(hO]hN]hL]hM]hQ]Uentries]r%(hoX7limit (celery.events.cursesmon.CursesMonitor attribute)h Utr&auhSNhThh<]ubhv)r'}r((hAUhBhhCNhHhyhJ}r)(h{h|XpyhO]hN]hL]hM]hQ]h}X attributer*hj*uhSNhThh<]r+(h)r,}r-(hAXCursesMonitor.limithBj'hCj,hHhhJ}r.(hO]r/h ahhDXcelery.events.cursesmonr0r1}r2bhN]hL]hM]hQ]r3h ahXCursesMonitor.limithhhuhSNhThh<]r4(h)r5}r6(hAXlimithBj,hCj,hHhhJ}r7(hL]hM]hN]hO]hQ]uhSNhThh<]r8h]Xlimitr9r:}r;(hAUhBj5ubaubh)r<}r=(hAX = 20hBj,hCj,hHhhJ}r>(hL]hM]hN]hO]hQ]uhSNhThh<]r?h]X = 20r@rA}rB(hAUhBj<ubaubeubh)rC}rD(hAUhBj'hCj,hHhhJ}rE(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)rF}rG(hAUhBhhCNhHhlhJ}rH(hO]hN]hL]hM]hQ]Uentries]rI(hoX?move_selection() (celery.events.cursesmon.CursesMonitor method)hUtrJauhSNhThh<]ubhv)rK}rL(hAUhBhhCNhHhyhJ}rM(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrNhjNuhSNhThh<]rO(h)rP}rQ(hAX)CursesMonitor.move_selection(direction=1)hBjKhChhHhhJ}rR(hO]rShahhDXcelery.events.cursesmonrTrU}rVbhN]hL]hM]hQ]rWhahXCursesMonitor.move_selectionhhhuhSNhThh<]rX(h)rY}rZ(hAXmove_selectionhBjPhChhHhhJ}r[(hL]hM]hN]hO]hQ]uhSNhThh<]r\h]Xmove_selectionr]r^}r_(hAUhBjYubaubh)r`}ra(hAUhBjPhChhHhhJ}rb(hL]hM]hN]hO]hQ]uhSNhThh<]rch)rd}re(hAX direction=1hJ}rf(hL]hM]hN]hO]hQ]uhBj`h<]rgh]X direction=1rhri}rj(hAUhBjdubahHhubaubeubh)rk}rl(hAUhBjKhChhHhhJ}rm(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)rn}ro(hAUhBhhCNhHhlhJ}rp(hO]hN]hL]hM]hQ]Uentries]rq(hoXDmove_selection_down() (celery.events.cursesmon.CursesMonitor method)hUtrrauhSNhThh<]ubhv)rs}rt(hAUhBhhCNhHhyhJ}ru(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrvhjvuhSNhThh<]rw(h)rx}ry(hAX#CursesMonitor.move_selection_down()hBjshChhHhhJ}rz(hO]r{hahhDXcelery.events.cursesmonr|r}}r~bhN]hL]hM]hQ]rhahX!CursesMonitor.move_selection_downhhhuhSNhThh<]r(h)r}r(hAXmove_selection_downhBjxhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xmove_selection_downrr}r(hAUhBjubaubh)r}r(hAUhBjxhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)r}r(hAUhBjshChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoXBmove_selection_up() (celery.events.cursesmon.CursesMonitor method)h-UtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrhjuhSNhThh<]r(h)r}r(hAX!CursesMonitor.move_selection_up()hBjhChhHhhJ}r(hO]rh-ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh-ahXCursesMonitor.move_selection_uphhhuhSNhThh<]r(h)r}r(hAXmove_selection_uphBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xmove_selection_uprr}r(hAUhBjubaubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX4nap() (celery.events.cursesmon.CursesMonitor method)h#UtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.nap()hBjhChhHhhJ}r(hO]rh#ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh#ahXCursesMonitor.naphhhuhSNhThh<]r(h)r}r(hAXnaphBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xnaprr}r(hAUhBjubaubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX<online_str (celery.events.cursesmon.CursesMonitor attribute)hUtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.online_strhBjhCj,hHhhJ}r(hO]rhahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rhahXCursesMonitor.online_strhhhuhSNhThh<]r(h)r}r(hAX online_strhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X online_strrr}r(hAUhBjubaubh)r}r(hAX = 'Workers online: 'hBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X = 'Workers online: 'rr}r(hAUhBjubaubeubh)r}r(hAUhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX9readline() (celery.events.cursesmon.CursesMonitor method)h UtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.readline(x, y)hBjhChhHhhJ}r(hO]rh ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh ahXCursesMonitor.readlinehhhuhSNhThh<]r(h)r}r(hAXreadlinehBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xreadliner r }r (hAUhBjubaubh)r }r (hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]r(h)r}r(hAXxhJ}r(hL]hM]hN]hO]hQ]uhBj h<]rh]Xxr}r(hAUhBjubahHhubh)r}r(hAXyhJ}r(hL]hM]hN]hO]hQ]uhBj h<]rh]Xyr}r(hAUhBjubahHhubeubeubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r (hAUhBhhCNhHhlhJ}r!(hO]hN]hL]hM]hQ]Uentries]r"(hoX<resetscreen() (celery.events.cursesmon.CursesMonitor method)h*Utr#auhSNhThh<]ubhv)r$}r%(hAUhBhhCNhHhyhJ}r&(h{h|XpyhO]hN]hL]hM]hQ]h}Xmethodr'hj'uhSNhThh<]r((h)r)}r*(hAXCursesMonitor.resetscreen()hBj$hChhHhhJ}r+(hO]r,h*ahhDXcelery.events.cursesmonr-r.}r/bhN]hL]hM]hQ]r0h*ahXCursesMonitor.resetscreenhhhuhSNhThh<]r1(h)r2}r3(hAX resetscreenhBj)hChhHhhJ}r4(hL]hM]hN]hO]hQ]uhSNhThh<]r5h]X resetscreenr6r7}r8(hAUhBj2ubaubh)r9}r:(hAUhBj)hChhHhhJ}r;(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)r<}r=(hAUhBj$hChhHhhJ}r>(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r?}r@(hAUhBhhCNhHhlhJ}rA(hO]hN]hL]hM]hQ]Uentries]rB(hoXArevoke_selection() (celery.events.cursesmon.CursesMonitor method)h UtrCauhSNhThh<]ubhv)rD}rE(hAUhBhhCNhHhyhJ}rF(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrGhjGuhSNhThh<]rH(h)rI}rJ(hAX CursesMonitor.revoke_selection()hBjDhChhHhhJ}rK(hO]rLh ahhDXcelery.events.cursesmonrMrN}rObhN]hL]hM]hQ]rPh ahXCursesMonitor.revoke_selectionhhhuhSNhThh<]rQ(h)rR}rS(hAXrevoke_selectionhBjIhChhHhhJ}rT(hL]hM]hN]hO]hQ]uhSNhThh<]rUh]Xrevoke_selectionrVrW}rX(hAUhBjRubaubh)rY}rZ(hAUhBjIhChhHhhJ}r[(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)r\}r](hAUhBjDhChhHhhJ}r^(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r_}r`(hAUhBhhCNhHhlhJ}ra(hO]hN]hL]hM]hQ]Uentries]rb(hoX>screen_delay (celery.events.cursesmon.CursesMonitor attribute)hUtrcauhSNhThh<]ubhv)rd}re(hAUhBhhCNhHhyhJ}rf(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerghjguhSNhThh<]rh(h)ri}rj(hAXCursesMonitor.screen_delayhBjdhCj,hHhhJ}rk(hO]rlhahhDXcelery.events.cursesmonrmrn}robhN]hL]hM]hQ]rphahXCursesMonitor.screen_delayhhhuhSNhThh<]rq(h)rr}rs(hAX screen_delayhBjihCj,hHhhJ}rt(hL]hM]hN]hO]hQ]uhSNhThh<]ruh]X screen_delayrvrw}rx(hAUhBjrubaubh)ry}rz(hAX = 10hBjihCj,hHhhJ}r{(hL]hM]hN]hO]hQ]uhSNhThh<]r|h]X = 10r}r~}r(hAUhBjyubaubeubh)r}r(hAUhBjdhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX>screen_width (celery.events.cursesmon.CursesMonitor attribute)h'UtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.screen_widthhBjhCj,hHhhJ}r(hO]rh'ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh'ahXCursesMonitor.screen_widthhhhuhSNhThh<]r(h)r}r(hAX screen_widthhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X screen_widthrr}r(hAUhBjubaubh)r}r(hAX = NonehBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X = Nonerr}r(hAUhBjubaubeubh)r}r(hAUhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoXCselected_position (celery.events.cursesmon.CursesMonitor attribute)hUtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.selected_positionhBjhCj,hHhhJ}r(hO]rhahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rhahXCursesMonitor.selected_positionhhhuhSNhThh<]r(h)r}r(hAXselected_positionhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xselected_positionrr}r(hAUhBjubaubh)r}r(hAX = 0hBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X = 0rr}r(hAUhBjubaubeubh)r}r(hAUhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX>selected_str (celery.events.cursesmon.CursesMonitor attribute)h+UtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.selected_strhBjhCj,hHhhJ}r(hO]rh+ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh+ahXCursesMonitor.selected_strhhhuhSNhThh<]r(h)r}r(hAX selected_strhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X selected_strrr}r(hAUhBjubaubh)r}r(hAX = 'Selected: 'hBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X = 'Selected: 'rr}r(hAUhBjubaubeubh)r}r(hAUhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX?selected_task (celery.events.cursesmon.CursesMonitor attribute)hUtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.selected_taskhBjhCj,hHhhJ}r(hO]rhahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rhahXCursesMonitor.selected_taskhhhuhSNhThh<]r(h)r}r(hAX selected_taskhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X selected_taskrr}r(hAUhBjubaubh)r }r (hAX = NonehBjhCj,hHhhJ}r (hL]hM]hN]hO]hQ]uhSNhThh<]r h]X = Noner r}r(hAUhBj ubaubeubh)r}r(hAUhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX?selection_info() (celery.events.cursesmon.CursesMonitor method)hUtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}XmethodrhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.selection_info()hBjhChhHhhJ}r(hO]r hahhDXcelery.events.cursesmonr!r"}r#bhN]hL]hM]hQ]r$hahXCursesMonitor.selection_infohhhuhSNhThh<]r%(h)r&}r'(hAXselection_infohBjhChhHhhJ}r((hL]hM]hN]hO]hQ]uhSNhThh<]r)h]Xselection_infor*r+}r,(hAUhBj&ubaubh)r-}r.(hAUhBjhChhHhhJ}r/(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)r0}r1(hAUhBjhChhHhhJ}r2(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r3}r4(hAUhBhhCNhHhlhJ}r5(hO]hN]hL]hM]hQ]Uentries]r6(hoXEselection_rate_limit() (celery.events.cursesmon.CursesMonitor method)hUtr7auhSNhThh<]ubhv)r8}r9(hAUhBhhCNhHhyhJ}r:(h{h|XpyhO]hN]hL]hM]hQ]h}Xmethodr;hj;uhSNhThh<]r<(h)r=}r>(hAX$CursesMonitor.selection_rate_limit()hBj8hChhHhhJ}r?(hO]r@hahhDXcelery.events.cursesmonrArB}rCbhN]hL]hM]hQ]rDhahX"CursesMonitor.selection_rate_limithhhuhSNhThh<]rE(h)rF}rG(hAXselection_rate_limithBj=hChhHhhJ}rH(hL]hM]hN]hO]hQ]uhSNhThh<]rIh]Xselection_rate_limitrJrK}rL(hAUhBjFubaubh)rM}rN(hAUhBj=hChhHhhJ}rO(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)rP}rQ(hAUhBj8hChhHhhJ}rR(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)rS}rT(hAUhBhhCNhHhlhJ}rU(hO]hN]hL]hM]hQ]Uentries]rV(hoXAselection_result() (celery.events.cursesmon.CursesMonitor method)h UtrWauhSNhThh<]ubhv)rX}rY(hAUhBhhCNhHhyhJ}rZ(h{h|XpyhO]hN]hL]hM]hQ]h}Xmethodr[hj[uhSNhThh<]r\(h)r]}r^(hAX CursesMonitor.selection_result()hBjXhChhHhhJ}r_(hO]r`h ahhDXcelery.events.cursesmonrarb}rcbhN]hL]hM]hQ]rdh ahXCursesMonitor.selection_resulthhhuhSNhThh<]re(h)rf}rg(hAXselection_resulthBj]hChhHhhJ}rh(hL]hM]hN]hO]hQ]uhSNhThh<]rih]Xselection_resultrjrk}rl(hAUhBjfubaubh)rm}rn(hAUhBj]hChhHhhJ}ro(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)rp}rq(hAUhBjXhChhHhhJ}rr(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)rs}rt(hAUhBhhCNhHhlhJ}ru(hO]hN]hL]hM]hQ]Uentries]rv(hoXDselection_traceback() (celery.events.cursesmon.CursesMonitor method)hUtrwauhSNhThh<]ubhv)rx}ry(hAUhBhhCNhHhyhJ}rz(h{h|XpyhO]hN]hL]hM]hQ]h}Xmethodr{hj{uhSNhThh<]r|(h)r}}r~(hAX#CursesMonitor.selection_traceback()hBjxhChhHhhJ}r(hO]rhahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rhahX!CursesMonitor.selection_tracebackhhhuhSNhThh<]r(h)r}r(hAXselection_tracebackhBj}hChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xselection_tracebackrr}r(hAUhBjubaubh)r}r(hAUhBj}hChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)r}r(hAUhBjxhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX7tasks (celery.events.cursesmon.CursesMonitor attribute)hUtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.taskshBjhChhHhhJ}r(hO]rhahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rhahXCursesMonitor.taskshhhuhSNhThh<]rh)r}r(hAXtaskshBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xtasksrr}r(hAUhBjubaubaubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX5win (celery.events.cursesmon.CursesMonitor attribute)hUtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.winhBjhCj,hHhhJ}r(hO]rhahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rhahXCursesMonitor.winhhhuhSNhThh<]r(h)r}r(hAXwinhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xwinrr}r(hAUhBjubaubh)r}r(hAX = NonehBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X = Nonerr}r(hAUhBjubaubeubh)r}r(hAUhBjhCj,hHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubhi)r}r(hAUhBhhCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX9workers (celery.events.cursesmon.CursesMonitor attribute)hUtrauhSNhThh<]ubhv)r}r(hAUhBhhCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}X attributerhjuhSNhThh<]r(h)r}r(hAXCursesMonitor.workershBjhChhHhhJ}r(hO]rhahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rhahXCursesMonitor.workershhhuhSNhThh<]rh)r}r(hAXworkershBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xworkersrr}r(hAUhBjubaubaubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubeubeubhi)r}r(hAUhBh?hCNhHhlhJ}r(hO]hN]hL]hM]hQ]Uentries]r(hoX0DisplayThread (class in celery.events.cursesmon)h(UtrauhSNhThh<]ubhv)r}r(hAUhBh?hCNhHhyhJ}r(h{h|XpyhO]hN]hL]hM]hQ]h}XclassrhjuhSNhThh<]r(h)r}r(hAXDisplayThread(display)rhBjhChhHhhJ}r(hO]rh(ahhDXcelery.events.cursesmonrr}rbhN]hL]hM]hQ]rh(ahX DisplayThreadrhUhuhSNhThh<]r(h)r}r(hAXclass hBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]r h]Xclass r r }r (hAUhBjubaubh)r }r(hAXcelery.events.cursesmon.hBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]Xcelery.events.cursesmon.rr}r(hAUhBj ubaubh)r}r(hAjhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh]X DisplayThreadrr}r(hAUhBjubaubh)r}r(hAUhBjhChhHhhJ}r(hL]hM]hN]hO]hQ]uhSNhThh<]rh)r}r (hAXdisplayhJ}r!(hL]hM]hN]hO]hQ]uhBjh<]r"h]Xdisplayr#r$}r%(hAUhBjubahHhubaubeubh)r&}r'(hAUhBjhChhHhhJ}r((hL]hM]hN]hO]hQ]uhSNhThh<]r)(hi)r*}r+(hAUhBj&hCNhHhlhJ}r,(hO]hN]hL]hM]hQ]Uentries]r-(hoX4run() (celery.events.cursesmon.DisplayThread method)hUtr.auhSNhThh<]ubhv)r/}r0(hAUhBj&hCNhHhyhJ}r1(h{h|XpyhO]hN]hL]hM]hQ]h}Xmethodr2hj2uhSNhThh<]r3(h)r4}r5(hAXDisplayThread.run()r6hBj/hChhHhhJ}r7(hO]r8hahhDXcelery.events.cursesmonr9r:}r;bhN]hL]hM]hQ]r<hahXDisplayThread.runhjhuhSNhThh<]r=(h)r>}r?(hAXrunhBj4hChhHhhJ}r@(hL]hM]hN]hO]hQ]uhSNhThh<]rAh]XrunrBrC}rD(hAUhBj>ubaubh)rE}rF(hAUhBj4hChhHhhJ}rG(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)rH}rI(hAUhBj/hChhHhhJ}rJ(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubeubeubhi)rK}rL(hAUhBh?hCNhHhlhJ}rM(hO]hN]hL]hM]hQ]Uentries]rN(hoX+evtop() (in module celery.events.cursesmon)hUtrOauhSNhThh<]ubhv)rP}rQ(hAUhBh?hCNhHhyhJ}rR(h{h|XpyhO]hN]hL]hM]hQ]h}XfunctionrShjSuhSNhThh<]rT(h)rU}rV(hAXevtop()rWhBjPhChhHhhJ}rX(hO]rYhahhDXcelery.events.cursesmonrZr[}r\bhN]hL]hM]hQ]r]hahXevtopr^hUhuhSNhThh<]r_(h)r`}ra(hAXcelery.events.cursesmon.hBjUhChhHhhJ}rb(hL]hM]hN]hO]hQ]uhSNhThh<]rch]Xcelery.events.cursesmon.rdre}rf(hAUhBj`ubaubh)rg}rh(hAj^hBjUhChhHhhJ}ri(hL]hM]hN]hO]hQ]uhSNhThh<]rjh]Xevtoprkrl}rm(hAUhBjgubaubh)rn}ro(hAUhBjUhChhHhhJ}rp(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubh)rq}rr(hAUhBjPhChhHhhJ}rs(hL]hM]hN]hO]hQ]uhSNhThh<]ubeubeubahAUU transformerrtNU footnote_refsru}rvUrefnamesrw}rxUsymbol_footnotesry]rzUautofootnote_refsr{]r|Usymbol_footnote_refsr}]r~U citationsr]rhThU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hAUhJ}r(hL]UlevelKhO]hN]UsourcehdhM]hQ]UlineKUtypeUINFOruh<]rcdocutils.nodes paragraph r)r}r(hAUhJ}r(hL]hM]hN]hO]hQ]uhBjh<]rh]XDHyperlink target "module-celery.events.cursesmon" is not referenced.rr}r(hAUhBjubahHU paragraphrubahHUsystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhZNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUi/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.events.cursesmon.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhj=h:h?hj}h jh jh j,h jIh j]hjhjxhjh;cdocutils.nodes topic r)r}r(hAUhBh?hChFhHUtopicrhJ}r(hL]hM]r(UcontentsrUlocalrehN]hO]rh;ahQ]rhauhSKhThh<]rcdocutils.nodes pending r)r}r(hAX.. contents:: :local:hBjU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNshHUpendingrhJ}r(hL]hM]hN]hO]hQ]uh<]ubaubhjhjPhjhjhjhjXhjUhjhhhhhjhjihj4h jh!jh"j|h#jh$jlh%jOh&j*h'jhhhbh(jh)jh*j)h+jh,jh-jh.jh/jh0j8uUsubstitution_namesr}rhHhThJ}r(hL]hO]hN]UsourcehFhM]hQ]uU footnotesr]rUrefidsr}rub.PKYDD52[C[CPcelery-2.1-archived/.doctrees/internals/reference/celery.backends.tyrant.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X0celery.backends.tyrant.TyrantBackend.tyrant_hostqX0celery.backends.tyrant.TyrantBackend.tyrant_portqX4celery.backends.tyrant.TyrantBackend.process_cleanupqX*celery.backends.tyrant.TyrantBackend.closeq X.backend: tokyo tyrant - celery.backends.tyrantq NX+celery.backends.tyrant.TyrantBackend.deleteq X)celery.backends.tyrant.TyrantBackend.openq X$celery.backends.tyrant.TyrantBackendq X(celery.backends.tyrant.TyrantBackend.setqUcontentsqNX(celery.backends.tyrant.TyrantBackend.getquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h U+backend-tokyo-tyrant-celery-backends-tyrantqh h h h h h hhhUcontentsqhhuUchildrenq]qcdocutils.nodes section q)q}q (U rawsourceq!UUparentq"hUsourceq#cdocutils.nodes reprunicode q$Xh/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.tyrant.rstq%q&}q'bUtagnameq(Usectionq)U attributesq*}q+(Udupnamesq,]Uclassesq-]Ubackrefsq.]Uidsq/]q0haUnamesq1]q2h auUlineq3KUdocumentq4hh]q5(cdocutils.nodes title q6)q7}q8(h!X.Backend: Tokyo Tyrant - celery.backends.tyrantq9h"hh#h&h(Utitleq:h*}q;(h,]h-]h.]h/]h1]uh3Kh4hh]qq?}q@(h!h9h"h7ubaubcdocutils.nodes target qA)qB}qC(h!Uh"hh#U qDh(UtargetqEh*}qF(h,]h/]qGXmodule-celery.backends.tyrantqHah.]Uismodh-]h1]uh3Kh4hh]ubcsphinx.addnodes index qI)qJ}qK(h!Uh"hh#hDh(UindexqLh*}qM(h/]h.]h,]h-]h1]Uentries]qN(UsingleqOXcelery.backends.tyrant (module)Xmodule-celery.backends.tyrantUtqPauh3Kh4hh]ubcdocutils.nodes paragraph qQ)qR}qS(h!Xcelery.backends.tyrantqTh"hh#Xr/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/tyrant.py:docstring of celery.backends.tyrantqUh(U paragraphqVh*}qW(h,]h-]h.]h/]h1]uh3Kh4hh]qXh=Xcelery.backends.tyrantqYqZ}q[(h!hTh"hRubaubhI)q\}q](h!Uh"hh#Nh(hLh*}q^(h/]h.]h,]h-]h1]Uentries]q_(hOX/TyrantBackend (class in celery.backends.tyrant)h Utq`auh3Nh4hh]ubcsphinx.addnodes desc qa)qb}qc(h!Uh"hh#Nh(Udescqdh*}qe(UnoindexqfUdomainqgXpyh/]h.]h,]h-]h1]UobjtypeqhXclassqiUdesctypeqjhiuh3Nh4hh]qk(csphinx.addnodes desc_signature ql)qm}qn(h!X1TyrantBackend(tyrant_host=None, tyrant_port=None)h"hbh#U qoh(Udesc_signatureqph*}qq(h/]qrh aUmoduleqsh$Xcelery.backends.tyrantqtqu}qvbh.]h,]h-]h1]qwh aUfullnameqxX TyrantBackendqyUclassqzUUfirstq{uh3Nh4hh]q|(csphinx.addnodes desc_annotation q})q~}q(h!Xclass h"hmh#hoh(Udesc_annotationqh*}q(h,]h-]h.]h/]h1]uh3Nh4hh]qh=Xclass qq}q(h!Uh"h~ubaubcsphinx.addnodes desc_addname q)q}q(h!Xcelery.backends.tyrant.h"hmh#hoh(U desc_addnameqh*}q(h,]h-]h.]h/]h1]uh3Nh4hh]qh=Xcelery.backends.tyrant.qq}q(h!Uh"hubaubcsphinx.addnodes desc_name q)q}q(h!hyh"hmh#hoh(U desc_nameqh*}q(h,]h-]h.]h/]h1]uh3Nh4hh]qh=X TyrantBackendqq}q(h!Uh"hubaubcsphinx.addnodes desc_parameterlist q)q}q(h!Uh"hmh#hoh(Udesc_parameterlistqh*}q(h,]h-]h.]h/]h1]uh3Nh4hh]q(csphinx.addnodes desc_parameter q)q}q(h!Xtyrant_host=Noneh*}q(h,]h-]h.]h/]h1]uh"hh]qh=Xtyrant_host=Noneqq}q(h!Uh"hubah(Udesc_parameterqubh)q}q(h!Xtyrant_port=Noneh*}q(h,]h-]h.]h/]h1]uh"hh]qh=Xtyrant_port=Noneqq}q(h!Uh"hubah(hubeubeubcsphinx.addnodes desc_content q)q}q(h!Uh"hbh#hoh(U desc_contentqh*}q(h,]h-]h.]h/]h1]uh3Nh4hh]q(hQ)q}q(h!X'Tokyo Cabinet based task backend store.qh"hh#X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/tyrant.py:docstring of celery.backends.tyrant.TyrantBackendqh(hVh*}q(h,]h-]h.]h/]h1]uh3Kh4hh]qh=X'Tokyo Cabinet based task backend store.qq}q(h!hh"hubaubhI)q}q(h!Uh"hh#hh(hLh*}q(h/]h.]h,]h-]h1]Uentries]q(hOX<tyrant_host (celery.backends.tyrant.TyrantBackend attribute)hUtqauh3Nh4hh]ubha)q}q(h!Uh"hh#hh(hdh*}q(hfhgXpyh/]h.]h,]h-]h1]hhX attributeqhjhuh3Nh4hh]q(hl)q}q(h!X tyrant_hostqh"hh#hh(hph*}q(h/]qhahsXcelery.backends.tyrantqh.]h,]h-]h1]qhahxXTyrantBackend.tyrant_hosthzhyh{uh3Kh4hh]qh)q}q(h!hh"hh#hh(hh*}q(h,]h-]h.]h/]h1]uh3Kh4hh]qh=X tyrant_hostqӅq}q(h!Uh"hubaubaubh)q}q(h!Uh"hh#hh(hh*}q(h,]h-]h.]h/]h1]uh3Kh4hh]qhQ)q}q(h!X(The hostname to the Tokyo Tyrant server.qh"hh#hh(hVh*}q(h,]h-]h.]h/]h1]uh3Kh4hh]qh=X(The hostname to the Tokyo Tyrant server.q߅q}q(h!hh"hubaubaubeubhI)q}q(h!Uh"hh#hh(hLh*}q(h/]h.]h,]h-]h1]Uentries]q(hOX<tyrant_port (celery.backends.tyrant.TyrantBackend attribute)hUtqauh3Nh4hh]ubha)q}q(h!Uh"hh#hh(hdh*}q(hfhgXpyh/]h.]h,]h-]h1]hhX attributeqhjhuh3Nh4hh]q(hl)q}q(h!X tyrant_portqh"hh#hDh(hph*}q(h/]qhahshh.]h,]h-]h1]qhahxXTyrantBackend.tyrant_porthzhyh{uh3Kh4hh]qh)q}q(h!hh"hh#hDh(hh*}q(h,]h-]h.]h/]h1]uh3Kh4hh]qh=X tyrant_portqq}q(h!Uh"hubaubaubh)q}q(h!Uh"hh#hDh(hh*}q(h,]h-]h.]h/]h1]uh3Kh4hh]qhQ)q}q(h!X$The port to the Tokyo Tyrant server.rh"hh#hh(hVh*}r(h,]h-]h.]h/]h1]uh3K h4hh]rh=X$The port to the Tokyo Tyrant server.rr}r(h!jh"hubaubaubeubhI)r}r(h!Uh"hh#X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/tyrant.py:docstring of celery.backends.tyrant.TyrantBackend.closerh(hLh*}r (h/]h.]h,]h-]h1]Uentries]r (hOX5close() (celery.backends.tyrant.TyrantBackend method)h Utr auh3Nh4hh]ubha)r }r (h!Uh"hh#jh(hdh*}r(hfhgXpyh/]h.]h,]h-]h1]hhXmethodrhjjuh3Nh4hh]r(hl)r}r(h!XTyrantBackend.close()h"j h#hoh(hph*}r(h/]rh ahsh$Xcelery.backends.tyrantrr}rbh.]h,]h-]h1]rh ahxXTyrantBackend.closehzhyh{uh3Nh4hh]r(h)r}r(h!Xcloseh"jh#hoh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh=Xcloserr}r (h!Uh"jubaubh)r!}r"(h!Uh"jh#hoh(hh*}r#(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubh)r$}r%(h!Uh"j h#hoh(hh*}r&(h,]h-]h.]h/]h1]uh3Nh4hh]r'hQ)r(}r)(h!X1Close the tyrant connection and remove the cache.r*h"j$h#jh(hVh*}r+(h,]h-]h.]h/]h1]uh3Kh4hh]r,h=X1Close the tyrant connection and remove the cache.r-r.}r/(h!j*h"j(ubaubaubeubhI)r0}r1(h!Uh"hh#Nh(hLh*}r2(h/]h.]h,]h-]h1]Uentries]r3(hOX6delete() (celery.backends.tyrant.TyrantBackend method)h Utr4auh3Nh4hh]ubha)r5}r6(h!Uh"hh#Nh(hdh*}r7(hfhgXpyh/]h.]h,]h-]h1]hhXmethodr8hjj8uh3Nh4hh]r9(hl)r:}r;(h!XTyrantBackend.delete(key)h"j5h#hoh(hph*}r<(h/]r=h ahsh$Xcelery.backends.tyrantr>r?}r@bh.]h,]h-]h1]rAh ahxXTyrantBackend.deletehzhyh{uh3Nh4hh]rB(h)rC}rD(h!Xdeleteh"j:h#hoh(hh*}rE(h,]h-]h.]h/]h1]uh3Nh4hh]rFh=XdeleterGrH}rI(h!Uh"jCubaubh)rJ}rK(h!Uh"j:h#hoh(hh*}rL(h,]h-]h.]h/]h1]uh3Nh4hh]rMh)rN}rO(h!Xkeyh*}rP(h,]h-]h.]h/]h1]uh"jJh]rQh=XkeyrRrS}rT(h!Uh"jNubah(hubaubeubh)rU}rV(h!Uh"j5h#hoh(hh*}rW(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubhI)rX}rY(h!Uh"hh#Nh(hLh*}rZ(h/]h.]h,]h-]h1]Uentries]r[(hOX3get() (celery.backends.tyrant.TyrantBackend method)hUtr\auh3Nh4hh]ubha)r]}r^(h!Uh"hh#Nh(hdh*}r_(hfhgXpyh/]h.]h,]h-]h1]hhXmethodr`hjj`uh3Nh4hh]ra(hl)rb}rc(h!XTyrantBackend.get(key)h"j]h#hoh(hph*}rd(h/]rehahsh$Xcelery.backends.tyrantrfrg}rhbh.]h,]h-]h1]rihahxXTyrantBackend.gethzhyh{uh3Nh4hh]rj(h)rk}rl(h!Xgeth"jbh#hoh(hh*}rm(h,]h-]h.]h/]h1]uh3Nh4hh]rnh=Xgetrorp}rq(h!Uh"jkubaubh)rr}rs(h!Uh"jbh#hoh(hh*}rt(h,]h-]h.]h/]h1]uh3Nh4hh]ruh)rv}rw(h!Xkeyh*}rx(h,]h-]h.]h/]h1]uh"jrh]ryh=Xkeyrzr{}r|(h!Uh"jvubah(hubaubeubh)r}}r~(h!Uh"j]h#hoh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubhI)r}r(h!Uh"hh#X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/tyrant.py:docstring of celery.backends.tyrant.TyrantBackend.openrh(hLh*}r(h/]h.]h,]h-]h1]Uentries]r(hOX4open() (celery.backends.tyrant.TyrantBackend method)h Utrauh3Nh4hh]ubha)r}r(h!Uh"hh#jh(hdh*}r(hfhgXpyh/]h.]h,]h-]h1]hhXmethodrhjjuh3Nh4hh]r(hl)r}r(h!XTyrantBackend.open()h"jh#hoh(hph*}r(h/]rh ahsh$Xcelery.backends.tyrantrr}rbh.]h,]h-]h1]rh ahxXTyrantBackend.openhzhyh{uh3Nh4hh]r(h)r}r(h!Xopenh"jh#hoh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh=Xopenrr}r(h!Uh"jubaubh)r}r(h!Uh"jh#hoh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubh)r}r(h!Uh"jh#hoh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]r(hQ)r}r(h!XOGet :class:`pytyrant.PyTyrant`` instance with the current server configuration.h"jh#jh(hVh*}r(h,]h-]h.]h/]h1]uh3Kh4hh]r(h=XGet rr}r(h!XGet h"jubcsphinx.addnodes pending_xref r)r}r(h!X:class:`pytyrant.PyTyrant``rh"jh#Nh(U pending_xrefrh*}r(UreftypeXclassUrefwarnrU reftargetrXpytyrant.PyTyrant`U refdomainXpyrh/]h.]U refexplicith,]h-]h1]UrefdocrX*internals/reference/celery.backends.tyrantrUpy:classrhyU py:modulerhuh3Nh]rcdocutils.nodes literal r)r}r(h!jh*}r(h,]h-]r(UxrefrjXpy-classreh.]h/]h1]uh"jh]rh=Xpytyrant.PyTyrant`rr}r(h!Uh"jubah(Uliteralrubaubh=X0 instance with the current server configuration.rr}r(h!X0 instance with the current server configuration.h"jubeubhQ)r}r(h!XEThe connection is then cached until you do an explicit :meth:`close`.h"jh#jh(hVh*}r(h,]h-]h.]h/]h1]uh3Kh4hh]r(h=X7The connection is then cached until you do an explicit rr}r(h!X7The connection is then cached until you do an explicit h"jubj)r}r(h!X :meth:`close`rh"jh#Nh(jh*}r(UreftypeXmethjjXcloseU refdomainXpyrh/]h.]U refexplicith,]h-]h1]jjjhyjhuh3Nh]rj)r}r(h!jh*}r(h,]h-]r(jjXpy-methreh.]h/]h1]uh"jh]rh=Xclose()rr}r(h!Uh"jubah(jubaubh=X.r}r(h!X.h"jubeubeubeubhI)r}r(h!Uh"hh#Nh(hLh*}r(h/]h.]h,]h-]h1]Uentries]r(hOX?process_cleanup() (celery.backends.tyrant.TyrantBackend method)hUtrauh3Nh4hh]ubha)r}r(h!Uh"hh#Nh(hdh*}r(hfhgXpyh/]h.]h,]h-]h1]hhXmethodrhjjuh3Nh4hh]r(hl)r}r(h!XTyrantBackend.process_cleanup()h"jh#hoh(hph*}r(h/]rhahsh$Xcelery.backends.tyrantrr}rbh.]h,]h-]h1]rhahxXTyrantBackend.process_cleanuphzhyh{uh3Nh4hh]r(h)r}r(h!Xprocess_cleanuph"jh#hoh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh=Xprocess_cleanuprr}r(h!Uh"jubaubh)r}r(h!Uh"jh#hoh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubh)r}r(h!Uh"jh#hoh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubhI)r}r(h!Uh"hh#Nh(hLh*}r(h/]h.]h,]h-]h1]Uentries]r(hOX3set() (celery.backends.tyrant.TyrantBackend method)hUtrauh3Nh4hh]ubha)r}r(h!Uh"hh#Nh(hdh*}r(hfhgXpyh/]h.]h,]h-]h1]hhXmethodrhjjuh3Nh4hh]r(hl)r}r (h!XTyrantBackend.set(key, value)h"jh#hoh(hph*}r (h/]r hahsh$Xcelery.backends.tyrantr r }rbh.]h,]h-]h1]rhahxXTyrantBackend.sethzhyh{uh3Nh4hh]r(h)r}r(h!Xseth"jh#hoh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]rh=Xsetrr}r(h!Uh"jubaubh)r}r(h!Uh"jh#hoh(hh*}r(h,]h-]h.]h/]h1]uh3Nh4hh]r(h)r}r(h!Xkeyh*}r(h,]h-]h.]h/]h1]uh"jh]rh=Xkeyr r!}r"(h!Uh"jubah(hubh)r#}r$(h!Xvalueh*}r%(h,]h-]h.]h/]h1]uh"jh]r&h=Xvaluer'r(}r)(h!Uh"j#ubah(hubeubeubh)r*}r+(h!Uh"jh#hoh(hh*}r,(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubhI)r-}r.(h!Uh"hh#Nh(hLh*}r/(h/]h.]h,]h-]h1]Uentries]r0(hOX<tyrant_host (celery.backends.tyrant.TyrantBackend attribute)X0celery.backends.tyrant.TyrantBackend.tyrant_hostUtr1auh3Nh4hh]ubha)r2}r3(h!Uh"hh#Nh(hdh*}r4(hfhgXpyh/]h.]h,]h-]h1]hhX attributer5hjj5uh3Nh4hh]r6(hl)r7}r8(h!XTyrantBackend.tyrant_hosth"j2h#U r9h(hph*}r:(h/]hsh$Xcelery.backends.tyrantr;r<}r=bh.]h,]h-]h1]hxXTyrantBackend.tyrant_hosthzhyh{uh3Nh4hh]r>(h)r?}r@(h!X tyrant_hosth"j7h#j9h(hh*}rA(h,]h-]h.]h/]h1]uh3Nh4hh]rBh=X tyrant_hostrCrD}rE(h!Uh"j?ubaubh})rF}rG(h!X = Noneh"j7h#j9h(hh*}rH(h,]h-]h.]h/]h1]uh3Nh4hh]rIh=X = NonerJrK}rL(h!Uh"jFubaubeubh)rM}rN(h!Uh"j2h#j9h(hh*}rO(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubhI)rP}rQ(h!Uh"hh#Nh(hLh*}rR(h/]h.]h,]h-]h1]Uentries]rS(hOX<tyrant_port (celery.backends.tyrant.TyrantBackend attribute)X0celery.backends.tyrant.TyrantBackend.tyrant_portUtrTauh3Nh4hh]ubha)rU}rV(h!Uh"hh#Nh(hdh*}rW(hfhgXpyh/]h.]h,]h-]h1]hhX attributerXhjjXuh3Nh4hh]rY(hl)rZ}r[(h!XTyrantBackend.tyrant_portr\h"jUh#j9h(hph*}r](h/]hsh$Xcelery.backends.tyrantr^r_}r`bh.]h,]h-]h1]hxXTyrantBackend.tyrant_porthzhyh{uh3Nh4hh]ra(h)rb}rc(h!X tyrant_porth"jZh#j9h(hh*}rd(h,]h-]h.]h/]h1]uh3Nh4hh]reh=X tyrant_portrfrg}rh(h!Uh"jbubaubh})ri}rj(h!X = Noneh"jZh#j9h(hh*}rk(h,]h-]h.]h/]h1]uh3Nh4hh]rlh=X = Nonermrn}ro(h!Uh"jiubaubeubh)rp}rq(h!Uh"jUh#j9h(hh*}rr(h,]h-]h.]h/]h1]uh3Nh4hh]ubeubeubeubeubah!UU transformerrsNU footnote_refsrt}ruUrefnamesrv}rwUsymbol_footnotesrx]ryUautofootnote_refsrz]r{Usymbol_footnote_refsr|]r}U citationsr~]rh4hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h!Uh*}r(h,]UlevelKh/]h.]UsourcehDh-]h1]UlineKUtypeUINFOruh]rhQ)r}r(h!Uh*}r(h,]h-]h.]h/]h1]uh"jh]rh=XCHyperlink target "module-celery.backends.tyrant" is not referenced.rr}r(h!Uh"jubah(hVubah(Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh:NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUh/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.tyrant.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhhhHhBhhhjh jh j:h jh hmhjhcdocutils.nodes topic r)r}r(h!Uh"hh#h&h(Utopicrh*}r(h,]h-]r(UcontentsrUlocalreh.]h/]rhah1]rhauh3Kh4hh]rcdocutils.nodes pending r)r}r(h!X.. contents:: :local:h"jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh(Upendingrh*}r(h,]h-]h.]h/]h1]uh]ubaubhjbuUsubstitution_namesr}rh(h4h*}r(h,]h/]h.]Usourceh&h-]h1]uU footnotesr]rUrefidsr}rub.PKYDD2rj+j+Kcelery-2.1-archived/.doctrees/internals/reference/celery.utils.info.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X"debugging info - celery.utils.infoqNXcelery.utils.info.format_queuesqXcelery.utils.info.textindentqX$celery.utils.info.format_broker_infoq X!celery.utils.info.get_broker_infoq X"celery.utils.info.humanize_secondsq Ucontentsq NuUsubstitution_defsq }qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU debugging-info-celery-utils-infoqhhhhh h h h h h h UcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode q Xc/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.info.rstq!q"}q#bUtagnameq$Usectionq%U attributesq&}q'(Udupnamesq(]Uclassesq)]Ubackrefsq*]Uidsq+]q,haUnamesq-]q.hauUlineq/KUdocumentq0hh]q1(cdocutils.nodes title q2)q3}q4(hX"Debugging Info - celery.utils.infoq5hhhh"h$Utitleq6h&}q7(h(]h)]h*]h+]h-]uh/Kh0hh]q8cdocutils.nodes Text q9X"Debugging Info - celery.utils.infoq:q;}q<(hh5hh3ubaubcdocutils.nodes target q=)q>}q?(hUhhhU q@h$UtargetqAh&}qB(h(]h+]qCXmodule-celery.utils.infoqDah*]Uismodh)]h-]uh/Kh0hh]ubcsphinx.addnodes index qE)qF}qG(hUhhhh@h$UindexqHh&}qI(h+]h*]h(]h)]h-]Uentries]qJ(UsingleqKXcelery.utils.info (module)Xmodule-celery.utils.infoUtqLauh/Kh0hh]ubhE)qM}qN(hUhhhX{/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/info.py:docstring of celery.utils.info.format_broker_infoqOh$hHh&}qP(h+]h*]h(]h)]h-]Uentries]qQ(hKX2format_broker_info() (in module celery.utils.info)h UtqRauh/Nh0hh]ubcsphinx.addnodes desc qS)qT}qU(hUhhhhOh$UdescqVh&}qW(UnoindexqXUdomainqYXpyh+]h*]h(]h)]h-]UobjtypeqZXfunctionq[Udesctypeq\h[uh/Nh0hh]q](csphinx.addnodes desc_signature q^)q_}q`(hXformat_broker_info(info=None)hhThU qah$Udesc_signatureqbh&}qc(h+]qdh aUmoduleqeh Xcelery.utils.infoqfqg}qhbh*]h(]h)]h-]qih aUfullnameqjXformat_broker_infoqkUclassqlUUfirstqmuh/Nh0hh]qn(csphinx.addnodes desc_addname qo)qp}qq(hXcelery.utils.info.hh_hhah$U desc_addnameqrh&}qs(h(]h)]h*]h+]h-]uh/Nh0hh]qth9Xcelery.utils.info.quqv}qw(hUhhpubaubcsphinx.addnodes desc_name qx)qy}qz(hhkhh_hhah$U desc_nameq{h&}q|(h(]h)]h*]h+]h-]uh/Nh0hh]q}h9Xformat_broker_infoq~q}q(hUhhyubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhh_hhah$Udesc_parameterlistqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qcsphinx.addnodes desc_parameter q)q}q(hX info=Noneh&}q(h(]h)]h*]h+]h-]uhhh]qh9X info=Noneqq}q(hUhhubah$Udesc_parameterqubaubeubcsphinx.addnodes desc_content q)q}q(hUhhThhah$U desc_contentqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qcdocutils.nodes paragraph q)q}q(hX8Get message broker connection info string for log dumps.qhhhhOh$U paragraphqh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]qh9X8Get message broker connection info string for log dumps.qq}q(hhhhubaubaubeubhE)q}q(hUhhhXv/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/info.py:docstring of celery.utils.info.format_queuesqh$hHh&}q(h+]h*]h(]h)]h-]Uentries]q(hKX-format_queues() (in module celery.utils.info)hUtqauh/Nh0hh]ubhS)q}q(hUhhhhh$hVh&}q(hXhYXpyh+]h*]h(]h)]h-]hZXfunctionqh\huh/Nh0hh]q(h^)q}q(hXformat_queues(queues, indent=0)hhhhah$hbh&}q(h+]qhaheh Xcelery.utils.infoqq}qbh*]h(]h)]h-]qhahjX format_queuesqhlUhmuh/Nh0hh]q(ho)q}q(hXcelery.utils.info.hhhhah$hrh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9Xcelery.utils.info.qq}q(hUhhubaubhx)q}q(hhhhhhah$h{h&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9X format_queuesqq}q(hUhhubaubh)q}q(hUhhhhah$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]q(h)q}q(hXqueuesh&}q(h(]h)]h*]h+]h-]uhhh]qh9Xqueuesq˅q}q(hUhhubah$hubh)q}q(hXindent=0h&}q(h(]h)]h*]h+]h-]uhhh]qh9Xindent=0q҅q}q(hUhhubah$hubeubeubh)q}q(hUhhhhah$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh)q}q(hX/Format routing table into string for log dumps.qhhhhh$hh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]qh9X/Format routing table into string for log dumps.qޅq}q(hhhhubaubaubeubhE)q}q(hUhhhNh$hHh&}q(h+]h*]h(]h)]h-]Uentries]q(hKX/get_broker_info() (in module celery.utils.info)h Utqauh/Nh0hh]ubhS)q}q(hUhhhNh$hVh&}q(hXhYXpyh+]h*]h(]h)]h-]hZXfunctionqh\huh/Nh0hh]q(h^)q}q(hX'get_broker_info(broker_connection=None)hhhhah$hbh&}q(h+]qh aheh Xcelery.utils.infoqq}qbh*]h(]h)]h-]qh ahjXget_broker_infoqhlUhmuh/Nh0hh]q(ho)q}q(hXcelery.utils.info.hhhhah$hrh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9Xcelery.utils.info.qq}q(hUhhubaubhx)q}q(hhhhhhah$h{h&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9Xget_broker_inforr}r(hUhhubaubh)r}r(hUhhhhah$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh)r}r(hXbroker_connection=Noneh&}r (h(]h)]h*]h+]h-]uhjh]r h9Xbroker_connection=Noner r }r (hUhjubah$hubaubeubh)r}r(hUhhhhah$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubhE)r}r(hUhhhXy/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/info.py:docstring of celery.utils.info.humanize_secondsrh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(hKX0humanize_seconds() (in module celery.utils.info)h Utrauh/Nh0hh]ubhS)r}r(hUhhhjh$hVh&}r(hXhYXpyh+]h*]h(]h)]h-]hZXfunctionrh\juh/Nh0hh]r(h^)r}r(hX!humanize_seconds(secs, prefix='')hjhhah$hbh&}r(h+]rh aheh Xcelery.utils.infor r!}r"bh*]h(]h)]h-]r#h ahjXhumanize_secondsr$hlUhmuh/Nh0hh]r%(ho)r&}r'(hXcelery.utils.info.hjhhah$hrh&}r((h(]h)]h*]h+]h-]uh/Nh0hh]r)h9Xcelery.utils.info.r*r+}r,(hUhj&ubaubhx)r-}r.(hj$hjhhah$h{h&}r/(h(]h)]h*]h+]h-]uh/Nh0hh]r0h9Xhumanize_secondsr1r2}r3(hUhj-ubaubh)r4}r5(hUhjhhah$hh&}r6(h(]h)]h*]h+]h-]uh/Nh0hh]r7(h)r8}r9(hXsecsh&}r:(h(]h)]h*]h+]h-]uhj4h]r;h9Xsecsr<r=}r>(hUhj8ubah$hubh)r?}r@(hX prefix=''h&}rA(h(]h)]h*]h+]h-]uhj4h]rBh9X prefix=''rCrD}rE(hUhj?ubah$hubeubeubh)rF}rG(hUhjhhah$hh&}rH(h(]h)]h*]h+]h-]uh/Nh0hh]rIh)rJ}rK(hXEShow seconds in human form, e.g. 60 is "1 minute", 7200 is "2 hours".rLhjFhjh$hh&}rM(h(]h)]h*]h+]h-]uh/Kh0hh]rNh9XEShow seconds in human form, e.g. 60 is "1 minute", 7200 is "2 hours".rOrP}rQ(hjLhjJubaubaubeubhE)rR}rS(hUhhhXs/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/info.py:docstring of celery.utils.info.textindentrTh$hHh&}rU(h+]h*]h(]h)]h-]Uentries]rV(hKX*textindent() (in module celery.utils.info)hUtrWauh/Nh0hh]ubhS)rX}rY(hUhhhjTh$hVh&}rZ(hXhYXpyh+]h*]h(]h)]h-]hZXfunctionr[h\j[uh/Nh0hh]r\(h^)r]}r^(hXtextindent(t, indent=0)hjXhhah$hbh&}r_(h+]r`haheh Xcelery.utils.inforarb}rcbh*]h(]h)]h-]rdhahjX textindentrehlUhmuh/Nh0hh]rf(ho)rg}rh(hXcelery.utils.info.hj]hhah$hrh&}ri(h(]h)]h*]h+]h-]uh/Nh0hh]rjh9Xcelery.utils.info.rkrl}rm(hUhjgubaubhx)rn}ro(hjehj]hhah$h{h&}rp(h(]h)]h*]h+]h-]uh/Nh0hh]rqh9X textindentrrrs}rt(hUhjnubaubh)ru}rv(hUhj]hhah$hh&}rw(h(]h)]h*]h+]h-]uh/Nh0hh]rx(h)ry}rz(hXth&}r{(h(]h)]h*]h+]h-]uhjuh]r|h9Xtr}}r~(hUhjyubah$hubh)r}r(hXindent=0h&}r(h(]h)]h*]h+]h-]uhjuh]rh9Xindent=0rr}r(hUhjubah$hubeubeubh)r}r(hUhjXhhah$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh)r}r(hX Indent text.rhjhjTh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rh9X Indent text.rr}r(hjhjubaubaubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh0hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh&}r(h(]UlevelKh+]h*]Usourceh@h)]h-]UlineKUtypeUINFOruh]rh)r}r(hUh&}r(h(]h)]h*]h+]h-]uhjh]rh9X>Hyperlink target "module-celery.utils.info" is not referenced.rr}r(hUhjubah$hubah$Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh6NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUc/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.info.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhj]hhh h_h hhDh>h jhcdocutils.nodes topic r)r}r(hUhhhh"h$Utopicrh&}r(h(]h)]r(Ucontentsr Ulocalr eh*]h+]r hah-]r h auh/Kh0hh]r cdocutils.nodes pending r)r}r(hX.. contents:: :local:hjU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh$Upendingrh&}r(h(]h)]h*]h+]h-]uh]ubaubuUsubstitution_namesr}rh$h0h&}r(h(]h+]h*]Usourceh"h)]h-]uU footnotesr]rUrefidsr}rub.PKYDD++Icelery-2.1-archived/.doctrees/internals/reference/celery.backends.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery.backends.default_backendqX'celery.backends.get_default_backend_clsqXcelery.backends.get_backend_clsqXcelery.backends.DefaultBackendq Xbackends - celery.backendsq NUcontentsq NuUsubstitution_defsq }q Uparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h Ubackends-celery-backendsqh UcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXa/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.rstq q!}q"bUtagnameq#Usectionq$U attributesq%}q&(Udupnamesq']Uclassesq(]Ubackrefsq)]Uidsq*]q+haUnamesq,]q-h auUlineq.KUdocumentq/hh]q0(cdocutils.nodes title q1)q2}q3(hXBackends - celery.backendsq4hhhh!h#Utitleq5h%}q6(h']h(]h)]h*]h,]uh.Kh/hh]q7cdocutils.nodes Text q8XBackends - celery.backendsq9q:}q;(hh4hh2ubaubcdocutils.nodes target q<)q=}q>(hUhhhU q?h#Utargetq@h%}qA(h']h*]qBXmodule-celery.backendsqCah)]Uismodh(]h,]uh.Kh/hh]ubcsphinx.addnodes index qD)qE}qF(hUhhhh?h#UindexqGh%}qH(h*]h)]h']h(]h,]Uentries]qI(UsingleqJXcelery.backends (module)Xmodule-celery.backendsUtqKauh.Kh/hh]ubhD)qL}qM(hUhhhUh#hGh%}qN(h*]h)]h']h(]h,]Uentries]qO(hJX*DefaultBackend (in module celery.backends)h UtqPauh.Nh/hh]ubcsphinx.addnodes desc qQ)qR}qS(hUhhhUh#UdescqTh%}qU(UnoindexqVUdomainqWXpyh*]h)]h']h(]h,]UobjtypeqXX attributeqYUdesctypeqZhYuh.Nh/hh]q[(csphinx.addnodes desc_signature q\)q]}q^(hXDefaultBackendq_hhRhU q`h#Udesc_signatureqah%}qb(h*]qch aUmoduleqdhXcelery.backendsqeqf}qgbh)]h']h(]h,]qhh aUfullnameqih_UclassqjUUfirstqkuh.Nh/hh]ql(csphinx.addnodes desc_addname qm)qn}qo(hXcelery.backends.hh]hh`h#U desc_addnameqph%}qq(h']h(]h)]h*]h,]uh.Nh/hh]qrh8Xcelery.backends.qsqt}qu(hUhhnubaubcsphinx.addnodes desc_name qv)qw}qx(hh_hh]hh`h#U desc_nameqyh%}qz(h']h(]h)]h*]h,]uh.Nh/hh]q{h8XDefaultBackendq|q}}q~(hUhhwubaubeubcsphinx.addnodes desc_content q)q}q(hUhhRhh`h#U desc_contentqh%}q(h']h(]h)]h*]h,]uh.Nh/hh]q(hD)q}q(hUhhhX|/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/__init__.py:docstring of celery.backends.DefaultBackendqh#hGh%}q(h*]h)]h']h(]h,]Uentries]q(hJX+default_backend (in module celery.backends)hUtqauh.Nh/hh]ubhQ)q}q(hUhhhhh#hTh%}q(hVhWXpyh*]h)]h']h(]h,]hXXdataqhZhuh.Nh/hh]q(h\)q}q(hXdefault_backendqhhhhh#hah%}q(h*]qhahdXcelery.backendsqh)]h']h(]h,]qhahihhjUhkuh.Kh/hh]q(hm)q}q(hXcelery.backends.hhhhh#hph%}q(h']h(]h)]h*]h,]uh.Kh/hh]qh8Xcelery.backends.qq}q(hUhhubaubhv)q}q(hhhhhhh#hyh%}q(h']h(]h)]h*]h,]uh.Kh/hh]qh8Xdefault_backendqq}q(hUhhubaubeubh)q}q(hUhhhhh#hh%}q(h']h(]h)]h*]h,]uh.Kh/hh]qcdocutils.nodes paragraph q)q}q(hX'An instance of :class:`DefaultBackend`.hhhhh#U paragraphqh%}q(h']h(]h)]h*]h,]uh.Kh/hh]q(h8XAn instance of qq}q(hXAn instance of hhubcsphinx.addnodes pending_xref q)q}q(hX:class:`DefaultBackend`qhhhh!h#U pending_xrefqh%}q(UreftypeXclassUrefwarnqU reftargetqXDefaultBackendU refdomainXpyqh*]h)]U refexplicith']h(]h,]UrefdocqX#internals/reference/celery.backendsqUpy:classqNU py:moduleqhuh.K h]qcdocutils.nodes literal q)q}q(hhh%}q(h']h(]q(UxrefqhXpy-classqeh)]h*]h,]uhhh]qh8XDefaultBackendqɅq}q(hUhhubah#Uliteralqubaubh8X.q}q(hX.hhubeubaubeubh)q}q(hXalias of :class:`AMQPBackend`hhhUh#hh%}q(h']h(]h)]h*]h,]uh.Kh/hh]q(h8X alias of qӅq}q(hX alias of hhubh)q}q(hX:class:`AMQPBackend`qhhhh!h#hh%}q(UreftypeXclasshhX AMQPBackendU refdomainXpyqh*]h)]U refexplicith']h(]h,]hhhNhhuh.K h]qh)q}q(hhh%}q(h']h(]q(hhXpy-classqeh)]h*]h,]uhhh]qh8X AMQPBackendq⅁q}q(hUhhubah#hubaubeubeubeubhD)q}q(hUhhhX}/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/__init__.py:docstring of celery.backends.get_backend_clsqh#hGh%}q(h*]h)]h']h(]h,]Uentries]q(hJX-get_backend_cls() (in module celery.backends)hUtqauh.Nh/hh]ubhQ)q}q(hUhhhhh#hTh%}q(hVhWXpyh*]h)]h']h(]h,]hXXfunctionqhZhuh.Nh/hh]q(h\)q}q(hXget_backend_cls(backend)hhhh`h#hah%}q(h*]qhahdhXcelery.backendsqq}qbh)]h']h(]h,]qhahiXget_backend_clsqhjUhkuh.Nh/hh]q(hm)q}q(hXcelery.backends.hhhh`h#hph%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh8Xcelery.backends.qq}r(hUhhubaubhv)r}r(hhhhhh`h#hyh%}r(h']h(]h)]h*]h,]uh.Nh/hh]rh8Xget_backend_clsrr}r(hUhjubaubcsphinx.addnodes desc_parameterlist r)r }r (hUhhhh`h#Udesc_parameterlistr h%}r (h']h(]h)]h*]h,]uh.Nh/hh]r csphinx.addnodes desc_parameter r)r}r(hXbackendh%}r(h']h(]h)]h*]h,]uhj h]rh8Xbackendrr}r(hUhjubah#Udesc_parameterrubaubeubh)r}r(hUhhhh`h#hh%}r(h']h(]h)]h*]h,]uh.Nh/hh]rh)r}r(hXGet backend class by name/aliasrhjhhh#hh%}r(h']h(]h)]h*]h,]uh.Kh/hh]rh8XGet backend class by name/aliasr r!}r"(hjhjubaubaubeubhD)r#}r$(hUhhhNh#hGh%}r%(h*]h)]h']h(]h,]Uentries]r&(hJX3get_default_backend_cls (in module celery.backends)hUtr'auh.Nh/hh]ubhQ)r(}r)(hUhhhNh#hTh%}r*(hVhWXpyh*]h)]h']h(]h,]hXXdatar+hZj+uh.Nh/hh]r,(h\)r-}r.(hXget_default_backend_clsr/hj(hU r0h#hah%}r1(h*]r2hahdhXcelery.backendsr3r4}r5bh)]h']h(]h,]r6hahij/hjUhkuh.Nh/hh]r7(hm)r8}r9(hXcelery.backends.hj-hj0h#hph%}r:(h']h(]h)]h*]h,]uh.Nh/hh]r;h8Xcelery.backends.r<r=}r>(hUhj8ubaubhv)r?}r@(hj/hj-hj0h#hyh%}rA(h']h(]h)]h*]h,]uh.Nh/hh]rBh8Xget_default_backend_clsrCrD}rE(hUhj?ubaubcsphinx.addnodes desc_annotation rF)rG}rH(hX* = hj-hj0h#Udesc_annotationrIh%}rJ(h']h(]h)]h*]h,]uh.Nh/hh]rKh8X* = rLrM}rN(hUhjGubaubeubh)rO}rP(hUhj(hj0h#hh%}rQ(h']h(]h)]h*]h,]uh.Nh/hh]rR(hD)rS}rT(hUhjOhX/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/__init__.py:docstring of celery.backends.get_default_backend_clsrUh#hGh%}rV(h*]h)]h']h(]h,]Uentries]rW(hJX)DefaultBackend (class in celery.backends)Xcelery.backends.DefaultBackendUtrXauh.Nh/hh]ubhQ)rY}rZ(hUhjOhjUh#hTh%}r[(hVhWXpyh*]h)]h']h(]h,]hXXclassr\hZj\uh.Nh/hh]r](h\)r^}r_(hXDefaultBackendr`hjYhjUh#hah%}ra(h*]hdhh)]h']h(]h,]hij`hjUhkuh.Kh/hh]rb(jF)rc}rd(hXclass hj^hjUh#jIh%}re(h']h(]h)]h*]h,]uh.Kh/hh]rfh8Xclass rgrh}ri(hUhjcubaubhm)rj}rk(hXcelery.backends.hj^hjUh#hph%}rl(h']h(]h)]h*]h,]uh.Kh/hh]rmh8Xcelery.backends.rnro}rp(hUhjjubaubhv)rq}rr(hj`hj^hjUh#hyh%}rs(h']h(]h)]h*]h,]uh.Kh/hh]rth8XDefaultBackendrurv}rw(hUhjqubaubeubh)rx}ry(hUhjYhjUh#hh%}rz(h']h(]h)]h*]h,]uh.Kh/hh]r{h)r|}r}(hXwThe default backend class used for storing task results and status, specified in the ``CELERY_RESULT_BACKEND`` setting.hjxhjUh#hh%}r~(h']h(]h)]h*]h,]uh.Kh/hh]r(h8XUThe default backend class used for storing task results and status, specified in the rr}r(hXUThe default backend class used for storing task results and status, specified in the hj|ubh)r}r(hX``CELERY_RESULT_BACKEND``h%}r(h']h(]h)]h*]h,]uhj|h]rh8XCELERY_RESULT_BACKENDrr}r(hUhjubah#hubh8X setting.rr}r(hX setting.hj|ubeubaubeubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh/hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh%}r(h']UlevelKh*]h)]Usourceh?h(]h,]UlineKUtypeUINFOruh]rh)r}r(hUh%}r(h']h(]h)]h*]h,]uhjh]rh8X<Hyperlink target "module-celery.backends" is not referenced.rr}r(hUhjubah#hubah#Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh5NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUa/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhj-hhh h]hhhcdocutils.nodes topic r)r}r(hUhhhh!h#Utopicrh%}r(h']h(]r(UcontentsrUlocalreh)]h*]rhah,]rh auh.Kh/hh]rcdocutils.nodes pending r )r }r (hX.. contents:: :local:hjU transformr cdocutils.transforms.parts Contents r Udetailsr}rUlocalNsh#Upendingrh%}r(h']h(]h)]h*]h,]uh]ubaubhCh=uUsubstitution_namesr}rh#h/h%}r(h']h*]h)]Usourceh!h(]h,]uU footnotesr]rUrefidsr}rub.PKYDDttWcelery-2.1-archived/.doctrees/internals/reference/celery.utils.dispatch.saferef.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X&celery.utils.dispatch.saferef.safe_refqXAcelery.utils.dispatch.saferef.BoundMethodWeakref.deletion_methodsqX:celery.utils.dispatch.saferef.BoundMethodWeakref.weak_selfqX0celery.utils.dispatch.saferef.BoundMethodWeakrefq X?celery.utils.dispatch.saferef.BoundMethodWeakref._all_instancesq X4celery.utils.dispatch.saferef.BoundMethodWeakref.keyq X6celery.utils.dispatch.saferef.get_bound_method_weakrefq X8signals: safe references - celery.utils.dispatch.saferefq NX:celery.utils.dispatch.saferef.BoundMethodWeakref.weak_funcqX=celery.utils.dispatch.saferef.BoundNonDescriptorMethodWeakrefqUcontentsqNX>celery.utils.dispatch.saferef.BoundMethodWeakref.calculate_keyquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h h h U5signals-safe-references-celery-utils-dispatch-saferefqhhhhhUcontentsqhhuUchildrenq]qcdocutils.nodes section q)q }q!(U rawsourceq"UUparentq#hUsourceq$cdocutils.nodes reprunicode q%Xo/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.dispatch.saferef.rstq&q'}q(bUtagnameq)Usectionq*U attributesq+}q,(Udupnamesq-]Uclassesq.]Ubackrefsq/]Uidsq0]q1haUnamesq2]q3h auUlineq4KUdocumentq5hh]q6(cdocutils.nodes title q7)q8}q9(h"X8Signals: Safe References - celery.utils.dispatch.saferefq:h#h h$h'h)Utitleq;h+}q<(h-]h.]h/]h0]h2]uh4Kh5hh]q=cdocutils.nodes Text q>X8Signals: Safe References - celery.utils.dispatch.saferefq?q@}qA(h"h:h#h8ubaubcdocutils.nodes target qB)qC}qD(h"Uh#h h$U qEh)UtargetqFh+}qG(h-]h0]qHX$module-celery.utils.dispatch.saferefqIah/]Uismodh.]h2]uh4Kh5hh]ubcsphinx.addnodes index qJ)qK}qL(h"Uh#h h$hEh)UindexqMh+}qN(h0]h/]h-]h.]h2]Uentries]qO(UsingleqPX&celery.utils.dispatch.saferef (module)X$module-celery.utils.dispatch.saferefUtqQauh4Kh5hh]ubcdocutils.nodes paragraph qR)qS}qT(h"X."Safe weakrefs", originally from pyDispatcher.qUh#h h$X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/saferef.py:docstring of celery.utils.dispatch.saferefqVh)U paragraphqWh+}qX(h-]h.]h/]h0]h2]uh4Kh5hh]qYh>X."Safe weakrefs", originally from pyDispatcher.qZq[}q\(h"hUh#hSubaubhR)q]}q^(h"XyProvides a way to safely weakref any function, including bound methods (which aren't handled by the core weakref module).q_h#h h$hVh)hWh+}q`(h-]h.]h/]h0]h2]uh4Kh5hh]qah>XyProvides a way to safely weakref any function, including bound methods (which aren't handled by the core weakref module).qbqc}qd(h"h_h#h]ubaubhJ)qe}qf(h"Uh#h h$Nh)hMh+}qg(h0]h/]h-]h.]h2]Uentries]qh(hPX;BoundMethodWeakref (class in celery.utils.dispatch.saferef)h Utqiauh4Nh5hh]ubcsphinx.addnodes desc qj)qk}ql(h"Uh#h h$Nh)Udescqmh+}qn(UnoindexqoUdomainqpXpyh0]h/]h-]h.]h2]UobjtypeqqXclassqrUdesctypeqshruh4Nh5hh]qt(csphinx.addnodes desc_signature qu)qv}qw(h"X*BoundMethodWeakref(target, on_delete=None)h#hkh$U qxh)Udesc_signatureqyh+}qz(h0]q{h aUmoduleq|h%Xcelery.utils.dispatch.saferefq}q~}qbh/]h-]h.]h2]qh aUfullnameqXBoundMethodWeakrefqUclassqUUfirstquh4Nh5hh]q(csphinx.addnodes desc_annotation q)q}q(h"Xclass h#hvh$hxh)Udesc_annotationqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>Xclass qq}q(h"Uh#hubaubcsphinx.addnodes desc_addname q)q}q(h"Xcelery.utils.dispatch.saferef.h#hvh$hxh)U desc_addnameqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>Xcelery.utils.dispatch.saferef.qq}q(h"Uh#hubaubcsphinx.addnodes desc_name q)q}q(h"hh#hvh$hxh)U desc_nameqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>XBoundMethodWeakrefqq}q(h"Uh#hubaubcsphinx.addnodes desc_parameterlist q)q}q(h"Uh#hvh$hxh)Udesc_parameterlistqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]q(csphinx.addnodes desc_parameter q)q}q(h"Xtargeth+}q(h-]h.]h/]h0]h2]uh#hh]qh>Xtargetqq}q(h"Uh#hubah)Udesc_parameterqubh)q}q(h"Xon_delete=Noneh+}q(h-]h.]h/]h0]h2]uh#hh]qh>Xon_delete=Noneqq}q(h"Uh#hubah)hubeubeubcsphinx.addnodes desc_content q)q}q(h"Uh#hkh$hxh)U desc_contentqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]q(hR)q}q(h"X8'Safe' and reusable weak references to instance methods.qh#hh$X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/saferef.py:docstring of celery.utils.dispatch.saferef.BoundMethodWeakrefqh)hWh+}q(h-]h.]h/]h0]h2]uh4Kh5hh]qh>X8'Safe' and reusable weak references to instance methods.qÅq}q(h"hh#hubaubhR)q}q(h"X@BoundMethodWeakref objects provide a mechanism for referencing a bound method without requiring that the method object itself (which is normally a transient object) is kept alive. Instead, the BoundMethodWeakref object keeps weak references to both the object and the function which together define the instance method.qh#hh$hh)hWh+}q(h-]h.]h/]h0]h2]uh4Kh5hh]qh>X@BoundMethodWeakref objects provide a mechanism for referencing a bound method without requiring that the method object itself (which is normally a transient object) is kept alive. Instead, the BoundMethodWeakref object keeps weak references to both the object and the function which together define the instance method.q˅q}q(h"hh#hubaubhJ)q}q(h"Uh#hh$hh)hMh+}q(h0]h/]h-]h.]h2]Uentries]q(hPX@key (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)h Utqauh4Nh5hh]ubhj)q}q(h"Uh#hh$hh)hmh+}q(hohpXpyh0]h/]h-]h.]h2]hqX attributeqhshuh4Nh5hh]q(hu)q}q(h"Xkeyqh#hh$hh)hyh+}q(h0]qh ah|Xcelery.utils.dispatch.saferefqh/]h-]h.]h2]qh ahXBoundMethodWeakref.keyhhhuh4Kh5hh]qh)q}q(h"hh#hh$hh)hh+}q(h-]h.]h/]h0]h2]uh4Kh5hh]qh>Xkeyq䅁q}q(h"Uh#hubaubaubh)q}q(h"Uh#hh$hh)hh+}q(h-]h.]h/]h0]h2]uh4Kh5hh]qhR)q}q(h"Xthe identity key for the reference, calculated by the class's :meth:`calculate_key` method applied to the target instance methodh#hh$hh)hWh+}q(h-]h.]h/]h0]h2]uh4K h5hh]q(h>X>the identity key for the reference, calculated by the class's qq}q(h"X>the identity key for the reference, calculated by the class's h#hubcsphinx.addnodes pending_xref q)q}q(h"X:meth:`calculate_key`qh#hh$Nh)U pending_xrefqh+}q(UreftypeXmethUrefwarnqU reftargetqX calculate_keyU refdomainXpyqh0]h/]U refexplicith-]h.]h2]UrefdocqX1internals/reference/celery.utils.dispatch.saferefqUpy:classqhU py:moduleqhuh4Nh]qcdocutils.nodes literal r)r}r(h"hh+}r(h-]h.]r(UxrefrhXpy-methreh/]h0]h2]uh#hh]rh>Xcalculate_key()rr }r (h"Uh#jubah)Uliteralr ubaubh>X- method applied to the target instance methodr r }r(h"X- method applied to the target instance methodh#hubeubaubeubhJ)r}r(h"Uh#hh$hh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPXMdeletion_methods (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)hUtrauh4Nh5hh]ubhj)r}r(h"Uh#hh$hh)hmh+}r(hohpXpyh0]h/]h-]h.]h2]hqX attributerhsjuh4Nh5hh]r(hu)r}r(h"Xdeletion_methodsrh#jh$hh)hyh+}r(h0]rhah|hh/]h-]h.]h2]rhahX#BoundMethodWeakref.deletion_methodshhhuh4Kh5hh]rh)r }r!(h"jh#jh$hh)hh+}r"(h-]h.]h/]h0]h2]uh4Kh5hh]r#h>Xdeletion_methodsr$r%}r&(h"Uh#j ubaubaubh)r'}r((h"Uh#jh$hh)hh+}r)(h-]h.]h/]h0]h2]uh4Kh5hh]r*hR)r+}r,(h"X!sequence of callable objects taking single argument, a reference to this object which will be called when *either* the target object or target function is garbage collected (i.e. when this object becomes invalid). These are specified as the on_delete parameters of :func:`safe_ref` calls.h#j'h$hh)hWh+}r-(h-]h.]h/]h0]h2]uh4Kh5hh]r.(h>Xjsequence of callable objects taking single argument, a reference to this object which will be called when r/r0}r1(h"Xjsequence of callable objects taking single argument, a reference to this object which will be called when h#j+ubcdocutils.nodes emphasis r2)r3}r4(h"X*either*h+}r5(h-]h.]h/]h0]h2]uh#j+h]r6h>Xeitherr7r8}r9(h"Uh#j3ubah)Uemphasisr:ubh>X the target object or target function is garbage collected (i.e. when this object becomes invalid). These are specified as the on_delete parameters of r;r<}r=(h"X the target object or target function is garbage collected (i.e. when this object becomes invalid). These are specified as the on_delete parameters of h#j+ubh)r>}r?(h"X:func:`safe_ref`r@h#j+h$Nh)hh+}rA(UreftypeXfunchhXsafe_refU refdomainXpyrBh0]h/]U refexplicith-]h.]h2]hhhhhhuh4Nh]rCj)rD}rE(h"j@h+}rF(h-]h.]rG(jjBXpy-funcrHeh/]h0]h2]uh#j>h]rIh>X safe_ref()rJrK}rL(h"Uh#jDubah)j ubaubh>X calls.rMrN}rO(h"X calls.h#j+ubeubaubeubhJ)rP}rQ(h"Uh#hh$hh)hMh+}rR(h0]h/]h-]h.]h2]Uentries]rS(hPXFweak_self (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)hUtrTauh4Nh5hh]ubhj)rU}rV(h"Uh#hh$hh)hmh+}rW(hohpXpyh0]h/]h-]h.]h2]hqX attributerXhsjXuh4Nh5hh]rY(hu)rZ}r[(h"X weak_selfr\h#jUh$hh)hyh+}r](h0]r^hah|hh/]h-]h.]h2]r_hahXBoundMethodWeakref.weak_selfhhhuh4Kh5hh]r`h)ra}rb(h"j\h#jZh$hh)hh+}rc(h-]h.]h/]h0]h2]uh4Kh5hh]rdh>X weak_selfrerf}rg(h"Uh#jaubaubaubh)rh}ri(h"Uh#jUh$hh)hh+}rj(h-]h.]h/]h0]h2]uh4Kh5hh]rkhR)rl}rm(h"X#weak reference to the target objectrnh#jhh$hh)hWh+}ro(h-]h.]h/]h0]h2]uh4Kh5hh]rph>X#weak reference to the target objectrqrr}rs(h"jnh#jlubaubaubeubhJ)rt}ru(h"Uh#hh$hh)hMh+}rv(h0]h/]h-]h.]h2]Uentries]rw(hPXFweak_func (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)hUtrxauh4Nh5hh]ubhj)ry}rz(h"Uh#hh$hh)hmh+}r{(hohpXpyh0]h/]h-]h.]h2]hqX attributer|hsj|uh4Nh5hh]r}(hu)r~}r(h"X weak_funcrh#jyh$hh)hyh+}r(h0]rhah|hh/]h-]h.]h2]rhahXBoundMethodWeakref.weak_funchhhuh4K h5hh]rh)r}r(h"jh#j~h$hh)hh+}r(h-]h.]h/]h0]h2]uh4K h5hh]rh>X weak_funcrr}r(h"Uh#jubaubaubh)r}r(h"Uh#jyh$hh)hh+}r(h-]h.]h/]h0]h2]uh4K h5hh]rhR)r}r(h"X%weak reference to the target functionrh#jh$hh)hWh+}r(h-]h.]h/]h0]h2]uh4Kh5hh]rh>X%weak reference to the target functionrr}r(h"jh#jubaubaubeubhJ)r}r(h"Uh#hh$hh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPXK_all_instances (celery.utils.dispatch.saferef.BoundMethodWeakref attribute)h Utrauh4Nh5hh]ubhj)r}r(h"Uh#hh$hh)hmh+}r(hohpXpyh0]h/]h-]h.]h2]hqX attributerhsjuh4Nh5hh]r(hu)r}r(h"X_all_instancesrh#jh$hEh)hyh+}r(h0]rh ah|hh/]h-]h.]h2]rh ahX!BoundMethodWeakref._all_instanceshhhuh4Kh5hh]rh)r}r(h"jh#jh$hEh)hh+}r(h-]h.]h/]h0]h2]uh4Kh5hh]rh>X_all_instancesrr}r(h"Uh#jubaubaubh)r}r(h"Uh#jh$hEh)hh+}r(h-]h.]h/]h0]h2]uh4Kh5hh]rhR)r}r(h"XAclass attribute pointing to all live BoundMethodWeakref objects indexed by the class's ``calculate_key(target)`` method applied to the target objects. This weak value dictionary is used to short-circuit creation so that multiple references to the same (object, function) pair produce the same BoundMethodWeakref instance.h#jh$hh)hWh+}r(h-]h.]h/]h0]h2]uh4K#h5hh]r(h>XWclass attribute pointing to all live BoundMethodWeakref objects indexed by the class's rr}r(h"XWclass attribute pointing to all live BoundMethodWeakref objects indexed by the class's h#jubj)r}r(h"X``calculate_key(target)``h+}r(h-]h.]h/]h0]h2]uh#jh]rh>Xcalculate_key(target)rr}r(h"Uh#jubah)j ubh>X method applied to the target objects. This weak value dictionary is used to short-circuit creation so that multiple references to the same (object, function) pair produce the same BoundMethodWeakref instance.rr}r(h"X method applied to the target objects. This weak value dictionary is used to short-circuit creation so that multiple references to the same (object, function) pair produce the same BoundMethodWeakref instance.h#jubeubaubeubhJ)r}r(h"Uh#hh$X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/saferef.py:docstring of celery.utils.dispatch.saferef.BoundMethodWeakref.calculate_keyrh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPXOcalculate_key() (celery.utils.dispatch.saferef.BoundMethodWeakref class method)hUtrauh4Nh5hh]ubhj)r}r(h"Uh#hh$jh)hmh+}r(hohpXpyh0]h/]h-]h.]h2]hqX classmethodrhsjuh4Nh5hh]r(hu)r}r(h"X(BoundMethodWeakref.calculate_key(target)h#jh$hxh)hyh+}r(h0]rhah|h%Xcelery.utils.dispatch.saferefrr}rbh/]h-]h.]h2]rhahX BoundMethodWeakref.calculate_keyhhhuh4Nh5hh]r(h)r}r(h"U classmethod rh#jh$hxh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>X classmethod rr}r(h"Uh#jubaubh)r}r(h"X calculate_keyh#jh$hxh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>X calculate_keyrr}r(h"Uh#jubaubh)r}r(h"Uh#jh$hxh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh)r}r(h"Xtargeth+}r(h-]h.]h/]h0]h2]uh#jh]rh>Xtargetrr}r(h"Uh#jubah)hubaubeubh)r}r(h"Uh#jh$hxh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]r(hR)r}r(h"X.Calculate the reference key for this referencerh#jh$jh)hWh+}r(h-]h.]h/]h0]h2]uh4Kh5hh]rh>X.Calculate the reference key for this referencerr}r(h"jh#jubaubhR)r}r(h"XjCurrently this is a two-tuple of the ``id()``'s of the target object and the target function respectively.h#jh$jh)hWh+}r(h-]h.]h/]h0]h2]uh4Kh5hh]r(h>X%Currently this is a two-tuple of the rr}r(h"X%Currently this is a two-tuple of the h#jubj)r}r(h"X``id()``h+}r(h-]h.]h/]h0]h2]uh#jh]r h>Xid()r r }r (h"Uh#jubah)j ubh>X='s of the target object and the target function respectively.r r}r(h"X='s of the target object and the target function respectively.h#jubeubeubeubeubeubhJ)r}r(h"Uh#h h$X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/saferef.py:docstring of celery.utils.dispatch.saferef.BoundNonDescriptorMethodWeakrefrh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPXHBoundNonDescriptorMethodWeakref (class in celery.utils.dispatch.saferef)hUtrauh4Nh5hh]ubhj)r}r(h"Uh#h h$jh)hmh+}r(hohpXpyh0]h/]h-]h.]h2]hqXclassrhsjuh4Nh5hh]r(hu)r}r(h"X7BoundNonDescriptorMethodWeakref(target, on_delete=None)h#jh$hxh)hyh+}r(h0]rhah|h%Xcelery.utils.dispatch.saferefrr }r!bh/]h-]h.]h2]r"hahXBoundNonDescriptorMethodWeakrefr#hUhuh4Nh5hh]r$(h)r%}r&(h"Xclass h#jh$hxh)hh+}r'(h-]h.]h/]h0]h2]uh4Nh5hh]r(h>Xclass r)r*}r+(h"Uh#j%ubaubh)r,}r-(h"Xcelery.utils.dispatch.saferef.h#jh$hxh)hh+}r.(h-]h.]h/]h0]h2]uh4Nh5hh]r/h>Xcelery.utils.dispatch.saferef.r0r1}r2(h"Uh#j,ubaubh)r3}r4(h"j#h#jh$hxh)hh+}r5(h-]h.]h/]h0]h2]uh4Nh5hh]r6h>XBoundNonDescriptorMethodWeakrefr7r8}r9(h"Uh#j3ubaubh)r:}r;(h"Uh#jh$hxh)hh+}r<(h-]h.]h/]h0]h2]uh4Nh5hh]r=(h)r>}r?(h"Xtargeth+}r@(h-]h.]h/]h0]h2]uh#j:h]rAh>XtargetrBrC}rD(h"Uh#j>ubah)hubh)rE}rF(h"Xon_delete=Noneh+}rG(h-]h.]h/]h0]h2]uh#j:h]rHh>Xon_delete=NonerIrJ}rK(h"Uh#jEubah)hubeubeubh)rL}rM(h"Uh#jh$hxh)hh+}rN(h-]h.]h/]h0]h2]uh4Nh5hh]rO(hR)rP}rQ(h"XdA specialized :class:`BoundMethodWeakref`, for platforms where instance methods are not descriptors.h#jLh$jh)hWh+}rR(h-]h.]h/]h0]h2]uh4Kh5hh]rS(h>XA specialized rTrU}rV(h"XA specialized h#jPubh)rW}rX(h"X:class:`BoundMethodWeakref`rYh#jPh$Nh)hh+}rZ(UreftypeXclasshhXBoundMethodWeakrefU refdomainXpyr[h0]h/]U refexplicith-]h.]h2]hhhj#hhuh4Nh]r\j)r]}r^(h"jYh+}r_(h-]h.]r`(jj[Xpy-classraeh/]h0]h2]uh#jWh]rbh>XBoundMethodWeakrefrcrd}re(h"Uh#j]ubah)j ubaubh>X;, for platforms where instance methods are not descriptors.rfrg}rh(h"X;, for platforms where instance methods are not descriptors.h#jPubeubhR)ri}rj(h"X It assumes that the function name and the target attribute name are the same, instead of assuming that the function is a descriptor. This approach is equally fast, but not 100% reliable because functions can be stored on an attribute named differenty than the function's name such as in::h#jLh$jh)hWh+}rk(h-]h.]h/]h0]h2]uh4Kh5hh]rlh>XIt assumes that the function name and the target attribute name are the same, instead of assuming that the function is a descriptor. This approach is equally fast, but not 100% reliable because functions can be stored on an attribute named differenty than the function's name such as in:rmrn}ro(h"XIt assumes that the function name and the target attribute name are the same, instead of assuming that the function is a descriptor. This approach is equally fast, but not 100% reliable because functions can be stored on an attribute named differenty than the function's name such as in:h#jiubaubcdocutils.nodes literal_block rp)rq}rr(h"XZ>>> class A(object): ... pass >>> def foo(self): ... return "foo" >>> A.bar = fooh#jLh$jh)U literal_blockrsh+}rt(U xml:spaceruUpreservervh0]h/]h-]h.]h2]uh4KMh5hh]rwh>XZ>>> class A(object): ... pass >>> def foo(self): ... return "foo" >>> A.bar = foorxry}rz(h"Uh#jqubaubhR)r{}r|(h"XBut this shouldn't be a common use case. So, on platforms where methods aren't descriptors (such as Jython) this implementation has the advantage of working in the most cases.r}h#jLh$jh)hWh+}r~(h-]h.]h/]h0]h2]uh4Kh5hh]rh>XBut this shouldn't be a common use case. So, on platforms where methods aren't descriptors (such as Jython) this implementation has the advantage of working in the most cases.rr}r(h"j}h#j{ubaubeubeubhJ)r}r(h"Uh#h h$X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/saferef.py:docstring of celery.utils.dispatch.saferef.get_bound_method_weakrefrh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPXDget_bound_method_weakref() (in module celery.utils.dispatch.saferef)h Utrauh4Nh5hh]ubhj)r}r(h"Uh#h h$jh)hmh+}r(hohpXpyh0]h/]h-]h.]h2]hqXfunctionrhsjuh4Nh5hh]r(hu)r}r(h"X+get_bound_method_weakref(target, on_delete)h#jh$hxh)hyh+}r(h0]rh ah|h%Xcelery.utils.dispatch.saferefrr}rbh/]h-]h.]h2]rh ahXget_bound_method_weakrefrhUhuh4Nh5hh]r(h)r}r(h"Xcelery.utils.dispatch.saferef.h#jh$hxh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>Xcelery.utils.dispatch.saferef.rr}r(h"Uh#jubaubh)r}r(h"jh#jh$hxh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>Xget_bound_method_weakrefrr}r(h"Uh#jubaubh)r}r(h"Uh#jh$hxh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]r(h)r}r(h"Xtargeth+}r(h-]h.]h/]h0]h2]uh#jh]rh>Xtargetrr}r(h"Uh#jubah)hubh)r}r(h"X on_deleteh+}r(h-]h.]h/]h0]h2]uh#jh]rh>X on_deleterr}r(h"Uh#jubah)hubeubeubh)r}r(h"Uh#jh$hxh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rhR)r}r(h"XInstantiates the appropiate :class:`BoundMethodWeakRef`, depending on the details of the underlying class method implementation.h#jh$jh)hWh+}r(h-]h.]h/]h0]h2]uh4Kh5hh]r(h>XInstantiates the appropiate rr}r(h"XInstantiates the appropiate h#jubh)r}r(h"X:class:`BoundMethodWeakRef`rh#jh$Nh)hh+}r(UreftypeXclasshhXBoundMethodWeakRefU refdomainXpyrh0]h/]U refexplicith-]h.]h2]hhhNhhuh4Nh]rj)r}r(h"jh+}r(h-]h.]r(jjXpy-classreh/]h0]h2]uh#jh]rh>XBoundMethodWeakRefrr}r(h"Uh#jubah)j ubaubh>XI, depending on the details of the underlying class method implementation.rr}r(h"XI, depending on the details of the underlying class method implementation.h#jubeubaubeubhJ)r}r(h"Uh#h h$Nh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPX4safe_ref() (in module celery.utils.dispatch.saferef)hUtrauh4Nh5hh]ubhj)r}r(h"Uh#h h$Nh)hmh+}r(hohpXpyh0]h/]h-]h.]h2]hqXfunctionrhsjuh4Nh5hh]r(hu)r}r(h"X safe_ref(target, on_delete=None)h#jh$hxh)hyh+}r(h0]rhah|h%Xcelery.utils.dispatch.saferefrr}rbh/]h-]h.]h2]rhahXsafe_refrhUhuh4Nh5hh]r(h)r}r(h"Xcelery.utils.dispatch.saferef.h#jh$hxh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>Xcelery.utils.dispatch.saferef.rr}r(h"Uh#jubaubh)r}r(h"jh#jh$hxh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>Xsafe_refrr}r(h"Uh#jubaubh)r}r(h"Uh#jh$hxh)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]r(h)r}r(h"Xtargeth+}r(h-]h.]h/]h0]h2]uh#jh]rh>Xtargetrr}r(h"Uh#jubah)hubh)r}r(h"Xon_delete=Noneh+}r(h-]h.]h/]h0]h2]uh#jh]rh>Xon_delete=Nonerr}r(h"Uh#jubah)hubeubeubh)r }r (h"Uh#jh$hxh)hh+}r (h-]h.]h/]h0]h2]uh4Nh5hh]r (hR)r }r(h"X3Return a *safe* weak reference to a callable targetrh#j h$X/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/dispatch/saferef.py:docstring of celery.utils.dispatch.saferef.safe_refrh)hWh+}r(h-]h.]h/]h0]h2]uh4Kh5hh]r(h>X Return a rr}r(h"X Return a h#j ubj2)r}r(h"X*safe*h+}r(h-]h.]h/]h0]h2]uh#j h]rh>Xsaferr}r(h"Uh#jubah)j:ubh>X$ weak reference to a callable targetrr}r(h"X$ weak reference to a callable targeth#j ubeubcdocutils.nodes field_list r )r!}r"(h"Uh#j h$Nh)U field_listr#h+}r$(h-]h.]h/]h0]h2]uh4Nh5hh]r%cdocutils.nodes field r&)r'}r((h"Uh+}r)(h-]h.]h/]h0]h2]uh#j!h]r*(cdocutils.nodes field_name r+)r,}r-(h"Uh+}r.(h-]h.]h/]h0]h2]uh#j'h]r/h>X Parametersr0r1}r2(h"Uh#j,ubah)U field_namer3ubcdocutils.nodes field_body r4)r5}r6(h"Uh+}r7(h-]h.]h/]h0]h2]uh#j'h]r8cdocutils.nodes bullet_list r9)r:}r;(h"Uh+}r<(h-]h.]h/]h0]h2]uh#j5h]r=(cdocutils.nodes list_item r>)r?}r@(h"Uh+}rA(h-]h.]h/]h0]h2]uh#j:h]rBhR)rC}rD(h"Uh+}rE(h-]h.]h/]h0]h2]uh#j?h]rF(cdocutils.nodes strong rG)rH}rI(h"Xtargeth+}rJ(h-]h.]h/]h0]h2]uh#jCh]rKh>XtargetrLrM}rN(h"Uh#jHubah)UstrongrOubh>X -- rPrQ}rR(h"Uh#jCubh>XTthe object to be weakly referenced, if it's a bound method reference, will create a rSrT}rU(h"XTthe object to be weakly referenced, if it's a bound method reference, will create a h#jCubh)rV}rW(h"X:class:`BoundMethodWeakref`rXh#jCh$Nh)hh+}rY(UreftypeXclasshhXBoundMethodWeakrefU refdomainXpyrZh0]h/]U refexplicith-]h.]h2]hhhNhhuh4Nh]r[j)r\}r](h"jXh+}r^(h-]h.]r_(jjZXpy-classr`eh/]h0]h2]uh#jVh]rah>XBoundMethodWeakrefrbrc}rd(h"Uh#j\ubah)j ubaubh>X, otherwise creates a simple rerf}rg(h"X, otherwise creates a simple h#jCubh)rh}ri(h"X:class:`weakref.ref`rjh#jCh$Nh)hh+}rk(UreftypeXclasshhX weakref.refU refdomainXpyrlh0]h/]U refexplicith-]h.]h2]hhhNhhuh4Nh]rmj)rn}ro(h"jjh+}rp(h-]h.]rq(jjlXpy-classrreh/]h0]h2]uh#jhh]rsh>X weakref.refrtru}rv(h"Uh#jnubah)j ubaubh>X.rw}rx(h"X.h#jCubeh)hWubah)U list_itemryubj>)rz}r{(h"Uh+}r|(h-]h.]h/]h0]h2]uh#j:h]r}hR)r~}r(h"Uh+}r(h-]h.]h/]h0]h2]uh#jzh]r(jG)r}r(h"X on_deleteh+}r(h-]h.]h/]h0]h2]uh#j~h]rh>X on_deleterr}r(h"Uh#jubah)jOubh>X -- rr}r(h"Uh#j~ubh>Xif provided, will have a hard reference stored to the callable to be called after the safe reference goes out of scope with the reference object, (either a rr}r(h"Xif provided, will have a hard reference stored to the callable to be called after the safe reference goes out of scope with the reference object, (either a h#j~ubh)r}r(h"X:class:`weakref.ref`rh#j~h$Nh)hh+}r(UreftypeXclasshhX weakref.refU refdomainXpyrh0]h/]U refexplicith-]h.]h2]hhhNhhuh4Nh]rj)r}r(h"jh+}r(h-]h.]r(jjXpy-classreh/]h0]h2]uh#jh]rh>X weakref.refrr}r(h"Uh#jubah)j ubaubh>X or a rr}r(h"X or a h#j~ubh)r}r(h"X:class:`BoundMethodWeakref`rh#j~h$Nh)hh+}r(UreftypeXclasshhXBoundMethodWeakrefU refdomainXpyrh0]h/]U refexplicith-]h.]h2]hhhNhhuh4Nh]rj)r}r(h"jh+}r(h-]h.]r(jjXpy-classreh/]h0]h2]uh#jh]rh>XBoundMethodWeakrefrr}r(h"Uh#jubah)j ubaubh>X) as argument.rr}r(h"X) as argument.h#j~ubeh)hWubah)jyubeh)U bullet_listrubah)U field_bodyrubeh)Ufieldrubaubeubeubeubah"UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh5hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h"Uh+}r(h-]UlevelKh0]h/]UsourcehEh.]h2]UlineKUtypeUINFOruh]rhR)r}r(h"Uh+}r(h-]h.]h/]h0]h2]uh#jh]rh>XJHyperlink target "module-celery.utils.dispatch.saferef" is not referenced.rr}r(h"Uh#jubah)hWubah)Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh;NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUo/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.dispatch.saferef.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr ]Ufile_insertion_enabledr!U raw_enabledr"KU dump_settingsr#NubUsymbol_footnote_startr$KUidsr%}r&(hjhjhjhjZhh h hvh jh hh jhIhChj~hcdocutils.nodes topic r')r(}r)(h"Uh#h h$h'h)Utopicr*h+}r+(h-]h.]r,(Ucontentsr-Ulocalr.eh/]h0]r/hah2]r0hauh4Kh5hh]r1cdocutils.nodes pending r2)r3}r4(h"X.. contents:: :local:h#j(U transformr5cdocutils.transforms.parts Contents r6Udetailsr7}r8UlocalNsh)Upendingr9h+}r:(h-]h.]h/]h0]h2]uh]ubaubhjuUsubstitution_namesr;}r<h)h5h+}r=(h-]h0]h/]Usourceh'h.]h2]uU footnotesr>]r?Urefidsr@}rAub.PKYDDbbOcelery-2.1-archived/.doctrees/internals/reference/celery.utils.dispatch.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X'signal dispatch - celery.utils.dispatchqNUcontentsqNuUsubstitution_defsq}q Uparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startqKUnameidsq}q(hU%signal-dispatch-celery-utils-dispatchqhUcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXg/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.dispatch.rstqq}qbUtagnameqUsectionq U attributesq!}q"(Udupnamesq#]Uclassesq$]Ubackrefsq%]Uidsq&]q'haUnamesq(]q)hauUlineq*KUdocumentq+hh]q,(cdocutils.nodes title q-)q.}q/(hX'Signal Dispatch - celery.utils.dispatchq0hhhhhUtitleq1h!}q2(h#]h$]h%]h&]h(]uh*Kh+hh]q3cdocutils.nodes Text q4X'Signal Dispatch - celery.utils.dispatchq5q6}q7(hh0hh.ubaubcdocutils.nodes target q8)q9}q:(hUhhhU q;hUtargetqXmodule-celery.utils.dispatchq?ah%]Uismodh$]h(]uh*Kh+hh]ubcsphinx.addnodes index q@)qA}qB(hUhhhh;hUindexqCh!}qD(h&]h%]h#]h$]h(]Uentries]qE(UsingleqFXcelery.utils.dispatch (module)Xmodule-celery.utils.dispatchUtqGauh*Kh+hh]ubeubahUU transformerqHNU footnote_refsqI}qJUrefnamesqK}qLUsymbol_footnotesqM]qNUautofootnote_refsqO]qPUsymbol_footnote_refsqQ]qRU citationsqS]qTh+hU current_lineqUNUtransform_messagesqV]qWcdocutils.nodes system_message qX)qY}qZ(hUh!}q[(h#]UlevelKh&]h%]Usourceh;h$]h(]UlineKUtypeUINFOq\uh]q]cdocutils.nodes paragraph q^)q_}q`(hUh!}qa(h#]h$]h%]h&]h(]uhhYh]qbh4XBHyperlink target "module-celery.utils.dispatch" is not referenced.qcqd}qe(hUhh_ubahU paragraphqfubahUsystem_messageqgubaUreporterqhNUid_startqiKU autofootnotesqj]qkU citation_refsql}qmUindirect_targetsqn]qoUsettingsqp(cdocutils.frontend Values qqoqr}qs(Ufootnote_backlinksqtKUrecord_dependenciesquNU rfc_base_urlqvUhttp://tools.ietf.org/html/qwU tracebackqxUpep_referencesqyNUstrip_commentsqzNU toc_backlinksq{Uentryq|U language_codeq}Uenq~U datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh1NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUg/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.dispatch.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]qUfile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}q(hhh?h9hcdocutils.nodes topic q)q}q(hUhhhhhUtopicqh!}q(h#]h$]q(UcontentsqUlocalqeh%]h&]qhah(]qhauh*Kh+hh]qcdocutils.nodes pending q)q}q(hX.. contents:: :local:hhU transformqcdocutils.transforms.parts Contents qUdetailsq}qUlocalNshUpendingqh!}q(h#]h$]h%]h&]h(]uh]ubaubuUsubstitution_namesq}qhh+h!}q(h#]h&]h%]Usourcehh$]h(]uU footnotesq]qUrefidsq}qub.PKYDD_Z5 AAPcelery-2.1-archived/.doctrees/internals/reference/celery.events.snapshot.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X%celery.events.snapshot.Polaroid.debugqX(event snapshots - celery.events.snapshotqNXcelery.events.snapshot.PolaroidqX.celery.events.snapshot.Polaroid.cleanup_signalq X.celery.events.snapshot.Polaroid.shutter_signalq X'celery.events.snapshot.Polaroid.shutterq X*celery.events.snapshot.Polaroid.on_shutterq X&celery.events.snapshot.Polaroid.cancelq Xcelery.events.snapshot.evcamqX'celery.events.snapshot.Polaroid.captureqX'celery.events.snapshot.Polaroid.cleanupqX'celery.events.snapshot.Polaroid.installqX+celery.events.snapshot.Polaroid.clear_afterqUcontentsqNX*celery.events.snapshot.Polaroid.on_cleanupquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhU&event-snapshots-celery-events-snapshotqhhh h h h h h h h h h hhhhhhhhhhhUcontentsqhhuUchildrenq ]q!cdocutils.nodes section q")q#}q$(U rawsourceq%UUparentq&hUsourceq'cdocutils.nodes reprunicode q(Xh/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.events.snapshot.rstq)q*}q+bUtagnameq,Usectionq-U attributesq.}q/(Udupnamesq0]Uclassesq1]Ubackrefsq2]Uidsq3]q4haUnamesq5]q6hauUlineq7KUdocumentq8hh ]q9(cdocutils.nodes title q:)q;}q<(h%X(Event Snapshots - celery.events.snapshotq=h&h#h'h*h,Utitleq>h.}q?(h0]h1]h2]h3]h5]uh7Kh8hh ]q@cdocutils.nodes Text qAX(Event Snapshots - celery.events.snapshotqBqC}qD(h%h=h&h;ubaubcdocutils.nodes target qE)qF}qG(h%Uh&h#h'U qHh,UtargetqIh.}qJ(h0]h3]qKXmodule-celery.events.snapshotqLah2]Uismodh1]h5]uh7Kh8hh ]ubcsphinx.addnodes index qM)qN}qO(h%Uh&h#h'hHh,UindexqPh.}qQ(h3]h2]h0]h1]h5]Uentries]qR(UsingleqSXcelery.events.snapshot (module)Xmodule-celery.events.snapshotUtqTauh7Kh8hh ]ubhM)qU}qV(h%Uh&h#h'Nh,hPh.}qW(h3]h2]h0]h1]h5]Uentries]qX(hSX*Polaroid (class in celery.events.snapshot)hUtqYauh7Nh8hh ]ubcsphinx.addnodes desc qZ)q[}q\(h%Uh&h#h'Nh,Udescq]h.}q^(Unoindexq_Udomainq`Xpyh3]h2]h0]h1]h5]UobjtypeqaXclassqbUdesctypeqchbuh7Nh8hh ]qd(csphinx.addnodes desc_signature qe)qf}qg(h%XIPolaroid(state, freq=1.0, maxrate=None, cleanup_freq=3600.0, logger=None)h&h[h'U qhh,Udesc_signatureqih.}qj(h3]qkhaUmoduleqlh(Xcelery.events.snapshotqmqn}qobh2]h0]h1]h5]qphaUfullnameqqXPolaroidqrUclassqsUUfirstqtuh7Nh8hh ]qu(csphinx.addnodes desc_annotation qv)qw}qx(h%Xclass h&hfh'hhh,Udesc_annotationqyh.}qz(h0]h1]h2]h3]h5]uh7Nh8hh ]q{hAXclass q|q}}q~(h%Uh&hwubaubcsphinx.addnodes desc_addname q)q}q(h%Xcelery.events.snapshot.h&hfh'hhh,U desc_addnameqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]qhAXcelery.events.snapshot.qq}q(h%Uh&hubaubcsphinx.addnodes desc_name q)q}q(h%hrh&hfh'hhh,U desc_nameqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]qhAXPolaroidqq}q(h%Uh&hubaubcsphinx.addnodes desc_parameterlist q)q}q(h%Uh&hfh'hhh,Udesc_parameterlistqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]q(csphinx.addnodes desc_parameter q)q}q(h%Xstateh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAXstateqq}q(h%Uh&hubah,Udesc_parameterqubh)q}q(h%Xfreq=1.0h.}q(h0]h1]h2]h3]h5]uh&hh ]qhAXfreq=1.0qq}q(h%Uh&hubah,hubh)q}q(h%X maxrate=Noneh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAX maxrate=Noneqq}q(h%Uh&hubah,hubh)q}q(h%Xcleanup_freq=3600.0h.}q(h0]h1]h2]h3]h5]uh&hh ]qhAXcleanup_freq=3600.0qq}q(h%Uh&hubah,hubh)q}q(h%X logger=Noneh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAX logger=Noneqq}q(h%Uh&hubah,hubeubeubcsphinx.addnodes desc_content q)q}q(h%Uh&h[h'hhh,U desc_contentqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]q(hM)q}q(h%Uh&hh'Nh,hPh.}q(h3]h2]h0]h1]h5]Uentries]q(hSX1cancel() (celery.events.snapshot.Polaroid method)h Utqauh7Nh8hh ]ubhZ)q}q(h%Uh&hh'Nh,h]h.}q(h_h`Xpyh3]h2]h0]h1]h5]haXmethodqhchuh7Nh8hh ]q(he)q}q(h%XPolaroid.cancel()h&hh'hhh,hih.}q(h3]qh ahlh(Xcelery.events.snapshotqЅq}qbh2]h0]h1]h5]qh ahqXPolaroid.cancelhshrhtuh7Nh8hh ]q(h)q}q(h%Xcancelh&hh'hhh,hh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]qhAXcancelqمq}q(h%Uh&hubaubh)q}q(h%Uh&hh'hhh,hh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)q}q(h%Uh&hh'hhh,hh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)q}q(h%Uh&hh'Nh,hPh.}q(h3]h2]h0]h1]h5]Uentries]q(hSX2capture() (celery.events.snapshot.Polaroid method)hUtqauh7Nh8hh ]ubhZ)q}q(h%Uh&hh'Nh,h]h.}q(h_h`Xpyh3]h2]h0]h1]h5]haXmethodqhchuh7Nh8hh ]q(he)q}q(h%XPolaroid.capture()h&hh'hhh,hih.}q(h3]qhahlh(Xcelery.events.snapshotqq}qbh2]h0]h1]h5]qhahqXPolaroid.capturehshrhtuh7Nh8hh ]q(h)q}q(h%Xcaptureh&hh'hhh,hh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]qhAXcaptureqq}q(h%Uh&hubaubh)q}q(h%Uh&hh'hhh,hh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)q}r(h%Uh&hh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r}r(h%Uh&hh'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX2cleanup() (celery.events.snapshot.Polaroid method)hUtrauh7Nh8hh ]ubhZ)r}r(h%Uh&hh'Nh,h]h.}r (h_h`Xpyh3]h2]h0]h1]h5]haXmethodr hcj uh7Nh8hh ]r (he)r }r (h%XPolaroid.cleanup()h&jh'hhh,hih.}r(h3]rhahlh(Xcelery.events.snapshotrr}rbh2]h0]h1]h5]rhahqXPolaroid.cleanuphshrhtuh7Nh8hh ]r(h)r}r(h%Xcleanuph&j h'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXcleanuprr}r(h%Uh&jubaubh)r}r(h%Uh&j h'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)r}r (h%Uh&jh'hhh,hh.}r!(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r"}r#(h%Uh&hh'Nh,hPh.}r$(h3]h2]h0]h1]h5]Uentries]r%(hSX:cleanup_signal (celery.events.snapshot.Polaroid attribute)h Utr&auh7Nh8hh ]ubhZ)r'}r((h%Uh&hh'Nh,h]h.}r)(h_h`Xpyh3]h2]h0]h1]h5]haX attributer*hcj*uh7Nh8hh ]r+(he)r,}r-(h%XPolaroid.cleanup_signalh&j'h'U r.h,hih.}r/(h3]r0h ahlh(Xcelery.events.snapshotr1r2}r3bh2]h0]h1]h5]r4h ahqXPolaroid.cleanup_signalhshrhtuh7Nh8hh ]r5(h)r6}r7(h%Xcleanup_signalh&j,h'j.h,hh.}r8(h0]h1]h2]h3]h5]uh7Nh8hh ]r9hAXcleanup_signalr:r;}r<(h%Uh&j6ubaubhv)r=}r>(h%X = h&j,h'j.h,hyh.}r?(h0]h1]h2]h3]h5]uh7Nh8hh ]r@hAX = rArB}rC(h%Uh&j=ubaubeubh)rD}rE(h%Uh&j'h'j.h,hh.}rF(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)rG}rH(h%Uh&hh'Nh,hPh.}rI(h3]h2]h0]h1]h5]Uentries]rJ(hSX7clear_after (celery.events.snapshot.Polaroid attribute)hUtrKauh7Nh8hh ]ubhZ)rL}rM(h%Uh&hh'Nh,h]h.}rN(h_h`Xpyh3]h2]h0]h1]h5]haX attributerOhcjOuh7Nh8hh ]rP(he)rQ}rR(h%XPolaroid.clear_afterh&jLh'j.h,hih.}rS(h3]rThahlh(Xcelery.events.snapshotrUrV}rWbh2]h0]h1]h5]rXhahqXPolaroid.clear_afterhshrhtuh7Nh8hh ]rY(h)rZ}r[(h%X clear_afterh&jQh'j.h,hh.}r\(h0]h1]h2]h3]h5]uh7Nh8hh ]r]hAX clear_afterr^r_}r`(h%Uh&jZubaubhv)ra}rb(h%X = Falseh&jQh'j.h,hyh.}rc(h0]h1]h2]h3]h5]uh7Nh8hh ]rdhAX = Falsererf}rg(h%Uh&jaubaubeubh)rh}ri(h%Uh&jLh'j.h,hh.}rj(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)rk}rl(h%Uh&hh'Nh,hPh.}rm(h3]h2]h0]h1]h5]Uentries]rn(hSX0debug() (celery.events.snapshot.Polaroid method)hUtroauh7Nh8hh ]ubhZ)rp}rq(h%Uh&hh'Nh,h]h.}rr(h_h`Xpyh3]h2]h0]h1]h5]haXmethodrshcjsuh7Nh8hh ]rt(he)ru}rv(h%XPolaroid.debug(msg)h&jph'hhh,hih.}rw(h3]rxhahlh(Xcelery.events.snapshotryrz}r{bh2]h0]h1]h5]r|hahqXPolaroid.debughshrhtuh7Nh8hh ]r}(h)r~}r(h%Xdebugh&juh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXdebugrr}r(h%Uh&j~ubaubh)r}r(h%Uh&juh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rh)r}r(h%Xmsgh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAXmsgrr}r(h%Uh&jubah,hubaubeubh)r}r(h%Uh&jph'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r}r(h%Uh&hh'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX2install() (celery.events.snapshot.Polaroid method)hUtrauh7Nh8hh ]ubhZ)r}r(h%Uh&hh'Nh,h]h.}r(h_h`Xpyh3]h2]h0]h1]h5]haXmethodrhcjuh7Nh8hh ]r(he)r}r(h%XPolaroid.install()h&jh'hhh,hih.}r(h3]rhahlh(Xcelery.events.snapshotrr}rbh2]h0]h1]h5]rhahqXPolaroid.installhshrhtuh7Nh8hh ]r(h)r}r(h%Xinstallh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXinstallrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r}r(h%Uh&hh'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX5on_cleanup() (celery.events.snapshot.Polaroid method)hUtrauh7Nh8hh ]ubhZ)r}r(h%Uh&hh'Nh,h]h.}r(h_h`Xpyh3]h2]h0]h1]h5]haXmethodrhcjuh7Nh8hh ]r(he)r}r(h%XPolaroid.on_cleanup()h&jh'hhh,hih.}r(h3]rhahlh(Xcelery.events.snapshotrr}rbh2]h0]h1]h5]rhahqXPolaroid.on_cleanuphshrhtuh7Nh8hh ]r(h)r}r(h%X on_cleanuph&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAX on_cleanuprr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r}r(h%Uh&hh'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX5on_shutter() (celery.events.snapshot.Polaroid method)h Utrauh7Nh8hh ]ubhZ)r}r(h%Uh&hh'Nh,h]h.}r(h_h`Xpyh3]h2]h0]h1]h5]haXmethodrhcjuh7Nh8hh ]r(he)r}r(h%XPolaroid.on_shutter(state)h&jh'hhh,hih.}r(h3]rh ahlh(Xcelery.events.snapshotrr}rbh2]h0]h1]h5]rh ahqXPolaroid.on_shutterhshrhtuh7Nh8hh ]r(h)r}r(h%X on_shutterh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAX on_shutterrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rh)r}r(h%Xstateh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAXstaterr}r(h%Uh&jubah,hubaubeubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r}r(h%Uh&hh'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX2shutter() (celery.events.snapshot.Polaroid method)h Utrauh7Nh8hh ]ubhZ)r}r(h%Uh&hh'Nh,h]h.}r(h_h`Xpyh3]h2]h0]h1]h5]haXmethodrhcjuh7Nh8hh ]r(he)r}r(h%XPolaroid.shutter()h&jh'hhh,hih.}r(h3]rh ahlh(Xcelery.events.snapshotr r }r bh2]h0]h1]h5]r h ahqXPolaroid.shutterhshrhtuh7Nh8hh ]r (h)r}r(h%Xshutterh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXshutterrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r}r(h%Uh&hh'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX:shutter_signal (celery.events.snapshot.Polaroid attribute)h Utrauh7Nh8hh ]ubhZ)r }r!(h%Uh&hh'Nh,h]h.}r"(h_h`Xpyh3]h2]h0]h1]h5]haX attributer#hcj#uh7Nh8hh ]r$(he)r%}r&(h%XPolaroid.shutter_signalr'h&j h'j.h,hih.}r((h3]r)h ahlh(Xcelery.events.snapshotr*r+}r,bh2]h0]h1]h5]r-h ahqXPolaroid.shutter_signalhshrhtuh7Nh8hh ]r.(h)r/}r0(h%Xshutter_signalh&j%h'j.h,hh.}r1(h0]h1]h2]h3]h5]uh7Nh8hh ]r2hAXshutter_signalr3r4}r5(h%Uh&j/ubaubhv)r6}r7(h%X = h&j%h'j.h,hyh.}r8(h0]h1]h2]h3]h5]uh7Nh8hh ]r9hAX = r:r;}r<(h%Uh&j6ubaubeubh)r=}r>(h%Uh&j h'j.h,hh.}r?(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubeubeubhM)r@}rA(h%Uh&h#h'Nh,hPh.}rB(h3]h2]h0]h1]h5]Uentries]rC(hSX*evcam() (in module celery.events.snapshot)hUtrDauh7Nh8hh ]ubhZ)rE}rF(h%Uh&h#h'Nh,h]h.}rG(h_h`Xpyh3]h2]h0]h1]h5]haXfunctionrHhcjHuh7Nh8hh ]rI(he)rJ}rK(h%X?evcam(camera, freq=1.0, maxrate=None, loglevel=0, logfile=None)h&jEh'hhh,hih.}rL(h3]rMhahlh(Xcelery.events.snapshotrNrO}rPbh2]h0]h1]h5]rQhahqXevcamrRhsUhtuh7Nh8hh ]rS(h)rT}rU(h%Xcelery.events.snapshot.h&jJh'hhh,hh.}rV(h0]h1]h2]h3]h5]uh7Nh8hh ]rWhAXcelery.events.snapshot.rXrY}rZ(h%Uh&jTubaubh)r[}r\(h%jRh&jJh'hhh,hh.}r](h0]h1]h2]h3]h5]uh7Nh8hh ]r^hAXevcamr_r`}ra(h%Uh&j[ubaubh)rb}rc(h%Uh&jJh'hhh,hh.}rd(h0]h1]h2]h3]h5]uh7Nh8hh ]re(h)rf}rg(h%Xcamerah.}rh(h0]h1]h2]h3]h5]uh&jbh ]rihAXcamerarjrk}rl(h%Uh&jfubah,hubh)rm}rn(h%Xfreq=1.0h.}ro(h0]h1]h2]h3]h5]uh&jbh ]rphAXfreq=1.0rqrr}rs(h%Uh&jmubah,hubh)rt}ru(h%X maxrate=Noneh.}rv(h0]h1]h2]h3]h5]uh&jbh ]rwhAX maxrate=Nonerxry}rz(h%Uh&jtubah,hubh)r{}r|(h%X loglevel=0h.}r}(h0]h1]h2]h3]h5]uh&jbh ]r~hAX loglevel=0rr}r(h%Uh&j{ubah,hubh)r}r(h%X logfile=Noneh.}r(h0]h1]h2]h3]h5]uh&jbh ]rhAX logfile=Nonerr}r(h%Uh&jubah,hubeubeubh)r}r(h%Uh&jEh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubeubah%UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh8hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h%Uh.}r(h0]UlevelKh3]h2]UsourcehHh1]h5]UlineKUtypeUINFOruh ]rcdocutils.nodes paragraph r)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAXCHyperlink target "module-celery.events.snapshot" is not referenced.rr}r(h%Uh&jubah,U paragraphrubah,Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh>NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUh/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.events.snapshot.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjuhhfhh#hjJh j%h jh jh hhjQhLhFhhhj hjh j,hcdocutils.nodes topic r)r}r(h%Uh&h#h'h*h,Utopicrh.}r(h0]h1]r(UcontentsrUlocalreh2]h3]rhah5]rhauh7Kh8hh ]r cdocutils.nodes pending r )r }r (h%X.. contents:: :local:h&jU transformr cdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh,Upendingrh.}r(h0]h1]h2]h3]h5]uh ]ubaubhjuUsubstitution_namesr}rh,h8h.}r(h0]h3]h2]Usourceh*h1]h5]uU footnotesr]rUrefidsr}rub.PKYDDw/$$Xcelery-2.1-archived/.doctrees/internals/reference/celery.worker.control.registry.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X)celery.worker.control.registry.Panel.dataqX@remote control command registry - celery.worker.control.registryqNX$celery.worker.control.registry.PanelqUcontentsq NX-celery.worker.control.registry.Panel.registerq uUsubstitution_defsq }q Uparse_messagesq ]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhU>remote-control-command-registry-celery-worker-control-registryqhhh Ucontentsqh h uUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXp/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.control.registry.rstqq }q!bUtagnameq"Usectionq#U attributesq$}q%(Udupnamesq&]Uclassesq']Ubackrefsq(]Uidsq)]q*haUnamesq+]q,hauUlineq-KUdocumentq.hh]q/(cdocutils.nodes title q0)q1}q2(hX@Remote Control Command Registry - celery.worker.control.registryq3hhhh h"Utitleq4h$}q5(h&]h']h(]h)]h+]uh-Kh.hh]q6cdocutils.nodes Text q7X@Remote Control Command Registry - celery.worker.control.registryq8q9}q:(hh3hh1ubaubcdocutils.nodes target q;)q<}q=(hUhhhU q>h"Utargetq?h$}q@(h&]h)]qAX%module-celery.worker.control.registryqBah(]Uismodh']h+]uh-Kh.hh]ubcsphinx.addnodes index qC)qD}qE(hUhhhh>h"UindexqFh$}qG(h)]h(]h&]h']h+]Uentries]qH(UsingleqIX'celery.worker.control.registry (module)X%module-celery.worker.control.registryUtqJauh-Kh.hh]ubhC)qK}qL(hUhhhNh"hFh$}qM(h)]h(]h&]h']h+]Uentries]qN(hIX/Panel (class in celery.worker.control.registry)hUtqOauh-Nh.hh]ubcsphinx.addnodes desc qP)qQ}qR(hUhhhNh"UdescqSh$}qT(UnoindexqUUdomainqVXpyh)]h(]h&]h']h+]UobjtypeqWXclassqXUdesctypeqYhXuh-Nh.hh]qZ(csphinx.addnodes desc_signature q[)q\}q](hX&Panel(logger, listener, hostname=None)hhQhU q^h"Udesc_signatureq_h$}q`(h)]qahaUmoduleqbhXcelery.worker.control.registryqcqd}qebh(]h&]h']h+]qfhaUfullnameqgXPanelqhUclassqiUUfirstqjuh-Nh.hh]qk(csphinx.addnodes desc_annotation ql)qm}qn(hXclass hh\hh^h"Udesc_annotationqoh$}qp(h&]h']h(]h)]h+]uh-Nh.hh]qqh7Xclass qrqs}qt(hUhhmubaubcsphinx.addnodes desc_addname qu)qv}qw(hXcelery.worker.control.registry.hh\hh^h"U desc_addnameqxh$}qy(h&]h']h(]h)]h+]uh-Nh.hh]qzh7Xcelery.worker.control.registry.q{q|}q}(hUhhvubaubcsphinx.addnodes desc_name q~)q}q(hhhhh\hh^h"U desc_nameqh$}q(h&]h']h(]h)]h+]uh-Nh.hh]qh7XPanelqq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhh\hh^h"Udesc_parameterlistqh$}q(h&]h']h(]h)]h+]uh-Nh.hh]q(csphinx.addnodes desc_parameter q)q}q(hXloggerh$}q(h&]h']h(]h)]h+]uhhh]qh7Xloggerqq}q(hUhhubah"Udesc_parameterqubh)q}q(hXlistenerh$}q(h&]h']h(]h)]h+]uhhh]qh7Xlistenerqq}q(hUhhubah"hubh)q}q(hX hostname=Noneh$}q(h&]h']h(]h)]h+]uhhh]qh7X hostname=Noneqq}q(hUhhubah"hubeubeubcsphinx.addnodes desc_content q)q}q(hUhhQhh^h"U desc_contentqh$}q(h&]h']h(]h)]h+]uh-Nh.hh]q(hC)q}q(hUhhhNh"hFh$}q(h)]h(]h&]h']h+]Uentries]q(hIX5data (celery.worker.control.registry.Panel attribute)hUtqauh-Nh.hh]ubhP)q}q(hUhhhNh"hSh$}q(hUhVXpyh)]h(]h&]h']h+]hWX attributeqhYhuh-Nh.hh]q(h[)q}q(hX Panel.datahhhU qh"h_h$}q(h)]qhahbhXcelery.worker.control.registryqq}qbh(]h&]h']h+]qhahgX Panel.datahihhhjuh-Nh.hh]q(h~)q}q(hXdatahhhhh"hh$}q(h&]h']h(]h)]h+]uh-Nh.hh]qh7Xdataq…q}q(hUhhubaubhl)q}q(hX1 = {'stats': , 'revoke': , 'enable_events': , 'set_loglevel': , 'dump_active': , 'dump_schedule': , 'rate_limit': , 'disable_events': , 'cancel_consumer': , 'dump_tasks': , 'dump_reserved': , 'add_consumer': , 'shutdown': , 'dump_revoked': , 'heartbeat': , 'ping': }hhhhh"hoh$}q(h&]h']h(]h)]h+]uh-Nh.hh]qh7X1 = {'stats': , 'revoke': , 'enable_events': , 'set_loglevel': , 'dump_active': , 'dump_schedule': , 'rate_limit': , 'disable_events': , 'cancel_consumer': , 'dump_tasks': , 'dump_reserved': , 'add_consumer': , 'shutdown': , 'dump_revoked': , 'heartbeat': , 'ping': }qɅq}q(hUhhubaubeubh)q}q(hUhhhhh"hh$}q(h&]h']h(]h)]h+]uh-Nh.hh]ubeubhC)q}q(hUhhhNh"hFh$}q(h)]h(]h&]h']h+]Uentries]q(hIX>register() (celery.worker.control.registry.Panel class method)h Utqauh-Nh.hh]ubhP)q}q(hUhhhNh"hSh$}q(hUhVXpyh)]h(]h&]h']h+]hWX classmethodqhYhuh-Nh.hh]q(h[)q}q(hX!Panel.register(method, name=None)hhhh^h"h_h$}q(h)]qh ahbhXcelery.worker.control.registryq݅q}qbh(]h&]h']h+]qh ahgXPanel.registerhihhhjuh-Nh.hh]q(hl)q}q(hU classmethod qhhhh^h"hoh$}q(h&]h']h(]h)]h+]uh-Nh.hh]qh7X classmethod q煁q}q(hUhhubaubh~)q}q(hXregisterhhhh^h"hh$}q(h&]h']h(]h)]h+]uh-Nh.hh]qh7Xregisterqq}q(hUhhubaubh)q}q(hUhhhh^h"hh$}q(h&]h']h(]h)]h+]uh-Nh.hh]q(h)q}q(hXmethodh$}q(h&]h']h(]h)]h+]uhhh]qh7Xmethodqq}q(hUhhubah"hubh)q}q(hX name=Noneh$}q(h&]h']h(]h)]h+]uhhh]qh7X name=Nonerr}r(hUhhubah"hubeubeubh)r}r(hUhhhh^h"hh$}r(h&]h']h(]h)]h+]uh-Nh.hh]ubeubeubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr }r Usymbol_footnotesr ]r Uautofootnote_refsr ]rUsymbol_footnote_refsr]rU citationsr]rh.hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh$}r(h&]UlevelKh)]h(]Usourceh>h']h+]UlineKUtypeUINFOruh]rcdocutils.nodes paragraph r)r}r(hUh$}r(h&]h']h(]h)]h+]uhjh]r h7XKHyperlink target "module-celery.worker.control.registry" is not referenced.r!r"}r#(hUhjubah"U paragraphr$ubah"Usystem_messager%ubaUreporterr&NUid_startr'KU autofootnotesr(]r)U citation_refsr*}r+Uindirect_targetsr,]r-Usettingsr.(cdocutils.frontend Values r/or0}r1(Ufootnote_backlinksr2KUrecord_dependenciesr3NU rfc_base_urlr4Uhttp://tools.ietf.org/html/r5U tracebackr6Upep_referencesr7NUstrip_commentsr8NU toc_backlinksr9Uentryr:U language_coder;Uenr<U datestampr=NU report_levelr>KU _destinationr?NU halt_levelr@KU strip_classesrANh4NUerror_encoding_error_handlerrBUbackslashreplacerCUdebugrDNUembed_stylesheetrEUoutput_encoding_error_handlerrFUstrictrGU sectnum_xformrHKUdump_transformsrINU docinfo_xformrJKUwarning_streamrKNUpep_file_url_templaterLUpep-%04drMUexit_status_levelrNKUconfigrONUstrict_visitorrPNUcloak_email_addressesrQUtrim_footnote_reference_spacerRUenvrSNUdump_pseudo_xmlrTNUexpose_internalsrUNUsectsubtitle_xformrVU source_linkrWNUrfc_referencesrXNUoutput_encodingrYUutf-8rZU source_urlr[NUinput_encodingr\U utf-8-sigr]U_disable_configr^NU id_prefixr_UU tab_widthr`KUerror_encodingraUUTF-8rbU_sourcercUp/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.control.registry.rstrdUgettext_compactreU generatorrfNUdump_internalsrgNU smart_quotesrhU pep_base_urlriUhttp://www.python.org/dev/peps/rjUsyntax_highlightrkUlongrlUinput_encoding_error_handlerrmjGUauto_id_prefixrnUidroUdoctitle_xformrpUstrip_elements_with_classesrqNU _config_filesrr]rsUfile_insertion_enabledrtU raw_enabledruKU dump_settingsrvNubUsymbol_footnote_startrwKUidsrx}ry(h hhhhcdocutils.nodes topic rz)r{}r|(hUhhhh h"Utopicr}h$}r~(h&]h']r(UcontentsrUlocalreh(]h)]rhah+]rh auh-Kh.hh]rcdocutils.nodes pending r)r}r(hX.. contents:: :local:hj{U transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh"Upendingrh$}r(h&]h']h(]h)]h+]uh]ubaubhh\hhhBh}q?bUtagnameq@UsectionqAU attributesqB}qC(UdupnamesqD]UclassesqE]UbackrefsqF]UidsqG]qHh3aUnamesqI]qJhauUlineqKKUdocumentqLhh4]qM(cdocutils.nodes title qN)qO}qP(h9X4Token Bucket (rate limiting) - celery.worker.bucketsqQh:h7h;h>h@UtitleqRhB}qS(hD]hE]hF]hG]hI]uhKKhLhh4]qTcdocutils.nodes Text qUX4Token Bucket (rate limiting) - celery.worker.bucketsqVqW}qX(h9hQh:hOubaubcdocutils.nodes target qY)qZ}q[(h9Uh:h7h;U q\h@Utargetq]hB}q^(hD]hG]q_Xmodule-celery.worker.bucketsq`ahF]UismodhE]hI]uhKKhLhh4]ubcsphinx.addnodes index qa)qb}qc(h9Uh:h7h;h\h@UindexqdhB}qe(hG]hF]hD]hE]hI]Uentries]qf(UsingleqgXcelery.worker.buckets (module)Xmodule-celery.worker.bucketsUtqhauhKKhLhh4]ubha)qi}qj(h9Uh:h7h;Nh@hdhB}qk(hG]hF]hD]hE]hI]Uentries]ql(hgX*FastQueue (class in celery.worker.buckets)h$UtqmauhKNhLhh4]ubcsphinx.addnodes desc qn)qo}qp(h9Uh:h7h;Nh@UdescqqhB}qr(UnoindexqsUdomainqtXpyhG]hF]hD]hE]hI]UobjtypequXclassqvUdesctypeqwhvuhKNhLhh4]qx(csphinx.addnodes desc_signature qy)qz}q{(h9XFastQueue(maxsize=0)h:hoh;U q|h@Udesc_signatureq}hB}q~(hG]qh$aUmoduleqhh@U pending_xrefqhB}q(UreftypeXclassUrefwarnqljU reftargetqX Queue.QueueU refdomainXpyqhG]hF]U refexplicithD]hE]hI]UrefdocqX)internals/reference/celery.worker.bucketsqUpy:classqhU py:moduleqXcelery.worker.bucketsquhKKh4]qcdocutils.nodes literal q)q}q(h9hhB}q(hD]hE]q(UxrefqhXpy-classqehF]hG]hI]uh:hh4]qhUX Queue.Queueq؅q}q(h9Uh:hubah@UliteralqubaubhUX supporting the interface of q܅q}q(h9X supporting the interface of h:hubh)q}q(h9X:class:`TokenBucketQueue`qh:hh;h>h@hhB}q(UreftypeXclasshljhXTokenBucketQueueU refdomainXpyqhG]hF]U refexplicithD]hE]hI]hhhhhhuhKKh4]qh)q}q(h9hhB}q(hD]hE]q(hhXpy-classqehF]hG]hI]uh:hh4]qhUXTokenBucketQueueq녁q}q(h9Uh:hubah@hubaubhUX.q}q(h9X.h:hubeubha)q}q(h9Uh:hh;Nh@hdhB}q(hG]hF]hD]hE]hI]Uentries]q(hgX0clear() (celery.worker.buckets.FastQueue method)h#UtqauhKNhLhh4]ubhn)q}q(h9Uh:hh;Nh@hqhB}q(hshtXpyhG]hF]hD]hE]hI]huXmethodqhwhuhKNhLhh4]q(hy)q}q(h9XFastQueue.clear()h:hh;h|h@h}hB}q(hG]qh#ahh(h9Uh:hh;Nh@hqhB}r?(hshtXpyhG]hF]hD]hE]hI]huX attributer@hwj@uhKNhLhh4]rA(hy)rB}rC(h9XFastQueue.itemsh:j=h;h|h@h}hB}rD(hG]rEh ahhr?}r@(h9XL operation iterates over the buckets and retrieves the first available item.h:jubeubh)rA}rB(h9XSay we have three types of tasks in the registry: ``celery.ping``, ``feed.refresh`` and ``video.compress``, the TaskBucket will consist of the following items::h:jh;jh@hhB}rC(hD]hE]hF]hG]hI]uhKK hLhh4]rD(hUX2Say we have three types of tasks in the registry: rErF}rG(h9X2Say we have three types of tasks in the registry: h:jAubh)rH}rI(h9X``celery.ping``hB}rJ(hD]hE]hF]hG]hI]uh:jAh4]rKhUX celery.pingrLrM}rN(h9Uh:jHubah@hubhUX, rOrP}rQ(h9X, h:jAubh)rR}rS(h9X``feed.refresh``hB}rT(hD]hE]hF]hG]hI]uh:jAh4]rUhUX feed.refreshrVrW}rX(h9Uh:jRubah@hubhUX and rYrZ}r[(h9X and h:jAubh)r\}r](h9X``video.compress``hB}r^(hD]hE]hF]hG]hI]uh:jAh4]r_hUXvideo.compressr`ra}rb(h9Uh:j\ubah@hubhUX5, the TaskBucket will consist of the following items:rcrd}re(h9X5, the TaskBucket will consist of the following items:h:jAubeubcdocutils.nodes literal_block rf)rg}rh(h9X|{"celery.ping": TokenBucketQueue(fill_rate=300), "feed.refresh": Queue(), "video.compress": TokenBucketQueue(fill_rate=2)}h:jh;jh@U literal_blockrihB}rj(U xml:spacerkUpreserverlhG]hF]hD]hE]hI]uhKK2hLhh4]rmhUX|{"celery.ping": TokenBucketQueue(fill_rate=300), "feed.refresh": Queue(), "video.compress": TokenBucketQueue(fill_rate=2)}rnro}rp(h9Uh:jgubaubh)rq}rr(h9XThe get operation will iterate over these until one of the buckets is able to return an item. The underlying datastructure is a ``dict``, so the order is ignored here.h:jh;jh@hhB}rs(hD]hE]hF]hG]hI]uhKKhLhh4]rt(hUXThe get operation will iterate over these until one of the buckets is able to return an item. The underlying datastructure is a rurv}rw(h9XThe get operation will iterate over these until one of the buckets is able to return an item. The underlying datastructure is a h:jqubh)rx}ry(h9X``dict``hB}rz(hD]hE]hF]hG]hI]uh:jqh4]r{hUXdictr|r}}r~(h9Uh:jxubah@hubhUX, so the order is ignored here.rr}r(h9X, so the order is ignored here.h:jqubeubcdocutils.nodes field_list r)r}r(h9Uh:jh;Nh@U field_listrhB}r(hD]hE]hF]hG]hI]uhKNhLhh4]rcdocutils.nodes field r)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]r(cdocutils.nodes field_name r)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]rhUX Parametersrr}r(h9Uh:jubah@U field_namerubcdocutils.nodes field_body r)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]rh)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]r(cdocutils.nodes strong r)r}r(h9X task_registryhB}r(hD]hE]hF]hG]hI]uh:jh4]rhUX task_registryrr}r(h9Uh:jubah@UstrongrubhUX -- rr}r(h9Uh:jubhUXHThe task registry used to get the task type class for a given task name.rr}r(h9XHThe task registry used to get the task type class for a given task name.rh:jubeh@hubah@U field_bodyrubeh@Ufieldrubaubha)r}r(h9Uh:jh;X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/buckets.py:docstring of celery.worker.buckets.TaskBucket.add_bucket_for_typerh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgX?add_bucket_for_type() (celery.worker.buckets.TaskBucket method)h"UtrauhKNhLhh4]ubhn)r}r(h9Uh:jh;jh@hqhB}r(hshtXpyhG]hF]hD]hE]hI]huXmethodrhwjuhKNhLhh4]r(hy)r}r(h9X)TaskBucket.add_bucket_for_type(task_name)h:jh;h|h@h}hB}r(hG]rh"ahhh@hdhB}r?(hG]hF]hD]hE]hI]Uentries]r@(hgX/get() (celery.worker.buckets.TaskBucket method)h'UtrAauhKNhLhh4]ubhn)rB}rC(h9Uh:jh;j>h@hqhB}rD(hshtXpyhG]hF]hD]hE]hI]huXmethodrEhwjEuhKNhLhh4]rF(hy)rG}rH(h9X(TaskBucket.get(block=True, timeout=None)h:jBh;h|h@h}hB}rI(hG]rJh'ahhh@hhB}rp(hD]hE]hF]hG]hI]uhKKhLhh4]rqhUX1Retrive the task from the first available bucket.rrrs}rt(h9joh:jmubaubh)ru}rv(h9XRAvailable as in, there is an item in the queue and you can consume tokens from it.rwh:jih;j>h@hhB}rx(hD]hE]hF]hG]hI]uhKKhLhh4]ryhUXRAvailable as in, there is an item in the queue and you can consume tokens from it.rzr{}r|(h9jwh:juubaubeubeubha)r}}r~(h9Uh:jh;X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/buckets.py:docstring of celery.worker.buckets.TaskBucket.get_bucket_for_typerh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgX?get_bucket_for_type() (celery.worker.buckets.TaskBucket method)hUtrauhKNhLhh4]ubhn)r}r(h9Uh:jh;jh@hqhB}r(hshtXpyhG]hF]hD]hE]hI]huXmethodrhwjuhKNhLhh4]r(hy)r}r(h9X)TaskBucket.get_bucket_for_type(task_name)h:jh;h|h@h}hB}r(hG]rhahhinit_with_registry() (celery.worker.buckets.TaskBucket method)hUtrauhKNhLhh4]ubhn)r}r(h9Uh:jh;jh@hqhB}r(hshtXpyhG]hF]hD]hE]hI]huXmethodrhwjuhKNhLhh4]r(hy)r}r(h9XTaskBucket.init_with_registry()h:jh;h|h@h}hB}r(hG]rhahh(hD]hE]hF]hG]hI]uhKNhLhh4]r?h)r@}rA(h9XIPut a :class:`~celery.worker.job.TaskRequest` into the appropiate bucket.h:j<h;jh@hhB}rB(hD]hE]hF]hG]hI]uhKKhLhh4]rC(hUXPut a rDrE}rF(h9XPut a h:j@ubh)rG}rH(h9X':class:`~celery.worker.job.TaskRequest`rIh:j@h;Nh@hhB}rJ(UreftypeXclasshljhXcelery.worker.job.TaskRequestU refdomainXpyrKhG]hF]U refexplicithD]hE]hI]hhhjhhuhKNh4]rLh)rM}rN(h9jIhB}rO(hD]hE]rP(hjKXpy-classrQehF]hG]hI]uh:jGh4]rRhUX TaskRequestrSrT}rU(h9Uh:jMubah@hubaubhUX into the appropiate bucket.rVrW}rX(h9X into the appropiate bucket.h:j@ubeubaubeubha)rY}rZ(h9Uh:jh;X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/buckets.py:docstring of celery.worker.buckets.TaskBucket.put_nowaitr[h@hdhB}r\(hG]hF]hD]hE]hI]Uentries]r](hgX6put_nowait() (celery.worker.buckets.TaskBucket method)hUtr^auhKNhLhh4]ubhn)r_}r`(h9Uh:jh;j[h@hqhB}ra(hshtXpyhG]hF]hD]hE]hI]huXmethodrbhwjbuhKNhLhh4]rc(hy)rd}re(h9XTaskBucket.put_nowait(request)h:j_h;h|h@h}hB}rf(hG]rghahhr?}r@(h9Uh:j:ubaubh)rA}rB(h9Uh:j"h;h|h@hhB}rC(hD]hE]hF]hG]hI]uhKNhLhh4]rD(h)rE}rF(h9X fill_ratehB}rG(hD]hE]hF]hG]hI]uh:jAh4]rHhUX fill_raterIrJ}rK(h9Uh:jEubah@hubh)rL}rM(h9X queue=NonehB}rN(hD]hE]hF]hG]hI]uh:jAh4]rOhUX queue=NonerPrQ}rR(h9Uh:jLubah@hubh)rS}rT(h9X capacity=1hB}rU(hD]hE]hF]hG]hI]uh:jAh4]rVhUX capacity=1rWrX}rY(h9Uh:jSubah@hubeubeubh)rZ}r[(h9Uh:jh;h|h@hhB}r\(hD]hE]hF]hG]hI]uhKNhLhh4]r](h)r^}r_(h9X'Queue with rate limited get operations.r`h:jZh;X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/buckets.py:docstring of celery.worker.buckets.TokenBucketQueuerah@hhB}rb(hD]hE]hF]hG]hI]uhKKhLhh4]rchUX'Queue with rate limited get operations.rdre}rf(h9j`h:j^ubaubh)rg}rh(h9XOThis uses the token bucket algorithm to rate limit the queue on get operations.rih:jZh;jah@hhB}rj(hD]hE]hF]hG]hI]uhKKhLhh4]rkhUXOThis uses the token bucket algorithm to rate limit the queue on get operations.rlrm}rn(h9jih:jgubaubj)ro}rp(h9Uh:jZh;Nh@jhB}rq(hD]hE]hF]hG]hI]uhKNhLhh4]rrj)rs}rt(h9UhB}ru(hD]hE]hF]hG]hI]uh:joh4]rv(j)rw}rx(h9UhB}ry(hD]hE]hF]hG]hI]uh:jsh4]rzhUX Parametersr{r|}r}(h9Uh:jwubah@jubj)r~}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jsh4]rcdocutils.nodes bullet_list r)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:j~h4]r(cdocutils.nodes list_item r)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]rh)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]r(j)r}r(h9X fill_ratehB}r(hD]hE]hF]hG]hI]uh:jh4]rhUX fill_raterr}r(h9Uh:jubah@jubhUX -- rr}r(h9Uh:jubhUX;The rate in tokens/second that the bucket will be refilled.rr}r(h9X;The rate in tokens/second that the bucket will be refilled.rh:jubeh@hubah@U list_itemrubj)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]rh)r}r(h9UhB}r(hD]hE]hF]hG]hI]uh:jh4]r(j)r}r(h9XcapacityhB}r(hD]hE]hF]hG]hI]uh:jh4]rhUXcapacityrr}r(h9Uh:jubah@jubhUX -- rr}r(h9Uh:jubhUX5Maximum number of tokens in the bucket. Default is 1.rr}r(h9X5Maximum number of tokens in the bucket. Default is 1.rh:jubeh@hubah@jubeh@U bullet_listrubah@jubeh@jubaubha)r}r(h9Uh:jZh;X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/buckets.py:docstring of celery.worker.buckets.TokenBucketQueue.RateLimitExceededrh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgX"TokenBucketQueue.RateLimitExceededrh UtrauhKNhLhh4]ubhn)r}r(h9Uh:jZh;jh@hqhB}r(hshtXpyhG]hF]hD]hE]hI]huX exceptionrhwjuhKNhLhh4]r(hy)r}r(h9X"TokenBucketQueue.RateLimitExceededh:jh;h|h@h}hB}r(hG]rh ahh}r?(h9X(TokenBucketQueue.expected_time(tokens=1)h:j9h;h|h@h}hB}r@(hG]rAhahhh;h|h@hhB}rI(hD]hE]hF]hG]hI]uhKNhLhh4]rJhUXTokenBucketQueue.rKrL}rM(h9Uh:jGubaubh)rN}rO(h9X expected_timeh:j>h;h|h@hhB}rP(hD]hE]hF]hG]hI]uhKNhLhh4]rQhUX expected_timerRrS}rT(h9Uh:jNubaubh)rU}rV(h9Uh:j>h;h|h@hhB}rW(hD]hE]hF]hG]hI]uhKNhLhh4]rXh)rY}rZ(h9Xtokens=1hB}r[(hD]hE]hF]hG]hI]uh:jUh4]r\hUXtokens=1r]r^}r_(h9Uh:jYubah@hubaubeubh)r`}ra(h9Uh:j9h;h|h@hhB}rb(hD]hE]hF]hG]hI]uhKNhLhh4]rch)rd}re(h9XJReturns the expected time in seconds when a new token should be available.rfh:j`h;j5h@hhB}rg(hD]hE]hF]hG]hI]uhKKhLhh4]rhhUXJReturns the expected time in seconds when a new token should be available.rirj}rk(h9jfh:jdubaubaubeubha)rl}rm(h9Uh:jZh;X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/buckets.py:docstring of celery.worker.buckets.TokenBucketQueue.getrnh@hdhB}ro(hG]hF]hD]hE]hI]Uentries]rp(hgX5get() (celery.worker.buckets.TokenBucketQueue method)hUtrqauhKNhLhh4]ubhn)rr}rs(h9Uh:jZh;jnh@hqhB}rt(hshtXpyruhG]hF]hD]hE]hI]huXmethodrvhwjvuhKNhLhh4]rw(hy)rx}ry(h9X TokenBucketQueue.get(block=True)h:jrh;h|h@h}hB}rz(hG]r{hahh}r?(h9Uh:j2h;jh@jhB}r@(hD]hE]hF]hG]hI]uhKNhLhh4]rAj)rB}rC(h9UhB}rD(hD]hE]hF]hG]hI]uh:j>h4]rE(j)rF}rG(h9UhB}rH(hD]hE]hF]hG]hI]uh:jBh4]rIhUXRaisesrJrK}rL(h9Uh:jFubah@jubj)rM}rN(h9UhB}rO(hD]hE]hF]hG]hI]uh:jBh4]rPj)rQ}rR(h9UhB}rS(hD]hE]hF]hG]hI]uh:jMh4]rT(j)rU}rV(h9UhB}rW(hD]hE]hF]hG]hI]uh:jQh4]rXh)rY}rZ(h9UhB}r[(hD]hE]hF]hG]hI]uh:jUh4]r\(h)r]}r^(h9UhB}r_(UreftypejU reftargetXRateLimitExceededr`U refdomainjhG]hF]U refexplicithD]hE]hI]uh:jYh4]raj)rb}rc(h9j`hB}rd(hD]hE]hF]hG]hI]uh:j]h4]rehUXRateLimitExceededrfrg}rh(h9Uh:jbubah@jubah@hubhUX -- rirj}rk(h9Uh:jYubhUX[If a token could not be consumed from the token bucket (consuming from the queue too fast).rlrm}rn(h9X[If a token could not be consumed from the token bucket (consuming from the queue too fast).roh:jYubeh@hubah@jubj)rp}rq(h9UhB}rr(hD]hE]hF]hG]hI]uh:jQh4]rsh)rt}ru(h9UhB}rv(hD]hE]hF]hG]hI]uh:jph4]rw(h)rx}ry(h9UhB}rz(UreftypejU reftargetX Queue.Emptyr{U refdomainjhG]hF]U refexplicithD]hE]hI]uh:jth4]r|j)r}}r~(h9j{hB}r(hD]hE]hF]hG]hI]uh:jxh4]rhUX Queue.Emptyrr}r(h9Uh:j}ubah@jubah@hubhUX -- rr}r(h9Uh:jtubhUX(If an item is not immediately available.rr}r(h9X(If an item is not immediately available.rh:jtubeh@hubah@jubeh@jubah@jubeh@jubaubh)r}r(h9X(Also see :meth:`Queue.Queue.get_nowait`.h:j2h;jh@hhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]r(hUX Also see rr}r(h9X Also see h:jubh)r}r(h9X:meth:`Queue.Queue.get_nowait`rh:jh;Nh@hhB}r(UreftypeXmethhljhXQueue.Queue.get_nowaitU refdomainXpyrhG]hF]U refexplicithD]hE]hI]hhhXTokenBucketQueuehhuhKNh4]rh)r}r(h9jhB}r(hD]hE]r(hjXpy-methrehF]hG]hI]uh:jh4]rhUXQueue.Queue.get_nowait()rr}r(h9Uh:jubah@hubaubhUX.r}r(h9X.h:jubeubeubeubha)r}r(h9Uh:jZh;Nh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgX8items (celery.worker.buckets.TokenBucketQueue attribute)hUtrauhKNhLhh4]ubhn)r}r(h9Uh:jZh;Nh@hqhB}r(hshtXpyhG]hF]hD]hE]hI]huX attributerhwjuhKNhLhh4]r(hy)r}r(h9XTokenBucketQueue.itemsh:jh;h|h@h}hB}r(hG]rhahh(hD]hE]hF]hG]hI]uhKNhLhh4]r?hUX put_nowaitr@rA}rB(h9Uh:j<ubaubh)rC}rD(h9Uh:j+h;h|h@hhB}rE(hD]hE]hF]hG]hI]uhKNhLhh4]rFh)rG}rH(h9XitemhB}rI(hD]hE]hF]hG]hI]uh:jCh4]rJhUXitemrKrL}rM(h9Uh:jGubah@hubaubeubh)rN}rO(h9Uh:j%h;h|h@hhB}rP(hD]hE]hF]hG]hI]uhKNhLhh4]rQ(h)rR}rS(h9X,Put an item into the queue without blocking.rTh:jNh;j!h@hhB}rU(hD]hE]hF]hG]hI]uhKKhLhh4]rVhUX,Put an item into the queue without blocking.rWrX}rY(h9jTh:jRubaubj)rZ}r[(h9Uh:jNh;j!h@jhB}r\(hD]hE]hF]hG]hI]uhKNhLhh4]r]j)r^}r_(h9UhB}r`(hD]hE]hF]hG]hI]uh:jZh4]ra(j)rb}rc(h9UhB}rd(hD]hE]hF]hG]hI]uh:j^h4]re(hUXRaisesrfrg}rh(h9Uh:jbubhUX ri}rj(h9Uh:jbubh)rk}rl(h9UhB}rm(UreftypejU reftargetX Queue.FullrnU refdomainj(hG]hF]U refexplicithD]hE]hI]uh:jbh4]rohUX Queue.Fullrprq}rr(h9jnh:jkubah@hubeh@jubj)rs}rt(h9UhB}ru(hD]hE]hF]hG]hI]uh:j^h4]rvh)rw}rx(h9UhB}ry(hD]hE]hF]hG]hI]uh:jsh4]rzhUX,If a free slot is not immediately available.r{r|}r}(h9X,If a free slot is not immediately available.r~h:jwubah@hubah@jubeh@jubaubh)r}r(h9X'Also see :meth:`Queue.Queue.put_nowait`rh:jNh;j!h@hhB}r(hD]hE]hF]hG]hI]uhKKhLhh4]r(hUX Also see rr}r(h9X Also see h:jubh)r}r(h9X:meth:`Queue.Queue.put_nowait`rh:jh;Nh@hhB}r(UreftypeXmethhljhXQueue.Queue.put_nowaitU refdomainXpyrhG]hF]U refexplicithD]hE]hI]hhhXTokenBucketQueuehhuhKNh4]rh)r}r(h9jhB}r(hD]hE]r(hjXpy-methrehF]hG]hI]uh:jh4]rhUXQueue.Queue.put_nowait()rr}r(h9Uh:jubah@hubaubeubeubeubha)r}r(h9Uh:jZh;X/var/build/user_builds/celery/checkouts/2.1-archived/celery/worker/buckets.py:docstring of celery.worker.buckets.TokenBucketQueue.qsizerh@hdhB}r(hG]hF]hD]hE]hI]Uentries]r(hgX7qsize() (celery.worker.buckets.TokenBucketQueue method)h UtrauhKNhLhh4]ubhn)r}r(h9Uh:jZh;jh@hqhB}r(hshtXpyhG]hF]hD]hE]hI]huXmethodrhwjuhKNhLhh4]r(hy)r}r(h9XTokenBucketQueue.qsize()h:jh;h|h@h}hB}r(hG]rh ahh (hD]hE]hF]hG]hI]uhKNhLhh4]ubeubh)r? }r@ (h9Uh:j h;h|h@hhB}rA (hD]hE]hF]hG]hI]uhKNhLhh4]rB (h)rC }rD (h9X.chain.from_iterable(iterable) --> chain objectrE h:j? h;j h@hhB}rF (hD]hE]hF]hG]hI]uhKKhLhh4]rG hUX.chain.from_iterable(iterable) --> chain objectrH rI }rJ (h9jE h:jC ubaubh)rK }rL (h9XUAlternate chain() contructor taking a single iterable argument that evaluates lazily.rM h:j? h;j h@hhB}rN (hD]hE]hF]hG]hI]uhKKhLhh4]rO hUXUAlternate chain() contructor taking a single iterable argument that evaluates lazily.rP rQ }rR (h9jM h:jK ubaubeubeubeubah9UU transformerrS NU footnote_refsrT }rU UrefnamesrV }rW Usymbol_footnotesrX ]rY Uautofootnote_refsrZ ]r[ Usymbol_footnote_refsr\ ]r] U citationsr^ ]r_ hLhU current_liner` NUtransform_messagesra ]rb cdocutils.nodes system_message rc )rd }re (h9UhB}rf (hD]UlevelKhG]hF]Usourceh\hE]hI]UlineKUtypeUINFOrg uh4]rh h)ri }rj (h9UhB}rk (hD]hE]hF]hG]hI]uh:jd h4]rl hUXBHyperlink target "module-celery.worker.buckets" is not referenced.rm rn }ro (h9Uh:ji ubah@hubah@Usystem_messagerp ubaUreporterrq NUid_startrr KU autofootnotesrs ]rt U citation_refsru }rv Uindirect_targetsrw ]rx Usettingsry (cdocutils.frontend Values rz or{ }r| (Ufootnote_backlinksr} KUrecord_dependenciesr~ NU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhRNUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr UUTF-8r U_sourcer Ug/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.worker.buckets.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr j Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (hj"hjhjh jBh jh jh jh j_h2cdocutils.nodes topic r )r }r (h9Uh:h7h;h>h@Utopicr hB}r (hD]hE]r (Ucontentsr Ulocalr ehF]hG]r h2ahI]r hauhKKhLhh4]r cdocutils.nodes pending r )r }r (h9X.. contents:: :local:h:j U transformr cdocutils.transforms.parts Contents r Udetailsr }r UlocalNsh@Upendingr hB}r (hD]hE]hF]hG]hI]uh4]ubaubhjhjhj>hj!hjhjhjh3h7hj&hjhjdhjhjxhjh`hZhjhjh jh!j$ h"jh#hh$hzhjh%j+h&jh'jGh(juUsubstitution_namesr }r h@hLhB}r (hD]hG]hF]Usourceh>hE]hI]uU footnotesr ]r Urefidsr }r ub.PKYDDd<<Jcelery-2.1-archived/.doctrees/internals/reference/celery.db.models.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery.db.models.Task.idqXcelery.db.models.Task.statusqX"celery.db.models.TaskSet.date_doneqXcelery.db.models.TaskSetq Xcelery.db.models.Task.task_idq Xcelery.db.models.TaskSet.resultq Xcelery.db.models.Task.to_dictq Xcelery.db.models.Taskq Xcelery.db.models.Task.tracebackqX$sqlalchemy models - celery.db.modelsqNX celery.db.models.TaskSet.to_dictqXcelery.db.models.TaskSet.idqXcelery.db.models.Task.resultqXcelery.db.models.Task.date_doneqUcontentsqNX#celery.db.models.TaskSet.taskset_idquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h h h h hhhU"sqlalchemy-models-celery-db-modelsqhhhhhhhhhUcontentsq hhuUchildrenq!]q"cdocutils.nodes section q#)q$}q%(U rawsourceq&UUparentq'hUsourceq(cdocutils.nodes reprunicode q)Xb/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.db.models.rstq*q+}q,bUtagnameq-Usectionq.U attributesq/}q0(Udupnamesq1]Uclassesq2]Ubackrefsq3]Uidsq4]q5haUnamesq6]q7hauUlineq8KUdocumentq9hh!]q:(cdocutils.nodes title q;)q<}q=(h&X$SQLAlchemy Models - celery.db.modelsq>h'h$h(h+h-Utitleq?h/}q@(h1]h2]h3]h4]h6]uh8Kh9hh!]qAcdocutils.nodes Text qBX$SQLAlchemy Models - celery.db.modelsqCqD}qE(h&h>h'hqIh-UtargetqJh/}qK(h1]h4]qLXmodule-celery.db.modelsqMah3]Uismodh2]h6]uh8Kh9hh!]ubcsphinx.addnodes index qN)qO}qP(h&Uh'h$h(hIh-UindexqQh/}qR(h4]h3]h1]h2]h6]Uentries]qS(UsingleqTXcelery.db.models (module)Xmodule-celery.db.modelsUtqUauh8Kh9hh!]ubhN)qV}qW(h&Uh'h$h(Nh-hQh/}qX(h4]h3]h1]h2]h6]Uentries]qY(hTX Task (class in celery.db.models)h UtqZauh8Nh9hh!]ubcsphinx.addnodes desc q[)q\}q](h&Uh'h$h(Nh-Udescq^h/}q_(Unoindexq`UdomainqaXpyh4]h3]h1]h2]h6]UobjtypeqbXclassqcUdesctypeqdhcuh8Nh9hh!]qe(csphinx.addnodes desc_signature qf)qg}qh(h&X Task(task_id)h'h\h(U qih-Udesc_signatureqjh/}qk(h4]qlh aUmoduleqmh)Xcelery.db.modelsqnqo}qpbh3]h1]h2]h6]qqh aUfullnameqrXTaskqsUclassqtUUfirstquuh8Nh9hh!]qv(csphinx.addnodes desc_annotation qw)qx}qy(h&Xclass h'hgh(hih-Udesc_annotationqzh/}q{(h1]h2]h3]h4]h6]uh8Nh9hh!]q|hBXclass q}q~}q(h&Uh'hxubaubcsphinx.addnodes desc_addname q)q}q(h&Xcelery.db.models.h'hgh(hih-U desc_addnameqh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhBXcelery.db.models.qq}q(h&Uh'hubaubcsphinx.addnodes desc_name q)q}q(h&hsh'hgh(hih-U desc_nameqh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhBXTaskqq}q(h&Uh'hubaubcsphinx.addnodes desc_parameterlist q)q}q(h&Uh'hgh(hih-Udesc_parameterlistqh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qcsphinx.addnodes desc_parameter q)q}q(h&Xtask_idh/}q(h1]h2]h3]h4]h6]uh'hh!]qhBXtask_idqq}q(h&Uh'hubah-Udesc_parameterqubaubeubcsphinx.addnodes desc_content q)q}q(h&Uh'h\h(hih-U desc_contentqh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]q(cdocutils.nodes paragraph q)q}q(h&XTask result/status.qh'hh(Xk/var/build/user_builds/celery/checkouts/2.1-archived/celery/db/models.py:docstring of celery.db.models.Taskqh-U paragraphqh/}q(h1]h2]h3]h4]h6]uh8Kh9hh!]qhBXTask result/status.qq}q(h&hh'hubaubhN)q}q(h&Uh'hh(Nh-hQh/}q(h4]h3]h1]h2]h6]Uentries]q(hTX+date_done (celery.db.models.Task attribute)hUtqauh8Nh9hh!]ubh[)q}q(h&Uh'hh(Nh-h^h/}q(h`haXpyh4]h3]h1]h2]h6]hbX attributeqhdhuh8Nh9hh!]q(hf)q}q(h&XTask.date_doneh'hh(hih-hjh/}q(h4]qhahmh)Xcelery.db.modelsqq}qbh3]h1]h2]h6]qhahrXTask.date_donehthshuuh8Nh9hh!]qh)q}q(h&X date_doneh'hh(hih-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhBX date_doneqɅq}q(h&Uh'hubaubaubh)q}q(h&Uh'hh(hih-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)q}q(h&Uh'hh(Nh-hQh/}q(h4]h3]h1]h2]h6]Uentries]q(hTX$id (celery.db.models.Task attribute)hUtqauh8Nh9hh!]ubh[)q}q(h&Uh'hh(Nh-h^h/}q(h`haXpyh4]h3]h1]h2]h6]hbX attributeqhdhuh8Nh9hh!]q(hf)q}q(h&XTask.idh'hh(hih-hjh/}q(h4]qhahmh)Xcelery.db.modelsq݅q}qbh3]h1]h2]h6]qhahrXTask.idhthshuuh8Nh9hh!]qh)q}q(h&Xidh'hh(hih-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]qhBXidq慁q}q(h&Uh'hubaubaubh)q}q(h&Uh'hh(hih-hh/}q(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)q}q(h&Uh'hh(Nh-hQh/}q(h4]h3]h1]h2]h6]Uentries]q(hTX(result (celery.db.models.Task attribute)hUtqauh8Nh9hh!]ubh[)q}q(h&Uh'hh(Nh-h^h/}q(h`haXpyh4]h3]h1]h2]h6]hbX attributeqhdhuh8Nh9hh!]q(hf)q}q(h&X Task.resulth'hh(hih-hjh/}q(h4]qhahmh)Xcelery.db.modelsqq}qbh3]h1]h2]h6]qhahrX Task.resulththshuuh8Nh9hh!]qh)q}r(h&Xresulth'hh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBXresultrr}r(h&Uh'hubaubaubh)r}r(h&Uh'hh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)r }r (h&Uh'hh(Nh-hQh/}r (h4]h3]h1]h2]h6]Uentries]r (hTX(status (celery.db.models.Task attribute)hUtr auh8Nh9hh!]ubh[)r}r(h&Uh'hh(Nh-h^h/}r(h`haXpyh4]h3]h1]h2]h6]hbX attributerhdjuh8Nh9hh!]r(hf)r}r(h&X Task.statush'jh(hih-hjh/}r(h4]rhahmh)Xcelery.db.modelsrr}rbh3]h1]h2]h6]rhahrX Task.statushthshuuh8Nh9hh!]rh)r}r(h&Xstatush'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBXstatusr r!}r"(h&Uh'jubaubaubh)r#}r$(h&Uh'jh(hih-hh/}r%(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)r&}r'(h&Uh'hh(Nh-hQh/}r((h4]h3]h1]h2]h6]Uentries]r)(hTX)task_id (celery.db.models.Task attribute)h Utr*auh8Nh9hh!]ubh[)r+}r,(h&Uh'hh(Nh-h^h/}r-(h`haXpyh4]h3]h1]h2]h6]hbX attributer.hdj.uh8Nh9hh!]r/(hf)r0}r1(h&X Task.task_idh'j+h(hih-hjh/}r2(h4]r3h ahmh)Xcelery.db.modelsr4r5}r6bh3]h1]h2]h6]r7h ahrX Task.task_idhthshuuh8Nh9hh!]r8h)r9}r:(h&Xtask_idh'j0h(hih-hh/}r;(h1]h2]h3]h4]h6]uh8Nh9hh!]r<hBXtask_idr=r>}r?(h&Uh'j9ubaubaubh)r@}rA(h&Uh'j+h(hih-hh/}rB(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)rC}rD(h&Uh'hh(Nh-hQh/}rE(h4]h3]h1]h2]h6]Uentries]rF(hTX(to_dict() (celery.db.models.Task method)h UtrGauh8Nh9hh!]ubh[)rH}rI(h&Uh'hh(Nh-h^h/}rJ(h`haXpyh4]h3]h1]h2]h6]hbXmethodrKhdjKuh8Nh9hh!]rL(hf)rM}rN(h&XTask.to_dict()h'jHh(hih-hjh/}rO(h4]rPh ahmh)Xcelery.db.modelsrQrR}rSbh3]h1]h2]h6]rTh ahrX Task.to_dicththshuuh8Nh9hh!]rU(h)rV}rW(h&Xto_dicth'jMh(hih-hh/}rX(h1]h2]h3]h4]h6]uh8Nh9hh!]rYhBXto_dictrZr[}r\(h&Uh'jVubaubh)r]}r^(h&Uh'jMh(hih-hh/}r_(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubh)r`}ra(h&Uh'jHh(hih-hh/}rb(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)rc}rd(h&Uh'hh(Nh-hQh/}re(h4]h3]h1]h2]h6]Uentries]rf(hTX+traceback (celery.db.models.Task attribute)hUtrgauh8Nh9hh!]ubh[)rh}ri(h&Uh'hh(Nh-h^h/}rj(h`haXpyh4]h3]h1]h2]h6]hbX attributerkhdjkuh8Nh9hh!]rl(hf)rm}rn(h&XTask.tracebackh'jhh(hih-hjh/}ro(h4]rphahmh)Xcelery.db.modelsrqrr}rsbh3]h1]h2]h6]rthahrXTask.tracebackhthshuuh8Nh9hh!]ruh)rv}rw(h&X tracebackh'jmh(hih-hh/}rx(h1]h2]h3]h4]h6]uh8Nh9hh!]ryhBX tracebackrzr{}r|(h&Uh'jvubaubaubh)r}}r~(h&Uh'jhh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubeubeubhN)r}r(h&Uh'h$h(Nh-hQh/}r(h4]h3]h1]h2]h6]Uentries]r(hTX#TaskSet (class in celery.db.models)h Utrauh8Nh9hh!]ubh[)r}r(h&Uh'h$h(Nh-h^h/}r(h`haXpyh4]h3]h1]h2]h6]hbXclassrhdjuh8Nh9hh!]r(hf)r}r(h&XTaskSet(taskset_id, result)h'jh(hih-hjh/}r(h4]rh ahmh)Xcelery.db.modelsrr}rbh3]h1]h2]h6]rh ahrXTaskSetrhtUhuuh8Nh9hh!]r(hw)r}r(h&Xclass h'jh(hih-hzh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBXclass rr}r(h&Uh'jubaubh)r}r(h&Xcelery.db.models.h'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBXcelery.db.models.rr}r(h&Uh'jubaubh)r}r(h&jh'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBXTaskSetrr}r(h&Uh'jubaubh)r}r(h&Uh'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]r(h)r}r(h&X taskset_idh/}r(h1]h2]h3]h4]h6]uh'jh!]rhBX taskset_idrr}r(h&Uh'jubah-hubh)r}r(h&Xresulth/}r(h1]h2]h3]h4]h6]uh'jh!]rhBXresultrr}r(h&Uh'jubah-hubeubeubh)r}r(h&Uh'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]r(h)r}r(h&XTaskSet resultrh'jh(Xn/var/build/user_builds/celery/checkouts/2.1-archived/celery/db/models.py:docstring of celery.db.models.TaskSetrh-hh/}r(h1]h2]h3]h4]h6]uh8Kh9hh!]rhBXTaskSet resultrr}r(h&jh'jubaubhN)r}r(h&Uh'jh(Nh-hQh/}r(h4]h3]h1]h2]h6]Uentries]r(hTX.date_done (celery.db.models.TaskSet attribute)hUtrauh8Nh9hh!]ubh[)r}r(h&Uh'jh(Nh-h^h/}r(h`haXpyh4]h3]h1]h2]h6]hbX attributerhdjuh8Nh9hh!]r(hf)r}r(h&XTaskSet.date_doneh'jh(hih-hjh/}r(h4]rhahmh)Xcelery.db.modelsrr}rbh3]h1]h2]h6]rhahrXTaskSet.date_donehtjhuuh8Nh9hh!]rh)r}r(h&X date_doneh'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBX date_donerr}r(h&Uh'jubaubaubh)r}r(h&Uh'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)r}r(h&Uh'jh(Nh-hQh/}r(h4]h3]h1]h2]h6]Uentries]r(hTX'id (celery.db.models.TaskSet attribute)hUtrauh8Nh9hh!]ubh[)r}r(h&Uh'jh(Nh-h^h/}r(h`haXpyh4]h3]h1]h2]h6]hbX attributerhdjuh8Nh9hh!]r(hf)r}r(h&X TaskSet.idh'jh(hih-hjh/}r(h4]rhahmh)Xcelery.db.modelsrr}rbh3]h1]h2]h6]rhahrX TaskSet.idhtjhuuh8Nh9hh!]rh)r}r(h&Xidh'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBXidrr}r(h&Uh'jubaubaubh)r}r(h&Uh'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)r}r(h&Uh'jh(Nh-hQh/}r(h4]h3]h1]h2]h6]Uentries]r(hTX+result (celery.db.models.TaskSet attribute)h Utrauh8Nh9hh!]ubh[)r}r(h&Uh'jh(Nh-h^h/}r (h`haXpyh4]h3]h1]h2]h6]hbX attributer hdj uh8Nh9hh!]r (hf)r }r (h&XTaskSet.resulth'jh(hih-hjh/}r(h4]rh ahmh)Xcelery.db.modelsrr}rbh3]h1]h2]h6]rh ahrXTaskSet.resulthtjhuuh8Nh9hh!]rh)r}r(h&Xresulth'j h(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]rhBXresultrr}r(h&Uh'jubaubaubh)r}r(h&Uh'jh(hih-hh/}r(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)r}r (h&Uh'jh(Nh-hQh/}r!(h4]h3]h1]h2]h6]Uentries]r"(hTX/taskset_id (celery.db.models.TaskSet attribute)hUtr#auh8Nh9hh!]ubh[)r$}r%(h&Uh'jh(Nh-h^h/}r&(h`haXpyh4]h3]h1]h2]h6]hbX attributer'hdj'uh8Nh9hh!]r((hf)r)}r*(h&XTaskSet.taskset_idh'j$h(hih-hjh/}r+(h4]r,hahmh)Xcelery.db.modelsr-r.}r/bh3]h1]h2]h6]r0hahrXTaskSet.taskset_idhtjhuuh8Nh9hh!]r1h)r2}r3(h&X taskset_idh'j)h(hih-hh/}r4(h1]h2]h3]h4]h6]uh8Nh9hh!]r5hBX taskset_idr6r7}r8(h&Uh'j2ubaubaubh)r9}r:(h&Uh'j$h(hih-hh/}r;(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubhN)r<}r=(h&Uh'jh(Nh-hQh/}r>(h4]h3]h1]h2]h6]Uentries]r?(hTX+to_dict() (celery.db.models.TaskSet method)hUtr@auh8Nh9hh!]ubh[)rA}rB(h&Uh'jh(Nh-h^h/}rC(h`haXpyh4]h3]h1]h2]h6]hbXmethodrDhdjDuh8Nh9hh!]rE(hf)rF}rG(h&XTaskSet.to_dict()rHh'jAh(hih-hjh/}rI(h4]rJhahmh)Xcelery.db.modelsrKrL}rMbh3]h1]h2]h6]rNhahrXTaskSet.to_dicthtjhuuh8Nh9hh!]rO(h)rP}rQ(h&Xto_dicth'jFh(hih-hh/}rR(h1]h2]h3]h4]h6]uh8Nh9hh!]rShBXto_dictrTrU}rV(h&Uh'jPubaubh)rW}rX(h&Uh'jFh(hih-hh/}rY(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubh)rZ}r[(h&Uh'jAh(hih-hh/}r\(h1]h2]h3]h4]h6]uh8Nh9hh!]ubeubeubeubeubah&UU transformerr]NU footnote_refsr^}r_Urefnamesr`}raUsymbol_footnotesrb]rcUautofootnote_refsrd]reUsymbol_footnote_refsrf]rgU citationsrh]rih9hU current_linerjNUtransform_messagesrk]rlcdocutils.nodes system_message rm)rn}ro(h&Uh/}rp(h1]UlevelKh4]h3]UsourcehIh2]h6]UlineKUtypeUINFOrquh!]rrh)rs}rt(h&Uh/}ru(h1]h2]h3]h4]h6]uh'jnh!]rvhBX=Hyperlink target "module-celery.db.models" is not referenced.rwrx}ry(h&Uh'jsubah-hubah-Usystem_messagerzubaUreporterr{NUid_startr|KU autofootnotesr}]r~U citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh?NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUb/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.db.models.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhjhj)h jh j0h j hjh hghjmh jMhjFhjhhhhhMhGh cdocutils.nodes topic r)r}r(h&Uh'h$h(h+h-Utopicrh/}r(h1]h2]r(UcontentsrUlocalreh3]h4]rh ah6]rhauh8Kh9hh!]rcdocutils.nodes pending r)r}r(h&X.. contents:: :local:h'jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh-Upendingrh/}r(h1]h2]h3]h4]h6]uh!]ubaubhh$uUsubstitution_namesr}rh-h9h/}r(h1]h4]h3]Usourceh+h2]h6]uU footnotesr]rUrefidsr}rub.PKYDDx99Qcelery-2.1-archived/.doctrees/internals/reference/celery.backends.mongodb.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X*backend: mongodb - celery.backends.mongodbqNX1celery.backends.mongodb.MongoBackend.mongodb_portqX$celery.backends.mongodb.MongoBackendqXcelery.backends.mongodb.Bunchq X4celery.backends.mongodb.MongoBackend.process_cleanupq X1celery.backends.mongodb.MongoBackend.mongodb_hostq X1celery.backends.mongodb.MongoBackend.mongodb_userq X5celery.backends.mongodb.MongoBackend.mongodb_passwordq X@celery.backends.mongodb.MongoBackend.mongodb_taskmeta_collectionqX5celery.backends.mongodb.MongoBackend.mongodb_databaseqX,celery.backends.mongodb.MongoBackend.cleanupqUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU'backend-mongodb-celery-backends-mongodbqhhhhh h h h h h h h h h hhhhhhhUcontentsquUchildrenq]qcdocutils.nodes section q)q }q!(U rawsourceq"UUparentq#hUsourceq$cdocutils.nodes reprunicode q%Xi/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.mongodb.rstq&q'}q(bUtagnameq)Usectionq*U attributesq+}q,(Udupnamesq-]Uclassesq.]Ubackrefsq/]Uidsq0]q1haUnamesq2]q3hauUlineq4KUdocumentq5hh]q6(cdocutils.nodes title q7)q8}q9(h"X*Backend: MongoDB - celery.backends.mongodbq:h#h h$h'h)Utitleq;h+}q<(h-]h.]h/]h0]h2]uh4Kh5hh]q=cdocutils.nodes Text q>X*Backend: MongoDB - celery.backends.mongodbq?q@}qA(h"h:h#h8ubaubcdocutils.nodes target qB)qC}qD(h"Uh#h h$U qEh)UtargetqFh+}qG(h-]h0]qHXmodule-celery.backends.mongodbqIah/]Uismodh.]h2]uh4Kh5hh]ubcsphinx.addnodes index qJ)qK}qL(h"Uh#h h$hEh)UindexqMh+}qN(h0]h/]h-]h.]h2]Uentries]qO(UsingleqPX celery.backends.mongodb (module)Xmodule-celery.backends.mongodbUtqQauh4Kh5hh]ubcdocutils.nodes paragraph qR)qS}qT(h"XMongoDB backend for celery.qUh#h h$Xt/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/mongodb.py:docstring of celery.backends.mongodbqVh)U paragraphqWh+}qX(h-]h.]h/]h0]h2]uh4Kh5hh]qYh>XMongoDB backend for celery.qZq[}q\(h"hUh#hSubaubhJ)q]}q^(h"Uh#h h$Nh)hMh+}q_(h0]h/]h-]h.]h2]Uentries]q`(hPX(Bunch (class in celery.backends.mongodb)h Utqaauh4Nh5hh]ubcsphinx.addnodes desc qb)qc}qd(h"Uh#h h$Nh)Udescqeh+}qf(UnoindexqgUdomainqhXpyh0]h/]h-]h.]h2]UobjtypeqiXclassqjUdesctypeqkhjuh4Nh5hh]ql(csphinx.addnodes desc_signature qm)qn}qo(h"X Bunch(**kw)h#hch$U qph)Udesc_signatureqqh+}qr(h0]qsh aUmoduleqth%Xcelery.backends.mongodbquqv}qwbh/]h-]h.]h2]qxh aUfullnameqyXBunchqzUclassq{UUfirstq|uh4Nh5hh]q}(csphinx.addnodes desc_annotation q~)q}q(h"Xclass h#hnh$hph)Udesc_annotationqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>Xclass qq}q(h"Uh#hubaubcsphinx.addnodes desc_addname q)q}q(h"Xcelery.backends.mongodb.h#hnh$hph)U desc_addnameqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>Xcelery.backends.mongodb.qq}q(h"Uh#hubaubcsphinx.addnodes desc_name q)q}q(h"hzh#hnh$hph)U desc_nameqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>XBunchqq}q(h"Uh#hubaubcsphinx.addnodes desc_parameterlist q)q}q(h"Uh#hnh$hph)Udesc_parameterlistqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qcsphinx.addnodes desc_parameter q)q}q(h"X**kwh+}q(h-]h.]h/]h0]h2]uh#hh]qh>X**kwqq}q(h"Uh#hubah)Udesc_parameterqubaubeubcsphinx.addnodes desc_content q)q}q(h"Uh#hch$hph)U desc_contentqh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)q}q(h"Uh#h h$Nh)hMh+}q(h0]h/]h-]h.]h2]Uentries]q(hPX/MongoBackend (class in celery.backends.mongodb)hUtqauh4Nh5hh]ubhb)q}q(h"Uh#h h$Nh)heh+}q(hghhXpyh0]h/]h-]h.]h2]hiXclassqhkhuh4Nh5hh]q(hm)q}q(h"XMongoBackend(*args, **kwargs)h#hh$hph)hqh+}q(h0]qhahth%Xcelery.backends.mongodbqq}qbh/]h-]h.]h2]qhahyX MongoBackendqh{Uh|uh4Nh5hh]q(h~)q}q(h"Xclass h#hh$hph)hh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>Xclass qŅq}q(h"Uh#hubaubh)q}q(h"Xcelery.backends.mongodb.h#hh$hph)hh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>Xcelery.backends.mongodb.q̅q}q(h"Uh#hubaubh)q}q(h"hh#hh$hph)hh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]qh>X MongoBackendqӅq}q(h"Uh#hubaubh)q}q(h"Uh#hh$hph)hh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]q(h)q}q(h"X*argsh+}q(h-]h.]h/]h0]h2]uh#hh]qh>X*argsqޅq}q(h"Uh#hubah)hubh)q}q(h"X**kwargsh+}q(h-]h.]h/]h0]h2]uh#hh]qh>X**kwargsq允q}q(h"Uh#hubah)hubeubeubh)q}q(h"Uh#hh$hph)hh+}q(h-]h.]h/]h0]h2]uh4Nh5hh]q(hJ)q}q(h"Uh#hh$X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/mongodb.py:docstring of celery.backends.mongodb.MongoBackend.cleanupqh)hMh+}q(h0]h/]h-]h.]h2]Uentries]q(hPX7cleanup() (celery.backends.mongodb.MongoBackend method)hUtqauh4Nh5hh]ubhb)q}q(h"Uh#hh$hh)heh+}q(hghhXpyh0]h/]h-]h.]h2]hiXmethodqhkhuh4Nh5hh]q(hm)q}q(h"XMongoBackend.cleanup()h#hh$hph)hqh+}q(h0]qhahth%Xcelery.backends.mongodbqq}qbh/]h-]h.]h2]qhahyXMongoBackend.cleanuph{hh|uh4Nh5hh]q(h)r}r(h"Xcleanuph#hh$hph)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>Xcleanuprr}r(h"Uh#jubaubh)r}r(h"Uh#hh$hph)hh+}r (h-]h.]h/]h0]h2]uh4Nh5hh]ubeubh)r }r (h"Uh#hh$hph)hh+}r (h-]h.]h/]h0]h2]uh4Nh5hh]r hR)r}r(h"XDelete expired metadata.rh#j h$hh)hWh+}r(h-]h.]h/]h0]h2]uh4Kh5hh]rh>XDelete expired metadata.rr}r(h"jh#jubaubaubeubhJ)r}r(h"Uh#hh$Nh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPXAmongodb_database (celery.backends.mongodb.MongoBackend attribute)hUtrauh4Nh5hh]ubhb)r}r(h"Uh#hh$Nh)heh+}r(hghhXpyh0]h/]h-]h.]h2]hiX attributerhkjuh4Nh5hh]r(hm)r }r!(h"XMongoBackend.mongodb_databaseh#jh$U r"h)hqh+}r#(h0]r$hahth%Xcelery.backends.mongodbr%r&}r'bh/]h-]h.]h2]r(hahyXMongoBackend.mongodb_databaseh{hh|uh4Nh5hh]r)(h)r*}r+(h"Xmongodb_databaseh#j h$j"h)hh+}r,(h-]h.]h/]h0]h2]uh4Nh5hh]r-h>Xmongodb_databaser.r/}r0(h"Uh#j*ubaubh~)r1}r2(h"X = 'celery'h#j h$j"h)hh+}r3(h-]h.]h/]h0]h2]uh4Nh5hh]r4h>X = 'celery'r5r6}r7(h"Uh#j1ubaubeubh)r8}r9(h"Uh#jh$j"h)hh+}r:(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)r;}r<(h"Uh#hh$Nh)hMh+}r=(h0]h/]h-]h.]h2]Uentries]r>(hPX=mongodb_host (celery.backends.mongodb.MongoBackend attribute)h Utr?auh4Nh5hh]ubhb)r@}rA(h"Uh#hh$Nh)heh+}rB(hghhXpyh0]h/]h-]h.]h2]hiX attributerChkjCuh4Nh5hh]rD(hm)rE}rF(h"XMongoBackend.mongodb_hosth#j@h$j"h)hqh+}rG(h0]rHh ahth%Xcelery.backends.mongodbrIrJ}rKbh/]h-]h.]h2]rLh ahyXMongoBackend.mongodb_hosth{hh|uh4Nh5hh]rM(h)rN}rO(h"X mongodb_hosth#jEh$j"h)hh+}rP(h-]h.]h/]h0]h2]uh4Nh5hh]rQh>X mongodb_hostrRrS}rT(h"Uh#jNubaubh~)rU}rV(h"X = 'localhost'h#jEh$j"h)hh+}rW(h-]h.]h/]h0]h2]uh4Nh5hh]rXh>X = 'localhost'rYrZ}r[(h"Uh#jUubaubeubh)r\}r](h"Uh#j@h$j"h)hh+}r^(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)r_}r`(h"Uh#hh$Nh)hMh+}ra(h0]h/]h-]h.]h2]Uentries]rb(hPXAmongodb_password (celery.backends.mongodb.MongoBackend attribute)h Utrcauh4Nh5hh]ubhb)rd}re(h"Uh#hh$Nh)heh+}rf(hghhXpyh0]h/]h-]h.]h2]hiX attributerghkjguh4Nh5hh]rh(hm)ri}rj(h"XMongoBackend.mongodb_passwordh#jdh$j"h)hqh+}rk(h0]rlh ahth%Xcelery.backends.mongodbrmrn}robh/]h-]h.]h2]rph ahyXMongoBackend.mongodb_passwordh{hh|uh4Nh5hh]rq(h)rr}rs(h"Xmongodb_passwordh#jih$j"h)hh+}rt(h-]h.]h/]h0]h2]uh4Nh5hh]ruh>Xmongodb_passwordrvrw}rx(h"Uh#jrubaubh~)ry}rz(h"X = Noneh#jih$j"h)hh+}r{(h-]h.]h/]h0]h2]uh4Nh5hh]r|h>X = Noner}r~}r(h"Uh#jyubaubeubh)r}r(h"Uh#jdh$j"h)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)r}r(h"Uh#hh$Nh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPX=mongodb_port (celery.backends.mongodb.MongoBackend attribute)hUtrauh4Nh5hh]ubhb)r}r(h"Uh#hh$Nh)heh+}r(hghhXpyh0]h/]h-]h.]h2]hiX attributerhkjuh4Nh5hh]r(hm)r}r(h"XMongoBackend.mongodb_porth#jh$j"h)hqh+}r(h0]rhahth%Xcelery.backends.mongodbrr}rbh/]h-]h.]h2]rhahyXMongoBackend.mongodb_porth{hh|uh4Nh5hh]r(h)r}r(h"X mongodb_porth#jh$j"h)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>X mongodb_portrr}r(h"Uh#jubaubh~)r}r(h"X = 27017h#jh$j"h)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>X = 27017rr}r(h"Uh#jubaubeubh)r}r(h"Uh#jh$j"h)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)r}r(h"Uh#hh$Nh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPXLmongodb_taskmeta_collection (celery.backends.mongodb.MongoBackend attribute)hUtrauh4Nh5hh]ubhb)r}r(h"Uh#hh$Nh)heh+}r(hghhXpyh0]h/]h-]h.]h2]hiX attributerhkjuh4Nh5hh]r(hm)r}r(h"X(MongoBackend.mongodb_taskmeta_collectionh#jh$j"h)hqh+}r(h0]rhahth%Xcelery.backends.mongodbrr}rbh/]h-]h.]h2]rhahyX(MongoBackend.mongodb_taskmeta_collectionh{hh|uh4Nh5hh]r(h)r}r(h"Xmongodb_taskmeta_collectionh#jh$j"h)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>Xmongodb_taskmeta_collectionrr}r(h"Uh#jubaubh~)r}r(h"X = 'celery_taskmeta'h#jh$j"h)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>X = 'celery_taskmeta'rr}r(h"Uh#jubaubeubh)r}r(h"Uh#jh$j"h)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)r}r(h"Uh#hh$Nh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPX=mongodb_user (celery.backends.mongodb.MongoBackend attribute)h Utrauh4Nh5hh]ubhb)r}r(h"Uh#hh$Nh)heh+}r(hghhXpyh0]h/]h-]h.]h2]hiX attributerhkjuh4Nh5hh]r(hm)r}r(h"XMongoBackend.mongodb_userh#jh$j"h)hqh+}r(h0]rh ahth%Xcelery.backends.mongodbrr}rbh/]h-]h.]h2]rh ahyXMongoBackend.mongodb_userh{hh|uh4Nh5hh]r(h)r}r(h"X mongodb_userh#jh$j"h)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>X mongodb_userrr}r(h"Uh#jubaubh~)r}r(h"X = Noneh#jh$j"h)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>X = Nonerr}r(h"Uh#jubaubeubh)r}r(h"Uh#jh$j"h)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubhJ)r}r(h"Uh#hh$Nh)hMh+}r(h0]h/]h-]h.]h2]Uentries]r(hPX?process_cleanup() (celery.backends.mongodb.MongoBackend method)h Utrauh4Nh5hh]ubhb)r}r(h"Uh#hh$Nh)heh+}r(hghhXpyh0]h/]h-]h.]h2]hiXmethodrhkjuh4Nh5hh]r(hm)r}r(h"XMongoBackend.process_cleanup()rh#jh$hph)hqh+}r(h0]rh ahth%Xcelery.backends.mongodbrr}rbh/]h-]h.]h2]rh ahyXMongoBackend.process_cleanuph{hh|uh4Nh5hh]r(h)r}r(h"Xprocess_cleanuph#jh$hph)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]rh>Xprocess_cleanuprr}r (h"Uh#jubaubh)r }r (h"Uh#jh$hph)hh+}r (h-]h.]h/]h0]h2]uh4Nh5hh]ubeubh)r }r(h"Uh#jh$hph)hh+}r(h-]h.]h/]h0]h2]uh4Nh5hh]ubeubeubeubeubah"UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh5hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r )r!}r"(h"Uh+}r#(h-]UlevelKh0]h/]UsourcehEh.]h2]UlineKUtypeUINFOr$uh]r%hR)r&}r'(h"Uh+}r((h-]h.]h/]h0]h2]uh#j!h]r)h>XDHyperlink target "module-celery.backends.mongodb" is not referenced.r*r+}r,(h"Uh#j&ubah)hWubah)Usystem_messager-ubaUreporterr.NUid_startr/KU autofootnotesr0]r1U citation_refsr2}r3Uindirect_targetsr4]r5Usettingsr6(cdocutils.frontend Values r7or8}r9(Ufootnote_backlinksr:KUrecord_dependenciesr;NU rfc_base_urlr<Uhttp://tools.ietf.org/html/r=U tracebackr>Upep_referencesr?NUstrip_commentsr@NU toc_backlinksrAUentryrBU language_coderCUenrDU datestamprENU report_levelrFKU _destinationrGNU halt_levelrHKU strip_classesrINh;NUerror_encoding_error_handlerrJUbackslashreplacerKUdebugrLNUembed_stylesheetrMUoutput_encoding_error_handlerrNUstrictrOU sectnum_xformrPKUdump_transformsrQNU docinfo_xformrRKUwarning_streamrSNUpep_file_url_templaterTUpep-%04drUUexit_status_levelrVKUconfigrWNUstrict_visitorrXNUcloak_email_addressesrYUtrim_footnote_reference_spacerZUenvr[NUdump_pseudo_xmlr\NUexpose_internalsr]NUsectsubtitle_xformr^U source_linkr_NUrfc_referencesr`NUoutput_encodingraUutf-8rbU source_urlrcNUinput_encodingrdU utf-8-sigreU_disable_configrfNU id_prefixrgUU tab_widthrhKUerror_encodingriUUTF-8rjU_sourcerkUi/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.mongodb.rstrlUgettext_compactrmU generatorrnNUdump_internalsroNU smart_quotesrpU pep_base_urlrqUhttp://www.python.org/dev/peps/rrUsyntax_highlightrsUlongrtUinput_encoding_error_handlerrujOUauto_id_prefixrvUidrwUdoctitle_xformrxUstrip_elements_with_classesryNU _config_filesrz]Ufile_insertion_enabledr{U raw_enabledr|KU dump_settingsr}NubUsymbol_footnote_startr~KUidsr}r(h jihjhhhh hIhCh jh jEh jh hnhjhj hhhcdocutils.nodes topic r)r}r(h"Uh#h h$h'h)Utopicrh+}r(h-]h.]r(UcontentsrUlocalreh/]h0]rhah2]rhauh4Kh5hh]rcdocutils.nodes pending r)r}r(h"X.. contents:: :local:h#jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh)Upendingrh+}r(h-]h.]h/]h0]h2]uh]ubaubuUsubstitution_namesr}rh)h5h+}r(h-]h0]h/]Usourceh'h.]h2]uU footnotesr]rUrefidsr}rub.PKYDDJBq  Fcelery-2.1-archived/.doctrees/internals/reference/celery.utils.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery.utils.mpromise.evaluateqXcelery.utils.fun_takes_kwargsqXcelery.utils.gen_unique_idqXcelery.utils.promiseq Xcelery.utils.padlistq Xcelery.utils.mpromiseq Xcelery.utils.instantiateq Ucontentsq NXcelery.utils.mpromise.evaluatedqXcelery.utils.kwdictqXcelery.utils.get_cls_by_nameqXcelery.utils.get_full_cls_nameqXcelery.utils.firstqXcelery.utils.truncate_textqXcelery.utils.promise.evaluateqXcelery.utils.abbrqXcelery.utils.noopqXcelery.utils.retry_over_timeqXcelery.utils.firstmethodqXcelery.utils.maybe_promiseqXcelery.utils.maybe_iso8601qXcelery.utils.abbrtaskqXcelery.utils.mattrgetterqXutilities - celery.utilsqNXcelery.utils.is_iterableqXcelery.utils.chunksqXcelery.utils.mitemgetterq Xcelery.utils.repeatlastq!uUsubstitution_defsq"}q#Uparse_messagesq$]q%Ucurrent_sourceq&NU decorationq'NUautofootnote_startq(KUnameidsq)}q*(hhhhhhh h h h h h h h h Ucontentsq+hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhUutilities-celery-utilsq,hhhhh h h!h!uUchildrenq-]q.cdocutils.nodes section q/)q0}q1(U rawsourceq2UUparentq3hUsourceq4cdocutils.nodes reprunicode q5X^/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.rstq6q7}q8bUtagnameq9Usectionq:U attributesq;}q<(Udupnamesq=]Uclassesq>]Ubackrefsq?]Uidsq@]qAh,aUnamesqB]qChauUlineqDKUdocumentqEhh-]qF(cdocutils.nodes title qG)qH}qI(h2XUtilities - celery.utilsqJh3h0h4h7h9UtitleqKh;}qL(h=]h>]h?]h@]hB]uhDKhEhh-]qMcdocutils.nodes Text qNXUtilities - celery.utilsqOqP}qQ(h2hJh3hHubaubcdocutils.nodes target qR)qS}qT(h2Uh3h0h4U qUh9UtargetqVh;}qW(h=]h@]qXXmodule-celery.utilsqYah?]Uismodh>]hB]uhDKhEhh-]ubcsphinx.addnodes index qZ)q[}q\(h2Uh3h0h4hUh9Uindexq]h;}q^(h@]h?]h=]h>]hB]Uentries]q_(Usingleq`Xcelery.utils (module)Xmodule-celery.utilsUtqaauhDKhEhh-]ubhZ)qb}qc(h2Uh3h0h4Nh9h]h;}qd(h@]h?]h=]h>]hB]Uentries]qe(h`Xabbr() (in module celery.utils)hUtqfauhDNhEhh-]ubcsphinx.addnodes desc qg)qh}qi(h2Uh3h0h4Nh9Udescqjh;}qk(UnoindexqlUdomainqmXpyh@]h?]h=]h>]hB]UobjtypeqnXfunctionqoUdesctypeqphouhDNhEhh-]qq(csphinx.addnodes desc_signature qr)qs}qt(h2Xabbr(S, max, ellipsis='...')h3hhh4U quh9Udesc_signatureqvh;}qw(h@]qxhaUmoduleqyh5X celery.utilsqzq{}q|bh?]h=]h>]hB]q}haUfullnameq~XabbrqUclassqUUfirstquhDNhEhh-]q(csphinx.addnodes desc_addname q)q}q(h2X celery.utils.h3hsh4huh9U desc_addnameqh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]qhNX celery.utils.qq}q(h2Uh3hubaubcsphinx.addnodes desc_name q)q}q(h2hh3hsh4huh9U desc_nameqh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]qhNXabbrqq}q(h2Uh3hubaubcsphinx.addnodes desc_parameterlist q)q}q(h2Uh3hsh4huh9Udesc_parameterlistqh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]q(csphinx.addnodes desc_parameter q)q}q(h2XSh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNXSq}q(h2Uh3hubah9Udesc_parameterqubh)q}q(h2Xmaxh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNXmaxqq}q(h2Uh3hubah9hubh)q}q(h2Xellipsis='...'h;}q(h=]h>]h?]h@]hB]uh3hh-]qhNXellipsis='...'qq}q(h2Uh3hubah9hubeubeubcsphinx.addnodes desc_content q)q}q(h2Uh3hhh4huh9U desc_contentqh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)q}q(h2Uh3h0h4Nh9h]h;}q(h@]h?]h=]h>]hB]Uentries]q(h`X#abbrtask() (in module celery.utils)hUtqauhDNhEhh-]ubhg)q}q(h2Uh3h0h4Nh9hjh;}q(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionqhphuhDNhEhh-]q(hr)q}q(h2Xabbrtask(S, max)h3hh4huh9hvh;}q(h@]qhahyh5X celery.utilsqąq}qbh?]h=]h>]hB]qhah~XabbrtaskqhUhuhDNhEhh-]q(h)q}q(h2X celery.utils.h3hh4huh9hh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]qhNX celery.utils.q΅q}q(h2Uh3hubaubh)q}q(h2hh3hh4huh9hh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]qhNXabbrtaskqՅq}q(h2Uh3hubaubh)q}q(h2Uh3hh4huh9hh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]q(h)q}q(h2XSh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNXSq}q(h2Uh3hubah9hubh)q}q(h2Xmaxh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNXmaxq慁q}q(h2Uh3hubah9hubeubeubh)q}q(h2Uh3hh4huh9hh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)q}q(h2Uh3h0h4Xn/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.chunksqh9h]h;}q(h@]h?]h=]h>]hB]Uentries]q(h`X!chunks() (in module celery.utils)hUtqauhDNhEhh-]ubhg)q}q(h2Uh3h0h4hh9hjh;}q(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionqhphuhDNhEhh-]q(hr)q}q(h2X chunks(it, n)h3hh4huh9hvh;}q(h@]qhahyh5X celery.utilsqq}qbh?]h=]h>]hB]qhah~XchunksqhUhuhDNhEhh-]r(h)r}r(h2X celery.utils.h3hh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r (h2hh3hh4huh9hh;}r (h=]h>]h?]h@]hB]uhDNhEhh-]r hNXchunksr r }r(h2Uh3jubaubh)r}r(h2Uh3hh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(h)r}r(h2Xith;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXitrr}r(h2Uh3jubah9hubh)r}r(h2Xnh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXnr}r(h2Uh3jubah9hubeubeubh)r }r!(h2Uh3hh4huh9hh;}r"(h=]h>]h?]h@]hB]uhDNhEhh-]r#(cdocutils.nodes paragraph r$)r%}r&(h2X7Split an iterator into chunks with ``n`` elements each.h3j h4hh9U paragraphr'h;}r((h=]h>]h?]h@]hB]uhDKhEhh-]r)(hNX#Split an iterator into chunks with r*r+}r,(h2X#Split an iterator into chunks with h3j%ubcdocutils.nodes literal r-)r.}r/(h2X``n``h;}r0(h=]h>]h?]h@]hB]uh3j%h-]r1hNXnr2}r3(h2Uh3j.ubah9Uliteralr4ubhNX elements each.r5r6}r7(h2X elements each.h3j%ubeubj$)r8}r9(h2XExamplesr:h3j h4hh9j'h;}r;(h=]h>]h?]h@]hB]uhDKhEhh-]r<hNXExamplesr=r>}r?(h2j:h3j8ubaubcdocutils.nodes block_quote r@)rA}rB(h2Uh3j h4hh9U block_quoterCh;}rD(h=]h>]h?]h@]hB]uhDNhEhh-]rE(j$)rF}rG(h2X# n == 2 >>> x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 2) >>> list(x) [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10]]rHh3jAh4hh9j'h;}rI(h=]h>]h?]h@]hB]uhDKh-]rJhNX# n == 2 >>> x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 2) >>> list(x) [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10]]rKrL}rM(h2jHh3jFubaubj$)rN}rO(h2X{# n == 3 >>> x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 3) >>> list(x) [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10]]rPh3jAh4hh9j'h;}rQ(h=]h>]h?]h@]hB]uhDK h-]rRhNX{# n == 3 >>> x = chunks(iter([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 3) >>> list(x) [[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10]]rSrT}rU(h2jPh3jNubaubeubeubeubhZ)rV}rW(h2Uh3h0h4Xm/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.firstrXh9h]h;}rY(h@]h?]h=]h>]hB]Uentries]rZ(h`X first() (in module celery.utils)hUtr[auhDNhEhh-]ubhg)r\}r](h2Uh3h0h4jXh9hjh;}r^(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionr_hpj_uhDNhEhh-]r`(hr)ra}rb(h2Xfirst(predicate, iterable)h3j\h4huh9hvh;}rc(h@]rdhahyh5X celery.utilsrerf}rgbh?]h=]h>]hB]rhhah~XfirstrihUhuhDNhEhh-]rj(h)rk}rl(h2X celery.utils.h3jah4huh9hh;}rm(h=]h>]h?]h@]hB]uhDNhEhh-]rnhNX celery.utils.rorp}rq(h2Uh3jkubaubh)rr}rs(h2jih3jah4huh9hh;}rt(h=]h>]h?]h@]hB]uhDNhEhh-]ruhNXfirstrvrw}rx(h2Uh3jrubaubh)ry}rz(h2Uh3jah4huh9hh;}r{(h=]h>]h?]h@]hB]uhDNhEhh-]r|(h)r}}r~(h2X predicateh;}r(h=]h>]h?]h@]hB]uh3jyh-]rhNX predicaterr}r(h2Uh3j}ubah9hubh)r}r(h2Xiterableh;}r(h=]h>]h?]h@]hB]uh3jyh-]rhNXiterablerr}r(h2Uh3jubah9hubeubeubh)r}r(h2Uh3j\h4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rj$)r}r(h2X_Returns the first element in ``iterable`` that ``predicate`` returns a :const:`True` value for.h3jh4jXh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]r(hNXReturns the first element in rr}r(h2XReturns the first element in h3jubj-)r}r(h2X ``iterable``h;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXiterablerr}r(h2Uh3jubah9j4ubhNX that rr}r(h2X that h3jubj-)r}r(h2X ``predicate``h;}r(h=]h>]h?]h@]hB]uh3jh-]rhNX predicaterr}r(h2Uh3jubah9j4ubhNX returns a rr}r(h2X returns a h3jubcsphinx.addnodes pending_xref r)r}r(h2X :const:`True`rh3jh4Nh9U pending_xrefrh;}r(UreftypeXconstUrefwarnrU reftargetrXTrueU refdomainXpyrh@]h?]U refexplicith=]h>]hB]UrefdocrX internals/reference/celery.utilsrUpy:classrNU py:modulerX celery.utilsruhDNh-]rj-)r}r(h2jh;}r(h=]h>]r(UxrefrjXpy-constreh?]h@]hB]uh3jh-]rhNXTruerr}r(h2Uh3jubah9j4ubaubhNX value for.rr}r(h2X value for.h3jubeubaubeubhZ)r}r(h2Uh3h0h4Xs/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.firstmethodrh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X&firstmethod() (in module celery.utils)hUtrauhDNhEhh-]ubhg)r}r(h2Uh3h0h4jh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrhpjuhDNhEhh-]r(hr)r}r(h2Xfirstmethod(method)h3jh4huh9hvh;}r(h@]rhahyh5X celery.utilsrr}rbh?]h=]h>]hB]rhah~X firstmethodrhUhuhDNhEhh-]r(h)r}r(h2X celery.utils.h3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r(h2jh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX firstmethodrr}r(h2Uh3jubaubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rh)r}r(h2Xmethodh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXmethodrr}r(h2Uh3jubah9hubaubeubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(j$)r}r(h2XvReturns a functions that with a list of instances, finds the first instance that returns a value for the given method.rh3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNXvReturns a functions that with a list of instances, finds the first instance that returns a value for the given method.rr}r(h2jh3jubaubj$)r}r(h2X6The list can also contain promises (:class:`promise`.)h3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]r(hNX$The list can also contain promises (rr}r(h2X$The list can also contain promises (h3jubj)r}r(h2X:class:`promise`r h3jh4Nh9jh;}r (UreftypeXclassjjXpromiseU refdomainXpyr h@]h?]U refexplicith=]h>]hB]jjjNjjuhDNh-]r j-)r }r(h2j h;}r(h=]h>]r(jj Xpy-classreh?]h@]hB]uh3jh-]rhNXpromiserr}r(h2Uh3j ubah9j4ubaubhNX.)rr}r(h2X.)h3jubeubeubeubhZ)r}r(h2Uh3h0h4Xx/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.fun_takes_kwargsrh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X+fun_takes_kwargs() (in module celery.utils)hUtrauhDNhEhh-]ubhg)r}r (h2Uh3h0h4jh9hjh;}r!(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionr"hpj"uhDNhEhh-]r#(hr)r$}r%(h2X fun_takes_kwargs(fun, kwlist=[])h3jh4huh9hvh;}r&(h@]r'hahyh5X celery.utilsr(r)}r*bh?]h=]h>]hB]r+hah~Xfun_takes_kwargsr,hUhuhDNhEhh-]r-(h)r.}r/(h2X celery.utils.h3j$h4huh9hh;}r0(h=]h>]h?]h@]hB]uhDNhEhh-]r1hNX celery.utils.r2r3}r4(h2Uh3j.ubaubh)r5}r6(h2j,h3j$h4huh9hh;}r7(h=]h>]h?]h@]hB]uhDNhEhh-]r8hNXfun_takes_kwargsr9r:}r;(h2Uh3j5ubaubh)r<}r=(h2Uh3j$h4huh9hh;}r>(h=]h>]h?]h@]hB]uhDNhEhh-]r?(h)r@}rA(h2Xfunh;}rB(h=]h>]h?]h@]hB]uh3j<h-]rChNXfunrDrE}rF(h2Uh3j@ubah9hubh)rG}rH(h2Xkwlist=h;}rI(h=]h>]h?]h@]hB]uh3j<h-]rJhNXkwlist=rKrL}rM(h2Uh3jGubah9hubcsphinx.addnodes desc_optional rN)rO}rP(h2Uh;}rQ(h=]h>]h?]h@]hB]uh3j<h-]h9U desc_optionalrRubeubeubh)rS}rT(h2Uh3jh4huh9hh;}rU(h=]h>]h?]h@]hB]uhDNhEhh-]rV(j$)rW}rX(h2XiWith a function, and a list of keyword arguments, returns arguments in the list which the function takes.rYh3jSh4jh9j'h;}rZ(h=]h>]h?]h@]hB]uhDKhEhh-]r[hNXiWith a function, and a list of keyword arguments, returns arguments in the list which the function takes.r\r]}r^(h2jYh3jWubaubj$)r_}r`(h2XwIf the object has an ``argspec`` attribute that is used instead of using the :meth:`inspect.getargspec`` introspection.h3jSh4jh9j'h;}ra(h=]h>]h?]h@]hB]uhDKhEhh-]rb(hNXIf the object has an rcrd}re(h2XIf the object has an h3j_ubj-)rf}rg(h2X ``argspec``h;}rh(h=]h>]h?]h@]hB]uh3j_h-]rihNXargspecrjrk}rl(h2Uh3jfubah9j4ubhNX- attribute that is used instead of using the rmrn}ro(h2X- attribute that is used instead of using the h3j_ubj)rp}rq(h2X:meth:`inspect.getargspec``rrh3j_h4Nh9jh;}rs(UreftypeXmethjjXinspect.getargspec`U refdomainXpyrth@]h?]U refexplicith=]h>]hB]jjjNjjuhDNh-]ruj-)rv}rw(h2jrh;}rx(h=]h>]ry(jjtXpy-methrzeh?]h@]hB]uh3jph-]r{hNXinspect.getargspec`()r|r}}r~(h2Uh3jvubah9j4ubaubhNX introspection.rr}r(h2X introspection.h3j_ubeubcdocutils.nodes field_list r)r}r(h2Uh3jSh4jh9U field_listrh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rcdocutils.nodes field r)r}r(h2Uh;}r(h=]h>]h?]h@]hB]uh3jh-]r(cdocutils.nodes field_name r)r}r(h2Uh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNX Parametersrr}r(h2Uh3jubah9U field_namerubcdocutils.nodes field_body r)r}r(h2Uh;}r(h=]h>]h?]h@]hB]uh3jh-]rcdocutils.nodes bullet_list r)r}r(h2Uh;}r(h=]h>]h?]h@]hB]uh3jh-]r(cdocutils.nodes list_item r)r}r(h2Uh;}r(h=]h>]h?]h@]hB]uh3jh-]rj$)r}r(h2Uh;}r(h=]h>]h?]h@]hB]uh3jh-]r(cdocutils.nodes strong r)r}r(h2Xfunh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXfunrr}r(h2Uh3jubah9UstrongrubhNX -- rr}r(h2Uh3jubhNX%The function to inspect arguments of.rr}r(h2X%The function to inspect arguments of.h3jubeh9j'ubah9U list_itemrubj)r}r(h2Uh;}r(h=]h>]h?]h@]hB]uh3jh-]rj$)r}r(h2Uh;}r(h=]h>]h?]h@]hB]uh3jh-]r(j)r}r(h2Xkwlisth;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXkwlistrr}r(h2Uh3jubah9jubhNX -- rr}r(h2Uh3jubhNXThe list of keyword arguments.rr}r(h2XThe list of keyword arguments.h3jubeh9j'ubah9jubeh9U bullet_listrubah9U field_bodyrubeh9Ufieldrubaubj$)r}r(h2XExamplesrh3jSh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDK hEhh-]rhNXExamplesrr}r(h2jh3jubaubcdocutils.nodes doctest_block r)r}r(h2X>>> def foo(self, x, y, logfile=None, loglevel=None): ... return x * y >>> fun_takes_kwargs(foo, ["logfile", "loglevel", "task_id"]) ["logfile", "loglevel"]h3jSh4Nh9U doctest_blockrh;}r(U xml:spacerUpreserverh@]h?]h=]h>]hB]uhDNhEhh-]rhNX>>> def foo(self, x, y, logfile=None, loglevel=None): ... return x * y >>> fun_takes_kwargs(foo, ["logfile", "loglevel", "task_id"]) ["logfile", "loglevel"]rr}r(h2Uh3jubaubj)r}r(h2X>>> def foo(self, x, y, **kwargs): >>> fun_takes_kwargs(foo, ["logfile", "loglevel", "task_id"]) ["logfile", "loglevel", "task_id"]h3jSh4Nh9jh;}r(jjh@]h?]h=]h>]hB]uhDNhEhh-]rhNX>>> def foo(self, x, y, **kwargs): >>> fun_takes_kwargs(foo, ["logfile", "loglevel", "task_id"]) ["logfile", "loglevel", "task_id"]rr}r(h2Uh3jubaubeubeubhZ)r}r(h2Uh3h0h4Xu/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.gen_unique_idrh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X(gen_unique_id() (in module celery.utils)hUtrauhDNhEhh-]ubhg)r}r(h2Uh3h0h4jh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrhpjuhDNhEhh-]r(hr)r}r(h2Xgen_unique_id()h3jh4huh9hvh;}r(h@]rhahyh5X celery.utilsrr}rbh?]h=]h>]hB]rhah~X gen_unique_idrhUhuhDNhEhh-]r(h)r}r(h2X celery.utils.h3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r(h2jh3jh4huh9hh;}r (h=]h>]h?]h@]hB]uhDNhEhh-]r hNX gen_unique_idr r }r (h2Uh3jubaubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(j$)r}r(h2XMGenerate a unique id, having - hopefully - a very small chance of collission.rh3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNXMGenerate a unique id, having - hopefully - a very small chance of collission.rr}r(h2jh3jubaubj$)r}r(h2X/For now this is provided by :func:`uuid.uuid4`.h3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]r (hNXFor now this is provided by r!r"}r#(h2XFor now this is provided by h3jubj)r$}r%(h2X:func:`uuid.uuid4`r&h3jh4Nh9jh;}r'(UreftypeXfuncjjX uuid.uuid4U refdomainXpyr(h@]h?]U refexplicith=]h>]hB]jjjNjjuhDNh-]r)j-)r*}r+(h2j&h;}r,(h=]h>]r-(jj(Xpy-funcr.eh?]h@]hB]uh3j$h-]r/hNX uuid.uuid4()r0r1}r2(h2Uh3j*ubah9j4ubaubhNX.r3}r4(h2X.h3jubeubeubeubhZ)r5}r6(h2Uh3h0h4Xw/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.get_cls_by_namer7h9h]h;}r8(h@]h?]h=]h>]hB]Uentries]r9(h`X*get_cls_by_name() (in module celery.utils)hUtr:auhDNhEhh-]ubhg)r;}r<(h2Uh3h0h4j7h9hjh;}r=(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionr>hpj>uhDNhEhh-]r?(hr)r@}rA(h2X!get_cls_by_name(name, aliases={})h3j;h4huh9hvh;}rB(h@]rChahyh5X celery.utilsrDrE}rFbh?]h=]h>]hB]rGhah~Xget_cls_by_namerHhUhuhDNhEhh-]rI(h)rJ}rK(h2X celery.utils.h3j@h4huh9hh;}rL(h=]h>]h?]h@]hB]uhDNhEhh-]rMhNX celery.utils.rNrO}rP(h2Uh3jJubaubh)rQ}rR(h2jHh3j@h4huh9hh;}rS(h=]h>]h?]h@]hB]uhDNhEhh-]rThNXget_cls_by_namerUrV}rW(h2Uh3jQubaubh)rX}rY(h2Uh3j@h4huh9hh;}rZ(h=]h>]h?]h@]hB]uhDNhEhh-]r[(h)r\}r](h2Xnameh;}r^(h=]h>]h?]h@]hB]uh3jXh-]r_hNXnamer`ra}rb(h2Uh3j\ubah9hubh)rc}rd(h2X aliases={}h;}re(h=]h>]h?]h@]hB]uh3jXh-]rfhNX aliases={}rgrh}ri(h2Uh3jcubah9hubeubeubh)rj}rk(h2Uh3j;h4huh9hh;}rl(h=]h>]h?]h@]hB]uhDNhEhh-]rm(j$)rn}ro(h2XGet class by name.rph3jjh4j7h9j'h;}rq(h=]h>]h?]h@]hB]uhDKhEhh-]rrhNXGet class by name.rsrt}ru(h2jph3jnubaubj$)rv}rw(h2X=The name should be the full dot-separated path to the class::h3jjh4j7h9j'h;}rx(h=]h>]h?]h@]hB]uhDKhEhh-]ryhNX<The name should be the full dot-separated path to the class:rzr{}r|(h2X<The name should be the full dot-separated path to the class:h3jvubaubcdocutils.nodes literal_block r})r~}r(h2Xmodulename.ClassNameh3jjh4j7h9U literal_blockrh;}r(jjh@]h?]h=]h>]hB]uhDKZhEhh-]rhNXmodulename.ClassNamerr}r(h2Uh3j~ubaubj$)r}r(h2X Example::h3jjh4j7h9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNXExample:rr}r(h2XExample:h3jubaubj})r}r(h2XOcelery.concurrency.processes.TaskPool ^- class nameh3jjh4j7h9jh;}r(jjh@]h?]h=]h>]hB]uhDK^hEhh-]rhNXOcelery.concurrency.processes.TaskPool ^- class namerr}r(h2Uh3jubaubj$)r}r(h2XxIf ``aliases`` is provided, a dict containing short name/long name mappings, the name is looked up in the aliases first.h3jjh4j7h9j'h;}r(h=]h>]h?]h@]hB]uhDK hEhh-]r(hNXIf rr}r(h2XIf h3jubj-)r}r(h2X ``aliases``h;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXaliasesrr}r(h2Uh3jubah9j4ubhNXj is provided, a dict containing short name/long name mappings, the name is looked up in the aliases first.rr}r(h2Xj is provided, a dict containing short name/long name mappings, the name is looked up in the aliases first.h3jubeubj$)r}r(h2X Examples:rh3jjh4j7h9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNX Examples:rr}r(h2jh3jubaubj@)r}r(h2Uh3jjh4j7h9jCh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(j)r}r(h2Xl>>> get_cls_by_name("celery.concurrency.processes.TaskPool") h;}r(jjh@]h?]h=]h>]hB]uh3jh-]rhNXl>>> get_cls_by_name("celery.concurrency.processes.TaskPool") rr}r(h2Uh3jubah9jubj)r}r(h2X>>> get_cls_by_name("default", { ... "default": "celery.concurrency.processes.TaskPool"}) h;}r(jjh@]h?]h=]h>]hB]uh3jh-]rhNX>>> get_cls_by_name("default", { ... "default": "celery.concurrency.processes.TaskPool"}) rr}r(h2Uh3jubah9jubj$)r}r(h2X# Does not try to look up non-string names. >>> from celery.concurrency.processes import TaskPool >>> get_cls_by_name(TaskPool) is TaskPool Truerh3jh4j7h9j'h;}r(h=]h>]h?]h@]hB]uhDKh-]rhNX# Does not try to look up non-string names. >>> from celery.concurrency.processes import TaskPool >>> get_cls_by_name(TaskPool) is TaskPool Truerr}r(h2jh3jubaubeubeubeubhZ)r}r(h2Uh3h0h4Xy/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.get_full_cls_namerh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X,get_full_cls_name() (in module celery.utils)hUtrauhDNhEhh-]ubhg)r}r(h2Uh3h0h4jh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrhpjuhDNhEhh-]r(hr)r}r(h2Xget_full_cls_name(cls)h3jh4huh9hvh;}r(h@]rhahyh5X celery.utilsrr}rbh?]h=]h>]hB]rhah~Xget_full_cls_namerhUhuhDNhEhh-]r(h)r}r(h2X celery.utils.h3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r(h2jh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXget_full_cls_namerr}r(h2Uh3jubaubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rh)r}r(h2Xclsh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXclsrr}r(h2Uh3jubah9hubaubeubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rj$)r}r(h2X1With a class, get its full module and class name.rh3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNX1With a class, get its full module and class name.rr}r(h2jh3jubaubaubeubhZ)r}r(h2Uh3h0h4Xs/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.instantiaterh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X&instantiate() (in module celery.utils)h UtrauhDNhEhh-]ubhg)r}r(h2Uh3h0h4jh9hjh;}r (hlhmXpyh@]h?]h=]h>]hB]hnXfunctionr hpj uhDNhEhh-]r (hr)r }r (h2X"instantiate(name, *args, **kwargs)h3jh4huh9hvh;}r(h@]rh ahyh5X celery.utilsrr}rbh?]h=]h>]hB]rh ah~X instantiaterhUhuhDNhEhh-]r(h)r}r(h2X celery.utils.h3j h4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r(h2jh3j h4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r hNX instantiater!r"}r#(h2Uh3jubaubh)r$}r%(h2Uh3j h4huh9hh;}r&(h=]h>]h?]h@]hB]uhDNhEhh-]r'(h)r(}r)(h2Xnameh;}r*(h=]h>]h?]h@]hB]uh3j$h-]r+hNXnamer,r-}r.(h2Uh3j(ubah9hubh)r/}r0(h2X*argsh;}r1(h=]h>]h?]h@]hB]uh3j$h-]r2hNX*argsr3r4}r5(h2Uh3j/ubah9hubh)r6}r7(h2X**kwargsh;}r8(h=]h>]h?]h@]hB]uh3j$h-]r9hNX**kwargsr:r;}r<(h2Uh3j6ubah9hubeubeubh)r=}r>(h2Uh3jh4huh9hh;}r?(h=]h>]h?]h@]hB]uhDNhEhh-]r@(j$)rA}rB(h2XInstantiate class by name.rCh3j=h4jh9j'h;}rD(h=]h>]h?]h@]hB]uhDKhEhh-]rEhNXInstantiate class by name.rFrG}rH(h2jCh3jAubaubj$)rI}rJ(h2XSee :func:`get_cls_by_name`.h3j=h4jh9j'h;}rK(h=]h>]h?]h@]hB]uhDKhEhh-]rL(hNXSee rMrN}rO(h2XSee h3jIubj)rP}rQ(h2X:func:`get_cls_by_name`rRh3jIh4Nh9jh;}rS(UreftypeXfuncjjXget_cls_by_nameU refdomainXpyrTh@]h?]U refexplicith=]h>]hB]jjjNjjuhDNh-]rUj-)rV}rW(h2jRh;}rX(h=]h>]rY(jjTXpy-funcrZeh?]h@]hB]uh3jPh-]r[hNXget_cls_by_name()r\r]}r^(h2Uh3jVubah9j4ubaubhNX.r_}r`(h2X.h3jIubeubeubeubhZ)ra}rb(h2Uh3h0h4Nh9h]h;}rc(h@]h?]h=]h>]hB]Uentries]rd(h`X&is_iterable() (in module celery.utils)hUtreauhDNhEhh-]ubhg)rf}rg(h2Uh3h0h4Nh9hjh;}rh(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrihpjiuhDNhEhh-]rj(hr)rk}rl(h2Xis_iterable(obj)h3jfh4huh9hvh;}rm(h@]rnhahyh5X celery.utilsrorp}rqbh?]h=]h>]hB]rrhah~X is_iterablershUhuhDNhEhh-]rt(h)ru}rv(h2X celery.utils.h3jkh4huh9hh;}rw(h=]h>]h?]h@]hB]uhDNhEhh-]rxhNX celery.utils.ryrz}r{(h2Uh3juubaubh)r|}r}(h2jsh3jkh4huh9hh;}r~(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX is_iterablerr}r(h2Uh3j|ubaubh)r}r(h2Uh3jkh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rh)r}r(h2Xobjh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXobjrr}r(h2Uh3jubah9hubaubeubh)r}r(h2Uh3jfh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r(h2Uh3h0h4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X!kwdict() (in module celery.utils)hUtrauhDNhEhh-]ubhg)r}r(h2Uh3h0h4Nh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrhpjuhDNhEhh-]r(hr)r}r(h2Xkwdict(kwargs)h3jh4huh9hvh;}r(h@]rhahyh5X celery.utilsrr}rbh?]h=]h>]hB]rhah~XkwdictrhUhuhDNhEhh-]r(h)r}r(h2X celery.utils.h3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r(h2jh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXkwdictrr}r(h2Uh3jubaubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rh)r}r(h2Xkwargsh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXkwargsrr}r(h2Uh3jubah9hubaubeubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(j$)r}r(h2X/Make sure keyword arguments are not in unicode.rh3jh4Xn/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.kwdictrh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNX/Make sure keyword arguments are not in unicode.rr}r(h2jh3jubaubcdocutils.nodes definition_list r)r}r(h2Uh3jh4jh9Udefinition_listrh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rcdocutils.nodes definition_list_item r)r}r(h2XUThis should be fixed in newer Python versions, see: http://bugs.python.org/issue4978.h3jh4jh9Udefinition_list_itemrh;}r(h=]h>]h?]h@]hB]uhDKh-]r(cdocutils.nodes term r)r}r(h2X.This should be fixed in newer Python versions,rh3jh4jh9Utermrh;}r(h=]h>]h?]h@]hB]uhDKh-]rhNX.This should be fixed in newer Python versions,rr}r(h2jh3jubaubcdocutils.nodes definition r)r}r(h2Uh;}r(h=]h>]h?]h@]hB]uh3jh-]rj$)r}r(h2X&see: http://bugs.python.org/issue4978.h3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKh-]r(hNXsee: rr}r(h2Xsee: h3jubcdocutils.nodes reference r)r}r(h2X http://bugs.python.org/issue4978rh;}r(Urefurijh@]h?]h=]h>]hB]uh3jh-]rhNX http://bugs.python.org/issue4978rr}r(h2Uh3jubah9U referencerubhNX.r}r(h2X.h3jubeubah9U definitionrubeubaubeubeubhZ)r}r(h2Uh3h0h4Xs/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.mattrgetterrh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X&mattrgetter() (in module celery.utils)hUtrauhDNhEhh-]ubhg)r}r(h2Uh3h0h4jh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrhpjuhDNhEhh-]r(hr)r}r(h2Xmattrgetter(*attrs)h3jh4huh9hvh;}r(h@]rhahyh5X celery.utilsr r }r bh?]h=]h>]hB]r hah~X mattrgetterr hUhuhDNhEhh-]r(h)r}r(h2X celery.utils.h3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r(h2j h3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX mattrgetterrr}r(h2Uh3jubaubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r h)r!}r"(h2X*attrsh;}r#(h=]h>]h?]h@]hB]uh3jh-]r$hNX*attrsr%r&}r'(h2Uh3j!ubah9hubaubeubh)r(}r)(h2Uh3jh4huh9hh;}r*(h=]h>]h?]h@]hB]uhDNhEhh-]r+j$)r,}r-(h2XzLike :func:`operator.itemgetter` but returns :const:`None` on missing attributes instead of raising :exc:`AttributeError`.h3j(h4jh9j'h;}r.(h=]h>]h?]h@]hB]uhDKhEhh-]r/(hNXLike r0r1}r2(h2XLike h3j,ubj)r3}r4(h2X:func:`operator.itemgetter`r5h3j,h4Nh9jh;}r6(UreftypeXfuncjjXoperator.itemgetterU refdomainXpyr7h@]h?]U refexplicith=]h>]hB]jjjNjjuhDNh-]r8j-)r9}r:(h2j5h;}r;(h=]h>]r<(jj7Xpy-funcr=eh?]h@]hB]uh3j3h-]r>hNXoperator.itemgetter()r?r@}rA(h2Uh3j9ubah9j4ubaubhNX but returns rBrC}rD(h2X but returns h3j,ubj)rE}rF(h2X :const:`None`rGh3j,h4Nh9jh;}rH(UreftypeXconstjjXNoneU refdomainXpyrIh@]h?]U refexplicith=]h>]hB]jjjNjjuhDNh-]rJj-)rK}rL(h2jGh;}rM(h=]h>]rN(jjIXpy-constrOeh?]h@]hB]uh3jEh-]rPhNXNonerQrR}rS(h2Uh3jKubah9j4ubaubhNX* on missing attributes instead of raising rTrU}rV(h2X* on missing attributes instead of raising h3j,ubj)rW}rX(h2X:exc:`AttributeError`rYh3j,h4Nh9jh;}rZ(UreftypeXexcjjXAttributeErrorU refdomainXpyr[h@]h?]U refexplicith=]h>]hB]jjjNjjuhDNh-]r\j-)r]}r^(h2jYh;}r_(h=]h>]r`(jj[Xpy-excraeh?]h@]hB]uh3jWh-]rbhNXAttributeErrorrcrd}re(h2Uh3j]ubah9j4ubaubhNX.rf}rg(h2X.h3j,ubeubaubeubhZ)rh}ri(h2Uh3h0h4Xu/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.maybe_iso8601rjh9h]h;}rk(h@]h?]h=]h>]hB]Uentries]rl(h`X(maybe_iso8601() (in module celery.utils)hUtrmauhDNhEhh-]ubhg)rn}ro(h2Uh3h0h4jjh9hjh;}rp(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrqhpjquhDNhEhh-]rr(hr)rs}rt(h2Xmaybe_iso8601(dt)h3jnh4huh9hvh;}ru(h@]rvhahyh5X celery.utilsrwrx}rybh?]h=]h>]hB]rzhah~X maybe_iso8601r{hUhuhDNhEhh-]r|(h)r}}r~(h2X celery.utils.h3jsh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3j}ubaubh)r}r(h2j{h3jsh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX maybe_iso8601rr}r(h2Uh3jubaubh)r}r(h2Uh3jsh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rh)r}r(h2Xdth;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXdtrr}r(h2Uh3jubah9hubaubeubh)r}r(h2Uh3jnh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rj$)r}r(h2X5``Either datetime | str -> datetime or None -> None``rh3jh4jjh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rj-)r}r(h2jh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNX1Either datetime | str -> datetime or None -> Nonerr}r(h2Uh3jubah9j4ubaubaubeubhZ)r}r(h2Uh3h0h4Xu/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.maybe_promiserh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X(maybe_promise() (in module celery.utils)hUtrauhDNhEhh-]ubhg)r}r(h2Uh3h0h4jh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrhpjuhDNhEhh-]r(hr)r}r(h2Xmaybe_promise(value)h3jh4huh9hvh;}r(h@]rhahyh5X celery.utilsrr}rbh?]h=]h>]hB]rhah~X maybe_promiserhUhuhDNhEhh-]r(h)r}r(h2X celery.utils.h3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r(h2jh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX maybe_promiserr}r(h2Uh3jubaubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rh)r}r(h2Xvalueh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXvaluerr}r(h2Uh3jubah9hubaubeubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rj$)r}r(h2X$Evaluates if the value is a promise.rh3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNX$Evaluates if the value is a promise.rr}r(h2jh3jubaubaubeubhZ)r}r(h2Uh3h0h4Xs/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.mitemgetterrh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X&mitemgetter() (in module celery.utils)h UtrauhDNhEhh-]ubhg)r}r(h2Uh3h0h4jh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrhpjuhDNhEhh-]r(hr)r}r(h2Xmitemgetter(*items)h3jh4huh9hvh;}r(h@]rh ahyh5X celery.utilsrr}rbh?]h=]h>]hB]rh ah~X mitemgetterrhUhuhDNhEhh-]r(h)r}r(h2X celery.utils.h3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r(h2jh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX mitemgetterrr}r(h2Uh3jubaubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rh)r}r(h2X*itemsh;}r (h=]h>]h?]h@]hB]uh3jh-]r hNX*itemsr r }r (h2Uh3jubah9hubaubeubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rj$)r}r(h2XoLike :func:`operator.itemgetter` but returns :const:`None` on missing items instead of raising :exc:`KeyError`.h3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]r(hNXLike rr}r(h2XLike h3jubj)r}r(h2X:func:`operator.itemgetter`rh3jh4Nh9jh;}r(UreftypeXfuncjjXoperator.itemgetterU refdomainXpyrh@]h?]U refexplicith=]h>]hB]jjjNjjuhDNh-]rj-)r}r (h2jh;}r!(h=]h>]r"(jjXpy-funcr#eh?]h@]hB]uh3jh-]r$hNXoperator.itemgetter()r%r&}r'(h2Uh3jubah9j4ubaubhNX but returns r(r)}r*(h2X but returns h3jubj)r+}r,(h2X :const:`None`r-h3jh4Nh9jh;}r.(UreftypeXconstjjXNoneU refdomainXpyr/h@]h?]U refexplicith=]h>]hB]jjjNjjuhDNh-]r0j-)r1}r2(h2j-h;}r3(h=]h>]r4(jj/Xpy-constr5eh?]h@]hB]uh3j+h-]r6hNXNoner7r8}r9(h2Uh3j1ubah9j4ubaubhNX% on missing items instead of raising r:r;}r<(h2X% on missing items instead of raising h3jubj)r=}r>(h2X:exc:`KeyError`r?h3jh4Nh9jh;}r@(UreftypeXexcjjXKeyErrorU refdomainXpyrAh@]h?]U refexplicith=]h>]hB]jjjNjjuhDNh-]rBj-)rC}rD(h2j?h;}rE(h=]h>]rF(jjAXpy-excrGeh?]h@]hB]uh3j=h-]rHhNXKeyErrorrIrJ}rK(h2Uh3jCubah9j4ubaubhNX.rL}rM(h2X.h3jubeubaubeubhZ)rN}rO(h2Uh3h0h4Nh9h]h;}rP(h@]h?]h=]h>]hB]Uentries]rQ(h`X mpromise (class in celery.utils)h UtrRauhDNhEhh-]ubhg)rS}rT(h2Uh3h0h4Nh9hjh;}rU(hlhmXpyh@]h?]h=]h>]hB]hnXclassrVhpjVuhDNhEhh-]rW(hr)rX}rY(h2Xmpromise(fun, *args, **kwargs)h3jSh4huh9hvh;}rZ(h@]r[h ahyh5X celery.utilsr\r]}r^bh?]h=]h>]hB]r_h ah~Xmpromiser`hUhuhDNhEhh-]ra(csphinx.addnodes desc_annotation rb)rc}rd(h2Xclass h3jXh4huh9Udesc_annotationreh;}rf(h=]h>]h?]h@]hB]uhDNhEhh-]rghNXclass rhri}rj(h2Uh3jcubaubh)rk}rl(h2X celery.utils.h3jXh4huh9hh;}rm(h=]h>]h?]h@]hB]uhDNhEhh-]rnhNX celery.utils.rorp}rq(h2Uh3jkubaubh)rr}rs(h2j`h3jXh4huh9hh;}rt(h=]h>]h?]h@]hB]uhDNhEhh-]ruhNXmpromiservrw}rx(h2Uh3jrubaubh)ry}rz(h2Uh3jXh4huh9hh;}r{(h=]h>]h?]h@]hB]uhDNhEhh-]r|(h)r}}r~(h2Xfunh;}r(h=]h>]h?]h@]hB]uh3jyh-]rhNXfunrr}r(h2Uh3j}ubah9hubh)r}r(h2X*argsh;}r(h=]h>]h?]h@]hB]uh3jyh-]rhNX*argsrr}r(h2Uh3jubah9hubh)r}r(h2X**kwargsh;}r(h=]h>]h?]h@]hB]uh3jyh-]rhNX**kwargsrr}r(h2Uh3jubah9hubeubeubh)r}r(h2Uh3jSh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(j$)r}r(h2XMemoized promise.rh3jh4Xp/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.mpromiserh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNXMemoized promise.rr}r(h2jh3jubaubj$)r}r(h2XXThe function is only evaluated once, every subsequent access will return the same value.rh3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNXXThe function is only evaluated once, every subsequent access will return the same value.rr}r(h2jh3jubaubhZ)r}r(h2Uh3jh4jh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X+evaluated (celery.utils.mpromise attribute)hUtrauhDNhEhh-]ubhg)r}r(h2Uh3jh4jh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnX attributerhpjuhDNhEhh-]r(hr)r}r(h2X evaluatedrh3jh4hUh9hvh;}r(h@]rhahyjh?]h=]h>]hB]rhah~Xmpromise.evaluatedhj`huhDKhEhh-]rh)r}r(h2jh3jh4hUh9hh;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNX evaluatedrr}r(h2Uh3jubaubaubh)r}r(h2Uh3jh4hUh9hh;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rj$)r}r(h2X=Set to to :const:`True` after the promise has been evaluated.h3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]r(hNX Set to to rr}r(h2X Set to to h3jubj)r}r(h2X :const:`True`rh3jh4Nh9jh;}r(UreftypeXconstjjXTrueU refdomainXpyrh@]h?]U refexplicith=]h>]hB]jjjj`jjuhDNh-]rj-)r}r(h2jh;}r(h=]h>]r(jjXpy-constreh?]h@]hB]uh3jh-]rhNXTruerr}r(h2Uh3jubah9j4ubaubhNX& after the promise has been evaluated.rr}r(h2X& after the promise has been evaluated.h3jubeubaubeubhZ)r}r(h2Uh3jh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X)evaluate() (celery.utils.mpromise method)hUtrauhDNhEhh-]ubhg)r}r(h2Uh3jh4Nh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXmethodrhpjuhDNhEhh-]r(hr)r}r(h2Xmpromise.evaluate()h3jh4huh9hvh;}r(h@]rhahyh5X celery.utilsrr}rbh?]h=]h>]hB]rhah~Xmpromise.evaluatehj`huhDNhEhh-]r(h)r}r(h2Xevaluateh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXevaluaterr}r(h2Uh3jubaubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r(h2Uh3jh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X+evaluated (celery.utils.mpromise attribute)Xcelery.utils.mpromise.evaluatedUtrauhDNhEhh-]ubhg)r}r(h2Uh3jh4Nh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnX attributerhpjuhDNhEhh-]r(hr)r}r(h2Xmpromise.evaluatedh3jh4U rh9hvh;}r (h@]hyh5X celery.utilsr r }r bh?]h=]h>]hB]h~Xmpromise.evaluatedhj`huhDNhEhh-]r (h)r}r(h2X evaluatedh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX evaluatedrr}r(h2Uh3jubaubjb)r}r(h2X = Falseh3jh4jh9jeh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX = Falserr}r(h2Uh3jubaubeubh)r}r(h2Uh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubeubeubhZ)r}r (h2Uh3h0h4Xl/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.noopr!h9h]h;}r"(h@]h?]h=]h>]hB]Uentries]r#(h`Xnoop() (in module celery.utils)hUtr$auhDNhEhh-]ubhg)r%}r&(h2Uh3h0h4j!h9hjh;}r'(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionr(hpj(uhDNhEhh-]r)(hr)r*}r+(h2Xnoop(*args, **kwargs)h3j%h4huh9hvh;}r,(h@]r-hahyh5X celery.utilsr.r/}r0bh?]h=]h>]hB]r1hah~Xnoopr2hUhuhDNhEhh-]r3(h)r4}r5(h2X celery.utils.h3j*h4huh9hh;}r6(h=]h>]h?]h@]hB]uhDNhEhh-]r7hNX celery.utils.r8r9}r:(h2Uh3j4ubaubh)r;}r<(h2j2h3j*h4huh9hh;}r=(h=]h>]h?]h@]hB]uhDNhEhh-]r>hNXnoopr?r@}rA(h2Uh3j;ubaubh)rB}rC(h2Uh3j*h4huh9hh;}rD(h=]h>]h?]h@]hB]uhDNhEhh-]rE(h)rF}rG(h2X*argsh;}rH(h=]h>]h?]h@]hB]uh3jBh-]rIhNX*argsrJrK}rL(h2Uh3jFubah9hubh)rM}rN(h2X**kwargsh;}rO(h=]h>]h?]h@]hB]uh3jBh-]rPhNX**kwargsrQrR}rS(h2Uh3jMubah9hubeubeubh)rT}rU(h2Uh3j%h4huh9hh;}rV(h=]h>]h?]h@]hB]uhDNhEhh-]rW(j$)rX}rY(h2X No operation.rZh3jTh4j!h9j'h;}r[(h=]h>]h?]h@]hB]uhDKhEhh-]r\hNX No operation.r]r^}r_(h2jZh3jXubaubj$)r`}ra(h2X7Takes any arguments/keyword arguments and does nothing.rbh3jTh4j!h9j'h;}rc(h=]h>]h?]h@]hB]uhDKhEhh-]rdhNX7Takes any arguments/keyword arguments and does nothing.rerf}rg(h2jbh3j`ubaubeubeubhZ)rh}ri(h2Uh3h0h4Xo/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.padlistrjh9h]h;}rk(h@]h?]h=]h>]hB]Uentries]rl(h`X"padlist() (in module celery.utils)h UtrmauhDNhEhh-]ubhg)rn}ro(h2Uh3h0h4jjh9hjh;}rp(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrqhpjquhDNhEhh-]rr(hr)rs}rt(h2X&padlist(container, size, default=None)h3jnh4huh9hvh;}ru(h@]rvh ahyh5X celery.utilsrwrx}rybh?]h=]h>]hB]rzh ah~Xpadlistr{hUhuhDNhEhh-]r|(h)r}}r~(h2X celery.utils.h3jsh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3j}ubaubh)r}r(h2j{h3jsh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXpadlistrr}r(h2Uh3jubaubh)r}r(h2Uh3jsh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(h)r}r(h2X containerh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNX containerrr}r(h2Uh3jubah9hubh)r}r(h2Xsizeh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXsizerr}r(h2Uh3jubah9hubh)r}r(h2X default=Noneh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNX default=Nonerr}r(h2Uh3jubah9hubeubeubh)r}r(h2Uh3jnh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(j$)r}r(h2XPad list with default elements.rh3jh4jjh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNXPad list with default elements.rr}r(h2jh3jubaubj$)r}r(h2X Examples:rh3jh4jjh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNX Examples:rr}r(h2jh3jubaubj)r}r(h2Xb>>> first, last, city = padlist(["George", "Costanza", "NYC"], 3) ("George", "Costanza", "NYC") >>> first, last, city = padlist(["George", "Costanza"], 3) ("George", "Costanza", None) >>> first, last, city, planet = padlist(["George", "Costanza", "NYC"], 4, default="Earth") ("George", "Costanza", "NYC", "Earth")h3jh4Nh9jh;}r(jjh@]h?]h=]h>]hB]uhDNhEhh-]rhNXb>>> first, last, city = padlist(["George", "Costanza", "NYC"], 3) ("George", "Costanza", "NYC") >>> first, last, city = padlist(["George", "Costanza"], 3) ("George", "Costanza", None) >>> first, last, city, planet = padlist(["George", "Costanza", "NYC"], 4, default="Earth") ("George", "Costanza", "NYC", "Earth")rr}r(h2Uh3jubaubeubeubhZ)r}r(h2Uh3h0h4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`Xpromise (class in celery.utils)h UtrauhDNhEhh-]ubhg)r}r(h2Uh3h0h4Nh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXclassrhpjuhDNhEhh-]r(hr)r}r(h2Xpromise(fun, *args, **kwargs)h3jh4huh9hvh;}r(h@]rh ahyh5X celery.utilsrr}rbh?]h=]h>]hB]rh ah~XpromiserhUhuhDNhEhh-]r(jb)r}r(h2Xclass h3jh4huh9jeh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXclass rr}r(h2Uh3jubaubh)r}r(h2X celery.utils.h3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r(h2jh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXpromiserr}r(h2Uh3jubaubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(h)r}r(h2Xfunh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXfunrr}r(h2Uh3jubah9hubh)r}r(h2X*argsh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNX*argsrr}r(h2Uh3jubah9hubh)r}r(h2X**kwargsh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNX**kwargsrr}r(h2Uh3jubah9hubeubeubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(j$)r}r(h2X A promise.rh3jh4Xo/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.promiserh9j'h;}r (h=]h>]h?]h@]hB]uhDKhEhh-]r hNX A promise.r r }r (h2jh3jubaubj$)r}r(h2XEvaluated when called or if the :meth:`evaluate` method is called. The function is evaluated on every access, so the value is not memoized (see :class:`mpromise`).h3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]r(hNX Evaluated when called or if the rr}r(h2X Evaluated when called or if the h3jubj)r}r(h2X:meth:`evaluate`rh3jh4Nh9jh;}r(UreftypeXmethjjXevaluateU refdomainXpyrh@]h?]U refexplicith=]h>]hB]jjjjjjuhDNh-]rj-)r}r(h2jh;}r(h=]h>]r(jjXpy-methreh?]h@]hB]uh3jh-]r hNX evaluate()r!r"}r#(h2Uh3jubah9j4ubaubhNX` method is called. The function is evaluated on every access, so the value is not memoized (see r$r%}r&(h2X` method is called. The function is evaluated on every access, so the value is not memoized (see h3jubj)r'}r((h2X:class:`mpromise`r)h3jh4Nh9jh;}r*(UreftypeXclassjjXmpromiseU refdomainXpyr+h@]h?]U refexplicith=]h>]hB]jjjjjjuhDNh-]r,j-)r-}r.(h2j)h;}r/(h=]h>]r0(jj+Xpy-classr1eh?]h@]hB]uh3j'h-]r2hNXmpromiser3r4}r5(h2Uh3j-ubah9j4ubaubhNX).r6r7}r8(h2X).h3jubeubj)r9}r:(h2Uh3jh4hUh9jh;}r;(h=]h>]h?]h@]hB]uhDNhEhh-]r<j)r=}r>(h2XlOverloaded operations that will evaluate the promise: :meth:`__str__`, :meth:`__repr__`, :meth:`__cmp__`. h3j9h4jh9jh;}r?(h=]h>]h?]h@]hB]uhDK h-]r@(j)rA}rB(h2X5Overloaded operations that will evaluate the promise:rCh3j=h4jh9jh;}rD(h=]h>]h?]h@]hB]uhDK h-]rEhNX5Overloaded operations that will evaluate the promise:rFrG}rH(h2jCh3jAubaubj)rI}rJ(h2Uh;}rK(h=]h>]h?]h@]hB]uh3j=h-]rLj$)rM}rN(h2X3:meth:`__str__`, :meth:`__repr__`, :meth:`__cmp__`.h3jIh4jh9j'h;}rO(h=]h>]h?]h@]hB]uhDKh-]rP(j)rQ}rR(h2X:meth:`__str__`rSh3jMh4Nh9jh;}rT(UreftypeXmethjjX__str__U refdomainXpyrUh@]h?]U refexplicith=]h>]hB]jjjjjjuhDNh-]rVj-)rW}rX(h2jSh;}rY(h=]h>]rZ(jjUXpy-methr[eh?]h@]hB]uh3jQh-]r\hNX __str__()r]r^}r_(h2Uh3jWubah9j4ubaubhNX, r`ra}rb(h2X, h3jMubj)rc}rd(h2X:meth:`__repr__`reh3jMh4Nh9jh;}rf(UreftypeXmethjjX__repr__U refdomainXpyrgh@]h?]U refexplicith=]h>]hB]jjjjjjuhDNh-]rhj-)ri}rj(h2jeh;}rk(h=]h>]rl(jjgXpy-methrmeh?]h@]hB]uh3jch-]rnhNX __repr__()rorp}rq(h2Uh3jiubah9j4ubaubhNX, rrrs}rt(h2X, h3jMubj)ru}rv(h2X:meth:`__cmp__`rwh3jMh4Nh9jh;}rx(UreftypeXmethjjX__cmp__U refdomainXpyryh@]h?]U refexplicith=]h>]hB]jjjjjjuhDNh-]rzj-)r{}r|(h2jwh;}r}(h=]h>]r~(jjyXpy-methreh?]h@]hB]uh3juh-]rhNX __cmp__()rr}r(h2Uh3j{ubah9j4ubaubhNX.r}r(h2X.h3jMubeubah9jubeubaubhZ)r}r(h2Uh3jh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X(evaluate() (celery.utils.promise method)hUtrauhDNhEhh-]ubhg)r}r(h2Uh3jh4Nh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXmethodrhpjuhDNhEhh-]r(hr)r}r(h2Xpromise.evaluate()h3jh4huh9hvh;}r(h@]rhahyh5X celery.utilsrr}rbh?]h=]h>]hB]rhah~Xpromise.evaluatehjhuhDNhEhh-]r(h)r}r(h2Xevaluateh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXevaluaterr}r(h2Uh3jubaubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubeubeubhZ)r}r(h2Uh3h0h4Xr/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.repeatlastrh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X%repeatlast() (in module celery.utils)h!UtrauhDNhEhh-]ubhg)r}r(h2Uh3h0h4jh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrhpjuhDNhEhh-]r(hr)r}r(h2Xrepeatlast(it)h3jh4huh9hvh;}r(h@]rh!ahyh5X celery.utilsrr}rbh?]h=]h>]hB]rh!ah~X repeatlastrhUhuhDNhEhh-]r(h)r}r(h2X celery.utils.h3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r(h2jh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX repeatlastrr}r(h2Uh3jubaubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rh)r}r(h2Xith;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXitrr}r(h2Uh3jubah9hubaubeubh)r}r(h2Uh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rj$)r}r(h2XbIterate over all elements in the iterator, and when its exhausted yield the last value infinitely.rh3jh4jh9j'h;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNXbIterate over all elements in the iterator, and when its exhausted yield the last value infinitely.rr}r(h2jh3jubaubaubeubhZ)r}r(h2Uh3h0h4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X*retry_over_time() (in module celery.utils)hUtrauhDNhEhh-]ubhg)r}r(h2Uh3h0h4Nh9hjh;}r(hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrhpjuhDNhEhh-]r(hr)r}r(h2Xretry_over_time(fun, catch, args=[], kwargs={}, errback=, max_retries=None, interval_start=2, interval_step=2, interval_max=30)h3jh4huh9hvh;}r(h@]rhahyh5X celery.utilsrr}rbh?]h=]h>]hB]rhah~Xretry_over_timerhUhuhDNhEhh-]r(h)r}r(h2X celery.utils.h3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX celery.utils.rr}r(h2Uh3jubaubh)r}r(h2jh3jh4huh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXretry_over_timerr }r (h2Uh3jubaubh)r }r (h2Uh3jh4huh9hh;}r (h=]h>]h?]h@]hB]uhDNhEhh-]r (h)r }r (h2Xfunh;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXfunr r }r (h2Uh3j ubah9hubh)r }r (h2Xcatchh;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXcatchr r }r (h2Uh3j ubah9hubh)r }r (h2Xargs=h;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXargs=r r }r (h2Uh3j ubah9hubjN)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3j h-]h9jRubh)r }r (h2X kwargs={}h;}r (h=]h>]h?]h@]hB]uh3j h-]r! hNX kwargs={}r" r# }r$ (h2Uh3j ubah9hubh)r% }r& (h2X$errback=h;}r' (h=]h>]h?]h@]hB]uh3j h-]r( hNX$errback=r) r* }r+ (h2Uh3j% ubah9hubh)r, }r- (h2Xmax_retries=Noneh;}r. (h=]h>]h?]h@]hB]uh3j h-]r/ hNXmax_retries=Noner0 r1 }r2 (h2Uh3j, ubah9hubh)r3 }r4 (h2Xinterval_start=2h;}r5 (h=]h>]h?]h@]hB]uh3j h-]r6 hNXinterval_start=2r7 r8 }r9 (h2Uh3j3 ubah9hubh)r: }r; (h2Xinterval_step=2h;}r< (h=]h>]h?]h@]hB]uh3j h-]r= hNXinterval_step=2r> r? }r@ (h2Uh3j: ubah9hubh)rA }rB (h2Xinterval_max=30h;}rC (h=]h>]h?]h@]hB]uh3j h-]rD hNXinterval_max=30rE rF }rG (h2Uh3jA ubah9hubeubeubh)rH }rI (h2Uh3jh4huh9hh;}rJ (h=]h>]h?]h@]hB]uhDNhEhh-]rK (j$)rL }rM (h2X?Retry the function over and over until max retries is exceeded.rN h3jH h4Xw/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.retry_over_timerO h9j'h;}rP (h=]h>]h?]h@]hB]uhDKhEhh-]rQ hNX?Retry the function over and over until max retries is exceeded.rR rS }rT (h2jN h3jL ubaubj$)rU }rV (h2XFor each retry we sleep a for a while before we try again, this interval is increased for every retry until the max seconds is reached.rW h3jH h4jO h9j'h;}rX (h=]h>]h?]h@]hB]uhDKhEhh-]rY hNXFor each retry we sleep a for a while before we try again, this interval is increased for every retry until the max seconds is reached.rZ r[ }r\ (h2jW h3jU ubaubj)r] }r^ (h2Uh3jH h4Nh9jh;}r_ (h=]h>]h?]h@]hB]uhDNhEhh-]r` j)ra }rb (h2Uh;}rc (h=]h>]h?]h@]hB]uh3j] h-]rd (j)re }rf (h2Uh;}rg (h=]h>]h?]h@]hB]uh3ja h-]rh hNX Parametersri rj }rk (h2Uh3je ubah9jubj)rl }rm (h2Uh;}rn (h=]h>]h?]h@]hB]uh3ja h-]ro j)rp }rq (h2Uh;}rr (h=]h>]h?]h@]hB]uh3jl h-]rs (j)rt }ru (h2Uh;}rv (h=]h>]h?]h@]hB]uh3jp h-]rw j$)rx }ry (h2Uh;}rz (h=]h>]h?]h@]hB]uh3jt h-]r{ (j)r| }r} (h2Xfunh;}r~ (h=]h>]h?]h@]hB]uh3jx h-]r hNXfunr r }r (h2Uh3j| ubah9jubhNX -- r r }r (h2Uh3jx ubhNXThe function to tryr r }r (h2XThe function to tryr h3jx ubeh9j'ubah9jubj)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3jp h-]r j$)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3j h-]r (j)r }r (h2Xcatchh;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXcatchr r }r (h2Uh3j ubah9jubhNX -- r r }r (h2Uh3j ubhNXEExceptions to catch, can be either tuple or a single exception class.r r }r (h2XEExceptions to catch, can be either tuple or a single exception class.r h3j ubeh9j'ubah9jubj)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3jp h-]r j$)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3j h-]r (j)r }r (h2Xargsh;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXargsr r }r (h2Uh3j ubah9jubhNX -- r r }r (h2Uh3j ubhNX/Positional arguments passed on to the function.r r }r (h2X/Positional arguments passed on to the function.r h3j ubeh9j'ubah9jubj)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3jp h-]r j$)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3j h-]r (j)r }r (h2Xkwargsh;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXkwargsr r }r (h2Uh3j ubah9jubhNX -- r r }r (h2Uh3j ubhNX,Keyword arguments passed on to the function.r r }r (h2X,Keyword arguments passed on to the function.r h3j ubeh9j'ubah9jubj)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3jp h-]r j$)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3j h-]r (j)r }r (h2Xerrbackh;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXerrbackr r }r (h2Uh3j ubah9jubhNX -- r r }r (h2Uh3j ubhNX"Callback for when an exception in r r }r (h2X"Callback for when an exception in h3j ubj-)r }r (h2X ``catch``h;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXcatchr r }r (h2Uh3j ubah9j4ubhNX2 is raised. The callback must take two arguments: r r }r (h2X2 is raised. The callback must take two arguments: h3j ubj-)r }r (h2X``exc``h;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXexcr r }r (h2Uh3j ubah9j4ubhNX and r r }r (h2X and h3j ubj-)r }r (h2X ``interval``h;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXintervalr r }r (h2Uh3j ubah9j4ubhNX, where r r }r (h2X, where h3j ubj-)r }r (h2X``exc``h;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXexcr r }r (h2Uh3j ubah9j4ubhNX is the exception instance, and r r }r (h2X is the exception instance, and h3j ubj-)r }r (h2X ``interval``h;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXintervalr r }r (h2Uh3j ubah9j4ubhNX' is the time in seconds to sleep next..r r }r (h2X' is the time in seconds to sleep next..h3j ubeh9j'ubah9jubj)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3jp h-]r j$)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3j h-]r (j)r }r (h2X max_retriesh;}r (h=]h>]h?]h@]hB]uh3j h-]r hNX max_retriesr r }r! (h2Uh3j ubah9jubhNX -- r" r# }r$ (h2Uh3j ubhNXWMaximum number of retries before we give up. If this is not set, we will retry forever.r% r& }r' (h2XWMaximum number of retries before we give up. If this is not set, we will retry forever.r( h3j ubeh9j'ubah9jubj)r) }r* (h2Uh;}r+ (h=]h>]h?]h@]hB]uh3jp h-]r, j$)r- }r. (h2Uh;}r/ (h=]h>]h?]h@]hB]uh3j) h-]r0 (j)r1 }r2 (h2Xinterval_starth;}r3 (h=]h>]h?]h@]hB]uh3j- h-]r4 hNXinterval_startr5 r6 }r7 (h2Uh3j1 ubah9jubhNX -- r8 r9 }r: (h2Uh3j- ubhNX8How long (in seconds) we start sleeping between retries.r; r< }r= (h2X8How long (in seconds) we start sleeping between retries.r> h3j- ubeh9j'ubah9jubj)r? }r@ (h2Uh;}rA (h=]h>]h?]h@]hB]uh3jp h-]rB j$)rC }rD (h2Uh;}rE (h=]h>]h?]h@]hB]uh3j? h-]rF (j)rG }rH (h2X interval_steph;}rI (h=]h>]h?]h@]hB]uh3jC h-]rJ hNX interval_steprK rL }rM (h2Uh3jG ubah9jubhNX -- rN rO }rP (h2Uh3jC ubhNX5By how much the interval is increased for each retry.rQ rR }rS (h2X5By how much the interval is increased for each retry.rT h3jC ubeh9j'ubah9jubj)rU }rV (h2Uh;}rW (h=]h>]h?]h@]hB]uh3jp h-]rX j$)rY }rZ (h2Uh;}r[ (h=]h>]h?]h@]hB]uh3jU h-]r\ (j)r] }r^ (h2X interval_maxh;}r_ (h=]h>]h?]h@]hB]uh3jY h-]r` hNX interval_maxra rb }rc (h2Uh3j] ubah9jubhNX -- rd re }rf (h2Uh3jY ubhNX3Maximum number of seconds to sleep between retries.rg rh }ri (h2X3Maximum number of seconds to sleep between retries.rj h3jY ubeh9j'ubah9jubeh9jubah9jubeh9jubaubeubeubhZ)rk }rl (h2Uh3h0h4Xu/var/build/user_builds/celery/checkouts/2.1-archived/celery/utils/__init__.py:docstring of celery.utils.truncate_textrm h9h]h;}rn (h@]h?]h=]h>]hB]Uentries]ro (h`X(truncate_text() (in module celery.utils)hUtrp auhDNhEhh-]ubhg)rq }rr (h2Uh3h0h4jm h9hjh;}rs (hlhmXpyh@]h?]h=]h>]hB]hnXfunctionrt hpjt uhDNhEhh-]ru (hr)rv }rw (h2X-truncate_text(text, maxlen=128, suffix='...')h3jq h4huh9hvh;}rx (h@]ry hahyh5X celery.utilsrz r{ }r| bh?]h=]h>]hB]r} hah~X truncate_textr~ hUhuhDNhEhh-]r (h)r }r (h2X celery.utils.h3jv h4huh9hh;}r (h=]h>]h?]h@]hB]uhDNhEhh-]r hNX celery.utils.r r }r (h2Uh3j ubaubh)r }r (h2j~ h3jv h4huh9hh;}r (h=]h>]h?]h@]hB]uhDNhEhh-]r hNX truncate_textr r }r (h2Uh3j ubaubh)r }r (h2Uh3jv h4huh9hh;}r (h=]h>]h?]h@]hB]uhDNhEhh-]r (h)r }r (h2Xtexth;}r (h=]h>]h?]h@]hB]uh3j h-]r hNXtextr r }r (h2Uh3j ubah9hubh)r }r (h2X maxlen=128h;}r (h=]h>]h?]h@]hB]uh3j h-]r hNX maxlen=128r r }r (h2Uh3j ubah9hubh)r }r (h2X suffix='...'h;}r (h=]h>]h?]h@]hB]uh3j h-]r hNX suffix='...'r r }r (h2Uh3j ubah9hubeubeubh)r }r (h2Uh3jq h4huh9hh;}r (h=]h>]h?]h@]hB]uhDNhEhh-]r j$)r }r (h2X1Truncates text to a maximum number of characters.r h3j h4jm h9j'h;}r (h=]h>]h?]h@]hB]uhDKhEhh-]r hNX1Truncates text to a maximum number of characters.r r }r (h2j h3j ubaubaubeubeubah2UU transformerr NU footnote_refsr }r Urefnamesr }r Usymbol_footnotesr ]r Uautofootnote_refsr ]r Usymbol_footnote_refsr ]r U citationsr ]r hEhU current_liner NUtransform_messagesr ]r cdocutils.nodes system_message r )r }r (h2Uh;}r (h=]UlevelKh@]h?]UsourcehUh>]hB]UlineKUtypeUINFOr uh-]r j$)r }r (h2Uh;}r (h=]h>]h?]h@]hB]uh3j h-]r hNX9Hyperlink target "module-celery.utils" is not referenced.r r }r (h2Uh3j ubah9j'ubah9Usystem_messager ubaUreporterr NUid_startr KU autofootnotesr ]r U citation_refsr }r Uindirect_targetsr ]r Usettingsr (cdocutils.frontend Values r or }r (Ufootnote_backlinksr KUrecord_dependenciesr NU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhKNUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr UUTF-8r U_sourcer U^/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.utils.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr j Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr! KUidsr" }r# (hjhj*hj$hjh jh jsh jXh j hYhSh+cdocutils.nodes topic r$ )r% }r& (h2Uh3h0h4h7h9Utopicr' h;}r( (h=]h>]r) (Ucontentsr* Ulocalr+ eh?]h@]r, h+ahB]r- h auhDKhEhh-]r. cdocutils.nodes pending r/ )r0 }r1 (h2X.. contents:: :local:h3j% U transformr2 cdocutils.transforms.parts Contents r3 Udetailsr4 }r5 UlocalNsh9Upendingr6 h;}r7 (h=]h>]h?]h@]hB]uh-]ubaubhjhj@hjhjahjv hjhhshjhjhjhjhjshhhjhjkhhh jh,h0h!juUsubstitution_namesr8 }r9 h9hEh;}r: (h=]h@]h?]Usourceh7h>]hB]uU footnotesr; ]r< Urefidsr= }r> ub.PKYDDZKDKDNcelery-2.1-archived/.doctrees/internals/reference/celery.execute.trace.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X-celery.execute.trace.TaskTrace.handle_failureqX(tracing execution - celery.execute.traceqNX$celery.execute.trace.TraceInfo.traceqX-celery.execute.trace.TaskTrace.handle_successq X+celery.execute.trace.TaskTrace.handle_retryq X2celery.execute.trace.TaskTrace.handle_after_returnq X&celery.execute.trace.TaskTrace.executeq Xcelery.execute.trace.TraceInfoq Xcelery.execute.trace.TaskTraceqUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhU&tracing-execution-celery-execute-traceqhhh h h h h h h h h h hhhUcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceq UUparentq!hUsourceq"cdocutils.nodes reprunicode q#Xf/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.execute.trace.rstq$q%}q&bUtagnameq'Usectionq(U attributesq)}q*(Udupnamesq+]Uclassesq,]Ubackrefsq-]Uidsq.]q/haUnamesq0]q1hauUlineq2KUdocumentq3hh]q4(cdocutils.nodes title q5)q6}q7(h X(Tracing Execution - celery.execute.traceq8h!hh"h%h'Utitleq9h)}q:(h+]h,]h-]h.]h0]uh2Kh3hh]q;cdocutils.nodes Text q}q?(h h8h!h6ubaubcdocutils.nodes target q@)qA}qB(h Uh!hh"U qCh'UtargetqDh)}qE(h+]h.]qFXmodule-celery.execute.traceqGah-]Uismodh,]h0]uh2Kh3hh]ubcsphinx.addnodes index qH)qI}qJ(h Uh!hh"hCh'UindexqKh)}qL(h.]h-]h+]h,]h0]Uentries]qM(UsingleqNXcelery.execute.trace (module)Xmodule-celery.execute.traceUtqOauh2Kh3hh]ubhH)qP}qQ(h Uh!hh"Nh'hKh)}qR(h.]h-]h+]h,]h0]Uentries]qS(hNX)TaskTrace (class in celery.execute.trace)hUtqTauh2Nh3hh]ubcsphinx.addnodes desc qU)qV}qW(h Uh!hh"Nh'UdescqXh)}qY(UnoindexqZUdomainq[Xpyh.]h-]h+]h,]h0]Uobjtypeq\Xclassq]Udesctypeq^h]uh2Nh3hh]q_(csphinx.addnodes desc_signature q`)qa}qb(h XKTaskTrace(task_name, task_id, args, kwargs, task=None, propagate=None, **_)h!hVh"U qch'Udesc_signatureqdh)}qe(h.]qfhaUmoduleqgh#Xcelery.execute.traceqhqi}qjbh-]h+]h,]h0]qkhaUfullnameqlX TaskTraceqmUclassqnUUfirstqouh2Nh3hh]qp(csphinx.addnodes desc_annotation qq)qr}qs(h Xclass h!hah"hch'Udesc_annotationqth)}qu(h+]h,]h-]h.]h0]uh2Nh3hh]qvhr?}r@bh-]h+]h,]h0]rAhahlXTaskTrace.handle_failurehnhmhouh2Nh3hh]rB(h)rC}rD(h Xhandle_failureh!j:h"hch'hh)}rE(h+]h,]h-]h.]h0]uh2Nh3hh]rFh}r?(h Uh!j:h"Nh'hKh)}r@(h.]h-]h+]h,]h0]Uentries]rA(hNX5trace() (celery.execute.trace.TraceInfo class method)hUtrBauh2Nh3hh]ubhU)rC}rD(h Uh!j:h"Nh'hXh)}rE(hZh[Xpyh.]h-]h+]h,]h0]h\X classmethodrFh^jFuh2Nh3hh]rG(h`)rH}rI(h X3TraceInfo.trace(fun, args, kwargs, propagate=False)h!jCh"hch'hdh)}rJ(h.]rKhahgh#Xcelery.execute.tracerLrM}rNbh-]h+]h,]h0]rOhahlXTraceInfo.tracehnj houh2Nh3hh]rP(hq)rQ}rR(h U classmethod rSh!jHh"hch'hth)}rT(h+]h,]h-]h.]h0]uh2Nh3hh]rUhUlocalNsh'Upendingr?h)}r@(h+]h,]h-]h.]h0]uh]ubaubuUsubstitution_namesrA}rBh'h3h)}rC(h+]h.]h-]Usourceh%h,]h0]uU footnotesrD]rEUrefidsrF}rGub.PKYDD߅::Ncelery-2.1-archived/.doctrees/internals/reference/celery.backends.amqp.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X,celery.backends.amqp.ResultPublisher.durableqX6celery.backends.amqp.AMQPBackend.reload_taskset_resultqX/celery.backends.amqp.ResultPublisher.serializerqX3celery.backends.amqp.AMQPBackend.reload_task_resultq X)celery.backends.amqp.AMQPBackend.wait_forq X/celery.backends.amqp.ResultConsumer.auto_deleteq Ucontentsq NX(celery.backends.amqp.AMQPBackend.consumeq X%celery.backends.amqp.AMQResultWarningqX%celery.backends.amqp.AMQPBackend.pollqX$backend: amqp - celery.backends.amqpqNX$celery.backends.amqp.ResultPublisherqX+celery.backends.amqp.AMQPBackend.connectionqX,celery.backends.amqp.ResultConsumer.exchangeqX1celery.backends.amqp.ResultConsumer.exchange_typeqX2celery.backends.amqp.ResultPublisher.exchange_typeqX.celery.backends.amqp.AMQPBackend.get_task_metaqX2celery.backends.amqp.ResultPublisher.delivery_modeqX0celery.backends.amqp.AMQPBackend.restore_tasksetqX celery.backends.amqp.AMQPBackendqX&celery.backends.amqp.AMQPBackend.closeqX#celery.backends.amqp.ResultConsumerqX*celery.backends.amqp.ResultConsumer.no_ackqX-celery.backends.amqp.AMQPBackend.save_tasksetqX0celery.backends.amqp.ResultPublisher.auto_deleteqX+celery.backends.amqp.ResultConsumer.durableqX-celery.backends.amqp.AMQPBackend.store_resultq X-celery.backends.amqp.ResultPublisher.exchangeq!uUsubstitution_defsq"}q#Uparse_messagesq$]q%Ucurrent_sourceq&NU decorationq'NUautofootnote_startq(KUnameidsq)}q*(hhhhhhh h h h h h h Ucontentsq+h h hhhhhU!backend-amqp-celery-backends-amqpq,hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh h h!h!uUchildrenq-]q.cdocutils.nodes section q/)q0}q1(U rawsourceq2UUparentq3hUsourceq4cdocutils.nodes reprunicode q5Xf/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.amqp.rstq6q7}q8bUtagnameq9Usectionq:U attributesq;}q<(Udupnamesq=]Uclassesq>]Ubackrefsq?]Uidsq@]qAh,aUnamesqB]qChauUlineqDKUdocumentqEhh-]qF(cdocutils.nodes title qG)qH}qI(h2X$Backend: AMQP - celery.backends.amqpqJh3h0h4h7h9UtitleqKh;}qL(h=]h>]h?]h@]hB]uhDKhEhh-]qMcdocutils.nodes Text qNX$Backend: AMQP - celery.backends.amqpqOqP}qQ(h2hJh3hHubaubcdocutils.nodes target qR)qS}qT(h2Uh3h0h4U qUh9UtargetqVh;}qW(h=]h@]qXXmodule-celery.backends.amqpqYah?]Uismodh>]hB]uhDKhEhh-]ubcsphinx.addnodes index qZ)q[}q\(h2Uh3h0h4hUh9Uindexq]h;}q^(h@]h?]h=]h>]hB]Uentries]q_(Usingleq`Xcelery.backends.amqp (module)Xmodule-celery.backends.amqpUtqaauhDKhEhh-]ubcdocutils.nodes paragraph qb)qc}qd(h2Xcelery.backends.amqpqeh3h0h4Xn/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/amqp.py:docstring of celery.backends.amqpqfh9U paragraphqgh;}qh(h=]h>]h?]h@]hB]uhDKhEhh-]qihNXcelery.backends.amqpqjqk}ql(h2heh3hcubaubhZ)qm}qn(h2Uh3h0h4Nh9h]h;}qo(h@]h?]h=]h>]hB]Uentries]qp(h`X+AMQPBackend (class in celery.backends.amqp)hUtqqauhDNhEhh-]ubcsphinx.addnodes desc qr)qs}qt(h2Uh3h0h4Nh9Udescquh;}qv(UnoindexqwUdomainqxXpyh@]h?]h=]h>]hB]UobjtypeqyXclassqzUdesctypeq{hzuhDNhEhh-]q|(csphinx.addnodes desc_signature q})q~}q(h2XAMQPBackend(connection=None, exchange=None, exchange_type=None, persistent=None, serializer=None, auto_delete=None, expires=None, **kwargs)h3hsh4U qh9Udesc_signatureqh;}q(h@]qhaUmoduleqh5Xcelery.backends.amqpqq}qbh?]h=]h>]hB]qhaUfullnameqX AMQPBackendqUclassqUUfirstquhDNhEhh-]q(csphinx.addnodes desc_annotation q)q}q(h2Xclass h3h~h4hh9Udesc_annotationqh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]qhNXclass qq}q(h2Uh3hubaubcsphinx.addnodes desc_addname q)q}q(h2Xcelery.backends.amqp.h3h~h4hh9U desc_addnameqh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]qhNXcelery.backends.amqp.qq}q(h2Uh3hubaubcsphinx.addnodes desc_name q)q}q(h2hh3h~h4hh9U desc_nameqh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]qhNX AMQPBackendqq}q(h2Uh3hubaubcsphinx.addnodes desc_parameterlist q)q}q(h2Uh3h~h4hh9Udesc_parameterlistqh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]q(csphinx.addnodes desc_parameter q)q}q(h2Xconnection=Noneh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNXconnection=Noneqq}q(h2Uh3hubah9Udesc_parameterqubh)q}q(h2X exchange=Noneh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNX exchange=Noneqq}q(h2Uh3hubah9hubh)q}q(h2Xexchange_type=Noneh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNXexchange_type=NoneqÅq}q(h2Uh3hubah9hubh)q}q(h2Xpersistent=Noneh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNXpersistent=Noneqʅq}q(h2Uh3hubah9hubh)q}q(h2Xserializer=Noneh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNXserializer=Noneqхq}q(h2Uh3hubah9hubh)q}q(h2Xauto_delete=Noneh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNXauto_delete=Noneq؅q}q(h2Uh3hubah9hubh)q}q(h2X expires=Noneh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNX expires=Noneq߅q}q(h2Uh3hubah9hubh)q}q(h2X**kwargsh;}q(h=]h>]h?]h@]hB]uh3hh-]qhNX**kwargsq慁q}q(h2Uh3hubah9hubeubeubcsphinx.addnodes desc_content q)q}q(h2Uh3hsh4hh9U desc_contentqh;}q(h=]h>]h?]h@]hB]uhDNhEhh-]q(hb)q}q(h2XaAMQP backend. Publish results by sending messages to the broker using the task id as routing key.qh3hh4Xz/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/amqp.py:docstring of celery.backends.amqp.AMQPBackendqh9hgh;}q(h=]h>]h?]h@]hB]uhDKhEhh-]qhNXaAMQP backend. Publish results by sending messages to the broker using the task id as routing key.qq}q(h2hh3hubaubhb)q}q(h2X**NOTE:** Results published using this backend is read-once only. After the result has been read, the result is deleted. (however, it's still cached locally by the backend instance).h3hh4hh9hgh;}q(h=]h>]h?]h@]hB]uhDKhEhh-]q(cdocutils.nodes strong q)q}q(h2X **NOTE:**h;}q(h=]h>]h?]h@]hB]uh3hh-]rhNXNOTE:rr}r(h2Uh3hubah9UstrongrubhNX Results published using this backend is read-once only. After the result has been read, the result is deleted. (however, it's still cached locally by the backend instance).rr}r(h2X Results published using this backend is read-once only. After the result has been read, the result is deleted. (however, it's still cached locally by the backend instance).h3hubeubhZ)r}r (h2Uh3hh4Nh9h]h;}r (h@]h?]h=]h>]hB]Uentries]r (h`X1close() (celery.backends.amqp.AMQPBackend method)hUtr auhDNhEhh-]ubhr)r }r(h2Uh3hh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyXmethodrh{juhDNhEhh-]r(h})r}r(h2XAMQPBackend.close()h3j h4hh9hh;}r(h@]rhahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rhahXAMQPBackend.closehhhuhDNhEhh-]r(h)r}r(h2Xcloseh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXcloserr }r!(h2Uh3jubaubh)r"}r#(h2Uh3jh4hh9hh;}r$(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubh)r%}r&(h2Uh3j h4hh9hh;}r'(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r(}r)(h2Uh3hh4Nh9h]h;}r*(h@]h?]h=]h>]hB]Uentries]r+(h`X7connection (celery.backends.amqp.AMQPBackend attribute)hUtr,auhDNhEhh-]ubhr)r-}r.(h2Uh3hh4Nh9huh;}r/(hwhxXpyh@]h?]h=]h>]hB]hyX attributer0h{j0uhDNhEhh-]r1(h})r2}r3(h2XAMQPBackend.connectionh3j-h4hh9hh;}r4(h@]r5hahh5Xcelery.backends.amqpr6r7}r8bh?]h=]h>]hB]r9hahXAMQPBackend.connectionhhhuhDNhEhh-]r:h)r;}r<(h2X connectionh3j2h4hh9hh;}r=(h=]h>]h?]h@]hB]uhDNhEhh-]r>hNX connectionr?r@}rA(h2Uh3j;ubaubaubh)rB}rC(h2Uh3j-h4hh9hh;}rD(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)rE}rF(h2Uh3hh4Nh9h]h;}rG(h@]h?]h=]h>]hB]Uentries]rH(h`X3consume() (celery.backends.amqp.AMQPBackend method)h UtrIauhDNhEhh-]ubhr)rJ}rK(h2Uh3hh4Nh9huh;}rL(hwhxXpyh@]h?]h=]h>]hB]hyXmethodrMh{jMuhDNhEhh-]rN(h})rO}rP(h2X*AMQPBackend.consume(task_id, timeout=None)h3jJh4hh9hh;}rQ(h@]rRh ahh5Xcelery.backends.amqprSrT}rUbh?]h=]h>]hB]rVh ahXAMQPBackend.consumehhhuhDNhEhh-]rW(h)rX}rY(h2Xconsumeh3jOh4hh9hh;}rZ(h=]h>]h?]h@]hB]uhDNhEhh-]r[hNXconsumer\r]}r^(h2Uh3jXubaubh)r_}r`(h2Uh3jOh4hh9hh;}ra(h=]h>]h?]h@]hB]uhDNhEhh-]rb(h)rc}rd(h2Xtask_idh;}re(h=]h>]h?]h@]hB]uh3j_h-]rfhNXtask_idrgrh}ri(h2Uh3jcubah9hubh)rj}rk(h2X timeout=Noneh;}rl(h=]h>]h?]h@]hB]uh3j_h-]rmhNX timeout=Nonernro}rp(h2Uh3jjubah9hubeubeubh)rq}rr(h2Uh3jJh4hh9hh;}rs(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)rt}ru(h2Uh3hh4Nh9h]h;}rv(h@]h?]h=]h>]hB]Uentries]rw(h`X9get_task_meta() (celery.backends.amqp.AMQPBackend method)hUtrxauhDNhEhh-]ubhr)ry}rz(h2Uh3hh4Nh9huh;}r{(hwhxXpyh@]h?]h=]h>]hB]hyXmethodr|h{j|uhDNhEhh-]r}(h})r~}r(h2X.AMQPBackend.get_task_meta(task_id, cache=True)h3jyh4hh9hh;}r(h@]rhahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rhahXAMQPBackend.get_task_metahhhuhDNhEhh-]r(h)r}r(h2X get_task_metah3j~h4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX get_task_metarr}r(h2Uh3jubaubh)r}r(h2Uh3j~h4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(h)r}r(h2Xtask_idh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXtask_idrr}r(h2Uh3jubah9hubh)r}r(h2X cache=Trueh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNX cache=Truerr}r(h2Uh3jubah9hubeubeubh)r}r(h2Uh3jyh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r(h2Uh3hh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X0poll() (celery.backends.amqp.AMQPBackend method)hUtrauhDNhEhh-]ubhr)r}r(h2Uh3hh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyXmethodrh{juhDNhEhh-]r(h})r}r(h2XAMQPBackend.poll(task_id)h3jh4hh9hh;}r(h@]rhahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rhahXAMQPBackend.pollhhhuhDNhEhh-]r(h)r}r(h2Xpollh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXpollrr}r(h2Uh3jubaubh)r}r(h2Uh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rh)r}r(h2Xtask_idh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXtask_idrr}r(h2Uh3jubah9hubaubeubh)r}r(h2Uh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r(h2Uh3hh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X>reload_task_result() (celery.backends.amqp.AMQPBackend method)h UtrauhDNhEhh-]ubhr)r}r(h2Uh3hh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyXmethodrh{juhDNhEhh-]r(h})r}r(h2X'AMQPBackend.reload_task_result(task_id)h3jh4hh9hh;}r(h@]rh ahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rh ahXAMQPBackend.reload_task_resulthhhuhDNhEhh-]r(h)r}r(h2Xreload_task_resulth3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXreload_task_resultrr}r(h2Uh3jubaubh)r}r(h2Uh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rh)r}r(h2Xtask_idh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXtask_idrr}r(h2Uh3jubah9hubaubeubh)r}r(h2Uh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r(h2Uh3hh4X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/amqp.py:docstring of celery.backends.amqp.AMQPBackend.reload_taskset_resultrh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`XAreload_taskset_result() (celery.backends.amqp.AMQPBackend method)hUtrauhDNhEhh-]ubhr)r}r(h2Uh3hh4jh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyXmethodrh{juhDNhEhh-]r(h})r}r(h2X*AMQPBackend.reload_taskset_result(task_id)h3jh4hh9hh;}r(h@]rhahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rhahX!AMQPBackend.reload_taskset_resulthhhuhDNhEhh-]r(h)r}r(h2Xreload_taskset_resulth3jh4hh9hh;}r (h=]h>]h?]h@]hB]uhDNhEhh-]r hNXreload_taskset_resultr r }r (h2Uh3jubaubh)r}r(h2Uh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rh)r}r(h2Xtask_idh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXtask_idrr}r(h2Uh3jubah9hubaubeubh)r}r(h2Uh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhb)r}r(h2X>Reload taskset result, even if it has been previously fetched.rh3jh4jh9hgh;}r (h=]h>]h?]h@]hB]uhDKhEhh-]r!hNX>Reload taskset result, even if it has been previously fetched.r"r#}r$(h2jh3jubaubaubeubhZ)r%}r&(h2Uh3hh4X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/amqp.py:docstring of celery.backends.amqp.AMQPBackend.restore_tasksetr'h9h]h;}r((h@]h?]h=]h>]hB]Uentries]r)(h`X;restore_taskset() (celery.backends.amqp.AMQPBackend method)hUtr*auhDNhEhh-]ubhr)r+}r,(h2Uh3hh4j'h9huh;}r-(hwhxXpyh@]h?]h=]h>]hB]hyXmethodr.h{j.uhDNhEhh-]r/(h})r0}r1(h2X3AMQPBackend.restore_taskset(taskset_id, cache=True)h3j+h4hh9hh;}r2(h@]r3hahh5Xcelery.backends.amqpr4r5}r6bh?]h=]h>]hB]r7hahXAMQPBackend.restore_tasksethhhuhDNhEhh-]r8(h)r9}r:(h2Xrestore_taskseth3j0h4hh9hh;}r;(h=]h>]h?]h@]hB]uhDNhEhh-]r<hNXrestore_tasksetr=r>}r?(h2Uh3j9ubaubh)r@}rA(h2Uh3j0h4hh9hh;}rB(h=]h>]h?]h@]hB]uhDNhEhh-]rC(h)rD}rE(h2X taskset_idh;}rF(h=]h>]h?]h@]hB]uh3j@h-]rGhNX taskset_idrHrI}rJ(h2Uh3jDubah9hubh)rK}rL(h2X cache=Trueh;}rM(h=]h>]h?]h@]hB]uh3j@h-]rNhNX cache=TruerOrP}rQ(h2Uh3jKubah9hubeubeubh)rR}rS(h2Uh3j+h4hh9hh;}rT(h=]h>]h?]h@]hB]uhDNhEhh-]rUhb)rV}rW(h2XGet the result of a taskset.rXh3jRh4j'h9hgh;}rY(h=]h>]h?]h@]hB]uhDKhEhh-]rZhNXGet the result of a taskset.r[r\}r](h2jXh3jVubaubaubeubhZ)r^}r_(h2Uh3hh4X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/amqp.py:docstring of celery.backends.amqp.AMQPBackend.save_tasksetr`h9h]h;}ra(h@]h?]h=]h>]hB]Uentries]rb(h`X8save_taskset() (celery.backends.amqp.AMQPBackend method)hUtrcauhDNhEhh-]ubhr)rd}re(h2Uh3hh4j`h9huh;}rf(hwhxXpyh@]h?]h=]h>]hB]hyXmethodrgh{jguhDNhEhh-]rh(h})ri}rj(h2X,AMQPBackend.save_taskset(taskset_id, result)h3jdh4hh9hh;}rk(h@]rlhahh5Xcelery.backends.amqprmrn}robh?]h=]h>]hB]rphahXAMQPBackend.save_tasksethhhuhDNhEhh-]rq(h)rr}rs(h2X save_taskseth3jih4hh9hh;}rt(h=]h>]h?]h@]hB]uhDNhEhh-]ruhNX save_tasksetrvrw}rx(h2Uh3jrubaubh)ry}rz(h2Uh3jih4hh9hh;}r{(h=]h>]h?]h@]hB]uhDNhEhh-]r|(h)r}}r~(h2X taskset_idh;}r(h=]h>]h?]h@]hB]uh3jyh-]rhNX taskset_idrr}r(h2Uh3j}ubah9hubh)r}r(h2Xresulth;}r(h=]h>]h?]h@]hB]uh3jyh-]rhNXresultrr}r(h2Uh3jubah9hubeubeubh)r}r(h2Uh3jdh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhb)r}r(h2X&Store the result and status of a task.rh3jh4j`h9hgh;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNX&Store the result and status of a task.rr}r(h2jh3jubaubaubeubhZ)r}r(h2Uh3hh4X/var/build/user_builds/celery/checkouts/2.1-archived/celery/backends/amqp.py:docstring of celery.backends.amqp.AMQPBackend.store_resultrh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X8store_result() (celery.backends.amqp.AMQPBackend method)h UtrauhDNhEhh-]ubhr)r}r(h2Uh3hh4jh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyXmethodrh{juhDNhEhh-]r(h})r}r(h2XbAMQPBackend.store_result(task_id, result, status, traceback=None, max_retries=20, retry_delay=0.2)h3jh4hh9hh;}r(h@]rh ahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rh ahXAMQPBackend.store_resulthhhuhDNhEhh-]r(h)r}r(h2X store_resulth3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX store_resultrr}r(h2Uh3jubaubh)r}r(h2Uh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(h)r}r(h2Xtask_idh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXtask_idrr}r(h2Uh3jubah9hubh)r}r(h2Xresulth;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXresultrr}r(h2Uh3jubah9hubh)r}r(h2Xstatush;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXstatusrr}r(h2Uh3jubah9hubh)r}r(h2Xtraceback=Noneh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXtraceback=Nonerr}r(h2Uh3jubah9hubh)r}r(h2Xmax_retries=20h;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXmax_retries=20rr}r(h2Uh3jubah9hubh)r}r(h2Xretry_delay=0.2h;}r(h=]h>]h?]h@]hB]uh3jh-]rhNXretry_delay=0.2rr}r(h2Uh3jubah9hubeubeubh)r}r(h2Uh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhb)r}r(h2X"Send task return value and status.rh3jh4jh9hgh;}r(h=]h>]h?]h@]hB]uhDKhEhh-]rhNX"Send task return value and status.rr}r(h2jh3jubaubaubeubhZ)r}r(h2Uh3hh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X4wait_for() (celery.backends.amqp.AMQPBackend method)h UtrauhDNhEhh-]ubhr)r}r(h2Uh3hh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyXmethodrh{juhDNhEhh-]r(h})r}r(h2X7AMQPBackend.wait_for(task_id, timeout=None, cache=True)h3jh4hh9hh;}r(h@]rh ahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rh ahXAMQPBackend.wait_forhhhuhDNhEhh-]r(h)r}r(h2Xwait_forh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXwait_forrr}r(h2Uh3jubaubh)r}r(h2Uh3jh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r (h)r }r (h2Xtask_idh;}r (h=]h>]h?]h@]hB]uh3jh-]r hNXtask_idrr}r(h2Uh3j ubah9hubh)r}r(h2X timeout=Noneh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNX timeout=Nonerr}r(h2Uh3jubah9hubh)r}r(h2X cache=Trueh;}r(h=]h>]h?]h@]hB]uh3jh-]rhNX cache=Truerr}r(h2Uh3jubah9hubeubeubh)r}r (h2Uh3jh4hh9hh;}r!(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubeubeubhZ)r"}r#(h2Uh3h0h4Nh9h]h;}r$(h@]h?]h=]h>]hB]Uentries]r%(h`XAMQResultWarningr&hUtr'auhDNhEhh-]ubhr)r(}r)(h2Uh3h0h4Nh9huh;}r*(hwhxXpyh@]h?]h=]h>]hB]hyX exceptionr+h{j+uhDNhEhh-]r,(h})r-}r.(h2j&h3j(h4hh9hh;}r/(h@]r0hahh5Xcelery.backends.amqpr1r2}r3bh?]h=]h>]hB]r4hahj&hUhuhDNhEhh-]r5(h)r6}r7(h2X exception h3j-h4hh9hh;}r8(h=]h>]h?]h@]hB]uhDNhEhh-]r9hNX exception r:r;}r<(h2Uh3j6ubaubh)r=}r>(h2Xcelery.backends.amqp.h3j-h4hh9hh;}r?(h=]h>]h?]h@]hB]uhDNhEhh-]r@hNXcelery.backends.amqp.rArB}rC(h2Uh3j=ubaubh)rD}rE(h2j&h3j-h4hh9hh;}rF(h=]h>]h?]h@]hB]uhDNhEhh-]rGhNXAMQResultWarningrHrI}rJ(h2Uh3jDubaubeubh)rK}rL(h2Uh3j(h4hh9hh;}rM(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)rN}rO(h2Uh3h0h4Nh9h]h;}rP(h@]h?]h=]h>]hB]Uentries]rQ(h`X.ResultConsumer (class in celery.backends.amqp)hUtrRauhDNhEhh-]ubhr)rS}rT(h2Uh3h0h4Nh9huh;}rU(hwhxXpyh@]h?]h=]h>]hB]hyXclassrVh{jVuhDNhEhh-]rW(h})rX}rY(h2X-ResultConsumer(connection, task_id, **kwargs)h3jSh4hh9hh;}rZ(h@]r[hahh5Xcelery.backends.amqpr\r]}r^bh?]h=]h>]hB]r_hahXResultConsumerr`hUhuhDNhEhh-]ra(h)rb}rc(h2Xclass h3jXh4hh9hh;}rd(h=]h>]h?]h@]hB]uhDNhEhh-]rehNXclass rfrg}rh(h2Uh3jbubaubh)ri}rj(h2Xcelery.backends.amqp.h3jXh4hh9hh;}rk(h=]h>]h?]h@]hB]uhDNhEhh-]rlhNXcelery.backends.amqp.rmrn}ro(h2Uh3jiubaubh)rp}rq(h2j`h3jXh4hh9hh;}rr(h=]h>]h?]h@]hB]uhDNhEhh-]rshNXResultConsumerrtru}rv(h2Uh3jpubaubh)rw}rx(h2Uh3jXh4hh9hh;}ry(h=]h>]h?]h@]hB]uhDNhEhh-]rz(h)r{}r|(h2X connectionh;}r}(h=]h>]h?]h@]hB]uh3jwh-]r~hNX connectionrr}r(h2Uh3j{ubah9hubh)r}r(h2Xtask_idh;}r(h=]h>]h?]h@]hB]uh3jwh-]rhNXtask_idrr}r(h2Uh3jubah9hubh)r}r(h2X**kwargsh;}r(h=]h>]h?]h@]hB]uh3jwh-]rhNX**kwargsrr}r(h2Uh3jubah9hubeubeubh)r}r(h2Uh3jSh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(hZ)r}r(h2Uh3jh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X;auto_delete (celery.backends.amqp.ResultConsumer attribute)h UtrauhDNhEhh-]ubhr)r}r(h2Uh3jh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyX attributerh{juhDNhEhh-]r(h})r}r(h2XResultConsumer.auto_deleteh3jh4U rh9hh;}r(h@]rh ahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rh ahXResultConsumer.auto_deletehj`huhDNhEhh-]r(h)r}r(h2X auto_deleteh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX auto_deleterr}r(h2Uh3jubaubh)r}r(h2X = Trueh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX = Truerr}r(h2Uh3jubaubeubh)r}r(h2Uh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r(h2Uh3jh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X7durable (celery.backends.amqp.ResultConsumer attribute)hUtrauhDNhEhh-]ubhr)r}r(h2Uh3jh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyX attributerh{juhDNhEhh-]r(h})r}r(h2XResultConsumer.durableh3jh4jh9hh;}r(h@]rhahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rhahXResultConsumer.durablehj`huhDNhEhh-]r(h)r}r(h2Xdurableh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXdurablerr}r(h2Uh3jubaubh)r}r(h2X = Falseh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX = Falserr}r(h2Uh3jubaubeubh)r}r(h2Uh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r(h2Uh3jh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X8exchange (celery.backends.amqp.ResultConsumer attribute)hUtrauhDNhEhh-]ubhr)r}r(h2Uh3jh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyX attributerh{juhDNhEhh-]r(h})r}r(h2XResultConsumer.exchangeh3jh4jh9hh;}r(h@]rhahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rhahXResultConsumer.exchangehj`huhDNhEhh-]r(h)r}r(h2Xexchangeh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXexchangerr}r(h2Uh3jubaubh)r}r(h2X = 'celeryresults'h3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX = 'celeryresults'rr}r(h2Uh3jubaubeubh)r}r(h2Uh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r(h2Uh3jh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X=exchange_type (celery.backends.amqp.ResultConsumer attribute)hUtrauhDNhEhh-]ubhr)r}r(h2Uh3jh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyX attributer h{j uhDNhEhh-]r (h})r }r (h2XResultConsumer.exchange_typeh3jh4jh9hh;}r (h@]rhahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rhahXResultConsumer.exchange_typehj`huhDNhEhh-]r(h)r}r(h2X exchange_typeh3j h4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX exchange_typerr}r(h2Uh3jubaubh)r}r(h2X = 'direct'h3j h4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX = 'direct'rr }r!(h2Uh3jubaubeubh)r"}r#(h2Uh3jh4jh9hh;}r$(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r%}r&(h2Uh3jh4Nh9h]h;}r'(h@]h?]h=]h>]hB]Uentries]r((h`X6no_ack (celery.backends.amqp.ResultConsumer attribute)hUtr)auhDNhEhh-]ubhr)r*}r+(h2Uh3jh4Nh9huh;}r,(hwhxXpyh@]h?]h=]h>]hB]hyX attributer-h{j-uhDNhEhh-]r.(h})r/}r0(h2XResultConsumer.no_ackh3j*h4jh9hh;}r1(h@]r2hahh5Xcelery.backends.amqpr3r4}r5bh?]h=]h>]hB]r6hahXResultConsumer.no_ackhj`huhDNhEhh-]r7(h)r8}r9(h2Xno_ackh3j/h4jh9hh;}r:(h=]h>]h?]h@]hB]uhDNhEhh-]r;hNXno_ackr<r=}r>(h2Uh3j8ubaubh)r?}r@(h2X = Trueh3j/h4jh9hh;}rA(h=]h>]h?]h@]hB]uhDNhEhh-]rBhNX = TruerCrD}rE(h2Uh3j?ubaubeubh)rF}rG(h2Uh3j*h4jh9hh;}rH(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubeubeubhZ)rI}rJ(h2Uh3h0h4Nh9h]h;}rK(h@]h?]h=]h>]hB]Uentries]rL(h`X/ResultPublisher (class in celery.backends.amqp)hUtrMauhDNhEhh-]ubhr)rN}rO(h2Uh3h0h4Nh9huh;}rP(hwhxXpyh@]h?]h=]h>]hB]hyXclassrQh{jQuhDNhEhh-]rR(h})rS}rT(h2X.ResultPublisher(connection, task_id, **kwargs)h3jNh4hh9hh;}rU(h@]rVhahh5Xcelery.backends.amqprWrX}rYbh?]h=]h>]hB]rZhahXResultPublisherr[hUhuhDNhEhh-]r\(h)r]}r^(h2Xclass h3jSh4hh9hh;}r_(h=]h>]h?]h@]hB]uhDNhEhh-]r`hNXclass rarb}rc(h2Uh3j]ubaubh)rd}re(h2Xcelery.backends.amqp.h3jSh4hh9hh;}rf(h=]h>]h?]h@]hB]uhDNhEhh-]rghNXcelery.backends.amqp.rhri}rj(h2Uh3jdubaubh)rk}rl(h2j[h3jSh4hh9hh;}rm(h=]h>]h?]h@]hB]uhDNhEhh-]rnhNXResultPublisherrorp}rq(h2Uh3jkubaubh)rr}rs(h2Uh3jSh4hh9hh;}rt(h=]h>]h?]h@]hB]uhDNhEhh-]ru(h)rv}rw(h2X connectionh;}rx(h=]h>]h?]h@]hB]uh3jrh-]ryhNX connectionrzr{}r|(h2Uh3jvubah9hubh)r}}r~(h2Xtask_idh;}r(h=]h>]h?]h@]hB]uh3jrh-]rhNXtask_idrr}r(h2Uh3j}ubah9hubh)r}r(h2X**kwargsh;}r(h=]h>]h?]h@]hB]uh3jrh-]rhNX**kwargsrr}r(h2Uh3jubah9hubeubeubh)r}r(h2Uh3jNh4hh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]r(hZ)r}r(h2Uh3jh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X<auto_delete (celery.backends.amqp.ResultPublisher attribute)hUtrauhDNhEhh-]ubhr)r}r(h2Uh3jh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyX attributerh{juhDNhEhh-]r(h})r}r(h2XResultPublisher.auto_deleteh3jh4jh9hh;}r(h@]rhahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rhahXResultPublisher.auto_deletehj[huhDNhEhh-]r(h)r}r(h2X auto_deleteh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX auto_deleterr}r(h2Uh3jubaubh)r}r(h2X = Trueh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX = Truerr}r(h2Uh3jubaubeubh)r}r(h2Uh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r(h2Uh3jh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X>delivery_mode (celery.backends.amqp.ResultPublisher attribute)hUtrauhDNhEhh-]ubhr)r}r(h2Uh3jh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyX attributerh{juhDNhEhh-]r(h})r}r(h2XResultPublisher.delivery_modeh3jh4jh9hh;}r(h@]rhahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rhahXResultPublisher.delivery_modehj[huhDNhEhh-]r(h)r}r(h2X delivery_modeh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX delivery_moderr}r(h2Uh3jubaubh)r}r(h2X = 1h3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX = 1rr}r(h2Uh3jubaubeubh)r}r(h2Uh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r(h2Uh3jh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X8durable (celery.backends.amqp.ResultPublisher attribute)hUtrauhDNhEhh-]ubhr)r}r(h2Uh3jh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyX attributerh{juhDNhEhh-]r(h})r}r(h2XResultPublisher.durableh3jh4jh9hh;}r(h@]rhahh5Xcelery.backends.amqprr}rbh?]h=]h>]hB]rhahXResultPublisher.durablehj[huhDNhEhh-]r(h)r}r(h2Xdurableh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXdurablerr}r(h2Uh3jubaubh)r}r(h2X = Falseh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX = Falserr}r(h2Uh3jubaubeubh)r}r(h2Uh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r(h2Uh3jh4Nh9h]h;}r(h@]h?]h=]h>]hB]Uentries]r(h`X9exchange (celery.backends.amqp.ResultPublisher attribute)h!UtrauhDNhEhh-]ubhr)r}r(h2Uh3jh4Nh9huh;}r(hwhxXpyh@]h?]h=]h>]hB]hyX attributerh{juhDNhEhh-]r(h})r}r(h2XResultPublisher.exchangeh3jh4jh9hh;}r(h@]rh!ahh5Xcelery.backends.amqpr r }r bh?]h=]h>]hB]r h!ahXResultPublisher.exchangehj[huhDNhEhh-]r (h)r}r(h2Xexchangeh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNXexchangerr}r(h2Uh3jubaubh)r}r(h2X = 'celeryresults'h3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]rhNX = 'celeryresults'rr}r(h2Uh3jubaubeubh)r}r(h2Uh3jh4jh9hh;}r(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)r}r (h2Uh3jh4Nh9h]h;}r!(h@]h?]h=]h>]hB]Uentries]r"(h`X>exchange_type (celery.backends.amqp.ResultPublisher attribute)hUtr#auhDNhEhh-]ubhr)r$}r%(h2Uh3jh4Nh9huh;}r&(hwhxXpyh@]h?]h=]h>]hB]hyX attributer'h{j'uhDNhEhh-]r((h})r)}r*(h2XResultPublisher.exchange_typeh3j$h4jh9hh;}r+(h@]r,hahh5Xcelery.backends.amqpr-r.}r/bh?]h=]h>]hB]r0hahXResultPublisher.exchange_typehj[huhDNhEhh-]r1(h)r2}r3(h2X exchange_typeh3j)h4jh9hh;}r4(h=]h>]h?]h@]hB]uhDNhEhh-]r5hNX exchange_typer6r7}r8(h2Uh3j2ubaubh)r9}r:(h2X = 'direct'h3j)h4jh9hh;}r;(h=]h>]h?]h@]hB]uhDNhEhh-]r<hNX = 'direct'r=r>}r?(h2Uh3j9ubaubeubh)r@}rA(h2Uh3j$h4jh9hh;}rB(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubhZ)rC}rD(h2Uh3jh4Nh9h]h;}rE(h@]h?]h=]h>]hB]Uentries]rF(h`X;serializer (celery.backends.amqp.ResultPublisher attribute)hUtrGauhDNhEhh-]ubhr)rH}rI(h2Uh3jh4Nh9huh;}rJ(hwhxXpyh@]h?]h=]h>]hB]hyX attributerKh{jKuhDNhEhh-]rL(h})rM}rN(h2XResultPublisher.serializerrOh3jHh4jh9hh;}rP(h@]rQhahh5Xcelery.backends.amqprRrS}rTbh?]h=]h>]hB]rUhahXResultPublisher.serializerhj[huhDNhEhh-]rV(h)rW}rX(h2X serializerh3jMh4jh9hh;}rY(h=]h>]h?]h@]hB]uhDNhEhh-]rZhNX serializerr[r\}r](h2Uh3jWubaubh)r^}r_(h2X = 'pickle'h3jMh4jh9hh;}r`(h=]h>]h?]h@]hB]uhDNhEhh-]rahNX = 'pickle'rbrc}rd(h2Uh3j^ubaubeubh)re}rf(h2Uh3jHh4jh9hh;}rg(h=]h>]h?]h@]hB]uhDNhEhh-]ubeubeubeubeubah2UU transformerrhNU footnote_refsri}rjUrefnamesrk}rlUsymbol_footnotesrm]rnUautofootnote_refsro]rpUsymbol_footnote_refsrq]rrU citationsrs]rthEhU current_lineruNUtransform_messagesrv]rwcdocutils.nodes system_message rx)ry}rz(h2Uh;}r{(h=]UlevelKh@]h?]UsourcehUh>]hB]UlineKUtypeUINFOr|uh-]r}hb)r~}r(h2Uh;}r(h=]h>]h?]h@]hB]uh3jyh-]rhNXAHyperlink target "module-celery.backends.amqp" is not referenced.rr}r(h2Uh3j~ubah9hgubah9Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhKNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUf/var/build/user_builds/celery/checkouts/2.1-archived/docs/internals/reference/celery.backends.amqp.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhjhjMh jh jh jh+cdocutils.nodes topic r)r}r(h2Uh3h0h4h7h9Utopicrh;}r(h=]h>]r(UcontentsrUlocalreh?]h@]rh+ahB]rh auhDKhEhh-]rcdocutils.nodes pending r)r}r(h2X.. contents:: :local:h3jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh9Upendingrh;}r(h=]h>]h?]h@]hB]uh-]ubaubh jOhj-hjhjShj2hjhj hj)hj~hjhj0hh~hYhShjhjXhj/hjihjhjh jh!jh,h0uUsubstitution_namesr}rh9hEh;}r(h=]h@]h?]Usourceh7h>]hB]uU footnotesr]rUrefidsr}rub.PKYDDL;H;H<celery-2.1-archived/.doctrees/userguide/remote-tasks.doctreecdocutils.nodes document q)q}q(U nametypesq}q(XbasicsqNXguide-webhooksqXwebhook-executingqXwebhook-django-exampleq Xwebhook-basicsq Xhttp callback tasks (webhooks)q NXexecuting webhook tasksq NXdjango webhook exampleq NXwebhook-rails-exampleqXruby on rails webhook exampleqNUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUbasicsqhUguide-webhooksqhUwebhook-executingqh Uwebhook-django-exampleqh Uwebhook-basicsqh Uhttp-callback-tasks-webhooksqh Uexecuting-webhook-tasksq h Udjango-webhook-exampleq!hUwebhook-rails-exampleq"hUruby-on-rails-webhook-exampleq#hUcontentsq$uUchildrenq%]q&(cdocutils.nodes target q')q(}q)(U rawsourceq*X.. _guide-webhooks:Uparentq+hUsourceq,cdocutils.nodes reprunicode q-XT/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/remote-tasks.rstq.q/}q0bUtagnameq1Utargetq2U attributesq3}q4(Uidsq5]Ubackrefsq6]Udupnamesq7]Uclassesq8]Unamesq9]Urefidq:huUlineq;KUdocumentq}q?(h*Uh+hh,h/Uexpect_referenced_by_nameq@}qAhh(sh1UsectionqBh3}qC(h7]h8]h6]h5]qD(Xmodule-celery.task.httpqEhheh9]qF(h heuh;Khh,h/h1UtitleqNh3}qO(h7]h8]h6]h5]h9]uh;Khh,h/h1UindexqXh3}qY(h5]h6]h7]h8]h9]Uentries]qZ(Usingleq[Xcelery.task.http (module)Xmodule-celery.task.httpUtq\auh;Khh,h/h1Utopicq`h3}qa(h7]h8]qb(UcontentsqcUlocalqdeh6]h5]qeh$ah9]qfhauh;K hh,h/h1h2h3}q(h5]h6]h7]h8]h9]h:huh;K hh,h/h@}qh hsh1hBh3}q(h7]h8]h6]h5]q(hheh9]q(hh euh;KhWhether to use GET or POST is up to you and your requirements.rh+hh,h/h1hh3}r(h7]h8]h6]h5]h9]uh;K!hWhether to use GET or POST is up to you and your requirements.r r }r (h*jh+jubaubhs)r }r(h*XdThe web page should then return a response in the following format if the execution was successful::h+hh,h/h1hh3}r(h7]h8]h6]h5]h9]uh;K#hh,h/h@}r/h j*sh1hBh3}r0(h7]h8]h6]h5]r1(h!heh9]r2(h h euh;K0hh+j-h,h/h1hh3}r?(h7]h8]h6]h5]h9]uh;K2hh+j<ubaubh)rD}rE(h*X+from django.http import HttpResponse from anyjson import serialize def multiply(request): x = int(request.GET["x"]) y = int(request.GET["y"]) result = x * y response = {"status": "success", "retval": result} return HttpResponse(serialize(response), mimetype="application/json")h+j-h,h/h1hh3}rF(UlinenosrGUlanguagerHXpythonhhh5]h6]h7]h8]h9]uh;K4hh,h/h@}rRhjMsh1hBh3}rS(h7]h8]h6]h5]rT(h#h"eh9]rU(hheuh;KDh "success", :retval => @x * @y} render :json => @status endh+jPh,h/h1hh3}ri(jGjHXrubyhhh5]h6]h7]h8]h9]uh;KHh "success", :retval => @x * @y} render :json => @status endrkrl}rm(h*Uh+jgubaubhs)rn}ro(h*XgYou can easily port this scheme to any language/framework; new examples and libraries are very welcome.rph+jPh,h/h1hh3}rq(h7]h8]h6]h5]h9]uh;KShh,h/h@}r{hjvsh1hBh3}r|(h7]h8]h6]h5]r}(h heh9]r~(h heuh;KYh>> from celery.task.http import URL >>> res = URL("http://example.com/multiply").get_async(x=10, y=10)h+jyh,Nh1U doctest_blockrh3}r(hhh5]h6]h7]h8]h9]uh;Nh>> from celery.task.http import URL >>> res = URL("http://example.com/multiply").get_async(x=10, y=10)rr}r(h*Uh+jubaubhs)r}r(h*Xo:class:`URL` is a shortcut to the :class:`HttpDispatchTask`. You can subclass this to extend the functionality.h+jyh,h/h1hh3}r(h7]h8]h6]h5]h9]uh;Kah>> from celery.task.http import HttpDispatchTask >>> res = HttpDispatchTask.delay(url="http://example.com/multiply", method="GET", x=10, y=10) >>> res.get() 100h+jyh,Nh1jh3}r(hhh5]h6]h7]h8]h9]uh;Nh>> from celery.task.http import HttpDispatchTask >>> res = HttpDispatchTask.delay(url="http://example.com/multiply", method="GET", x=10, y=10) >>> res.get() 100rr}r(h*Uh+jubaubhs)r}r(h*XcThe output of :program:`celeryd` (or the log file if enabled) should show the task being executed::h+jyh,h/h1hh3}r(h7]h8]h6]h5]h9]uh;KihhQX4Hyperlink target "guide-webhooks" is not referenced.r?r@}rA(h*Uh+j;ubah1hubah1Usystem_messagerBubj5)rC}rD(h*Uh3}rE(h7]UlevelKh5]h6]Usourceh/h8]h9]UlineK Utypej9uh%]rFhs)rG}rH(h*Uh3}rI(h7]h8]h6]h5]h9]uh+jCh%]rJhQX4Hyperlink target "webhook-basics" is not referenced.rKrL}rM(h*Uh+jGubah1hubah1jBubj5)rN}rO(h*Uh3}rP(h7]UlevelKh5]h6]Usourceh/h8]h9]UlineK-Utypej9uh%]rQhs)rR}rS(h*Uh3}rT(h7]h8]h6]h5]h9]uh+jNh%]rUhQX<Hyperlink target "webhook-django-example" is not referenced.rVrW}rX(h*Uh+jRubah1hubah1jBubj5)rY}rZ(h*Uh3}r[(h7]UlevelKh5]h6]Usourceh/h8]h9]UlineKAUtypej9uh%]r\hs)r]}r^(h*Uh3}r_(h7]h8]h6]h5]h9]uh+jYh%]r`hQX;Hyperlink target "webhook-rails-example" is not referenced.rarb}rc(h*Uh+j]ubah1hubah1jBubj5)rd}re(h*Uh3}rf(h7]UlevelKh5]h6]Usourceh/h8]h9]UlineKVUtypej9uh%]rghs)rh}ri(h*Uh3}rj(h7]h8]h6]h5]h9]uh+jdh%]rkhQX7Hyperlink target "webhook-executing" is not referenced.rlrm}rn(h*Uh+jhubah1hubah1jBubeUreporterroNUid_startrpKU autofootnotesrq]rrU citation_refsrs}rtUindirect_targetsru]rvUsettingsrw(cdocutils.frontend Values rxory}rz(Ufootnote_backlinksr{KUrecord_dependenciesr|NU rfc_base_urlr}Uhttp://tools.ietf.org/html/r~U tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhNNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUT/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/remote-tasks.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhhhh>hh>h!j-hhhjyhj-hhhEh')r}r(h*Uh+h>h,h/h1h2h3}r(h7]h5]rhEah6]Uismodh8]h9]uh;Kh(h:UU referencedq?Kh;h<)q@}qA(h:Uh?Kh;hUsourceqBcdocutils.nodes reprunicode qCXO/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/routing.rstqDqE}qFbUexpect_referenced_by_nameqG}qHhcdocutils.nodes target qI)qJ}qK(h:X.. _guide-routing:h;hhBhEUtagnameqLUtargetqMU attributesqN}qO(UidsqP]UbackrefsqQ]UdupnamesqR]UclassesqS]UnamesqT]UrefidqUU guide-routingqVuUlineqWKUdocumentqXhUchildrenqY]ubshLUsectionqZhN}q[(hR]q\X routing tasksq]ahS]hQ]hP]q^(U routing-tasksq_hVehT]q`hauhWKhXhUexpect_referenced_by_idqa}qbhVhJshY]qc(cdocutils.nodes title qd)qe}qf(h:X Routing Tasksqgh;h@hBhEhLUtitleqhhN}qi(hR]hS]hQ]hP]hT]uhWKhXhhY]qjcdocutils.nodes Text qkX Routing Tasksqlqm}qn(h:hgh;heubaubcdocutils.nodes warning qo)qp}qq(h:XThis document refers to functionality only available in brokers using AMQP. Other brokers may implement some functionality, see their respective documentation for more information, or contact the :ref:`mailing-list`.h;h@hBhEhLUwarningqrhN}qs(hR]hS]hQ]hP]hT]uhWNhXhhY]qtcdocutils.nodes paragraph qu)qv}qw(h:XThis document refers to functionality only available in brokers using AMQP. Other brokers may implement some functionality, see their respective documentation for more information, or contact the :ref:`mailing-list`.h;hphBhEhLU paragraphqxhN}qy(hR]hS]hQ]hP]hT]uhWK hY]qz(hkXThis document refers to functionality only available in brokers using AMQP. Other brokers may implement some functionality, see their respective documentation for more information, or contact the q{q|}q}(h:XThis document refers to functionality only available in brokers using AMQP. Other brokers may implement some functionality, see their respective documentation for more information, or contact the h;hvubcsphinx.addnodes pending_xref q~)q}q(h:X:ref:`mailing-list`qh;hvhBhEhLU pending_xrefqhN}q(UreftypeXrefUrefwarnqU reftargetqX mailing-listU refdomainXstdqhP]hQ]U refexplicithR]hS]hT]UrefdocqXuserguide/routingquhWK hY]qcdocutils.nodes emphasis q)q}q(h:hhN}q(hR]hS]q(UxrefqhXstd-refqehQ]hP]hT]uh;hhY]qhkX mailing-listqq}q(h:Uh;hubahLUemphasisqubaubhkX.q}q(h:X.h;hvubeubaubcdocutils.nodes topic q)q}q(h:Uh;h@hBhEhLUtopicqhN}q(hR]hS]q(UcontentsqUlocalqehQ]hP]qUcontentsqahT]qhauhWKhXhhY]qcdocutils.nodes bullet_list q)q}q(h:Uh;hhBNhLU bullet_listqhN}q(hR]hS]hQ]hP]hT]uhWNhXhhY]q(cdocutils.nodes list_item q)q}q(h:UhN}q(hR]hS]hQ]hP]hT]uh;hhY]q(hu)q}q(h:UhN}q(hR]hS]hQ]hP]hT]uh;hhY]qcdocutils.nodes reference q)q}q(h:UhN}q(hP]qUid5qahQ]hR]hS]hT]UrefidUbasicsquh;hhY]qhkXBasicsqq}q(h:XBasicsqh;hubahLU referencequbahLhxubh)q}q(h:UhN}q(hR]hS]hQ]hP]hT]uh;hhY]q(h)q}q(h:UhN}q(hR]hS]hQ]hP]hT]uh;hhY]q(hu)q}q(h:UhN}q(hR]hS]hQ]hP]hT]uh;hhY]qh)q}q(h:UhN}q(hP]qUid6qahQ]hR]hS]hT]UrefidUautomatic-routingquh;hhY]qhkXAutomatic routingqӅq}q(h:XAutomatic routingqh;hubahLhubahLhxubh)q}q(h:UhN}q(hR]hS]hQ]hP]hT]uh;hhY]q(h)q}q(h:UhN}q(hR]hS]hQ]hP]hT]uh;hhY]qhu)q}q(h:UhN}q(hR]hS]hQ]hP]hT]uh;hhY]qh)q}q(h:UhN}q(hP]qUid7qahQ]hR]hS]hT]UrefidU&changing-the-name-of-the-default-queuequh;hhY]qhkX&Changing the name of the default queueqꅁq}q(h:X&Changing the name of the default queueqh;hubahLhubahLhxubahLU list_itemqubh)q}q(h:UhN}q(hR]hS]hQ]hP]hT]uh;hhY]qhu)q}q(h:UhN}q(hR]hS]hQ]hP]hT]uh;hhY]qh)q}q(h:UhN}q(hP]qUid8qahQ]hR]hS]hT]UrefidUhow-the-queues-are-definedquh;hhY]qhkXHow the queues are definedqq}r(h:XHow the queues are definedrh;hubahLhubahLhxubahLhubehLhubehLhubh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;hhY]rhu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]r h)r }r (h:UhN}r (hP]r Uid9rahQ]hR]hS]hT]UrefidUmanual-routingruh;jhY]rhkXManual routingrr}r(h:XManual routingrh;j ubahLhubahLhxubahLhubehLhubehLhubh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;hhY]r(hu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rh)r}r(h:UhN}r(hP]r Uid10r!ahQ]hR]hS]hT]UrefidU amqp-primerr"uh;jhY]r#hkX AMQP Primerr$r%}r&(h:X AMQP Primerr'h;jubahLhubahLhxubh)r(}r)(h:UhN}r*(hR]hS]hQ]hP]hT]uh;jhY]r+(h)r,}r-(h:UhN}r.(hR]hS]hQ]hP]hT]uh;j(hY]r/hu)r0}r1(h:UhN}r2(hR]hS]hQ]hP]hT]uh;j,hY]r3h)r4}r5(h:UhN}r6(hP]r7Uid11r8ahQ]hR]hS]hT]UrefidUmessagesr9uh;j0hY]r:hkXMessagesr;r<}r=(h:XMessagesr>h;j4ubahLhubahLhxubahLhubh)r?}r@(h:UhN}rA(hR]hS]hQ]hP]hT]uh;j(hY]rBhu)rC}rD(h:UhN}rE(hR]hS]hQ]hP]hT]uh;j?hY]rFh)rG}rH(h:UhN}rI(hP]rJUid12rKahQ]hR]hS]hT]UrefidUproducers-consumers-and-brokersrLuh;jChY]rMhkX Producers, consumers and brokersrNrO}rP(h:X Producers, consumers and brokersrQh;jGubahLhubahLhxubahLhubh)rR}rS(h:UhN}rT(hR]hS]hQ]hP]hT]uh;j(hY]rUhu)rV}rW(h:UhN}rX(hR]hS]hQ]hP]hT]uh;jRhY]rYh)rZ}r[(h:UhN}r\(hP]r]Uid13r^ahQ]hR]hS]hT]UrefidU!exchanges-queues-and-routing-keysr_uh;jVhY]r`hkX#Exchanges, queues and routing keys.rarb}rc(h:X#Exchanges, queues and routing keys.rdh;jZubahLhubahLhxubahLhubh)re}rf(h:UhN}rg(hR]hS]hQ]hP]hT]uh;j(hY]rh(hu)ri}rj(h:UhN}rk(hR]hS]hQ]hP]hT]uh;jehY]rlh)rm}rn(h:UhN}ro(hP]rpUid14rqahQ]hR]hS]hT]UrefidUexchange-typesrruh;jihY]rshkXExchange typesrtru}rv(h:XExchange typesrwh;jmubahLhubahLhxubh)rx}ry(h:UhN}rz(hR]hS]hQ]hP]hT]uh;jehY]r{(h)r|}r}(h:UhN}r~(hR]hS]hQ]hP]hT]uh;jxhY]rhu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;j|hY]rh)r}r(h:UhN}r(hP]rUid15rahQ]hR]hS]hT]UrefidUdirect-exchangesruh;jhY]rhkXDirect exchangesrr}r(h:XDirect exchangesrh;jubahLhubahLhxubahLhubh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jxhY]rhu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rh)r}r(h:UhN}r(hP]rUid16rahQ]hR]hS]hT]UrefidUtopic-exchangesruh;jhY]rhkXTopic exchangesrr}r(h:XTopic exchangesrh;jubahLhubahLhxubahLhubehLhubehLhubh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;j(hY]rhu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rh)r}r(h:UhN}r(hP]rUid17rahQ]hR]hS]hT]UrefidUrelated-api-commandsruh;jhY]rhkXRelated API commandsrr}r(h:XRelated API commandsrh;jubahLhubahLhxubahLhubh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;j(hY]rhu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rh)r}r(h:UhN}r(hP]rUid18rahQ]hR]hS]hT]UrefidUhands-on-with-the-apiruh;jhY]rhkXHands-on with the APIrr}r(h:XHands-on with the APIrh;jubahLhubahLhxubahLhubehLhubehLhubh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;hhY]r(hu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rh)r}r(h:UhN}r(hP]rUid19rahQ]hR]hS]hT]UrefidUid2ruh;jhY]rhkX Routing Tasksrr}r(h:X Routing Tasksrh;jubahLhubahLhxubh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]r(h)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rhu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rh)r}r(h:UhN}r(hP]rUid20rahQ]hR]hS]hT]UrefidUdefining-queuesruh;jhY]rhkXDefining queuesrr}r(h:XDefining queuesrh;jubahLhubahLhxubahLhubh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rhu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rh)r}r(h:UhN}r(hP]rUid21rahQ]hR]hS]hT]UrefidUspecifying-task-destinationruh;jhY]rhkXSpecifying task destinationrr}r(h:XSpecifying task destinationrh;jubahLhubahLhxubahLhubh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rhu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;jhY]r h)r }r(h:UhN}r(hP]rUid22rahQ]hR]hS]hT]UrefidUroutersruh;j hY]rhkXRoutersrr}r(h:XRoutersrh;j ubahLhubahLhxubahLhubehLhubehLhubeubaubhI)r}r(h:X.. _routing-basics:h;h@hBhEhLhMhN}r(hP]hQ]hR]hS]hT]hUUrouting-basicsruhWKhXhhY]ubh<)r}r(h:Uh;h@hBhEhG}rhjshLhZhN}r(hR]hS]hQ]hP]r (hjehT]r!(h(heuhWKhXhha}r"jjshY]r#(hd)r$}r%(h:hh;jhBhEhLhhhN}r&(hP]hQ]hR]hS]hT]hUhuhWKhXhhY]r'hkXBasicsr(r)}r*(h:hh;j$ubaubhI)r+}r,(h:X.. _routing-automatic:h;jhBhEhLhMhN}r-(hP]hQ]hR]hS]hT]hUUrouting-automaticr.uhWKhXhhY]ubh<)r/}r0(h:Uh;jhBhEhG}r1h.j+shLhZhN}r2(hR]hS]hQ]hP]r3(hj.ehT]r4(hh.euhWKhXhha}r5j.j+shY]r6(hd)r7}r8(h:hh;j/hBhEhLhhhN}r9(hP]hQ]hR]hS]hT]hUhuhWKhXhhY]r:hkXAutomatic routingr;r<}r=(h:hh;j7ubaubhu)r>}r?(h:XmThe simplest way to do routing is to use the :setting:`CELERY_CREATE_MISSING_QUEUES` setting (on by default).h;j/hBhEhLhxhN}r@(hR]hS]hQ]hP]hT]uhWKhXhhY]rA(hkX-The simplest way to do routing is to use the rBrC}rD(h:X-The simplest way to do routing is to use the h;j>ubh~)rE}rF(h:X':setting:`CELERY_CREATE_MISSING_QUEUES`rGh;j>hBhEhLhhN}rH(UreftypeXsettinghhXCELERY_CREATE_MISSING_QUEUESU refdomainXstdrIhP]hQ]U refexplicithR]hS]hT]hhuhWKhY]rJcdocutils.nodes literal rK)rL}rM(h:jGhN}rN(hR]hS]rO(hjIX std-settingrPehQ]hP]hT]uh;jEhY]rQhkXCELERY_CREATE_MISSING_QUEUESrRrS}rT(h:Uh;jLubahLUliteralrUubaubhkX setting (on by default).rVrW}rX(h:X setting (on by default).h;j>ubeubhu)rY}rZ(h:XWith this setting on, a named queue that is not already defined in :setting:`CELERY_QUEUES` will be created automatically. This makes it easy to perform simple routing tasks.h;j/hBhEhLhxhN}r[(hR]hS]hQ]hP]hT]uhWKhXhhY]r\(hkXCWith this setting on, a named queue that is not already defined in r]r^}r_(h:XCWith this setting on, a named queue that is not already defined in h;jYubh~)r`}ra(h:X:setting:`CELERY_QUEUES`rbh;jYhBhEhLhhN}rc(UreftypeXsettinghhX CELERY_QUEUESU refdomainXstdrdhP]hQ]U refexplicithR]hS]hT]hhuhWKhY]rejK)rf}rg(h:jbhN}rh(hR]hS]ri(hjdX std-settingrjehQ]hP]hT]uh;j`hY]rkhkX CELERY_QUEUESrlrm}rn(h:Uh;jfubahLjUubaubhkXT will be created automatically. This makes it easy to perform simple routing tasks.rorp}rq(h:XT will be created automatically. This makes it easy to perform simple routing tasks.h;jYubeubhu)rr}rs(h:XSay you have two servers, ``x``, and ``y`` that handles regular tasks, and one server ``z``, that only handles feed related tasks. You can use this configuration::h;j/hBhEhLhxhN}rt(hR]hS]hQ]hP]hT]uhWK#hXhhY]ru(hkXSay you have two servers, rvrw}rx(h:XSay you have two servers, h;jrubjK)ry}rz(h:X``x``hN}r{(hR]hS]hQ]hP]hT]uh;jrhY]r|hkXxr}}r~(h:Uh;jyubahLjUubhkX, and rr}r(h:X, and h;jrubjK)r}r(h:X``y``hN}r(hR]hS]hQ]hP]hT]uh;jrhY]rhkXyr}r(h:Uh;jubahLjUubhkX, that handles regular tasks, and one server rr}r(h:X, that handles regular tasks, and one server h;jrubjK)r}r(h:X``z``hN}r(hR]hS]hQ]hP]hT]uh;jrhY]rhkXzr}r(h:Uh;jubahLjUubhkXH, that only handles feed related tasks. You can use this configuration:rr}r(h:XH, that only handles feed related tasks. You can use this configuration:h;jrubeubcdocutils.nodes literal_block r)r}r(h:X>CELERY_ROUTES = {"feed.tasks.import_feed": {"queue": "feeds"}}h;j/hBhEhLU literal_blockrhN}r(U xml:spacerUpreserverhP]hQ]hR]hS]hT]uhWK'hXhhY]rhkX>CELERY_ROUTES = {"feed.tasks.import_feed": {"queue": "feeds"}}rr}r(h:Uh;jubaubhu)r}r(h:XWith this route enabled import feed tasks will be routed to the ``"feeds"`` queue, while all other tasks will be routed to the default queue (named ``"celery"`` for historic reasons).h;j/hBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWK)hXhhY]r(hkX@With this route enabled import feed tasks will be routed to the rr}r(h:X@With this route enabled import feed tasks will be routed to the h;jubjK)r}r(h:X ``"feeds"``hN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX"feeds"rr}r(h:Uh;jubahLjUubhkXI queue, while all other tasks will be routed to the default queue (named rr}r(h:XI queue, while all other tasks will be routed to the default queue (named h;jubjK)r}r(h:X ``"celery"``hN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX"celery"rr}r(h:Uh;jubahLjUubhkX for historic reasons).rr}r(h:X for historic reasons).h;jubeubhu)r}r(h:XJNow you can start server ``z`` to only process the feeds queue like this::rh;j/hBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWK-hXhhY]r(hkXNow you can start server rr}r(h:XNow you can start server h;jubjK)r}r(h:X``z``hN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkXzr}r(h:Uh;jubahLjUubhkX+ to only process the feeds queue like this:rr}r(h:X+ to only process the feeds queue like this:h;jubeubj)r}r(h:X(z)$ celeryd -Q feedsh;j/hBhEhLjhN}r(jjhP]hQ]hR]hS]hT]uhWK/hXhhY]rhkX(z)$ celeryd -Q feedsrr}r(h:Uh;jubaubhu)r}r(h:XkYou can specify as many queues as you want, so you can make this server process the default queue as well::h;j/hBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWK1hXhhY]rhkXjYou can specify as many queues as you want, so you can make this server process the default queue as well:rr}r(h:XjYou can specify as many queues as you want, so you can make this server process the default queue as well:h;jubaubj)r}r(h:X(z)$ celeryd -Q feeds,celeryh;j/hBhEhLjhN}r(jjhP]hQ]hR]hS]hT]uhWK4hXhhY]rhkX(z)$ celeryd -Q feeds,celeryrr}r(h:Uh;jubaubhI)r}r(h:X#.. _routing-changing-default-queue:h;j/hBhEhLhMhN}r(hP]hQ]hR]hS]hT]hUUrouting-changing-default-queueruhWK6hXhhY]ubh<)r}r(h:Uh;j/hBhEhG}rhjshLhZhN}r(hR]hS]hQ]hP]r(hjehT]r(h heuhWK9hXhha}rjjshY]r(hd)r}r(h:hh;jhBhEhLhhhN}r(hP]hQ]hR]hS]hT]hUhuhWK9hXhhY]rhkX&Changing the name of the default queuerr}r(h:hh;jubaubhu)r}r(h:XRYou can change the name of the default queue by using the following configuration:rh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWK;hXhhY]rhkXRYou can change the name of the default queue by using the following configuration:rr}r(h:jh;jubaubj)r}r(h:XCELERY_QUEUES = {"default": {"exchange": "default", "binding_key": "default"}} CELERY_DEFAULT_QUEUE = "default"h;jhBhEhLjhN}r(UlinenosrUlanguagerXpythonjjhP]hQ]hR]hS]hT]uhWK>hXhhY]rhkXCELERY_QUEUES = {"default": {"exchange": "default", "binding_key": "default"}} CELERY_DEFAULT_QUEUE = "default"rr}r(h:Uh;jubaubhI)r}r(h:X.. _routing-autoqueue-details:h;jhBhEhLhMhN}r(hP]hQ]hR]hS]hT]hUUrouting-autoqueue-detailsruhWKDhXhhY]ubeubh<)r}r (h:Uh;j/hBhEhG}r h2jshLhZhN}r (hR]hS]hQ]hP]r (hjehT]r (h&h2euhWKGhXhha}rjjshY]r(hd)r}r(h:jh;jhBhEhLhhhN}r(hP]hQ]hR]hS]hT]hUhuhWKGhXhhY]rhkXHow the queues are definedrr}r(h:jh;jubaubhu)r}r(h:XThe point with this feature is to hide the complex AMQP protocol for users with only basic needs. However -- you may still be interested in how these queues are declared.rh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKIhXhhY]rhkXThe point with this feature is to hide the complex AMQP protocol for users with only basic needs. However -- you may still be interested in how these queues are declared.rr}r(h:jh;jubaubhu)r}r (h:XFA queue named ``"video"`` will be created with the following settings:r!h;jhBhEhLhxhN}r"(hR]hS]hQ]hP]hT]uhWKMhXhhY]r#(hkXA queue named r$r%}r&(h:XA queue named h;jubjK)r'}r((h:X ``"video"``hN}r)(hR]hS]hQ]hP]hT]uh;jhY]r*hkX"video"r+r,}r-(h:Uh;j'ubahLjUubhkX- will be created with the following settings:r.r/}r0(h:X- will be created with the following settings:h;jubeubj)r1}r2(h:XJ{"exchange": "video", "exchange_type": "direct", "routing_key": "video"}h;jhBhEhLjhN}r3(jjXpythonjjhP]hQ]hR]hS]hT]uhWKOhXhhY]r4hkXJ{"exchange": "video", "exchange_type": "direct", "routing_key": "video"}r5r6}r7(h:Uh;j1ubaubhu)r8}r9(h:XThe non-AMQP backends like ``ghettoq`` does not support exchanges, so they require the exchange to have the same name as the queue. Using this design ensures it will work for them as well.h;jhBhEhLhxhN}r:(hR]hS]hQ]hP]hT]uhWKUhXhhY]r;(hkXThe non-AMQP backends like r<r=}r>(h:XThe non-AMQP backends like h;j8ubjK)r?}r@(h:X ``ghettoq``hN}rA(hR]hS]hQ]hP]hT]uh;j8hY]rBhkXghettoqrCrD}rE(h:Uh;j?ubahLjUubhkX does not support exchanges, so they require the exchange to have the same name as the queue. Using this design ensures it will work for them as well.rFrG}rH(h:X does not support exchanges, so they require the exchange to have the same name as the queue. Using this design ensures it will work for them as well.h;j8ubeubhI)rI}rJ(h:X.. _routing-manual:h;jhBhEhLhMhN}rK(hP]hQ]hR]hS]hT]hUUrouting-manualrLuhWKYhXhhY]ubeubeubh<)rM}rN(h:Uh;jhBhEhG}rOhjIshLhZhN}rP(hR]hS]hQ]hP]rQ(jjLehT]rR(h!heuhWK\hXhha}rSjLjIshY]rT(hd)rU}rV(h:jh;jMhBhEhLhhhN}rW(hP]hQ]hR]hS]hT]hUjuhWK\hXhhY]rXhkXManual routingrYrZ}r[(h:jh;jUubaubhu)r\}r](h:XSay you have two servers, ``x``, and ``y`` that handles regular tasks, and one server ``z``, that only handles feed related tasks, you can use this configuration:h;jMhBhEhLhxhN}r^(hR]hS]hQ]hP]hT]uhWK^hXhhY]r_(hkXSay you have two servers, r`ra}rb(h:XSay you have two servers, h;j\ubjK)rc}rd(h:X``x``hN}re(hR]hS]hQ]hP]hT]uh;j\hY]rfhkXxrg}rh(h:Uh;jcubahLjUubhkX, and rirj}rk(h:X, and h;j\ubjK)rl}rm(h:X``y``hN}rn(hR]hS]hQ]hP]hT]uh;j\hY]rohkXyrp}rq(h:Uh;jlubahLjUubhkX, that handles regular tasks, and one server rrrs}rt(h:X, that handles regular tasks, and one server h;j\ubjK)ru}rv(h:X``z``hN}rw(hR]hS]hQ]hP]hT]uh;j\hY]rxhkXzry}rz(h:Uh;juubahLjUubhkXG, that only handles feed related tasks, you can use this configuration:r{r|}r}(h:XG, that only handles feed related tasks, you can use this configuration:h;j\ubeubj)r~}r(h:XCELERY_DEFAULT_QUEUE = "default" CELERY_QUEUES = { "default": { "binding_key": "task.#", }, "feed_tasks": { "binding_key": "feed.#", }, } CELERY_DEFAULT_EXCHANGE = "tasks" CELERY_DEFAULT_EXCHANGE_TYPE = "topic" CELERY_DEFAULT_ROUTING_KEY = "task.default"h;jMhBhEhLjhN}r(jjXpythonjjhP]hQ]hR]hS]hT]uhWKbhXhhY]rhkXCELERY_DEFAULT_QUEUE = "default" CELERY_QUEUES = { "default": { "binding_key": "task.#", }, "feed_tasks": { "binding_key": "feed.#", }, } CELERY_DEFAULT_EXCHANGE = "tasks" CELERY_DEFAULT_EXCHANGE_TYPE = "topic" CELERY_DEFAULT_ROUTING_KEY = "task.default"rr}r(h:Uh;j~ubaubhu)r}r(h:X:setting:`CELERY_QUEUES` is a map of queue names and their exchange/type/binding_key, if you don't set exchange or exchange type, they will be taken from the :setting:`CELERY_DEFAULT_EXCHANGE` and :setting:`CELERY_DEFAULT_EXCHANGE_TYPE` settings.h;jMhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKqhXhhY]r(h~)r}r(h:X:setting:`CELERY_QUEUES`rh;jhBhEhLhhN}r(UreftypeXsettinghhX CELERY_QUEUESU refdomainXstdrhP]hQ]U refexplicithR]hS]hT]hhuhWKqhY]rjK)r}r(h:jhN}r(hR]hS]r(hjX std-settingrehQ]hP]hT]uh;jhY]rhkX CELERY_QUEUESrr}r(h:Uh;jubahLjUubaubhkX is a map of queue names and their exchange/type/binding_key, if you don't set exchange or exchange type, they will be taken from the rr}r(h:X is a map of queue names and their exchange/type/binding_key, if you don't set exchange or exchange type, they will be taken from the h;jubh~)r}r(h:X":setting:`CELERY_DEFAULT_EXCHANGE`rh;jhBhEhLhhN}r(UreftypeXsettinghhXCELERY_DEFAULT_EXCHANGEU refdomainXstdrhP]hQ]U refexplicithR]hS]hT]hhuhWKqhY]rjK)r}r(h:jhN}r(hR]hS]r(hjX std-settingrehQ]hP]hT]uh;jhY]rhkXCELERY_DEFAULT_EXCHANGErr}r(h:Uh;jubahLjUubaubhkX and rr}r(h:X and h;jubh~)r}r(h:X':setting:`CELERY_DEFAULT_EXCHANGE_TYPE`rh;jhBhEhLhhN}r(UreftypeXsettinghhXCELERY_DEFAULT_EXCHANGE_TYPEU refdomainXstdrhP]hQ]U refexplicithR]hS]hT]hhuhWKqhY]rjK)r}r(h:jhN}r(hR]hS]r(hjX std-settingrehQ]hP]hT]uh;jhY]rhkXCELERY_DEFAULT_EXCHANGE_TYPErr}r(h:Uh;jubahLjUubaubhkX settings.rr}r(h:X settings.h;jubeubhu)r}r(h:XjTo route a task to the ``feed_tasks`` queue, you can add an entry in the :setting:`CELERY_ROUTES` setting:h;jMhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKvhXhhY]r(hkXTo route a task to the rr}r(h:XTo route a task to the h;jubjK)r}r(h:X``feed_tasks``hN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX feed_tasksrr}r(h:Uh;jubahLjUubhkX$ queue, you can add an entry in the rr}r(h:X$ queue, you can add an entry in the h;jubh~)r}r(h:X:setting:`CELERY_ROUTES`rh;jhBhEhLhhN}r(UreftypeXsettinghhX CELERY_ROUTESU refdomainXstdrhP]hQ]U refexplicithR]hS]hT]hhuhWKvhY]rjK)r}r(h:jhN}r(hR]hS]r(hjX std-settingrehQ]hP]hT]uh;jhY]rhkX CELERY_ROUTESrr}r(h:Uh;jubahLjUubaubhkX setting:rr}r(h:X setting:h;jubeubj)r}r(h:XCELERY_ROUTES = { "feeds.tasks.import_feed": { "queue": "feed_tasks", "routing_key": "feed.import", }, }h;jMhBhEhLjhN}r(jjXpythonjjhP]hQ]hR]hS]hT]uhWKyhXhhY]rhkXCELERY_ROUTES = { "feeds.tasks.import_feed": { "queue": "feed_tasks", "routing_key": "feed.import", }, }rr}r(h:Uh;jubaubhu)r}r(h:XYou can also override this using the ``routing_key`` argument to :func:`~celery.execute.apply_async`, or :func:`~celery.execute.send_task`:h;jMhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhXhhY]r(hkX%You can also override this using the rr}r(h:X%You can also override this using the h;jubjK)r}r(h:X``routing_key``hN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX routing_keyrr}r(h:Uh;jubahLjUubhkX argument to rr}r(h:X argument to h;jubh~)r}r(h:X#:func:`~celery.execute.apply_async`rh;jhBhEhLhhN}r(UreftypeXfunchhXcelery.execute.apply_asyncU refdomainXpyrhP]hQ]U refexplicithR]hS]hT]hhUpy:classrNU py:modulerNuhWKhY]rjK)r}r(h:jhN}r(hR]hS]r(hjXpy-funcrehQ]hP]hT]uh;jhY]rhkX apply_async()rr }r (h:Uh;jubahLjUubaubhkX, or r r }r (h:X, or h;jubh~)r}r(h:X!:func:`~celery.execute.send_task`rh;jhBhEhLhhN}r(UreftypeXfunchhXcelery.execute.send_taskU refdomainXpyrhP]hQ]U refexplicithR]hS]hT]hhjNjNuhWKhY]rjK)r}r(h:jhN}r(hR]hS]r(hjXpy-funcrehQ]hP]hT]uh;jhY]rhkX send_task()rr}r(h:Uh;jubahLjUubaubhkX:r}r(h:X:h;jubeubcdocutils.nodes doctest_block r)r }r!(h:X>>> from feeds.tasks import import_feed >>> import_feed.apply_async(args=["http://cnn.com/rss"], ... queue="feed_tasks", ... routing_key="feed.import")h;jMhBNhLU doctest_blockr"hN}r#(jjhP]hQ]hR]hS]hT]uhWNhXhhY]r$hkX>>> from feeds.tasks import import_feed >>> import_feed.apply_async(args=["http://cnn.com/rss"], ... queue="feed_tasks", ... routing_key="feed.import")r%r&}r'(h:Uh;j ubaubhu)r(}r)(h:XfTo make server ``z`` consume from the feed queue exclusively you can start it with the ``-Q`` option::h;jMhBhEhLhxhN}r*(hR]hS]hQ]hP]hT]uhWKhXhhY]r+(hkXTo make server r,r-}r.(h:XTo make server h;j(ubjK)r/}r0(h:X``z``hN}r1(hR]hS]hQ]hP]hT]uh;j(hY]r2hkXzr3}r4(h:Uh;j/ubahLjUubhkXC consume from the feed queue exclusively you can start it with the r5r6}r7(h:XC consume from the feed queue exclusively you can start it with the h;j(ubjK)r8}r9(h:X``-Q``hN}r:(hR]hS]hQ]hP]hT]uh;j(hY]r;hkX-Qr<r=}r>(h:Uh;j8ubahLjUubhkX option:r?r@}rA(h:X option:h;j(ubeubj)rB}rC(h:X3(z)$ celeryd -Q feed_tasks --hostname=z.example.comh;jMhBhEhLjhN}rD(jjhP]hQ]hR]hS]hT]uhWKhXhhY]rEhkX3(z)$ celeryd -Q feed_tasks --hostname=z.example.comrFrG}rH(h:Uh;jBubaubhu)rI}rJ(h:XNServers ``x`` and ``y`` must be configured to consume from the default queue::rKh;jMhBhEhLhxhN}rL(hR]hS]hQ]hP]hT]uhWKhXhhY]rM(hkXServers rNrO}rP(h:XServers h;jIubjK)rQ}rR(h:X``x``hN}rS(hR]hS]hQ]hP]hT]uh;jIhY]rThkXxrU}rV(h:Uh;jQubahLjUubhkX and rWrX}rY(h:X and h;jIubjK)rZ}r[(h:X``y``hN}r\(hR]hS]hQ]hP]hT]uh;jIhY]r]hkXyr^}r_(h:Uh;jZubahLjUubhkX6 must be configured to consume from the default queue:r`ra}rb(h:X6 must be configured to consume from the default queue:h;jIubeubj)rc}rd(h:Xa(x)$ celeryd -Q default --hostname=x.example.com (y)$ celeryd -Q default --hostname=y.example.comh;jMhBhEhLjhN}re(jjhP]hQ]hR]hS]hT]uhWKhXhhY]rfhkXa(x)$ celeryd -Q default --hostname=x.example.com (y)$ celeryd -Q default --hostname=y.example.comrgrh}ri(h:Uh;jcubaubhu)rj}rk(h:XIf you want, you can even have your feed processing worker handle regular tasks as well, maybe in times when there's a lot of work to do::h;jMhBhEhLhxhN}rl(hR]hS]hQ]hP]hT]uhWKhXhhY]rmhkXIf you want, you can even have your feed processing worker handle regular tasks as well, maybe in times when there's a lot of work to do:rnro}rp(h:XIf you want, you can even have your feed processing worker handle regular tasks as well, maybe in times when there's a lot of work to do:h;jjubaubj)rq}rr(h:X;(z)$ celeryd -Q feed_tasks,default --hostname=z.example.comh;jMhBhEhLjhN}rs(jjhP]hQ]hR]hS]hT]uhWKhXhhY]rthkX;(z)$ celeryd -Q feed_tasks,default --hostname=z.example.comrurv}rw(h:Uh;jqubaubhu)rx}ry(h:XtIf you have another queue but on another exchange you want to add, just specify a custom exchange and exchange type:rzh;jMhBhEhLhxhN}r{(hR]hS]hQ]hP]hT]uhWKhXhhY]r|hkXtIf you have another queue but on another exchange you want to add, just specify a custom exchange and exchange type:r}r~}r(h:jzh;jxubaubj)r}r(h:XHCELERY_QUEUES = { "feed_tasks": { "binding_key": "feed.#", }, "regular_tasks": { "binding_key": "task.#", }, "image_tasks": { "binding_key": "image.compress", "exchange": "mediatasks", "exchange_type": "direct", }, }h;jMhBhEhLjhN}r(jjXpythonjjhP]hQ]hR]hS]hT]uhWKhXhhY]rhkXHCELERY_QUEUES = { "feed_tasks": { "binding_key": "feed.#", }, "regular_tasks": { "binding_key": "task.#", }, "image_tasks": { "binding_key": "image.compress", "exchange": "mediatasks", "exchange_type": "direct", }, }rr}r(h:Uh;jubaubhu)r}r(h:XAIf you're confused about these terms, you should read up on AMQP.rh;jMhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhXhhY]rhkXAIf you're confused about these terms, you should read up on AMQP.rr}r(h:jh;jubaubcsphinx.addnodes seealso r)r}r(h:X7In addition to the :ref:`amqp-primer` below, there's `Rabbits and Warrens`_, an excellent blog post describing queues and exchanges. There's also AMQP in 10 minutes*: `Flexible Routing Model`_, and `Standard Exchange Types`_. For users of RabbitMQ the `RabbitMQ FAQ`_ could be useful as a source of information.h;jMhBhEhLUseealsorhN}r(hR]hS]hQ]hP]hT]uhWNhXhhY]rhu)r}r(h:X7In addition to the :ref:`amqp-primer` below, there's `Rabbits and Warrens`_, an excellent blog post describing queues and exchanges. There's also AMQP in 10 minutes*: `Flexible Routing Model`_, and `Standard Exchange Types`_. For users of RabbitMQ the `RabbitMQ FAQ`_ could be useful as a source of information.h;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhY]r(hkXIn addition to the rr}r(h:XIn addition to the h;jubh~)r}r(h:X:ref:`amqp-primer`rh;jhBhEhLhhN}r(UreftypeXrefhhX amqp-primerU refdomainXstdrhP]hQ]U refexplicithR]hS]hT]hhuhWKhY]rh)r}r(h:jhN}r(hR]hS]r(hjXstd-refrehQ]hP]hT]uh;jhY]rhkX amqp-primerrr}r(h:Uh;jubahLhubaubhkX below, there's rr}r(h:X below, there's h;jubh)r}r(h:X`Rabbits and Warrens`_UresolvedrKh;jhLhhN}r(UnameXRabbits and WarrensUrefurirX:http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/rhP]hQ]hR]hS]hT]uhY]rhkXRabbits and Warrensrr}r(h:Uh;jubaubhkX\, an excellent blog post describing queues and exchanges. There's also AMQP in 10 minutes*: rr}r(h:X\, an excellent blog post describing queues and exchanges. There's also AMQP in 10 minutes*: h;jubh)r}r(h:X`Flexible Routing Model`_jKh;jhLhhN}r(UnameXFlexible Routing ModeljXhttp://bit.ly/95XFO1rhP]hQ]hR]hS]hT]uhY]rhkXFlexible Routing Modelrr}r(h:Uh;jubaubhkX, and rr}r(h:X, and h;jubh)r}r(h:X`Standard Exchange Types`_jKh;jhLhhN}r(UnameXStandard Exchange TypesjXhttp://bit.ly/EEWcarhP]hQ]hR]hS]hT]uhY]rhkXStandard Exchange Typesrr}r(h:Uh;jubaubhkX. For users of RabbitMQ the rr}r(h:X. For users of RabbitMQ the h;jubh)r}r(h:X`RabbitMQ FAQ`_jKh;jhLhhN}r(UnameX RabbitMQ FAQjX http://www.rabbitmq.com/faq.htmlrhP]hQ]hR]hS]hT]uhY]rhkX RabbitMQ FAQrr}r(h:Uh;jubaubhkX, could be useful as a source of information.rr}r(h:X, could be useful as a source of information.h;jubeubaubhI)r}r(h:XU.. _`Rabbits and Warrens`: http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/h?Kh;jMhBhEhLhMhN}r(jjhP]rUrabbits-and-warrensrahQ]hR]hS]hT]rhauhWKhXhhY]ubhI)r}r(h:X2.. _`Flexible Routing Model`: http://bit.ly/95XFO1h?Kh;jMhBhEhLhMhN}r(jjhP]rUflexible-routing-modelrahQ]hR]hS]hT]rh1auhWKhXhhY]ubhI)r}r(h:X2.. _`Standard Exchange Types`: http://bit.ly/EEWcah?Kh;jMhBhEhLhMhN}r(jjhP]rUstandard-exchange-typesrahQ]hR]hS]hT]rhauhWKhXhhY]ubhI)r}r(h:X4.. _`RabbitMQ FAQ`: http://www.rabbitmq.com/faq.htmlh?Kh;jMhBhEhLhMhN}r(jjhP]rU rabbitmq-faqrahQ]hR]hS]hT]rh auhWKhXhhY]ubhI)r}r(h:X.. _amqp-primer:h;jMhBhEhLhMhN}r(hP]hQ]hR]hS]hT]hUj"uhWKhXhhY]ubeubeubh<)r}r(h:Uh;h@hBhEhG}rh jshLhZhN}r(hR]hS]hQ]hP]r(j"Uid1rehT]r(hh euhWKhXhha}rj"jshY]r(hd)r}r(h:j'h;jhBhEhLhhhN}r(hP]hQ]hR]hS]hT]hUj!uhWKhXhhY]rhkX AMQP Primerrr}r(h:j'h;jubaubh<)r}r(h:Uh;jhBhEhLhZhN}r (hR]hS]hQ]hP]r j9ahT]r h,auhWKhXhhY]r (hd)r }r(h:j>h;jhBhEhLhhhN}r(hP]hQ]hR]hS]hT]hUj8uhWKhXhhY]rhkXMessagesrr}r(h:j>h;j ubaubhu)r}r(h:XA message consists of headers and a body. Celery uses headers to store the content type of the message and its content encoding. The content type is usually the serialization format used to serialize the message. The body contains the name of the task to execute, the task id (UUID), the arguments to execute it with and some additional metadata -- like the number of retries or an ETA.rh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhXhhY]rhkXA message consists of headers and a body. Celery uses headers to store the content type of the message and its content encoding. The content type is usually the serialization format used to serialize the message. The body contains the name of the task to execute, the task id (UUID), the arguments to execute it with and some additional metadata -- like the number of retries or an ETA.rr}r(h:jh;jubaubhu)r}r(h:XCThis is an example task message represented as a Python dictionary:rh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhXhhY]r hkXCThis is an example task message represented as a Python dictionary:r!r"}r#(h:jh;jubaubj)r$}r%(h:Xj{"task": "myapp.tasks.add", "id": "54086c5e-6193-4575-8308-dbab76798756", "args": [4, 4], "kwargs": {}}h;jhBhEhLjhN}r&(jjXpythonjjhP]hQ]hR]hS]hT]uhWKhXhhY]r'hkXj{"task": "myapp.tasks.add", "id": "54086c5e-6193-4575-8308-dbab76798756", "args": [4, 4], "kwargs": {}}r(r)}r*(h:Uh;j$ubaubhI)r+}r,(h:X%.. _amqp-producers-consumers-brokers:h;jhBhEhLhMhN}r-(hP]hQ]hR]hS]hT]hUU amqp-producers-consumers-brokersr.uhWKhXhhY]ubeubh<)r/}r0(h:Uh;jhBhEhG}r1hj+shLhZhN}r2(hR]hS]hQ]hP]r3(jLj.ehT]r4(hheuhWKhXhha}r5j.j+shY]r6(hd)r7}r8(h:jQh;j/hBhEhLhhhN}r9(hP]hQ]hR]hS]hT]hUjKuhWKhXhhY]r:hkX Producers, consumers and brokersr;r<}r=(h:jQh;j7ubaubhu)r>}r?(h:XThe client sending messages is typically called a *publisher*, or a *producer*, while the entity receiving messages is called a *consumer*.h;j/hBhEhLhxhN}r@(hR]hS]hQ]hP]hT]uhWKhXhhY]rA(hkX2The client sending messages is typically called a rBrC}rD(h:X2The client sending messages is typically called a h;j>ubh)rE}rF(h:X *publisher*hN}rG(hR]hS]hQ]hP]hT]uh;j>hY]rHhkX publisherrIrJ}rK(h:Uh;jEubahLhubhkX, or a rLrM}rN(h:X, or a h;j>ubh)rO}rP(h:X *producer*hN}rQ(hR]hS]hQ]hP]hT]uh;j>hY]rRhkXproducerrSrT}rU(h:Uh;jOubahLhubhkX2, while the entity receiving messages is called a rVrW}rX(h:X2, while the entity receiving messages is called a h;j>ubh)rY}rZ(h:X *consumer*hN}r[(hR]hS]hQ]hP]hT]uh;j>hY]r\hkXconsumerr]r^}r_(h:Uh;jYubahLhubhkX.r`}ra(h:X.h;j>ubeubhu)rb}rc(h:XQThe *broker* is the message server, routing messages from producers to consumers.h;j/hBhEhLhxhN}rd(hR]hS]hQ]hP]hT]uhWKhXhhY]re(hkXThe rfrg}rh(h:XThe h;jbubh)ri}rj(h:X*broker*hN}rk(hR]hS]hQ]hP]hT]uh;jbhY]rlhkXbrokerrmrn}ro(h:Uh;jiubahLhubhkXE is the message server, routing messages from producers to consumers.rprq}rr(h:XE is the message server, routing messages from producers to consumers.h;jbubeubhu)rs}rt(h:XFYou are likely to see these terms used a lot in AMQP related material.ruh;j/hBhEhLhxhN}rv(hR]hS]hQ]hP]hT]uhWKhXhhY]rwhkXFYou are likely to see these terms used a lot in AMQP related material.rxry}rz(h:juh;jsubaubhI)r{}r|(h:X.. _amqp-exchanges-queues-keys:h;j/hBhEhLhMhN}r}(hP]hQ]hR]hS]hT]hUUamqp-exchanges-queues-keysr~uhWKhXhhY]ubeubh<)r}r(h:Uh;jhBhEhG}rhj{shLhZhN}r(hR]hS]hQ]hP]r(j_j~ehT]r(hheuhWKhXhha}rj~j{shY]r(hd)r}r(h:jdh;jhBhEhLhhhN}r(hP]hQ]hR]hS]hT]hUj^uhWKhXhhY]rhkX#Exchanges, queues and routing keys.rr}r(h:jdh;jubaubcdocutils.nodes enumerated_list r)r}r(h:Uh;jhBhEhLUenumerated_listrhN}r(UsuffixrU.hP]hQ]hR]UprefixrUhS]hT]UenumtyperUarabicruhWKhXhhY]r(h)r}r(h:XMessages are sent to exchanges.rh;jhBhEhLhhN}r(hR]hS]hQ]hP]hT]uhWNhXhhY]rhu)r}r(h:jh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhY]rhkXMessages are sent to exchanges.rr}r(h:jh;jubaubaubh)r}r(h:XAn exchange routes messages to one or more queues. Several exchange types exists, providing different ways to do routing, or implementing different messaging scenarios.h;jhBhEhLhhN}r(hR]hS]hQ]hP]hT]uhWNhXhhY]rhu)r}r(h:XAn exchange routes messages to one or more queues. Several exchange types exists, providing different ways to do routing, or implementing different messaging scenarios.rh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhY]rhkXAn exchange routes messages to one or more queues. Several exchange types exists, providing different ways to do routing, or implementing different messaging scenarios.rr}r(h:jh;jubaubaubh)r}r(h:X9The message waits in the queue until someone consumes it.rh;jhBhEhLhhN}r(hR]hS]hQ]hP]hT]uhWNhXhhY]rhu)r}r(h:jh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhY]rhkX9The message waits in the queue until someone consumes it.rr}r(h:jh;jubaubaubh)r}r(h:XEThe message is deleted from the queue when it has been acknowledged. h;jhBhEhLhhN}r(hR]hS]hQ]hP]hT]uhWNhXhhY]rhu)r}r(h:XDThe message is deleted from the queue when it has been acknowledged.rh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhY]rhkXDThe message is deleted from the queue when it has been acknowledged.rr}r(h:jh;jubaubaubeubhu)r}r(h:X4The steps required to send and receive messages are:rh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhXhhY]rhkX4The steps required to send and receive messages are:rr}r(h:jh;jubaubj)r}r(h:Uh;jhBhEhLjhN}r(jU.hP]hQ]hR]jUhS]hT]jjuhWKhXhhY]r(h)r}r(h:XCreate an exchangerh;jhBhEhLhhN}r(hR]hS]hQ]hP]hT]uhWNhXhhY]rhu)r}r(h:jh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhY]rhkXCreate an exchangerr}r(h:jh;jubaubaubh)r}r(h:XCreate a queuerh;jhBhEhLhhN}r(hR]hS]hQ]hP]hT]uhWNhXhhY]rhu)r}r(h:jh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhY]rhkXCreate a queuerr}r(h:jh;jubaubaubh)r}r(h:X Bind the queue to the exchange. h;jhBhEhLhhN}r(hR]hS]hQ]hP]hT]uhWNhXhhY]rhu)r}r(h:XBind the queue to the exchange.rh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhY]rhkXBind the queue to the exchange.rr}r(h:jh;jubaubaubeubhu)r}r(h:XCelery automatically creates the entities necessary for the queues in :setting:`CELERY_QUEUES` to work (except if the queue's ``auto_declare`` setting is set to :const:`False`).h;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWKhXhhY]r(hkXFCelery automatically creates the entities necessary for the queues in rr}r(h:XFCelery automatically creates the entities necessary for the queues in h;jubh~)r}r(h:X:setting:`CELERY_QUEUES`rh;jhBhEhLhhN}r(UreftypeXsettinghhX CELERY_QUEUESU refdomainXstdrhP]hQ]U refexplicithR]hS]hT]hhuhWKhY]rjK)r}r(h:jhN}r(hR]hS]r(hjX std-settingr ehQ]hP]hT]uh;jhY]r hkX CELERY_QUEUESr r }r (h:Uh;jubahLjUubaubhkX to work (except if the queue's rr}r(h:X to work (except if the queue's h;jubjK)r}r(h:X``auto_declare``hN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX auto_declarerr}r(h:Uh;jubahLjUubhkX setting is set to rr}r(h:X setting is set to h;jubh~)r}r(h:X:const:`False`rh;jhBhEhLhhN}r(UreftypeXconsthhXFalseU refdomainXpyrhP]hQ]U refexplicithR]hS]hT]hhjNjNuhWKhY]r jK)r!}r"(h:jhN}r#(hR]hS]r$(hjXpy-constr%ehQ]hP]hT]uh;jhY]r&hkXFalser'r(}r)(h:Uh;j!ubahLjUubaubhkX).r*r+}r,(h:X).h;jubeubhu)r-}r.(h:XHere's an example queue configuration with three queues; One for video, one for images and one default queue for everything else:r/h;jhBhEhLhxhN}r0(hR]hS]hQ]hP]hT]uhWKhXhhY]r1hkXHere's an example queue configuration with three queues; One for video, one for images and one default queue for everything else:r2r3}r4(h:j/h;j-ubaubj)r5}r6(h:XCELERY_QUEUES = { "default": { "exchange": "default", "binding_key": "default"}, "videos": { "exchange": "media", "binding_key": "media.video", }, "images": { "exchange": "media", "binding_key": "media.image", } } CELERY_DEFAULT_QUEUE = "default" CELERY_DEFAULT_EXCHANGE_TYPE = "direct" CELERY_DEFAULT_ROUTING_KEY = "default"h;jhBhEhLjhN}r7(jjXpythonjjhP]hQ]hR]hS]hT]uhWKhXhhY]r8hkXCELERY_QUEUES = { "default": { "exchange": "default", "binding_key": "default"}, "videos": { "exchange": "media", "binding_key": "media.video", }, "images": { "exchange": "media", "binding_key": "media.image", } } CELERY_DEFAULT_QUEUE = "default" CELERY_DEFAULT_EXCHANGE_TYPE = "direct" CELERY_DEFAULT_ROUTING_KEY = "default"r9r:}r;(h:Uh;j5ubaubcdocutils.nodes note r<)r=}r>(h:XIn Celery the ``routing_key`` is the key used to send the message, while ``binding_key`` is the key the queue is bound with. In the AMQP API they are both referred to as the routing key.h;jhBhEhLUnoter?hN}r@(hR]hS]hQ]hP]hT]uhWNhXhhY]rAhu)rB}rC(h:XIn Celery the ``routing_key`` is the key used to send the message, while ``binding_key`` is the key the queue is bound with. In the AMQP API they are both referred to as the routing key.h;j=hBhEhLhxhN}rD(hR]hS]hQ]hP]hT]uhWMhY]rE(hkXIn Celery the rFrG}rH(h:XIn Celery the h;jBubjK)rI}rJ(h:X``routing_key``hN}rK(hR]hS]hQ]hP]hT]uh;jBhY]rLhkX routing_keyrMrN}rO(h:Uh;jIubahLjUubhkX, is the key used to send the message, while rPrQ}rR(h:X, is the key used to send the message, while h;jBubjK)rS}rT(h:X``binding_key``hN}rU(hR]hS]hQ]hP]hT]uh;jBhY]rVhkX binding_keyrWrX}rY(h:Uh;jSubahLjUubhkXc is the key the queue is bound with. In the AMQP API they are both referred to as the routing key.rZr[}r\(h:Xc is the key the queue is bound with. In the AMQP API they are both referred to as the routing key.h;jBubeubaubhI)r]}r^(h:X.. _amqp-exchange-types:h;jhBhEhLhMhN}r_(hP]hQ]hR]hS]hT]hUUamqp-exchange-typesr`uhWMhXhhY]ubeubh<)ra}rb(h:Uh;jhBhEhG}rchj]shLhZhN}rd(hR]hS]hQ]hP]re(jrj`ehT]rf(hheuhWMhXhha}rgj`j]shY]rh(hd)ri}rj(h:jwh;jahBhEhLhhhN}rk(hP]hQ]hR]hS]hT]hUjquhWMhXhhY]rlhkXExchange typesrmrn}ro(h:jwh;jiubaubhu)rp}rq(h:X'The exchange type defines how the messages are routed through the exchange. The exchange types defined in the standard are `direct`, `topic`, `fanout` and `headers`. Also non-standard exchange types are available as plug-ins to RabbitMQ, like the `last-value-cache plug-in`_ by Michael Bridgen.h;jahBhEhLhxhN}rr(hR]hS]hQ]hP]hT]uhWMhXhhY]rs(hkX{The exchange type defines how the messages are routed through the exchange. The exchange types defined in the standard are rtru}rv(h:X{The exchange type defines how the messages are routed through the exchange. The exchange types defined in the standard are h;jpubcdocutils.nodes title_reference rw)rx}ry(h:X`direct`hN}rz(hR]hS]hQ]hP]hT]uh;jphY]r{hkXdirectr|r}}r~(h:Uh;jxubahLUtitle_referencerubhkX, rr}r(h:X, h;jpubjw)r}r(h:X`topic`hN}r(hR]hS]hQ]hP]hT]uh;jphY]rhkXtopicrr}r(h:Uh;jubahLjubhkX, rr}r(h:X, h;jpubjw)r}r(h:X`fanout`hN}r(hR]hS]hQ]hP]hT]uh;jphY]rhkXfanoutrr}r(h:Uh;jubahLjubhkX and rr}r(h:X and h;jpubjw)r}r(h:X `headers`hN}r(hR]hS]hQ]hP]hT]uh;jphY]rhkXheadersrr}r(h:Uh;jubahLjubhkXT. Also non-standard exchange types are available as plug-ins to RabbitMQ, like the rr}r(h:XT. Also non-standard exchange types are available as plug-ins to RabbitMQ, like the h;jpubh)r}r(h:X`last-value-cache plug-in`_jKh;jphLhhN}r(UnameXlast-value-cache plug-injX.http://github.com/squaremo/rabbitmq-lvc-pluginrhP]hQ]hR]hS]hT]uhY]rhkXlast-value-cache plug-inrr}r(h:Uh;jubaubhkX by Michael Bridgen.rr}r(h:X by Michael Bridgen.h;jpubeubhI)r}r(h:XR.. _`last-value-cache plug-in`: http://github.com/squaremo/rabbitmq-lvc-pluginh?Kh;jahBhEhLhMhN}r(jjhP]rUlast-value-cache-plug-inrahQ]hR]hS]hT]rhauhWM hXhhY]ubhI)r}r(h:X.. _amqp-exchange-type-direct:h;jahBhEhLhMhN}r(hP]hQ]hR]hS]hT]hUUamqp-exchange-type-directruhWM#hXhhY]ubh<)r}r(h:Uh;jahBhEhG}rh jshLhZhN}r(hR]hS]hQ]hP]r(jjehT]r(h0h euhWM&hXhha}rjjshY]r(hd)r}r(h:jh;jhBhEhLhhhN}r(hP]hQ]hR]hS]hT]hUjuhWM&hXhhY]rhkXDirect exchangesrr}r(h:jh;jubaubhu)r}r(h:XDirect exchanges match by exact routing keys, so a queue bound by the routing key ``video`` only receives messages with that routing key.h;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWM(hXhhY]r(hkXRDirect exchanges match by exact routing keys, so a queue bound by the routing key rr}r(h:XRDirect exchanges match by exact routing keys, so a queue bound by the routing key h;jubjK)r}r(h:X ``video``hN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkXvideorr}r(h:Uh;jubahLjUubhkX. only receives messages with that routing key.rr}r(h:X. only receives messages with that routing key.h;jubeubhI)r}r(h:X.. _amqp-exchange-type-topic:h;jhBhEhLhMhN}r(hP]hQ]hR]hS]hT]hUUamqp-exchange-type-topicruhWM+hXhhY]ubeubh<)r}r(h:Uh;jahBhEhG}rh#jshLhZhN}r(hR]hS]hQ]hP]r(jjehT]r(hh#euhWM.hXhha}rjjshY]r(hd)r}r(h:jh;jhBhEhLhhhN}r(hP]hQ]hR]hS]hT]hUjuhWM.hXhhY]rhkXTopic exchangesrr}r(h:jh;jubaubhu)r}r(h:XTopic exchanges matches routing keys using dot-separated words, and the wildcard characters: ``*`` (matches a single word), and ``#`` (matches zero or more words).h;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWM0hXhhY]r(hkX]Topic exchanges matches routing keys using dot-separated words, and the wildcard characters: rr}r(h:X]Topic exchanges matches routing keys using dot-separated words, and the wildcard characters: h;jubjK)r}r(h:X``*``hN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX*r}r(h:Uh;jubahLjUubhkX (matches a single word), and rr}r(h:X (matches a single word), and h;jubjK)r}r(h:X``#``hN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX#r}r(h:Uh;jubahLjUubhkX (matches zero or more words).rr}r(h:X (matches zero or more words).h;jubeubhu)r}r(h:XWith routing keys like ``usa.news``, ``usa.weather``, ``norway.news`` and ``norway.weather``, bindings could be ``*.news`` (all news), ``usa.#`` (all items in the USA) or ``usa.weather`` (all USA weather items).h;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWM4hXhhY]r(hkXWith routing keys like rr}r(h:XWith routing keys like h;jubjK)r }r (h:X ``usa.news``hN}r (hR]hS]hQ]hP]hT]uh;jhY]r hkXusa.newsr r}r(h:Uh;j ubahLjUubhkX, rr}r(h:X, h;jubjK)r}r(h:X``usa.weather``hN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX usa.weatherrr}r(h:Uh;jubahLjUubhkX, rr}r(h:X, h;jubjK)r}r(h:X``norway.news``hN}r(hR]hS]hQ]hP]hT]uh;jhY]r hkX norway.newsr!r"}r#(h:Uh;jubahLjUubhkX and r$r%}r&(h:X and h;jubjK)r'}r((h:X``norway.weather``hN}r)(hR]hS]hQ]hP]hT]uh;jhY]r*hkXnorway.weatherr+r,}r-(h:Uh;j'ubahLjUubhkX, bindings could be r.r/}r0(h:X, bindings could be h;jubjK)r1}r2(h:X ``*.news``hN}r3(hR]hS]hQ]hP]hT]uh;jhY]r4hkX*.newsr5r6}r7(h:Uh;j1ubahLjUubhkX (all news), r8r9}r:(h:X (all news), h;jubjK)r;}r<(h:X ``usa.#``hN}r=(hR]hS]hQ]hP]hT]uh;jhY]r>hkXusa.#r?r@}rA(h:Uh;j;ubahLjUubhkX (all items in the USA) or rBrC}rD(h:X (all items in the USA) or h;jubjK)rE}rF(h:X``usa.weather``hN}rG(hR]hS]hQ]hP]hT]uh;jhY]rHhkX usa.weatherrIrJ}rK(h:Uh;jEubahLjUubhkX (all USA weather items).rLrM}rN(h:X (all USA weather items).h;jubeubhI)rO}rP(h:X .. _amqp-api:h;jhBhEhLhMhN}rQ(hP]hQ]hR]hS]hT]hUUamqp-apirRuhWM8hXhhY]ubeubeubh<)rS}rT(h:Uh;jhBhEhG}rUh%jOshLhZhN}rV(hR]hS]hQ]hP]rW(jjRehT]rX(h'h%euhWM;hXhha}rYjRjOshY]rZ(hd)r[}r\(h:jh;jShBhEhLhhhN}r](hP]hQ]hR]hS]hT]hUjuhWM;hXhhY]r^hkXRelated API commandsr_r`}ra(h:jh;j[ubaubcsphinx.addnodes index rb)rc}rd(h:Uh;jShBNhLUindexrehN}rf(hP]hQ]hR]hS]hT]Uentries]uhWNhXhhY]ubcsphinx.addnodes desc rg)rh}ri(h:Uh;jShBNhLUdescrjhN}rk(UnoindexrlUdomainrmXpyhP]hQ]hR]hS]hT]UobjtypernXmethodroUdesctyperpjouhWNhXhhY]rq(csphinx.addnodes desc_signature rr)rs}rt(h:X.exchange.declare(exchange_name, type, passive,ruh;jhhBhEhLUdesc_signaturervhN}rw(hP]hQ]hR]hS]hT]UfirstrxuhWMKhXhhY]rycsphinx.addnodes desc_name rz)r{}r|(h:juh;jshBhEhLU desc_namer}hN}r~(hR]hS]hQ]hP]hT]uhWMKhXhhY]rhkX.exchange.declare(exchange_name, type, passive,rr}r(h:Uh;j{ubaubaubjr)r}r(h:Xdurable, auto_delete, internal)rh;jhhBhEhLjvhN}r(hP]hQ]hR]hS]hT]jxuhWMKhXhhY]rjz)r}r(h:jh;jhBhEhLj}hN}r(hR]hS]hQ]hP]hT]uhWMKhXhhY]rhkXdurable, auto_delete, internal)rr}r(h:Uh;jubaubaubcsphinx.addnodes desc_content r)r}r(h:Uh;jhhBhEhLU desc_contentrhN}r(hR]hS]hQ]hP]hT]uhWMKhXhhY]r(hu)r}r(h:XDeclares an exchange by name.rh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWM@hXhhY]rhkXDeclares an exchange by name.rr}r(h:jh;jubaubcdocutils.nodes field_list r)r}r(h:Uh;jhBNhLU field_listrhN}r(hR]hS]hQ]hP]hT]uhWNhXhhY]rcdocutils.nodes field r)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]r(cdocutils.nodes field_name r)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX Parametersrr}r(h:Uh;jubahLU field_namerubcdocutils.nodes field_body r)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]r(h)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rhu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]r(cdocutils.nodes strong r)r}r(h:XpassivehN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkXpassiverr}r(h:Uh;jubahLUstrongrubhkX -- rr}r(h:Uh;jubhkXjPassive means the exchange won't be created, but you can use this to check if the exchange already exists.rr}r(h:XjPassive means the exchange won't be created, but you can use this to check if the exchange already exists.rh;jubehLhxubahLhubh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rhu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]r(j)r}r(h:XdurablehN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkXdurablerr}r(h:Uh;jubahLjubhkX -- rr}r(h:Uh;jubhkXKDurable exchanges are persistent. That is - they survive a broker restart.rr}r(h:XKDurable exchanges are persistent. That is - they survive a broker restart.rh;jubehLhxubahLhubh)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]rhu)r}r(h:UhN}r(hR]hS]hQ]hP]hT]uh;jhY]r(j)r}r(h:X auto_deletehN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX auto_deleterr}r(h:Uh;jubahLjubhkX -- rr}r(h:Uh;jubhkXZThis means the queue will be deleted by the broker when there are no more queues using it.rr}r(h:XZThis means the queue will be deleted by the broker when there are no more queues using it.rh;jubehLhxubahLhubehLhubahLU field_bodyrubehLUfieldrubaubeubeubjb)r}r(h:Uh;jShBhEhLjehN}r(hP]hQ]hR]hS]hT]Uentries]r(UsinglerXdeclare() (queue method)hUtrauhWNhXhhY]ubjg)r}r(h:Uh;jShBhEhLjjhN}r(jljmXpyhP]hQ]hR]hS]hT]jnXmethodr jpj uhWNhXhhY]r (jr)r }r (h:XCqueue.declare(queue_name, passive, durable, exclusive, auto_delete)h;jhBhEhLjvhN}r (hP]rhaUmodulerNhQ]hR]hS]hT]rhaUfullnamerhUclassrXqueuejxuhWMRhXhhY]r(csphinx.addnodes desc_addname r)r}r(h:Xqueue.h;j hBhEhLU desc_addnamerhN}r(hR]hS]hQ]hP]hT]uhWMRhXhhY]rhkXqueue.rr}r(h:Uh;jubaubjz)r}r(h:Xdeclareh;j hBhEhLj}hN}r(hR]hS]hQ]hP]hT]uhWMRhXhhY]r hkXdeclarer!r"}r#(h:Uh;jubaubcsphinx.addnodes desc_parameterlist r$)r%}r&(h:Uh;j hBhEhLUdesc_parameterlistr'hN}r((hR]hS]hQ]hP]hT]uhWMRhXhhY]r)(csphinx.addnodes desc_parameter r*)r+}r,(h:X queue_namehN}r-(hR]hS]hQ]hP]hT]uh;j%hY]r.hkX queue_namer/r0}r1(h:Uh;j+ubahLUdesc_parameterr2ubj*)r3}r4(h:XpassivehN}r5(hR]hS]hQ]hP]hT]uh;j%hY]r6hkXpassiver7r8}r9(h:Uh;j3ubahLj2ubj*)r:}r;(h:XdurablehN}r<(hR]hS]hQ]hP]hT]uh;j%hY]r=hkXdurabler>r?}r@(h:Uh;j:ubahLj2ubj*)rA}rB(h:X exclusivehN}rC(hR]hS]hQ]hP]hT]uh;j%hY]rDhkX exclusiverErF}rG(h:Uh;jAubahLj2ubj*)rH}rI(h:X auto_deletehN}rJ(hR]hS]hQ]hP]hT]uh;j%hY]rKhkX auto_deleterLrM}rN(h:Uh;jHubahLj2ubeubeubj)rO}rP(h:Uh;jhBhEhLjhN}rQ(hR]hS]hQ]hP]hT]uhWMRhXhhY]rR(hu)rS}rT(h:XDeclares a queue by name.rUh;jOhBhEhLhxhN}rV(hR]hS]hQ]hP]hT]uhWMNhXhhY]rWhkXDeclares a queue by name.rXrY}rZ(h:jUh;jSubaubhu)r[}r\(h:XmExclusive queues can only be consumed from by the current connection. Exclusive also implies ``auto_delete``.h;jOhBhEhLhxhN}r](hR]hS]hQ]hP]hT]uhWMPhXhhY]r^(hkX]Exclusive queues can only be consumed from by the current connection. Exclusive also implies r_r`}ra(h:X]Exclusive queues can only be consumed from by the current connection. Exclusive also implies h;j[ubjK)rb}rc(h:X``auto_delete``hN}rd(hR]hS]hQ]hP]hT]uh;j[hY]rehkX auto_deleterfrg}rh(h:Uh;jbubahLjUubhkX.ri}rj(h:X.h;j[ubeubeubeubjb)rk}rl(h:Uh;jShBhEhLjehN}rm(hP]hQ]hR]hS]hT]Uentries]rn(jXbind() (queue method)hUtroauhWNhXhhY]ubjg)rp}rq(h:Uh;jShBhEhLjjhN}rr(jljmXpyhP]hQ]hR]hS]hT]jnXmethodrsjpjsuhWNhXhhY]rt(jr)ru}rv(h:X2queue.bind(queue_name, exchange_name, routing_key)h;jphBhEhLjvhN}rw(hP]rxhajNhQ]hR]hS]hT]ryhajhjXqueuejxuhWMWhXhhY]rz(j)r{}r|(h:Xqueue.h;juhBhEhLjhN}r}(hR]hS]hQ]hP]hT]uhWMWhXhhY]r~hkXqueue.rr}r(h:Uh;j{ubaubjz)r}r(h:Xbindh;juhBhEhLj}hN}r(hR]hS]hQ]hP]hT]uhWMWhXhhY]rhkXbindrr}r(h:Uh;jubaubj$)r}r(h:Uh;juhBhEhLj'hN}r(hR]hS]hQ]hP]hT]uhWMWhXhhY]r(j*)r}r(h:X queue_namehN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX queue_namerr}r(h:Uh;jubahLj2ubj*)r}r(h:X exchange_namehN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX exchange_namerr}r(h:Uh;jubahLj2ubj*)r}r(h:X routing_keyhN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkX routing_keyrr}r(h:Uh;jubahLj2ubeubeubj)r}r(h:Uh;jphBhEhLjhN}r(hR]hS]hQ]hP]hT]uhWMWhXhhY]rhu)r}r(h:XpBinds a queue to an exchange with a routing key. Unbound queues will not receive messages, so this is necessary.rh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWMUhXhhY]rhkXpBinds a queue to an exchange with a routing key. Unbound queues will not receive messages, so this is necessary.rr}r(h:jh;jubaubaubeubjb)r}r(h:Uh;jShBhEhLjehN}r(hP]hQ]hR]hS]hT]Uentries]r(jXdelete() (queue method)hUtrauhWNhXhhY]ubjg)r}r(h:Uh;jShBhEhLjjhN}r(jljmXpyhP]hQ]hR]hS]hT]jnXmethodrjpjuhWNhXhhY]r(jr)r}r(h:X3queue.delete(name, if_unused=False, if_empty=False)h;jhBhEhLjvhN}r(hP]rhajNhQ]hR]hS]hT]rhajhjXqueuejxuhWM[hXhhY]r(j)r}r(h:Xqueue.h;jhBhEhLjhN}r(hR]hS]hQ]hP]hT]uhWM[hXhhY]rhkXqueue.rr}r(h:Uh;jubaubjz)r}r(h:Xdeleteh;jhBhEhLj}hN}r(hR]hS]hQ]hP]hT]uhWM[hXhhY]rhkXdeleterr}r(h:Uh;jubaubj$)r}r(h:Uh;jhBhEhLj'hN}r(hR]hS]hQ]hP]hT]uhWM[hXhhY]r(j*)r}r(h:XnamehN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkXnamerr}r(h:Uh;jubahLj2ubj*)r}r(h:Xif_unused=FalsehN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkXif_unused=Falserr}r(h:Uh;jubahLj2ubj*)r}r(h:Xif_empty=FalsehN}r(hR]hS]hQ]hP]hT]uh;jhY]rhkXif_empty=Falserr}r(h:Uh;jubahLj2ubeubeubj)r}r(h:Uh;jhBhEhLjhN}r(hR]hS]hQ]hP]hT]uhWM[hXhhY]rhu)r}r(h:X Deletes a queue and its binding.rh;jhBhEhLhxhN}r(hR]hS]hQ]hP]hT]uhWMZhXhhY]rhkX Deletes a queue and its binding.rr}r(h:jh;jubaubaubeubjb)r}r(h:Uh;jShBhEhLjehN}r(hP]hQ]hR]hS]hT]Uentries]r(jXdelete() (exchange method)h)UtrauhWNhXhhY]ubjg)r}r(h:Uh;jShBhEhLjjhN}r(jljmXpyhP]hQ]hR]hS]hT]jnXmethodrjpjuhWNhXhhY]r(jr)r}r(h:X&exchange.delete(name, if_unused=False)h;jhBhEhLjvhN}r(hP]rh)ajNhQ]hR]hS]hT]rh)ajh)jXexchangejxuhWM_hXhhY]r (j)r }r (h:X exchange.h;jhBhEhLjhN}r (hR]hS]hQ]hP]hT]uhWM_hXhhY]r hkX exchange.r r }r (h:Uh;j ubaubjz)r }r (h:Xdeleteh;jhBhEhLj}hN}r (hR]hS]hQ]hP]hT]uhWM_hXhhY]r hkXdeleter r }r (h:Uh;j ubaubj$)r }r (h:Uh;jhBhEhLj'hN}r (hR]hS]hQ]hP]hT]uhWM_hXhhY]r (j*)r }r (h:XnamehN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkXnamer r }r (h:Uh;j ubahLj2ubj*)r }r (h:Xif_unused=FalsehN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkXif_unused=Falser r }r (h:Uh;j ubahLj2ubeubeubj)r! }r" (h:Uh;jhBhEhLjhN}r# (hR]hS]hQ]hP]hT]uhWM_hXhhY]r$ hu)r% }r& (h:XDeletes an exchange.r' h;j! hBhEhLhxhN}r( (hR]hS]hQ]hP]hT]uhWM^hXhhY]r) hkXDeletes an exchange.r* r+ }r, (h:j' h;j% ubaubaubeubj<)r- }r. (h:X*Declaring does not necessarily mean "create". When you declare you *assert* that the entity exists and that it's operable. There is no rule as to whom should initially create the exchange/queue/binding, whether consumer or producer. Usually the first one to need it will be the one to create it.h;jShBhEhLj?hN}r/ (hR]hS]hQ]hP]hT]uhWNhXhhY]r0 hu)r1 }r2 (h:X*Declaring does not necessarily mean "create". When you declare you *assert* that the entity exists and that it's operable. There is no rule as to whom should initially create the exchange/queue/binding, whether consumer or producer. Usually the first one to need it will be the one to create it.h;j- hBhEhLhxhN}r3 (hR]hS]hQ]hP]hT]uhWMbhY]r4 (hkXDDeclaring does not necessarily mean "create". When you declare you r5 r6 }r7 (h:XDDeclaring does not necessarily mean "create". When you declare you h;j1 ubh)r8 }r9 (h:X*assert*hN}r: (hR]hS]hQ]hP]hT]uh;j1 hY]r; hkXassertr< r= }r> (h:Uh;j8 ubahLhubhkX that the entity exists and that it's operable. There is no rule as to whom should initially create the exchange/queue/binding, whether consumer or producer. Usually the first one to need it will be the one to create it.r? r@ }rA (h:X that the entity exists and that it's operable. There is no rule as to whom should initially create the exchange/queue/binding, whether consumer or producer. Usually the first one to need it will be the one to create it.h;j1 ubeubaubhI)rB }rC (h:X.. _amqp-api-hands-on:h;jShBhEhLhMhN}rD (hP]hQ]hR]hS]hT]hUUamqp-api-hands-onrE uhWMhhXhhY]ubeubh<)rF }rG (h:Uh;jhBhEhG}rH h+jB shLhZhN}rI (hR]hS]hQ]hP]rJ (jjE ehT]rK (h h+euhWMkhXhha}rL jE jB shY]rM (hd)rN }rO (h:jh;jF hBhEhLhhhN}rP (hP]hQ]hR]hS]hT]hUjuhWMkhXhhY]rQ hkXHands-on with the APIrR rS }rT (h:jh;jN ubaubhu)rU }rV (h:XCelery comes with a tool called :program:`camqadm` (short for Celery AMQ Admin). It's used for command-line access to the AMQP API, enabling access to administration tasks like creating/deleting queues and exchanges, purging queues or sending messages.h;jF hBhEhLhxhN}rW (hR]hS]hQ]hP]hT]uhWMmhXhhY]rX (hkX Celery comes with a tool called rY rZ }r[ (h:X Celery comes with a tool called h;jU ubj)r\ }r] (h:X:program:`camqadm`hN}r^ (hR]hS]r_ Uprogramr` ahQ]hP]hT]uh;jU hY]ra hkXcamqadmrb rc }rd (h:Uh;j\ ubahLjubhkX (short for Celery AMQ Admin). It's used for command-line access to the AMQP API, enabling access to administration tasks like creating/deleting queues and exchanges, purging queues or sending messages.re rf }rg (h:X (short for Celery AMQ Admin). It's used for command-line access to the AMQP API, enabling access to administration tasks like creating/deleting queues and exchanges, purging queues or sending messages.h;jU ubeubhu)rh }ri (h:X|You can write commands directly in the arguments to ``camqadm``, or just start with no arguments to start it in shell-mode::h;jF hBhEhLhxhN}rj (hR]hS]hQ]hP]hT]uhWMrhXhhY]rk (hkX4You can write commands directly in the arguments to rl rm }rn (h:X4You can write commands directly in the arguments to h;jh ubjK)ro }rp (h:X ``camqadm``hN}rq (hR]hS]hQ]hP]hT]uh;jh hY]rr hkXcamqadmrs rt }ru (h:Uh;jo ubahLjUubhkX<, or just start with no arguments to start it in shell-mode:rv rw }rx (h:X<, or just start with no arguments to start it in shell-mode:h;jh ubeubj)ry }rz (h:XI$ camqadm -> connecting to amqp://guest@localhost:5672/. -> connected. 1>h;jF hBhEhLjhN}r{ (jjhP]hQ]hR]hS]hT]uhWMuhXhhY]r| hkXI$ camqadm -> connecting to amqp://guest@localhost:5672/. -> connected. 1>r} r~ }r (h:Uh;jy ubaubhu)r }r (h:X Here `1>` is the prompt. The number 1, is the number of commands you have executed so far. Type `help` for a list of commands available. It also supports auto-completion, so you can start typing a command and then hit the `tab` key to show a list of possible matches.h;jF hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMzhXhhY]r (hkXHere r r }r (h:XHere h;j ubjw)r }r (h:X`1>`hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX1>r r }r (h:Uh;j ubahLjubhkXY is the prompt. The number 1, is the number of commands you have executed so far. Type r r }r (h:XY is the prompt. The number 1, is the number of commands you have executed so far. Type h;j ubjw)r }r (h:X`help`hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkXhelpr r }r (h:Uh;j ubahLjubhkXx for a list of commands available. It also supports auto-completion, so you can start typing a command and then hit the r r }r (h:Xx for a list of commands available. It also supports auto-completion, so you can start typing a command and then hit the h;j ubjw)r }r (h:X`tab`hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkXtabr r }r (h:Uh;j ubahLjubhkX( key to show a list of possible matches.r r }r (h:X( key to show a list of possible matches.h;j ubeubhu)r }r (h:X.Let's create a queue we can send messages to::r h;jF hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r hkX-Let's create a queue we can send messages to:r r }r (h:X-Let's create a queue we can send messages to:h;j ubaubj)r }r (h:X1> exchange.declare testexchange direct ok. 2> queue.declare testqueue ok. queue:testqueue messages:0 consumers:0. 3> queue.bind testqueue testexchange testkey ok.h;jF hBhEhLjhN}r (jjhP]hQ]hR]hS]hT]uhWMhXhhY]r hkX1> exchange.declare testexchange direct ok. 2> queue.declare testqueue ok. queue:testqueue messages:0 consumers:0. 3> queue.bind testqueue testexchange testkey ok.r r }r (h:Uh;j ubaubhu)r }r (h:XThis created the direct exchange ``testexchange``, and a queue named ``testqueue``. The queue is bound to the exchange using the routing key ``testkey``.h;jF hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r (hkX!This created the direct exchange r r }r (h:X!This created the direct exchange h;j ubjK)r }r (h:X``testexchange``hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX testexchanger r }r (h:Uh;j ubahLjUubhkX, and a queue named r r }r (h:X, and a queue named h;j ubjK)r }r (h:X ``testqueue``hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX testqueuer r }r (h:Uh;j ubahLjUubhkX<. The queue is bound to the exchange using the routing key r r }r (h:X<. The queue is bound to the exchange using the routing key h;j ubjK)r }r (h:X ``testkey``hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkXtestkeyr r }r (h:Uh;j ubahLjUubhkX.r }r (h:X.h;j ubeubhu)r }r (h:XFrom now on all messages sent to the exchange ``testexchange`` with routing key ``testkey`` will be moved to this queue. We can send a message by using the ``basic.publish`` command::h;jF hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r (hkX.From now on all messages sent to the exchange r r }r (h:X.From now on all messages sent to the exchange h;j ubjK)r }r (h:X``testexchange``hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX testexchanger r }r (h:Uh;j ubahLjUubhkX with routing key r r }r (h:X with routing key h;j ubjK)r }r (h:X ``testkey``hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkXtestkeyr r }r (h:Uh;j ubahLjUubhkXB will be moved to this queue. We can send a message by using the r r }r (h:XB will be moved to this queue. We can send a message by using the h;j ubjK)r }r (h:X``basic.publish``hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX basic.publishr r }r (h:Uh;j ubahLjUubhkX command:r r }r (h:X command:h;j ubeubj)r }r (h:X>4> basic.publish "This is a message!" testexchange testkey ok.h;jF hBhEhLjhN}r (jjhP]hQ]hR]hS]hT]uhWMhXhhY]r hkX>4> basic.publish "This is a message!" testexchange testkey ok.r r }r (h:Uh;j ubaubhu)r }r (h:XNow that the message is sent we can retrieve it again. We use the ``basic.get`` command here, which pops a single message off the queue, this command is not recommended for production as it implies polling, any real application would declare consumers instead.h;jF hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r (hkXCNow that the message is sent we can retrieve it again. We use the r r }r (h:XCNow that the message is sent we can retrieve it again. We use the h;j ubjK)r }r (h:X ``basic.get``hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX basic.getr r }r (h:Uh;j ubahLjUubhkX command here, which pops a single message off the queue, this command is not recommended for production as it implies polling, any real application would declare consumers instead.r r }r (h:X command here, which pops a single message off the queue, this command is not recommended for production as it implies polling, any real application would declare consumers instead.h;j ubeubhu)r }r (h:XPop a message off the queue::r h;jF hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r hkXPop a message off the queue:r r }r (h:XPop a message off the queue:h;j ubaubj)r }r (h:X5> basic.get testqueue {'body': 'This is a message!', 'delivery_info': {'delivery_tag': 1, 'exchange': u'testexchange', 'message_count': 0, 'redelivered': False, 'routing_key': u'testkey'}, 'properties': {}}h;jF hBhEhLjhN}r (jjhP]hQ]hR]hS]hT]uhWMhXhhY]r hkX5> basic.get testqueue {'body': 'This is a message!', 'delivery_info': {'delivery_tag': 1, 'exchange': u'testexchange', 'message_count': 0, 'redelivered': False, 'routing_key': u'testkey'}, 'properties': {}}r! r" }r# (h:Uh;j ubaubhu)r$ }r% (h:XAMQP uses acknowledgment to signify that a message has been received and processed successfully. If the message has not been acknowledged and consumer channel is closed, the message will be delivered to another consumer.r& h;jF hBhEhLhxhN}r' (hR]hS]hQ]hP]hT]uhWMhXhhY]r( hkXAMQP uses acknowledgment to signify that a message has been received and processed successfully. If the message has not been acknowledged and consumer channel is closed, the message will be delivered to another consumer.r) r* }r+ (h:j& h;j$ ubaubhu)r, }r- (h:XVNote the delivery tag listed in the structure above; Within a connection channel, every received message has a unique delivery tag, This tag is used to acknowledge the message. Also note that delivery tags are not unique across connections, so in another client the delivery tag ``1`` might point to a different message than in this channel.h;jF hBhEhLhxhN}r. (hR]hS]hQ]hP]hT]uhWMhXhhY]r/ (hkXNote the delivery tag listed in the structure above; Within a connection channel, every received message has a unique delivery tag, This tag is used to acknowledge the message. Also note that delivery tags are not unique across connections, so in another client the delivery tag r0 r1 }r2 (h:XNote the delivery tag listed in the structure above; Within a connection channel, every received message has a unique delivery tag, This tag is used to acknowledge the message. Also note that delivery tags are not unique across connections, so in another client the delivery tag h;j, ubjK)r3 }r4 (h:X``1``hN}r5 (hR]hS]hQ]hP]hT]uh;j, hY]r6 hkX1r7 }r8 (h:Uh;j3 ubahLjUubhkX9 might point to a different message than in this channel.r9 r: }r; (h:X9 might point to a different message than in this channel.h;j, ubeubhu)r< }r= (h:XAYou can acknowledge the message we received using ``basic.ack``::r> h;jF hBhEhLhxhN}r? (hR]hS]hQ]hP]hT]uhWMhXhhY]r@ (hkX2You can acknowledge the message we received using rA rB }rC (h:X2You can acknowledge the message we received using h;j< ubjK)rD }rE (h:X ``basic.ack``hN}rF (hR]hS]hQ]hP]hT]uh;j< hY]rG hkX basic.ackrH rI }rJ (h:Uh;jD ubahLjUubhkX:rK }rL (h:X:h;j< ubeubj)rM }rN (h:X6> basic.ack 1 ok.h;jF hBhEhLjhN}rO (jjhP]hQ]hR]hS]hT]uhWMhXhhY]rP hkX6> basic.ack 1 ok.rQ rR }rS (h:Uh;jM ubaubhu)rT }rU (h:XMTo clean up after our test session we should delete the entities we created::rV h;jF hBhEhLhxhN}rW (hR]hS]hQ]hP]hT]uhWMhXhhY]rX hkXLTo clean up after our test session we should delete the entities we created:rY rZ }r[ (h:XLTo clean up after our test session we should delete the entities we created:h;jT ubaubj)r\ }r] (h:XU7> queue.delete testqueue ok. 0 messages deleted. 8> exchange.delete testexchange ok.h;jF hBhEhLjhN}r^ (jjhP]hQ]hR]hS]hT]uhWMhXhhY]r_ hkXU7> queue.delete testqueue ok. 0 messages deleted. 8> exchange.delete testexchange ok.r` ra }rb (h:Uh;j\ ubaubhI)rc }rd (h:X.. _routing-tasks:h;jF hBhEhLhMhN}re (hP]hQ]hR]hS]hT]hUjuhWMhXhhY]ubeubeubh=eubhBhEhG}rf hjc shLhZhN}rg (hR]rh h]ahS]hQ]hP]ri (jUid3rj ehT]rk hauhWMhXhha}rl jjc shY]rm (hd)rn }ro (h:jh;h=hBhEhLhhhN}rp (hP]hQ]hR]hS]hT]hUjuhWMhXhhY]rq hkX Routing Tasksrr rs }rt (h:jh;jn ubaubhI)ru }rv (h:X.. _routing-defining-queues:h;h=hBhEhLhMhN}rw (hP]hQ]hR]hS]hT]hUUrouting-defining-queuesrx uhWMhXhhY]ubh<)ry }rz (h:Uh;h=hBhEhG}r{ h-ju shLhZhN}r| (hR]hS]hQ]hP]r} (jjx ehT]r~ (h"h-euhWMhXhha}r jx ju shY]r (hd)r }r (h:jh;jy hBhEhLhhhN}r (hP]hQ]hR]hS]hT]hUjuhWMhXhhY]r hkXDefining queuesr r }r (h:jh;j ubaubhu)r }r (h:XOIn Celery available queues are defined by the :setting:`CELERY_QUEUES` setting.r h;jy hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r (hkX.In Celery available queues are defined by the r r }r (h:X.In Celery available queues are defined by the h;j ubh~)r }r (h:X:setting:`CELERY_QUEUES`r h;j hBhEhLhhN}r (UreftypeXsettinghhX CELERY_QUEUESU refdomainXstdr hP]hQ]U refexplicithR]hS]hT]hhuhWMhY]r jK)r }r (h:j hN}r (hR]hS]r (hj X std-settingr ehQ]hP]hT]uh;j hY]r hkX CELERY_QUEUESr r }r (h:Uh;j ubahLjUubaubhkX setting.r r }r (h:X setting.h;j ubeubhu)r }r (h:XHere's an example queue configuration with three queues; One for video, one for images and one default queue for everything else:r h;jy hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r hkXHere's an example queue configuration with three queues; One for video, one for images and one default queue for everything else:r r }r (h:j h;j ubaubj)r }r (h:XCELERY_QUEUES = { "default": { "exchange": "default", "binding_key": "default"}, "videos": { "exchange": "media", "exchange_type": "topic", "binding_key": "media.video", }, "images": { "exchange": "media", "exchange_type": "topic", "binding_key": "media.image", } } CELERY_DEFAULT_QUEUE = "default" CELERY_DEFAULT_EXCHANGE = "default" CELERY_DEFAULT_EXCHANGE_TYPE = "direct" CELERY_DEFAULT_ROUTING_KEY = "default"h;jy hBhEhLjhN}r (jjXpythonjjhP]hQ]hR]hS]hT]uhWMhXhhY]r hkXCELERY_QUEUES = { "default": { "exchange": "default", "binding_key": "default"}, "videos": { "exchange": "media", "exchange_type": "topic", "binding_key": "media.video", }, "images": { "exchange": "media", "exchange_type": "topic", "binding_key": "media.image", } } CELERY_DEFAULT_QUEUE = "default" CELERY_DEFAULT_EXCHANGE = "default" CELERY_DEFAULT_EXCHANGE_TYPE = "direct" CELERY_DEFAULT_ROUTING_KEY = "default"r r }r (h:Uh;j ubaubhu)r }r (h:XjHere, the :setting:`CELERY_DEFAULT_QUEUE` will be used to route tasks that doesn't have an explicit route.h;jy hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r (hkX Here, the r r }r (h:X Here, the h;j ubh~)r }r (h:X:setting:`CELERY_DEFAULT_QUEUE`r h;j hBhEhLhhN}r (UreftypeXsettinghhXCELERY_DEFAULT_QUEUEU refdomainXstdr hP]hQ]U refexplicithR]hS]hT]hhuhWMhY]r jK)r }r (h:j hN}r (hR]hS]r (hj X std-settingr ehQ]hP]hT]uh;j hY]r hkXCELERY_DEFAULT_QUEUEr r }r (h:Uh;j ubahLjUubaubhkXA will be used to route tasks that doesn't have an explicit route.r r }r (h:XA will be used to route tasks that doesn't have an explicit route.h;j ubeubhu)r }r (h:XThe default exchange, exchange type and routing key will be used as the default routing values for tasks, and as the default values for entries in :setting:`CELERY_QUEUES`.h;jy hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r (hkXThe default exchange, exchange type and routing key will be used as the default routing values for tasks, and as the default values for entries in r r }r (h:XThe default exchange, exchange type and routing key will be used as the default routing values for tasks, and as the default values for entries in h;j ubh~)r }r (h:X:setting:`CELERY_QUEUES`r h;j hBhEhLhhN}r (UreftypeXsettinghhX CELERY_QUEUESU refdomainXstdr hP]hQ]U refexplicithR]hS]hT]hhuhWMhY]r jK)r }r (h:j hN}r (hR]hS]r (hj X std-settingr ehQ]hP]hT]uh;j hY]r hkX CELERY_QUEUESr r }r (h:Uh;j ubahLjUubaubhkX.r }r (h:X.h;j ubeubhI)r }r (h:X.. _routing-task-destination:h;jy hBhEhLhMhN}r (hP]hQ]hR]hS]hT]hUUrouting-task-destinationr uhWMhXhhY]ubeubh<)r }r (h:Uh;h=hBhEhG}r h/j shLhZhN}r (hR]hS]hQ]hP]r (jj ehT]r (h*h/euhWMhXhha}r j j shY]r (hd)r }r (h:jh;j hBhEhLhhhN}r (hP]hQ]hR]hS]hT]hUjuhWMhXhhY]r hkXSpecifying task destinationr r }r (h:jh;j ubaubhu)r }r (h:XBThe destination for a task is decided by the following (in order):r h;j hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r hkXBThe destination for a task is decided by the following (in order):r r }r (h:j h;j ubaubj)r }r (h:Uh;j hBhEhLjhN}r (jU.hP]hQ]hR]jUhS]hT]jjuhWMhXhhY]r (h)r }r (h:X7The :ref:`routers` defined in :setting:`CELERY_ROUTES`.r h;j hBhEhLhhN}r (hR]hS]hQ]hP]hT]uhWNhXhhY]r hu)r }r (h:j h;j hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhY]r (hkXThe r r }r (h:XThe h;j ubh~)r }r (h:X:ref:`routers`r h;j hBhEhLhhN}r (UreftypeXrefhhXroutersU refdomainXstdr hP]hQ]U refexplicithR]hS]hT]hhuhWMhY]r h)r }r (h:j hN}r (hR]hS]r (hj Xstd-refr ehQ]hP]hT]uh;j hY]r hkXroutersr r }r (h:Uh;j ubahLhubaubhkX defined in r r }r (h:X defined in h;j ubh~)r }r (h:X:setting:`CELERY_ROUTES`r! h;j hBhEhLhhN}r" (UreftypeXsettinghhX CELERY_ROUTESU refdomainXstdr# hP]hQ]U refexplicithR]hS]hT]hhuhWMhY]r$ jK)r% }r& (h:j! hN}r' (hR]hS]r( (hj# X std-settingr) ehQ]hP]hT]uh;j hY]r* hkX CELERY_ROUTESr+ r, }r- (h:Uh;j% ubahLjUubaubhkX.r. }r/ (h:X.h;j ubeubaubh)r0 }r1 (h:X=The routing arguments to :func:`~celery.execute.apply_async`.r2 h;j hBhEhLhhN}r3 (hR]hS]hQ]hP]hT]uhWNhXhhY]r4 hu)r5 }r6 (h:j2 h;j0 hBhEhLhxhN}r7 (hR]hS]hQ]hP]hT]uhWMhY]r8 (hkXThe routing arguments to r9 r: }r; (h:XThe routing arguments to h;j5 ubh~)r< }r= (h:X#:func:`~celery.execute.apply_async`r> h;j5 hBhEhLhhN}r? (UreftypeXfunchhXcelery.execute.apply_asyncU refdomainXpyr@ hP]hQ]U refexplicithR]hS]hT]hhjNjNuhWMhY]rA jK)rB }rC (h:j> hN}rD (hR]hS]rE (hj@ Xpy-funcrF ehQ]hP]hT]uh;j< hY]rG hkX apply_async()rH rI }rJ (h:Uh;jB ubahLjUubaubhkX.rK }rL (h:X.h;j5 ubeubaubh)rM }rN (h:XRRouting related attributes defined on the :class:`~celery.task.base.Task` itself. h;j hBhEhLhhN}rO (hR]hS]hQ]hP]hT]uhWNhXhhY]rP hu)rQ }rR (h:XQRouting related attributes defined on the :class:`~celery.task.base.Task` itself.h;jM hBhEhLhxhN}rS (hR]hS]hQ]hP]hT]uhWMhY]rT (hkX*Routing related attributes defined on the rU rV }rW (h:X*Routing related attributes defined on the h;jQ ubh~)rX }rY (h:X:class:`~celery.task.base.Task`rZ h;jQ hBhEhLhhN}r[ (UreftypeXclasshhXcelery.task.base.TaskU refdomainXpyr\ hP]hQ]U refexplicithR]hS]hT]hhjNjNuhWMhY]r] jK)r^ }r_ (h:jZ hN}r` (hR]hS]ra (hj\ Xpy-classrb ehQ]hP]hT]uh;jX hY]rc hkXTaskrd re }rf (h:Uh;j^ ubahLjUubaubhkX itself.rg rh }ri (h:X itself.h;jQ ubeubaubeubhu)rj }rk (h:XIt is considered best practice to not hard-code these settings, but rather leave that as configuration options by using :ref:`routers`; This is the most flexible approach, but sensible defaults can still be set as task attributes.h;j hBhEhLhxhN}rl (hR]hS]hQ]hP]hT]uhWMhXhhY]rm (hkXxIt is considered best practice to not hard-code these settings, but rather leave that as configuration options by using rn ro }rp (h:XxIt is considered best practice to not hard-code these settings, but rather leave that as configuration options by using h;jj ubh~)rq }rr (h:X:ref:`routers`rs h;jj hBhEhLhhN}rt (UreftypeXrefhhXroutersU refdomainXstdru hP]hQ]U refexplicithR]hS]hT]hhuhWMhY]rv h)rw }rx (h:js hN}ry (hR]hS]rz (hju Xstd-refr{ ehQ]hP]hT]uh;jq hY]r| hkXroutersr} r~ }r (h:Uh;jw ubahLhubaubhkX`; This is the most flexible approach, but sensible defaults can still be set as task attributes.r r }r (h:X`; This is the most flexible approach, but sensible defaults can still be set as task attributes.h;jj ubeubhI)r }r (h:X .. _routers:h;j hBhEhLhMhN}r (hP]hQ]hR]hS]hT]hUjuhWMhXhhY]ubeubh<)r }r (h:Uh?Kh;h=hBhEhG}r h j shLhZhN}r (hR]r Xroutersr ahS]hQ]hP]r (jUid4r ehT]r h auhWMhXhha}r jj shY]r (hd)r }r (h:jh;j hBhEhLhhhN}r (hP]hQ]hR]hS]hT]hUjuhWMhXhhY]r hkXRoutersr r }r (h:jh;j ubaubhu)r }r (h:X@A router is a class that decides the routing options for a task.r h;j hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r hkX@A router is a class that decides the routing options for a task.r r }r (h:j h;j ubaubhu)r }r (h:XZAll you need to define a new router is to create a class with a ``route_for_task`` method:h;j hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r (hkX@All you need to define a new router is to create a class with a r r }r (h:X@All you need to define a new router is to create a class with a h;j ubjK)r }r (h:X``route_for_task``hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkXroute_for_taskr r }r (h:Uh;j ubahLjUubhkX method:r r }r (h:X method:h;j ubeubj)r }r (h:X%class MyRouter(object): def route_for_task(self, task, args=None, kwargs=None): if task == "myapp.tasks.compress_video": return {"exchange": "video", "exchange_type": "topic", "routing_key": "video.compress"} return Noneh;j hBhEhLjhN}r (jjXpythonjjhP]hQ]hR]hS]hT]uhWMhXhhY]r hkX%class MyRouter(object): def route_for_task(self, task, args=None, kwargs=None): if task == "myapp.tasks.compress_video": return {"exchange": "video", "exchange_type": "topic", "routing_key": "video.compress"} return Noner r }r (h:Uh;j ubaubhu)r }r (h:XuIf you return the ``queue`` key, it will expand with the defined settings of that queue in :setting:`CELERY_QUEUES`::h;j hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r (hkXIf you return the r r }r (h:XIf you return the h;j ubjK)r }r (h:X ``queue``hN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkXqueuer r }r (h:Uh;j ubahLjUubhkX@ key, it will expand with the defined settings of that queue in r r }r (h:X@ key, it will expand with the defined settings of that queue in h;j ubh~)r }r (h:X:setting:`CELERY_QUEUES`r h;j hBhEhLhhN}r (UreftypeXsettinghhX CELERY_QUEUESU refdomainXstdr hP]hQ]U refexplicithR]hS]hT]hhuhWMhY]r jK)r }r (h:j hN}r (hR]hS]r (hj X std-settingr ehQ]hP]hT]uh;j hY]r hkX CELERY_QUEUESr r }r (h:Uh;j ubahLjUubaubhkX:r }r (h:X:h;j ubeubj)r }r (h:X{"queue": "video", "routing_key": "video.compress"} becomes --> {"queue": "video", "exchange": "video", "exchange_type": "topic", "routing_key": "video.compress"}h;j hBhEhLjhN}r (jjhP]hQ]hR]hS]hT]uhWMhXhhY]r hkX{"queue": "video", "routing_key": "video.compress"} becomes --> {"queue": "video", "exchange": "video", "exchange_type": "topic", "routing_key": "video.compress"}r r }r (h:Uh;j ubaubhu)r }r (h:XSYou install router classes by adding them to the :setting:`CELERY_ROUTES` setting::r h;j hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r (hkX1You install router classes by adding them to the r r }r (h:X1You install router classes by adding them to the h;j ubh~)r }r (h:X:setting:`CELERY_ROUTES`r h;j hBhEhLhhN}r (UreftypeXsettinghhX CELERY_ROUTESU refdomainXstdr hP]hQ]U refexplicithR]hS]hT]hhuhWMhY]r jK)r }r (h:j hN}r (hR]hS]r (hj X std-settingr ehQ]hP]hT]uh;j hY]r hkX CELERY_ROUTESr r }r (h:Uh;j ubahLjUubaubhkX setting:r r }r (h:X setting:h;j ubeubj)r }r (h:XCELERY_ROUTES = (MyRouter, )h;j hBhEhLjhN}r (jjhP]hQ]hR]hS]hT]uhWMhXhhY]r hkXCELERY_ROUTES = (MyRouter, )r r }r (h:Uh;j ubaubhu)r }r (h:X*Router classes can also be added by name::r h;j hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWMhXhhY]r hkX)Router classes can also be added by name:r r }r (h:X)Router classes can also be added by name:h;j ubaubj)r }r (h:X,CELERY_ROUTES = ("myapp.routers.MyRouter", )h;j hBhEhLjhN}r (jjhP]hQ]hR]hS]hT]uhWM!hXhhY]r hkX,CELERY_ROUTES = ("myapp.routers.MyRouter", )r r }r (h:Uh;j ubaubhu)r }r (h:XFor simple task name -> route mappings like the router example above, you can simply drop a dict into :setting:`CELERY_ROUTES` to get the same behavior:h;j hBhEhLhxhN}r (hR]hS]hQ]hP]hT]uhWM$hXhhY]r (hkXfFor simple task name -> route mappings like the router example above, you can simply drop a dict into r r }r (h:XfFor simple task name -> route mappings like the router example above, you can simply drop a dict into h;j ubh~)r }r (h:X:setting:`CELERY_ROUTES`r h;j hBhEhLhhN}r (UreftypeXsettinghhX CELERY_ROUTESU refdomainXstdr hP]hQ]U refexplicithR]hS]hT]hhuhWM$hY]r jK)r }r (h:j hN}r (hR]hS]r! (hj X std-settingr" ehQ]hP]hT]uh;j hY]r# hkX CELERY_ROUTESr$ r% }r& (h:Uh;j ubahLjUubaubhkX to get the same behavior:r' r( }r) (h:X to get the same behavior:h;j ubeubj)r* }r+ (h:XCELERY_ROUTES = ({"myapp.tasks.compress_video": { "queue": "video", "routing_key": "video.compress" }}, )h;j hBhEhLjhN}r, (jjXpythonjjhP]hQ]hR]hS]hT]uhWM'hXhhY]r- hkXCELERY_ROUTES = ({"myapp.tasks.compress_video": { "queue": "video", "routing_key": "video.compress" }}, )r. r/ }r0 (h:Uh;j* ubaubhu)r1 }r2 (h:XThe routers will then be traversed in order, it will stop at the first router returning a true value, and use that as the final route for the task.r3 h;j hBhEhLhxhN}r4 (hR]hS]hQ]hP]hT]uhWM.hXhhY]r5 hkXThe routers will then be traversed in order, it will stop at the first router returning a true value, and use that as the final route for the task.r6 r7 }r8 (h:j3 h;j1 ubaubeubeubhBhEhLUsystem_messager9 hN}r: (hR]UlevelKhP]hQ]r; jj aUsourcehEhS]hT]UlineMUtypeUINFOr< uhWMhXhhY]r= hu)r> }r? (h:UhN}r@ (hR]hS]hQ]hP]hT]uh;h8hY]rA hkX0Duplicate implicit target name: "routing tasks".rB rC }rD (h:Uh;j> ubahLhxubaubh7)rE }rF (h:Uh;j hBhEhLj9 hN}rG (hR]UlevelKhP]hQ]rH j aUsourcehEhS]hT]UlineMUtypej< uhWMhXhhY]rI hu)rJ }rK (h:UhN}rL (hR]hS]hQ]hP]hT]uh;jE hY]rM hkX*Duplicate implicit target name: "routers".rN rO }rP (h:Uh;jJ ubahLhxubaubeUcurrent_sourcerQ NU decorationrR NUautofootnote_startrS KUnameidsrT }rU (hhVhhhj.h jh jh jh hh j"hhhjLhjhhhjrhj~hjhjhj_hhhhhjhjhjLhjhjhj`hjh jh!jh"jh#jh$Nh%jRh&hh'jh(hh)h)h*jh+jE h,j9h-jx h.j.h/j h0jh1jh2juhY]rV (hJh@eh:UU transformerrW NU footnote_refsrX }rY UrefnamesrZ }r[ (Xlast-value-cache plug-in]r\ jaXflexible routing model]r] jaX rabbitmq faq]r^ jaXstandard exchange types]r_ jaXrabbits and warrens]r` jauUsymbol_footnotesra ]rb Uautofootnote_refsrc ]rd Usymbol_footnote_refsre ]rf U citationsrg ]rh hXhU current_lineri NUtransform_messagesrj ]rk (h7)rl }rm (h:UhN}rn (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineKUtypej< uhY]ro hu)rp }rq (h:UhN}rr (hR]hS]hQ]hP]hT]uh;jl hY]rs hkX3Hyperlink target "guide-routing" is not referenced.rt ru }rv (h:Uh;jp ubahLhxubahLj9 ubh7)rw }rx (h:UhN}ry (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineKUtypej< uhY]rz hu)r{ }r| (h:UhN}r} (hR]hS]hQ]hP]hT]uh;jw hY]r~ hkX4Hyperlink target "routing-basics" is not referenced.r r }r (h:Uh;j{ ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineKUtypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX7Hyperlink target "routing-automatic" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineK6Utypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkXDHyperlink target "routing-changing-default-queue" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineKDUtypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX?Hyperlink target "routing-autoqueue-details" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineKYUtypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX4Hyperlink target "routing-manual" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineKUtypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX1Hyperlink target "amqp-primer" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineKUtypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkXFHyperlink target "amqp-producers-consumers-brokers" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineKUtypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX@Hyperlink target "amqp-exchanges-queues-keys" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineMUtypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX9Hyperlink target "amqp-exchange-types" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineM#Utypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX?Hyperlink target "amqp-exchange-type-direct" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineM+Utypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX>Hyperlink target "amqp-exchange-type-topic" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineM8Utypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX.Hyperlink target "amqp-api" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineMhUtypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX7Hyperlink target "amqp-api-hands-on" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineMUtypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX)Hyperlink target "id2" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineMUtypej< uhY]r hu)r }r (h:UhN}r (hR]hS]hQ]hP]hT]uh;j hY]r hkX=Hyperlink target "routing-defining-queues" is not referenced.r r }r (h:Uh;j ubahLhxubahLj9 ubh7)r }r (h:UhN}r (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineMUtypej< uhY]r hu)r }r! (h:UhN}r" (hR]hS]hQ]hP]hT]uh;j hY]r# hkX>Hyperlink target "routing-task-destination" is not referenced.r$ r% }r& (h:Uh;j ubahLhxubahLj9 ubh7)r' }r( (h:UhN}r) (hR]UlevelKhP]hQ]UsourcehEhS]hT]UlineMUtypej< uhY]r* hu)r+ }r, (h:UhN}r- (hR]hS]hQ]hP]hT]uh;j' hY]r. hkX-Hyperlink target "routers" is not referenced.r/ r0 }r1 (h:Uh;j+ ubahLhxubahLj9 ubeUreporterr2 NUid_startr3 KU autofootnotesr4 ]r5 U citation_refsr6 }r7 Uindirect_targetsr8 ]r9 Usettingsr: (cdocutils.frontend Values r; or< }r= (Ufootnote_backlinksr> KUrecord_dependenciesr? NU rfc_base_urlr@ Uhttp://tools.ietf.org/html/rA U tracebackrB Upep_referencesrC NUstrip_commentsrD NU toc_backlinksrE UentryrF U language_coderG UenrH U datestamprI NU report_levelrJ KU _destinationrK NU halt_levelrL KU strip_classesrM NhhNUerror_encoding_error_handlerrN UbackslashreplacerO UdebugrP NUembed_stylesheetrQ Uoutput_encoding_error_handlerrR UstrictrS U sectnum_xformrT KUdump_transformsrU NU docinfo_xformrV KUwarning_streamrW NUpep_file_url_templaterX Upep-%04drY Uexit_status_levelrZ KUconfigr[ NUstrict_visitorr\ NUcloak_email_addressesr] Utrim_footnote_reference_spacer^ Uenvr_ NUdump_pseudo_xmlr` NUexpose_internalsra NUsectsubtitle_xformrb U source_linkrc NUrfc_referencesrd NUoutput_encodingre Uutf-8rf U source_urlrg NUinput_encodingrh U utf-8-sigri U_disable_configrj NU id_prefixrk UU tab_widthrl KUerror_encodingrm UUTF-8rn U_sourcero UO/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/routing.rstrp Ugettext_compactrq U generatorrr NUdump_internalsrs NU smart_quotesrt U pep_base_urlru Uhttp://www.python.org/dev/peps/rv Usyntax_highlightrw Ulongrx Uinput_encoding_error_handlerry jS Uauto_id_prefixrz Uidr{ Udoctitle_xformr| Ustrip_elements_with_classesr} NU _config_filesr~ ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (hVh@hj hjhhjjhj/jjjjhjjjy j"jjjjLjMhhjjMjLj/j~jhhjj hhhhj j jjhjjj h=hjujjj!jj8j4jKjGjj jqjmjjjjjjSjjj^jZjjjjh_h@j`jajjjjF jj jjjjj_jjjjrjajjjh=jjjj hjh)jjE jF j9jjRjSj.j/jx jy j.j/j j jjjjjjuUsubstitution_namesr }r hLhXhN}r (hR]hP]hQ]UsourcehEhS]hT]uU footnotesr ]r Urefidsr }r (hV]r hJaj.]r j+ajL]r jIaj~]r j{aj]r jaj]r jc ajE ]r jB aj]r jaj`]r j]ajx ]r ju aj.]r j+ajR]r jOaj ]r j aj"]r jaj]r jaj]r jaj]r jaj]r j auub.PKYDD^^9celery-2.1-archived/.doctrees/userguide/executing.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xexecuting tasksqNXbasicsqNX serializersqNXexecuting-expirationq X amqp optionsq NXexecuting-serializersq X$connections and connection timeouts.q NXexecuting-connectionsq X executing-etaqXexecuting-basicsqX expirationqNXeta and countdownqNXguide-executingqXexecuting-amq-optsqXrouting optionsqNXexecuting-routingqXcarrot: serialization of dataqUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q (hUexecuting-tasksq!hUbasicsq"hU serializersq#h Uexecuting-expirationq$h U amqp-optionsq%h Uexecuting-serializersq&h U#connections-and-connection-timeoutsq'h Uexecuting-connectionsq(hU executing-etaq)hUexecuting-basicsq*hU expirationq+hUeta-and-countdownq,hUguide-executingq-hUexecuting-amq-optsq.hUrouting-optionsq/hUexecuting-routingq0hUcarrot-serialization-of-dataq1hUcontentsq2uUchildrenq3]q4(cdocutils.nodes target q5)q6}q7(U rawsourceq8X.. _guide-executing:Uparentq9hUsourceq:cdocutils.nodes reprunicode q;XQ/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/executing.rstqbUtagnameq?Utargetq@U attributesqA}qB(UidsqC]UbackrefsqD]UdupnamesqE]UclassesqF]UnamesqG]UrefidqHh-uUlineqIKUdocumentqJhh3]ubcdocutils.nodes section qK)qL}qM(h8Uh9hh:h=Uexpect_referenced_by_nameqN}qOhh6sh?UsectionqPhA}qQ(hE]hF]hD]hC]qR(h!h-ehG]qS(hheuhIKhJhUexpect_referenced_by_idqT}qUh-h6sh3]qV(cdocutils.nodes title qW)qX}qY(h8XExecuting TasksqZh9hLh:h=h?Utitleq[hA}q\(hE]hF]hD]hC]hG]uhIKhJhh3]q]cdocutils.nodes Text q^XExecuting Tasksq_q`}qa(h8hZh9hXubaubcdocutils.nodes topic qb)qc}qd(h8Uh9hLh:h=h?UtopicqehA}qf(hE]hF]qg(UcontentsqhUlocalqiehD]hC]qjh2ahG]qkhauhIK hJhh3]qlcdocutils.nodes bullet_list qm)qn}qo(h8Uh9hch:Nh?U bullet_listqphA}qq(hE]hF]hD]hC]hG]uhINhJhh3]qr(cdocutils.nodes list_item qs)qt}qu(h8UhA}qv(hE]hF]hD]hC]hG]uh9hnh3]qwcdocutils.nodes paragraph qx)qy}qz(h8UhA}q{(hE]hF]hD]hC]hG]uh9hth3]q|cdocutils.nodes reference q})q~}q(h8UhA}q(hC]qUid1qahD]hE]hF]hG]Urefidh"uh9hyh3]qh^XBasicsqq}q(h8XBasicsqh9h~ubah?U referencequbah?U paragraphqubah?U list_itemqubhs)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hnh3]qhx)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hh3]qh})q}q(h8UhA}q(hC]qUid2qahD]hE]hF]hG]Urefidh,uh9hh3]qh^XETA and countdownqq}q(h8XETA and countdownqh9hubah?hubah?hubah?hubhs)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hnh3]qhx)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hh3]qh})q}q(h8UhA}q(hC]qUid3qahD]hE]hF]hG]Urefidh+uh9hh3]qh^X Expirationqq}q(h8X Expirationqh9hubah?hubah?hubah?hubhs)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hnh3]qhx)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hh3]qh})q}q(h8UhA}q(hC]qUid4qahD]hE]hF]hG]Urefidh#uh9hh3]qh^X Serializersqq}q(h8X Serializersqh9hubah?hubah?hubah?hubhs)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hnh3]qhx)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hh3]qh})q}q(h8UhA}q(hC]qUid5qahD]hE]hF]hG]Urefidh'uh9hh3]qh^X$Connections and connection timeouts.qυq}q(h8X$Connections and connection timeouts.qh9hubah?hubah?hubah?hubhs)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hnh3]qhx)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hh3]qh})q}q(h8UhA}q(hC]qUid6qahD]hE]hF]hG]Urefidh/uh9hh3]qh^XRouting optionsqᅁq}q(h8XRouting optionsqh9hubah?hubah?hubah?hubhs)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hnh3]qhx)q}q(h8UhA}q(hE]hF]hD]hC]hG]uh9hh3]qh})q}q(h8UhA}q(hC]qUid7qahD]hE]hF]hG]Urefidh%uh9hh3]qh^X AMQP optionsqq}q(h8X AMQP optionsqh9hubah?hubah?hubah?hubeubaubh5)q}q(h8X.. _executing-basics:h9hLh:h=h?h@hA}q(hC]hD]hE]hF]hG]hHh*uhIK hJhh3]ubhK)q}q(h8Uh9hLh:h=hN}qhhsh?hPhA}q(hE]hF]hD]hC]q(h"h*ehG]q(hheuhIKhJhhT}rh*hsh3]r(hW)r}r(h8hh9hh:h=h?h[hA}r(hC]hD]hE]hF]hG]hHhuhIKhJhh3]rh^XBasicsrr}r(h8hh9jubaubhx)r }r (h8XExecuting tasks is done with :meth:`~celery.task.Base.Task.apply_async`, and the shortcut: :meth:`~celery.task.Base.Task.delay`.h9hh:h=h?hhA}r (hE]hF]hD]hC]hG]uhIKhJhh3]r (h^XExecuting tasks is done with r r}r(h8XExecuting tasks is done with h9j ubcsphinx.addnodes pending_xref r)r}r(h8X*:meth:`~celery.task.Base.Task.apply_async`rh9j h:h=h?U pending_xrefrhA}r(UreftypeXmethUrefwarnrU reftargetrX!celery.task.Base.Task.apply_asyncU refdomainXpyrhC]hD]U refexplicithE]hF]hG]UrefdocrXuserguide/executingrUpy:classrNU py:modulerNuhIKh3]rcdocutils.nodes literal r)r}r (h8jhA}r!(hE]hF]r"(Uxrefr#jXpy-methr$ehD]hC]hG]uh9jh3]r%h^X apply_async()r&r'}r((h8Uh9jubah?Uliteralr)ubaubh^X, and the shortcut: r*r+}r,(h8X, and the shortcut: h9j ubj)r-}r.(h8X$:meth:`~celery.task.Base.Task.delay`r/h9j h:h=h?jhA}r0(UreftypeXmethjjXcelery.task.Base.Task.delayU refdomainXpyr1hC]hD]U refexplicithE]hF]hG]jjjNjNuhIKh3]r2j)r3}r4(h8j/hA}r5(hE]hF]r6(j#j1Xpy-methr7ehD]hC]hG]uh9j-h3]r8h^Xdelay()r9r:}r;(h8Uh9j3ubah?j)ubaubh^X.r<}r=(h8X.h9j ubeubhx)r>}r?(h8XP``delay`` is simple and convenient, as it looks like calling a regular function:h9hh:h=h?hhA}r@(hE]hF]hD]hC]hG]uhIKhJhh3]rA(j)rB}rC(h8X ``delay``hA}rD(hE]hF]hD]hC]hG]uh9j>h3]rEh^XdelayrFrG}rH(h8Uh9jBubah?j)ubh^XG is simple and convenient, as it looks like calling a regular function:rIrJ}rK(h8XG is simple and convenient, as it looks like calling a regular function:h9j>ubeubcdocutils.nodes literal_block rL)rM}rN(h8X.Task.delay(arg1, arg2, kwarg1="x", kwarg2="y")h9hh:h=h?U literal_blockrOhA}rP(UlinenosrQUlanguagerRXpythonU xml:spacerSUpreserverThC]hD]hE]hF]hG]uhIKhJhh3]rUh^X.Task.delay(arg1, arg2, kwarg1="x", kwarg2="y")rVrW}rX(h8Uh9jMubaubhx)rY}rZ(h8X4The same using ``apply_async`` is written like this:r[h9hh:h=h?hhA}r\(hE]hF]hD]hC]hG]uhIKhJhh3]r](h^XThe same using r^r_}r`(h8XThe same using h9jYubj)ra}rb(h8X``apply_async``hA}rc(hE]hF]hD]hC]hG]uh9jYh3]rdh^X apply_asyncrerf}rg(h8Uh9jaubah?j)ubh^X is written like this:rhri}rj(h8X is written like this:h9jYubeubjL)rk}rl(h8XJTask.apply_async(args=[arg1, arg2], kwargs={"kwarg1": "x", "kwarg2": "y"})h9hh:h=h?jOhA}rm(jQjRXpythonjSjThC]hD]hE]hF]hG]uhIKhJhh3]rnh^XJTask.apply_async(args=[arg1, arg2], kwargs={"kwarg1": "x", "kwarg2": "y"})rorp}rq(h8Uh9jkubaubhx)rr}rs(h8XCWhile ``delay`` is convenient, it doesn't give you as much control as using ``apply_async``. With ``apply_async`` you can override the execution options available as attributes on the ``Task`` class (see :ref:`task-options`). In addition you can set countdown/eta, task expiry, provide a custom broker connection and more.h9hh:h=h?hhA}rt(hE]hF]hD]hC]hG]uhIK!hJhh3]ru(h^XWhile rvrw}rx(h8XWhile h9jrubj)ry}rz(h8X ``delay``hA}r{(hE]hF]hD]hC]hG]uh9jrh3]r|h^Xdelayr}r~}r(h8Uh9jyubah?j)ubh^X= is convenient, it doesn't give you as much control as using rr}r(h8X= is convenient, it doesn't give you as much control as using h9jrubj)r}r(h8X``apply_async``hA}r(hE]hF]hD]hC]hG]uh9jrh3]rh^X apply_asyncrr}r(h8Uh9jubah?j)ubh^X. With rr}r(h8X. With h9jrubj)r}r(h8X``apply_async``hA}r(hE]hF]hD]hC]hG]uh9jrh3]rh^X apply_asyncrr}r(h8Uh9jubah?j)ubh^XG you can override the execution options available as attributes on the rr}r(h8XG you can override the execution options available as attributes on the h9jrubj)r}r(h8X``Task``hA}r(hE]hF]hD]hC]hG]uh9jrh3]rh^XTaskrr}r(h8Uh9jubah?j)ubh^X class (see rr}r(h8X class (see h9jrubj)r}r(h8X:ref:`task-options`rh9jrh:h=h?jhA}r(UreftypeXrefjjX task-optionsU refdomainXstdrhC]hD]U refexplicithE]hF]hG]jjuhIK!h3]rcdocutils.nodes emphasis r)r}r(h8jhA}r(hE]hF]r(j#jXstd-refrehD]hC]hG]uh9jh3]rh^X task-optionsrr}r(h8Uh9jubah?Uemphasisrubaubh^Xc). In addition you can set countdown/eta, task expiry, provide a custom broker connection and more.rr}r(h8Xc). In addition you can set countdown/eta, task expiry, provide a custom broker connection and more.h9jrubeubhx)r}r(h8XLet's go over these in more detail. All the examples uses a simple task, called ``add``, taking two positional arguments and returning the sum:h9hh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIK'hJhh3]r(h^XQLet's go over these in more detail. All the examples uses a simple task, called rr}r(h8XQLet's go over these in more detail. All the examples uses a simple task, called h9jubj)r}r(h8X``add``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^Xaddrr}r(h8Uh9jubah?j)ubh^X8, taking two positional arguments and returning the sum:rr}r(h8X8, taking two positional arguments and returning the sum:h9jubeubjL)r}r(h8X%@task def add(x, y): return x + yh9hh:h=h?jOhA}r(jQjRXpythonjSjThC]hD]hE]hF]hG]uhIK*hJhh3]rh^X%@task def add(x, y): return x + yrr}r(h8Uh9jubaubcdocutils.nodes note r)r}r(h8XYou can also execute a task by name using :func:`~celery.execute.send_task`, if you don't have access to the task class:: >>> from celery.execute import send_task >>> result = send_task("tasks.add", [2, 2]) >>> result.get() 4h9hh:h=h?UnoterhA}r(hE]hF]hD]hC]hG]uhINhJhh3]r(hx)r}r(h8XyYou can also execute a task by name using :func:`~celery.execute.send_task`, if you don't have access to the task class::h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIK2h3]r(h^X*You can also execute a task by name using rr}r(h8X*You can also execute a task by name using h9jubj)r}r(h8X!:func:`~celery.execute.send_task`rh9jh:h=h?jhA}r(UreftypeXfuncjjXcelery.execute.send_taskU refdomainXpyrhC]hD]U refexplicithE]hF]hG]jjjNjNuhIK2h3]rj)r}r(h8jhA}r(hE]hF]r(j#jXpy-funcrehD]hC]hG]uh9jh3]rh^X send_task()rr}r(h8Uh9jubah?j)ubaubh^X-, if you don't have access to the task class:rr}r(h8X-, if you don't have access to the task class:h9jubeubjL)r}r(h8Xg>>> from celery.execute import send_task >>> result = send_task("tasks.add", [2, 2]) >>> result.get() 4h9jh?jOhA}r(jSjThC]hD]hE]hF]hG]uhIK6h3]rh^Xg>>> from celery.execute import send_task >>> result = send_task("tasks.add", [2, 2]) >>> result.get() 4rr}r(h8Uh9jubaubeubh5)r}r(h8X.. _executing-eta:h9hh:h=h?h@hA}r(hC]hD]hE]hF]hG]hHh)uhIK;hJhh3]ubeubhK)r}r(h8Uh9hLh:h=hN}rhjsh?hPhA}r(hE]hF]hD]hC]r(h,h)ehG]r(hheuhIK>hJhhT}rh)jsh3]r(hW)r}r(h8hh9jh:h=h?h[hA}r(hC]hD]hE]hF]hG]hHhuhIK>hJhh3]rh^XETA and countdownrr}r(h8hh9jubaubhx)r}r(h8XThe ETA (estimated time of arrival) lets you set a specific date and time that is the earliest time at which your task will be executed. ``countdown`` is a shortcut to set eta by seconds into the future.h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIK@hJhh3]r(h^XThe ETA (estimated time of arrival) lets you set a specific date and time that is the earliest time at which your task will be executed. r r }r (h8XThe ETA (estimated time of arrival) lets you set a specific date and time that is the earliest time at which your task will be executed. h9jubj)r }r (h8X ``countdown``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X countdownrr}r(h8Uh9j ubah?j)ubh^X5 is a shortcut to set eta by seconds into the future.rr}r(h8X5 is a shortcut to set eta by seconds into the future.h9jubeubjL)r}r(h8Xy>>> result = add.apply_async(args=[10, 10], countdown=3) >>> result.get() # this takes at least 3 seconds to return 20h9jh:h=h?jOhA}r(jQjRXpythonjSjThC]hD]hE]hF]hG]uhIKDhJhh3]rh^Xy>>> result = add.apply_async(args=[10, 10], countdown=3) >>> result.get() # this takes at least 3 seconds to return 20rr}r(h8Uh9jubaubhx)r}r(h8XThe task is guaranteed to be executed at some time *after* the specified date and time, but not necessarily at that exact time. Possible reasons for broken deadlines may include many items waiting in the queue, or heavy network latency. To make sure your tasks are executed in a timely manner you should monitor queue lengths. Use Munin, or similar tools, to receive alerts, so appropriate action can be taken to ease the workload. See :ref:`monitoring-munin`.h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKJhJhh3]r (h^X3The task is guaranteed to be executed at some time r!r"}r#(h8X3The task is guaranteed to be executed at some time h9jubj)r$}r%(h8X*after*hA}r&(hE]hF]hD]hC]hG]uh9jh3]r'h^Xafterr(r)}r*(h8Uh9j$ubah?jubh^X| the specified date and time, but not necessarily at that exact time. Possible reasons for broken deadlines may include many items waiting in the queue, or heavy network latency. To make sure your tasks are executed in a timely manner you should monitor queue lengths. Use Munin, or similar tools, to receive alerts, so appropriate action can be taken to ease the workload. See r+r,}r-(h8X| the specified date and time, but not necessarily at that exact time. Possible reasons for broken deadlines may include many items waiting in the queue, or heavy network latency. To make sure your tasks are executed in a timely manner you should monitor queue lengths. Use Munin, or similar tools, to receive alerts, so appropriate action can be taken to ease the workload. See h9jubj)r.}r/(h8X:ref:`monitoring-munin`r0h9jh:h=h?jhA}r1(UreftypeXrefjjXmonitoring-muninU refdomainXstdr2hC]hD]U refexplicithE]hF]hG]jjuhIKJh3]r3j)r4}r5(h8j0hA}r6(hE]hF]r7(j#j2Xstd-refr8ehD]hC]hG]uh9j.h3]r9h^Xmonitoring-muninr:r;}r<(h8Uh9j4ubah?jubaubh^X.r=}r>(h8X.h9jubeubhx)r?}r@(h8XWhile ``countdown`` is an integer, ``eta`` must be a :class:`~datetime.datetime` object, specifying an exact date and time (including millisecond precision, and timezone information):h9jh:h=h?hhA}rA(hE]hF]hD]hC]hG]uhIKRhJhh3]rB(h^XWhile rCrD}rE(h8XWhile h9j?ubj)rF}rG(h8X ``countdown``hA}rH(hE]hF]hD]hC]hG]uh9j?h3]rIh^X countdownrJrK}rL(h8Uh9jFubah?j)ubh^X is an integer, rMrN}rO(h8X is an integer, h9j?ubj)rP}rQ(h8X``eta``hA}rR(hE]hF]hD]hC]hG]uh9j?h3]rSh^XetarTrU}rV(h8Uh9jPubah?j)ubh^X must be a rWrX}rY(h8X must be a h9j?ubj)rZ}r[(h8X:class:`~datetime.datetime`r\h9j?h:h=h?jhA}r](UreftypeXclassjjXdatetime.datetimeU refdomainXpyr^hC]hD]U refexplicithE]hF]hG]jjjNjNuhIKRh3]r_j)r`}ra(h8j\hA}rb(hE]hF]rc(j#j^Xpy-classrdehD]hC]hG]uh9jZh3]reh^Xdatetimerfrg}rh(h8Uh9j`ubah?j)ubaubh^Xg object, specifying an exact date and time (including millisecond precision, and timezone information):rirj}rk(h8Xg object, specifying an exact date and time (including millisecond precision, and timezone information):h9j?ubeubjL)rl}rm(h8X>>> from datetime import datetime, timedelta >>> tomorrow = datetime.now() + timedelta(days=1) >>> add.apply_async(args=[10, 10], eta=tomorrow)h9jh:h=h?jOhA}rn(jQjRXpythonjSjThC]hD]hE]hF]hG]uhIKVhJhh3]roh^X>>> from datetime import datetime, timedelta >>> tomorrow = datetime.now() + timedelta(days=1) >>> add.apply_async(args=[10, 10], eta=tomorrow)rprq}rr(h8Uh9jlubaubh5)rs}rt(h8X.. _executing-expiration:h9jh:h=h?h@hA}ru(hC]hD]hE]hF]hG]hHh$uhIK]hJhh3]ubeubhK)rv}rw(h8Uh9hLh:h=hN}rxh jssh?hPhA}ry(hE]hF]hD]hC]rz(h+h$ehG]r{(hh euhIK`hJhhT}r|h$jssh3]r}(hW)r~}r(h8hh9jvh:h=h?h[hA}r(hC]hD]hE]hF]hG]hHhuhIK`hJhh3]rh^X Expirationrr}r(h8hh9j~ubaubhx)r}r(h8XThe ``expires`` argument defines an optional expiry time, either as seconds after task publish, or a specific date and time using :class:~datetime.datetime`:h9jvh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKbhJhh3]r(h^XThe rr}r(h8XThe h9jubj)r}r(h8X ``expires``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^Xexpiresrr}r(h8Uh9jubah?j)ubh^X argument defines an optional expiry time, either as seconds after task publish, or a specific date and time using :class:~datetime.datetime`:rr}r(h8X argument defines an optional expiry time, either as seconds after task publish, or a specific date and time using :class:~datetime.datetime`:h9jubeubjL)r}r(h8X>>> # Task expires after one minute from now. >>> add.apply_async(args=[10, 10], expires=60) >>> # Also supports datetime >>> from datetime import datetime, timedelta >>> add.apply_async(args=[10, 10], kwargs, ... expires=datetime.now() + timedelta(days=1)h9jvh:h=h?jOhA}r(jQjRXpythonjSjThC]hD]hE]hF]hG]uhIKfhJhh3]rh^X>>> # Task expires after one minute from now. >>> add.apply_async(args=[10, 10], expires=60) >>> # Also supports datetime >>> from datetime import datetime, timedelta >>> add.apply_async(args=[10, 10], kwargs, ... expires=datetime.now() + timedelta(days=1)rr}r(h8Uh9jubaubhx)r}r(h8X~When a worker receives an expired task it will mark the task as :state:`REVOKED` (:exc:`~celery.exceptions.TaskRevokedError`).h9jvh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKqhJhh3]r(h^X@When a worker receives an expired task it will mark the task as rr}r(h8X@When a worker receives an expired task it will mark the task as h9jubj)r}r(h8X:state:`REVOKED`rh9jh:h=h?jhA}r(UreftypeXstatejjXREVOKEDU refdomainXstdrhC]hD]U refexplicithE]hF]hG]jjuhIKqh3]rj)r}r(h8jhA}r(hE]hF]r(j#jX std-staterehD]hC]hG]uh9jh3]rh^XREVOKEDrr}r(h8Uh9jubah?j)ubaubh^X (rr}r(h8X (h9jubj)r}r(h8X*:exc:`~celery.exceptions.TaskRevokedError`rh9jh:h=h?jhA}r(UreftypeXexcjjX"celery.exceptions.TaskRevokedErrorU refdomainXpyrhC]hD]U refexplicithE]hF]hG]jjjNjNuhIKqh3]rj)r}r(h8jhA}r(hE]hF]r(j#jXpy-excrehD]hC]hG]uh9jh3]rh^XTaskRevokedErrorrr}r(h8Uh9jubah?j)ubaubh^X).rr}r(h8X).h9jubeubh5)r}r(h8X.. _executing-serializers:h9jvh:h=h?h@hA}r(hC]hD]hE]hF]hG]hHh&uhIKthJhh3]ubeubhK)r}r(h8Uh9hLh:h=hN}rh jsh?hPhA}r(hE]hF]hD]hC]r(h#h&ehG]r(hh euhIKwhJhhT}rh&jsh3]r(hW)r}r(h8hh9jh:h=h?h[hA}r(hC]hD]hE]hF]hG]hHhuhIKwhJhh3]rh^X Serializersrr}r(h8hh9jubaubhx)r}r(h8XData transferred between clients and workers needs to be serialized. The default serializer is :mod:`pickle`, but you can change this globally or for each individual task. There is built-in support for :mod:`pickle`, ``JSON``, ``YAML`` and ``msgpack``, and you can also add your own custom serializers by registering them into the Carrot serializer registry (see `Carrot: Serialization of Data`_).h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKyhJhh3]r(h^X_Data transferred between clients and workers needs to be serialized. The default serializer is rr}r(h8X_Data transferred between clients and workers needs to be serialized. The default serializer is h9jubj)r}r(h8X :mod:`pickle`rh9jh:h=h?jhA}r(UreftypeXmodjjXpickleU refdomainXpyrhC]hD]U refexplicithE]hF]hG]jjjNjNuhIKyh3]rj)r}r(h8jhA}r(hE]hF]r(j#jXpy-modrehD]hC]hG]uh9jh3]rh^Xpicklerr}r(h8Uh9jubah?j)ubaubh^X^, but you can change this globally or for each individual task. There is built-in support for rr}r(h8X^, but you can change this globally or for each individual task. There is built-in support for h9jubj)r}r(h8X :mod:`pickle`rh9jh:h=h?jhA}r(UreftypeXmodjjXpickleU refdomainXpyrhC]hD]U refexplicithE]hF]hG]jjjNjNuhIKyh3]rj)r}r(h8jhA}r(hE]hF]r(j#jXpy-modrehD]hC]hG]uh9jh3]rh^Xpicklerr}r(h8Uh9jubah?j)ubaubh^X, rr}r(h8X, h9jubj)r}r(h8X``JSON``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^XJSONr r }r (h8Uh9jubah?j)ubh^X, r r }r(h8X, h9jubj)r}r(h8X``YAML``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^XYAMLrr}r(h8Uh9jubah?j)ubh^X and rr}r(h8X and h9jubj)r}r(h8X ``msgpack``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^Xmsgpackrr}r(h8Uh9jubah?j)ubh^Xp, and you can also add your own custom serializers by registering them into the Carrot serializer registry (see r r!}r"(h8Xp, and you can also add your own custom serializers by registering them into the Carrot serializer registry (see h9jubh})r#}r$(h8X `Carrot: Serialization of Data`_Uresolvedr%Kh9jh?hhA}r&(UnameXCarrot: Serialization of DataUrefurir'XIhttp://packages.python.org/carrot/introduction.html#serialization-of-datar(hC]hD]hE]hF]hG]uh3]r)h^XCarrot: Serialization of Datar*r+}r,(h8Uh9j#ubaubh^X).r-r.}r/(h8X).h9jubeubh5)r0}r1(h8Xr.. _`Carrot: Serialization of Data`: http://packages.python.org/carrot/introduction.html#serialization-of-dataU referencedr2Kh9jh:h=h?h@hA}r3(j'j(hC]r4h1ahD]hE]hF]hG]r5hauhIKhJhh3]ubhx)r6}r7(h8X1Each option has its advantages and disadvantages.r8h9jh:h=h?hhA}r9(hE]hF]hD]hC]hG]uhIKhJhh3]r:h^X1Each option has its advantages and disadvantages.r;r<}r=(h8j8h9j6ubaubcdocutils.nodes definition_list r>)r?}r@(h8Uh9jh:h=h?Udefinition_listrAhA}rB(hE]hF]hD]hC]hG]uhINhJhh3]rC(cdocutils.nodes definition_list_item rD)rE}rF(h8Xjson -- JSON is supported in many programming languages, is now a standard part of Python (since 2.6), and is fairly fast to decode using the modern Python libraries such as :mod:`cjson` or :mod:`simplejson`. The primary disadvantage to JSON is that it limits you to the following data types: strings, Unicode, floats, boolean, dictionaries, and lists. Decimals and dates are notably missing. Also, binary data will be transferred using Base64 encoding, which will cause the transferred data to be around 34% larger than an encoding which supports native binary types. However, if your data fits inside the above constraints and you need cross-language support, the default setting of JSON is probably your best choice. See http://json.org for more information. h9j?h:h=h?Udefinition_list_itemrGhA}rH(hE]hF]hD]hC]hG]uhIKh3]rI(cdocutils.nodes term rJ)rK}rL(h8X?json -- JSON is supported in many programming languages, is nowrMh9jEh:h=h?UtermrNhA}rO(hE]hF]hD]hC]hG]uhIKh3]rPh^X?json -- JSON is supported in many programming languages, is nowrQrR}rS(h8jMh9jKubaubcdocutils.nodes definition rT)rU}rV(h8UhA}rW(hE]hF]hD]hC]hG]uh9jEh3]rX(hx)rY}rZ(h8Xa standard part of Python (since 2.6), and is fairly fast to decode using the modern Python libraries such as :mod:`cjson` or :mod:`simplejson`.h9jUh:h=h?hhA}r[(hE]hF]hD]hC]hG]uhIKh3]r\(h^Xna standard part of Python (since 2.6), and is fairly fast to decode using the modern Python libraries such as r]r^}r_(h8Xna standard part of Python (since 2.6), and is fairly fast to decode using the modern Python libraries such as h9jYubj)r`}ra(h8X :mod:`cjson`rbh9jYh:h=h?jhA}rc(UreftypeXmodjjXcjsonU refdomainXpyrdhC]hD]U refexplicithE]hF]hG]jjjNjNuhIKh3]rej)rf}rg(h8jbhA}rh(hE]hF]ri(j#jdXpy-modrjehD]hC]hG]uh9j`h3]rkh^Xcjsonrlrm}rn(h8Uh9jfubah?j)ubaubh^X or rorp}rq(h8X or h9jYubj)rr}rs(h8X:mod:`simplejson`rth9jYh:h=h?jhA}ru(UreftypeXmodjjX simplejsonU refdomainXpyrvhC]hD]U refexplicithE]hF]hG]jjjNjNuhIKh3]rwj)rx}ry(h8jthA}rz(hE]hF]r{(j#jvXpy-modr|ehD]hC]hG]uh9jrh3]r}h^X simplejsonr~r}r(h8Uh9jxubah?j)ubaubh^X.r}r(h8X.h9jYubeubhx)r}r(h8XThe primary disadvantage to JSON is that it limits you to the following data types: strings, Unicode, floats, boolean, dictionaries, and lists. Decimals and dates are notably missing.rh9jUh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]rh^XThe primary disadvantage to JSON is that it limits you to the following data types: strings, Unicode, floats, boolean, dictionaries, and lists. Decimals and dates are notably missing.rr}r(h8jh9jubaubhx)r}r(h8XAlso, binary data will be transferred using Base64 encoding, which will cause the transferred data to be around 34% larger than an encoding which supports native binary types.rh9jUh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]rh^XAlso, binary data will be transferred using Base64 encoding, which will cause the transferred data to be around 34% larger than an encoding which supports native binary types.rr}r(h8jh9jubaubhx)r}r(h8XHowever, if your data fits inside the above constraints and you need cross-language support, the default setting of JSON is probably your best choice.rh9jUh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]rh^XHowever, if your data fits inside the above constraints and you need cross-language support, the default setting of JSON is probably your best choice.rr}r(h8jh9jubaubhx)r}r(h8X)See http://json.org for more information.h9jUh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]r(h^XSee rr}r(h8XSee h9jubh})r}r(h8Xhttp://json.orgrhA}r(UrefurijhC]hD]hE]hF]hG]uh9jh3]rh^Xhttp://json.orgrr}r(h8Uh9jubah?hubh^X for more information.rr}r(h8X for more information.h9jubeubeh?U definitionrubeubjD)r}r(h8X]pickle -- If you have no desire to support any language other than Python, then using the pickle encoding will gain you the support of all built-in Python data types (except class instances), smaller messages when sending binary files, and a slight speedup over JSON processing. See http://docs.python.org/library/pickle.html for more information. h9j?h:h=h?jGhA}r(hE]hF]hD]hC]hG]uhIKhJhh3]r(jJ)r}r(h8XBpickle -- If you have no desire to support any language other thanrh9jh:h=h?jNhA}r(hE]hF]hD]hC]hG]uhIKh3]rh^XBpickle -- If you have no desire to support any language other thanrr}r(h8jh9jubaubjT)r}r(h8UhA}r(hE]hF]hD]hC]hG]uh9jh3]r(hx)r}r(h8XPython, then using the pickle encoding will gain you the support of all built-in Python data types (except class instances), smaller messages when sending binary files, and a slight speedup over JSON processing.rh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]rh^XPython, then using the pickle encoding will gain you the support of all built-in Python data types (except class instances), smaller messages when sending binary files, and a slight speedup over JSON processing.rr}r(h8jh9jubaubhx)r}r(h8XDSee http://docs.python.org/library/pickle.html for more information.h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]r(h^XSee rr}r(h8XSee h9jubh})r}r(h8X*http://docs.python.org/library/pickle.htmlrhA}r(UrefurijhC]hD]hE]hF]hG]uh9jh3]rh^X*http://docs.python.org/library/pickle.htmlrr}r(h8Uh9jubah?hubh^X for more information.rr}r(h8X for more information.h9jubeubeh?jubeubjD)r}r(h8Xyaml -- YAML has many of the same characteristics as json, except that it natively supports more data types (including dates, recursive references, etc.) However, the Python libraries for YAML are a good bit slower than the libraries for JSON. If you need a more expressive set of data types and need to maintain cross-language compatibility, then YAML may be a better fit than the above. See http://yaml.org/ for more information. h9j?h:h=h?jGhA}r(hE]hF]hD]hC]hG]uhIKhJhh3]r(jJ)r}r(h8X:yaml -- YAML has many of the same characteristics as json,rh9jh:h=h?jNhA}r(hE]hF]hD]hC]hG]uhIKh3]rh^X:yaml -- YAML has many of the same characteristics as json,rr}r(h8jh9jubaubjT)r}r(h8UhA}r(hE]hF]hD]hC]hG]uh9jh3]r(hx)r}r(h8X^except that it natively supports more data types (including dates, recursive references, etc.)rh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]rh^X^except that it natively supports more data types (including dates, recursive references, etc.)rr}r(h8jh9jubaubhx)r}r(h8XYHowever, the Python libraries for YAML are a good bit slower than the libraries for JSON.rh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]rh^XYHowever, the Python libraries for YAML are a good bit slower than the libraries for JSON.rr}r(h8jh9jubaubhx)r}r(h8XIf you need a more expressive set of data types and need to maintain cross-language compatibility, then YAML may be a better fit than the above.rh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]rh^XIf you need a more expressive set of data types and need to maintain cross-language compatibility, then YAML may be a better fit than the above.rr}r(h8jh9jubaubhx)r}r(h8X*See http://yaml.org/ for more information.h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]r(h^XSee rr}r(h8XSee h9jubh})r}r(h8Xhttp://yaml.org/r hA}r (Urefurij hC]hD]hE]hF]hG]uh9jh3]r h^Xhttp://yaml.org/r r }r(h8Uh9jubah?hubh^X for more information.rr}r(h8X for more information.h9jubeubeh?jubeubjD)r}r(h8Xmsgpack -- msgpack is a binary serialization format that is closer to JSON in features. It is very young however, and support should be considered experimental at this point. See http://msgpack.org/ for more information. h9j?h:h=h?jGhA}r(hE]hF]hD]hC]hG]uhIKhJhh3]r(jJ)r}r(h8XJmsgpack -- msgpack is a binary serialization format that is closer to JSONrh9jh:h=h?jNhA}r(hE]hF]hD]hC]hG]uhIKh3]rh^XJmsgpack -- msgpack is a binary serialization format that is closer to JSONrr}r(h8jh9jubaubjT)r}r(h8UhA}r (hE]hF]hD]hC]hG]uh9jh3]r!(hx)r"}r#(h8Xdin features. It is very young however, and support should be considered experimental at this point.r$h9jh:h=h?hhA}r%(hE]hF]hD]hC]hG]uhIKh3]r&h^Xdin features. It is very young however, and support should be considered experimental at this point.r'r(}r)(h8j$h9j"ubaubhx)r*}r+(h8X-See http://msgpack.org/ for more information.h9jh:h=h?hhA}r,(hE]hF]hD]hC]hG]uhIKh3]r-(h^XSee r.r/}r0(h8XSee h9j*ubh})r1}r2(h8Xhttp://msgpack.org/r3hA}r4(Urefurij3hC]hD]hE]hF]hG]uh9j*h3]r5h^Xhttp://msgpack.org/r6r7}r8(h8Uh9j1ubah?hubh^X for more information.r9r:}r;(h8X for more information.h9j*ubeubeh?jubeubeubhx)r<}r=(h8XThe encoding used is available as a message header, so the worker knows how to deserialize any task. If you use a custom serializer, this serializer must be available for the worker.r>h9jh:h=h?hhA}r?(hE]hF]hD]hC]hG]uhIKhJhh3]r@h^XThe encoding used is available as a message header, so the worker knows how to deserialize any task. If you use a custom serializer, this serializer must be available for the worker.rArB}rC(h8j>h9j<ubaubhx)rD}rE(h8XZThe client uses the following order to decide which serializer to use when sending a task:rFh9jh:h=h?hhA}rG(hE]hF]hD]hC]hG]uhIKhJhh3]rHh^XZThe client uses the following order to decide which serializer to use when sending a task:rIrJ}rK(h8jFh9jDubaubcdocutils.nodes block_quote rL)rM}rN(h8Uh9jh:Nh?U block_quoterOhA}rP(hE]hF]hD]hC]hG]uhINhJhh3]rQcdocutils.nodes enumerated_list rR)rS}rT(h8UhA}rU(UsuffixrVU.hC]hD]hE]UprefixrWUhF]hG]UenumtyperXUarabicrYuh9jMh3]rZ(hs)r[}r\(h8X.The ``serializer`` argument to ``apply_async``r]hA}r^(hE]hF]hD]hC]hG]uh9jSh3]r_hx)r`}ra(h8j]h9j[h:h=h?hhA}rb(hE]hF]hD]hC]hG]uhIKh3]rc(h^XThe rdre}rf(h8XThe h9j`ubj)rg}rh(h8X``serializer``hA}ri(hE]hF]hD]hC]hG]uh9j`h3]rjh^X serializerrkrl}rm(h8Uh9jgubah?j)ubh^X argument to rnro}rp(h8X argument to h9j`ubj)rq}rr(h8X``apply_async``hA}rs(hE]hF]hD]hC]hG]uh9j`h3]rth^X apply_asyncrurv}rw(h8Uh9jqubah?j)ubeubah?hubhs)rx}ry(h8X"The tasks ``serializer`` attributerzhA}r{(hE]hF]hD]hC]hG]uh9jSh3]r|hx)r}}r~(h8jzh9jxh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]r(h^X The tasks rr}r(h8X The tasks h9j}ubj)r}r(h8X``serializer``hA}r(hE]hF]hD]hC]hG]uh9j}h3]rh^X serializerrr}r(h8Uh9jubah?j)ubh^X attributerr}r(h8X attributeh9j}ubeubah?hubhs)r}r(h8X8The default :setting:`CELERY_TASK_SERIALIZER` setting. hA}r(hE]hF]hD]hC]hG]uh9jSh3]rhx)r}r(h8X6The default :setting:`CELERY_TASK_SERIALIZER` setting.h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]r(h^X The default rr}r(h8X The default h9jubj)r}r(h8X!:setting:`CELERY_TASK_SERIALIZER`rh9jh:h=h?jhA}r(UreftypeXsettingjjXCELERY_TASK_SERIALIZERU refdomainXstdrhC]hD]U refexplicithE]hF]hG]jjuhIKh3]rj)r}r(h8jhA}r(hE]hF]r(j#jX std-settingrehD]hC]hG]uh9jh3]rh^XCELERY_TASK_SERIALIZERrr}r(h8Uh9jubah?j)ubaubh^X setting.rr}r(h8X setting.h9jubeubah?hubeh?Uenumerated_listrubaubhx)r}r(h8X7*Using the ``serializer`` argument to ``apply_async``*:rh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKhJhh3]r(j)r}r(h8X6*Using the ``serializer`` argument to ``apply_async``*hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X4Using the ``serializer`` argument to ``apply_async``rr}r(h8Uh9jubah?jubh^X:r}r(h8X:h9jubeubjL)r}r(h8X5>>> add.apply_async(args=[10, 10], serializer="json")h9jh:h=h?jOhA}r(jQjRXpythonjSjThC]hD]hE]hF]hG]uhIKhJhh3]rh^X5>>> add.apply_async(args=[10, 10], serializer="json")rr}r(h8Uh9jubaubh5)r}r(h8X.. _executing-connections:h9jh:h=h?h@hA}r(hC]hD]hE]hF]hG]hHh(uhIKhJhh3]ubeubhK)r}r(h8Uh9hLh:h=hN}rh jsh?hPhA}r(hE]hF]hD]hC]r(h'h(ehG]r(h h euhIKhJhhT}rh(jsh3]r(hW)r}r(h8hh9jh:h=h?h[hA}r(hC]hD]hE]hF]hG]hHhuhIKhJhh3]rh^X$Connections and connection timeouts.rr}r(h8hh9jubaubhx)r}r(h8XCurrently there is no support for broker connection pools, so ``apply_async`` establishes and closes a new connection every time it is called. This is something you need to be aware of when sending more than one task at a time.h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKhJhh3]r(h^X>Currently there is no support for broker connection pools, so rr}r(h8X>Currently there is no support for broker connection pools, so h9jubj)r}r(h8X``apply_async``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X apply_asyncrr}r(h8Uh9jubah?j)ubh^X establishes and closes a new connection every time it is called. This is something you need to be aware of when sending more than one task at a time.rr}r(h8X establishes and closes a new connection every time it is called. This is something you need to be aware of when sending more than one task at a time.h9jubeubhx)r}r(h8X;You handle the connection manually by creating a publisher:rh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKhJhh3]rh^X;You handle the connection manually by creating a publisher:rr}r(h8jh9jubaubjL)r}r(h8X9numbers = [(2, 2), (4, 4), (8, 8), (16, 16)] results = [] publisher = add.get_publisher() try: for args in numbers: res = add.apply_async(args=args, publisher=publisher) results.append(res) finally: publisher.close() publisher.connection.close() print([res.get() for res in results])h9jh:h=h?jOhA}r(jQjRXpythonjSjThC]hD]hE]hF]hG]uhIKhJhh3]rh^X9numbers = [(2, 2), (4, 4), (8, 8), (16, 16)] results = [] publisher = add.get_publisher() try: for args in numbers: res = add.apply_async(args=args, publisher=publisher) results.append(res) finally: publisher.close() publisher.connection.close() print([res.get() for res in results])rr}r(h8Uh9jubaubj)r}r(h8X{This particularly example is better expressed as a task set. See :ref:`sets-taskset`. Tasksets already reuses connections.h9jh:h=h?jhA}r(hE]hF]hD]hC]hG]uhINhJhh3]rhx)r}r(h8X{This particularly example is better expressed as a task set. See :ref:`sets-taskset`. Tasksets already reuses connections.h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKh3]r(h^XAThis particularly example is better expressed as a task set. See rr}r(h8XAThis particularly example is better expressed as a task set. See h9jubj)r}r(h8X:ref:`sets-taskset`rh9jh:h=h?jhA}r(UreftypeXrefjjX sets-tasksetU refdomainXstdrhC]hD]U refexplicithE]hF]hG]jjuhIKh3]rj)r}r(h8jhA}r(hE]hF]r(j#jXstd-refrehD]hC]hG]uh9jh3]r h^X sets-tasksetr r }r (h8Uh9jubah?jubaubh^X'. Tasksets already reuses connections.r r}r(h8X'. Tasksets already reuses connections.h9jubeubaubhx)r}r(h8XThe connection timeout is the number of seconds to wait before giving up on establishing the connection. You can set this by using the ``connect_timeout`` argument to ``apply_async``:h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIKhJhh3]r(h^XThe connection timeout is the number of seconds to wait before giving up on establishing the connection. You can set this by using the rr}r(h8XThe connection timeout is the number of seconds to wait before giving up on establishing the connection. You can set this by using the h9jubj)r}r(h8X``connect_timeout``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^Xconnect_timeoutrr}r(h8Uh9jubah?j)ubh^X argument to rr}r (h8X argument to h9jubj)r!}r"(h8X``apply_async``hA}r#(hE]hF]hD]hC]hG]uh9jh3]r$h^X apply_asyncr%r&}r'(h8Uh9j!ubah?j)ubh^X:r(}r)(h8X:h9jubeubjL)r*}r+(h8X,add.apply_async([10, 10], connect_timeout=3)h9jh:h=h?jOhA}r,(jQjRXpythonjSjThC]hD]hE]hF]hG]uhIKhJhh3]r-h^X,add.apply_async([10, 10], connect_timeout=3)r.r/}r0(h8Uh9j*ubaubhx)r1}r2(h8X)Or if you handle the connection manually:r3h9jh:h=h?hhA}r4(hE]hF]hD]hC]hG]uhIKhJhh3]r5h^X)Or if you handle the connection manually:r6r7}r8(h8j3h9j1ubaubjL)r9}r:(h8X0publisher = add.get_publisher(connect_timeout=3)h9jh:h=h?jOhA}r;(jQjRXpythonjSjThC]hD]hE]hF]hG]uhIKhJhh3]r<h^X0publisher = add.get_publisher(connect_timeout=3)r=r>}r?(h8Uh9j9ubaubh5)r@}rA(h8X.. _executing-routing:h9jh:h=h?h@hA}rB(hC]hD]hE]hF]hG]hHh0uhIKhJhh3]ubeubhK)rC}rD(h8Uh9hLh:h=hN}rEhj@sh?hPhA}rF(hE]hF]hD]hC]rG(h/h0ehG]rH(hheuhIKhJhhT}rIh0j@sh3]rJ(hW)rK}rL(h8hh9jCh:h=h?h[hA}rM(hC]hD]hE]hF]hG]hHhuhIKhJhh3]rNh^XRouting optionsrOrP}rQ(h8hh9jKubaubhx)rR}rS(h8XLCelery uses the AMQP routing mechanisms to route tasks to different workers.rTh9jCh:h=h?hhA}rU(hE]hF]hD]hC]hG]uhIKhJhh3]rVh^XLCelery uses the AMQP routing mechanisms to route tasks to different workers.rWrX}rY(h8jTh9jRubaubhx)rZ}r[(h8XrMessages (tasks) are sent to exchanges, a queue binds to an exchange with a routing key. Let's look at an example:r\h9jCh:h=h?hhA}r](hE]hF]hD]hC]hG]uhIKhJhh3]r^h^XrMessages (tasks) are sent to exchanges, a queue binds to an exchange with a routing key. Let's look at an example:r_r`}ra(h8j\h9jZubaubhx)rb}rc(h8XLet's pretend we have an application with lot of different tasks: some process video, others process images, and some gather collective intelligence about its users. Some of these tasks are more important, so we want to make sure the high priority tasks get sent to dedicated nodes.rdh9jCh:h=h?hhA}re(hE]hF]hD]hC]hG]uhIMhJhh3]rfh^XLet's pretend we have an application with lot of different tasks: some process video, others process images, and some gather collective intelligence about its users. Some of these tasks are more important, so we want to make sure the high priority tasks get sent to dedicated nodes.rgrh}ri(h8jdh9jbubaubhx)rj}rk(h8XFor the sake of this example we have a single exchange called ``tasks``. There are different types of exchanges, each type interpreting the routing key in different ways, implementing different messaging scenarios.h9jCh:h=h?hhA}rl(hE]hF]hD]hC]hG]uhIMhJhh3]rm(h^X>For the sake of this example we have a single exchange called rnro}rp(h8X>For the sake of this example we have a single exchange called h9jjubj)rq}rr(h8X ``tasks``hA}rs(hE]hF]hD]hC]hG]uh9jjh3]rth^Xtasksrurv}rw(h8Uh9jqubah?j)ubh^X. There are different types of exchanges, each type interpreting the routing key in different ways, implementing different messaging scenarios.rxry}rz(h8X. There are different types of exchanges, each type interpreting the routing key in different ways, implementing different messaging scenarios.h9jjubeubhx)r{}r|(h8XDThe most common types used with Celery are ``direct`` and ``topic``.r}h9jCh:h=h?hhA}r~(hE]hF]hD]hC]hG]uhIM hJhh3]r(h^X+The most common types used with Celery are rr}r(h8X+The most common types used with Celery are h9j{ubj)r}r(h8X ``direct``hA}r(hE]hF]hD]hC]hG]uh9j{h3]rh^Xdirectrr}r(h8Uh9jubah?j)ubh^X and rr}r(h8X and h9j{ubj)r}r(h8X ``topic``hA}r(hE]hF]hD]hC]hG]uh9j{h3]rh^Xtopicrr}r(h8Uh9jubah?j)ubh^X.r}r(h8X.h9j{ubeubhm)r}r(h8Uh9jCh:h=h?hphA}r(UbulletrX*hC]hD]hE]hF]hG]uhIM hJhh3]r(hs)r}r(h8X+direct Matches the routing key exactly. h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhINhJhh3]r(hx)r}r(h8Xdirectrh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIM h3]rh^Xdirectrr}r(h8jh9jubaubjL)r}r(h8UhA}r(hE]hF]hD]hC]hG]uh9jh3]rhx)r}r(h8X Matches the routing key exactly.rh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIM h3]rh^X Matches the routing key exactly.rr}r(h8jh9jubaubah?jOubeubhs)r}r(h8X[topic In the topic exchange the routing key is made up of words separated by dots (``.``). Words can be matched by the wild cards ``*`` and ``#``, where ``*`` matches one exact word, and ``#`` matches one or many words. For example, ``*.stock.#`` matches the routing keys ``usd.stock`` and ``euro.stock.db`` but not ``stock.nasdaq``. h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhINhJhh3]r(hx)r}r(h8Xtopicrh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIMh3]rh^Xtopicrr}r(h8jh9jubaubjL)r}r(h8UhA}r(hE]hF]hD]hC]hG]uh9jh3]r(hx)r}r(h8XIn the topic exchange the routing key is made up of words separated by dots (``.``). Words can be matched by the wild cards ``*`` and ``#``, where ``*`` matches one exact word, and ``#`` matches one or many words.h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIMh3]r(h^XMIn the topic exchange the routing key is made up of words separated by dots (rr}r(h8XMIn the topic exchange the routing key is made up of words separated by dots (h9jubj)r}r(h8X``.``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X.r}r(h8Uh9jubah?j)ubh^X+). Words can be matched by the wild cards rr}r(h8X+). Words can be matched by the wild cards h9jubj)r}r(h8X``*``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X*r}r(h8Uh9jubah?j)ubh^X and rr}r(h8X and h9jubj)r}r(h8X``#``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X#r}r(h8Uh9jubah?j)ubh^X, where rr}r(h8X, where h9jubj)r}r(h8X``*``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X*r}r(h8Uh9jubah?j)ubh^X matches one exact word, and rr}r(h8X matches one exact word, and h9jubj)r}r(h8X``#``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X#r}r(h8Uh9jubah?j)ubh^X matches one or many words.rr}r(h8X matches one or many words.h9jubeubhx)r}r(h8XqFor example, ``*.stock.#`` matches the routing keys ``usd.stock`` and ``euro.stock.db`` but not ``stock.nasdaq``.h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIMh3]r(h^X For example, rr}r(h8X For example, h9jubj)r}r(h8X ``*.stock.#``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X *.stock.#rr}r(h8Uh9jubah?j)ubh^X matches the routing keys rr}r(h8X matches the routing keys h9jubj)r}r (h8X ``usd.stock``hA}r (hE]hF]hD]hC]hG]uh9jh3]r h^X usd.stockr r }r(h8Uh9jubah?j)ubh^X and rr}r(h8X and h9jubj)r}r(h8X``euro.stock.db``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X euro.stock.dbrr}r(h8Uh9jubah?j)ubh^X but not rr}r(h8X but not h9jubj)r}r(h8X``stock.nasdaq``hA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X stock.nasdaqr r!}r"(h8Uh9jubah?j)ubh^X.r#}r$(h8X.h9jubeubeh?jOubeubeubhx)r%}r&(h8XWe create three queues, ``video``, ``image`` and ``lowpri`` that binds to the ``tasks`` exchange. For the queues we use the following binding keys::h9jCh:h=h?hhA}r'(hE]hF]hD]hC]hG]uhIMhJhh3]r((h^XWe create three queues, r)r*}r+(h8XWe create three queues, h9j%ubj)r,}r-(h8X ``video``hA}r.(hE]hF]hD]hC]hG]uh9j%h3]r/h^Xvideor0r1}r2(h8Uh9j,ubah?j)ubh^X, r3r4}r5(h8X, h9j%ubj)r6}r7(h8X ``image``hA}r8(hE]hF]hD]hC]hG]uh9j%h3]r9h^Ximager:r;}r<(h8Uh9j6ubah?j)ubh^X and r=r>}r?(h8X and h9j%ubj)r@}rA(h8X ``lowpri``hA}rB(hE]hF]hD]hC]hG]uh9j%h3]rCh^XlowprirDrE}rF(h8Uh9j@ubah?j)ubh^X that binds to the rGrH}rI(h8X that binds to the h9j%ubj)rJ}rK(h8X ``tasks``hA}rL(hE]hF]hD]hC]hG]uh9j%h3]rMh^XtasksrNrO}rP(h8Uh9jJubah?j)ubh^X= exchange. For the queues we use the following binding keys:rQrR}rS(h8X= exchange. For the queues we use the following binding keys:h9j%ubeubjL)rT}rU(h8X,video: video.# image: image.# lowpri: misc.#h9jCh:h=h?jOhA}rV(jSjThC]hD]hE]hF]hG]uhIMhJhh3]rWh^X,video: video.# image: image.# lowpri: misc.#rXrY}rZ(h8Uh9jTubaubhx)r[}r\(h8XiNow we can send our tasks to different worker machines, by making the workers listen to different queues:r]h9jCh:h=h?hhA}r^(hE]hF]hD]hC]hG]uhIMhJhh3]r_h^XiNow we can send our tasks to different worker machines, by making the workers listen to different queues:r`ra}rb(h8j]h9j[ubaubjL)rc}rd(h8Xf>>> add.apply_async(args=[filename], ... routing_key="video.compress") >>> add.apply_async(args=[filename, 360], ... routing_key="image.rotate") >>> add.apply_async(args=[filename, selection], ... routing_key="image.crop") >>> add.apply_async(routing_key="misc.recommend")h9jCh:h=h?jOhA}re(jQjRXpythonjSjThC]hD]hE]hF]hG]uhIM"hJhh3]rfh^Xf>>> add.apply_async(args=[filename], ... routing_key="video.compress") >>> add.apply_async(args=[filename, 360], ... routing_key="image.rotate") >>> add.apply_async(args=[filename, selection], ... routing_key="image.crop") >>> add.apply_async(routing_key="misc.recommend")rgrh}ri(h8Uh9jcubaubhx)rj}rk(h8XLater, if the crop task is consuming a lot of resources, we can bind new workers to handle just the ``"image.crop"`` task, by creating a new queue that binds to ``"image.crop``".h9jCh:h=h?hhA}rl(hE]hF]hD]hC]hG]uhIM/hJhh3]rm(h^XdLater, if the crop task is consuming a lot of resources, we can bind new workers to handle just the rnro}rp(h8XdLater, if the crop task is consuming a lot of resources, we can bind new workers to handle just the h9jjubj)rq}rr(h8X``"image.crop"``hA}rs(hE]hF]hD]hC]hG]uh9jjh3]rth^X "image.crop"rurv}rw(h8Uh9jqubah?j)ubh^X- task, by creating a new queue that binds to rxry}rz(h8X- task, by creating a new queue that binds to h9jjubj)r{}r|(h8X``"image.crop``hA}r}(hE]hF]hD]hC]hG]uh9jjh3]r~h^X "image.croprr}r(h8Uh9j{ubah?j)ubh^X".rr}r(h8X".h9jjubeubcsphinx.addnodes seealso r)r}r(h8X@To find out more about routing, please see :ref:`guide-routing`.rh9jCh:h=h?UseealsorhA}r(hE]hF]hD]hC]hG]uhINhJhh3]rhx)r}r(h8jh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIM5h3]r(h^X+To find out more about routing, please see rr}r(h8X+To find out more about routing, please see h9jubj)r}r(h8X:ref:`guide-routing`rh9jh:h=h?jhA}r(UreftypeXrefjjX guide-routingU refdomainXstdrhC]hD]U refexplicithE]hF]hG]jjuhIM5h3]rj)r}r(h8jhA}r(hE]hF]r(j#jXstd-refrehD]hC]hG]uh9jh3]rh^X guide-routingrr}r(h8Uh9jubah?jubaubh^X.r}r(h8X.h9jubeubaubh5)r}r(h8X.. _executing-amq-opts:h9jCh:h=h?h@hA}r(hC]hD]hE]hF]hG]hHh.uhIM7hJhh3]ubeubhK)r}r(h8Uh9hLh:h=hN}rhjsh?hPhA}r(hE]hF]hD]hC]r(h%h.ehG]r(h heuhIM:hJhhT}rh.jsh3]r(hW)r}r(h8hh9jh:h=h?h[hA}r(hC]hD]hE]hF]hG]hHhuhIM:hJhh3]rh^X AMQP optionsrr}r(h8hh9jubaubhm)r}r(h8Uh9jh:h=h?hphA}r(jX*hC]hD]hE]hF]hG]uhIM<hJhh3]rhs)r}r(h8X mandatory h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhINhJhh3]rhx)r}r(h8X mandatoryrh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIM<h3]rh^X mandatoryrr}r(h8jh9jubaubaubaubhx)r}r(h8X~This sets the delivery to be mandatory. An exception will be raised if there are no running workers able to take on the task.rh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIM>hJhh3]rh^X~This sets the delivery to be mandatory. An exception will be raised if there are no running workers able to take on the task.rr}r(h8jh9jubaubhx)r}r(h8X Not supported by :mod:`amqplib`.rh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIMAhJhh3]r(h^XNot supported by rr}r(h8XNot supported by h9jubj)r}r(h8X:mod:`amqplib`rh9jh:h=h?jhA}r(UreftypeXmodjjXamqplibU refdomainXpyrhC]hD]U refexplicithE]hF]hG]jjjNjNuhIMAh3]rj)r}r(h8jhA}r(hE]hF]r(j#jXpy-modrehD]hC]hG]uh9jh3]rh^Xamqplibrr}r(h8Uh9jubah?j)ubaubh^X.r}r(h8X.h9jubeubhm)r}r(h8Uh9jh:h=h?hphA}r(jX*hC]hD]hE]hF]hG]uhIMChJhh3]rhs)r}r(h8X immediate h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhINhJhh3]rhx)r}r(h8X immediaterh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIMCh3]rh^X immediaterr}r(h8jh9jubaubaubaubhx)r}r(h8XiRequest immediate delivery. Will raise an exception if the task cannot be routed to a worker immediately.rh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIMEhJhh3]rh^XiRequest immediate delivery. Will raise an exception if the task cannot be routed to a worker immediately.rr}r(h8jh9jubaubhx)r}r(h8X Not supported by :mod:`amqplib`.rh9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhIMHhJhh3]r(h^XNot supported by rr}r(h8XNot supported by h9jubj)r}r(h8X:mod:`amqplib`r h9jh:h=h?jhA}r (UreftypeXmodjjXamqplibU refdomainXpyr hC]hD]U refexplicithE]hF]hG]jjjNjNuhIMHh3]r j)r }r(h8j hA}r(hE]hF]r(j#j Xpy-modrehD]hC]hG]uh9jh3]rh^Xamqplibrr}r(h8Uh9j ubah?j)ubaubh^X.r}r(h8X.h9jubeubhm)r}r(h8Uh9jh:h=h?hphA}r(jX*hC]hD]hE]hF]hG]uhIMJhJhh3]rhs)r}r(h8X priority h9jh:h=h?hhA}r(hE]hF]hD]hC]hG]uhINhJhh3]rhx)r }r!(h8Xpriorityr"h9jh:h=h?hhA}r#(hE]hF]hD]hC]hG]uhIMJh3]r$h^Xpriorityr%r&}r'(h8j"h9j ubaubaubaubhx)r(}r)(h8XFA number between ``0`` and ``9``, where ``0`` is the highest priority.r*h9jh:h=h?hhA}r+(hE]hF]hD]hC]hG]uhIMLhJhh3]r,(h^XA number between r-r.}r/(h8XA number between h9j(ubj)r0}r1(h8X``0``hA}r2(hE]hF]hD]hC]hG]uh9j(h3]r3h^X0r4}r5(h8Uh9j0ubah?j)ubh^X and r6r7}r8(h8X and h9j(ubj)r9}r:(h8X``9``hA}r;(hE]hF]hD]hC]hG]uh9j(h3]r<h^X9r=}r>(h8Uh9j9ubah?j)ubh^X, where r?r@}rA(h8X, where h9j(ubj)rB}rC(h8X``0``hA}rD(hE]hF]hD]hC]hG]uh9j(h3]rEh^X0rF}rG(h8Uh9jBubah?j)ubh^X is the highest priority.rHrI}rJ(h8X is the highest priority.h9j(ubeubj)rK}rL(h8X.RabbitMQ does not yet support AMQP priorities.rMh9jh:h=h?jhA}rN(hE]hF]hD]hC]hG]uhINhJhh3]rOhx)rP}rQ(h8jMh9jKh:h=h?hhA}rR(hE]hF]hD]hC]hG]uhIMPh3]rSh^X.RabbitMQ does not yet support AMQP priorities.rTrU}rV(h8jMh9jPubaubaubeubeubeh8UU transformerrWNU footnote_refsrX}rYUrefnamesrZ}r[Xcarrot: serialization of data]r\j#asUsymbol_footnotesr]]r^Uautofootnote_refsr_]r`Usymbol_footnote_refsra]rbU citationsrc]rdhJhU current_linereNUtransform_messagesrf]rg(cdocutils.nodes system_message rh)ri}rj(h8UhA}rk(hE]UlevelKhC]hD]Usourceh=hF]hG]UlineKUtypeUINFOrluh3]rmhx)rn}ro(h8UhA}rp(hE]hF]hD]hC]hG]uh9jih3]rqh^X5Hyperlink target "guide-executing" is not referenced.rrrs}rt(h8Uh9jnubah?hubah?Usystem_messageruubjh)rv}rw(h8UhA}rx(hE]UlevelKhC]hD]Usourceh=hF]hG]UlineK Utypejluh3]ryhx)rz}r{(h8UhA}r|(hE]hF]hD]hC]hG]uh9jvh3]r}h^X6Hyperlink target "executing-basics" is not referenced.r~r}r(h8Uh9jzubah?hubah?juubjh)r}r(h8UhA}r(hE]UlevelKhC]hD]Usourceh=hF]hG]UlineK;Utypejluh3]rhx)r}r(h8UhA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X3Hyperlink target "executing-eta" is not referenced.rr}r(h8Uh9jubah?hubah?juubjh)r}r(h8UhA}r(hE]UlevelKhC]hD]Usourceh=hF]hG]UlineK]Utypejluh3]rhx)r}r(h8UhA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X:Hyperlink target "executing-expiration" is not referenced.rr}r(h8Uh9jubah?hubah?juubjh)r}r(h8UhA}r(hE]UlevelKhC]hD]Usourceh=hF]hG]UlineKtUtypejluh3]rhx)r}r(h8UhA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X;Hyperlink target "executing-serializers" is not referenced.rr}r(h8Uh9jubah?hubah?juubjh)r}r(h8UhA}r(hE]UlevelKhC]hD]Usourceh=hF]hG]UlineKUtypejluh3]rhx)r}r(h8UhA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X;Hyperlink target "executing-connections" is not referenced.rr}r(h8Uh9jubah?hubah?juubjh)r}r(h8UhA}r(hE]UlevelKhC]hD]Usourceh=hF]hG]UlineKUtypejluh3]rhx)r}r(h8UhA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X7Hyperlink target "executing-routing" is not referenced.rr}r(h8Uh9jubah?hubah?juubjh)r}r(h8UhA}r(hE]UlevelKhC]hD]Usourceh=hF]hG]UlineM7Utypejluh3]rhx)r}r(h8UhA}r(hE]hF]hD]hC]hG]uh9jh3]rh^X8Hyperlink target "executing-amq-opts" is not referenced.rr}r(h8Uh9jubah?hubah?juubeUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh[NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUQ/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/executing.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongr Uinput_encoding_error_handlerr jUauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesrNU _config_filesr]rUfile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(h&jh1j0h.jh2hch#jhhhhhhhhhhhhhh~h%jh(jh!hLh0jCh)jh*hh-hLh'jh"hh$jvh/jCh,jh+jvuUsubstitution_namesr}rh?hJhA}r(hE]hC]hD]Usourceh=hF]hG]uU footnotesr]rUrefidsr}r(h$]rjsah&]rjah(]r jah)]r!jah*]r"hah-]r#h6ah.]r$jah0]r%j@auub.PKYDDN[coo5celery-2.1-archived/.doctrees/userguide/index.doctreecdocutils.nodes document q)q}q(U nametypesq}q(XguideqX user guideqNuUsubstitution_defsq}q Uparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startqKUnameidsq}q(hUguideqhU user-guidequUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX .. _guide:UparentqhUsourceqcdocutils.nodes reprunicode qXM/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/index.rstqq}qbUtagnameqUtargetq U attributesq!}q"(Uidsq#]Ubackrefsq$]Udupnamesq%]Uclassesq&]Unamesq']Urefidq(huUlineq)KUdocumentq*hh]ubcdocutils.nodes section q+)q,}q-(hUhhhhUexpect_referenced_by_nameq.}q/hhshUsectionq0h!}q1(h%]h&]h$]h#]q2(hheh']q3(hheuh)Kh*hUexpect_referenced_by_idq4}q5hhsh]q6(cdocutils.nodes title q7)q8}q9(hX User Guideq:hh,hhhUtitleq;h!}q<(h%]h&]h$]h#]h']uh)Kh*hh]q=cdocutils.nodes Text q>X User Guideq?q@}qA(hh:hh8ubaubcdocutils.nodes field_list qB)qC}qD(hUhh,hhhU field_listqEh!}qF(h%]h&]h$]h#]h']uh)Kh*hh]qG(cdocutils.nodes field qH)qI}qJ(hUhhChhhUfieldqKh!}qL(h%]h&]h$]h#]h']uh)Kh*hh]qM(cdocutils.nodes field_name qN)qO}qP(hXReleaseqQh!}qR(h%]h&]h$]h#]h']uhhIh]qSh>XReleaseqTqU}qV(hhQhhOubahU field_nameqWubcdocutils.nodes field_body qX)qY}qZ(hX |version|q[h!}q\(h%]h&]h$]h#]h']uhhIh]q]cdocutils.nodes paragraph q^)q_}q`(hh[hhYhhhU paragraphqah!}qb(h%]h&]h$]h#]h']uh)Kh]qch>X2.1qdqe}qf(hU2.1qghh_ubaubahU field_bodyqhubeubhH)qi}qj(hUhhChhhhKh!}qk(h%]h&]h$]h#]h']uh)Kh*hh]ql(hN)qm}qn(hXDateqoh!}qp(h%]h&]h$]h#]h']uhhih]qqh>XDateqrqs}qt(hhohhmubahhWubhX)qu}qv(hX|today| h!}qw(h%]h&]h$]h#]h']uhhih]qxh^)qy}qz(hX|today|q{hhuhhhhah!}q|(h%]h&]h$]h#]h']uh)Kh]q}h>XFebruary 04, 2014q~q}q(hXFebruary 04, 2014hhyubaubahhhubeubeubcdocutils.nodes compound q)q}q(hUhh,hhhUcompoundqh!}q(h%]h&]qUtoctree-wrapperqah$]h#]h']uh)Nh*hh]qcsphinx.addnodes toctree q)q}q(hUhhhhhUtoctreeqh!}q(UnumberedqKU includehiddenqhXuserguide/indexqU titlesonlyqUglobqh#]h$]h%]h&]h']Uentriesq]q(NXuserguide/overviewqqNXuserguide/tasksqqNXuserguide/executingqqNXuserguide/workersqqNXuserguide/periodic-tasksqqNXuserguide/tasksetsqqNXuserguide/remote-tasksqqNXuserguide/routingqqNXuserguide/monitoringqqNXuserguide/optimizingqqeUhiddenqU includefilesq]q(hhhhhhhhhheUmaxdepthqKuh)K h]ubaubeubehUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh*hU current_lineqNUtransform_messagesq]qcdocutils.nodes system_message q)q}q(hUh!}q(h%]UlevelKh#]h$]Usourcehh&]h']UlineKUtypeUINFOquh]qh^)q}q(hUh!}q(h%]h&]h$]h#]h']uhhh]qh>X+Hyperlink target "guide" is not referenced.qDžq}q(hUhhubahhaubahUsystem_messagequbaUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqۈUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh;NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesqUtrim_footnote_reference_spaceqUenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUM/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/index.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrhUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hh,hh,uUsubstitution_namesr}rhh*h!}r (h%]h#]h$]Usourcehh&]h']uU footnotesr!]r"Urefidsr#}r$h]r%hasub.PKYDDp9s-1-1:celery-2.1-archived/.doctrees/userguide/optimizing.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X optimizingqNXoptimizing-worker-settingsqX introductionqNXguide-optimizingq Xscenario 1: lots of short tasksq NXscenario 2: expensive tasksq NXprefetch limitq NXworker settingsq NXoptimizing-prefetch-limitquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU optimizingqhUoptimizing-worker-settingsqhU introductionqh Uguide-optimizingqh Uscenario-1-lots-of-short-tasksqh Uscenario-2-expensive-tasksqh Uprefetch-limitqh Uworker-settingsqhUoptimizing-prefetch-limitq uUchildrenq!]q"(cdocutils.nodes target q#)q$}q%(U rawsourceq&X.. _guide-optimizing:Uparentq'hUsourceq(cdocutils.nodes reprunicode q)XR/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/optimizing.rstq*q+}q,bUtagnameq-Utargetq.U attributesq/}q0(Uidsq1]Ubackrefsq2]Udupnamesq3]Uclassesq4]Unamesq5]Urefidq6huUlineq7KUdocumentq8hh!]ubcdocutils.nodes section q9)q:}q;(h&Uh'hh(h+Uexpect_referenced_by_nameq<}q=h h$sh-Usectionq>h/}q?(h3]h4]h2]h1]q@(hheh5]qA(hh euh7Kh8hUexpect_referenced_by_idqB}qChh$sh!]qD(cdocutils.nodes title qE)qF}qG(h&X OptimizingqHh'h:h(h+h-UtitleqIh/}qJ(h3]h4]h2]h1]h5]uh7Kh8hh!]qKcdocutils.nodes Text qLX OptimizingqMqN}qO(h&hHh'hFubaubh9)qP}qQ(h&Uh'h:h(h+h-h>h/}qR(h3]h4]h2]h1]qShah5]qThauh7Kh8hh!]qU(hE)qV}qW(h&X IntroductionqXh'hPh(h+h-hIh/}qY(h3]h4]h2]h1]h5]uh7Kh8hh!]qZhLX Introductionq[q\}q](h&hXh'hVubaubcdocutils.nodes paragraph q^)q_}q`(h&XThe default configuration, like any good default, is full of compromises. It is not tweaked to be optimal for any single use case, but tries to find middle ground that works *well enough* for most situations.h'hPh(h+h-U paragraphqah/}qb(h3]h4]h2]h1]h5]uh7K h8hh!]qc(hLXThe default configuration, like any good default, is full of compromises. It is not tweaked to be optimal for any single use case, but tries to find middle ground that works qdqe}qf(h&XThe default configuration, like any good default, is full of compromises. It is not tweaked to be optimal for any single use case, but tries to find middle ground that works h'h_ubcdocutils.nodes emphasis qg)qh}qi(h&X *well enough*h/}qj(h3]h4]h2]h1]h5]uh'h_h!]qkhLX well enoughqlqm}qn(h&Uh'hhubah-UemphasisqoubhLX for most situations.qpqq}qr(h&X for most situations.h'h_ubeubh^)qs}qt(h&XThere are key optimizations to be done if your application is mainly processing lots of short tasks, and also if you have fewer but very long tasks.quh'hPh(h+h-hah/}qv(h3]h4]h2]h1]h5]uh7Kh8hh!]qwhLXThere are key optimizations to be done if your application is mainly processing lots of short tasks, and also if you have fewer but very long tasks.qxqy}qz(h&huh'hsubaubh#)q{}q|(h&X.. _optimizing-worker-settings:h'hPh(h+h-h.h/}q}(h1]h2]h3]h4]h5]h6huh7Kh8hh!]ubeubh9)q~}q(h&Uh'h:h(h+h<}qhh{sh-h>h/}q(h3]h4]h2]h1]q(hheh5]q(h heuh7Kh8hhB}qhh{sh!]q(hE)q}q(h&XWorker Settingsqh'h~h(h+h-hIh/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]qhLXWorker Settingsqq}q(h&hh'hubaubh#)q}q(h&X.. _optimizing-prefetch-limit:h'h~h(h+h-h.h/}q(h1]h2]h3]h4]h5]h6h uh7Kh8hh!]ubh9)q}q(h&Uh'h~h(h+h<}qhhsh-h>h/}q(h3]h4]h2]h1]q(hh eh5]q(h heuh7Kh8hhB}qh hsh!]q(hE)q}q(h&XPrefetch limitqh'hh(h+h-hIh/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]qhLXPrefetch limitqq}q(h&hh'hubaubh^)q}q(h&XH*Prefetch* is a term inherited from AMQP, and it is often misunderstood.qh'hh(h+h-hah/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]q(hg)q}q(h&X *Prefetch*h/}q(h3]h4]h2]h1]h5]uh'hh!]qhLXPrefetchqq}q(h&Uh'hubah-houbhLX> is a term inherited from AMQP, and it is often misunderstood.qq}q(h&X> is a term inherited from AMQP, and it is often misunderstood.h'hubeubh^)q}q(h&X7The prefetch limit is a limit for how many tasks a worker can reserve in advance. If this is set to zero, the worker will keep consuming messages *ad infinitum*, not respecting that there may be other available worker nodes (that may be able to process them sooner), or that the messages may not fit in memory.h'hh(h+h-hah/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]q(hLXThe prefetch limit is a limit for how many tasks a worker can reserve in advance. If this is set to zero, the worker will keep consuming messages qq}q(h&XThe prefetch limit is a limit for how many tasks a worker can reserve in advance. If this is set to zero, the worker will keep consuming messages h'hubhg)q}q(h&X*ad infinitum*h/}q(h3]h4]h2]h1]h5]uh'hh!]qhLX ad infinitumqq}q(h&Uh'hubah-houbhLX, not respecting that there may be other available worker nodes (that may be able to process them sooner), or that the messages may not fit in memory.qq}q(h&X, not respecting that there may be other available worker nodes (that may be able to process them sooner), or that the messages may not fit in memory.h'hubeubh^)q}q(h&XThe workers initial prefetch count is set by multiplying the :setting:`CELERYD_PREFETCH_MULTIPLIER` setting by the number of child worker processes. The default is 4 messages per child process.h'hh(h+h-hah/}q(h3]h4]h2]h1]h5]uh7K$h8hh!]q(hLX=The workers initial prefetch count is set by multiplying the qŅq}q(h&X=The workers initial prefetch count is set by multiplying the h'hubcsphinx.addnodes pending_xref q)q}q(h&X&:setting:`CELERYD_PREFETCH_MULTIPLIER`qh'hh(h+h-U pending_xrefqh/}q(UreftypeXsettingUrefwarnqΉU reftargetqXCELERYD_PREFETCH_MULTIPLIERU refdomainXstdqh1]h2]U refexplicith3]h4]h5]UrefdocqXuserguide/optimizingquh7K$h!]qcdocutils.nodes literal q)q}q(h&hh/}q(h3]h4]q(UxrefqhX std-settingqeh2]h1]h5]uh'hh!]qhLXCELERYD_PREFETCH_MULTIPLIERq܅q}q(h&Uh'hubah-UliteralqubaubhLX_ setting by the number of child worker processes. The default is 4 messages per child process.qq}q(h&X_ setting by the number of child worker processes. The default is 4 messages per child process.h'hubeubh^)q}q(h&XIf you have many expensive tasks with a long duration you would want the multiplier value to be 1, which means it will only reserve one unacknowledged task per worker process at a time.qh'hh(h+h-hah/}q(h3]h4]h2]h1]h5]uh7K(h8hh!]qhLXIf you have many expensive tasks with a long duration you would want the multiplier value to be 1, which means it will only reserve one unacknowledged task per worker process at a time.q腁q}q(h&hh'hubaubh^)q}q(h&XEHowever -- If you have lots of short tasks, and throughput/roundtrip latency is important to you, then you want this number to be large. Say 64, or 128 for example, as the worker is able to process a lot more tasks/s if the messages have already been prefetched in memory. You may have to experiment to find the best value.qh'hh(h+h-hah/}q(h3]h4]h2]h1]h5]uh7K,h8hh!]qhLXEHowever -- If you have lots of short tasks, and throughput/roundtrip latency is important to you, then you want this number to be large. Say 64, or 128 for example, as the worker is able to process a lot more tasks/s if the messages have already been prefetched in memory. You may have to experiment to find the best value.qq}q(h&hh'hubaubh^)q}q(h&XIf you have a combination of both very long and short tasks, then the best option is to use two worker nodes that is configured individually, and route the tasks accordingly (see :ref:`guide-routing`).h'hh(h+h-hah/}q(h3]h4]h2]h1]h5]uh7K2h8hh!]q(hLXIf you have a combination of both very long and short tasks, then the best option is to use two worker nodes that is configured individually, and route the tasks accordingly (see qq}q(h&XIf you have a combination of both very long and short tasks, then the best option is to use two worker nodes that is configured individually, and route the tasks accordingly (see h'hubh)q}q(h&X:ref:`guide-routing`qh'hh(h+h-hh/}q(UreftypeXrefhΈhX guide-routingU refdomainXstdqh1]h2]U refexplicith3]h4]h5]hhuh7K2h!]qhg)r}r(h&hh/}r(h3]h4]r(hhXstd-refreh2]h1]h5]uh'hh!]rhLX guide-routingrr}r(h&Uh'jubah-houbaubhLX).r r }r (h&X).h'hubeubeubeubh9)r }r (h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7K7h8hh!]r(hE)r}r(h&XScenario 1: Lots of short tasksrh'j h(h+h-hIh/}r(h3]h4]h2]h1]h5]uh7K7h8hh!]rhLXScenario 1: Lots of short tasksrr}r(h&jh'jubaubcdocutils.nodes literal_block r)r}r(h&XCCELERYD_PREFETCH_MULTIPLIER = 128 CELERY_DISABLE_RATE_LIMITS = Trueh'j h(h+h-U literal_blockrh/}r(UlinenosrUlanguager XpythonU xml:spacer!Upreserver"h1]h2]h3]h4]h5]uh7K9h8hh!]r#hLXCCELERYD_PREFETCH_MULTIPLIER = 128 CELERY_DISABLE_RATE_LIMITS = Truer$r%}r&(h&Uh'jubaubeubh9)r'}r((h&Uh'h:h(h+h-h>h/}r)(h3]h4]h2]h1]r*hah5]r+h auh7K@h8hh!]r,(hE)r-}r.(h&XScenario 2: Expensive tasksr/h'j'h(h+h-hIh/}r0(h3]h4]h2]h1]h5]uh7K@h8hh!]r1hLXScenario 2: Expensive tasksr2r3}r4(h&j/h'j-ubaubj)r5}r6(h&XCELERYD_PREFETCH_MULTIPLIER = 1h'j'h(h+h-jh/}r7(jj Xpythonj!j"h1]h2]h3]h4]h5]uh7KBh8hh!]r8hLXCELERYD_PREFETCH_MULTIPLIER = 1r9r:}r;(h&Uh'j5ubaubeubeubeh&UU transformerr<NU footnote_refsr=}r>Urefnamesr?}r@Usymbol_footnotesrA]rBUautofootnote_refsrC]rDUsymbol_footnote_refsrE]rFU citationsrG]rHh8hU current_linerINUtransform_messagesrJ]rK(cdocutils.nodes system_message rL)rM}rN(h&Uh/}rO(h3]UlevelKh1]h2]Usourceh+h4]h5]UlineKUtypeUINFOrPuh!]rQh^)rR}rS(h&Uh/}rT(h3]h4]h2]h1]h5]uh'jMh!]rUhLX6Hyperlink target "guide-optimizing" is not referenced.rVrW}rX(h&Uh'jRubah-haubah-Usystem_messagerYubjL)rZ}r[(h&Uh/}r\(h3]UlevelKh1]h2]Usourceh+h4]h5]UlineKUtypejPuh!]r]h^)r^}r_(h&Uh/}r`(h3]h4]h2]h1]h5]uh'jZh!]rahLX@Hyperlink target "optimizing-worker-settings" is not referenced.rbrc}rd(h&Uh'j^ubah-haubah-jYubjL)re}rf(h&Uh/}rg(h3]UlevelKh1]h2]Usourceh+h4]h5]UlineKUtypejPuh!]rhh^)ri}rj(h&Uh/}rk(h3]h4]h2]h1]h5]uh'jeh!]rlhLX?Hyperlink target "optimizing-prefetch-limit" is not referenced.rmrn}ro(h&Uh'jiubah-haubah-jYubeUreporterrpNUid_startrqKU autofootnotesrr]rsU citation_refsrt}ruUindirect_targetsrv]rwUsettingsrx(cdocutils.frontend Values ryorz}r{(Ufootnote_backlinksr|KUrecord_dependenciesr}NU rfc_base_urlr~Uhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhINUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUR/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/optimizing.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhh:hh~hh~hhPhh:hj hj'h huUsubstitution_namesr}rh-h8h/}r(h3]h1]h2]Usourceh+h4]h5]uU footnotesr]rUrefidsr}r(h]rh$ah]rh{ah ]rhauub.PKYDD 5celery-2.1-archived/.doctrees/userguide/tasks.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xart of concurrencyqX task optionsqNXperformance and strategiesqNXTask.routing_keyq XTask.track_startedq Xtask-database-transactionsq X custom statesq NX task-exampleq X task namesqNXtask-keyword-argumentsqXTask.ignore_resultqXusing a custom retry delayqNXpendingqNXTask.serializerqXtask-builtin-statesqX task-basicsqXbasicsqNX$avoid launching synchronous subtasksqNXsuccessqNX Task.nameqX Task.abstractqX task-namesqXdefault keyword argumentsqNXTask.error_whitelistqX blog/views.pyqNXtask-data-localityqXTask.rate_limitq Xdistributed computing economicsq!Xtask-synchronous-subtasksq"Xtask-example-blog-tasksq#X guide-tasksq$Xretryq%NXtask-performance-and-strategiesq&X task-loggingq'Xstateq(NXtask-ignore_resultsq)X%automatic naming and relative importsq*NX memcachedq+X how it worksq,NX granularityq-NXtask-best-practicesq.Xtask-example-blog-viewsq/X task-statesq0Xloggingq1NXrevokedq2NX Task.exchangeq3X task statesq4NX akismet.pyq5Xtask-disable-rate-limitsq6X Task.queueq7X Task.backendq8Xtasksq9NXTask.send_error_emailsq:X task-retryq;Xbuilt-in statesqNX task-optionsq?Xtasks-decoratingq@XakismetqAXTask.mandatoryqBXstartedqCNXfailureqDNXdatabase transactionsqENXtask-granularityqFXTask.default_retry_delayqGXTask.immediateqHXexampleqINXdecorating tasksqJNXmessage and routing optionsqKNXgeneralqLNXtask-retry-custom-delayqMXtips and best practicesqNNXtask-general-optionsqOX!Task.store_errors_even_if_ignoredqPX'disable rate limits if they're not usedqQNUcontentsqRNX michael foordqSX Task.priorityqTXTask.max_retriesqUXtask-how-they-workqVX data localityqWNXtask-message-optionsqXX blog/tasks.pyqYNX task-stateqZXTask.acks_lateq[Xtask-naming-relative-importsq\X"retrying a task if something failsq]NuUsubstitution_defsq^}q_Uparse_messagesq`]qaUcurrent_sourceqbNU decorationqcNUautofootnote_startqdKUnameidsqe}qf(hUart-of-concurrencyqghUid1qhhUperformance-and-strategiesqih h h h h Utask-database-transactionsqjh U custom-statesqkh U task-exampleqlhUid2qmhUtask-keyword-argumentsqnhhhUusing-a-custom-retry-delayqohUpendingqphhhUtask-builtin-statesqqhU task-basicsqrhUbasicsqshU$avoid-launching-synchronous-subtasksqthUsuccessquhhhhhU task-namesqvhUdefault-keyword-argumentsqwhhhU blog-views-pyqxhUtask-data-localityqyh h h!Udistributed-computing-economicsqzh"Utask-synchronous-subtasksq{h#Utask-example-blog-tasksq|h$U guide-tasksq}h%Uretryq~h&Utask-performance-and-strategiesqh'U task-loggingqh(Ustateqh)Utask-ignore-resultsqh*U%automatic-naming-and-relative-importsqh+U memcachedqh,U how-it-worksqh-U granularityqh.Utask-best-practicesqh/Utask-example-blog-viewsqh0U task-statesqh1Uloggingqh2Urevokedqh3h3h4Uid3qh5U akismet-pyqh6Utask-disable-rate-limitsqh7h7h8h8h9Utasksqh:h:h;U task-retryqhUblog-models-pyqh?U task-optionsqh@Utasks-decoratingqhAUakismetqhBhBhCUstartedqhDUfailureqhEUdatabase-transactionsqhFUtask-granularityqhGhGhHhHhIUexampleqhJUdecorating-tasksqhKUmessage-and-routing-optionsqhLUgeneralqhMUtask-retry-custom-delayqhNUtips-and-best-practicesqhOUtask-general-optionsqhPhPhQU'disable-rate-limits-if-they-re-not-usedqhRUcontentsqhSU michael-foordqhThThUhUhVUtask-how-they-workqhWU data-localityqhXUtask-message-optionsqhYU blog-tasks-pyqhZU task-stateqh[h[h\Utask-naming-relative-importsqh]U"retrying-a-task-if-something-failsquUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX.. _guide-tasks:UparentqhUsourceqcdocutils.nodes reprunicode qXM/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/tasks.rstqq}qbUtagnameqUtargetqU attributesq}q(Uidsq]Ubackrefsq]Udupnamesq]Uclassesq]Unamesq]Urefidqh}uUlineqKUdocumentqhh]ubcdocutils.nodes section q)q}q(hUhhhhUexpect_referenced_by_nameq}qh$hshUsectionqh}q(h]h]h]h]q(hh}eh]q(h9h$euhKhhUexpect_referenced_by_idq}qh}hsh]q(cdocutils.nodes title q)q}q(hXTasksqhhhhhUtitleqh}q(h]h]h]h]h]uhKhhh]qcdocutils.nodes Text qXTasksq؅q}q(hhhhubaubcdocutils.nodes topic q)q}q(hUhhhhhUtopicqh}q(h]h]q(UcontentsqUlocalqeh]h]qhah]qhRauhK hhh]qcdocutils.nodes bullet_list q)q}q(hUhhhNhU bullet_listqh}q(h]h]h]h]h]uhNhhh]q(cdocutils.nodes list_item q)q}q(hUh}q(h]h]h]h]h]uhhh]qcdocutils.nodes paragraph q)q}q(hUh}q(h]h]h]h]h]uhhh]qcdocutils.nodes reference q)q}q(hUh}q(h]qUid4qah]h]h]h]Urefidhsuhhh]qhXBasicsqq}q(hXBasicsrhhubahU referencerubahU paragraphrubahU list_itemrubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r (hUh}r (h]h]h]h]h]uhjh]r h)r }r (hUh}r(h]rUid5rah]h]h]h]Urefidhwuhjh]rhXDefault keyword argumentsrr}r(hXDefault keyword argumentsrhj ubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r (h]r!Uid6r"ah]h]h]h]Urefidhuhjh]r#hXLoggingr$r%}r&(hXLoggingr'hjubahjubahjubahjubh)r(}r)(hUh}r*(h]h]h]h]h]uhhh]r+(h)r,}r-(hUh}r.(h]h]h]h]h]uhj(h]r/h)r0}r1(hUh}r2(h]r3Uid7r4ah]h]h]h]Urefidhuhj,h]r5hX"Retrying a task if something failsr6r7}r8(hX"Retrying a task if something failsr9hj0ubahjubahjubh)r:}r;(hUh}r<(h]h]h]h]h]uhj(h]r=h)r>}r?(hUh}r@(h]h]h]h]h]uhj:h]rAh)rB}rC(hUh}rD(h]h]h]h]h]uhj>h]rEh)rF}rG(hUh}rH(h]rIUid8rJah]h]h]h]UrefidhouhjBh]rKhXUsing a custom retry delayrLrM}rN(hXUsing a custom retry delayrOhjFubahjubahjubahjubahhubehjubh)rP}rQ(hUh}rR(h]h]h]h]h]uhhh]rS(h)rT}rU(hUh}rV(h]h]h]h]h]uhjPh]rWh)rX}rY(hUh}rZ(h]r[Uid9r\ah]h]h]h]UrefidhuhjTh]r]hX Task optionsr^r_}r`(hX Task optionsrahjXubahjubahjubh)rb}rc(hUh}rd(h]h]h]h]h]uhjPh]re(h)rf}rg(hUh}rh(h]h]h]h]h]uhjbh]rih)rj}rk(hUh}rl(h]h]h]h]h]uhjfh]rmh)rn}ro(hUh}rp(h]rqUid10rrah]h]h]h]Urefidhuhjjh]rshXGeneralrtru}rv(hXGeneralrwhjnubahjubahjubahjubh)rx}ry(hUh}rz(h]h]h]h]h]uhjbh]r{h)r|}r}(hUh}r~(h]h]h]h]h]uhjxh]rh)r}r(hUh}r(h]rUid11rah]h]h]h]Urefidhuhj|h]rhXMessage and routing optionsrr}r(hXMessage and routing optionsrhjubahjubahjubahjubehhubehjubh)r}r(hUh}r(h]h]h]h]h]uhhh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid12rah]h]h]h]Urefidhvuhjh]rhX Task namesrr}r(hX Task namesrhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid13rah]h]h]h]Urefidhuhjh]rhX%Automatic naming and relative importsrr}r(hX%Automatic naming and relative importsrhjubahjubahjubahjubahhubehjubh)r}r(hUh}r(h]h]h]h]h]uhhh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid14rah]h]h]h]Urefidhuhjh]rhXDecorating tasksrr}r(hXDecorating tasksrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid15rah]h]h]h]Urefidhuhjh]rhX Task Statesrr}r(hX Task Statesrhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid16rah]h]h]h]Urefidhuhjh]rhXBuilt-in Statesrr}r(hXBuilt-in Statesrhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid17rah]h]h]h]Urefidhpuhjh]rhXPENDINGrr}r(hXPENDINGrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]r h)r }r (hUh}r (h]r Uid18rah]h]h]h]Urefidhuhjh]rhXSTARTEDrr}r(hXSTARTEDrhj ubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid19r ah]h]h]h]Urefidhuuhjh]r!hXSUCCESSr"r#}r$(hXSUCCESSr%hjubahjubahjubahjubh)r&}r'(hUh}r((h]h]h]h]h]uhjh]r)h)r*}r+(hUh}r,(h]h]h]h]h]uhj&h]r-h)r.}r/(hUh}r0(h]r1Uid20r2ah]h]h]h]Urefidhuhj*h]r3hXFAILUREr4r5}r6(hXFAILUREr7hj.ubahjubahjubahjubh)r8}r9(hUh}r:(h]h]h]h]h]uhjh]r;h)r<}r=(hUh}r>(h]h]h]h]h]uhj8h]r?h)r@}rA(hUh}rB(h]rCUid21rDah]h]h]h]Urefidh~uhj<h]rEhXRETRYrFrG}rH(hXRETRYrIhj@ubahjubahjubahjubh)rJ}rK(hUh}rL(h]h]h]h]h]uhjh]rMh)rN}rO(hUh}rP(h]h]h]h]h]uhjJh]rQh)rR}rS(hUh}rT(h]rUUid22rVah]h]h]h]UrefidhuhjNh]rWhXREVOKEDrXrY}rZ(hXREVOKEDr[hjRubahjubahjubahjubehhubehjubh)r\}r](hUh}r^(h]h]h]h]h]uhjh]r_h)r`}ra(hUh}rb(h]h]h]h]h]uhj\h]rch)rd}re(hUh}rf(h]rgUid23rhah]h]h]h]Urefidhkuhj`h]rihX Custom statesrjrk}rl(hX Custom statesrmhjdubahjubahjubahjubehhubehjubh)rn}ro(hUh}rp(h]h]h]h]h]uhhh]rqh)rr}rs(hUh}rt(h]h]h]h]h]uhjnh]ruh)rv}rw(hUh}rx(h]ryUid24rzah]h]h]h]Urefidhuhjrh]r{hX How it worksr|r}}r~(hX How it worksrhjvubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhhh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid25rah]h]h]h]Urefidhuhjh]rhXTips and Best Practicesrr}r(hXTips and Best Practicesrhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid26rah]h]h]h]Urefidhuhjh]rhXIgnore results you don't wantrr}r(hXIgnore results you don't wantrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid27rah]h]h]h]Urefidhuhjh]rhX'Disable rate limits if they're not usedrr}r(hX'Disable rate limits if they're not usedrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid28rah]h]h]h]Urefidhtuhjh]rhX$Avoid launching synchronous subtasksrr}r(hX$Avoid launching synchronous subtasksrhjubahjubahjubahjubehhubehjubh)r}r(hUh}r(h]h]h]h]h]uhhh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid29rah]h]h]h]Urefidhiuhjh]rhXPerformance and Strategiesrr}r(hXPerformance and Strategiesrhjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r(h)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid30rah]h]h]h]Urefidhuhjh]rhX Granularityrr}r(hX Granularityrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]rUid31rah]h]h]h]Urefidhuhjh]rhX Data localityrr}r(hX Data localityrhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]r h)r }r (hUh}r (h]h]h]h]h]uhjh]r h)r}r(hUh}r(h]rUid32rah]h]h]h]Urefidhuhj h]rhXStaterr}r(hXStaterhjubahjubahjubahjubh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rh)r }r!(hUh}r"(h]r#Uid33r$ah]h]h]h]Urefidhuhjh]r%hXDatabase transactionsr&r'}r((hXDatabase transactionsr)hj ubahjubahjubahjubehhubehjubh)r*}r+(hUh}r,(h]h]h]h]h]uhhh]r-(h)r.}r/(hUh}r0(h]h]h]h]h]uhj*h]r1h)r2}r3(hUh}r4(h]r5Uid34r6ah]h]h]h]Urefidhuhj.h]r7hXExampler8r9}r:(hXExampler;hj2ubahjubahjubh)r<}r=(hUh}r>(h]h]h]h]h]uhj*h]r?(h)r@}rA(hUh}rB(h]h]h]h]h]uhj<h]rCh)rD}rE(hUh}rF(h]h]h]h]h]uhj@h]rGh)rH}rI(hUh}rJ(h]rKUid35rLah]h]h]h]UrefidhuhjDh]rMhXblog/models.pyrNrO}rP(hXblog/models.pyrQhjHubahjubahjubahjubh)rR}rS(hUh}rT(h]h]h]h]h]uhj<h]rUh)rV}rW(hUh}rX(h]h]h]h]h]uhjRh]rYh)rZ}r[(hUh}r\(h]r]Uid36r^ah]h]h]h]UrefidhxuhjVh]r_hX blog/views.pyr`ra}rb(hX blog/views.pyrchjZubahjubahjubahjubh)rd}re(hUh}rf(h]h]h]h]h]uhj<h]rgh)rh}ri(hUh}rj(h]h]h]h]h]uhjdh]rkh)rl}rm(hUh}rn(h]roUid37rpah]h]h]h]Urefidhuhjhh]rqhX blog/tasks.pyrrrs}rt(hX blog/tasks.pyruhjlubahjubahjubahjubehhubehjubeubaubh)rv}rw(hXThis guide gives an overview of how tasks are defined. For a complete listing of task attributes and methods, please see the :class:`API reference `.hhhhhjh}rx(h]h]h]h]h]uhK hhh]ry(hX}This guide gives an overview of how tasks are defined. For a complete listing of task attributes and methods, please see the rzr{}r|(hX}This guide gives an overview of how tasks are defined. For a complete listing of task attributes and methods, please see the hjvubcsphinx.addnodes pending_xref r})r~}r(hX.:class:`API reference `rhjvhhhU pending_xrefrh}r(UreftypeXclassUrefwarnrU reftargetrXcelery.task.base.TaskU refdomainXpyrh]h]U refexplicith]h]h]UrefdocrXuserguide/tasksrUpy:classrNU py:modulerNuhK h]rcdocutils.nodes literal r)r}r(hjh}r(h]h]r(UxrefrjXpy-classreh]h]h]uhj~h]rhX API referencerr}r(hUhjubahUliteralrubaubhX.r}r(hX.hjvubeubh)r}r(hX.. _task-basics:hhhhhhh}r(h]h]h]h]h]hhruhKhhh]ubh)r}r(hUhhhhh}rhjshhh}r(h]h]h]h]r(hshreh]r(hheuhKhhh}rhrjsh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hhuhKhhh]rhXBasicsrr}r(hjhjubaubh)r}r(hXA task is a class that encapsulates a function and its execution options. Given a function ``create_user``, that takes two arguments: ``username`` and ``password``, you can create a task like this:hjhhhjh}r(h]h]h]h]h]uhKhhh]r(hX[A task is a class that encapsulates a function and its execution options. Given a function rr}r(hX[A task is a class that encapsulates a function and its execution options. Given a function hjubj)r}r(hX``create_user``h}r(h]h]h]h]h]uhjh]rhX create_userrr}r(hUhjubahjubhX, that takes two arguments: rr}r(hX, that takes two arguments: hjubj)r}r(hX ``username``h}r(h]h]h]h]h]uhjh]rhXusernamerr}r(hUhjubahjubhX and rr}r(hX and hjubj)r}r(hX ``password``h}r(h]h]h]h]h]uhjh]rhXpasswordrr}r(hUhjubahjubhX", you can create a task like this:rr}r(hX", you can create a task like this:hjubeubcdocutils.nodes literal_block r)r}r(hXfrom celery.task import Task from django.contrib.auth import User class CreateUserTask(Task): def run(self, username, password): User.objects.create(username=username, password=password)hjhhhU literal_blockrh}r(UlinenosrUlanguagerXpythonU xml:spacerUpreserverh]h]h]h]h]uhKhhh]rhXfrom celery.task import Task from django.contrib.auth import User class CreateUserTask(Task): def run(self, username, password): User.objects.create(username=username, password=password)rr}r(hUhjubaubh)r}r(hXRFor convenience there is a shortcut decorator that turns any function into a task:rhjhhhjh}r(h]h]h]h]h]uhK!hhh]rhXRFor convenience there is a shortcut decorator that turns any function into a task:rr}r(hjhjubaubj)r}r(hXfrom celery.decorators import task from django.contrib.auth import User @task def create_user(username, password): User.objects.create(username=username, password=password)hjhhhjh}r(jjXpythonjjh]h]h]h]h]uhK$hhh]rhXfrom celery.decorators import task from django.contrib.auth import User @task def create_user(username, password): User.objects.create(username=username, password=password)rr}r(hUhjubaubh)r}r(hXfThe task decorator takes the same execution options as the :class:`~celery.task.base.Task` class does:hjhhhjh}r(h]h]h]h]h]uhK-hhh]r(hX;The task decorator takes the same execution options as the rr}r(hX;The task decorator takes the same execution options as the hjubj})r}r(hX:class:`~celery.task.base.Task`rhjhhhjh}r(UreftypeXclassjjXcelery.task.base.TaskU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhK-h]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhXTaskrr}r(hUhjubahjubaubhX class does:rr}r(hX class does:hjubeubj)r}r(hX{@task(serializer="json") def create_user(username, password): User.objects.create(username=username, password=password)hjhhhjh}r(jjXpythonjjh]h]h]h]h]uhK0hhh]rhX{@task(serializer="json") def create_user(username, password): User.objects.create(username=username, password=password)r r }r (hUhjubaubh)r }r (hX.. _task-keyword-arguments:hjhhhhh}r(h]h]h]h]h]hhnuhK6hhh]ubeubh)r}r(hUhhhhh}rhj shhh}r(h]h]h]h]r(hwhneh]r(hheuhK9hhh}rhnj sh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhK9hhh]rhXDefault keyword argumentsrr}r(hjhjubaubh)r}r(hXCelery supports a set of default arguments that can be forwarded to any task. Tasks can choose not to take these, or list the ones they want. The worker will do the right thing.r hjhhhjh}r!(h]h]h]h]h]uhK;hhh]r"hXCelery supports a set of default arguments that can be forwarded to any task. Tasks can choose not to take these, or list the ones they want. The worker will do the right thing.r#r$}r%(hj hjubaubh)r&}r'(hX*The current default keyword arguments are:r(hjhhhjh}r)(h]h]h]h]h]uhK?hhh]r*hX*The current default keyword arguments are:r+r,}r-(hj(hj&ubaubcdocutils.nodes field_list r.)r/}r0(hUhjhhhU field_listr1h}r2(h]h]h]h]h]uhKAhhh]r3(cdocutils.nodes field r4)r5}r6(hUhj/hhhUfieldr7h}r8(h]h]h]h]h]uhKAhhh]r9(cdocutils.nodes field_name r:)r;}r<(hXtask_idr=h}r>(h]h]h]h]h]uhj5h]r?hXtask_idr@rA}rB(hj=hj;ubahU field_namerCubcdocutils.nodes field_body rD)rE}rF(hX%The unique id of the executing task. h}rG(h]h]h]h]h]uhj5h]rHh)rI}rJ(hX$The unique id of the executing task.rKhjEhhhjh}rL(h]h]h]h]h]uhKAh]rMhX$The unique id of the executing task.rNrO}rP(hjKhjIubaubahU field_bodyrQubeubj4)rR}rS(hUhj/hhhj7h}rT(h]h]h]h]h]uhKChhh]rU(j:)rV}rW(hX task_namerXh}rY(h]h]h]h]h]uhjRh]rZhX task_namer[r\}r](hjXhjVubahjCubjD)r^}r_(hX&Name of the currently executing task. h}r`(h]h]h]h]h]uhjRh]rah)rb}rc(hX%Name of the currently executing task.rdhj^hhhjh}re(h]h]h]h]h]uhKCh]rfhX%Name of the currently executing task.rgrh}ri(hjdhjbubaubahjQubeubj4)rj}rk(hUhj/hhhj7h}rl(h]h]h]h]h]uhKEhhh]rm(j:)rn}ro(hX task_retriesrph}rq(h]h]h]h]h]uhjjh]rrhX task_retriesrsrt}ru(hjphjnubahjCubjD)rv}rw(hXPHow many times the current task has been retried. An integer starting at ``0``. h}rx(h]h]h]h]h]uhjjh]ryh)rz}r{(hXOHow many times the current task has been retried. An integer starting at ``0``.hjvhhhjh}r|(h]h]h]h]h]uhKEh]r}(hXIHow many times the current task has been retried. An integer starting at r~r}r(hXIHow many times the current task has been retried. An integer starting at hjzubj)r}r(hX``0``h}r(h]h]h]h]h]uhjzh]rhX0r}r(hUhjubahjubhX.r}r(hX.hjzubeubahjQubeubj4)r}r(hUhj/hhhj7h}r(h]h]h]h]h]uhKHhhh]r(j:)r}r(hXis_eagerrh}r(h]h]h]h]h]uhjh]rhXis_eagerrr}r(hjhjubahjCubjD)r}r(hXYSet to :const:`True` if the task is executed locally in the client, and not by a worker. h}r(h]h]h]h]h]uhjh]rh)r}r(hXXSet to :const:`True` if the task is executed locally in the client, and not by a worker.hjhhhjh}r(h]h]h]h]h]uhKHh]r(hXSet to rr}r(hXSet to hjubj})r}r(hX :const:`True`rhjhhhjh}r(UreftypeXconstjjXTrueU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhKHh]rj)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXTruerr}r(hUhjubahjubaubhXD if the task is executed locally in the client, and not by a worker.rr}r(hXD if the task is executed locally in the client, and not by a worker.hjubeubahjQubeubj4)r}r(hUhj/hhhj7h}r(h]h]h]h]h]uhKKhhh]r(j:)r}r(hXlogfilerh}r(h]h]h]h]h]uhjh]rhXlogfilerr}r(hjhjubahjCubjD)r}r(hXThe log file, can be passed on to :meth:`~celery.task.base.Task.get_logger` to gain access to the workers log file. See `Logging`_. h}r(h]h]h]h]h]uhjh]rh)r}r(hXThe log file, can be passed on to :meth:`~celery.task.base.Task.get_logger` to gain access to the workers log file. See `Logging`_.hjhhhjh}r(h]h]h]h]h]uhKKh]r(hX"The log file, can be passed on to rr}r(hX"The log file, can be passed on to hjubj})r}r(hX):meth:`~celery.task.base.Task.get_logger`rhjhhhjh}r(UreftypeXmethjjX celery.task.base.Task.get_loggerU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhKKh]rj)r}r(hjh}r(h]h]r(jjXpy-methreh]h]h]uhjh]rhX get_logger()rr}r(hUhjubahjubaubhX- to gain access to the workers log file. See rr}r(hX- to gain access to the workers log file. See hjubh)r}r(hX `Logging`_UresolvedrKhjhjh}r(UnameXLoggingh]h]h]h]h]hhuh]rhXLoggingrr}r(hUhjubaubhX.r}r(hX.hjubeubahjQubeubj4)r}r(hUhj/hhhj7h}r(h]h]h]h]h]uhKOhhh]r(j:)r}r(hXloglevelrh}r(h]h]h]h]h]uhjh]rhXloglevelrr}r(hjhjubahjCubjD)r}r(hXThe current log level used. h}r(h]h]h]h]h]uhjh]rh)r}r(hXThe current log level used.rhjhhhjh}r(h]h]h]h]h]uhKOh]rhXThe current log level used.rr}r(hjhjubaubahjQubeubj4)r}r(hUhj/hhhj7h}r(h]h]h]h]h]uhKRhhh]r(j:)r}r(hX delivery_inforh}r(h]h]h]h]h]uhjh]rhX delivery_inforr}r(hjhjubahjCubjD)r }r (hXAdditional message delivery information. This is a mapping containing the exchange and routing key used to deliver this task. It's used by e.g. :meth:`~celery.task.base.Task.retry` to resend the task to the same destination queue. **NOTE** As some messaging backends doesn't have advanced routing capabilities, you can't trust the availability of keys in this mapping. h}r (h]h]h]h]h]uhjh]r (cdocutils.nodes definition_list r )r}r(hUh}r(h]h]h]h]h]uhj h]rcdocutils.nodes definition_list_item r)r}r(hXAdditional message delivery information. This is a mapping containing the exchange and routing key used to deliver this task. It's used by e.g. :meth:`~celery.task.base.Task.retry` to resend the task to the same destination queue. hjhhhUdefinition_list_itemrh}r(h]h]h]h]h]uhKUh]r(cdocutils.nodes term r)r}r(hX:Additional message delivery information. This is a mappingrhjhhhUtermrh}r(h]h]h]h]h]uhKUh]rhX:Additional message delivery information. This is a mappingrr }r!(hjhjubaubcdocutils.nodes definition r")r#}r$(hUh}r%(h]h]h]h]h]uhjh]r&h)r'}r((hXcontaining the exchange and routing key used to deliver this task. It's used by e.g. :meth:`~celery.task.base.Task.retry` to resend the task to the same destination queue.hj#hhhjh}r)(h]h]h]h]h]uhKSh]r*(hXUcontaining the exchange and routing key used to deliver this task. It's used by e.g. r+r,}r-(hXUcontaining the exchange and routing key used to deliver this task. It's used by e.g. hj'ubj})r.}r/(hX$:meth:`~celery.task.base.Task.retry`r0hj'hhhjh}r1(UreftypeXmethjjXcelery.task.base.Task.retryU refdomainXpyr2h]h]U refexplicith]h]h]jjjNjNuhKSh]r3j)r4}r5(hj0h}r6(h]h]r7(jj2Xpy-methr8eh]h]h]uhj.h]r9hXretry()r:r;}r<(hUhj4ubahjubaubhX2 to resend the task to the same destination queue.r=r>}r?(hX2 to resend the task to the same destination queue.hj'ubeubahU definitionr@ubeubahUdefinition_listrAubh)rB}rC(hX**NOTE** As some messaging backends doesn't have advanced routing capabilities, you can't trust the availability of keys in this mapping.hj hhhjh}rD(h]h]h]h]h]uhKWh]rE(cdocutils.nodes strong rF)rG}rH(hX**NOTE**h}rI(h]h]h]h]h]uhjBh]rJhXNOTErKrL}rM(hUhjGubahUstrongrNubhX As some messaging backends doesn't have advanced routing capabilities, you can't trust the availability of keys in this mapping.rOrP}rQ(hX As some messaging backends doesn't have advanced routing capabilities, you can't trust the availability of keys in this mapping.hjBubeubehjQubeubeubh)rR}rS(hX.. _task-logging:hjhhhhh}rT(h]h]h]h]h]hhuhKZhhh]ubeubh)rU}rV(hUU referencedrWKhhhhh}rXh'jRshhh}rY(h]h]h]h]rZ(hheh]r[(h1h'euhK]hhh}r\hjRsh]r](h)r^}r_(hj'hjUhhhhh}r`(h]h]h]h]h]hj"uhK]hhh]rahXLoggingrbrc}rd(hj'hj^ubaubh)re}rf(hXJYou can use the workers logger to add diagnostic output to the worker log:rghjUhhhjh}rh(h]h]h]h]h]uhK_hhh]rihXJYou can use the workers logger to add diagnostic output to the worker log:rjrk}rl(hjghjeubaubj)rm}rn(hXclass AddTask(Task): def run(self, x, y, **kwargs): logger = self.get_logger(**kwargs) logger.info("Adding %s + %s" % (x, y)) return x + yhjUhhhjh}ro(jjXpythonjjh]h]h]h]h]uhKbhhh]rphXclass AddTask(Task): def run(self, x, y, **kwargs): logger = self.get_logger(**kwargs) logger.info("Adding %s + %s" % (x, y)) return x + yrqrr}rs(hUhjmubaubh)rt}ru(hXor using the decorator syntax:rvhjUhhhjh}rw(h]h]h]h]h]uhKkhhh]rxhXor using the decorator syntax:ryrz}r{(hjvhjtubaubj)r|}r}(hX@task() def add(x, y, **kwargs): logger = add.get_logger(**kwargs) logger.info("Adding %s + %s" % (x, y)) return x + yhjUhhhjh}r~(jjXpythonjjh]h]h]h]h]uhKmhhh]rhX@task() def add(x, y, **kwargs): logger = add.get_logger(**kwargs) logger.info("Adding %s + %s" % (x, y)) return x + yrr}r(hUhj|ubaubh)r}r(hXThere are several logging levels available, and the workers ``loglevel`` setting decides whether or not they will be written to the log file.hjUhhhjh}r(h]h]h]h]h]uhKuhhh]r(hX<There are several logging levels available, and the workers rr}r(hX<There are several logging levels available, and the workers hjubj)r}r(hX ``loglevel``h}r(h]h]h]h]h]uhjh]rhXloglevelrr}r(hUhjubahjubhXE setting decides whether or not they will be written to the log file.rr}r(hXE setting decides whether or not they will be written to the log file.hjubeubh)r}r(hX|Of course, you can also simply use `print` as anything written to standard out/-err will be written to the log file as well.hjUhhhjh}r(h]h]h]h]h]uhKxhhh]r(hX#Of course, you can also simply use rr}r(hX#Of course, you can also simply use hjubcdocutils.nodes title_reference r)r}r(hX`print`h}r(h]h]h]h]h]uhjh]rhXprintrr}r(hUhjubahUtitle_referencerubhXR as anything written to standard out/-err will be written to the log file as well.rr}r(hXR as anything written to standard out/-err will be written to the log file as well.hjubeubh)r}r(hX.. _task-retry:hjUhhhhh}r(h]h]h]h]h]hhuhK{hhh]ubeubh)r}r(hUhhhhh}rh;jshhh}r(h]h]h]h]r(hheh]r(h]h;euhK~hhh}rhjsh]r(h)r}r(hj9hjhhhhh}r(h]h]h]h]h]hj4uhK~hhh]rhX"Retrying a task if something failsrr}r(hj9hjubaubh)r}r(hXSimply use :meth:`~celery.task.base.Task.retry` to re-send the task. It will do the right thing, and respect the :attr:`~celery.task.base.Task.max_retries` attribute:hjhhhjh}r(h]h]h]h]h]uhKhhh]r(hX Simply use rr}r(hX Simply use hjubj})r}r(hX$:meth:`~celery.task.base.Task.retry`rhjhhhjh}r(UreftypeXmethjjXcelery.task.base.Task.retryU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-methreh]h]h]uhjh]rhXretry()rr}r(hUhjubahjubaubhXB to re-send the task. It will do the right thing, and respect the rr}r(hXB to re-send the task. It will do the right thing, and respect the hjubj})r}r(hX*:attr:`~celery.task.base.Task.max_retries`rhjhhhjh}r(UreftypeXattrjjX!celery.task.base.Task.max_retriesU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-attrreh]h]h]uhjh]rhX max_retriesrr}r(hUhjubahjubaubhX attribute:rr}r(hX attribute:hjubeubj)r}r(hX@task() def send_twitter_status(oauth, tweet, **kwargs): try: twitter = Twitter(oauth) twitter.update_status(tweet) except (Twitter.FailWhaleError, Twitter.LoginError), exc: send_twitter_status.retry(args=[oauth, tweet], kwargs=kwargs, exc=exc)hjhhhjh}r(jjXpythonjjh]h]h]h]h]uhKhhh]rhX@task() def send_twitter_status(oauth, tweet, **kwargs): try: twitter = Twitter(oauth) twitter.update_status(tweet) except (Twitter.FailWhaleError, Twitter.LoginError), exc: send_twitter_status.retry(args=[oauth, tweet], kwargs=kwargs, exc=exc)rr}r(hUhjubaubh)r}r(hXHere we used the ``exc`` argument to pass the current exception to :meth:`~celery.task.base.Task.retry`. At each step of the retry this exception is available as the tombstone (result) of the task. When :attr:`~celery.task.base.Task.max_retries` has been exceeded this is the exception raised. However, if an ``exc`` argument is not provided the :exc:`~celery.exceptions.RetryTaskError` exception is raised instead.hjhhhjh}r(h]h]h]h]h]uhKhhh]r(hXHere we used the rr}r(hXHere we used the hjubj)r}r(hX``exc``h}r(h]h]h]h]h]uhjh]rhXexcrr}r(hUhjubahjubhX+ argument to pass the current exception to rr}r(hX+ argument to pass the current exception to hjubj})r}r(hX$:meth:`~celery.task.base.Task.retry`rhjhhhjh}r(UreftypeXmethjjXcelery.task.base.Task.retryU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-methreh]h]h]uhjh]rhXretry()rr }r (hUhjubahjubaubhXd. At each step of the retry this exception is available as the tombstone (result) of the task. When r r }r (hXd. At each step of the retry this exception is available as the tombstone (result) of the task. When hjubj})r}r(hX*:attr:`~celery.task.base.Task.max_retries`rhjhhhjh}r(UreftypeXattrjjX!celery.task.base.Task.max_retriesU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-attrreh]h]h]uhjh]rhX max_retriesrr}r(hUhjubahjubaubhX@ has been exceeded this is the exception raised. However, if an rr}r(hX@ has been exceeded this is the exception raised. However, if an hjubj)r }r!(hX``exc``h}r"(h]h]h]h]h]uhjh]r#hXexcr$r%}r&(hUhj ubahjubhX argument is not provided the r'r(}r)(hX argument is not provided the hjubj})r*}r+(hX(:exc:`~celery.exceptions.RetryTaskError`r,hjhhhjh}r-(UreftypeXexcjjX celery.exceptions.RetryTaskErrorU refdomainXpyr.h]h]U refexplicith]h]h]jjjNjNuhKh]r/j)r0}r1(hj,h}r2(h]h]r3(jj.Xpy-excr4eh]h]h]uhj*h]r5hXRetryTaskErrorr6r7}r8(hUhj0ubahjubaubhX exception is raised instead.r9r:}r;(hX exception is raised instead.hjubeubh)r<}r=(hX**Important note:** The task has to take the magic keyword arguments in order for max retries to work properly, this is because it keeps track of the current number of retries using the ``task_retries`` keyword argument passed on to the task. In addition, it also uses the ``task_id`` keyword argument to use the same task id, and ``delivery_info`` to route the retried task to the same destination.hjhhhjh}r>(h]h]h]h]h]uhKhhh]r?(jF)r@}rA(hX**Important note:**h}rB(h]h]h]h]h]uhj<h]rChXImportant note:rDrE}rF(hUhj@ubahjNubhX The task has to take the magic keyword arguments in order for max retries to work properly, this is because it keeps track of the current number of retries using the rGrH}rI(hX The task has to take the magic keyword arguments in order for max retries to work properly, this is because it keeps track of the current number of retries using the hj<ubj)rJ}rK(hX``task_retries``h}rL(h]h]h]h]h]uhj<h]rMhX task_retriesrNrO}rP(hUhjJubahjubhXG keyword argument passed on to the task. In addition, it also uses the rQrR}rS(hXG keyword argument passed on to the task. In addition, it also uses the hj<ubj)rT}rU(hX ``task_id``h}rV(h]h]h]h]h]uhj<h]rWhXtask_idrXrY}rZ(hUhjTubahjubhX/ keyword argument to use the same task id, and r[r\}r](hX/ keyword argument to use the same task id, and hj<ubj)r^}r_(hX``delivery_info``h}r`(h]h]h]h]h]uhj<h]rahX delivery_inforbrc}rd(hUhj^ubahjubhX3 to route the retried task to the same destination.rerf}rg(hX3 to route the retried task to the same destination.hj<ubeubh)rh}ri(hX.. _task-retry-custom-delay:hjhhhhh}rj(h]h]h]h]h]hhuhKhhh]ubh)rk}rl(hUhjhhh}rmhMjhshhh}rn(h]h]h]h]ro(hoheh]rp(hhMeuhKhhh}rqhjhsh]rr(h)rs}rt(hjOhjkhhhhh}ru(h]h]h]h]h]hjJuhKhhh]rvhXUsing a custom retry delayrwrx}ry(hjOhjsubaubh)rz}r{(hX(When a task is to be retried, it will wait for a given amount of time before doing so. The default delay is in the :attr:`~celery.task.base.Task.default_retry_delay` attribute on the task. By default this is set to 3 minutes. Note that the unit for setting the delay is in seconds (int or float).hjkhhhjh}r|(h]h]h]h]h]uhKhhh]r}(hXsWhen a task is to be retried, it will wait for a given amount of time before doing so. The default delay is in the r~r}r(hXsWhen a task is to be retried, it will wait for a given amount of time before doing so. The default delay is in the hjzubj})r}r(hX2:attr:`~celery.task.base.Task.default_retry_delay`rhjzhhhjh}r(UreftypeXattrjjX)celery.task.base.Task.default_retry_delayU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-attrreh]h]h]uhjh]rhXdefault_retry_delayrr}r(hUhjubahjubaubhX attribute on the task. By default this is set to 3 minutes. Note that the unit for setting the delay is in seconds (int or float).rr}r(hX attribute on the task. By default this is set to 3 minutes. Note that the unit for setting the delay is in seconds (int or float).hjzubeubh)r}r(hXqYou can also provide the ``countdown`` argument to :meth:`~celery.task.base.Task.retry` to override this default.hjkhhhjh}r(h]h]h]h]h]uhKhhh]r(hXYou can also provide the rr}r(hXYou can also provide the hjubj)r}r(hX ``countdown``h}r(h]h]h]h]h]uhjh]rhX countdownrr}r(hUhjubahjubhX argument to rr}r(hX argument to hjubj})r}r(hX$:meth:`~celery.task.base.Task.retry`rhjhhhjh}r(UreftypeXmethjjXcelery.task.base.Task.retryU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-methreh]h]h]uhjh]rhXretry()rr}r(hUhjubahjubaubhX to override this default.rr}r(hX to override this default.hjubeubj)r}r(hXVclass MyTask(Task): default_retry_delay = 30 * 60 # retry in 30 minutes def run(self, x, y, **kwargs): try: ... except Exception, exc: self.retry([x, y], kwargs, exc=exc, countdown=60) # override the default and # - retry in 1 minutehjkhhhjh}r(jjXpythonjjh]h]h]h]h]uhKhhh]rhXVclass MyTask(Task): default_retry_delay = 30 * 60 # retry in 30 minutes def run(self, x, y, **kwargs): try: ... except Exception, exc: self.retry([x, y], kwargs, exc=exc, countdown=60) # override the default and # - retry in 1 minuterr}r(hUhjubaubh)r}r(hX.. _task-options:hjkhhhhh}r(h]h]h]h]h]hhuhKhhh]ubeubeubh)r}r(hUhhhhh}rh?jshhh}r(h]h]h]h]r(hhheh]r(hh?euhKhhh}rhjsh]r(h)r}r(hjahjhhhhh}r(h]h]h]h]h]hj\uhKhhh]rhX Task optionsrr}r(hjahjubaubh)r}r(hUhjhhhhh}r(h]h]h]h]rhah]rhLauhKhhh]r(h)r}r(hjwhjhhhhh}r(h]h]h]h]h]hjruhKhhh]rhXGeneralrr}r(hjwhjubaubh)r}r(hX.. _task-general-options:hjhhhhh}r(h]h]h]h]rhah]rhOauhKhhh]ubcsphinx.addnodes index r)r}r(hUhjhhhUindexrh}r(h]h]h]h]h]Uentries]r(UsinglerXname (Task attribute)hUtrauhNhhh]ubcsphinx.addnodes desc r)r}r(hUhjhhhUdescrh}r(UnoindexrUdomainrXpyh]h]h]h]h]UobjtyperX attributerUdesctyperjuhNhhh]r(csphinx.addnodes desc_signature r)r}r(hX Task.namehjhhhUdesc_signaturerh}r(h]rhaUmodulerNh]h]h]h]rhaUfullnamerhUclassrXTaskUfirstruhKhhh]r(csphinx.addnodes desc_addname r)r}r(hXTask.hjhhhU desc_addnamerh}r(h]h]h]h]h]uhKhhh]rhXTask.rr}r(hUhjubaubcsphinx.addnodes desc_name r )r }r (hXnamehjhhhU desc_namer h}r (h]h]h]h]h]uhKhhh]rhXnamerr}r(hUhj ubaubeubcsphinx.addnodes desc_content r)r}r(hUhjhhhU desc_contentrh}r(h]h]h]h]h]uhKhhh]r(h)r}r(hX#The name the task is registered as.rhjhhhjh}r(h]h]h]h]h]uhKhhh]rhX#The name the task is registered as.rr}r(hjhjubaubh)r }r!(hXYou can set this name manually, or just use the default which is automatically generated using the module and class name. See :ref:`task-names`.hjhhhjh}r"(h]h]h]h]h]uhKhhh]r#(hXYou can set this name manually, or just use the default which is automatically generated using the module and class name. See r$r%}r&(hXYou can set this name manually, or just use the default which is automatically generated using the module and class name. See hj ubj})r'}r((hX:ref:`task-names`r)hj hhhjh}r*(UreftypeXrefjjX task-namesU refdomainXstdr+h]h]U refexplicith]h]h]jjuhKh]r,cdocutils.nodes emphasis r-)r.}r/(hj)h}r0(h]h]r1(jj+Xstd-refr2eh]h]h]uhj'h]r3hX task-namesr4r5}r6(hUhj.ubahUemphasisr7ubaubhX.r8}r9(hX.hj ubeubeubeubj)r:}r;(hUhjhhhjh}r<(h]h]h]h]h]Uentries]r=(jXabstract (Task attribute)hUtr>auhNhhh]ubj)r?}r@(hUhjhhhjh}rA(jjXpyh]h]h]h]h]jX attributerBjjBuhNhhh]rC(j)rD}rE(hX Task.abstracthj?hhhjh}rF(h]rGhajNh]h]h]h]rHhajhjXTaskjuhKhhh]rI(j)rJ}rK(hXTask.hjDhhhjh}rL(h]h]h]h]h]uhKhhh]rMhXTask.rNrO}rP(hUhjJubaubj )rQ}rR(hXabstracthjDhhhj h}rS(h]h]h]h]h]uhKhhh]rThXabstractrUrV}rW(hUhjQubaubeubj)rX}rY(hUhj?hhhjh}rZ(h]h]h]h]h]uhKhhh]r[h)r\}r](hXWAbstract classes are not registered, but are used as the base class for new task types.r^hjXhhhjh}r_(h]h]h]h]h]uhKhhh]r`hXWAbstract classes are not registered, but are used as the base class for new task types.rarb}rc(hj^hj\ubaubaubeubj)rd}re(hUhjhhhjh}rf(h]h]h]h]h]Uentries]rg(jXmax_retries (Task attribute)hUUtrhauhNhhh]ubj)ri}rj(hUhjhhhjh}rk(jjXpyh]h]h]h]h]jX attributerljjluhNhhh]rm(j)rn}ro(hXTask.max_retrieshjihhhjh}rp(h]rqhUajNh]h]h]h]rrhUajhUjXTaskjuhKhhh]rs(j)rt}ru(hXTask.hjnhhhjh}rv(h]h]h]h]h]uhKhhh]rwhXTask.rxry}rz(hUhjtubaubj )r{}r|(hX max_retrieshjnhhhj h}r}(h]h]h]h]h]uhKhhh]r~hX max_retriesrr}r(hUhj{ubaubeubj)r}r(hUhjihhhjh}r(h]h]h]h]h]uhKhhh]rh)r}r(hXThe maximum number of attempted retries before giving up. If this exceeds the :exc:`~celery.exceptions.MaxRetriesExceeded` an exception will be raised. *NOTE:* You have to :meth:`retry` manually, it's not something that happens automatically.hjhhhjh}r(h]h]h]h]h]uhKhhh]r(hXNThe maximum number of attempted retries before giving up. If this exceeds the rr}r(hXNThe maximum number of attempted retries before giving up. If this exceeds the hjubj})r}r(hX,:exc:`~celery.exceptions.MaxRetriesExceeded`rhjhhhjh}r(UreftypeXexcjjX$celery.exceptions.MaxRetriesExceededU refdomainXpyrh]h]U refexplicith]h]h]jjjXTaskrjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-excreh]h]h]uhjh]rhXMaxRetriesExceededrr}r(hUhjubahjubaubhX an exception will be raised. rr}r(hX an exception will be raised. hjubj-)r}r(hX*NOTE:*h}r(h]h]h]h]h]uhjh]rhXNOTE:rr}r(hUhjubahj7ubhX You have to rr}r(hX You have to hjubj})r}r(hX :meth:`retry`rhjhhhjh}r(UreftypeXmethjjXretryU refdomainXpyrh]h]U refexplicith]h]h]jjjjjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-methreh]h]h]uhjh]rhXretry()rr}r(hUhjubahjubaubhX9 manually, it's not something that happens automatically.rr}r(hX9 manually, it's not something that happens automatically.hjubeubaubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(jX$default_retry_delay (Task attribute)hGUtrauhNhhh]ubj)r}r(hUhjhhhjh}r(jjXpyh]h]h]h]h]jX attributerjjuhNhhh]r(j)r}r(hXTask.default_retry_delayhjhhhjh}r(h]rhGajNh]h]h]h]rhGajhGjXTaskjuhKhhh]r(j)r}r(hXTask.hjhhhjh}r(h]h]h]h]h]uhKhhh]rhXTask.rr}r(hUhjubaubj )r}r(hXdefault_retry_delayhjhhhj h}r(h]h]h]h]h]uhKhhh]rhXdefault_retry_delayrr}r(hUhjubaubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]uhKhhh]rh)r}r(hXDefault time in seconds before a retry of the task should be executed. Can be either :class:`int` or :class:`float`. Default is a 3 minute delay.hjhhhjh}r(h]h]h]h]h]uhKhhh]r(hXVDefault time in seconds before a retry of the task should be executed. Can be either rr}r(hXVDefault time in seconds before a retry of the task should be executed. Can be either hjubj})r}r(hX :class:`int`rhjhhhjh}r(UreftypeXclassjjXintU refdomainXpyrh]h]U refexplicith]h]h]jjjXTaskrjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhXintrr}r(hUhjubahjubaubhX or rr}r(hX or hjubj})r}r(hX:class:`float`rhjhhhjh}r(UreftypeXclassjjXfloatU refdomainXpyrh]h]U refexplicith]h]h]jjjjjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhXfloatrr}r(hUhjubahjubaubhX. Default is a 3 minute delay.rr}r (hX. Default is a 3 minute delay.hjubeubaubeubj)r }r (hUhjhhhjh}r (h]h]h]h]h]Uentries]r (jXrate_limit (Task attribute)h UtrauhNhhh]ubj)r}r(hUhjhhhjh}r(jjXpyh]h]h]h]h]jX attributerjjuhNhhh]r(j)r}r(hXTask.rate_limithjhhhjh}r(h]rh ajNh]h]h]h]rh ajh jXTaskjuhKhhh]r(j)r}r(hXTask.hjhhhjh}r(h]h]h]h]h]uhKhhh]rhXTask.rr}r (hUhjubaubj )r!}r"(hX rate_limithjhhhj h}r#(h]h]h]h]h]uhKhhh]r$hX rate_limitr%r&}r'(hUhj!ubaubeubj)r(}r)(hUhjhhhjh}r*(h]h]h]h]h]uhKhhh]r+(h)r,}r-(hXpSet the rate limit for this task type, i.e. how many times in a given period of time is the task allowed to run.r.hj(hhhjh}r/(h]h]h]h]h]uhKhhh]r0hXpSet the rate limit for this task type, i.e. how many times in a given period of time is the task allowed to run.r1r2}r3(hj.hj,ubaubh)r4}r5(hXrIf this is :const:`None` no rate limit is in effect. If it is an integer, it is interpreted as "tasks per second".hj(hhhjh}r6(h]h]h]h]h]uhKhhh]r7(hX If this is r8r9}r:(hX If this is hj4ubj})r;}r<(hX :const:`None`r=hj4hhhjh}r>(UreftypeXconstjjXNoneU refdomainXpyr?h]h]U refexplicith]h]h]jjjXTaskjNuhKh]r@j)rA}rB(hj=h}rC(h]h]rD(jj?Xpy-constrEeh]h]h]uhj;h]rFhXNonerGrH}rI(hUhjAubahjubaubhXZ no rate limit is in effect. If it is an integer, it is interpreted as "tasks per second".rJrK}rL(hXZ no rate limit is in effect. If it is an integer, it is interpreted as "tasks per second".hj4ubeubh)rM}rN(hX1The rate limits can be specified in seconds, minutes or hours by appending ``"/s"``, ``"/m"`` or ``"/h"`` to the value. Example: ``"100/m"`` (hundred tasks a minute). Default is the :setting:`CELERY_DEFAULT_RATE_LIMIT` setting, which if not specified means rate limiting for tasks is disabled by default.hj(hhhjh}rO(h]h]h]h]h]uhKhhh]rP(hXKThe rate limits can be specified in seconds, minutes or hours by appending rQrR}rS(hXKThe rate limits can be specified in seconds, minutes or hours by appending hjMubj)rT}rU(hX``"/s"``h}rV(h]h]h]h]h]uhjMh]rWhX"/s"rXrY}rZ(hUhjTubahjubhX, r[r\}r](hX, hjMubj)r^}r_(hX``"/m"``h}r`(h]h]h]h]h]uhjMh]rahX"/m"rbrc}rd(hUhj^ubahjubhX or rerf}rg(hX or hjMubj)rh}ri(hX``"/h"``h}rj(h]h]h]h]h]uhjMh]rkhX"/h"rlrm}rn(hUhjhubahjubhX to the value. Example: rorp}rq(hX to the value. Example: hjMubj)rr}rs(hX ``"100/m"``h}rt(h]h]h]h]h]uhjMh]ruhX"100/m"rvrw}rx(hUhjrubahjubhX+ (hundred tasks a minute). Default is the ryrz}r{(hX+ (hundred tasks a minute). Default is the hjMubj})r|}r}(hX$:setting:`CELERY_DEFAULT_RATE_LIMIT`r~hjMhhhjh}r(UreftypeXsettingjjXCELERY_DEFAULT_RATE_LIMITU refdomainXstdrh]h]U refexplicith]h]h]jjuhKh]rj)r}r(hj~h}r(h]h]r(jjX std-settingreh]h]h]uhj|h]rhXCELERY_DEFAULT_RATE_LIMITrr}r(hUhjubahjubaubhXV setting, which if not specified means rate limiting for tasks is disabled by default.rr}r(hXV setting, which if not specified means rate limiting for tasks is disabled by default.hjMubeubeubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(jXignore_result (Task attribute)hUtrauhNhhh]ubj)r}r(hUhjhhhjh}r(jjXpyh]h]h]h]h]jX attributerjjuhNhhh]r(j)r}r(hXTask.ignore_resulthjhhhjh}r(h]rhajNh]h]h]h]rhajhjXTaskjuhKhhh]r(j)r}r(hXTask.hjhhhjh}r(h]h]h]h]h]uhKhhh]rhXTask.rr}r(hUhjubaubj )r}r(hX ignore_resulthjhhhj h}r(h]h]h]h]h]uhKhhh]rhX ignore_resultrr}r(hUhjubaubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]uhKhhh]rh)r}r(hXDon't store task state. Note that this means you can't use :class:`~celery.result.AsyncResult` to check if the task is ready, or get its return value.hjhhhjh}r(h]h]h]h]h]uhKhhh]r(hX>Don't store task state. Note that this means you can't use rr}r(hX>Don't store task state. Note that this means you can't use hjubj})r}r(hX#:class:`~celery.result.AsyncResult`rhjhhhjh}r(UreftypeXclassjjXcelery.result.AsyncResultU refdomainXpyrh]h]U refexplicith]h]h]jjjXTaskjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhX AsyncResultrr}r(hUhjubahjubaubhX8 to check if the task is ready, or get its return value.rr}r(hX8 to check if the task is ready, or get its return value.hjubeubaubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]Uentries]r(jX-store_errors_even_if_ignored (Task attribute)hPUtrauhNhhh]ubj)r}r(hUhjhhhjh}r(jjXpyh]h]h]h]h]jX attributerjjuhNhhh]r(j)r}r(hX!Task.store_errors_even_if_ignoredhjhhhjh}r(h]rhPajNh]h]h]h]rhPajhPjXTaskjuhKhhh]r(j)r}r(hXTask.hjhhhjh}r(h]h]h]h]h]uhKhhh]rhXTask.rr}r(hUhjubaubj )r}r(hXstore_errors_even_if_ignoredhjhhhj h}r(h]h]h]h]h]uhKhhh]rhXstore_errors_even_if_ignoredrr}r(hUhjubaubeubj)r}r(hUhjhhhjh}r(h]h]h]h]h]uhKhhh]rh)r}r(hXYIf :const:`True`, errors will be stored even if the task is configured to ignore results.hjhhhjh}r(h]h]h]h]h]uhKhhh]r(hXIf rr}r(hXIf hjubj})r}r(hX :const:`True`rhjhhhjh}r(UreftypeXconstjjXTrueU refdomainXpyrh]h]U refexplicith]h]h]jjjXTaskjNuhKh]rj)r}r(hjh}r(h]h]r(jjXpy-constreh]h]h]uhjh]rhXTruerr}r (hUhjubahjubaubhXI, errors will be stored even if the task is configured to ignore results.r r }r (hXI, errors will be stored even if the task is configured to ignore results.hjubeubaubeubj)r }r (hUhjhhhjh}r (h]h]h]h]h]Uentries]r (jX"send_error_emails (Task attribute)h:Utr auhNhhh]ubj)r }r (hUhjhhhjh}r (jjXpyh]h]h]h]h]jX attributer jj uhNhhh]r (j)r }r (hXTask.send_error_emailshj hhhjh}r (h]r h:ajNh]h]h]h]r h:ajh:jXTaskjuhKhhh]r (j)r }r (hXTask.hj hhhjh}r (h]h]h]h]h]uhKhhh]r hXTask.r r }r (hUhj ubaubj )r }r (hXsend_error_emailshj hhhj h}r (h]h]h]h]h]uhKhhh]r hXsend_error_emailsr r }r! (hUhj ubaubeubj)r" }r# (hUhj hhhjh}r$ (h]h]h]h]h]uhKhhh]r% h)r& }r' (hXSend an e-mail whenever a task of this type fails. Defaults to the :setting:`CELERY_SEND_TASK_ERROR_EMAILS` setting. See :ref:`conf-error-mails` for more information.hj" hhhjh}r( (h]h]h]h]h]uhKhhh]r) (hXCSend an e-mail whenever a task of this type fails. Defaults to the r* r+ }r, (hXCSend an e-mail whenever a task of this type fails. Defaults to the hj& ubj})r- }r. (hX(:setting:`CELERY_SEND_TASK_ERROR_EMAILS`r/ hj& hhhjh}r0 (UreftypeXsettingjjXCELERY_SEND_TASK_ERROR_EMAILSU refdomainXstdr1 h]h]U refexplicith]h]h]jjuhKh]r2 j)r3 }r4 (hj/ h}r5 (h]h]r6 (jj1 X std-settingr7 eh]h]h]uhj- h]r8 hXCELERY_SEND_TASK_ERROR_EMAILSr9 r: }r; (hUhj3 ubahjubaubhX setting. See r< r= }r> (hX setting. See hj& ubj})r? }r@ (hX:ref:`conf-error-mails`rA hj& hhhjh}rB (UreftypeXrefjjXconf-error-mailsU refdomainXstdrC h]h]U refexplicith]h]h]jjuhKh]rD j-)rE }rF (hjA h}rG (h]h]rH (jjC Xstd-refrI eh]h]h]uhj? h]rJ hXconf-error-mailsrK rL }rM (hUhjE ubahj7ubaubhX for more information.rN rO }rP (hX for more information.hj& ubeubaubeubj)rQ }rR (hUhjhhhjh}rS (h]h]h]h]h]Uentries]rT (jX error_whitelist (Task attribute)hUtrU auhNhhh]ubj)rV }rW (hUhjhhhjh}rX (jjXpyh]h]h]h]h]jX attributerY jjY uhNhhh]rZ (j)r[ }r\ (hXTask.error_whitelisthjV hhhjh}r] (h]r^ hajNh]h]h]h]r_ hajhjXTaskjuhKhhh]r` (j)ra }rb (hXTask.hj[ hhhjh}rc (h]h]h]h]h]uhKhhh]rd hXTask.re rf }rg (hUhja ubaubj )rh }ri (hXerror_whitelisthj[ hhhj h}rj (h]h]h]h]h]uhKhhh]rk hXerror_whitelistrl rm }rn (hUhjh ubaubeubj)ro }rp (hUhjV hhhjh}rq (h]h]h]h]h]uhKhhh]rr h)rs }rt (hXIf the sending of error e-mails is enabled for this task, then this is a white list of exceptions to actually send e-mails about.ru hjo hhhjh}rv (h]h]h]h]h]uhKhhh]rw hXIf the sending of error e-mails is enabled for this task, then this is a white list of exceptions to actually send e-mails about.rx ry }rz (hju hjs ubaubaubeubj)r{ }r| (hUhjhhhjh}r} (h]h]h]h]h]Uentries]r~ (jXserializer (Task attribute)hUtr auhNhhh]ubj)r }r (hUhjhhhjh}r (jjXpyh]h]h]h]h]jX attributer jj uhNhhh]r (j)r }r (hXTask.serializerhj hhhjh}r (h]r hajNh]h]h]h]r hajhjXTaskjuhMhhh]r (j)r }r (hXTask.hj hhhjh}r (h]h]h]h]h]uhMhhh]r hXTask.r r }r (hUhj ubaubj )r }r (hX serializerhj hhhj h}r (h]h]h]h]h]uhMhhh]r hX serializerr r }r (hUhj ubaubeubj)r }r (hUhj hhhjh}r (h]h]h]h]h]uhMhhh]r (h)r }r (hXA string identifying the default serialization method to use. Defaults to the :setting:`CELERY_TASK_SERIALIZER` setting. Can be ``pickle`` ``json``, ``yaml``, or any custom serialization methods that have been registered with :mod:`carrot.serialization.registry`.hj hhhjh}r (h]h]h]h]h]uhMhhh]r (hXNA string identifying the default serialization method to use. Defaults to the r r }r (hXNA string identifying the default serialization method to use. Defaults to the hj ubj})r }r (hX!:setting:`CELERY_TASK_SERIALIZER`r hj hhhjh}r (UreftypeXsettingjjXCELERY_TASK_SERIALIZERU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r j)r }r (hj h}r (h]h]r (jj X std-settingr eh]h]h]uhj h]r hXCELERY_TASK_SERIALIZERr r }r (hUhj ubahjubaubhX setting. Can be r r }r (hX setting. Can be hj ubj)r }r (hX ``pickle``h}r (h]h]h]h]h]uhj h]r hXpickler r }r (hUhj ubahjubhX r }r (hX hj ubj)r }r (hX``json``h}r (h]h]h]h]h]uhj h]r hXjsonr r }r (hUhj ubahjubhX, r r }r (hX, hj ubj)r }r (hX``yaml``h}r (h]h]h]h]h]uhj h]r hXyamlr r }r (hUhj ubahjubhXE, or any custom serialization methods that have been registered with r r }r (hXE, or any custom serialization methods that have been registered with hj ubj})r }r (hX$:mod:`carrot.serialization.registry`r hj hhhjh}r (UreftypeXmodjjXcarrot.serialization.registryU refdomainXpyr h]h]U refexplicith]h]h]jjjXTaskjNuhMh]r j)r }r (hj h}r (h]h]r (jj Xpy-modr eh]h]h]uhj h]r hXcarrot.serialization.registryr r }r (hUhj ubahjubaubhX.r }r (hX.hj ubeubh)r }r (hX=Please see :ref:`executing-serializers` for more information.hj hhhjh}r (h]h]h]h]h]uhMhhh]r (hX Please see r r }r (hX Please see hj ubj})r }r (hX:ref:`executing-serializers`r hj hhhjh}r (UreftypeXrefjjXexecuting-serializersU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r j-)r }r (hj h}r (h]h]r (jj Xstd-refr eh]h]h]uhj h]r hXexecuting-serializersr r }r (hUhj ubahj7ubaubhX for more information.r r }r (hX for more information.hj ubeubeubeubj)r }r (hUhjhhhjh}r (h]h]h]h]h]Uentries]r (jXbackend (Task attribute)h8Utr auhNhhh]ubj)r }r (hUhjhhhjh}r (jjXpyh]h]h]h]h]jX attributer jj uhNhhh]r (j)r }r (hX Task.backendhj hhhjh}r (h]r h8ajNh]h]h]h]r h8ajh8jXTaskjuhM hhh]r (j)r }r (hXTask.hj hhhjh}r (h]h]h]h]h]uhM hhh]r hXTask.r r }r (hUhj ubaubj )r }r (hXbackendhj hhhj h}r (h]h]h]h]h]uhM hhh]r hXbackendr r }r (hUhj ubaubeubj)r }r (hUhj hhhjh}r (h]h]h]h]h]uhM hhh]r h)r }r (hXiThe result store backend to use for this task. Defaults to the :setting:`CELERY_RESULT_BACKEND` setting.hj hhhjh}r! (h]h]h]h]h]uhM hhh]r" (hX@The result store backend to use for this task. Defaults to the r# r$ }r% (hX@The result store backend to use for this task. Defaults to the hj ubj})r& }r' (hX :setting:`CELERY_RESULT_BACKEND`r( hj hhhjh}r) (UreftypeXsettingjjXCELERY_RESULT_BACKENDU refdomainXstdr* h]h]U refexplicith]h]h]jjuhM h]r+ j)r, }r- (hj( h}r. (h]h]r/ (jj* X std-settingr0 eh]h]h]uhj& h]r1 hXCELERY_RESULT_BACKENDr2 r3 }r4 (hUhj, ubahjubaubhX setting.r5 r6 }r7 (hX setting.hj ubeubaubeubj)r8 }r9 (hUhjhhhjh}r: (h]h]h]h]h]Uentries]r; (jXacks_late (Task attribute)h[Utr< auhNhhh]ubj)r= }r> (hUhjhhhjh}r? (jjXpyh]h]h]h]h]jX attributer@ jj@ uhNhhh]rA (j)rB }rC (hXTask.acks_latehj= hhhjh}rD (h]rE h[ajNh]h]h]h]rF h[ajh[jXTaskjuhMhhh]rG (j)rH }rI (hXTask.hjB hhhjh}rJ (h]h]h]h]h]uhMhhh]rK hXTask.rL rM }rN (hUhjH ubaubj )rO }rP (hX acks_latehjB hhhj h}rQ (h]h]h]h]h]uhMhhh]rR hX acks_laterS rT }rU (hUhjO ubaubeubj)rV }rW (hUhj= hhhjh}rX (h]h]h]h]h]uhMhhh]rY (h)rZ }r[ (hXIf set to :const:`True` messages for this task will be acknowledged **after** the task has been executed, not *just before*, which is the default behavior.hjV hhhjh}r\ (h]h]h]h]h]uhMhhh]r] (hX If set to r^ r_ }r` (hX If set to hjZ ubj})ra }rb (hX :const:`True`rc hjZ hhhjh}rd (UreftypeXconstjjXTrueU refdomainXpyre h]h]U refexplicith]h]h]jjjXTaskjNuhMh]rf j)rg }rh (hjc h}ri (h]h]rj (jje Xpy-constrk eh]h]h]uhja h]rl hXTruerm rn }ro (hUhjg ubahjubaubhX- messages for this task will be acknowledged rp rq }rr (hX- messages for this task will be acknowledged hjZ ubjF)rs }rt (hX **after**h}ru (h]h]h]h]h]uhjZ h]rv hXafterrw rx }ry (hUhjs ubahjNubhX! the task has been executed, not rz r{ }r| (hX! the task has been executed, not hjZ ubj-)r} }r~ (hX *just before*h}r (h]h]h]h]h]uhjZ h]r hX just beforer r }r (hUhj} ubahj7ubhX , which is the default behavior.r r }r (hX , which is the default behavior.hjZ ubeubh)r }r (hXNote that this means the task may be executed twice if the worker crashes in the middle of execution, which may be acceptable for some applications.r hjV hhhjh}r (h]h]h]h]h]uhMhhh]r hXNote that this means the task may be executed twice if the worker crashes in the middle of execution, which may be acceptable for some applications.r r }r (hj hj ubaubh)r }r (hXPThe global default can be overridden by the :setting:`CELERY_ACKS_LATE` setting.hjV hhhjh}r (h]h]h]h]h]uhMhhh]r (hX,The global default can be overridden by the r r }r (hX,The global default can be overridden by the hj ubj})r }r (hX:setting:`CELERY_ACKS_LATE`r hj hhhjh}r (UreftypeXsettingjjXCELERY_ACKS_LATEU refdomainXstdr h]h]U refexplicith]h]h]jjuhMh]r j)r }r (hj h}r (h]h]r (jj X std-settingr eh]h]h]uhj h]r hXCELERY_ACKS_LATEr r }r (hUhj ubahjubaubhX setting.r r }r (hX setting.hj ubeubeubeubj)r }r (hUhjhhhjh}r (h]h]h]h]h]Uentries]r (jXtrack_started (Task attribute)h Utr auhNhhh]ubj)r }r (hUhjhhhjh}r (jjXpyh]h]h]h]h]jX attributer jj uhNhhh]r (j)r }r (hXTask.track_startedhj hhhjh}r (h]r h ajNh]h]h]h]r h ajh jXTaskjuhM+hhh]r (j)r }r (hXTask.hj hhhjh}r (h]h]h]h]h]uhM+hhh]r hXTask.r r }r (hUhj ubaubj )r }r (hX track_startedhj hhhj h}r (h]h]h]h]h]uhM+hhh]r hX track_startedr r }r (hUhj ubaubeubj)r }r (hUhj hhhjh}r (h]h]h]h]h]uhM+hhh]r (h)r }r (hXIf :const:`True` the task will report its status as "started" when the task is executed by a worker. The default value is :const:`False` as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" status can be useful for when there are long running tasks and there is a need to report which task is currently running.hj hhhjh}r (h]h]h]h]h]uhMhhh]r (hXIf r r }r (hXIf hj ubj})r }r (hX :const:`True`r hj hhhjh}r (UreftypeXconstjjXTrueU refdomainXpyr h]h]U refexplicith]h]h]jjjXTaskr jNuhMh]r j)r }r (hj h}r (h]h]r (jj Xpy-constr eh]h]h]uhj h]r hXTruer r }r (hUhj ubahjubaubhXj the task will report its status as "started" when the task is executed by a worker. The default value is r r }r (hXj the task will report its status as "started" when the task is executed by a worker. The default value is hj ubj})r }r (hX:const:`False`r hj hhhjh}r (UreftypeXconstjjXFalseU refdomainXpyr h]h]U refexplicith]h]h]jjjj jNuhMh]r j)r }r (hj h}r (h]h]r (jj Xpy-constr eh]h]h]uhj h]r hXFalser r }r (hUhj ubahjubaubhX as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" status can be useful for when there are long running tasks and there is a need to report which task is currently running.r r }r (hX as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" status can be useful for when there are long running tasks and there is a need to report which task is currently running.hj ubeubh)r }r (hXThe host name and process id of the worker executing the task will be available in the state metadata (e.g. `result.info["pid"]`)hj hhhjh}r (h]h]h]h]h]uhM%hhh]r (hXlThe host name and process id of the worker executing the task will be available in the state metadata (e.g. r r }r (hXlThe host name and process id of the worker executing the task will be available in the state metadata (e.g. hj ubj)r }r (hX`result.info["pid"]`h}r (h]h]h]h]h]uhj h]r hXresult.info["pid"]r r }r (hUhj ubahjubhX)r }r (hX)hj ubeubh)r }r (hXTThe global default can be overridden by the :setting:`CELERY_TRACK_STARTED` setting.hj hhhjh}r (h]h]h]h]h]uhM(hhh]r (hX,The global default can be overridden by the r r }r (hX,The global default can be overridden by the hj ubj})r }r (hX:setting:`CELERY_TRACK_STARTED`r hj hhhjh}r (UreftypeXsettingjjXCELERY_TRACK_STARTEDU refdomainXstdr h]h]U refexplicith]h]h]jjuhM(h]r j)r }r (hj h}r (h]h]r (jj X std-settingr eh]h]h]uhj h]r hXCELERY_TRACK_STARTEDr r }r (hUhj ubahjubaubhX setting.r r }r (hX setting.hj ubeubeubeubcsphinx.addnodes seealso r )r }r! (hX6The API reference for :class:`~celery.task.base.Task`.r" hjhhhUseealsor# h}r$ (h]h]h]h]h]uhNhhh]r% h)r& }r' (hj" hj hhhjh}r( (h]h]h]h]h]uhM.h]r) (hXThe API reference for r* r+ }r, (hXThe API reference for hj& ubj})r- }r. (hX:class:`~celery.task.base.Task`r/ hj& hhhjh}r0 (UreftypeXclassjjXcelery.task.base.TaskU refdomainXpyr1 h]h]U refexplicith]h]h]jjjNjNuhM.h]r2 j)r3 }r4 (hj/ h}r5 (h]h]r6 (jj1 Xpy-classr7 eh]h]h]uhj- h]r8 hXTaskr9 r: }r; (hUhj3 ubahjubaubhX.r< }r= (hX.hj& ubeubaubh)r> }r? (hX.. _task-message-options:hjhhhhh}r@ (h]h]h]h]h]hhuhM0hhh]ubeubh)rA }rB (hUhjhhh}rC hXj> shhh}rD (h]h]h]h]rE (hheh]rF (hKhXeuhM3hhh}rG hj> sh]rH (h)rI }rJ (hjhjA hhhhh}rK (h]h]h]h]h]hjuhM3hhh]rL hXMessage and routing optionsrM rN }rO (hjhjI ubaubj)rP }rQ (hUhjA hhhjh}rR (h]h]h]h]h]Uentries]rS (jXqueue (Task attribute)h7UtrT auhNhhh]ubj)rU }rV (hUhjA hhhjh}rW (jjXpyh]h]h]h]h]jX attributerX jjX uhNhhh]rY (j)rZ }r[ (hX Task.queuehjU hhhjh}r\ (h]r] h7ajNh]h]h]h]r^ h7ajh7jXTaskjuhM:hhh]r_ (j)r` }ra (hXTask.hjZ hhhjh}rb (h]h]h]h]h]uhM:hhh]rc hXTask.rd re }rf (hUhj` ubaubj )rg }rh (hXqueuehjZ hhhj h}ri (h]h]h]h]h]uhM:hhh]rj hXqueuerk rl }rm (hUhjg ubaubeubj)rn }ro (hUhjU hhhjh}rp (h]h]h]h]h]uhM:hhh]rq h)rr }rs (hXUse the routing settings from a queue defined in :setting:`CELERY_QUEUES`. If defined the :attr:`exchange` and :attr:`routing_key` options will be ignored.hjn hhhjh}rt (h]h]h]h]h]uhM7hhh]ru (hX1Use the routing settings from a queue defined in rv rw }rx (hX1Use the routing settings from a queue defined in hjr ubj})ry }rz (hX:setting:`CELERY_QUEUES`r{ hjr hhhjh}r| (UreftypeXsettingjjX CELERY_QUEUESU refdomainXstdr} h]h]U refexplicith]h]h]jjuhM7h]r~ j)r }r (hj{ h}r (h]h]r (jj} X std-settingr eh]h]h]uhjy h]r hX CELERY_QUEUESr r }r (hUhj ubahjubaubhX. If defined the r r }r (hX. If defined the hjr ubj})r }r (hX:attr:`exchange`r hjr hhhjh}r (UreftypeXattrjjXexchangeU refdomainXpyr h]h]U refexplicith]h]h]jjjXTaskr jNuhM7h]r j)r }r (hj h}r (h]h]r (jj Xpy-attrr eh]h]h]uhj h]r hXexchanger r }r (hUhj ubahjubaubhX and r r }r (hX and hjr ubj})r }r (hX:attr:`routing_key`r hjr hhhjh}r (UreftypeXattrjjX routing_keyU refdomainXpyr h]h]U refexplicith]h]h]jjjj jNuhM7h]r j)r }r (hj h}r (h]h]r (jj Xpy-attrr eh]h]h]uhj h]r hX routing_keyr r }r (hUhj ubahjubaubhX options will be ignored.r r }r (hX options will be ignored.hjr ubeubaubeubj)r }r (hUhjA hhhjh}r (h]h]h]h]h]Uentries]r (jXexchange (Task attribute)h3Utr auhNhhh]ubj)r }r (hUhjA hhhjh}r (jjXpyh]h]h]h]h]jX attributer jj uhNhhh]r (j)r }r (hX Task.exchangehj hhhjh}r (h]r h3ajNh]h]h]h]r h3ajh3jXTaskjuhM>hhh]r (j)r }r (hXTask.hj hhhjh}r (h]h]h]h]h]uhM>hhh]r hXTask.r r }r (hUhj ubaubj )r }r (hXexchangehj hhhj h}r (h]h]h]h]h]uhM>hhh]r hXexchanger r }r (hUhj ubaubeubj)r }r (hUhj hhhjh}r (h]h]h]h]h]uhM>hhh]r h)r }r (hX7Override the global default ``exchange`` for this task.hj hhhjh}r (h]h]h]h]h]uhM=hhh]r (hXOverride the global default r r }r (hXOverride the global default hj ubj)r }r (hX ``exchange``h}r (h]h]h]h]h]uhj h]r hXexchanger r }r (hUhj ubahjubhX for this task.r r }r (hX for this task.hj ubeubaubeubj)r }r (hUhjA hhhjh}r (h]h]h]h]h]Uentries]r (jXrouting_key (Task attribute)h Utr auhNhhh]ubj)r }r (hUhjA hhhjh}r (jjXpyh]h]h]h]h]jX attributer jj uhNhhh]r (j)r }r (hXTask.routing_keyhj hhhjh}r (h]r h ajNh]h]h]h]r h ajh jXTaskjuhMBhhh]r (j)r }r (hXTask.hj hhhjh}r (h]h]h]h]h]uhMBhhh]r hXTask.r r }r (hUhj ubaubj )r }r (hX routing_keyhj hhhj h}r (h]h]h]h]h]uhMBhhh]r hX routing_keyr r }r (hUhj ubaubeubj)r }r (hUhj hhhjh}r (h]h]h]h]h]uhMBhhh]r h)r }r (hX:Override the global default ``routing_key`` for this task.hj hhhjh}r (h]h]h]h]h]uhMAhhh]r (hXOverride the global default r r }r (hXOverride the global default hj ubj)r }r (hX``routing_key``h}r (h]h]h]h]h]uhj h]r hX routing_keyr r }r (hUhj ubahjubhX for this task.r r }r (hX for this task.hj ubeubaubeubj)r }r (hUhjA hhhjh}r (h]h]h]h]h]Uentries]r (jXmandatory (Task attribute)hBUtr auhNhhh]ubj)r }r (hUhjA hhhjh}r (jjXpyh]h]h]h]h]jX attributer jj uhNhhh]r (j)r }r! (hXTask.mandatoryhj hhhjh}r" (h]r# hBajNh]h]h]h]r$ hBajhBjXTaskjuhMKhhh]r% (j)r& }r' (hXTask.hj hhhjh}r( (h]h]h]h]h]uhMKhhh]r) hXTask.r* r+ }r, (hUhj& ubaubj )r- }r. (hX mandatoryhj hhhj h}r/ (h]h]h]h]h]uhMKhhh]r0 hX mandatoryr1 r2 }r3 (hUhj- ubaubeubj)r4 }r5 (hUhj hhhjh}r6 (h]h]h]h]h]uhMKhhh]r7 (h)r8 }r9 (hXIf set, the task message has mandatory routing. By default the task is silently dropped by the broker if it can't be routed to a queue. However -- If the task is mandatory, an exception will be raised instead.r: hj4 hhhjh}r; (h]h]h]h]h]uhMEhhh]r< hXIf set, the task message has mandatory routing. By default the task is silently dropped by the broker if it can't be routed to a queue. However -- If the task is mandatory, an exception will be raised instead.r= r> }r? (hj: hj8 ubaubh)r@ }rA (hXNot supported by amqplib.rB hj4 hhhjh}rC (h]h]h]h]h]uhMJhhh]rD hXNot supported by amqplib.rE rF }rG (hjB hj@ ubaubeubeubj)rH }rI (hUhjA hhhjh}rJ (h]h]h]h]h]Uentries]rK (jXimmediate (Task attribute)hHUtrL auhNhhh]ubj)rM }rN (hUhjA hhhjh}rO (jjXpyh]h]h]h]h]jX attributerP jjP uhNhhh]rQ (j)rR }rS (hXTask.immediatehjM hhhjh}rT (h]rU hHajNh]h]h]h]rV hHajhHjXTaskjuhMUhhh]rW (j)rX }rY (hXTask.hjR hhhjh}rZ (h]h]h]h]h]uhMUhhh]r[ hXTask.r\ r] }r^ (hUhjX ubaubj )r_ }r` (hX immediatehjR hhhj h}ra (h]h]h]h]h]uhMUhhh]rb hX immediaterc rd }re (hUhj_ ubaubeubj)rf }rg (hUhjM hhhjh}rh (h]h]h]h]h]uhMUhhh]ri (h)rj }rk (hX Request immediate delivery. If the task cannot be routed to a task worker immediately, an exception will be raised. This is instead of the default behavior, where the broker will accept and queue the task, but with no guarantee that the task will ever be executed.rl hjf hhhjh}rm (h]h]h]h]h]uhMNhhh]rn hX Request immediate delivery. If the task cannot be routed to a task worker immediately, an exception will be raised. This is instead of the default behavior, where the broker will accept and queue the task, but with no guarantee that the task will ever be executed.ro rp }rq (hjl hjj ubaubh)rr }rs (hXNot supported by amqplib.rt hjf hhhjh}ru (h]h]h]h]h]uhMThhh]rv hXNot supported by amqplib.rw rx }ry (hjt hjr ubaubeubeubj)rz }r{ (hUhjA hhhjh}r| (h]h]h]h]h]Uentries]r} (jXpriority (Task attribute)hTUtr~ auhNhhh]ubj)r }r (hUhjA hhhjh}r (jjXpyh]h]h]h]h]jX attributer jj uhNhhh]r (j)r }r (hX Task.priorityhj hhhjh}r (h]r hTajNh]h]h]h]r hTajhTjXTaskjuhM\hhh]r (j)r }r (hXTask.hj hhhjh}r (h]h]h]h]h]uhM\hhh]r hXTask.r r }r (hUhj ubaubj )r }r (hXpriorityhj hhhj h}r (h]h]h]h]h]uhM\hhh]r hXpriorityr r }r (hUhj ubaubeubj)r }r (hUhj hhhjh}r (h]h]h]h]h]uhM\hhh]r (h)r }r (hXLThe message priority. A number from 0 to 9, where 0 is the highest priority.r hj hhhjh}r (h]h]h]h]h]uhMXhhh]r hXLThe message priority. A number from 0 to 9, where 0 is the highest priority.r r }r (hj hj ubaubh)r }r (hXNot supported by RabbitMQ.r hj hhhjh}r (h]h]h]h]h]uhM[hhh]r hXNot supported by RabbitMQ.r r }r (hj hj ubaubeubeubj )r }r (hX^:ref:`executing-routing` for more information about message options, and :ref:`guide-routing`.hjA hhhj# h}r (h]h]h]h]h]uhNhhh]r h)r }r (hX^:ref:`executing-routing` for more information about message options, and :ref:`guide-routing`.hj hhhjh}r (h]h]h]h]h]uhM_h]r (j})r }r (hX:ref:`executing-routing`r hj hhhjh}r (UreftypeXrefjjXexecuting-routingU refdomainXstdr h]h]U refexplicith]h]h]jjuhM_h]r j-)r }r (hj h}r (h]h]r (jj Xstd-refr eh]h]h]uhj h]r hXexecuting-routingr r }r (hUhj ubahj7ubaubhX1 for more information about message options, and r r }r (hX1 for more information about message options, and hj ubj})r }r (hX:ref:`guide-routing`r hj hhhjh}r (UreftypeXrefjjX guide-routingU refdomainXstdr h]h]U refexplicith]h]h]jjuhM_h]r j-)r }r (hj h}r (h]h]r (jj Xstd-refr eh]h]h]uhj h]r hX guide-routingr r }r (hUhj ubahj7ubaubhX.r }r (hX.hj ubeubaubh)r }r (hX.. _task-names:hjA hhhhh}r (h]h]h]h]h]hhvuhMbhhh]ubeubeubh)r }r (hUhhhhh}r hj shhh}r (h]h]h]h]r (hvhmeh]r (hheuhMehhh}r hvj sh]r (h)r }r (hjhj hhhhh}r (h]h]h]h]h]hjuhMehhh]r hX Task namesr r }r (hjhj ubaubh)r }r (hX/The task type is identified by the *task name*.r hj hhhjh}r (h]h]h]h]h]uhMghhh]r (hX#The task type is identified by the r r }r (hX#The task type is identified by the hj ubj-)r }r (hX *task name*h}r (h]h]h]h]h]uhj h]r hX task namer r }r (hUhj ubahj7ubhX.r }r (hX.hj ubeubh)r }r (hXWIf not provided a name will be automatically generated using the module and class name.r hj hhhjh}r (h]h]h]h]h]uhMihhh]r hXWIf not provided a name will be automatically generated using the module and class name.r r }r (hj hj ubaubh)r }r (hX For example:r hj hhhjh}r (h]h]h]h]h]uhMlhhh]r hX For example:r r }r (hj hj ubaubj)r }r (hXo>>> @task(name="sum-of-two-numbers") >>> def add(x, y): ... return x + y >>> add.name 'sum-of-two-numbers'hj hhhjh}r (jjXpythonjjh]h]h]h]h]uhMnhhh]r hXo>>> @task(name="sum-of-two-numbers") >>> def add(x, y): ... return x + y >>> add.name 'sum-of-two-numbers'r r }r (hUhj ubaubh)r }r (hXThe best practice is to use the module name as a prefix to classify the tasks using namespaces. This way the name won't collide with the name from another module:r hj hhhjh}r (h]h]h]h]h]uhMwhhh]r hXThe best practice is to use the module name as a prefix to classify the tasks using namespaces. This way the name won't collide with the name from another module:r r }r (hj hj ubaubj)r }r (hX]>>> @task(name="tasks.add") >>> def add(x, y): ... return x + y >>> add.name 'tasks.add'hj hhhjh}r (jjXpythonjjh]h]h]h]h]uhM{hhh]r hX]>>> @task(name="tasks.add") >>> def add(x, y): ... return x + y >>> add.name 'tasks.add'r r }r (hUhj ubaubh)r }r! (hXiWhich is exactly the name that is automatically generated for this task if the module name is "tasks.py":r" hj hhhjh}r# (h]h]h]h]h]uhMhhh]r$ hXiWhich is exactly the name that is automatically generated for this task if the module name is "tasks.py":r% r& }r' (hj" hj ubaubj)r( }r) (hXM>>> @task() >>> def add(x, y): ... return x + y >>> add.name 'tasks.add'hj hhhjh}r* (jjXpythonjjh]h]h]h]h]uhMhhh]r+ hXM>>> @task() >>> def add(x, y): ... return x + y >>> add.name 'tasks.add'r, r- }r. (hUhj( ubaubh)r/ }r0 (hX!.. _task-naming-relative-imports:hj hhhhh}r1 (h]h]h]h]h]hhuhMhhh]ubh)r2 }r3 (hUhj hhh}r4 h\j/ shhh}r5 (h]h]h]h]r6 (hheh]r7 (h*h\euhMhhh}r8 hj/ sh]r9 (h)r: }r; (hjhj2 hhhhh}r< (h]h]h]h]h]hjuhMhhh]r= hX%Automatic naming and relative importsr> r? }r@ (hjhj: ubaubh)rA }rB (hXRelative imports and automatic name generation does not go well together, so if you're using relative imports you should set the name explicitly.rC hj2 hhhjh}rD (h]h]h]h]h]uhMhhh]rE hXRelative imports and automatic name generation does not go well together, so if you're using relative imports you should set the name explicitly.rF rG }rH (hjC hjA ubaubh)rI }rJ (hXFor example if the client imports the module "myapp.tasks" as ".tasks", and the worker imports the module as "myapp.tasks", the generated names won't match and an :exc:`~celery.exceptions.NotRegistered` error will be raised by the worker.hj2 hhhjh}rK (h]h]h]h]h]uhMhhh]rL (hXFor example if the client imports the module "myapp.tasks" as ".tasks", and the worker imports the module as "myapp.tasks", the generated names won't match and an rM rN }rO (hXFor example if the client imports the module "myapp.tasks" as ".tasks", and the worker imports the module as "myapp.tasks", the generated names won't match and an hjI ubj})rP }rQ (hX':exc:`~celery.exceptions.NotRegistered`rR hjI hhhjh}rS (UreftypeXexcjjXcelery.exceptions.NotRegisteredU refdomainXpyrT h]h]U refexplicith]h]h]jjjNjNuhMh]rU j)rV }rW (hjR h}rX (h]h]rY (jjT Xpy-excrZ eh]h]h]uhjP h]r[ hX NotRegisteredr\ r] }r^ (hUhjV ubahjubaubhX$ error will be raised by the worker.r_ r` }ra (hX$ error will be raised by the worker.hjI ubeubh)rb }rc (hXCThis is also the case if using Django and using ``project.myapp``::rd hj2 hhhjh}re (h]h]h]h]h]uhMhhh]rf (hX0This is also the case if using Django and using rg rh }ri (hX0This is also the case if using Django and using hjb ubj)rj }rk (hX``project.myapp``h}rl (h]h]h]h]h]uhjb h]rm hX project.myapprn ro }rp (hUhjj ubahjubhX:rq }rr (hX:hjb ubeubj)rs }rt (hX$INSTALLED_APPS = ("project.myapp", )hj2 hhhjh}ru (jjh]h]h]h]h]uhMhhh]rv hX$INSTALLED_APPS = ("project.myapp", )rw rx }ry (hUhjs ubaubh)rz }r{ (hXThe worker will have the tasks registered as "project.myapp.tasks.*", while this is what happens in the client if the module is imported as "myapp.tasks":r| hj2 hhhjh}r} (h]h]h]h]h]uhMhhh]r~ hXThe worker will have the tasks registered as "project.myapp.tasks.*", while this is what happens in the client if the module is imported as "myapp.tasks":r r }r (hj| hjz ubaubj)r }r (hX>>>> from myapp.tasks import add >>> add.name 'myapp.tasks.add'hj2 hhhjh}r (jjXpythonjjh]h]h]h]h]uhMhhh]r hX>>>> from myapp.tasks import add >>> add.name 'myapp.tasks.add'r r }r (hUhj ubaubh)r }r (hXmFor this reason you should never use "project.app", but rather add the project directory to the Python path::hj2 hhhjh}r (h]h]h]h]h]uhMhhh]r hXlFor this reason you should never use "project.app", but rather add the project directory to the Python path:r r }r (hXlFor this reason you should never use "project.app", but rather add the project directory to the Python path:hj ubaubj)r }r (hXOimport os import sys sys.path.append(os.getcwd()) INSTALLED_APPS = ("myapp", )hj2 hhhjh}r (jjh]h]h]h]h]uhMhhh]r hXOimport os import sys sys.path.append(os.getcwd()) INSTALLED_APPS = ("myapp", )r r }r (hUhj ubaubh)r }r (hX?This makes more sense from the reusable app perspective anyway.r hj2 hhhjh}r (h]h]h]h]h]uhMhhh]r hX?This makes more sense from the reusable app perspective anyway.r r }r (hj hj ubaubh)r }r (hX.. _tasks-decorating:hj2 hhhhh}r (h]h]h]h]h]hhuhMhhh]ubeubeubh)r }r (hUhhhhh}r h@j shhh}r (h]h]h]h]r (hheh]r (hJh@euhMhhh}r hj sh]r (h)r }r (hjhj hhhhh}r (h]h]h]h]h]hjuhMhhh]r hXDecorating tasksr r }r (hjhj ubaubh)r }r (hXXUsing decorators with tasks requires extra steps because of the magic keyword arguments.r hj hhhjh}r (h]h]h]h]h]uhMhhh]r hXXUsing decorators with tasks requires extra steps because of the magic keyword arguments.r r }r (hj hj ubaubh)r }r (hX-If you have the following task and decorator:r hj hhhjh}r (h]h]h]h]h]uhMhhh]r hX-If you have the following task and decorator:r r }r (hj hj ubaubj)r }r (hXfrom celery.utils.functional import wraps def decorator(task): @wraps(task) def _decorated(*args, **kwargs): print("inside decorator") return task(*args, **kwargs) @decorator @task def add(x, y): return x + yhj hhhjh}r (jjXpythonjjh]h]h]h]h]uhMhhh]r hXfrom celery.utils.functional import wraps def decorator(task): @wraps(task) def _decorated(*args, **kwargs): print("inside decorator") return task(*args, **kwargs) @decorator @task def add(x, y): return x + yr r }r (hUhj ubaubh)r }r (hXvThen the worker will see that the task is accepting keyword arguments, while it really doesn't, resulting in an error.r hj hhhjh}r (h]h]h]h]h]uhMhhh]r hXvThen the worker will see that the task is accepting keyword arguments, while it really doesn't, resulting in an error.r r }r (hj hj ubaubh)r }r (hXNThe workaround is to either have your task accept arbitrary keyword arguments:r hj hhhjh}r (h]h]h]h]h]uhMhhh]r hXNThe workaround is to either have your task accept arbitrary keyword arguments:r r }r (hj hj ubaubj)r }r (hX:@decorator @task def add(x, y, **kwargs): return x + yhj hhhjh}r (jjXpythonjjh]h]h]h]h]uhMhhh]r hX:@decorator @task def add(x, y, **kwargs): return x + yr r }r (hUhj ubaubh)r }r (hX:or patch the decorator to preserve the original signature:r hj hhhjh}r (h]h]h]h]h]uhMhhh]r hX:or patch the decorator to preserve the original signature:r r }r (hj hj ubaubj)r }r (hX from inspect import getargspec from celery.utils.functional import wraps def decorator(task): @wraps(task) def _decorated(*args, **kwargs): print("in decorator") return task(*args, **kwargs) _decorated.argspec = inspect.getargspec(task)hj hhhjh}r (jjXpythonjjh]h]h]h]h]uhMhhh]r hX from inspect import getargspec from celery.utils.functional import wraps def decorator(task): @wraps(task) def _decorated(*args, **kwargs): print("in decorator") return task(*args, **kwargs) _decorated.argspec = inspect.getargspec(task)r r }r (hUhj ubaubh)r }r (hXAlso note the use of :func:`~celery.utils.functional.wraps` here, this is necessary to keep the original function name and docstring.hj hhhjh}r (h]h]h]h]h]uhMhhh]r (hXAlso note the use of r r }r (hXAlso note the use of hj ubj})r }r (hX&:func:`~celery.utils.functional.wraps`r hj hhhjh}r (UreftypeXfuncjjXcelery.utils.functional.wrapsU refdomainXpyr h]h]U refexplicith]h]h]jjjNjNuhMh]r j)r }r (hj h}r (h]h]r (jj Xpy-funcr eh]h]h]uhj h]rhXwraps()rr}r(hUhj ubahjubaubhXJ here, this is necessary to keep the original function name and docstring.rr}r(hXJ here, this is necessary to keep the original function name and docstring.hj ubeubcdocutils.nodes note r)r}r (hXThe magic keyword arguments will be deprecated in the future, replaced by the ``task.request`` attribute in 2.2, and the keyword arguments will be removed in 3.0.hj hhhUnoter h}r (h]h]h]h]h]uhNhhh]r h)r }r(hXThe magic keyword arguments will be deprecated in the future, replaced by the ``task.request`` attribute in 2.2, and the keyword arguments will be removed in 3.0.hjhhhjh}r(h]h]h]h]h]uhMh]r(hXNThe magic keyword arguments will be deprecated in the future, replaced by the rr}r(hXNThe magic keyword arguments will be deprecated in the future, replaced by the hj ubj)r}r(hX``task.request``h}r(h]h]h]h]h]uhj h]rhX task.requestrr}r(hUhjubahjubhXD attribute in 2.2, and the keyword arguments will be removed in 3.0.rr}r(hXD attribute in 2.2, and the keyword arguments will be removed in 3.0.hj ubeubaubh)r}r(hX.. _task-states:hj hhhhh}r (h]h]h]h]h]hhuhMhhh]ubeubh)r!}r"(hUhhhhh}r#h0jshhh}r$(h]h]h]h]r%(hheh]r&(h4h0euhMhhh}r'hjsh]r((h)r)}r*(hjhj!hhhhh}r+(h]h]h]h]h]hjuhMhhh]r,hX Task Statesr-r.}r/(hjhj)ubaubh)r0}r1(hXlDuring its lifetime a task will transition through several possible states, and each state may have arbitrary metadata attached to it. When a task moves into a new state the previous state is forgotten about, but some transitions can be deducted, (e.g. a task now in the :state:`FAILED` state, is implied to have been in the :state:`STARTED` state at some point).hj!hhhjh}r2(h]h]h]h]h]uhMhhh]r3(hXDuring its lifetime a task will transition through several possible states, and each state may have arbitrary metadata attached to it. When a task moves into a new state the previous state is forgotten about, but some transitions can be deducted, (e.g. a task now in the r4r5}r6(hXDuring its lifetime a task will transition through several possible states, and each state may have arbitrary metadata attached to it. When a task moves into a new state the previous state is forgotten about, but some transitions can be deducted, (e.g. a task now in the hj0ubj})r7}r8(hX:state:`FAILED`r9hj0hhhjh}r:(UreftypeXstatejjXFAILEDU refdomainXstdr;h]h]U refexplicith]h]h]jjuhMh]r<j)r=}r>(hj9h}r?(h]h]r@(jj;X std-staterAeh]h]h]uhj7h]rBhXFAILEDrCrD}rE(hUhj=ubahjubaubhX' state, is implied to have been in the rFrG}rH(hX' state, is implied to have been in the hj0ubj})rI}rJ(hX:state:`STARTED`rKhj0hhhjh}rL(UreftypeXstatejjXSTARTEDU refdomainXstdrMh]h]U refexplicith]h]h]jjuhMh]rNj)rO}rP(hjKh}rQ(h]h]rR(jjMX std-staterSeh]h]h]uhjIh]rThXSTARTEDrUrV}rW(hUhjOubahjubaubhX state at some point).rXrY}rZ(hX state at some point).hj0ubeubh)r[}r\(hXThere are also sets of states, like the set of :state:`failure states `, and the set of :state:`ready states `.hj!hhhjh}r](h]h]h]h]h]uhMhhh]r^(hX/There are also sets of states, like the set of r_r`}ra(hX/There are also sets of states, like the set of hj[ubj})rb}rc(hX(:state:`failure states `rdhj[hhhjh}re(UreftypeXstatejjXFAILURE_STATESU refdomainXstdrfh]h]U refexplicith]h]h]jjuhMh]rgj)rh}ri(hjdh}rj(h]h]rk(jjfX std-staterleh]h]h]uhjbh]rmhXfailure statesrnro}rp(hUhjhubahjubaubhX, and the set of rqrr}rs(hX, and the set of hj[ubj})rt}ru(hX$:state:`ready states `rvhj[hhhjh}rw(UreftypeXstatejjX READY_STATESU refdomainXstdrxh]h]U refexplicith]h]h]jjuhMh]ryj)rz}r{(hjvh}r|(h]h]r}(jjxX std-stater~eh]h]h]uhjth]rhX ready statesrr}r(hUhjzubahjubaubhX.r}r(hX.hj[ubeubh)r}r(hXThe client uses the membership of these sets to decide whether the exception should be re-raised (:state:`PROPAGATE_STATES`), or whether the result can be cached (it can if the task is ready).hj!hhhjh}r(h]h]h]h]h]uhMhhh]r(hXbThe client uses the membership of these sets to decide whether the exception should be re-raised (rr}r(hXbThe client uses the membership of these sets to decide whether the exception should be re-raised (hjubj})r}r(hX:state:`PROPAGATE_STATES`rhjhhhjh}r(UreftypeXstatejjXPROPAGATE_STATESU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj)r}r(hjh}r(h]h]r(jjX std-statereh]h]h]uhjh]rhXPROPAGATE_STATESrr}r(hUhjubahjubaubhXE), or whether the result can be cached (it can if the task is ready).rr}r(hXE), or whether the result can be cached (it can if the task is ready).hjubeubh)r}r(hX)You can also define :ref:`custom-states`.rhj!hhhjh}r(h]h]h]h]h]uhM hhh]r(hXYou can also define rr}r(hXYou can also define hjubj})r}r(hX:ref:`custom-states`rhjhhhjh}r(UreftypeXrefjjX custom-statesU refdomainXstdrh]h]U refexplicith]h]h]jjuhM h]rj-)r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhX custom-statesrr}r(hUhjubahj7ubaubhX.r}r(hX.hjubeubh)r}r(hX.. _task-builtin-states:hj!hhhhh}r(h]h]h]h]h]hhquhM hhh]ubh)r}r(hUhj!hhh}rhjshhh}r(h]h]h]h]r(hhqeh]r(h(h]h]h]h]r?(huj7eh]r@hauhM'hhh}rAj7j9sh]rB(h)rC}rD(hj%hj<hhhhh}rE(h]h]h]h]h]hj uhM'hhh]rFhXSUCCESSrGrH}rI(hj%hjCubaubh)rJ}rK(hX$Task has been successfully executed.rLhj<hhhjh}rM(h]h]h]h]h]uhM)hhh]rNhX$Task has been successfully executed.rOrP}rQ(hjLhjJubaubj.)rR}rS(hUhj<hhhj1h}rT(h]h]h]h]h]uhM+hhh]rU(j4)rV}rW(hUhjRhhhj7h}rX(h]h]h]h]h]uhM+hhh]rY(j:)rZ}r[(hXmetadatar\h}r](h]h]h]h]h]uhjVh]r^hXmetadatar_r`}ra(hj\hjZubahjCubjD)rb}rc(hX1``result`` contains the return value of the task.rdh}re(h]h]h]h]h]uhjVh]rfh)rg}rh(hjdhjbhhhjh}ri(h]h]h]h]h]uhM+h]rj(j)rk}rl(hX ``result``h}rm(h]h]h]h]h]uhjgh]rnhXresultrorp}rq(hUhjkubahjubhX' contains the return value of the task.rrrs}rt(hX' contains the return value of the task.hjgubeubahjQubeubj4)ru}rv(hUhjRhhhj7h}rw(h]h]h]h]h]uhM,hhh]rx(j:)ry}rz(hX propagatesr{h}r|(h]h]h]h]h]uhjuh]r}hX propagatesr~r}r(hj{hjyubahjCubjD)r}r(hXYesrh}r(h]h]h]h]h]uhjuh]rh)r}r(hjhjhhhjh}r(h]h]h]h]h]uhM,h]rhXYesrr}r(hjhjubaubahjQubeubj4)r}r(hUhjRhhhj7h}r(h]h]h]h]h]uhM-hhh]r(j:)r}r(hXreadyrh}r(h]h]h]h]h]uhjh]rhXreadyrr}r(hjhjubahjCubjD)r}r(hXYes h}r(h]h]h]h]h]uhjh]rh)r}r(hXYesrhjhhhjh}r(h]h]h]h]h]uhM-h]rhXYesrr}r(hjhjubaubahjQubeubeubj)r}r(hUhj<hhhjh}r(h]h]h]h]h]Uentries]r(XpairXFAILURE; stateXstd:state-FAILURErUtrauhM0hhh]ubh)r}r(hUhj<hhhhh}r(h]h]h]h]h]hjuhM0hhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(hjeh]rhDauhM2hhh}rjjsh]r(h)r}r(hj7hjhhhhh}r(h]h]h]h]h]hj2uhM2hhh]rhXFAILURErr}r(hj7hjubaubh)r}r(hX#Task execution resulted in failure.rhjhhhjh}r(h]h]h]h]h]uhM4hhh]rhX#Task execution resulted in failure.rr}r(hjhjubaubj.)r}r(hUhjhhhj1h}r(h]h]h]h]h]uhM6hhh]r(j4)r}r(hUhjhhhj7h}r(h]h]h]h]h]uhM6hhh]r(j:)r}r(hXmetadatarh}r(h]h]h]h]h]uhjh]rhXmetadatarr}r(hjhjubahjCubjD)r}r(hX`result` contains the exception occurred, and `traceback` contains the backtrace of the stack at the point when the exception was raised.h}r(h]h]h]h]h]uhjh]rh)r}r(hX`result` contains the exception occurred, and `traceback` contains the backtrace of the stack at the point when the exception was raised.hjhhhjh}r(h]h]h]h]h]uhM6h]r(j)r}r(hX`result`h}r(h]h]h]h]h]uhjh]rhXresultrr}r(hUhjubahjubhX& contains the exception occurred, and rr}r(hX& contains the exception occurred, and hjubj)r}r(hX `traceback`h}r(h]h]h]h]h]uhjh]rhX tracebackrr}r(hUhjubahjubhXP contains the backtrace of the stack at the point when the exception was raised.rr}r(hXP contains the backtrace of the stack at the point when the exception was raised.hjubeubahjQubeubj4)r}r(hUhjhhhj7h}r(h]h]h]h]h]uhM9hhh]r(j:)r}r(hX propagatesrh}r(h]h]h]h]h]uhjh]rhX propagatesrr}r(hjhjubahjCubjD)r}r(hXYes h}r(h]h]h]h]h]uhjh]rh)r}r(hXYesrhjhhhjh}r(h]h]h]h]h]uhM9h]rhXYesrr}r(hjhjubaubahjQubeubeubj)r}r (hUhjhhhjh}r (h]h]h]h]h]Uentries]r (XpairX RETRY; stateXstd:state-RETRYr Utr auhM<hhh]ubh)r}r(hUhjhhhhh}r(h]h]h]h]h]hj uhM<hhh]ubeubh)r}r(hUhjhhh}hhh}r(h]h]h]h]r(h~j eh]rh%auhM>hhh}rj jsh]r(h)r}r(hjIhjhhhhh}r(h]h]h]h]h]hjDuhM>hhh]rhXRETRYrr}r(hjIhjubaubh)r}r (hXTask is being retried.r!hjhhhjh}r"(h]h]h]h]h]uhM@hhh]r#hXTask is being retried.r$r%}r&(hj!hjubaubj.)r'}r((hUhjhhhj1h}r)(h]h]h]h]h]uhMBhhh]r*(j4)r+}r,(hUhj'hhhj7h}r-(h]h]h]h]h]uhMBhhh]r.(j:)r/}r0(hXmetadatar1h}r2(h]h]h]h]h]uhj+h]r3hXmetadatar4r5}r6(hj1hj/ubahjCubjD)r7}r8(hX``result`` contains the exception that caused the retry, and ``traceback`` contains the backtrace of the stack at the point when the exceptions was raised.h}r9(h]h]h]h]h]uhj+h]r:h)r;}r<(hX``result`` contains the exception that caused the retry, and ``traceback`` contains the backtrace of the stack at the point when the exceptions was raised.hj7hhhjh}r=(h]h]h]h]h]uhMBh]r>(j)r?}r@(hX ``result``h}rA(h]h]h]h]h]uhj;h]rBhXresultrCrD}rE(hUhj?ubahjubhX3 contains the exception that caused the retry, and rFrG}rH(hX3 contains the exception that caused the retry, and hj;ubj)rI}rJ(hX ``traceback``h}rK(h]h]h]h]h]uhj;h]rLhX tracebackrMrN}rO(hUhjIubahjubhXQ contains the backtrace of the stack at the point when the exceptions was raised.rPrQ}rR(hXQ contains the backtrace of the stack at the point when the exceptions was raised.hj;ubeubahjQubeubj4)rS}rT(hUhj'hhhj7h}rU(h]h]h]h]h]uhMEhhh]rV(j:)rW}rX(hX propagatesrYh}rZ(h]h]h]h]h]uhjSh]r[hX propagatesr\r]}r^(hjYhjWubahjCubjD)r_}r`(hXNo h}ra(h]h]h]h]h]uhjSh]rbh)rc}rd(hXNorehj_hhhjh}rf(h]h]h]h]h]uhMEh]rghXNorhri}rj(hjehjcubaubahjQubeubeubj)rk}rl(hUhjhhhjh}rm(h]h]h]h]h]Uentries]rn(XpairXREVOKED; stateXstd:state-REVOKEDroUtrpauhMHhhh]ubh)rq}rr(hUhjhhhhh}rs(h]h]h]h]h]hjouhMHhhh]ubeubh)rt}ru(hUhjhhh}hhh}rv(h]h]h]h]rw(hjoeh]rxh2auhMJhhh}ryjojqsh]rz(h)r{}r|(hj[hjthhhhh}r}(h]h]h]h]h]hjVuhMJhhh]r~hXREVOKEDrr}r(hj[hj{ubaubh)r}r(hXTask has been revoked.rhjthhhjh}r(h]h]h]h]h]uhMLhhh]rhXTask has been revoked.rr}r(hjhjubaubj.)r}r(hUhjthhhj1h}r(h]h]h]h]h]uhMNhhh]rj4)r}r(hUhjhhhj7h}r(h]h]h]h]h]uhMNhhh]r(j:)r}r(hX propagatesrh}r(h]h]h]h]h]uhjh]rhX propagatesrr}r(hjhjubahjCubjD)r}r(hXYes h}r(h]h]h]h]h]uhjh]rh)r}r(hXYesrhjhhhjh}r(h]h]h]h]h]uhMNh]rhXYesrr}r(hjhjubaubahjQubeubaubeubeubh)r}r(hUhj!hhhhh}r(h]h]h]h]rhkah]rh auhMQhhh]r(h)r}r(hjmhjhhhhh}r(h]h]h]h]h]hjhuhMQhhh]rhX Custom statesrr}r(hjmhjubaubh)r}r(hX You can easily define your own states, all you need is a unique name. The name of the state is usually an uppercase string. As an example you could have a look at :mod:`abortable tasks <~celery.contrib.abortable>` which defines its own custom :state:`ABORTED` state.hjhhhjh}r(h]h]h]h]h]uhMShhh]r(hXYou can easily define your own states, all you need is a unique name. The name of the state is usually an uppercase string. As an example you could have a look at rr}r(hXYou can easily define your own states, all you need is a unique name. The name of the state is usually an uppercase string. As an example you could have a look at hjubj})r}r(hX2:mod:`abortable tasks <~celery.contrib.abortable>`rhjhhhjh}r(UreftypeXmodjjX~celery.contrib.abortableU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMSh]rj)r}r(hjh}r(h]h]r(jjXpy-modreh]h]h]uhjh]rhXabortable tasksrr}r(hUhjubahjubaubhX which defines its own custom rr}r(hX which defines its own custom hjubj})r}r(hX:state:`ABORTED`rhjhhhjh}r(UreftypeXstatejjXABORTEDU refdomainXstdrh]h]U refexplicith]h]h]jjuhMSh]rj)r}r(hjh}r(h]h]r(jjX std-statereh]h]h]uhjh]rhXABORTEDrr}r(hUhjubahjubaubhX state.rr}r(hX state.hjubeubh)r}r(hX\Use :meth:`Task.update_state ` to update a tasks state::hjhhhjh}r(h]h]h]h]h]uhMXhhh]r(hXUse rr}r(hXUse hjubj})r}r(hX>:meth:`Task.update_state `rhjhhhjh}r(UreftypeXmethjjX"celery.task.base.Task.update_stateU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMXh]rj)r}r(hjh}r(h]h]r(jjXpy-methreh]h]h]uhjh]rhXTask.update_staterr}r(hUhjubahjubaubhX to update a tasks state:rr}r(hX to update a tasks state:hjubeubj)r}r(hX@task def upload_files(filenames, **kwargs): for i, file in enumerate(filenames): upload_files.update_state(kwargs["task_id"], "PROGRESS", {"current": i, "total": len(filenames)})hjhhhjh}r(jjh]h]h]h]h]uhM[hhh]rhX@task def upload_files(filenames, **kwargs): for i, file in enumerate(filenames): upload_files.update_state(kwargs["task_id"], "PROGRESS", {"current": i, "total": len(filenames)})rr}r(hUhjubaubh)r}r(hX$Here we created the state ``"PROGRESS"``, which tells any application aware of this state that the task is currently in progress, and also where it is in the process by having ``current`` and ``total`` counts as part of the state metadata. This can then be used to create e.g. progress bars.hjhhhjh}r(h]h]h]h]h]uhMchhh]r(hXHere we created the state rr}r(hXHere we created the state hjubj)r}r(hX``"PROGRESS"``h}r(h]h]h]h]h]uhjh]rhX "PROGRESS"r r }r (hUhjubahjubhX, which tells any application aware of this state that the task is currently in progress, and also where it is in the process by having r r }r(hX, which tells any application aware of this state that the task is currently in progress, and also where it is in the process by having hjubj)r}r(hX ``current``h}r(h]h]h]h]h]uhjh]rhXcurrentrr}r(hUhjubahjubhX and rr}r(hX and hjubj)r}r(hX ``total``h}r(h]h]h]h]h]uhjh]rhXtotalrr}r(hUhjubahjubhX[ counts as part of the state metadata. This can then be used to create e.g. progress bars.r r!}r"(hX[ counts as part of the state metadata. This can then be used to create e.g. progress bars.hjubeubh)r#}r$(hX.. _task-how-they-work:hjhhhhh}r%(h]h]h]h]h]hhuhMhhhh]ubeubeubh)r&}r'(hUhhhhh}r(hVj#shhh}r)(h]h]h]h]r*(hheh]r+(h,hVeuhMkhhh}r,hj#sh]r-(h)r.}r/(hjhj&hhhhh}r0(h]h]h]h]h]hjzuhMkhhh]r1hX How it worksr2r3}r4(hjhj.ubaubh)r5}r6(hXhHere comes the technical details, this part isn't something you need to know, but you may be interested.r7hj&hhhjh}r8(h]h]h]h]h]uhMmhhh]r9hXhHere comes the technical details, this part isn't something you need to know, but you may be interested.r:r;}r<(hj7hj5ubaubh)r=}r>(hXAll defined tasks are listed in a registry. The registry contains a list of task names and their task classes. You can investigate this registry yourself:r?hj&hhhjh}r@(h]h]h]h]h]uhMphhh]rAhXAll defined tasks are listed in a registry. The registry contains a list of task names and their task classes. You can investigate this registry yourself:rBrC}rD(hj?hj=ubaubj)rE}rF(hX>>> from celery import registry >>> from celery import task >>> registry.tasks {'celery.delete_expired_task_meta': , 'celery.task.http.HttpDispatchTask': , 'celery.execute_remote': , 'celery.map_async': , 'celery.ping': }hj&hhhjh}rG(jjXpythonjjh]h]h]h]h]uhMthhh]rHhX>>> from celery import registry >>> from celery import task >>> registry.tasks {'celery.delete_expired_task_meta': , 'celery.task.http.HttpDispatchTask': , 'celery.execute_remote': , 'celery.map_async': , 'celery.ping': }rIrJ}rK(hUhjEubaubh)rL}rM(hXThis is the list of tasks built-in to celery. Note that we had to import ``celery.task`` first for these to show up. This is because the tasks will only be registered when the module they are defined in is imported.hj&hhhjh}rN(h]h]h]h]h]uhMhhh]rO(hXJThis is the list of tasks built-in to celery. Note that we had to import rPrQ}rR(hXJThis is the list of tasks built-in to celery. Note that we had to import hjLubj)rS}rT(hX``celery.task``h}rU(h]h]h]h]h]uhjLh]rVhX celery.taskrWrX}rY(hUhjSubahjubhX first for these to show up. This is because the tasks will only be registered when the module they are defined in is imported.rZr[}r\(hX first for these to show up. This is because the tasks will only be registered when the module they are defined in is imported.hjLubeubh)r]}r^(hXWThe default loader imports any modules listed in the :setting:`CELERY_IMPORTS` setting.hj&hhhjh}r_(h]h]h]h]h]uhMhhh]r`(hX5The default loader imports any modules listed in the rarb}rc(hX5The default loader imports any modules listed in the hj]ubj})rd}re(hX:setting:`CELERY_IMPORTS`rfhj]hhhjh}rg(UreftypeXsettingjjXCELERY_IMPORTSU refdomainXstdrhh]h]U refexplicith]h]h]jjuhMh]rij)rj}rk(hjfh}rl(h]h]rm(jjhX std-settingrneh]h]h]uhjdh]rohXCELERY_IMPORTSrprq}rr(hUhjjubahjubaubhX setting.rsrt}ru(hX setting.hj]ubeubh)rv}rw(hXThe entity responsible for registering your task in the registry is a meta class, :class:`~celery.task.base.TaskType`. This is the default meta class for :class:`~celery.task.base.Task`.hj&hhhjh}rx(h]h]h]h]h]uhMhhh]ry(hXRThe entity responsible for registering your task in the registry is a meta class, rzr{}r|(hXRThe entity responsible for registering your task in the registry is a meta class, hjvubj})r}}r~(hX#:class:`~celery.task.base.TaskType`rhjvhhhjh}r(UreftypeXclassjjXcelery.task.base.TaskTypeU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhj}h]rhXTaskTyperr}r(hUhjubahjubaubhX&. This is the default meta class for rr}r(hX&. This is the default meta class for hjvubj})r}r(hX:class:`~celery.task.base.Task`rhjvhhhjh}r(UreftypeXclassjjXcelery.task.base.TaskU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhXTaskrr}r(hUhjubahjubaubhX.r}r(hX.hjvubeubh)r}r(hXpIf you want to register your task manually you can set mark the task as :attr:`~celery.task.base.Task.abstract`:hj&hhhjh}r(h]h]h]h]h]uhMhhh]r(hXHIf you want to register your task manually you can set mark the task as rr}r(hXHIf you want to register your task manually you can set mark the task as hjubj})r}r(hX':attr:`~celery.task.base.Task.abstract`rhjhhhjh}r(UreftypeXattrjjXcelery.task.base.Task.abstractU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-attrreh]h]h]uhjh]rhXabstractrr}r(hUhjubahjubaubhX:r}r(hX:hjubeubj)r}r(hX'class MyTask(Task): abstract = Truehj&hhhjh}r(jjXpythonjjh]h]h]h]h]uhMhhh]rhX'class MyTask(Task): abstract = Truerr}r(hUhjubaubh)r}r(hXOThis way the task won't be registered, but any task inheriting from it will be.rhj&hhhjh}r(h]h]h]h]h]uhMhhh]rhXOThis way the task won't be registered, but any task inheriting from it will be.rr}r(hjhjubaubh)r}r(hXWhen tasks are sent, we don't send any actual function code, just the name of the task to execute. When the worker then receives the message it can look up the name in its task registry to find the execution code.rhj&hhhjh}r(h]h]h]h]h]uhMhhh]rhXWhen tasks are sent, we don't send any actual function code, just the name of the task to execute. When the worker then receives the message it can look up the name in its task registry to find the execution code.rr}r(hjhjubaubh)r}r(hXThis means that your workers should always be updated with the same software as the client. This is a drawback, but the alternative is a technical challenge that has yet to be solved.rhj&hhhjh}r(h]h]h]h]h]uhMhhh]rhXThis means that your workers should always be updated with the same software as the client. This is a drawback, but the alternative is a technical challenge that has yet to be solved.rr}r(hjhjubaubh)r}r(hX.. _task-best-practices:hj&hhhhh}r(h]h]h]h]h]hhuhMhhh]ubeubh)r}r(hUhhhhh}rh.jshhh}r(h]h]h]h]r(hheh]r(hNh.euhMhhh}rhjsh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhMhhh]rhXTips and Best Practicesrr}r(hjhjubaubh)r}r(hX.. _task-ignore_results:hjhhhhh}r(h]h]h]h]h]hhuhMhhh]ubh)r}r(hUhjhhh}rh)jshhh}r(h]h]h]h]r(hheh]r(h=h)euhMhhh}rhjsh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhMhhh]rhXIgnore results you don't wantrr}r(hjhjubaubh)r}r(hXIf you don't care about the results of a task, be sure to set the :attr:`~celery.task.base.Task.ignore_result` option, as storing results wastes time and resources.hjhhhjh}r(h]h]h]h]h]uhMhhh]r(hXBIf you don't care about the results of a task, be sure to set the rr}r(hXBIf you don't care about the results of a task, be sure to set the hjubj})r}r(hX,:attr:`~celery.task.base.Task.ignore_result`rhjhhhjh}r(UreftypeXattrjjX#celery.task.base.Task.ignore_resultU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rj)r}r (hjh}r (h]h]r (jjXpy-attrr eh]h]h]uhjh]r hX ignore_resultrr}r(hUhjubahjubaubhX6 option, as storing results wastes time and resources.rr}r(hX6 option, as storing results wastes time and resources.hjubeubj)r}r(hX9@task(ignore_result=True) def mytask(...) something()hjhhhjh}r(jjXpythonjjh]h]h]h]h]uhMhhh]rhX9@task(ignore_result=True) def mytask(...) something()rr}r(hUhjubaubh)r}r(hXXResults can even be disabled globally using the :setting:`CELERY_IGNORE_RESULT` setting.hjhhhjh}r(h]h]h]h]h]uhMhhh]r(hX0Results can even be disabled globally using the rr }r!(hX0Results can even be disabled globally using the hjubj})r"}r#(hX:setting:`CELERY_IGNORE_RESULT`r$hjhhhjh}r%(UreftypeXsettingjjXCELERY_IGNORE_RESULTU refdomainXstdr&h]h]U refexplicith]h]h]jjuhMh]r'j)r(}r)(hj$h}r*(h]h]r+(jj&X std-settingr,eh]h]h]uhj"h]r-hXCELERY_IGNORE_RESULTr.r/}r0(hUhj(ubahjubaubhX setting.r1r2}r3(hX setting.hjubeubh)r4}r5(hX.. _task-disable-rate-limits:hjhhhhh}r6(h]h]h]h]h]hhuhMhhh]ubeubh)r7}r8(hUhjhhh}r9h6j4shhh}r:(h]h]h]h]r;(hheh]r<(hQh6euhMhhh}r=hj4sh]r>(h)r?}r@(hjhj7hhhhh}rA(h]h]h]h]h]hjuhMhhh]rBhX'Disable rate limits if they're not usedrCrD}rE(hjhj?ubaubh)rF}rG(hXDisabling rate limits altogether is recommended if you don't have any tasks using them. This is because the rate limit subsystem introduces quite a lot of complexity.rHhj7hhhjh}rI(h]h]h]h]h]uhMhhh]rJhXDisabling rate limits altogether is recommended if you don't have any tasks using them. This is because the rate limit subsystem introduces quite a lot of complexity.rKrL}rM(hjHhjFubaubh)rN}rO(hXVSet the :setting:`CELERY_DISABLE_RATE_LIMITS` setting to globally disable rate limits:hj7hhhjh}rP(h]h]h]h]h]uhMhhh]rQ(hXSet the rRrS}rT(hXSet the hjNubj})rU}rV(hX%:setting:`CELERY_DISABLE_RATE_LIMITS`rWhjNhhhjh}rX(UreftypeXsettingjjXCELERY_DISABLE_RATE_LIMITSU refdomainXstdrYh]h]U refexplicith]h]h]jjuhMh]rZj)r[}r\(hjWh}r](h]h]r^(jjYX std-settingr_eh]h]h]uhjUh]r`hXCELERY_DISABLE_RATE_LIMITSrarb}rc(hUhj[ubahjubaubhX) setting to globally disable rate limits:rdre}rf(hX) setting to globally disable rate limits:hjNubeubj)rg}rh(hX!CELERY_DISABLE_RATE_LIMITS = Truehj7hhhjh}ri(jjXpythonjjh]h]h]h]h]uhMhhh]rjhX!CELERY_DISABLE_RATE_LIMITS = Truerkrl}rm(hUhjgubaubh)rn}ro(hX.. _task-synchronous-subtasks:hj7hhhhh}rp(h]h]h]h]h]hh{uhMhhh]ubeubh)rq}rr(hUhjhhh}rsh"jnshhh}rt(h]h]h]h]ru(hth{eh]rv(hh"euhMhhh}rwh{jnsh]rx(h)ry}rz(hjhjqhhhhh}r{(h]h]h]h]h]hjuhMhhh]r|hX$Avoid launching synchronous subtasksr}r~}r(hjhjyubaubh)r}r(hXHaving a task wait for the result of another task is really inefficient, and may even cause a deadlock if the worker pool is exhausted.rhjqhhhjh}r(h]h]h]h]h]uhMhhh]rhXHaving a task wait for the result of another task is really inefficient, and may even cause a deadlock if the worker pool is exhausted.rr}r(hjhjubaubh)r}r(hXHMake your design asynchronous instead, for example by using *callbacks*.rhjqhhhjh}r(h]h]h]h]h]uhMhhh]r(hX<Make your design asynchronous instead, for example by using rr}r(hX<Make your design asynchronous instead, for example by using hjubj-)r}r(hX *callbacks*h}r(h]h]h]h]h]uhjh]rhX callbacksrr}r(hUhjubahj7ubhX.r}r(hX.hjubeubh)r}r(hX**Bad**:rhjqhhhjh}r(h]h]h]h]h]uhMhhh]r(jF)r}r(hX**Bad**h}r(h]h]h]h]h]uhjh]rhXBadrr}r(hUhjubahjNubhX:r}r(hX:hjubeubj)r}r(hX{@task() def update_page_info(url): page = fetch_page.delay(url).get() info = parse_page.delay(url, page).get() store_page_info.delay(url, info) @task() def fetch_page(url): return myhttplib.get(url) @task() def parse_page(url, page): return myparser.parse_document(page) @task() def store_page_info(url, info): return PageInfo.objects.create(url, info)hjqhhhjh}r(jjXpythonjjh]h]h]h]h]uhMhhh]rhX{@task() def update_page_info(url): page = fetch_page.delay(url).get() info = parse_page.delay(url, page).get() store_page_info.delay(url, info) @task() def fetch_page(url): return myhttplib.get(url) @task() def parse_page(url, page): return myparser.parse_document(page) @task() def store_page_info(url, info): return PageInfo.objects.create(url, info)rr}r(hUhjubaubh)r}r(hX **Good**:rhjqhhhjh}r(h]h]h]h]h]uhMhhh]r(jF)r}r(hX**Good**h}r(h]h]h]h]h]uhjh]rhXGoodrr}r(hUhjubahjNubhX:r}r(hX:hjubeubj)r}r(hX@task(ignore_result=True) def update_page_info(url): # fetch_page -> parse_page -> store_page fetch_page.delay(url, callback=subtask(parse_page, callback=subtask(store_page_info))) @task(ignore_result=True) def fetch_page(url, callback=None): page = myhttplib.get(url) if callback: # The callback may have been serialized with JSON, # so best practice is to convert the subtask dict back # into a subtask object. subtask(callback).delay(url, page) @task(ignore_result=True) def parse_page(url, page, callback=None): info = myparser.parse_document(page) if callback: subtask(callback).delay(url, info) @task(ignore_result=True) def store_page_info(url, info): PageInfo.objects.create(url, info)hjqhhhjh}r(jjXpythonjjh]h]h]h]h]uhMhhh]rhX@task(ignore_result=True) def update_page_info(url): # fetch_page -> parse_page -> store_page fetch_page.delay(url, callback=subtask(parse_page, callback=subtask(store_page_info))) @task(ignore_result=True) def fetch_page(url, callback=None): page = myhttplib.get(url) if callback: # The callback may have been serialized with JSON, # so best practice is to convert the subtask dict back # into a subtask object. subtask(callback).delay(url, page) @task(ignore_result=True) def parse_page(url, page, callback=None): info = myparser.parse_document(page) if callback: subtask(callback).delay(url, info) @task(ignore_result=True) def store_page_info(url, info): PageInfo.objects.create(url, info)rr}r(hUhjubaubh)r}r(hXWe use :class:`~celery.task.sets.subtask` here to safely pass around the callback task. :class:`~celery.task.sets.subtask` is a subclass of dict used to wrap the arguments and execution options for a single task invocation.hjqhhhjh}r(h]h]h]h]h]uhMhhh]r(hXWe use rr}r(hXWe use hjubj})r}r(hX":class:`~celery.task.sets.subtask`rhjhhhjh}r(UreftypeXclassjjXcelery.task.sets.subtaskU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhXsubtaskrr}r(hUhjubahjubaubhX0 here to safely pass around the callback task. rr}r(hX0 here to safely pass around the callback task. hjubj})r}r(hX":class:`~celery.task.sets.subtask`rhjhhhjh}r(UreftypeXclassjjXcelery.task.sets.subtaskU refdomainXpyrh]h]U refexplicith]h]h]jjjNjNuhMh]rj)r}r(hjh}r(h]h]r(jjXpy-classreh]h]h]uhjh]rhXsubtaskrr}r(hUhjubahjubaubhXe is a subclass of dict used to wrap the arguments and execution options for a single task invocation.rr}r(hXe is a subclass of dict used to wrap the arguments and execution options for a single task invocation.hjubeubj )r}r(hX9:ref:`sets-subtasks` for more information about subtasks.rhjqhhhj# h}r(h]h]h]h]h]uhNhhh]rh)r}r(hjhjhhhjh}r(h]h]h]h]h]uhMh]r(j})r}r(hX:ref:`sets-subtasks`rhjhhhjh}r(UreftypeXrefjjX sets-subtasksU refdomainXstdrh]h]U refexplicith]h]h]jjuhMh]rj-)r}r(hjh}r(h]h]r(jjXstd-refreh]h]h]uhjh]rhX sets-subtasksrr}r(hUhjubahj7ubaubhX% for more information about subtasks.rr}r(hX% for more information about subtasks.hjubeubaubh)r }r (hX$.. _task-performance-and-strategies:hjqhhhhh}r (h]h]h]h]h]hhuhMhhh]ubeubeubh)r }r (hUhhhhh}rh&j shhh}r(h]h]h]h]r(hiheh]r(hh&euhMhhh}rhj sh]r(h)r}r(hjhj hhhhh}r(h]h]h]h]h]hjuhMhhh]rhXPerformance and Strategiesrr}r(hjhjubaubh)r}r(hX.. _task-granularity:hj hhhhh}r(h]h]h]h]h]hhuhMhhh]ubh)r}r(hUhj hhh}r hFjshhh}r!(h]h]h]h]r"(hheh]r#(h-hFeuhMhhh}r$hjsh]r%(h)r&}r'(hjhjhhhhh}r((h]h]h]h]h]hjuhMhhh]r)hX Granularityr*r+}r,(hjhj&ubaubh)r-}r.(hXThe task granularity is the amount of computation needed by each subtask. In general it is better to split the problem up into many small tasks, than have a few long running tasks.r/hjhhhjh}r0(h]h]h]h]h]uhMhhh]r1hXThe task granularity is the amount of computation needed by each subtask. In general it is better to split the problem up into many small tasks, than have a few long running tasks.r2r3}r4(hj/hj-ubaubh)r5}r6(hXWith smaller tasks you can process more tasks in parallel and the tasks won't run long enough to block the worker from processing other waiting tasks.r7hjhhhjh}r8(h]h]h]h]h]uhM hhh]r9hXWith smaller tasks you can process more tasks in parallel and the tasks won't run long enough to block the worker from processing other waiting tasks.r:r;}r<(hj7hj5ubaubh)r=}r>(hXHowever, executing a task does have overhead. A message needs to be sent, data may not be local, etc. So if the tasks are too fine-grained the additional overhead may not be worth it in the end.r?hjhhhjh}r@(h]h]h]h]h]uhM#hhh]rAhXHowever, executing a task does have overhead. A message needs to be sent, data may not be local, etc. So if the tasks are too fine-grained the additional overhead may not be worth it in the end.rBrC}rD(hj?hj=ubaubj )rE}rF(hX^The book `Art of Concurrency`_ has a whole section dedicated to the topic of task granularity.hjhhhj# h}rG(h]h]h]h]h]uhNhhh]rHh)rI}rJ(hX^The book `Art of Concurrency`_ has a whole section dedicated to the topic of task granularity.hjEhhhjh}rK(h]h]h]h]h]uhM)h]rL(hX The book rMrN}rO(hX The book hjIubh)rP}rQ(hX`Art of Concurrency`_jKhjIhjh}rR(UnameXArt of ConcurrencyUrefurirSX(http://oreilly.com/catalog/9780596521547rTh]h]h]h]h]uh]rUhXArt of ConcurrencyrVrW}rX(hUhjPubaubhX@ has a whole section dedicated to the topic of task granularity.rYrZ}r[(hX@ has a whole section dedicated to the topic of task granularity.hjIubeubaubh)r\}r](hXB.. _`Art of Concurrency`: http://oreilly.com/catalog/9780596521547jWKhjhhhhh}r^(jSjTh]r_hgah]h]h]h]r`hauhM,hhh]ubh)ra}rb(hX.. _task-data-locality:hjhhhhh}rc(h]h]h]h]h]hhyuhM.hhh]ubeubh)rd}re(hUhj hhh}rfhjashhh}rg(h]h]h]h]rh(hhyeh]ri(hWheuhM1hhh}rjhyjash]rk(h)rl}rm(hjhjdhhhhh}rn(h]h]h]h]h]hjuhM1hhh]rohX Data localityrprq}rr(hjhjlubaubh)rs}rt(hXThe worker processing the task should be as close to the data as possible. The best would be to have a copy in memory, the worst would be a full transfer from another continent.ruhjdhhhjh}rv(h]h]h]h]h]uhM3hhh]rwhXThe worker processing the task should be as close to the data as possible. The best would be to have a copy in memory, the worst would be a full transfer from another continent.rxry}rz(hjuhjsubaubh)r{}r|(hXIf the data is far away, you could try to run another worker at location, or if that's not possible - cache often used data, or preload data you know is going to be used.r}hjdhhhjh}r~(h]h]h]h]h]uhM7hhh]rhXIf the data is far away, you could try to run another worker at location, or if that's not possible - cache often used data, or preload data you know is going to be used.rr}r(hj}hj{ubaubh)r}r(hXfThe easiest way to share data between workers is to use a distributed cache system, like `memcached`_.hjdhhhjh}r(h]h]h]h]h]uhM;hhh]r(hXYThe easiest way to share data between workers is to use a distributed cache system, like rr}r(hXYThe easiest way to share data between workers is to use a distributed cache system, like hjubh)r}r(hX `memcached`_jKhjhjh}r(UnameX memcachedrjSXhttp://memcached.org/rh]h]h]h]h]uh]rhX memcachedrr}r(hUhjubaubhX.r}r(hX.hjubeubj )r}r(hXtThe paper `Distributed Computing Economics`_ by Jim Gray is an excellent introduction to the topic of data locality.hjdhhhj# h}r(h]h]h]h]h]uhNhhh]rh)r}r(hXtThe paper `Distributed Computing Economics`_ by Jim Gray is an excellent introduction to the topic of data locality.hjhhhjh}r(h]h]h]h]h]uhM@h]r(hX The paper rr}r(hX The paper hjubh)r}r(hX"`Distributed Computing Economics`_jKhjhjh}r(UnameXDistributed Computing EconomicsjSX7http://research.microsoft.com/pubs/70001/tr-2003-24.pdfrh]h]h]h]h]uh]rhXDistributed Computing Economicsrr}r(hUhjubaubhXH by Jim Gray is an excellent introduction to the topic of data locality.rr}r(hXH by Jim Gray is an excellent introduction to the topic of data locality.hjubeubaubh)r}r(hXb.. _`Distributed Computing Economics`: http://research.microsoft.com/pubs/70001/tr-2003-24.pdfjWKhjdhhhhh}r(jSjh]rhzah]h]h]h]rh!auhMChhh]ubh)r}r(hX&.. _`memcached`: http://memcached.org/jWKhjdhhhhh}r(jSjh]rhah]h]h]h]rh+auhMFhhh]ubh)r}r(hX.. _task-state:hjdhhhhh}r(h]h]h]h]h]hhuhMHhhh]ubeubh)r}r(hUhj hhh}rhZjshhh}r(h]h]h]h]r(hheh]r(h(hZeuhMKhhh}rhjsh]r(h)r}r(hjhjhhhhh}r(h]h]h]h]h]hjuhMKhhh]rhXStaterr}r(hjhjubaubh)r}r(hXSince celery is a distributed system, you can't know in which process, or on what machine the task will be executed. You can't even know if the task will run in a timely manner.rhjhhhjh}r(h]h]h]h]h]uhMMhhh]rhXSince celery is a distributed system, you can't know in which process, or on what machine the task will be executed. You can't even know if the task will run in a timely manner.rr}r(hjhjubaubh)r}r(hXThe ancient async sayings tells us that “asserting the world is the responsibility of the task”. What this means is that the world view may have changed since the task was requested, so the task is responsible for making sure the world is how it should be; If you have a task that re-indexes a search engine, and the search engine should only be re-indexed at maximum every 5 minutes, then it must be the tasks responsibility to assert that, not the callers.rhjhhhjh}r(h]h]h]h]h]uhMQhhh]rhXThe ancient async sayings tells us that “asserting the world is the responsibility of the task”. What this means is that the world view may have changed since the task was requested, so the task is responsible for making sure the world is how it should be; If you have a task that re-indexes a search engine, and the search engine should only be re-indexed at maximum every 5 minutes, then it must be the tasks responsibility to assert that, not the callers.rr}r(hjhjubaubh)r}r(hXAnother gotcha is Django model objects. They shouldn't be passed on as arguments to tasks. It's almost always better to re-fetch the object from the database when the task is running instead, as using old data may lead to race conditions.rhjhhhjh}r(h]h]h]h]h]uhMYhhh]rhXAnother gotcha is Django model objects. They shouldn't be passed on as arguments to tasks. It's almost always better to re-fetch the object from the database when the task is running instead, as using old data may lead to race conditions.rr}r(hjhjubaubh)r}r(hXxImagine the following scenario where you have an article and a task that automatically expands some abbreviations in it:rhjhhhjh}r(h]h]h]h]h]uhM^hhh]rhXxImagine the following scenario where you have an article and a task that automatically expands some abbreviations in it:rr}r(hjhjubaubj)r}r(hXclass Article(models.Model): title = models.CharField() body = models.TextField() @task def expand_abbreviations(article): article.body.replace("MyCorp", "My Corporation") article.save()hjhhhjh}r(jjXpythonjjh]h]h]h]h]uhMahhh]rhXclass Article(models.Model): title = models.CharField() body = models.TextField() @task def expand_abbreviations(article): article.body.replace("MyCorp", "My Corporation") article.save()rr}r(hUhjubaubh)r}r(hXzFirst, an author creates an article and saves it, then the author clicks on a button that initiates the abbreviation task.rhjhhhjh}r(h]h]h]h]h]uhMlhhh]rhXzFirst, an author creates an article and saves it, then the author clicks on a button that initiates the abbreviation task.rr}r(hjhjubaubcdocutils.nodes doctest_block r)r}r(hXV>>> article = Article.objects.get(id=102) >>> expand_abbreviations.delay(model_object)hjhNhU doctest_blockrh}r(jjh]h]h]h]h]uhNhhh]rhXV>>> article = Article.objects.get(id=102) >>> expand_abbreviations.delay(model_object)rr}r(hUhjubaubh)r}r(hXNow, the queue is very busy, so the task won't be run for another 2 minutes. In the meantime another author makes changes to the article, so when the task is finally run, the body of the article is reverted to the old version because the task had the old body in its argument.rhjhhhjh}r(h]h]h]h]h]uhMrhhh]rhXNow, the queue is very busy, so the task won't be run for another 2 minutes. In the meantime another author makes changes to the article, so when the task is finally run, the body of the article is reverted to the old version because the task had the old body in its argument.rr}r(hjhjubaubh)r}r(hXnFixing the race condition is easy, just use the article id instead, and re-fetch the article in the task body:r hjhhhjh}r (h]h]h]h]h]uhMwhhh]r hXnFixing the race condition is easy, just use the article id instead, and re-fetch the article in the task body:r r }r(hj hjubaubj)r}r(hX@task def expand_abbreviations(article_id): article = Article.objects.get(id=article_id) article.body.replace("MyCorp", "My Corporation") article.save() >>> expand_abbreviations(article_id)hjhhhjh}r(jjXpythonjjh]h]h]h]h]uhMzhhh]rhX@task def expand_abbreviations(article_id): article = Article.objects.get(id=article_id) article.body.replace("MyCorp", "My Corporation") article.save() >>> expand_abbreviations(article_id)rr}r(hUhjubaubh)r}r(hXfThere might even be performance benefits to this approach, as sending large messages may be expensive.rhjhhhjh}r(h]h]h]h]h]uhMhhh]rhXfThere might even be performance benefits to this approach, as sending large messages may be expensive.rr}r(hjhjubaubh)r}r(hX.. _task-database-transactions:hjhhhhh}r (h]h]h]h]h]hhjuhMhhh]ubeubh)r!}r"(hUhj hhh}r#h jshhh}r$(h]h]h]h]r%(hhjeh]r&(hEh euhMhhh}r'hjjsh]r((h)r)}r*(hj)hj!hhhhh}r+(h]h]h]h]h]hj$uhMhhh]r,hXDatabase transactionsr-r.}r/(hj)hj)ubaubh)r0}r1(hX%Let's have a look at another example:r2hj!hhhjh}r3(h]h]h]h]h]uhMhhh]r4hX%Let's have a look at another example:r5r6}r7(hj2hj0ubaubj)r8}r9(hXfrom django.db import transaction @transaction.commit_on_success def create_article(request): article = Article.objects.create(....) expand_abbreviations.delay(article.pk)hj!hhhjh}r:(jjXpythonjjh]h]h]h]h]uhMhhh]r;hXfrom django.db import transaction @transaction.commit_on_success def create_article(request): article = Article.objects.create(....) expand_abbreviations.delay(article.pk)r<r=}r>(hUhj8ubaubh)r?}r@(hXThis is a Django view creating an article object in the database, then passing the primary key to a task. It uses the `commit_on_success` decorator, which will commit the transaction when the view returns, or roll back if the view raises an exception.hj!hhhjh}rA(h]h]h]h]h]uhMhhh]rB(hXwThis is a Django view creating an article object in the database, then passing the primary key to a task. It uses the rCrD}rE(hXwThis is a Django view creating an article object in the database, then passing the primary key to a task. It uses the hj?ubj)rF}rG(hX`commit_on_success`h}rH(h]h]h]h]h]uhj?h]rIhXcommit_on_successrJrK}rL(hUhjFubahjubhXr decorator, which will commit the transaction when the view returns, or roll back if the view raises an exception.rMrN}rO(hXr decorator, which will commit the transaction when the view returns, or roll back if the view raises an exception.hj?ubeubh)rP}rQ(hXThere is a race condition if the task starts executing before the transaction has been committed; The database object does not exist yet!rRhj!hhhjh}rS(h]h]h]h]h]uhMhhh]rThXThere is a race condition if the task starts executing before the transaction has been committed; The database object does not exist yet!rUrV}rW(hjRhjPubaubh)rX}rY(hXuThe solution is to *always commit transactions before sending tasks depending on state from the current transaction*:hj!hhhjh}rZ(h]h]h]h]h]uhMhhh]r[(hXThe solution is to r\r]}r^(hXThe solution is to hjXubj-)r_}r`(hXa*always commit transactions before sending tasks depending on state from the current transaction*h}ra(h]h]h]h]h]uhjXh]rbhX_always commit transactions before sending tasks depending on state from the current transactionrcrd}re(hUhj_ubahj7ubhX:rf}rg(hX:hjXubeubj)rh}ri(hX@transaction.commit_manually def create_article(request): try: article = Article.objects.create(...) except: transaction.rollback() raise else: transaction.commit() expand_abbreviations.delay(article.pk)hj!hhhjh}rj(jjXpythonjjh]h]h]h]h]uhMhhh]rkhX@transaction.commit_manually def create_article(request): try: article = Article.objects.create(...) except: transaction.rollback() raise else: transaction.commit() expand_abbreviations.delay(article.pk)rlrm}rn(hUhjhubaubh)ro}rp(hX.. _task-example:hj!hhhhh}rq(h]h]h]h]h]hhluhMhhh]ubeubeubh)rr}rs(hUhhhhh}rth joshhh}ru(h]h]h]h]rv(hhleh]rw(hIh euhMhhh}rxhljosh]ry(h)rz}r{(hj;hjrhhhhh}r|(h]h]h]h]h]hj6uhMhhh]r}hXExampler~r}r(hj;hjzubaubh)r}r(hXLet's take a real wold example; A blog where comments posted needs to be filtered for spam. When the comment is created, the spam filter runs in the background, so the user doesn't have to wait for it to finish.rhjrhhhjh}r(h]h]h]h]h]uhMhhh]rhXLet's take a real wold example; A blog where comments posted needs to be filtered for spam. When the comment is created, the spam filter runs in the background, so the user doesn't have to wait for it to finish.rr}r(hjhjubaubh)r}r(hXWe have a Django blog application allowing comments on blog posts. We'll describe parts of the models/views and tasks for this application.rhjrhhhjh}r(h]h]h]h]h]uhMhhh]rhXWe have a Django blog application allowing comments on blog posts. We'll describe parts of the models/views and tasks for this application.rr}r(hjhjubaubh)r}r(hUhjrhhhhh}r(h]h]h]h]rhah]rh>auhMhhh]r(h)r}r(hjQhjhhhhh}r(h]h]h]h]h]hjLuhMhhh]rhXblog/models.pyrr}r(hjQhjubaubh)r}r(hX"The comment model looks like this:rhjhhhjh}r(h]h]h]h]h]uhMhhh]rhX"The comment model looks like this:rr}r(hjhjubaubj)r}r(hXfrom django.db import models from django.utils.translation import ugettext_lazy as _ class Comment(models.Model): name = models.CharField(_("name"), max_length=64) email_address = models.EmailField(_("e-mail address")) homepage = models.URLField(_("home page"), blank=True, verify_exists=False) comment = models.TextField(_("comment")) pub_date = models.DateTimeField(_("Published date"), editable=False, auto_add_now=True) is_spam = models.BooleanField(_("spam?"), default=False, editable=False) class Meta: verbose_name = _("comment") verbose_name_plural = _("comments")hjhhhjh}r(jjXpythonjjh]h]h]h]h]uhMhhh]rhXfrom django.db import models from django.utils.translation import ugettext_lazy as _ class Comment(models.Model): name = models.CharField(_("name"), max_length=64) email_address = models.EmailField(_("e-mail address")) homepage = models.URLField(_("home page"), blank=True, verify_exists=False) comment = models.TextField(_("comment")) pub_date = models.DateTimeField(_("Published date"), editable=False, auto_add_now=True) is_spam = models.BooleanField(_("spam?"), default=False, editable=False) class Meta: verbose_name = _("comment") verbose_name_plural = _("comments")rr}r(hUhjubaubh)r}r(hXIn the view where the comment is posted, we first write the comment to the database, then we launch the spam filter task in the background.rhjhhhjh}r(h]h]h]h]h]uhMhhh]rhXIn the view where the comment is posted, we first write the comment to the database, then we launch the spam filter task in the background.rr}r(hjhjubaubh)r}r(hX.. _task-example-blog-views:hjhhhhh}r(h]h]h]h]h]hhuhMhhh]ubeubh)r}r(hUhjrhhh}rh/jshhh}r(h]h]h]h]r(hxheh]r(hh/euhMhhh}rhjsh]r(h)r}r(hjchjhhhhh}r(h]h]h]h]h]hj^uhMhhh]rhX blog/views.pyrr}r(hjchjubaubj)r}r(hX from django import forms from django.http import HttpResponseRedirect from django.template.context import RequestContext from django.shortcuts import get_object_or_404, render_to_response from blog import tasks from blog.models import Comment class CommentForm(forms.ModelForm): class Meta: model = Comment def add_comment(request, slug, template_name="comments/create.html"): post = get_object_or_404(Entry, slug=slug) remote_addr = request.META.get("REMOTE_ADDR") if request.method == "post": form = CommentForm(request.POST, request.FILES) if form.is_valid(): comment = form.save() # Check spam asynchronously. tasks.spam_filter.delay(comment_id=comment.id, remote_addr=remote_addr) return HttpResponseRedirect(post.get_absolute_url()) else: form = CommentForm() context = RequestContext(request, {"form": form}) return render_to_response(template_name, context_instance=context)hjhhhjh}r(jjXpythonjjh]h]h]h]h]uhMhhh]rhX from django import forms from django.http import HttpResponseRedirect from django.template.context import RequestContext from django.shortcuts import get_object_or_404, render_to_response from blog import tasks from blog.models import Comment class CommentForm(forms.ModelForm): class Meta: model = Comment def add_comment(request, slug, template_name="comments/create.html"): post = get_object_or_404(Entry, slug=slug) remote_addr = request.META.get("REMOTE_ADDR") if request.method == "post": form = CommentForm(request.POST, request.FILES) if form.is_valid(): comment = form.save() # Check spam asynchronously. tasks.spam_filter.delay(comment_id=comment.id, remote_addr=remote_addr) return HttpResponseRedirect(post.get_absolute_url()) else: form = CommentForm() context = RequestContext(request, {"form": form}) return render_to_response(template_name, context_instance=context)rr}r(hUhjubaubh)r}r(hXTo filter spam in comments we use `Akismet`_, the service used to filter spam in comments posted to the free weblog platform `Wordpress`. `Akismet`_ is free for personal use, but for commercial use you need to pay. You have to sign up to their service to get an API key.hjhhhjh}r(h]h]h]h]h]uhMhhh]r(hX"To filter spam in comments we use rr}r(hX"To filter spam in comments we use hjubh)r}r(hX `Akismet`_jKhjhjh}r(UnameXAkismetjSXhttp://akismet.com/faq/rh]h]h]h]h]uh]rhXAkismetrr}r(hUhjubaubhXQ, the service used to filter spam in comments posted to the free weblog platform rr}r(hXQ, the service used to filter spam in comments posted to the free weblog platform hjubj)r}r(hX `Wordpress`h}r(h]h]h]h]h]uhjh]rhX Wordpressrr}r(hUhjubahjubhX. rr}r(hX. hjubh)r}r(hX `Akismet`_jKhjhjh}r(UnameXAkismetjSjh]h]h]h]h]uh]rhXAkismetrr}r(hUhjubaubhX{ is free for personal use, but for commercial use you need to pay. You have to sign up to their service to get an API key.rr}r(hX{ is free for personal use, but for commercial use you need to pay. You have to sign up to their service to get an API key.hjubeubh)r}r(hX]To make API calls to `Akismet`_ we use the `akismet.py`_ library written by `Michael Foord`_.hjhhhjh}r(h]h]h]h]h]uhM hhh]r(hXTo make API calls to rr}r(hXTo make API calls to hjubh)r}r(hX `Akismet`_jKhjhjh}r(UnameXAkismetjSjh]h]h]h]h]uh]rhXAkismetrr}r(hUhjubaubhX we use the rr}r(hX we use the hjubh)r}r(hX `akismet.py`_jKhjhjh}r(UnameX akismet.pyrjSX0http://www.voidspace.org.uk/downloads/akismet.pyr h]h]h]h]h]uh]r hX akismet.pyr r }r (hUhjubaubhX library written by rr}r(hX library written by hjubh)r}r(hX`Michael Foord`_jKhjhjh}r(UnameX Michael FoordjSXhttp://www.voidspace.org.uk/rh]h]h]h]h]uh]rhX Michael Foordrr}r(hUhjubaubhX.r}r(hX.hjubeubh)r}r(hX.. _task-example-blog-tasks:hjhhhhh}r(h]h]h]h]h]hh|uhM hhh]ubeubh)r}r(hUhjrhhh}r h#jshhh}r!(h]h]h]h]r"(hh|eh]r#(hYh#euhMhhh}r$h|jsh]r%(h)r&}r'(hjuhjhhhhh}r((h]h]h]h]h]hjpuhMhhh]r)hX blog/tasks.pyr*r+}r,(hjuhj&ubaubj)r-}r.(hXfrom akismet import Akismet from celery.decorators import task from django.core.exceptions import ImproperlyConfigured from django.contrib.sites.models import Site from blog.models import Comment @task def spam_filter(comment_id, remote_addr=None, **kwargs): logger = spam_filter.get_logger(**kwargs) logger.info("Running spam filter for comment %s" % comment_id) comment = Comment.objects.get(pk=comment_id) current_domain = Site.objects.get_current().domain akismet = Akismet(settings.AKISMET_KEY, "http://%s" % domain) if not akismet.verify_key(): raise ImproperlyConfigured("Invalid AKISMET_KEY") is_spam = akismet.comment_check(user_ip=remote_addr, comment_content=comment.comment, comment_author=comment.name, comment_author_email=comment.email_address) if is_spam: comment.is_spam = True comment.save() return is_spamhjhhhjh}r/(jjXpythonjjh]h]h]h]h]uhMhhh]r0hXfrom akismet import Akismet from celery.decorators import task from django.core.exceptions import ImproperlyConfigured from django.contrib.sites.models import Site from blog.models import Comment @task def spam_filter(comment_id, remote_addr=None, **kwargs): logger = spam_filter.get_logger(**kwargs) logger.info("Running spam filter for comment %s" % comment_id) comment = Comment.objects.get(pk=comment_id) current_domain = Site.objects.get_current().domain akismet = Akismet(settings.AKISMET_KEY, "http://%s" % domain) if not akismet.verify_key(): raise ImproperlyConfigured("Invalid AKISMET_KEY") is_spam = akismet.comment_check(user_ip=remote_addr, comment_content=comment.comment, comment_author=comment.name, comment_author_email=comment.email_address) if is_spam: comment.is_spam = True comment.save() return is_spamr1r2}r3(hUhj-ubaubh)r4}r5(hX&.. _`Akismet`: http://akismet.com/faq/jWKhjhhhhh}r6(jSjh]r7hah]h]h]h]r8hAauhM2hhh]ubh)r9}r:(hXB.. _`akismet.py`: http://www.voidspace.org.uk/downloads/akismet.pyjWKhjhhhhh}r;(jSj h]r<hah]h]h]h]r=h5auhM3hhh]ubh)r>}r?(hX1.. _`Michael Foord`: http://www.voidspace.org.uk/jWKhjhhhhh}r@(jSjh]rAhah]h]h]h]rBhSauhM4hhh]ubeubeubeubehUU transformerrCNU footnote_refsrD}rEUrefnamesrF}rG(Xart of concurrency]rHjPaXlogging]rIjaXdistributed computing economics]rJjaXakismet]rK(jjjeX michael foord]rLjaj]rMjaj]rNjauUsymbol_footnotesrO]rPUautofootnote_refsrQ]rRUsymbol_footnote_refsrS]rTU citationsrU]rVhhU current_linerWNUtransform_messagesrX]rY(cdocutils.nodes system_message rZ)r[}r\(hUh}r](h]UlevelKh]h]Usourcehh]h]UlineKUtypeUINFOr^uh]r_h)r`}ra(hUh}rb(h]h]h]h]h]uhj[h]rchX1Hyperlink target "guide-tasks" is not referenced.rdre}rf(hUhj`ubahjubahUsystem_messagergubjZ)rh}ri(hUh}rj(h]UlevelKh]h]Usourcehh]h]UlineKUtypej^uh]rkh)rl}rm(hUh}rn(h]h]h]h]h]uhjhh]rohX1Hyperlink target "task-basics" is not referenced.rprq}rr(hUhjlubahjubahjgubjZ)rs}rt(hUh}ru(h]UlevelKh]h]Usourcehh]h]UlineK6Utypej^uh]rvh)rw}rx(hUh}ry(h]h]h]h]h]uhjsh]rzhX<Hyperlink target "task-keyword-arguments" is not referenced.r{r|}r}(hUhjwubahjubahjgubjZ)r~}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKZUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhj~h]rhX2Hyperlink target "task-logging" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineK{Utypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX0Hyperlink target "task-retry" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX=Hyperlink target "task-retry-custom-delay" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX2Hyperlink target "task-options" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineKUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX:Hyperlink target "task-general-options" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineM0Utypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX:Hyperlink target "task-message-options" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMbUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX0Hyperlink target "task-names" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhXBHyperlink target "task-naming-relative-imports" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX6Hyperlink target "tasks-decorating" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX1Hyperlink target "task-states" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineM Utypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX9Hyperlink target "task-builtin-states" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX7Hyperlink target "std:state-PENDING" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]r hX7Hyperlink target "std:state-STARTED" is not referenced.r r }r (hUhjubahjubahjgubjZ)r }r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineM%Utypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhj h]rhX7Hyperlink target "std:state-SUCCESS" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineM0Utypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX7Hyperlink target "std:state-FAILURE" is not referenced.r r!}r"(hUhjubahjubahjgubjZ)r#}r$(hUh}r%(h]UlevelKh]h]Usourcehh]h]UlineM<Utypej^uh]r&h)r'}r((hUh}r)(h]h]h]h]h]uhj#h]r*hX5Hyperlink target "std:state-RETRY" is not referenced.r+r,}r-(hUhj'ubahjubahjgubjZ)r.}r/(hUh}r0(h]UlevelKh]h]Usourcehh]h]UlineMHUtypej^uh]r1h)r2}r3(hUh}r4(h]h]h]h]h]uhj.h]r5hX7Hyperlink target "std:state-REVOKED" is not referenced.r6r7}r8(hUhj2ubahjubahjgubjZ)r9}r:(hUh}r;(h]UlevelKh]h]Usourcehh]h]UlineMhUtypej^uh]r<h)r=}r>(hUh}r?(h]h]h]h]h]uhj9h]r@hX8Hyperlink target "task-how-they-work" is not referenced.rArB}rC(hUhj=ubahjubahjgubjZ)rD}rE(hUh}rF(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rGh)rH}rI(hUh}rJ(h]h]h]h]h]uhjDh]rKhX9Hyperlink target "task-best-practices" is not referenced.rLrM}rN(hUhjHubahjubahjgubjZ)rO}rP(hUh}rQ(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rRh)rS}rT(hUh}rU(h]h]h]h]h]uhjOh]rVhX9Hyperlink target "task-ignore-results" is not referenced.rWrX}rY(hUhjSubahjubahjgubjZ)rZ}r[(hUh}r\(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]r]h)r^}r_(hUh}r`(h]h]h]h]h]uhjZh]rahX>Hyperlink target "task-disable-rate-limits" is not referenced.rbrc}rd(hUhj^ubahjubahjgubjZ)re}rf(hUh}rg(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rhh)ri}rj(hUh}rk(h]h]h]h]h]uhjeh]rlhX?Hyperlink target "task-synchronous-subtasks" is not referenced.rmrn}ro(hUhjiubahjubahjgubjZ)rp}rq(hUh}rr(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rsh)rt}ru(hUh}rv(h]h]h]h]h]uhjph]rwhXEHyperlink target "task-performance-and-strategies" is not referenced.rxry}rz(hUhjtubahjubahjgubjZ)r{}r|(hUh}r}(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]r~h)r}r(hUh}r(h]h]h]h]h]uhj{h]rhX6Hyperlink target "task-granularity" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineM.Utypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX8Hyperlink target "task-data-locality" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMHUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX0Hyperlink target "task-state" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX@Hyperlink target "task-database-transactions" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX2Hyperlink target "task-example" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineMUtypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX=Hyperlink target "task-example-blog-views" is not referenced.rr}r(hUhjubahjubahjgubjZ)r}r(hUh}r(h]UlevelKh]h]Usourcehh]h]UlineM Utypej^uh]rh)r}r(hUh}r(h]h]h]h]h]uhjh]rhX=Hyperlink target "task-example-blog-tasks" is not referenced.rr}r(hUhjubahjubahjgubeUreporterrNUid_startrK&U autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUM/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/tasks.rstrUgettext_compactrU generatorrNUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr UlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhjhojkh j h j hjj!hljrhnjj7j<jojthpjhj hqjhij j^jZhjj6j2hsjhjhrjhuj<hjhjDjjhvj jjhUjnhj[ hyjdh jhHjR h{jqh|jhj h}hh~jjJjFhj j"jj4j0hhjj hmj hj!hhjhjhjhgj\hjUhkjhwjhjhjhjhjUhjth3j hjdhj7h7jZ h8j hhh:j hjjrjnhj!hjhjhj9jjjjhj jjhj4hxjjjjj jjhjjjhBj jjhjjjhjj jhzjhj>hjhjhGjhjrhj!hjhjkhjhPjhhjjhj7htjqjpjlhTj jLjHjjj$j jjjjhjhj&hjA hjj2j.jhjdj jh[jB j\jXhj2 jjhj2 jDj@hj&hjA jVjRjjjzjvjjjjuUsubstitution_namesr}rhhh}r(h]h]h]Usourcehh]h]uU footnotesr]rUrefidsr }r!(hy]r"jaah]r#jhah]r$jah{]r%jnah|]r&jahj]r'jah}]r(hah]r)jah]r*j ahn]r+j ah]r,jRah]r-jaj7]r.j9ah]r/j ahl]r0joajo]r1jqahq]r2jah]r3j#aj]r4jah]r5j> aj]r6jah]r7jah]r8jah]r9jahr]r:jah]r;j4aj]r<jah]r=j/ ahv]r>j ah]r?jaj ]r@jah]rAjauub.PKYDDx:celery-2.1-archived/.doctrees/userguide/monitoring.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xceleryctl: management utilityqNXmonitoring-django-startingqXshutter frequencyqNX snapshotsq NXmonitoring-django-adminq Xmonitoring-muninq Xguide-monitoringq Xdjango admin monitorq NXspecifying destination nodesqNXevent-referenceqUcontentsqNXevent-reference-workerqXcelerymon: web monitorqNX celerymonqXceleryctl-inspect-destinationqXmonitoring-workersqXstarting the monitorqNX introductionqNXworkersqNXmonitoring-cameraqX task eventsqNXeventsqNX worker eventsqNXmonitoring-nodjangoqXcommandsqNXrabbitmqctl(1)qXevent referenceq NXmonitoring-rabbitmqq!Xmonitoring-eventsq"Xinspecting queuesq#NXmonitoring guideq$NX custom cameraq%NXmonitoring-celerymonq&Xmonitoring-celeryevq'Xmonitoring-rmq-queuesq(Xrabbitmqq)NXmuninq*NXevent-reference-taskq+Xmonitoring-celeryctlq,Xmonitoring-snapshotsq-X django-celeryq.Xusing outside of djangoq/NXmonitoring-django-frequencyq0Xceleryev: curses monitorq1NuUsubstitution_defsq2}q3Uparse_messagesq4]q5Ucurrent_sourceq6NU decorationq7NUautofootnote_startq8KUnameidsq9}q:(hUceleryctl-management-utilityq;hUmonitoring-django-startingqh Umonitoring-django-adminq?h Umonitoring-muninq@h Uguide-monitoringqAh Udjango-admin-monitorqBhUspecifying-destination-nodesqChUevent-referenceqDhUcontentsqEhUevent-reference-workerqFhUcelerymon-web-monitorqGhU celerymonqHhUceleryctl-inspect-destinationqIhUmonitoring-workersqJhUstarting-the-monitorqKhU introductionqLhUworkersqMhUmonitoring-cameraqNhU task-eventsqOhUeventsqPhU worker-eventsqQhUmonitoring-nodjangoqRhUcommandsqShU rabbitmqctl-1qTh Uid1qUh!Umonitoring-rabbitmqqVh"Umonitoring-eventsqWh#Uinspecting-queuesqXh$Umonitoring-guideqYh%U custom-cameraqZh&Umonitoring-celerymonq[h'Umonitoring-celeryevq\h(Umonitoring-rmq-queuesq]h)Urabbitmqq^h*Umuninq_h+Uevent-reference-taskq`h,Umonitoring-celeryctlqah-Umonitoring-snapshotsqbh.U django-celeryqch/Uusing-outside-of-djangoqdh0Umonitoring-django-frequencyqeh1Uceleryev-curses-monitorqfuUchildrenqg]qh(cdocutils.nodes target qi)qj}qk(U rawsourceqlX.. _guide-monitoring:UparentqmhUsourceqncdocutils.nodes reprunicode qoXR/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/monitoring.rstqpqq}qrbUtagnameqsUtargetqtU attributesqu}qv(Uidsqw]Ubackrefsqx]Udupnamesqy]Uclassesqz]Unamesq{]Urefidq|hAuUlineq}KUdocumentq~hhg]ubcdocutils.nodes section q)q}q(hlUhmhhnhqUexpect_referenced_by_nameq}qh hjshsUsectionqhu}q(hy]hz]hx]hw]q(hYhAeh{]q(h$h euh}Kh~hUexpect_referenced_by_idq}qhAhjshg]q(cdocutils.nodes title q)q}q(hlXMonitoring GuideqhmhhnhqhsUtitleqhu}q(hy]hz]hx]hw]h{]uh}Kh~hhg]qcdocutils.nodes Text qXMonitoring Guideqq}q(hlhhmhubaubcdocutils.nodes topic q)q}q(hlUhmhhnhqhsUtopicqhu}q(hy]hz]q(UcontentsqUlocalqehx]hw]qhEah{]qhauh}Kh~hhg]qcdocutils.nodes bullet_list q)q}q(hlUhmhhnNhsU bullet_listqhu}q(hy]hz]hx]hw]h{]uh}Nh~hhg]q(cdocutils.nodes list_item q)q}q(hlUhu}q(hy]hz]hx]hw]h{]uhmhhg]qcdocutils.nodes paragraph q)q}q(hlUhu}q(hy]hz]hx]hw]h{]uhmhhg]qcdocutils.nodes reference q)q}q(hlUhu}q(hw]qUid2qahx]hy]hz]h{]UrefidhLuhmhhg]qhX Introductionqq}q(hlX IntroductionqhmhubahsU referencequbahsU paragraphqubahsU list_itemqubh)q}q(hlUhu}q(hy]hz]hx]hw]h{]uhmhhg]q(h)q}q(hlUhu}q(hy]hz]hx]hw]h{]uhmhhg]qh)q}q(hlUhu}q(hw]qUid3qahx]hy]hz]h{]UrefidhMuhmhhg]qhXWorkersqͅq}q(hlXWorkersqhmhubahshubahshubh)q}q(hlUhu}q(hy]hz]hx]hw]h{]uhmhhg]q(h)q}q(hlUhu}q(hy]hz]hx]hw]h{]uhmhhg]q(h)q}q(hlUhu}q(hy]hz]hx]hw]h{]uhmhhg]qh)q}q(hlUhu}q(hw]qUid4qahx]hy]hz]h{]Urefidh;uhmhhg]qhXceleryctl: Management Utilityqㅁq}q(hlXceleryctl: Management Utilityqhmhubahshubahshubh)q}q(hlUhu}q(hy]hz]hx]hw]h{]uhmhhg]q(h)q}q(hlUhu}q(hy]hz]hx]hw]h{]uhmhhg]qh)q}q(hlUhu}q(hy]hz]hx]hw]h{]uhmhhg]qh)q}q(hlUhu}q(hw]qUid5qahx]hy]hz]h{]UrefidhSuhmhhg]qhXCommandsqq}q(hlXCommandsqhmhubahshubahshubahshubh)q}q(hlUhu}q(hy]hz]hx]hw]h{]uhmhhg]rh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmhhg]rh)r}r(hlUhu}r(hw]rUid6r ahx]hy]hz]h{]UrefidhCuhmjhg]r hXSpecifying destination nodesr r }r (hlXSpecifying destination nodesrhmjubahshubahshubahshubehshubehshubh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmhhg]r(h)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hw]rUid7rahx]hy]hz]h{]UrefidhBuhmjhg]rhXDjango Admin Monitorrr}r(hlXDjango Admin Monitorr hmjubahshubahshubh)r!}r"(hlUhu}r#(hy]hz]hx]hw]h{]uhmjhg]r$(h)r%}r&(hlUhu}r'(hy]hz]hx]hw]h{]uhmj!hg]r(h)r)}r*(hlUhu}r+(hy]hz]hx]hw]h{]uhmj%hg]r,h)r-}r.(hlUhu}r/(hw]r0Uid8r1ahx]hy]hz]h{]UrefidhKuhmj)hg]r2hXStarting the monitorr3r4}r5(hlXStarting the monitorr6hmj-ubahshubahshubahshubh)r7}r8(hlUhu}r9(hy]hz]hx]hw]h{]uhmj!hg]r:h)r;}r<(hlUhu}r=(hy]hz]hx]hw]h{]uhmj7hg]r>h)r?}r@(hlUhu}rA(hw]rBUid9rCahx]hy]hz]h{]Urefidh=uhmj;hg]rDhXShutter frequencyrErF}rG(hlXShutter frequencyrHhmj?ubahshubahshubahshubh)rI}rJ(hlUhu}rK(hy]hz]hx]hw]h{]uhmj!hg]rLh)rM}rN(hlUhu}rO(hy]hz]hx]hw]h{]uhmjIhg]rPh)rQ}rR(hlUhu}rS(hw]rTUid10rUahx]hy]hz]h{]UrefidhduhmjMhg]rVhXUsing outside of DjangorWrX}rY(hlXUsing outside of DjangorZhmjQubahshubahshubahshubehshubehshubh)r[}r\(hlUhu}r](hy]hz]hx]hw]h{]uhmhhg]r^h)r_}r`(hlUhu}ra(hy]hz]hx]hw]h{]uhmj[hg]rbh)rc}rd(hlUhu}re(hw]rfUid11rgahx]hy]hz]h{]Urefidhfuhmj_hg]rhhXceleryev: Curses Monitorrirj}rk(hlXceleryev: Curses Monitorrlhmjcubahshubahshubahshubh)rm}rn(hlUhu}ro(hy]hz]hx]hw]h{]uhmhhg]rph)rq}rr(hlUhu}rs(hy]hz]hx]hw]h{]uhmjmhg]rth)ru}rv(hlUhu}rw(hw]rxUid12ryahx]hy]hz]h{]UrefidhGuhmjqhg]rzhXcelerymon: Web monitorr{r|}r}(hlXcelerymon: Web monitorr~hmjuubahshubahshubahshubehshubehshubh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmhhg]r(h)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hw]rUid13rahx]hy]hz]h{]Urefidh^uhmjhg]rhXRabbitMQrr}r(hlXRabbitMQrhmjubahshubahshubh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hw]rUid14rahx]hy]hz]h{]UrefidhXuhmjhg]rhXInspecting queuesrr}r(hlXInspecting queuesrhmjubahshubahshubahshubahshubehshubh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmhhg]rh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hw]rUid15rahx]hy]hz]h{]Urefidh_uhmjhg]rhXMuninrr}r(hlXMuninrhmjubahshubahshubahshubh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmhhg]r(h)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hw]rUid16rahx]hy]hz]h{]UrefidhPuhmjhg]rhXEventsrr}r(hlXEventsrhmjubahshubahshubh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]r(h)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]r(h)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hw]rUid17rahx]hy]hz]h{]Urefidh>uhmjhg]rhX Snapshotsrr}r(hlX Snapshotsrhmjubahshubahshubh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hw]rUid18rahx]hy]hz]h{]UrefidhZuhmjhg]rhX Custom Camerarr}r(hlX Custom Camerarhmjubahshubahshubahshubahshubehshubh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]r(h)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlUhu}r(hw]rUid19rahx]hy]hz]h{]UrefidhDuhmjhg]rhXEvent Referencerr}r(hlXEvent Referencerhmjubahshubahshubh)r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmjhg]r (h)r }r(hlUhu}r(hy]hz]hx]hw]h{]uhmj hg]rh)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmj hg]rh)r}r(hlUhu}r(hw]rUid20rahx]hy]hz]h{]UrefidhOuhmjhg]rhX Task Eventsrr}r(hlX Task Eventsrhmjubahshubahshubahshubh)r}r (hlUhu}r!(hy]hz]hx]hw]h{]uhmj hg]r"h)r#}r$(hlUhu}r%(hy]hz]hx]hw]h{]uhmjhg]r&h)r'}r((hlUhu}r)(hw]r*Uid21r+ahx]hy]hz]h{]UrefidhQuhmj#hg]r,hX Worker Eventsr-r.}r/(hlX Worker Eventsr0hmj'ubahshubahshubahshubehshubehshubehshubehshubeubaubh)r1}r2(hlUhmhhnhqhshhu}r3(hy]hz]hx]hw]r4hLah{]r5hauh}K h~hhg]r6(h)r7}r8(hlhhmj1hnhqhshhu}r9(hw]hx]hy]hz]h{]h|huh}K h~hhg]r:hX Introductionr;r<}r=(hlhhmj7ubaubh)r>}r?(hlXIThere are several tools available to monitor and inspect Celery clusters.r@hmj1hnhqhshhu}rA(hy]hz]hx]hw]h{]uh}K h~hhg]rBhXIThere are several tools available to monitor and inspect Celery clusters.rCrD}rE(hlj@hmj>ubaubh)rF}rG(hlXxThis document describes some of these, as as well as features related to monitoring, like events and broadcast commands.rHhmj1hnhqhshhu}rI(hy]hz]hx]hw]h{]uh}Kh~hhg]rJhXxThis document describes some of these, as as well as features related to monitoring, like events and broadcast commands.rKrL}rM(hljHhmjFubaubhi)rN}rO(hlX.. _monitoring-workers:hmj1hnhqhshthu}rP(hw]hx]hy]hz]h{]h|hJuh}Kh~hhg]ubeubh)rQ}rR(hlUhmhhnhqh}rShjNshshhu}rT(hy]hz]hx]hw]rU(hMhJeh{]rV(hheuh}Kh~hh}rWhJjNshg]rX(h)rY}rZ(hlhhmjQhnhqhshhu}r[(hw]hx]hy]hz]h{]h|huh}Kh~hhg]r\hXWorkersr]r^}r_(hlhhmjYubaubhi)r`}ra(hlX.. _monitoring-celeryctl:hmjQhnhqhshthu}rb(hw]hx]hy]hz]h{]h|hauh}Kh~hhg]ubh)rc}rd(hlUhmjQhnhqh}reh,j`shshhu}rf(hy]hz]hx]hw]rg(h;haeh{]rh(hh,euh}Kh~hh}rihaj`shg]rj(h)rk}rl(hlhhmjchnhqhshhu}rm(hw]hx]hy]hz]h{]h|huh}Kh~hhg]rnhXceleryctl: Management Utilityrorp}rq(hlhhmjkubaubcsphinx.addnodes versionmodified rr)rs}rt(hlUhmjchnhqhsUversionmodifiedruhu}rv(UversionrwX2.1rxhw]hx]hy]hz]h{]UtyperyX versionaddedrzuh}Kh~hhg]r{h)r|}r}(hlUhmjshnhqhshhu}r~(hy]hz]hx]hw]h{]uh}Kh~hhg]rcdocutils.nodes inline r)r}r(hlUhu}r(hy]hz]rjuahx]hw]h{]uhmj|hg]rhXNew in version 2.1.rr}r(hlUhmjubahsUinlinerubaubaubh)r}r(hlXu:mod:`~celery.bin.celeryctl` is a command line utility to inspect and manage worker nodes (and to some degree tasks).hmjchnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]r(csphinx.addnodes pending_xref r)r}r(hlX:mod:`~celery.bin.celeryctl`rhmjhnhqhsU pending_xrefrhu}r(UreftypeXmodUrefwarnrU reftargetrXcelery.bin.celeryctlU refdomainXpyrhw]hx]U refexplicithy]hz]h{]UrefdocrXuserguide/monitoringrUpy:classrNU py:modulerNuh}Khg]rcdocutils.nodes literal r)r}r(hljhu}r(hy]hz]r(UxrefrjXpy-modrehx]hw]h{]uhmjhg]rhX celeryctlrr}r(hlUhmjubahsUliteralrubaubhXY is a command line utility to inspect and manage worker nodes (and to some degree tasks).rr}r(hlXY is a command line utility to inspect and manage worker nodes (and to some degree tasks).hmjubeubh)r}r(hlX'To list all the commands available do::rhmjchnhqhshhu}r(hy]hz]hx]hw]h{]uh}K!h~hhg]rhX&To list all the commands available do:rr}r(hlX&To list all the commands available do:hmjubaubcdocutils.nodes literal_block r)r}r(hlX$ celeryctl helphmjchnhqhsU literal_blockrhu}r(U xml:spacerUpreserverhw]hx]hy]hz]h{]uh}K#h~hhg]rhX$ celeryctl helprr}r(hlUhmjubaubh)r}r(hlX*or to get help for a specific command do::rhmjchnhqhshhu}r(hy]hz]hx]hw]h{]uh}K%h~hhg]rhX)or to get help for a specific command do:rr}r(hlX)or to get help for a specific command do:hmjubaubj)r}r(hlX$ celeryctl --helphmjchnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}K'h~hhg]rhX$ celeryctl --helprr}r(hlUhmjubaubh)r}r(hlUhmjchnhqhshhu}r(hy]hz]hx]hw]rhSah{]rhauh}K*h~hhg]r(h)r}r(hlhhmjhnhqhshhu}r(hw]hx]hy]hz]h{]h|huh}K*h~hhg]rhXCommandsrr}r(hlhhmjubaubh)r}r(hlUhmjhnhqhshhu}r(UbulletrX*hw]hx]hy]hz]h{]uh}K,h~hhg]r(h)r}r(hlXI**status**: List active nodes in this cluster :: $ celeryctl status hmjhnNhshhu}r(hy]hz]hx]hw]h{]uh}Nh~hhg]rcdocutils.nodes definition_list r)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rcdocutils.nodes definition_list_item r)r}r(hlXE**status**: List active nodes in this cluster :: $ celeryctl status hmjhnhqhsUdefinition_list_itemrhu}r(hy]hz]hx]hw]h{]uh}K/hg]r(cdocutils.nodes term r)r}r(hlX-**status**: List active nodes in this clusterhmjhnhqhsUtermrhu}r(hy]hz]hx]hw]h{]uh}K/hg]r(cdocutils.nodes strong r)r}r(hlX **status**hu}r(hy]hz]hx]hw]h{]uhmjhg]rhXstatusrr}r(hlUhmjubahsUstrongrubhX#: List active nodes in this clusterrr}r(hlX#: List active nodes in this clusterhmjubeubcdocutils.nodes definition r)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rj)r}r(hlX$ celeryctl statushmjhnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}K/hg]rhX$ celeryctl statusr r }r (hlUhmjubaubahsU definitionr ubeubahsUdefinition_listr ubaubh)r}r(hlX**result**: Show the result of a task :: $ celeryctl result -t tasks.add 4e196aa4-0141-4601-8138-7aa33db0f577 Note that you can omit the name of the task as long as the task doesn't use a custom result backend. hmjhnNhshhu}r(hy]hz]hx]hw]h{]uh}Nh~hhg]rj)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rj)r}r(hlX**result**: Show the result of a task :: $ celeryctl result -t tasks.add 4e196aa4-0141-4601-8138-7aa33db0f577 Note that you can omit the name of the task as long as the task doesn't use a custom result backend. hmjhnhqhsjhu}r(hy]hz]hx]hw]h{]uh}K7hg]r(j)r}r(hlX%**result**: Show the result of a taskhmjhnhqhsjhu}r(hy]hz]hx]hw]h{]uh}K7hg]r(j)r}r(hlX **result**hu}r (hy]hz]hx]hw]h{]uhmjhg]r!hXresultr"r#}r$(hlUhmjubahsjubhX: Show the result of a taskr%r&}r'(hlX: Show the result of a taskhmjubeubj)r(}r)(hlUhu}r*(hy]hz]hx]hw]h{]uhmjhg]r+(j)r,}r-(hlXD$ celeryctl result -t tasks.add 4e196aa4-0141-4601-8138-7aa33db0f577hmj(hsjhu}r.(jjhw]hx]hy]hz]h{]uh}K4hg]r/hXD$ celeryctl result -t tasks.add 4e196aa4-0141-4601-8138-7aa33db0f577r0r1}r2(hlUhmj,ubaubh)r3}r4(hlXdNote that you can omit the name of the task as long as the task doesn't use a custom result backend.r5hmj(hnhqhshhu}r6(hy]hz]hx]hw]h{]uh}K6hg]r7hXdNote that you can omit the name of the task as long as the task doesn't use a custom result backend.r8r9}r:(hlj5hmj3ubaubehsj ubeubahsj ubaubh)r;}r<(hlX**inspect active**: List active tasks :: $ celeryctl inspect active These are all the tasks that are currently being executed. hmjhnNhshhu}r=(hy]hz]hx]hw]h{]uh}Nh~hhg]r>j)r?}r@(hlUhu}rA(hy]hz]hx]hw]h{]uhmj;hg]rBj)rC}rD(hlX**inspect active**: List active tasks :: $ celeryctl inspect active These are all the tasks that are currently being executed. hmj?hnhqhsjhu}rE(hy]hz]hx]hw]h{]uh}K>hg]rF(j)rG}rH(hlX%**inspect active**: List active taskshmjChnhqhsjhu}rI(hy]hz]hx]hw]h{]uh}K>hg]rJ(j)rK}rL(hlX**inspect active**hu}rM(hy]hz]hx]hw]h{]uhmjGhg]rNhXinspect activerOrP}rQ(hlUhmjKubahsjubhX: List active tasksrRrS}rT(hlX: List active taskshmjGubeubj)rU}rV(hlUhu}rW(hy]hz]hx]hw]h{]uhmjChg]rX(j)rY}rZ(hlX$ celeryctl inspect activehmjUhsjhu}r[(jjhw]hx]hy]hz]h{]uh}Khg]rdhX:These are all the tasks that are currently being executed.rerf}rg(hljbhmj`ubaubehsj ubeubahsj ubaubh)rh}ri(hlX**inspect scheduled**: List scheduled ETA tasks :: $ celeryctl inspect scheduled These are tasks reserved by the worker because they have the ``eta`` or ``countdown`` argument set. hmjhnNhshhu}rj(hy]hz]hx]hw]h{]uh}Nh~hhg]rkj)rl}rm(hlUhu}rn(hy]hz]hx]hw]h{]uhmjhhg]roj)rp}rq(hlX**inspect scheduled**: List scheduled ETA tasks :: $ celeryctl inspect scheduled These are tasks reserved by the worker because they have the ``eta`` or ``countdown`` argument set. hmjlhnhqhsjhu}rr(hy]hz]hx]hw]h{]uh}KFhg]rs(j)rt}ru(hlX/**inspect scheduled**: List scheduled ETA taskshmjphnhqhsjhu}rv(hy]hz]hx]hw]h{]uh}KFhg]rw(j)rx}ry(hlX**inspect scheduled**hu}rz(hy]hz]hx]hw]h{]uhmjthg]r{hXinspect scheduledr|r}}r~(hlUhmjxubahsjubhX: List scheduled ETA tasksrr}r(hlX: List scheduled ETA taskshmjtubeubj)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjphg]r(j)r}r(hlX$ celeryctl inspect scheduledhmjhsjhu}r(jjhw]hx]hy]hz]h{]uh}KChg]rhX$ celeryctl inspect scheduledrr}r(hlUhmjubaubh)r}r(hlXcThese are tasks reserved by the worker because they have the ``eta`` or ``countdown`` argument set.hmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}KEhg]r(hX=These are tasks reserved by the worker because they have the rr}r(hlX=These are tasks reserved by the worker because they have the hmjubj)r}r(hlX``eta``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhXetarr}r(hlUhmjubahsjubhX or rr}r(hlX or hmjubj)r}r(hlX ``countdown``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhX countdownrr}r(hlUhmjubahsjubhX argument set.rr}r(hlX argument set.hmjubeubehsj ubeubahsj ubaubh)r}r(hlX**inspect reserved**: List reserved tasks :: $ celeryctl inspect reserved This will list all tasks that have been prefetched by the worker, and is currently waiting to be executed (does not include tasks with an eta). hmjhnNhshhu}r(hy]hz]hx]hw]h{]uh}Nh~hhg]rj)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rj)r}r(hlX**inspect reserved**: List reserved tasks :: $ celeryctl inspect reserved This will list all tasks that have been prefetched by the worker, and is currently waiting to be executed (does not include tasks with an eta). hmjhnhqhsjhu}r(hy]hz]hx]hw]h{]uh}KOhg]r(j)r}r(hlX)**inspect reserved**: List reserved taskshmjhnhqhsjhu}r(hy]hz]hx]hw]h{]uh}KOhg]r(j)r}r(hlX**inspect reserved**hu}r(hy]hz]hx]hw]h{]uhmjhg]rhXinspect reservedrr}r(hlUhmjubahsjubhX: List reserved tasksrr}r(hlX: List reserved taskshmjubeubj)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]r(j)r}r(hlX$ celeryctl inspect reservedhmjhsjhu}r(jjhw]hx]hy]hz]h{]uh}KKhg]rhX$ celeryctl inspect reservedrr}r(hlUhmjubaubh)r}r(hlXThis will list all tasks that have been prefetched by the worker, and is currently waiting to be executed (does not include tasks with an eta).rhmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}KMhg]rhXThis will list all tasks that have been prefetched by the worker, and is currently waiting to be executed (does not include tasks with an eta).rr}r(hljhmjubaubehsj ubeubahsj ubaubh)r}r(hlX[**inspect revoked**: List history of revoked tasks :: $ celeryctl inspect revoked hmjhnNhshhu}r(hy]hz]hx]hw]h{]uh}Nh~hhg]rj)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rj)r}r(hlXW**inspect revoked**: List history of revoked tasks :: $ celeryctl inspect revoked hmjhnhqhsjhu}r(hy]hz]hx]hw]h{]uh}KThg]r(j)r}r(hlX2**inspect revoked**: List history of revoked taskshmjhnhqhsjhu}r(hy]hz]hx]hw]h{]uh}KThg]r(j)r}r(hlX**inspect revoked**hu}r(hy]hz]hx]hw]h{]uhmjhg]rhXinspect revokedrr}r(hlUhmjubahsjubhX: List history of revoked tasksrr}r(hlX: List history of revoked taskshmjubeubj)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rj)r}r(hlX$ celeryctl inspect revokedhmjhsjhu}r(jjhw]hx]hy]hz]h{]uh}KThg]rhX$ celeryctl inspect revokedrr}r(hlUhmjubaubahsj ubeubahsj ubaubh)r}r(hlXe**inspect registered_tasks**: List registered tasks :: $ celeryctl inspect registered_tasks hmjhnNhshhu}r(hy]hz]hx]hw]h{]uh}Nh~hhg]rj)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rj)r}r(hlXa**inspect registered_tasks**: List registered tasks :: $ celeryctl inspect registered_tasks hmjhnhqhsjhu}r(hy]hz]hx]hw]h{]uh}KYhg]r(j)r}r(hlX3**inspect registered_tasks**: List registered taskshmjhnhqhsjhu}r(hy]hz]hx]hw]h{]uh}KYhg]r (j)r }r (hlX**inspect registered_tasks**hu}r (hy]hz]hx]hw]h{]uhmjhg]r hXinspect registered_tasksrr}r(hlUhmj ubahsjubhX: List registered tasksrr}r(hlX: List registered taskshmjubeubj)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjhg]rj)r}r(hlX$$ celeryctl inspect registered_taskshmjhsjhu}r(jjhw]hx]hy]hz]h{]uh}KYhg]rhX$$ celeryctl inspect registered_tasksrr}r(hlUhmjubaubahsj ubeubahsj ubaubh)r}r (hlXQ**inspect states**: Show worker statistics :: $ celeryctl inspect stats hmjhnNhshhu}r!(hy]hz]hx]hw]h{]uh}Nh~hhg]r"j)r#}r$(hlUhu}r%(hy]hz]hx]hw]h{]uhmjhg]r&j)r'}r((hlXM**inspect states**: Show worker statistics :: $ celeryctl inspect stats hmj#hnhqhsjhu}r)(hy]hz]hx]hw]h{]uh}K^hg]r*(j)r+}r,(hlX***inspect states**: Show worker statisticshmj'hnhqhsjhu}r-(hy]hz]hx]hw]h{]uh}K^hg]r.(j)r/}r0(hlX**inspect states**hu}r1(hy]hz]hx]hw]h{]uhmj+hg]r2hXinspect statesr3r4}r5(hlUhmj/ubahsjubhX: Show worker statisticsr6r7}r8(hlX: Show worker statisticshmj+ubeubj)r9}r:(hlUhu}r;(hy]hz]hx]hw]h{]uhmj'hg]r<j)r=}r>(hlX$ celeryctl inspect statshmj9hsjhu}r?(jjhw]hx]hy]hz]h{]uh}K^hg]r@hX$ celeryctl inspect statsrArB}rC(hlUhmj=ubaubahsj ubeubahsj ubaubh)rD}rE(hlXW**inspect enable_events**: Enable events :: $ celeryctl inspect enable_events hmjhnNhshhu}rF(hy]hz]hx]hw]h{]uh}Nh~hhg]rGj)rH}rI(hlUhu}rJ(hy]hz]hx]hw]h{]uhmjDhg]rKj)rL}rM(hlXS**inspect enable_events**: Enable events :: $ celeryctl inspect enable_events hmjHhnhqhsjhu}rN(hy]hz]hx]hw]h{]uh}Kchg]rO(j)rP}rQ(hlX(**inspect enable_events**: Enable eventshmjLhnhqhsjhu}rR(hy]hz]hx]hw]h{]uh}Kchg]rS(j)rT}rU(hlX**inspect enable_events**hu}rV(hy]hz]hx]hw]h{]uhmjPhg]rWhXinspect enable_eventsrXrY}rZ(hlUhmjTubahsjubhX: Enable eventsr[r\}r](hlX: Enable eventshmjPubeubj)r^}r_(hlUhu}r`(hy]hz]hx]hw]h{]uhmjLhg]raj)rb}rc(hlX!$ celeryctl inspect enable_eventshmj^hsjhu}rd(jjhw]hx]hy]hz]h{]uh}Kchg]rehX!$ celeryctl inspect enable_eventsrfrg}rh(hlUhmjbubaubahsj ubeubahsj ubaubh)ri}rj(hlX[**inspect disable_events**: Disable events :: $ celeryctl inspect disable_events hmjhnNhshhu}rk(hy]hz]hx]hw]h{]uh}Nh~hhg]rlj)rm}rn(hlUhu}ro(hy]hz]hx]hw]h{]uhmjihg]rpj)rq}rr(hlXW**inspect disable_events**: Disable events :: $ celeryctl inspect disable_events hmjmhnhqhsjhu}rs(hy]hz]hx]hw]h{]uh}Kihg]rt(j)ru}rv(hlX***inspect disable_events**: Disable eventshmjqhnhqhsjhu}rw(hy]hz]hx]hw]h{]uh}Kihg]rx(j)ry}rz(hlX**inspect disable_events**hu}r{(hy]hz]hx]hw]h{]uhmjuhg]r|hXinspect disable_eventsr}r~}r(hlUhmjyubahsjubhX: Disable eventsrr}r(hlX: Disable eventshmjuubeubj)r}r(hlUhu}r(hy]hz]hx]hw]h{]uhmjqhg]rj)r}r(hlX"$ celeryctl inspect disable_eventshmjhsjhu}r(jjhw]hx]hy]hz]h{]uh}Khhg]rhX"$ celeryctl inspect disable_eventsrr}r(hlUhmjubaubahsj ubeubahsj ubaubeubcdocutils.nodes note r)r}r(hlXAll ``inspect`` commands supports a ``--timeout`` argument, This is the number of seconds to wait for responses. You may have to increase this timeout if you're getting empty responses due to latency.hmjhnhqhsUnoterhu}r(hy]hz]hx]hw]h{]uh}Nh~hhg]rh)r}r(hlXAll ``inspect`` commands supports a ``--timeout`` argument, This is the number of seconds to wait for responses. You may have to increase this timeout if you're getting empty responses due to latency.hmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kmhg]r(hXAll rr}r(hlXAll hmjubj)r}r(hlX ``inspect``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhXinspectrr}r(hlUhmjubahsjubhX commands supports a rr}r(hlX commands supports a hmjubj)r}r(hlX ``--timeout``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhX --timeoutrr}r(hlUhmjubahsjubhX argument, This is the number of seconds to wait for responses. You may have to increase this timeout if you're getting empty responses due to latency.rr}r(hlX argument, This is the number of seconds to wait for responses. You may have to increase this timeout if you're getting empty responses due to latency.hmjubeubaubhi)r}r(hlX".. _celeryctl-inspect-destination:hmjhnhqhshthu}r(hw]hx]hy]hz]h{]h|hIuh}Krh~hhg]ubeubh)r}r(hlUhmjchnhqh}rhjshshhu}r(hy]hz]hx]hw]r(hChIeh{]r(hheuh}Kuh~hh}rhIjshg]r(h)r}r(hljhmjhnhqhshhu}r(hw]hx]hy]hz]h{]h|j uh}Kuh~hhg]rhXSpecifying destination nodesrr}r(hljhmjubaubh)r}r(hlXBy default the inspect commands operates on all workers. You can specify a single, or a list of workers by using the ``--destination`` argument::hmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kwh~hhg]r(hXuBy default the inspect commands operates on all workers. You can specify a single, or a list of workers by using the rr}r(hlXuBy default the inspect commands operates on all workers. You can specify a single, or a list of workers by using the hmjubj)r}r(hlX``--destination``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhX --destinationrr}r(hlUhmjubahsjubhX argument:rr}r(hlX argument:hmjubeubj)r}r(hlX%$ celeryctl inspect -d w1,w2 reservedhmjhnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}K{h~hhg]rhX%$ celeryctl inspect -d w1,w2 reservedrr}r(hlUhmjubaubhi)r}r(hlX.. _monitoring-django-admin:hmjhnhqhshthu}r(hw]hx]hy]hz]h{]h|h?uh}K~h~hhg]ubeubeubh)r}r(hlUhmjQhnhqh}rh jshshhu}r(hy]hz]hx]hw]r(hBh?eh{]r(h h euh}Kh~hh}rh?jshg]r(h)r}r(hlj hmjhnhqhshhu}r(hw]hx]hy]hz]h{]h|juh}Kh~hhg]rhXDjango Admin Monitorrr}r(hlj hmjubaubjr)r}r(hlUhmjhnhqhsjuhu}r(jwX2.1hw]hx]hy]hz]h{]jyX versionaddedruh}Kh~hhg]rh)r}r(hlUhmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]rj)r}r(hlUhu}r(hy]hz]rjuahx]hw]h{]uhmjhg]rhXNew in version 2.1.rr}r(hlUhmjubahsjubaubaubh)r}r(hlXWhen you add `django-celery`_ to your Django project you will automatically get a monitor section as part of the Django admin interface.hmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]r(hX When you add rr}r(hlX When you add hmjubh)r}r(hlX`django-celery`_UresolvedrKhmjhshhu}r(UnameX django-celeryrUrefurirX)http://pypi.python.org/pypi/django-celeryr hw]hx]hy]hz]h{]uhg]r hX django-celeryr r }r (hlUhmjubaubhXk to your Django project you will automatically get a monitor section as part of the Django admin interface.rr}r(hlXk to your Django project you will automatically get a monitor section as part of the Django admin interface.hmjubeubh)r}r(hlXGThis can also be used if you're not using Celery with a Django project.rhmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]rhXGThis can also be used if you're not using Celery with a Django project.rr}r(hljhmjubaubh)r}r(hlX *Screenshot*rhmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]rcdocutils.nodes emphasis r)r}r (hljhu}r!(hy]hz]hx]hw]h{]uhmjhg]r"hX Screenshotr#r$}r%(hlUhmjubahsUemphasisr&ubaubcdocutils.nodes figure r')r(}r)(hlUhmjhnhqhsUfigurer*hu}r+(hy]hz]hx]hw]h{]uh}Kh~hhg]r,cdocutils.nodes image r-)r.}r/(hlX-.. figure:: ../images/djangoceleryadmin2.jpg hu}r0(UuriX*userguide/../images/djangoceleryadmin2.jpgr1hw]hx]hy]hz]U candidatesr2}r3U*j1sh{]uhmj(hg]hsUimager4ubaubhi)r5}r6(hlX>.. _`django-celery`: http://pypi.python.org/pypi/django-celeryU referencedr7Khmjhnhqhshthu}r8(jj hw]r9hcahx]hy]hz]h{]r:h.auh}Kh~hhg]ubhi)r;}r<(hlX.. _monitoring-django-starting:hmjhnhqhshthu}r=(hw]hx]hy]hz]h{]h|h}r?(hlUhmjhnhqh}r@hj;shshhu}rA(hy]hz]hx]hw]rB(hKhhnhqhshhu}rH(hw]hx]hy]hz]h{]h|j1uh}Kh~hhg]rIhXStarting the monitorrJrK}rL(hlj6hmjFubaubh)rM}rN(hlXThe Celery section will already be present in your admin interface, but you won't see any data appearing until you start the snapshot camera.rOhmj>hnhqhshhu}rP(hy]hz]hx]hw]h{]uh}Kh~hhg]rQhXThe Celery section will already be present in your admin interface, but you won't see any data appearing until you start the snapshot camera.rRrS}rT(hljOhmjMubaubh)rU}rV(hlXThe camera takes snapshots of the events your workers sends at regular intervals, storing them in your database (See :ref:`monitoring-snapshots`).hmj>hnhqhshhu}rW(hy]hz]hx]hw]h{]uh}Kh~hhg]rX(hXuThe camera takes snapshots of the events your workers sends at regular intervals, storing them in your database (See rYrZ}r[(hlXuThe camera takes snapshots of the events your workers sends at regular intervals, storing them in your database (See hmjUubj)r\}r](hlX:ref:`monitoring-snapshots`r^hmjUhnhqhsjhu}r_(UreftypeXrefjjXmonitoring-snapshotsU refdomainXstdr`hw]hx]U refexplicithy]hz]h{]jjuh}Khg]raj)rb}rc(hlj^hu}rd(hy]hz]re(jj`Xstd-refrfehx]hw]h{]uhmj\hg]rghXmonitoring-snapshotsrhri}rj(hlUhmjbubahsj&ubaubhX).rkrl}rm(hlX).hmjUubeubh)rn}ro(hlXTo start the camera run::rphmj>hnhqhshhu}rq(hy]hz]hx]hw]h{]uh}Kh~hhg]rrhXTo start the camera run:rsrt}ru(hlXTo start the camera run:hmjnubaubj)rv}rw(hlX$ python manage.py celerycamhmj>hnhqhsjhu}rx(jjhw]hx]hy]hz]h{]uh}Kh~hhg]ryhX$ python manage.py celerycamrzr{}r|(hlUhmjvubaubh)r}}r~(hlXHIf you haven't already enabled the sending of events you need to do so::rhmj>hnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]rhXGIf you haven't already enabled the sending of events you need to do so:rr}r(hlXGIf you haven't already enabled the sending of events you need to do so:hmj}ubaubj)r}r(hlX2$ python manage.py celeryctl inspect enable_eventshmj>hnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}Kh~hhg]rhX2$ python manage.py celeryctl inspect enable_eventsrr}r(hlUhmjubaubcdocutils.nodes field_list r)r}r(hlUhmj>hnhqhsU field_listrhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]rcdocutils.nodes field r)r}r(hlUhmjhnhqhsUfieldrhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]r(cdocutils.nodes field_name r)r}r(hlXTiprhu}r(hy]hz]hx]hw]h{]uhmjhg]rhXTiprr}r(hljhmjubahsU field_namerubcdocutils.nodes field_body r)r}r(hlXfYou can enable events when the worker starts using the ``-E`` argument to :mod:`~celery.bin.celeryd`. hu}r(hy]hz]hx]hw]h{]uhmjhg]rh)r}r(hlXeYou can enable events when the worker starts using the ``-E`` argument to :mod:`~celery.bin.celeryd`.hmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Khg]r(hX7You can enable events when the worker starts using the rr}r(hlX7You can enable events when the worker starts using the hmjubj)r}r(hlX``-E``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhX-Err}r(hlUhmjubahsjubhX argument to rr}r(hlX argument to hmjubj)r}r(hlX:mod:`~celery.bin.celeryd`rhmjhnhqhsjhu}r(UreftypeXmodjjXcelery.bin.celerydU refdomainXpyrhw]hx]U refexplicithy]hz]h{]jjjNjNuh}Khg]rj)r}r(hljhu}r(hy]hz]r(jjXpy-modrehx]hw]h{]uhmjhg]rhXcelerydrr}r(hlUhmjubahsjubaubhX.r}r(hlX.hmjubeubahsU field_bodyrubeubaubh)r}r(hlXNow that the camera has been started, and events have been enabled you should be able to see your workers and the tasks in the admin interface (it may take some time for workers to show up).rhmj>hnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]rhXNow that the camera has been started, and events have been enabled you should be able to see your workers and the tasks in the admin interface (it may take some time for workers to show up).rr}r(hljhmjubaubh)r}r(hlXThe admin interface shows tasks, worker nodes, and even lets you perform some actions, like revoking and rate limiting tasks, or shutting down worker nodes.rhmj>hnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]rhXThe admin interface shows tasks, worker nodes, and even lets you perform some actions, like revoking and rate limiting tasks, or shutting down worker nodes.rr}r(hljhmjubaubhi)r}r(hlX .. _monitoring-django-frequency:hmj>hnhqhshthu}r(hw]hx]hy]hz]h{]h|heuh}Kh~hhg]ubeubh)r}r(hlUhmjhnhqh}rh0jshshhu}r(hy]hz]hx]hw]r(h=heeh{]r(hh0euh}Kh~hh}rhejshg]r(h)r}r(hljHhmjhnhqhshhu}r(hw]hx]hy]hz]h{]h|jCuh}Kh~hhg]rhXShutter frequencyrr}r(hljHhmjubaubh)r}r(hlXBy default the camera takes a snapshot every second, if this is too frequent or you want to have higher precision, then you can change this using the ``--frequency`` argument. This is a float describing how often, in seconds, it should wake up to check if there are any new events::hmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]r(hXBy default the camera takes a snapshot every second, if this is too frequent or you want to have higher precision, then you can change this using the rr}r(hlXBy default the camera takes a snapshot every second, if this is too frequent or you want to have higher precision, then you can change this using the hmjubj)r}r(hlX``--frequency``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhX --frequencyrr}r(hlUhmjubahsjubhXu argument. This is a float describing how often, in seconds, it should wake up to check if there are any new events:rr}r(hlXu argument. This is a float describing how often, in seconds, it should wake up to check if there are any new events:hmjubeubj)r}r(hlX,$ python manage.py celerycam --frequency=3.0hmjhnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}Kh~hhg]rhX,$ python manage.py celerycam --frequency=3.0rr}r(hlUhmjubaubh)r}r(hlXThe camera also supports rate limiting using the ``--maxrate`` argument. While the frequency controls how often the camera thread wakes up, the rate limit controls how often it will actually take a snapshot.hmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]r(hX1The camera also supports rate limiting using the rr }r (hlX1The camera also supports rate limiting using the hmjubj)r }r (hlX ``--maxrate``hu}r (hy]hz]hx]hw]h{]uhmjhg]rhX --maxraterr}r(hlUhmj ubahsjubhX argument. While the frequency controls how often the camera thread wakes up, the rate limit controls how often it will actually take a snapshot.rr}r(hlX argument. While the frequency controls how often the camera thread wakes up, the rate limit controls how often it will actually take a snapshot.hmjubeubh)r}r(hlXThe rate limits can be specified in seconds, minutes or hours by appending ``/s``, ``/m`` or ``/h`` to the value. Example: ``--maxrate=100/m``, means "hundred writes a minute".hmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]r(hXKThe rate limits can be specified in seconds, minutes or hours by appending rr}r(hlXKThe rate limits can be specified in seconds, minutes or hours by appending hmjubj)r}r(hlX``/s``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhX/sr r!}r"(hlUhmjubahsjubhX, r#r$}r%(hlX, hmjubj)r&}r'(hlX``/m``hu}r((hy]hz]hx]hw]h{]uhmjhg]r)hX/mr*r+}r,(hlUhmj&ubahsjubhX or r-r.}r/(hlX or hmjubj)r0}r1(hlX``/h``hu}r2(hy]hz]hx]hw]h{]uhmjhg]r3hX/hr4r5}r6(hlUhmj0ubahsjubhX to the value. Example: r7r8}r9(hlX to the value. Example: hmjubj)r:}r;(hlX``--maxrate=100/m``hu}r<(hy]hz]hx]hw]h{]uhmjhg]r=hX--maxrate=100/mr>r?}r@(hlUhmj:ubahsjubhX", means "hundred writes a minute".rArB}rC(hlX", means "hundred writes a minute".hmjubeubh)rD}rE(hlXhThe rate limit is off by default, which means it will take a snapshot for every ``--frequency`` seconds.hmjhnhqhshhu}rF(hy]hz]hx]hw]h{]uh}Kh~hhg]rG(hXPThe rate limit is off by default, which means it will take a snapshot for every rHrI}rJ(hlXPThe rate limit is off by default, which means it will take a snapshot for every hmjDubj)rK}rL(hlX``--frequency``hu}rM(hy]hz]hx]hw]h{]uhmjDhg]rNhX --frequencyrOrP}rQ(hlUhmjKubahsjubhX seconds.rRrS}rT(hlX seconds.hmjDubeubh)rU}rV(hlXThe events also expire after some time, so the database doesn't fill up. Successful tasks are deleted after 1 day, failed tasks after 3 days, and tasks in other states after 5 days.rWhmjhnhqhshhu}rX(hy]hz]hx]hw]h{]uh}Kh~hhg]rYhXThe events also expire after some time, so the database doesn't fill up. Successful tasks are deleted after 1 day, failed tasks after 3 days, and tasks in other states after 5 days.rZr[}r\(hljWhmjUubaubhi)r]}r^(hlX.. _monitoring-nodjango:hmjhnhqhshthu}r_(hw]hx]hy]hz]h{]h|hRuh}Kh~hhg]ubeubh)r`}ra(hlUhmjhnhqh}rbhj]shshhu}rc(hy]hz]hx]hw]rd(hdhReh{]re(h/heuh}Kh~hh}rfhRj]shg]rg(h)rh}ri(hljZhmj`hnhqhshhu}rj(hw]hx]hy]hz]h{]h|jUuh}Kh~hhg]rkhXUsing outside of Djangorlrm}rn(hljZhmjhubaubh)ro}rp(hlX`django-celery` also installs the :program:`djcelerymon` program. This can be used by non-Django users, and runs both a web server and a snapshot camera in the same process.hmj`hnhqhshhu}rq(hy]hz]hx]hw]h{]uh}Kh~hhg]rr(cdocutils.nodes title_reference rs)rt}ru(hlX`django-celery`hu}rv(hy]hz]hx]hw]h{]uhmjohg]rwhX django-celeryrxry}rz(hlUhmjtubahsUtitle_referencer{ubhX also installs the r|r}}r~(hlX also installs the hmjoubj)r}r(hlX:program:`djcelerymon`hu}r(hy]hz]rUprogramrahx]hw]h{]uhmjohg]rhX djcelerymonrr}r(hlUhmjubahsjubhXu program. This can be used by non-Django users, and runs both a web server and a snapshot camera in the same process.rr}r(hlXu program. This can be used by non-Django users, and runs both a web server and a snapshot camera in the same process.hmjoubeubh)r}r(hlX**Installing**rhmj`hnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]rj)r}r(hljhu}r(hy]hz]hx]hw]h{]uhmjhg]rhX Installingrr}r(hlUhmjubahsjubaubh)r}r(hlXUsing :program:`pip`::rhmj`hnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]r(hXUsing rr}r(hlXUsing hmjubj)r}r(hlX:program:`pip`hu}r(hy]hz]rjahx]hw]h{]uhmjhg]rhXpiprr}r(hlUhmjubahsjubhX:r}r(hlX:hmjubeubj)r}r(hlX$ pip install -U django-celeryhmj`hnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}Kh~hhg]rhX$ pip install -U django-celeryrr}r(hlUhmjubaubh)r}r(hlX"or using :program:`easy_install`::rhmj`hnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]r(hX or using rr}r(hlX or using hmjubj)r}r(hlX:program:`easy_install`hu}r(hy]hz]rjahx]hw]h{]uhmjhg]rhX easy_installrr}r(hlUhmjubahsjubhX:r}r(hlX:hmjubeubj)r}r(hlX$ easy_install -U django-celeryhmj`hnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}Kh~hhg]rhX$ easy_install -U django-celeryrr}r(hlUhmjubaubh)r}r(hlX **Running**rhmj`hnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]rj)r}r(hljhu}r(hy]hz]hx]hw]h{]uhmjhg]rhXRunningrr}r(hlUhmjubahsjubaubh)r}r(hlX:program:`djcelerymon` reads configuration from your Celery configuration module, and sets up the Django environment using the same settings::hmj`hnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]r(j)r}r(hlX:program:`djcelerymon`hu}r(hy]hz]rjahx]hw]h{]uhmjhg]rhX djcelerymonrr}r(hlUhmjubahsjubhXw reads configuration from your Celery configuration module, and sets up the Django environment using the same settings:rr}r(hlXw reads configuration from your Celery configuration module, and sets up the Django environment using the same settings:hmjubeubj)r}r(hlX $ djcelerymonhmj`hnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}Kh~hhg]rhX $ djcelerymonrr}r(hlUhmjubaubh)r}r(hlXDatabase tables will be created the first time the monitor is run. By default an ``sqlite3`` database file named :file:`djcelerymon.db` is used, so make sure this file is writeable by the user running the monitor.hmj`hnhqhshhu}r(hy]hz]hx]hw]h{]uh}Kh~hhg]r(hXQDatabase tables will be created the first time the monitor is run. By default an rr}r(hlXQDatabase tables will be created the first time the monitor is run. By default an hmjubj)r}r(hlX ``sqlite3``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhXsqlite3rr}r(hlUhmjubahsjubhX database file named rr}r(hlX database file named hmjubj)r}r(hlUhu}r(hw]hx]hy]hz]rXfileraUrolejh{]uhmjhg]rhXdjcelerymon.dbrr}r(hlXdjcelerymon.dbhmjubahsjubhXN is used, so make sure this file is writeable by the user running the monitor.rr}r(hlXN is used, so make sure this file is writeable by the user running the monitor.hmjubeubh)r}r (hlXIf you want to store the events in a different database, e.g. MySQL, then you can configure the ``DATABASE*`` settings directly in your Celery config module. See http://docs.djangoproject.com/en/dev/ref/settings/#databases for more information about the database options available.hmj`hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Kh~hhg]r (hX`If you want to store the events in a different database, e.g. MySQL, then you can configure the r r }r(hlX`If you want to store the events in a different database, e.g. MySQL, then you can configure the hmjubj)r}r(hlX ``DATABASE*``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhX DATABASE*rr}r(hlUhmjubahsjubhX6 settings directly in your Celery config module. See rr}r(hlX6 settings directly in your Celery config module. See hmjubh)r}r(hlX<http://docs.djangoproject.com/en/dev/ref/settings/#databasesrhu}r(Urefurijhw]hx]hy]hz]h{]uhmjhg]rhX<http://docs.djangoproject.com/en/dev/ref/settings/#databasesrr}r (hlUhmjubahshubhX; for more information about the database options available.r!r"}r#(hlX; for more information about the database options available.hmjubeubh)r$}r%(hlXrYou will also be asked to create a superuser (and you need to create one to be able to log into the admin later)::hmj`hnhqhshhu}r&(hy]hz]hx]hw]h{]uh}Kh~hhg]r'hXqYou will also be asked to create a superuser (and you need to create one to be able to log into the admin later):r(r)}r*(hlXqYou will also be asked to create a superuser (and you need to create one to be able to log into the admin later):hmj$ubaubj)r+}r,(hlXCreating table auth_permission Creating table auth_group_permissions [...] You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (Leave blank to use 'username'): username E-mail address: me@example.com Password: ****** Password (again): ****** Superuser created successfully. [...] Django version 1.2.1, using settings 'celeryconfig' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.hmj`hnhqhsjhu}r-(jjhw]hx]hy]hz]h{]uh}Kh~hhg]r.hXCreating table auth_permission Creating table auth_group_permissions [...] You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (Leave blank to use 'username'): username E-mail address: me@example.com Password: ****** Password (again): ****** Superuser created successfully. [...] Django version 1.2.1, using settings 'celeryconfig' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.r/r0}r1(hlUhmj+ubaubh)r2}r3(hlXzNow that the service is started you can visit the monitor at http://127.0.0.1:8000, and log in using the user you created.hmj`hnhqhshhu}r4(hy]hz]hx]hw]h{]uh}Mh~hhg]r5(hX=Now that the service is started you can visit the monitor at r6r7}r8(hlX=Now that the service is started you can visit the monitor at hmj2ubh)r9}r:(hlXhttp://127.0.0.1:8000r;hu}r<(Urefurij;hw]hx]hy]hz]h{]uhmj2hg]r=hXhttp://127.0.0.1:8000r>r?}r@(hlUhmj9ubahshubhX(, and log in using the user you created.rArB}rC(hlX(, and log in using the user you created.hmj2ubeubh)rD}rE(hlXnFor a list of the command line options supported by :program:`djcelerymon`, please see ``djcelerymon --help``.hmj`hnhqhshhu}rF(hy]hz]hx]hw]h{]uh}Mh~hhg]rG(hX4For a list of the command line options supported by rHrI}rJ(hlX4For a list of the command line options supported by hmjDubj)rK}rL(hlX:program:`djcelerymon`hu}rM(hy]hz]rNjahx]hw]h{]uhmjDhg]rOhX djcelerymonrPrQ}rR(hlUhmjKubahsjubhX , please see rSrT}rU(hlX , please see hmjDubj)rV}rW(hlX``djcelerymon --help``hu}rX(hy]hz]hx]hw]h{]uhmjDhg]rYhXdjcelerymon --helprZr[}r\(hlUhmjVubahsjubhX.r]}r^(hlX.hmjDubeubhi)r_}r`(hlX.. _monitoring-celeryev:hmj`hnhqhshthu}ra(hw]hx]hy]hz]h{]h|h\uh}M h~hhg]ubeubeubh)rb}rc(hlUhmjQhnhqh}rdh'j_shshhu}re(hy]hz]hx]hw]rf(hfh\eh{]rg(h1h'euh}M h~hh}rhh\j_shg]ri(h)rj}rk(hljlhmjbhnhqhshhu}rl(hw]hx]hy]hz]h{]h|jguh}M h~hhg]rmhXceleryev: Curses Monitorrnro}rp(hljlhmjjubaubjr)rq}rr(hlUhmjbhnhqhsjuhu}rs(jwX2.0rthw]hx]hy]hz]h{]jyX versionaddedruuh}Mh~hhg]rvh)rw}rx(hlUhmjqhnhqhshhu}ry(hy]hz]hx]hw]h{]uh}Mh~hhg]rzj)r{}r|(hlUhu}r}(hy]hz]r~juahx]hw]h{]uhmjwhg]rhXNew in version 2.0.rr}r(hlUhmj{ubahsjubaubaubh)r}r(hlX:mod:`~celery.bin.celeryev` is a simple curses monitor displaying task and worker history. You can inspect the result and traceback of tasks, and it also supports some management commands like rate limiting and shutting down workers.hmjbhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Mh~hhg]r(j)r}r(hlX:mod:`~celery.bin.celeryev`rhmjhnhqhsjhu}r(UreftypeXmodjjXcelery.bin.celeryevU refdomainXpyrhw]hx]U refexplicithy]hz]h{]jjjNjNuh}Mhg]rj)r}r(hljhu}r(hy]hz]r(jjXpy-modrehx]hw]h{]uhmjhg]rhXceleryevrr}r(hlUhmjubahsjubaubhX is a simple curses monitor displaying task and worker history. You can inspect the result and traceback of tasks, and it also supports some management commands like rate limiting and shutting down workers.rr}r(hlX is a simple curses monitor displaying task and worker history. You can inspect the result and traceback of tasks, and it also supports some management commands like rate limiting and shutting down workers.hmjubeubj')r}r(hlUhmjbhnhqhsj*hu}r(hy]hz]hx]hw]h{]uh}Mh~hhg]rj-)r}r(hlX*.. figure:: ../images/celeryevshotsm.jpg hu}r(UuriX&userguide/../images/celeryevshotsm.jpgrhw]hx]hy]hz]j2}rU*jsh{]uhmjhg]hsj4ubaubh)r}r(hlXe:mod:`~celery.bin.celeryev` is also used to start snapshot cameras (see :ref:`monitoring-snapshots`::hmjbhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Mh~hhg]r(j)r}r(hlX:mod:`~celery.bin.celeryev`rhmjhnhqhsjhu}r(UreftypeXmodjjXcelery.bin.celeryevU refdomainXpyrhw]hx]U refexplicithy]hz]h{]jjjNjNuh}Mhg]rj)r}r(hljhu}r(hy]hz]r(jjXpy-modrehx]hw]h{]uhmjhg]rhXceleryevrr}r(hlUhmjubahsjubaubhX- is also used to start snapshot cameras (see rr}r(hlX- is also used to start snapshot cameras (see hmjubj)r}r(hlX:ref:`monitoring-snapshots`rhmjhnhqhsjhu}r(UreftypeXrefjjXmonitoring-snapshotsU refdomainXstdrhw]hx]U refexplicithy]hz]h{]jjuh}Mhg]rj)r}r(hljhu}r(hy]hz]r(jjXstd-refrehx]hw]h{]uhmjhg]rhXmonitoring-snapshotsrr}r(hlUhmjubahsj&ubaubhX:r}r(hlX:hmjubeubj)r}r(hlX2$ celeryev --camera= --frequency=1.0hmjbhnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}Mh~hhg]rhX2$ celeryev --camera= --frequency=1.0rr}r(hlUhmjubaubh)r}r(hlX9and it includes a tool to dump events to :file:`stdout`::rhmjbhnhqhshhu}r(hy]hz]hx]hw]h{]uh}Mh~hhg]r(hX)and it includes a tool to dump events to rr}r(hlX)and it includes a tool to dump events to hmjubj)r}r(hlUhu}r(hw]hx]hy]hz]rXfileraUrolejh{]uhmjhg]rhXstdoutrr}r(hlXstdouthmjubahsjubhX:r}r(hlX:hmjubeubj)r}r(hlX$ celeryev --dumphmjbhnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}Mh~hhg]rhX$ celeryev --dumprr}r(hlUhmjubaubh)r}r(hlX/For a complete list of options use ``--help``::rhmjbhnhqhshhu}r(hy]hz]hx]hw]h{]uh}M!h~hhg]r(hX#For a complete list of options use rr}r(hlX#For a complete list of options use hmjubj)r}r(hlX ``--help``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhX--helprr}r(hlUhmjubahsjubhX:r}r(hlX:hmjubeubj)r}r(hlX$ celeryev --helphmjbhnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}M#h~hhg]rhX$ celeryev --helprr}r(hlUhmjubaubhi)r}r(hlX.. _monitoring-celerymon:hmjbhnhqhshthu}r(hw]hx]hy]hz]h{]h|h[uh}M&h~hhg]ubeubh)r}r(hlUhmjQhnhqh}rh&jshshhu}r(hy]hz]hx]hw]r (hGh[eh{]r (hh&euh}M)h~hh}r h[jshg]r (h)r }r(hlj~hmjhnhqhshhu}r(hw]hx]hy]hz]h{]h|jyuh}M)h~hhg]rhXcelerymon: Web monitorrr}r(hlj~hmj ubaubh)r}r(hlX5`celerymon`_ is the ongoing work to create a web monitor. It's far from complete yet, and does currently only support a JSON API. Help is desperately needed for this project, so if you, or someone you know would like to contribute templates, design, code or help this project in any way, please get in touch!hmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}M+h~hhg]r(h)r}r(hlX `celerymon`_jKhmjhshhu}r(UnameX celerymonrjX http://github.com/ask/celerymon/rhw]hx]hy]hz]h{]uhg]rhX celerymonrr}r (hlUhmjubaubhX) is the ongoing work to create a web monitor. It's far from complete yet, and does currently only support a JSON API. Help is desperately needed for this project, so if you, or someone you know would like to contribute templates, design, code or help this project in any way, please get in touch!r!r"}r#(hlX) is the ongoing work to create a web monitor. It's far from complete yet, and does currently only support a JSON API. Help is desperately needed for this project, so if you, or someone you know would like to contribute templates, design, code or help this project in any way, please get in touch!hmjubeubj)r$}r%(hlUhmjhnhqhsjhu}r&(hy]hz]hx]hw]h{]uh}M1h~hhg]r'j)r(}r)(hlUhmj$hnhqhsjhu}r*(hy]hz]hx]hw]h{]uh}M1h~hhg]r+(j)r,}r-(hlXTipr.hu}r/(hy]hz]hx]hw]h{]uhmj(hg]r0hXTipr1r2}r3(hlj.hmj,ubahsjubj)r4}r5(hlXThe Django admin monitor can be used even though you're not using Celery with a Django project. See :ref:`monitoring-nodjango`. hu}r6(hy]hz]hx]hw]h{]uhmj(hg]r7h)r8}r9(hlXThe Django admin monitor can be used even though you're not using Celery with a Django project. See :ref:`monitoring-nodjango`.hmj4hnhqhshhu}r:(hy]hz]hx]hw]h{]uh}M1hg]r;(hXeThe Django admin monitor can be used even though you're not using Celery with a Django project. See r<r=}r>(hlXeThe Django admin monitor can be used even though you're not using Celery with a Django project. See hmj8ubj)r?}r@(hlX:ref:`monitoring-nodjango`rAhmj8hnhqhsjhu}rB(UreftypeXrefjjXmonitoring-nodjangoU refdomainXstdrChw]hx]U refexplicithy]hz]h{]jjuh}M1hg]rDj)rE}rF(hljAhu}rG(hy]hz]rH(jjCXstd-refrIehx]hw]h{]uhmj?hg]rJhXmonitoring-nodjangorKrL}rM(hlUhmjEubahsj&ubaubhX.rN}rO(hlX.hmj8ubeubahsjubeubaubhi)rP}rQ(hlX1.. _`celerymon`: http://github.com/ask/celerymon/j7Khmjhnhqhshthu}rR(jjhw]rShHahx]hy]hz]h{]rThauh}M4h~hhg]ubhi)rU}rV(hlX.. _monitoring-rabbitmq:hmjhnhqhshthu}rW(hw]hx]hy]hz]h{]h|hVuh}M6h~hhg]ubeubeubh)rX}rY(hlUhmhhnhqh}rZh!jUshshhu}r[(hy]hz]hx]hw]r\(h^hVeh{]r](h)h!euh}M9h~hh}r^hVjUshg]r_(h)r`}ra(hljhmjXhnhqhshhu}rb(hw]hx]hy]hz]h{]h|juh}M9h~hhg]rchXRabbitMQrdre}rf(hljhmj`ubaubh)rg}rh(hlXQTo manage a Celery cluster it is important to know how RabbitMQ can be monitored.rihmjXhnhqhshhu}rj(hy]hz]hx]hw]h{]uh}M;h~hhg]rkhXQTo manage a Celery cluster it is important to know how RabbitMQ can be monitored.rlrm}rn(hljihmjgubaubh)ro}rp(hlXRabbitMQ ships with the `rabbitmqctl(1)`_ command, with this you can list queues, exchanges, bindings, queue lengths, the memory usage of each queue, as well as manage users, virtual hosts and their permissions.hmjXhnhqhshhu}rq(hy]hz]hx]hw]h{]uh}M>h~hhg]rr(hXRabbitMQ ships with the rsrt}ru(hlXRabbitMQ ships with the hmjoubh)rv}rw(hlX`rabbitmqctl(1)`_jKhmjohshhu}rx(UnameXrabbitmqctl(1)ryjX2http://www.rabbitmq.com/man/rabbitmqctl.1.man.htmlrzhw]hx]hy]hz]h{]uhg]r{hXrabbitmqctl(1)r|r}}r~(hlUhmjvubaubhX command, with this you can list queues, exchanges, bindings, queue lengths, the memory usage of each queue, as well as manage users, virtual hosts and their permissions.rr}r(hlX command, with this you can list queues, exchanges, bindings, queue lengths, the memory usage of each queue, as well as manage users, virtual hosts and their permissions.hmjoubeubj)r}r(hlXThe default virtual host (``"/"``) is used in these examples, if you use a custom virtual host you have to add the ``-p`` argument to the command, e.g: ``rabbitmqctl list_queues -p my_vhost ....``hmjXhnhqhsjhu}r(hy]hz]hx]hw]h{]uh}Nh~hhg]rh)r}r(hlXThe default virtual host (``"/"``) is used in these examples, if you use a custom virtual host you have to add the ``-p`` argument to the command, e.g: ``rabbitmqctl list_queues -p my_vhost ....``hmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}MEhg]r(hXThe default virtual host (rr}r(hlXThe default virtual host (hmjubj)r}r(hlX``"/"``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhX"/"rr}r(hlUhmjubahsjubhXR) is used in these examples, if you use a custom virtual host you have to add the rr}r(hlXR) is used in these examples, if you use a custom virtual host you have to add the hmjubj)r}r(hlX``-p``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhX-prr}r(hlUhmjubahsjubhX argument to the command, e.g: rr}r(hlX argument to the command, e.g: hmjubj)r}r(hlX,``rabbitmqctl list_queues -p my_vhost ....``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhX(rabbitmqctl list_queues -p my_vhost ....rr}r(hlUhmjubahsjubeubaubhi)r}r(hlXH.. _`rabbitmqctl(1)`: http://www.rabbitmq.com/man/rabbitmqctl.1.man.htmlj7KhmjXhnhqhshthu}r(jjzhw]rhTahx]hy]hz]h{]rhauh}MJh~hhg]ubhi)r}r(hlX.. _monitoring-rmq-queues:hmjXhnhqhshthu}r(hw]hx]hy]hz]h{]h|h]uh}MLh~hhg]ubh)r}r(hlUhmjXhnhqh}rh(jshshhu}r(hy]hz]hx]hw]r(hXh]eh{]r(h#h(euh}MOh~hh}rh]jshg]r(h)r}r(hljhmjhnhqhshhu}r(hw]hx]hy]hz]h{]h|juh}MOh~hhg]rhXInspecting queuesrr}r(hljhmjubaubh)r}r(hlX(Finding the number of tasks in a queue::rhmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}MQh~hhg]rhX'Finding the number of tasks in a queue:rr}r(hlX'Finding the number of tasks in a queue:hmjubaubj)r}r(hlXh$ rabbitmqctl list_queues name messages messages_ready \ messages_unacknowlgedhmjhnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}MTh~hhg]rhXh$ rabbitmqctl list_queues name messages messages_ready \ messages_unacknowlgedrr}r(hlUhmjubaubh)r}r(hlXIHere ``messages_ready`` is the number of messages ready for delivery (sent but not received), ``messages_unacknowledged`` is the number of messages that has been received by a worker but not acknowledged yet (meaning it is in progress, or has been reserved). ``messages`` is the sum of ready and unacknowledged messages combined.hmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}MXh~hhg]r(hXHere rr}r(hlXHere hmjubj)r}r(hlX``messages_ready``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhXmessages_readyrr}r(hlUhmjubahsjubhXG is the number of messages ready for delivery (sent but not received), rr}r(hlXG is the number of messages ready for delivery (sent but not received), hmjubj)r}r(hlX``messages_unacknowledged``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhXmessages_unacknowledgedrr}r(hlUhmjubahsjubhX is the number of messages that has been received by a worker but not acknowledged yet (meaning it is in progress, or has been reserved). rr}r(hlX is the number of messages that has been received by a worker but not acknowledged yet (meaning it is in progress, or has been reserved). hmjubj)r}r(hlX ``messages``hu}r(hy]hz]hx]hw]h{]uhmjhg]rhXmessagesrr}r(hlUhmjubahsjubhX: is the sum of ready and unacknowledged messages combined.rr}r(hlX: is the sum of ready and unacknowledged messages combined.hmjubeubh)r}r(hlX@Finding the number of workers currently consuming from a queue::rhmjhnhqhshhu}r(hy]hz]hx]hw]h{]uh}M_h~hhg]rhX?Finding the number of workers currently consuming from a queue:rr}r(hlX?Finding the number of workers currently consuming from a queue:hmjubaubj)r}r(hlX($ rabbitmqctl list_queues name consumershmjhnhqhsjhu}r(jjhw]hx]hy]hz]h{]uh}Mah~hhg]rhX($ rabbitmqctl list_queues name consumersrr }r (hlUhmjubaubh)r }r (hlX3Finding the amount of memory allocated to a queue::r hmjhnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mch~hhg]r hX2Finding the amount of memory allocated to a queue:r r }r (hlX2Finding the amount of memory allocated to a queue:hmj ubaubj)r }r (hlX%$ rabbitmqctl list_queues name memoryhmjhnhqhsjhu}r (jjhw]hx]hy]hz]h{]uh}Meh~hhg]r hX%$ rabbitmqctl list_queues name memoryr r }r (hlUhmj ubaubj)r }r (hlUhmjhnhqhsjhu}r (hy]hz]hx]hw]h{]uh}Mgh~hhg]r j)r }r (hlUhmj hnhqhsjhu}r (hy]hz]hx]hw]h{]uh}Mgh~hhg]r (j)r }r (hlXTipr hu}r (hy]hz]hx]hw]h{]uhmj hg]r hXTipr r }r (hlj hmj ubahsjubj)r! }r" (hlXQAdding the ``-q`` option to `rabbitmqctl(1)`_ makes the output easier to parse. hu}r# (hy]hz]hx]hw]h{]uhmj hg]r$ h)r% }r& (hlXOAdding the ``-q`` option to `rabbitmqctl(1)`_ makes the output easier to parse.hmj! hnhqhshhu}r' (hy]hz]hx]hw]h{]uh}Mghg]r( (hX Adding the r) r* }r+ (hlX Adding the hmj% ubj)r, }r- (hlX``-q``hu}r. (hy]hz]hx]hw]h{]uhmj% hg]r/ hX-qr0 r1 }r2 (hlUhmj, ubahsjubhX option to r3 r4 }r5 (hlX option to hmj% ubh)r6 }r7 (hlX`rabbitmqctl(1)`_jKhmj% hshhu}r8 (UnameXrabbitmqctl(1)jjzhw]hx]hy]hz]h{]uhg]r9 hXrabbitmqctl(1)r: r; }r< (hlUhmj6 ubaubhX" makes the output easier to parse.r= r> }r? (hlX" makes the output easier to parse.hmj% ubeubahsjubeubaubhi)r@ }rA (hlX.. _monitoring-munin:hmjhnhqhshthu}rB (hw]hx]hy]hz]h{]h|h@uh}Mkh~hhg]ubeubeubh)rC }rD (hlUhmhhnhqh}rE h j@ shshhu}rF (hy]hz]hx]hw]rG (h_h@eh{]rH (h*h euh}Mnh~hh}rI h@j@ shg]rJ (h)rK }rL (hljhmjC hnhqhshhu}rM (hw]hx]hy]hz]h{]h|juh}Mnh~hhg]rN hXMuninrO rP }rQ (hljhmjK ubaubh)rR }rS (hlX\This is a list of known Munin plug-ins that can be useful when maintaining a Celery cluster.rT hmjC hnhqhshhu}rU (hy]hz]hx]hw]h{]uh}Mph~hhg]rV hX\This is a list of known Munin plug-ins that can be useful when maintaining a Celery cluster.rW rX }rY (hljT hmjR ubaubh)rZ }r[ (hlUhmjC hnhqhshhu}r\ (jX*hw]hx]hy]hz]h{]uh}Msh~hhg]r] (h)r^ }r_ (hlXUrabbitmq-munin: Munin plug-ins for RabbitMQ. http://github.com/ask/rabbitmq-munin hmjZ hnhqhshhu}r` (hy]hz]hx]hw]h{]uh}Nh~hhg]ra (h)rb }rc (hlX,rabbitmq-munin: Munin plug-ins for RabbitMQ.rd hmj^ hnhqhshhu}re (hy]hz]hx]hw]h{]uh}Mshg]rf hX,rabbitmq-munin: Munin plug-ins for RabbitMQ.rg rh }ri (hljd hmjb ubaubcdocutils.nodes block_quote rj )rk }rl (hlUhu}rm (hy]hz]hx]hw]h{]uhmj^ hg]rn h)ro }rp (hlX$http://github.com/ask/rabbitmq-muninrq hmjk hnhqhshhu}rr (hy]hz]hx]hw]h{]uh}Muhg]rs h)rt }ru (hljq hu}rv (Urefurijq hw]hx]hy]hz]h{]uhmjo hg]rw hX$http://github.com/ask/rabbitmq-muninrx ry }rz (hlUhmjt ubahshubaubahsU block_quoter{ ubeubh)r| }r} (hlXcelery_tasks: Monitors the number of times each task type has been executed (requires ``celerymon``). http://exchange.munin-monitoring.org/plugins/celery_tasks-2/details hmjZ hnhqhshhu}r~ (hy]hz]hx]hw]h{]uh}Nh~hhg]r (h)r }r (hlXecelery_tasks: Monitors the number of times each task type has been executed (requires ``celerymon``).hmj| hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mwhg]r (hXVcelery_tasks: Monitors the number of times each task type has been executed (requires r r }r (hlXVcelery_tasks: Monitors the number of times each task type has been executed (requires hmj ubj)r }r (hlX ``celerymon``hu}r (hy]hz]hx]hw]h{]uhmj hg]r hX celerymonr r }r (hlUhmj ubahsjubhX).r r }r (hlX).hmj ubeubjj )r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj| hg]r h)r }r (hlXChttp://exchange.munin-monitoring.org/plugins/celery_tasks-2/detailsr hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mzhg]r h)r }r (hlj hu}r (Urefurij hw]hx]hy]hz]h{]uhmj hg]r hXChttp://exchange.munin-monitoring.org/plugins/celery_tasks-2/detailsr r }r (hlUhmj ubahshubaubahsj{ ubeubh)r }r (hlXcelery_task_states: Monitors the number of tasks in each state (requires ``celerymon``). http://exchange.munin-monitoring.org/plugins/celery_tasks/details hmjZ hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Nh~hhg]r (h)r }r (hlXXcelery_task_states: Monitors the number of tasks in each state (requires ``celerymon``).hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}M|hg]r (hXIcelery_task_states: Monitors the number of tasks in each state (requires r r }r (hlXIcelery_task_states: Monitors the number of tasks in each state (requires hmj ubj)r }r (hlX ``celerymon``hu}r (hy]hz]hx]hw]h{]uhmj hg]r hX celerymonr r }r (hlUhmj ubahsjubhX).r r }r (hlX).hmj ubeubjj )r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r h)r }r (hlXAhttp://exchange.munin-monitoring.org/plugins/celery_tasks/detailsr hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mhg]r h)r }r (hlj hu}r (Urefurij hw]hx]hy]hz]h{]uhmj hg]r hXAhttp://exchange.munin-monitoring.org/plugins/celery_tasks/detailsr r }r (hlUhmj ubahshubaubahsj{ ubeubeubhi)r }r (hlX.. _monitoring-events:hmjC hnhqhshthu}r (hw]hx]hy]hz]h{]h|hWuh}Mh~hhg]ubeubh)r }r (hlUhmhhnhqh}r h"j shshhu}r (hy]hz]hx]hw]r (hPhWeh{]r (hh"euh}Mh~hh}r hWj shg]r (h)r }r (hljhmj hnhqhshhu}r (hw]hx]hy]hz]h{]h|juh}Mh~hhg]r hXEventsr r }r (hljhmj ubaubh)r }r (hlXThe worker has the ability to send a message whenever some event happens. These events are then captured by tools like :program:`celerymon` and :program:`celeryev` to monitor the cluster.hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mh~hhg]r (hXxThe worker has the ability to send a message whenever some event happens. These events are then captured by tools like r r }r (hlXxThe worker has the ability to send a message whenever some event happens. These events are then captured by tools like hmj ubj)r }r (hlX:program:`celerymon`hu}r (hy]hz]r jahx]hw]h{]uhmj hg]r hX celerymonr r }r (hlUhmj ubahsjubhX and r r }r (hlX and hmj ubj)r }r (hlX:program:`celeryev`hu}r (hy]hz]r jahx]hw]h{]uhmj hg]r hXceleryevr r }r (hlUhmj ubahsjubhX to monitor the cluster.r r }r (hlX to monitor the cluster.hmj ubeubhi)r }r (hlX.. _monitoring-snapshots:hmj hnhqhshthu}r (hw]hx]hy]hz]h{]h|hbuh}Mh~hhg]ubh)r }r (hlUhmj hnhqh}r h-j shshhu}r (hy]hz]hx]hw]r (h>hbeh{]r (h h-euh}Mh~hh}r hbj shg]r (h)r }r (hljhmj hnhqhshhu}r (hw]hx]hy]hz]h{]h|juh}Mh~hhg]r hX Snapshotsr r }r (hljhmj ubaubcdocutils.nodes comment r )r }r (hlXversionadded: 2.1hmj hnhqhsUcommentr hu}r (jjhw]hx]hy]hz]h{]uh}Mh~hhg]r hXversionadded: 2.1r r }r (hlUhmj ubaubh)r }r (hlX}Even a single worker can produce a huge amount of events, so storing the history of all events on disk may be very expensive.r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mh~hhg]r hX}Even a single worker can produce a huge amount of events, so storing the history of all events on disk may be very expensive.r r }r (hlj hmj ubaubh)r }r (hlXA sequence of events describes the cluster state in that time period, by taking periodic snapshots of this state we can keep all history, but still only periodically write it to disk.r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mh~hhg]r hXA sequence of events describes the cluster state in that time period, by taking periodic snapshots of this state we can keep all history, but still only periodically write it to disk.r r }r (hlj hmj ubaubh)r }r! (hlXTo take snapshots you need a Camera class, with this you can define what should happen every time the state is captured; You can write it to a database, send it by e-mail or something else entirely.r" hmj hnhqhshhu}r# (hy]hz]hx]hw]h{]uh}Mh~hhg]r$ hXTo take snapshots you need a Camera class, with this you can define what should happen every time the state is captured; You can write it to a database, send it by e-mail or something else entirely.r% r& }r' (hlj" hmj ubaubh)r( }r) (hlX:program:`celeryev` is then used to take snapshots with the camera, for example if you want to capture state every 2 seconds using the camera ``myapp.Camera`` you run :program:`celeryev` with the following arguments::hmj hnhqhshhu}r* (hy]hz]hx]hw]h{]uh}Mh~hhg]r+ (j)r, }r- (hlX:program:`celeryev`hu}r. (hy]hz]r/ jahx]hw]h{]uhmj( hg]r0 hXceleryevr1 r2 }r3 (hlUhmj, ubahsjubhX{ is then used to take snapshots with the camera, for example if you want to capture state every 2 seconds using the camera r4 r5 }r6 (hlX{ is then used to take snapshots with the camera, for example if you want to capture state every 2 seconds using the camera hmj( ubj)r7 }r8 (hlX``myapp.Camera``hu}r9 (hy]hz]hx]hw]h{]uhmj( hg]r: hX myapp.Camerar; r< }r= (hlUhmj7 ubahsjubhX you run r> r? }r@ (hlX you run hmj( ubj)rA }rB (hlX:program:`celeryev`hu}rC (hy]hz]rD jahx]hw]h{]uhmj( hg]rE hXceleryevrF rG }rH (hlUhmjA ubahsjubhX with the following arguments:rI rJ }rK (hlX with the following arguments:hmj( ubeubj)rL }rM (hlX*$ celeryev -c myapp.Camera --frequency=2.0hmj hnhqhsjhu}rN (jjhw]hx]hy]hz]h{]uh}Mh~hhg]rO hX*$ celeryev -c myapp.Camera --frequency=2.0rP rQ }rR (hlUhmjL ubaubhi)rS }rT (hlX.. _monitoring-camera:hmj hnhqhshthu}rU (hw]hx]hy]hz]h{]h|hNuh}Mh~hhg]ubh)rV }rW (hlUhmj hnhqh}rX hjS shshhu}rY (hy]hz]hx]hw]rZ (hZhNeh{]r[ (h%heuh}Mh~hh}r\ hNjS shg]r] (h)r^ }r_ (hljhmjV hnhqhshhu}r` (hw]hx]hy]hz]h{]h|juh}Mh~hhg]ra hX Custom Camerarb rc }rd (hljhmj^ ubaubh)re }rf (hlX:Here is an example camera, dumping the snapshot to screen:rg hmjV hnhqhshhu}rh (hy]hz]hx]hw]h{]uh}Mh~hhg]ri hX:Here is an example camera, dumping the snapshot to screen:rj rk }rl (hljg hmje ubaubj)rm }rn (hlXfrom pprint import pformat from celery.events.snapshot import Polaroid class DumpCam(Polaroid): def shutter(self, state): if not state.event_count: # No new events since last snapshot. return print("Workers: %s" % (pformat(state.workers, indent=4), )) print("Tasks: %s" % (pformat(state.tasks, indent=4), )) print("Total: %s events, %s tasks" % ( state.event_count, state.task_count))hmjV hnhqhsjhu}ro (Ulinenosrp Ulanguagerq Xpythonjjhw]hx]hy]hz]h{]uh}Mh~hhg]rr hXfrom pprint import pformat from celery.events.snapshot import Polaroid class DumpCam(Polaroid): def shutter(self, state): if not state.event_count: # No new events since last snapshot. return print("Workers: %s" % (pformat(state.workers, indent=4), )) print("Tasks: %s" % (pformat(state.tasks, indent=4), )) print("Total: %s events, %s tasks" % ( state.event_count, state.task_count))rs rt }ru (hlUhmjm ubaubh)rv }rw (hlXVSee the API reference for :mod:`celery.events.state` to read more about state objects.hmjV hnhqhshhu}rx (hy]hz]hx]hw]h{]uh}Mh~hhg]ry (hXSee the API reference for rz r{ }r| (hlXSee the API reference for hmjv ubj)r} }r~ (hlX:mod:`celery.events.state`r hmjv hnhqhsjhu}r (UreftypeXmodjjXcelery.events.stateU refdomainXpyr hw]hx]U refexplicithy]hz]h{]jjjNjNuh}Mhg]r j)r }r (hlj hu}r (hy]hz]r (jj Xpy-modr ehx]hw]h{]uhmj} hg]r hXcelery.events.stater r }r (hlUhmj ubahsjubaubhX" to read more about state objects.r r }r (hlX" to read more about state objects.hmjv ubeubh)r }r (hlXTNow you can use this cam with ``celeryev`` by specifying it with the ``-c`` option::hmjV hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mh~hhg]r (hXNow you can use this cam with r r }r (hlXNow you can use this cam with hmj ubj)r }r (hlX ``celeryev``hu}r (hy]hz]hx]hw]h{]uhmj hg]r hXceleryevr r }r (hlUhmj ubahsjubhX by specifying it with the r r }r (hlX by specifying it with the hmj ubj)r }r (hlX``-c``hu}r (hy]hz]hx]hw]h{]uhmj hg]r hX-cr r }r (hlUhmj ubahsjubhX option:r r }r (hlX option:hmj ubeubj)r }r (hlX+$ celeryev -c myapp.DumpCam --frequency=2.0hmjV hnhqhsjhu}r (jjhw]hx]hy]hz]h{]uh}Mh~hhg]r hX+$ celeryev -c myapp.DumpCam --frequency=2.0r r }r (hlUhmj ubaubh)r }r (hlX.Or you can use it programmatically like this::r hmjV hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mh~hhg]r hX-Or you can use it programmatically like this:r r }r (hlX-Or you can use it programmatically like this:hmj ubaubj)r }r (hlXfrom celery.events import EventReceiver from celery.messaging import establish_connection from celery.events.state import State from myapp import DumpCam def main(): state = State() with establish_connection() as connection: recv = EventReceiver(connection, handlers={"*": state.event}) with DumpCam(state, freq=1.0): recv.capture(limit=None, timeout=None) if __name__ == "__main__": main()hmjV hnhqhsjhu}r (jjhw]hx]hy]hz]h{]uh}Mh~hhg]r hXfrom celery.events import EventReceiver from celery.messaging import establish_connection from celery.events.state import State from myapp import DumpCam def main(): state = State() with establish_connection() as connection: recv = EventReceiver(connection, handlers={"*": state.event}) with DumpCam(state, freq=1.0): recv.capture(limit=None, timeout=None) if __name__ == "__main__": main()r r }r (hlUhmj ubaubhi)r }r (hlX.. _event-reference:hmjV hnhqhshthu}r (hw]hx]hy]hz]h{]h|hDuh}Mh~hhg]ubeubeubh)r }r (hlUhmj hnhqh}r hj shshhu}r (hy]hz]hx]hw]r (hDhUeh{]r (h heuh}Mh~hh}r hDj shg]r (h)r }r (hljhmj hnhqhshhu}r (hw]hx]hy]hz]h{]h|juh}Mh~hhg]r hXEvent Referencer r }r (hljhmj ubaubh)r }r (hlXFThis list contains the events sent by the worker, and their arguments.r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mh~hhg]r hXFThis list contains the events sent by the worker, and their arguments.r r }r (hlj hmj ubaubhi)r }r (hlX.. _event-reference-task:hmj hnhqhshthu}r (hw]hx]hy]hz]h{]h|h`uh}Mh~hhg]ubh)r }r (hlUhmj hnhqh}r h+j shshhu}r (hy]hz]hx]hw]r (hOh`eh{]r (hh+euh}Mh~hh}r h`j shg]r (h)r }r (hljhmj hnhqhshhu}r (hw]hx]hy]hz]h{]h|juh}Mh~hhg]r hX Task Eventsr r }r (hljhmj ubaubh)r }r (hlUhmj hnhqhshhu}r (jX*hw]hx]hy]hz]h{]uh}Mh~hhg]r (h)r }r (hlXx``task-received(uuid, name, args, kwargs, retries, eta, hostname, timestamp)`` Sent when the worker receives a task. hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Nh~hhg]r (h)r }r (hlXN``task-received(uuid, name, args, kwargs, retries, eta, hostname, timestamp)``r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mhg]r j)r }r (hlj hu}r (hy]hz]hx]hw]h{]uhmj hg]r hXJtask-received(uuid, name, args, kwargs, retries, eta, hostname, timestamp)r r }r (hlUhmj ubahsjubaubjj )r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r h)r }r (hlX%Sent when the worker receives a task.r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mhg]r hX%Sent when the worker receives a task.r r }r (hlj hmj ubaubahsj{ ubeubh)r }r (hlX^``task-started(uuid, hostname, timestamp)`` Sent just before the worker executes the task. hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Nh~hhg]r (h)r }r (hlX+``task-started(uuid, hostname, timestamp)``r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mhg]r j)r }r (hlj hu}r (hy]hz]hx]hw]h{]uhmj hg]r hX'task-started(uuid, hostname, timestamp)r r }r (hlUhmj ubahsjubaubjj )r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r h)r }r! (hlX.Sent just before the worker executes the task.r" hmj hnhqhshhu}r# (hy]hz]hx]hw]h{]uh}Mhg]r$ hX.Sent just before the worker executes the task.r% r& }r' (hlj" hmj ubaubahsj{ ubeubh)r( }r) (hlX"``task-succeeded(uuid, result, runtime, hostname, timestamp)`` Sent if the task executed successfully. Runtime is the time it took to execute the task using the pool. (Starting from the task is sent to the worker pool, and ending when the pool result handler callback is called). hmj hnhqhshhu}r* (hy]hz]hx]hw]h{]uh}Nh~hhg]r+ (h)r, }r- (hlX>``task-succeeded(uuid, result, runtime, hostname, timestamp)``r. hmj( hnhqhshhu}r/ (hy]hz]hx]hw]h{]uh}Mhg]r0 j)r1 }r2 (hlj. hu}r3 (hy]hz]hx]hw]h{]uhmj, hg]r4 hX:task-succeeded(uuid, result, runtime, hostname, timestamp)r5 r6 }r7 (hlUhmj1 ubahsjubaubjj )r8 }r9 (hlUhu}r: (hy]hz]hx]hw]h{]uhmj( hg]r; (h)r< }r= (hlX'Sent if the task executed successfully.r> hmj8 hnhqhshhu}r? (hy]hz]hx]hw]h{]uh}Mhg]r@ hX'Sent if the task executed successfully.rA rB }rC (hlj> hmj< ubaubh)rD }rE (hlXRuntime is the time it took to execute the task using the pool. (Starting from the task is sent to the worker pool, and ending when the pool result handler callback is called).rF hmj8 hnhqhshhu}rG (hy]hz]hx]hw]h{]uh}Mhg]rH hXRuntime is the time it took to execute the task using the pool. (Starting from the task is sent to the worker pool, and ending when the pool result handler callback is called).rI rJ }rK (hljF hmjD ubaubehsj{ ubeubh)rL }rM (hlXn``task-failed(uuid, exception, traceback, hostname, timestamp)`` Sent if the execution of the task failed. hmj hnhqhshhu}rN (hy]hz]hx]hw]h{]uh}Nh~hhg]rO (h)rP }rQ (hlX@``task-failed(uuid, exception, traceback, hostname, timestamp)``rR hmjL hnhqhshhu}rS (hy]hz]hx]hw]h{]uh}Mhg]rT j)rU }rV (hljR hu}rW (hy]hz]hx]hw]h{]uhmjP hg]rX hX<task-failed(uuid, exception, traceback, hostname, timestamp)rY rZ }r[ (hlUhmjU ubahsjubaubjj )r\ }r] (hlUhu}r^ (hy]hz]hx]hw]h{]uhmjL hg]r_ h)r` }ra (hlX)Sent if the execution of the task failed.rb hmj\ hnhqhshhu}rc (hy]hz]hx]hw]h{]uh}Mhg]rd hX)Sent if the execution of the task failed.re rf }rg (hljb hmj` ubaubahsj{ ubeubh)rh }ri (hlX}``task-revoked(uuid)`` Sent if the task has been revoked (Note that this is likely to be sent by more than one worker). hmj hnhqhshhu}rj (hy]hz]hx]hw]h{]uh}Nh~hhg]rk (h)rl }rm (hlX``task-revoked(uuid)``rn hmjh hnhqhshhu}ro (hy]hz]hx]hw]h{]uh}Mhg]rp j)rq }rr (hljn hu}rs (hy]hz]hx]hw]h{]uhmjl hg]rt hXtask-revoked(uuid)ru rv }rw (hlUhmjq ubahsjubaubjj )rx }ry (hlUhu}rz (hy]hz]hx]hw]h{]uhmjh hg]r{ h)r| }r} (hlX`Sent if the task has been revoked (Note that this is likely to be sent by more than one worker).r~ hmjx hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mhg]r hX`Sent if the task has been revoked (Note that this is likely to be sent by more than one worker).r r }r (hlj~ hmj| ubaubahsj{ ubeubh)r }r (hlX``task-retried(uuid, exception, traceback, hostname, timestamp)`` Sent if the task failed, but will be retried in the future. hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Nh~hhg]r (h)r }r (hlXA``task-retried(uuid, exception, traceback, hostname, timestamp)``r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mhg]r j)r }r (hlj hu}r (hy]hz]hx]hw]h{]uhmj hg]r hX=task-retried(uuid, exception, traceback, hostname, timestamp)r r }r (hlUhmj ubahsjubaubjj )r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r h)r }r (hlX;Sent if the task failed, but will be retried in the future.r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mhg]r hX;Sent if the task failed, but will be retried in the future.r r }r (hlj hmj ubaubahsj{ ubeubeubhi)r }r (hlX.. _event-reference-worker:hmj hnhqhshthu}r (hw]hx]hy]hz]h{]h|hFuh}Mh~hhg]ubeubh)r }r (hlUhmj hnhqh}r hj shshhu}r (hy]hz]hx]hw]r (hQhFeh{]r (hheuh}Mh~hh}r hFj shg]r (h)r }r (hlj0hmj hnhqhshhu}r (hw]hx]hy]hz]h{]h|j+uh}Mh~hhg]r hX Worker Eventsr r }r (hlj0hmj ubaubh)r }r (hlUhmj hnhqhshhu}r (jX*hw]hx]hy]hz]h{]uh}Mh~hhg]r (h)r }r (hlX```worker-online(hostname, timestamp)`` The worker has connected to the broker and is online. hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Nh~hhg]r (h)r }r (hlX&``worker-online(hostname, timestamp)``r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mhg]r j)r }r (hlj hu}r (hy]hz]hx]hw]h{]uhmj hg]r hX"worker-online(hostname, timestamp)r r }r (hlUhmj ubahsjubaubjj )r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r h)r }r (hlX5The worker has connected to the broker and is online.r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}M hg]r hX5The worker has connected to the broker and is online.r r }r (hlj hmj ubaubahsj{ ubeubh)r }r (hlX``worker-heartbeat(hostname, timestamp)`` Sent every minute, if the worker has not sent a heartbeat in 2 minutes, it is considered to be offline. hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Nh~hhg]r (h)r }r (hlX)``worker-heartbeat(hostname, timestamp)``r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}M hg]r j)r }r (hlj hu}r (hy]hz]hx]hw]h{]uhmj hg]r hX%worker-heartbeat(hostname, timestamp)r r }r (hlUhmj ubahsjubaubjj )r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r h)r }r (hlXgSent every minute, if the worker has not sent a heartbeat in 2 minutes, it is considered to be offline.r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}M hg]r hXgSent every minute, if the worker has not sent a heartbeat in 2 minutes, it is considered to be offline.r r }r (hlj hmj ubaubahsj{ ubeubh)r }r (hlXW``worker-offline(hostname, timestamp)`` The worker has disconnected from the broker.hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Nh~hhg]r (h)r }r (hlX'``worker-offline(hostname, timestamp)``r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mhg]r j)r }r (hlj hu}r (hy]hz]hx]hw]h{]uhmj hg]r hX#worker-offline(hostname, timestamp)r r }r (hlUhmj ubahsjubaubjj )r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r h)r }r (hlX,The worker has disconnected from the broker.r hmj hnhqhshhu}r (hy]hz]hx]hw]h{]uh}Mhg]r hX,The worker has disconnected from the broker.r r }r (hlj hmj ubaubahsj{ ubeubeubeubeubeubeubehlUU transformerr NU footnote_refsr }r Urefnamesr }r (j]r jajy]r (jvj6 ej]r jauUsymbol_footnotesr ]r Uautofootnote_refsr ]r Usymbol_footnote_refsr ]r U citationsr ]r h~hU current_liner NUtransform_messagesr ]r (cdocutils.nodes system_message r )r }r (hlUhu}r (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineKUtypeUINFOr! uhg]r" h)r# }r$ (hlUhu}r% (hy]hz]hx]hw]h{]uhmj hg]r& hX6Hyperlink target "guide-monitoring" is not referenced.r' r( }r) (hlUhmj# ubahshubahsUsystem_messager* ubj )r+ }r, (hlUhu}r- (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineKUtypej! uhg]r. h)r/ }r0 (hlUhu}r1 (hy]hz]hx]hw]h{]uhmj+ hg]r2 hX8Hyperlink target "monitoring-workers" is not referenced.r3 r4 }r5 (hlUhmj/ ubahshubahsj* ubj )r6 }r7 (hlUhu}r8 (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineKUtypej! uhg]r9 h)r: }r; (hlUhu}r< (hy]hz]hx]hw]h{]uhmj6 hg]r= hX:Hyperlink target "monitoring-celeryctl" is not referenced.r> r? }r@ (hlUhmj: ubahshubahsj* ubj )rA }rB (hlUhu}rC (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineKrUtypej! uhg]rD h)rE }rF (hlUhu}rG (hy]hz]hx]hw]h{]uhmjA hg]rH hXCHyperlink target "celeryctl-inspect-destination" is not referenced.rI rJ }rK (hlUhmjE ubahshubahsj* ubj )rL }rM (hlUhu}rN (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineK~Utypej! uhg]rO h)rP }rQ (hlUhu}rR (hy]hz]hx]hw]h{]uhmjL hg]rS hX=Hyperlink target "monitoring-django-admin" is not referenced.rT rU }rV (hlUhmjP ubahshubahsj* ubj )rW }rX (hlUhu}rY (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineKUtypej! uhg]rZ h)r[ }r\ (hlUhu}r] (hy]hz]hx]hw]h{]uhmjW hg]r^ hX@Hyperlink target "monitoring-django-starting" is not referenced.r_ r` }ra (hlUhmj[ ubahshubahsj* ubj )rb }rc (hlUhu}rd (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineKUtypej! uhg]re h)rf }rg (hlUhu}rh (hy]hz]hx]hw]h{]uhmjb hg]ri hXAHyperlink target "monitoring-django-frequency" is not referenced.rj rk }rl (hlUhmjf ubahshubahsj* ubj )rm }rn (hlUhu}ro (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineKUtypej! uhg]rp h)rq }rr (hlUhu}rs (hy]hz]hx]hw]h{]uhmjm hg]rt hX9Hyperlink target "monitoring-nodjango" is not referenced.ru rv }rw (hlUhmjq ubahshubahsj* ubj )rx }ry (hlUhu}rz (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineM Utypej! uhg]r{ h)r| }r} (hlUhu}r~ (hy]hz]hx]hw]h{]uhmjx hg]r hX9Hyperlink target "monitoring-celeryev" is not referenced.r r }r (hlUhmj| ubahshubahsj* ubj )r }r (hlUhu}r (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineM&Utypej! uhg]r h)r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r hX:Hyperlink target "monitoring-celerymon" is not referenced.r r }r (hlUhmj ubahshubahsj* ubj )r }r (hlUhu}r (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineM6Utypej! uhg]r h)r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r hX9Hyperlink target "monitoring-rabbitmq" is not referenced.r r }r (hlUhmj ubahshubahsj* ubj )r }r (hlUhu}r (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineMLUtypej! uhg]r h)r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r hX;Hyperlink target "monitoring-rmq-queues" is not referenced.r r }r (hlUhmj ubahshubahsj* ubj )r }r (hlUhu}r (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineMkUtypej! uhg]r h)r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r hX6Hyperlink target "monitoring-munin" is not referenced.r r }r (hlUhmj ubahshubahsj* ubj )r }r (hlUhu}r (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineMUtypej! uhg]r h)r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r hX7Hyperlink target "monitoring-events" is not referenced.r r }r (hlUhmj ubahshubahsj* ubj )r }r (hlUhu}r (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineMUtypej! uhg]r h)r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r hX:Hyperlink target "monitoring-snapshots" is not referenced.r r }r (hlUhmj ubahshubahsj* ubj )r }r (hlUhu}r (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineMUtypej! uhg]r h)r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r hX7Hyperlink target "monitoring-camera" is not referenced.r r }r (hlUhmj ubahshubahsj* ubj )r }r (hlUhu}r (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineMUtypej! uhg]r h)r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r hX5Hyperlink target "event-reference" is not referenced.r r }r (hlUhmj ubahshubahsj* ubj )r }r (hlUhu}r (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineMUtypej! uhg]r h)r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r hX:Hyperlink target "event-reference-task" is not referenced.r r }r (hlUhmj ubahshubahsj* ubj )r }r (hlUhu}r (hy]UlevelKhw]hx]Usourcehqhz]h{]UlineMUtypej! uhg]r h)r }r (hlUhu}r (hy]hz]hx]hw]h{]uhmj hg]r hX<Hyperlink target "event-reference-worker" is not referenced.r r }r (hlUhmj ubahshubahsj* ubeUreporterr NUid_startr KU autofootnotesr ]r U citation_refsr }r Uindirect_targetsr ]r Usettingsr (cdocutils.frontend Values r or }r (Ufootnote_backlinksr KUrecord_dependenciesr NU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhNUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr! U source_linkr" NUrfc_referencesr# NUoutput_encodingr$ Uutf-8r% U source_urlr& NUinput_encodingr' U utf-8-sigr( U_disable_configr) NU id_prefixr* UU tab_widthr+ KUerror_encodingr, UUTF-8r- U_sourcer. UR/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/monitoring.rstr/ Ugettext_compactr0 U generatorr1 NUdump_internalsr2 NU smart_quotesr3 U pep_base_urlr4 Uhttp://www.python.org/dev/peps/r5 Usyntax_highlightr6 Ulongr7 Uinput_encoding_error_handlerr8 j Uauto_id_prefixr9 Uidr: Udoctitle_xformr; Ustrip_elements_with_classesr< NU _config_filesr= ]r> Ufile_insertion_enabledr? U raw_enabledr@ KU dump_settingsrA NubUsymbol_footnote_startrB KUidsrC }rD (hFj h=jhhOj hGjh>j h?jhAhjjh@jC hDj hEhhfjbhHjPhKj>hIjhJjQjCj?hLj1jjhMjQhNjV hhhhhTjhUj jUjQjgjcjyjujjjjjjhZjV jjjjjjhBjhdj`hPj hhh;jchRj`j+j'hQj hYhhCjj1j-hVjXhWj hSjh[jh\jbh]jj jh^jXjjh_jC h`j hajchXjhcj5hbj hejhhuUsubstitution_namesrE }rF hsh~hu}rG (hy]hw]hx]Usourcehqhz]h{]uU footnotesrH ]rI UrefidsrJ }rK (hF]rL j ah]]rM jahI]rN jah<]rO j;ahJ]rP jNah\]rQ j_ahN]rR jS ahR]rS j]ah?]rT jah`]rU j ahA]rV hjaha]rW j`ahb]rX j ah@]rY j@ ahV]rZ jUahD]r[ j ahe]r\ jahW]r] j ah[]r^ jauub.PKYDDññ>celery-2.1-archived/.doctrees/userguide/periodic-tasks.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X beat-startingqXcrontab schedulesqNX beat-crontabqXbeat-custom-schedulersq X introductionq NX guide-beatq Xperiodic tasksq NXstarting celerybeatq NXbeat-entry-fieldsqXentriesqNXavailable fieldsqNXusing custom scheduler classesqNUcontentsqNX beat-entriesquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hU beat-startingqhUcrontab-schedulesqhU beat-crontabqh Ubeat-custom-schedulersq h U introductionq!h U guide-beatq"h Uperiodic-tasksq#h Ustarting-celerybeatq$hUbeat-entry-fieldsq%hUentriesq&hUavailable-fieldsq'hUusing-custom-scheduler-classesq(hUcontentsq)hU beat-entriesq*uUchildrenq+]q,(cdocutils.nodes target q-)q.}q/(U rawsourceq0X.. _guide-beat:Uparentq1hUsourceq2cdocutils.nodes reprunicode q3XV/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/periodic-tasks.rstq4q5}q6bUtagnameq7Utargetq8U attributesq9}q:(Uidsq;]Ubackrefsq<]Udupnamesq=]Uclassesq>]Unamesq?]Urefidq@h"uUlineqAKUdocumentqBhh+]ubcdocutils.nodes section qC)qD}qE(h0Uh1hh2h5Uexpect_referenced_by_nameqF}qGh h.sh7UsectionqHh9}qI(h=]h>]h<]h;]qJ(h#h"eh?]qK(h h euhAKhBhUexpect_referenced_by_idqL}qMh"h.sh+]qN(cdocutils.nodes title qO)qP}qQ(h0XPeriodic TasksqRh1hDh2h5h7UtitleqSh9}qT(h=]h>]h<]h;]h?]uhAKhBhh+]qUcdocutils.nodes Text qVXPeriodic TasksqWqX}qY(h0hRh1hPubaubcdocutils.nodes topic qZ)q[}q\(h0Uh1hDh2h5h7Utopicq]h9}q^(h=]h>]q_(Ucontentsq`Ulocalqaeh<]h;]qbh)ah?]qchauhAKhBhh+]qdcdocutils.nodes bullet_list qe)qf}qg(h0Uh1h[h2Nh7U bullet_listqhh9}qi(h=]h>]h<]h;]h?]uhANhBhh+]qj(cdocutils.nodes list_item qk)ql}qm(h0Uh9}qn(h=]h>]h<]h;]h?]uh1hfh+]qocdocutils.nodes paragraph qp)qq}qr(h0Uh9}qs(h=]h>]h<]h;]h?]uh1hlh+]qtcdocutils.nodes reference qu)qv}qw(h0Uh9}qx(h;]qyUid1qzah<]h=]h>]h?]Urefidh!uh1hqh+]q{hVX Introductionq|q}}q~(h0X Introductionqh1hvubah7U referencequbah7U paragraphqubah7U list_itemqubhk)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hfh+]q(hp)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hh+]qhu)q}q(h0Uh9}q(h;]qUid2qah<]h=]h>]h?]Urefidh&uh1hh+]qhVXEntriesqq}q(h0XEntriesqh1hubah7hubah7hubhe)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hh+]qhk)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hh+]qhp)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hh+]qhu)q}q(h0Uh9}q(h;]qUid3qah<]h=]h>]h?]Urefidh'uh1hh+]qhVXAvailable Fieldsqq}q(h0XAvailable Fieldsqh1hubah7hubah7hubah7hubah7hhubeh7hubhk)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hfh+]qhp)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hh+]qhu)q}q(h0Uh9}q(h;]qUid4qah<]h=]h>]h?]Urefidhuh1hh+]qhVXCrontab schedulesqq}q(h0XCrontab schedulesqh1hubah7hubah7hubah7hubhk)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hfh+]q(hp)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hh+]qhu)q}q(h0Uh9}q(h;]qUid5qah<]h=]h>]h?]Urefidh$uh1hh+]qhVXStarting celerybeatq˅q}q(h0XStarting celerybeatqh1hubah7hubah7hubhe)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hh+]qhk)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hh+]qhp)q}q(h0Uh9}q(h=]h>]h<]h;]h?]uh1hh+]qhu)q}q(h0Uh9}q(h;]qUid6qah<]h=]h>]h?]Urefidh(uh1hh+]qhVXUsing custom scheduler classesqᅁq}q(h0XUsing custom scheduler classesqh1hubah7hubah7hubah7hubah7hhubeh7hubeubaubhC)q}q(h0Uh1hDh2h5h7hHh9}q(h=]h>]h<]h;]qh!ah?]qh auhAK hBhh+]q(hO)q}q(h0hh1hh2h5h7hSh9}q(h;]h<]h=]h>]h?]h@hzuhAK hBhh+]qhVX Introductionqq}q(h0hh1hubaubhp)q}q(h0X:program:`celerybeat` is a scheduler. It kicks off tasks at regular intervals, which are then executed by the worker nodes available in the cluster.h1hh2h5h7hh9}q(h=]h>]h<]h;]h?]uhAK hBhh+]q(cdocutils.nodes strong q)q}q(h0X:program:`celerybeat`h9}q(h=]h>]qUprogramqah<]h;]h?]uh1hh+]qhVX celerybeatqq}q(h0Uh1hubah7UstrongrubhVX is a scheduler. It kicks off tasks at regular intervals, which are then executed by the worker nodes available in the cluster.rr}r(h0X is a scheduler. It kicks off tasks at regular intervals, which are then executed by the worker nodes available in the cluster.h1hubeubhp)r}r(h0XBy default the entries are taken from the :setting:`CELERYBEAT_SCHEDULE` setting, but custom stores can also be used, like storing the entries in an SQL database.h1hh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKhBhh+]r(hVX*By default the entries are taken from the rr }r (h0X*By default the entries are taken from the h1jubcsphinx.addnodes pending_xref r )r }r (h0X:setting:`CELERYBEAT_SCHEDULE`rh1jh2h5h7U pending_xrefrh9}r(UreftypeXsettingUrefwarnrU reftargetrXCELERYBEAT_SCHEDULEU refdomainXstdrh;]h<]U refexplicith=]h>]h?]UrefdocrXuserguide/periodic-tasksruhAKh+]rcdocutils.nodes literal r)r}r(h0jh9}r(h=]h>]r(UxrefrjX std-settingreh<]h;]h?]uh1j h+]rhVXCELERYBEAT_SCHEDULErr }r!(h0Uh1jubah7Uliteralr"ubaubhVXZ setting, but custom stores can also be used, like storing the entries in an SQL database.r#r$}r%(h0XZ setting, but custom stores can also be used, like storing the entries in an SQL database.h1jubeubhp)r&}r'(h0XYou have to ensure only a single scheduler is running for a schedule at a time, otherwise you would end up with duplicate tasks. Using a centralized approach means the schedule does not have to be synchronized, and the service can operate without using locks.r(h1hh2h5h7hh9}r)(h=]h>]h<]h;]h?]uhAKhBhh+]r*hVXYou have to ensure only a single scheduler is running for a schedule at a time, otherwise you would end up with duplicate tasks. Using a centralized approach means the schedule does not have to be synchronized, and the service can operate without using locks.r+r,}r-(h0j(h1j&ubaubh-)r.}r/(h0X.. _beat-entries:h1hh2h5h7h8h9}r0(h;]h<]h=]h>]h?]h@h*uhAKhBhh+]ubeubhC)r1}r2(h0Uh1hDh2h5hF}r3hj.sh7hHh9}r4(h=]h>]h<]h;]r5(h&h*eh?]r6(hheuhAKhBhhL}r7h*j.sh+]r8(hO)r9}r:(h0hh1j1h2h5h7hSh9}r;(h;]h<]h=]h>]h?]h@huhAKhBhh+]r<hVXEntriesr=r>}r?(h0hh1j9ubaubhp)r@}rA(h0XgTo schedule a task periodically you have to add an entry to the :setting:`CELERYBEAT_SCHEDULE` setting.h1j1h2h5h7hh9}rB(h=]h>]h<]h;]h?]uhAKhBhh+]rC(hVX@To schedule a task periodically you have to add an entry to the rDrE}rF(h0X@To schedule a task periodically you have to add an entry to the h1j@ubj )rG}rH(h0X:setting:`CELERYBEAT_SCHEDULE`rIh1j@h2h5h7jh9}rJ(UreftypeXsettingjjXCELERYBEAT_SCHEDULEU refdomainXstdrKh;]h<]U refexplicith=]h>]h?]jjuhAKh+]rLj)rM}rN(h0jIh9}rO(h=]h>]rP(jjKX std-settingrQeh<]h;]h?]uh1jGh+]rRhVXCELERYBEAT_SCHEDULErSrT}rU(h0Uh1jMubah7j"ubaubhVX setting.rVrW}rX(h0X setting.h1j@ubeubhp)rY}rZ(h0X5Example: Run the ``tasks.add`` task every 30 seconds.r[h1j1h2h5h7hh9}r\(h=]h>]h<]h;]h?]uhAK!hBhh+]r](hVXExample: Run the r^r_}r`(h0XExample: Run the h1jYubj)ra}rb(h0X ``tasks.add``h9}rc(h=]h>]h<]h;]h?]uh1jYh+]rdhVX tasks.addrerf}rg(h0Uh1jaubah7j"ubhVX task every 30 seconds.rhri}rj(h0X task every 30 seconds.h1jYubeubcdocutils.nodes literal_block rk)rl}rm(h0Xfrom datetime import timedelta CELERYBEAT_SCHEDULE = { "runs-every-30-seconds": { "task": "tasks.add", "schedule": timedelta(seconds=30), "args": (16, 16) }, }h1j1h2h5h7U literal_blockrnh9}ro(UlinenosrpUlanguagerqXpythonU xml:spacerrUpreserversh;]h<]h=]h>]h?]uhAK#hBhh+]rthVXfrom datetime import timedelta CELERYBEAT_SCHEDULE = { "runs-every-30-seconds": { "task": "tasks.add", "schedule": timedelta(seconds=30), "args": (16, 16) }, }rurv}rw(h0Uh1jlubaubhp)rx}ry(h0XUsing a :class:`~datetime.timedelta` for the schedule means the task will be executed 30 seconds after ``celerybeat`` starts, and then every 30 seconds after the last run. A crontab like schedule also exists, see the section on `Crontab schedules`_.h1j1h2h5h7hh9}rz(h=]h>]h<]h;]h?]uhAK0hBhh+]r{(hVXUsing a r|r}}r~(h0XUsing a h1jxubj )r}r(h0X:class:`~datetime.timedelta`rh1jxh2h5h7jh9}r(UreftypeXclassjjXdatetime.timedeltaU refdomainXpyrh;]h<]U refexplicith=]h>]h?]jjUpy:classrNU py:modulerNuhAK0h+]rj)r}r(h0jh9}r(h=]h>]r(jjXpy-classreh<]h;]h?]uh1jh+]rhVX timedeltarr}r(h0Uh1jubah7j"ubaubhVXC for the schedule means the task will be executed 30 seconds after rr}r(h0XC for the schedule means the task will be executed 30 seconds after h1jxubj)r}r(h0X``celerybeat``h9}r(h=]h>]h<]h;]h?]uh1jxh+]rhVX celerybeatrr}r(h0Uh1jubah7j"ubhVXp starts, and then every 30 seconds after the last run. A crontab like schedule also exists, see the section on rr}r(h0Xp starts, and then every 30 seconds after the last run. A crontab like schedule also exists, see the section on h1jxubhu)r}r(h0X`Crontab schedules`_UresolvedrKh1jxh7hh9}r(UnameXCrontab schedulesh;]h<]h=]h>]h?]h@huh+]rhVXCrontab schedulesrr}r(h0Uh1jubaubhVX.r}r(h0X.h1jxubeubh-)r}r(h0X.. _beat-entry-fields:h1j1h2h5h7h8h9}r(h;]h<]h=]h>]h?]h@h%uhAK5hBhh+]ubhC)r}r(h0Uh1j1h2h5hF}rhjsh7hHh9}r(h=]h>]h<]h;]r(h'h%eh?]r(hheuhAK8hBhhL}rh%jsh+]r(hO)r}r(h0hh1jh2h5h7hSh9}r(h;]h<]h=]h>]h?]h@huhAK8hBhh+]rhVXAvailable Fieldsrr}r(h0hh1jubaubhe)r}r(h0Uh1jh2h5h7hhh9}r(UbulletrX*h;]h<]h=]h>]h?]uhAK:hBhh+]r(hk)r}r(h0X-``task`` The name of the task to execute. h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhANhBhh+]r(hp)r}r(h0X``task``rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAK:h+]rj)r}r(h0jh9}r(h=]h>]h<]h;]h?]uh1jh+]rhVXtaskrr}r(h0Uh1jubah7j"ubaubcdocutils.nodes block_quote r)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0X The name of the task to execute.rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAK]h<]h;]h?]uhANhBhh+]r(hp)r}r(h0X ``schedule``rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAK>h+]rj)r}r(h0jh9}r(h=]h>]h<]h;]h?]uh1jh+]rhVXschedulerr}r(h0Uh1jubah7j"ubaubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(hp)r}r(h0XThe frequency of execution.rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAK@h+]rhVXThe frequency of execution.rr}r(h0jh1jubaubhp)r}r(h0XThis can be the number of seconds as an integer, a :class:`~datetime.timedelta`, or a :class:`~celery.schedules.crontab`. You can also define your own custom schedule types, by extending the interface of :class:`~celery.schedules.schedule`.h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKBh+]r(hVX3This can be the number of seconds as an integer, a rr}r(h0X3This can be the number of seconds as an integer, a h1jubj )r}r(h0X:class:`~datetime.timedelta`rh1jh2h5h7jh9}r(UreftypeXclassjjXdatetime.timedeltaU refdomainXpyrh;]h<]U refexplicith=]h>]h?]jjjNjNuhAKBh+]rj)r}r(h0jh9}r(h=]h>]r(jjXpy-classr eh<]h;]h?]uh1jh+]r hVX timedeltar r }r (h0Uh1jubah7j"ubaubhVX, or a rr}r(h0X, or a h1jubj )r}r(h0X":class:`~celery.schedules.crontab`rh1jh2h5h7jh9}r(UreftypeXclassjjXcelery.schedules.crontabU refdomainXpyrh;]h<]U refexplicith=]h>]h?]jjjNjNuhAKBh+]rj)r}r(h0jh9}r(h=]h>]r(jjXpy-classreh<]h;]h?]uh1jh+]rhVXcrontabrr}r(h0Uh1jubah7j"ubaubhVXT. You can also define your own custom schedule types, by extending the interface of r r!}r"(h0XT. You can also define your own custom schedule types, by extending the interface of h1jubj )r#}r$(h0X#:class:`~celery.schedules.schedule`r%h1jh2h5h7jh9}r&(UreftypeXclassjjXcelery.schedules.scheduleU refdomainXpyr'h;]h<]U refexplicith=]h>]h?]jjjNjNuhAKBh+]r(j)r)}r*(h0j%h9}r+(h=]h>]r,(jj'Xpy-classr-eh<]h;]h?]uh1j#h+]r.hVXscheduler/r0}r1(h0Uh1j)ubah7j"ubaubhVX.r2}r3(h0X.h1jubeubeh7jubeubhk)r4}r5(h0XD``args`` Positional arguments (:class:`list` or :class:`tuple`). h1jh2h5h7hh9}r6(h=]h>]h<]h;]h?]uhANhBhh+]r7(hp)r8}r9(h0X``args``r:h1j4h2h5h7hh9}r;(h=]h>]h<]h;]h?]uhAKGh+]r<j)r=}r>(h0j:h9}r?(h=]h>]h<]h;]h?]uh1j8h+]r@hVXargsrArB}rC(h0Uh1j=ubah7j"ubaubj)rD}rE(h0Uh9}rF(h=]h>]h<]h;]h?]uh1j4h+]rGhp)rH}rI(h0X7Positional arguments (:class:`list` or :class:`tuple`).h1jDh2h5h7hh9}rJ(h=]h>]h<]h;]h?]uhAKIh+]rK(hVXPositional arguments (rLrM}rN(h0XPositional arguments (h1jHubj )rO}rP(h0X :class:`list`rQh1jHh2h5h7jh9}rR(UreftypeXclassjjXlistU refdomainXpyrSh;]h<]U refexplicith=]h>]h?]jjjNjNuhAKIh+]rTj)rU}rV(h0jQh9}rW(h=]h>]rX(jjSXpy-classrYeh<]h;]h?]uh1jOh+]rZhVXlistr[r\}r](h0Uh1jUubah7j"ubaubhVX or r^r_}r`(h0X or h1jHubj )ra}rb(h0X:class:`tuple`rch1jHh2h5h7jh9}rd(UreftypeXclassjjXtupleU refdomainXpyreh;]h<]U refexplicith=]h>]h?]jjjNjNuhAKIh+]rfj)rg}rh(h0jch9}ri(h=]h>]rj(jjeXpy-classrkeh<]h;]h?]uh1jah+]rlhVXtuplermrn}ro(h0Uh1jgubah7j"ubaubhVX).rprq}rr(h0X).h1jHubeubah7jubeubhk)rs}rt(h0X1``kwargs`` Keyword arguments (:class:`dict`). h1jh2h5h7hh9}ru(h=]h>]h<]h;]h?]uhANhBhh+]rv(hp)rw}rx(h0X ``kwargs``ryh1jsh2h5h7hh9}rz(h=]h>]h<]h;]h?]uhAKKh+]r{j)r|}r}(h0jyh9}r~(h=]h>]h<]h;]h?]uh1jwh+]rhVXkwargsrr}r(h0Uh1j|ubah7j"ubaubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jsh+]rhp)r}r(h0X"Keyword arguments (:class:`dict`).h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKMh+]r(hVXKeyword arguments (rr}r(h0XKeyword arguments (h1jubj )r}r(h0X :class:`dict`rh1jh2h5h7jh9}r(UreftypeXclassjjXdictU refdomainXpyrh;]h<]U refexplicith=]h>]h?]jjjNjNuhAKMh+]rj)r}r(h0jh9}r(h=]h>]r(jjXpy-classreh<]h;]h?]uh1jh+]rhVXdictrr}r(h0Uh1jubah7j"ubaubhVX).rr}r(h0X).h1jubeubah7jubeubhk)r}r(h0X``options`` Execution options (:class:`dict`). This can be any argument supported by :meth:`~celery.execute.apply_async`, e.g. ``exchange``, ``routing_key``, ``expires``, and so on. h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhANhBhh+]r(hp)r}r(h0X ``options``rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKOh+]rj)r}r(h0jh9}r(h=]h>]h<]h;]h?]uh1jh+]rhVXoptionsrr}r(h0Uh1jubah7j"ubaubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(hp)r}r(h0X"Execution options (:class:`dict`).h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKQh+]r(hVXExecution options (rr}r(h0XExecution options (h1jubj )r}r(h0X :class:`dict`rh1jh2h5h7jh9}r(UreftypeXclassjjXdictU refdomainXpyrh;]h<]U refexplicith=]h>]h?]jjjNjNuhAKQh+]rj)r}r(h0jh9}r(h=]h>]r(jjXpy-classreh<]h;]h?]uh1jh+]rhVXdictrr}r(h0Uh1jubah7j"ubaubhVX).rr}r(h0X).h1jubeubhp)r}r(h0XThis can be any argument supported by :meth:`~celery.execute.apply_async`, e.g. ``exchange``, ``routing_key``, ``expires``, and so on.h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKSh+]r(hVX&This can be any argument supported by rr}r(h0X&This can be any argument supported by h1jubj )r}r(h0X#:meth:`~celery.execute.apply_async`rh1jh2h5h7jh9}r(UreftypeXmethjjXcelery.execute.apply_asyncU refdomainXpyrh;]h<]U refexplicith=]h>]h?]jjjNjNuhAKSh+]rj)r}r(h0jh9}r(h=]h>]r(jjXpy-methreh<]h;]h?]uh1jh+]rhVX apply_async()rr}r(h0Uh1jubah7j"ubaubhVX, e.g. rr}r(h0X, e.g. h1jubj)r}r(h0X ``exchange``h9}r(h=]h>]h<]h;]h?]uh1jh+]rhVXexchangerr}r(h0Uh1jubah7j"ubhVX, rr}r(h0X, h1jubj)r}r(h0X``routing_key``h9}r(h=]h>]h<]h;]h?]uh1jh+]rhVX routing_keyrr}r(h0Uh1jubah7j"ubhVX, rr}r(h0X, h1jubj)r}r(h0X ``expires``h9}r(h=]h>]h<]h;]h?]uh1jh+]rhVXexpiresrr}r(h0Uh1jubah7j"ubhVX , and so on.rr}r(h0X , and so on.h1jubeubeh7jubeubhk)r}r(h0X```relative`` By default :class:`~datetime.timedelta` schedules are scheduled "by the clock". This means the frequency is rounded to the nearest second, minute, hour or day depending on the period of the timedelta. If ``relative`` is true the frequency is not rounded and will be relative to the time when :program:`celerybeat` was started. h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhANhBhh+]r(hp)r}r (h0X ``relative``r h1jh2h5h7hh9}r (h=]h>]h<]h;]h?]uhAKVh+]r j)r }r(h0j h9}r(h=]h>]h<]h;]h?]uh1jh+]rhVXrelativerr}r(h0Uh1j ubah7j"ubaubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(hp)r}r(h0XBy default :class:`~datetime.timedelta` schedules are scheduled "by the clock". This means the frequency is rounded to the nearest second, minute, hour or day depending on the period of the timedelta.h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKXh+]r(hVX By default rr}r(h0X By default h1jubj )r}r (h0X:class:`~datetime.timedelta`r!h1jh2h5h7jh9}r"(UreftypeXclassjjXdatetime.timedeltaU refdomainXpyr#h;]h<]U refexplicith=]h>]h?]jjjNjNuhAKXh+]r$j)r%}r&(h0j!h9}r'(h=]h>]r((jj#Xpy-classr)eh<]h;]h?]uh1jh+]r*hVX timedeltar+r,}r-(h0Uh1j%ubah7j"ubaubhVX schedules are scheduled "by the clock". This means the frequency is rounded to the nearest second, minute, hour or day depending on the period of the timedelta.r.r/}r0(h0X schedules are scheduled "by the clock". This means the frequency is rounded to the nearest second, minute, hour or day depending on the period of the timedelta.h1jubeubhp)r1}r2(h0X}If ``relative`` is true the frequency is not rounded and will be relative to the time when :program:`celerybeat` was started.h1jh2h5h7hh9}r3(h=]h>]h<]h;]h?]uhAK\h+]r4(hVXIf r5r6}r7(h0XIf h1j1ubj)r8}r9(h0X ``relative``h9}r:(h=]h>]h<]h;]h?]uh1j1h+]r;hVXrelativer<r=}r>(h0Uh1j8ubah7j"ubhVXL is true the frequency is not rounded and will be relative to the time when r?r@}rA(h0XL is true the frequency is not rounded and will be relative to the time when h1j1ubh)rB}rC(h0X:program:`celerybeat`h9}rD(h=]h>]rEhah<]h;]h?]uh1j1h+]rFhVX celerybeatrGrH}rI(h0Uh1jBubah7jubhVX was started.rJrK}rL(h0X was started.h1j1ubeubeh7jubeubeubh-)rM}rN(h0X.. _beat-crontab:h1jh2h5h7h8h9}rO(h;]h<]h=]h>]h?]h@huhAK_hBhh+]ubeubeubhC)rP}rQ(h0UU referencedrRKh1hDh2h5hF}rShjMsh7hHh9}rT(h=]h>]h<]h;]rU(hheh?]rV(hheuhAKbhBhhL}rWhjMsh+]rX(hO)rY}rZ(h0hh1jPh2h5h7hSh9}r[(h;]h<]h=]h>]h?]h@huhAKbhBhh+]r\hVXCrontab schedulesr]r^}r_(h0hh1jYubaubhp)r`}ra(h0XIf you want more control over when the task is executed, for example, a particular time of day or day of the week, you can use the ``crontab`` schedule type:h1jPh2h5h7hh9}rb(h=]h>]h<]h;]h?]uhAKdhBhh+]rc(hVXIf you want more control over when the task is executed, for example, a particular time of day or day of the week, you can use the rdre}rf(h0XIf you want more control over when the task is executed, for example, a particular time of day or day of the week, you can use the h1j`ubj)rg}rh(h0X ``crontab``h9}ri(h=]h>]h<]h;]h?]uh1j`h+]rjhVXcrontabrkrl}rm(h0Uh1jgubah7j"ubhVX schedule type:rnro}rp(h0X schedule type:h1j`ubeubjk)rq}rr(h0X from celery.schedules import crontab CELERYBEAT_SCHEDULE = { # Executes every Monday morning at 7:30 A.M "every-monday-morning": { "task": "tasks.add", "schedule": crontab(hour=7, minute=30, day_of_week=1), "args": (16, 16), }, }h1jPh2h5h7jnh9}rs(jpjqXpythonjrjsh;]h<]h=]h>]h?]uhAKhhBhh+]rthVX from celery.schedules import crontab CELERYBEAT_SCHEDULE = { # Executes every Monday morning at 7:30 A.M "every-monday-morning": { "task": "tasks.add", "schedule": crontab(hour=7, minute=30, day_of_week=1), "args": (16, 16), }, }rurv}rw(h0Uh1jqubaubhp)rx}ry(h0XJThe syntax of these crontab expressions are very flexible. Some examples:rzh1jPh2h5h7hh9}r{(h=]h>]h<]h;]h?]uhAKuhBhh+]r|hVXJThe syntax of these crontab expressions are very flexible. Some examples:r}r~}r(h0jzh1jxubaubcdocutils.nodes table r)r}r(h0Uh1jPh2h5h7Utablerh9}r(h=]h>]h<]h;]h?]uhANhBhh+]rcdocutils.nodes tgroup r)r}r(h0Uh9}r(h;]h<]h=]h>]h?]UcolsKuh1jh+]r(cdocutils.nodes colspec r)r}r(h0Uh9}r(h;]h<]h=]h>]h?]UcolwidthK%uh1jh+]h7Ucolspecrubj)r}r(h0Uh9}r(h;]h<]h=]h>]h?]UcolwidthK,uh1jh+]h7jubcdocutils.nodes tbody r)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(cdocutils.nodes row r)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(cdocutils.nodes entry r)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0X **Example**rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKxh+]rh)r}r(h0jh9}r(h=]h>]h<]h;]h?]uh1jh+]rhVXExamplerr}r(h0Uh1jubah7jubaubah7Uentryrubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0X **Meaning**rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKxh+]rh)r}r(h0jh9}r(h=]h>]h<]h;]h?]uh1jh+]rhVXMeaningrr}r(h0Uh1jubah7jubaubah7jubeh7Urowrubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(j)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0X crontab()rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKzh+]rhVX crontab()rr}r(h0jh1jubaubah7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0XExecute every minute.rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKzh+]rhVXExecute every minute.rr}r(h0jh1jubaubah7jubeh7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(j)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0Xcrontab(minute=0, hour=0)rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAK|h+]rhVXcrontab(minute=0, hour=0)rr}r(h0jh1jubaubah7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0XExecute daily at midnight.rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAK|h+]rhVXExecute daily at midnight.rr}r(h0jh1jubaubah7jubeh7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(j)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0Xcrontab(minute=0, hour="\*/3")h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAK~h+]rhVXcrontab(minute=0, hour="*/3")rr}r(h0Xcrontab(minute=0, hour="\*/3")h1jubaubah7jubj)r}r(h0Uh9}r (h=]h>]h<]h;]h?]uh1jh+]r hp)r }r (h0X>Execute every three hours: 3am, 6am, 9am, noon, 3pm, 6pm, 9pm.r h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAK~h+]rhVX>Execute every three hours: 3am, 6am, 9am, noon, 3pm, 6pm, 9pm.rr}r(h0j h1j ubaubah7jubeh7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(j)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rcdocutils.nodes definition_list r)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rcdocutils.nodes definition_list_item r )r!}r"(h0X-crontab(minute=0, hour=[0,3,6,9,12,15,18,21])h1jh2h5h7Udefinition_list_itemr#h9}r$(h=]h>]h<]h;]h?]uhAKh+]r%(cdocutils.nodes term r&)r'}r((h0Xcrontab(minute=0,r)h1j!h2h5h7Utermr*h9}r+(h=]h>]h<]h;]h?]uhAKh+]r,hVXcrontab(minute=0,r-r.}r/(h0j)h1j'ubaubcdocutils.nodes definition r0)r1}r2(h0Uh9}r3(h=]h>]h<]h;]h?]uh1j!h+]r4hp)r5}r6(h0Xhour=[0,3,6,9,12,15,18,21])r7h1j1h2h5h7hh9}r8(h=]h>]h<]h;]h?]uhAKh+]r9hVXhour=[0,3,6,9,12,15,18,21])r:r;}r<(h0j7h1j5ubaubah7U definitionr=ubeubah7Udefinition_listr>ubah7jubj)r?}r@(h0Uh9}rA(h=]h>]h<]h;]h?]uh1jh+]rBhp)rC}rD(h0XSame as previous.rEh1j?h2h5h7hh9}rF(h=]h>]h<]h;]h?]uhAKh+]rGhVXSame as previous.rHrI}rJ(h0jEh1jCubaubah7jubeh7jubj)rK}rL(h0Uh9}rM(h=]h>]h<]h;]h?]uh1jh+]rN(j)rO}rP(h0Uh9}rQ(h=]h>]h<]h;]h?]uh1jKh+]rRhp)rS}rT(h0Xcrontab(minute="\*/15")h1jOh2h5h7hh9}rU(h=]h>]h<]h;]h?]uhAKh+]rVhVXcrontab(minute="*/15")rWrX}rY(h0Xcrontab(minute="\*/15")h1jSubaubah7jubj)rZ}r[(h0Uh9}r\(h=]h>]h<]h;]h?]uh1jKh+]r]hp)r^}r_(h0XExecute every 15 minutes.r`h1jZh2h5h7hh9}ra(h=]h>]h<]h;]h?]uhAKh+]rbhVXExecute every 15 minutes.rcrd}re(h0j`h1j^ubaubah7jubeh7jubj)rf}rg(h0Uh9}rh(h=]h>]h<]h;]h?]uh1jh+]ri(j)rj}rk(h0Uh9}rl(h=]h>]h<]h;]h?]uh1jfh+]rmhp)rn}ro(h0Xcrontab(day_of_week="sunday")rph1jjh2h5h7hh9}rq(h=]h>]h<]h;]h?]uhAKh+]rrhVXcrontab(day_of_week="sunday")rsrt}ru(h0jph1jnubaubah7jubj)rv}rw(h0Uh9}rx(h=]h>]h<]h;]h?]uh1jfh+]ryhp)rz}r{(h0X$Execute every minute (!) at Sundays.r|h1jvh2h5h7hh9}r}(h=]h>]h<]h;]h?]uhAKh+]r~hVX$Execute every minute (!) at Sundays.rr}r(h0j|h1jzubaubah7jubeh7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(j)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rj )r}r(h0X0crontab(minute="*", hour="*", day_of_week="sun")h1jh2h5h7j#h9}r(h=]h>]h<]h;]h?]uhAKh+]r(j&)r}r(h0Xcrontab(minute="*",h1jh2h5h7j*h9}r(h=]h>]h<]h;]h?]uhAKh+]rhVXcrontab(minute="*",rr}r(h0Xcrontab(minute="*",h1jubaubj0)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0Xhour="*", day_of_week="sun")h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKh+]rhVXhour="*", day_of_week="sun")rr}r(h0Xhour="*", day_of_week="sun")h1jubaubah7j=ubeubah7j>ubah7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0XSame as previous.rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKh+]rhVXSame as previous.rr}r(h0jh1jubaubah7jubeh7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(j)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rj )r}r(h0X>crontab(minute="\*/10", hour="3,17,22", day_of_week="thu,fri")h1jh2h5h7j#h9}r(h=]h>]h<]h;]h?]uhAKh+]r(j&)r}r(h0Xcrontab(minute="\*/10",rh1jh2h5h7j*h9}r(h=]h>]h<]h;]h?]uhAKh+]rhVXcrontab(minute="*/10",rr}r(h0Xcrontab(minute="\*/10",h1jubaubj0)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0X&hour="3,17,22", day_of_week="thu,fri")rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKh+]rhVX&hour="3,17,22", day_of_week="thu,fri")rr}r(h0jh1jubaubah7j=ubeubah7j>ubah7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0X`Execute every ten minutes, but only between 3-4 am, 5-6 pm and 10-11 pm on Thursdays or Fridays.rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKh+]rhVX`Execute every ten minutes, but only between 3-4 am, 5-6 pm and 10-11 pm on Thursdays or Fridays.rr}r(h0jh1jubaubah7jubeh7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r(j)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0X#crontab(minute=0, hour="\*/2,\*/3")h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKh+]rhVX!crontab(minute=0, hour="*/2,*/3")rr}r(h0X#crontab(minute=0, hour="\*/2,\*/3")h1jubaubah7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0XExecute every even hour, and every hour divisible by three. This means: at every hour *except*: 1am, 5am, 7am, 11am, 1pm, 5pm, 7pm, 11pmh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKh+]r(hVXVExecute every even hour, and every hour divisible by three. This means: at every hour rr}r(h0XVExecute every even hour, and every hour divisible by three. This means: at every hour h1jubcdocutils.nodes emphasis r)r}r(h0X*except*h9}r(h=]h>]h<]h;]h?]uh1jh+]rhVXexceptrr}r(h0Uh1jubah7UemphasisrubhVX*: 1am, 5am, 7am, 11am, 1pm, 5pm, 7pm, 11pmrr}r(h0X*: 1am, 5am, 7am, 11am, 1pm, 5pm, 7pm, 11pmh1jubeubah7jubeh7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]r (j)r }r (h0Uh9}r (h=]h>]h<]h;]h?]uh1jh+]r hp)r}r(h0Xcrontab(minute=0, hour="\*/5")h1j h2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKh+]rhVXcrontab(minute=0, hour="*/5")rr}r(h0Xcrontab(minute=0, hour="\*/5")h1jubaubah7jubj)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhp)r}r(h0XExecute hour divisible by 5. This means that it is triggered at 3pm, not 5pm (since 3pm equals the 24-hour clock value of "15", which is divisible by 5).rh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKh+]rhVXExecute hour divisible by 5. This means that it is triggered at 3pm, not 5pm (since 3pm equals the 24-hour clock value of "15", which is divisible by 5).rr}r (h0jh1jubaubah7jubeh7jubj)r!}r"(h0Uh9}r#(h=]h>]h<]h;]h?]uh1jh+]r$(j)r%}r&(h0Uh9}r'(h=]h>]h<]h;]h?]uh1j!h+]r(hp)r)}r*(h0X#crontab(minute=0, hour="\*/3,8-17")h1j%h2h5h7hh9}r+(h=]h>]h<]h;]h?]uhAKh+]r,hVX"crontab(minute=0, hour="*/3,8-17")r-r.}r/(h0X#crontab(minute=0, hour="\*/3,8-17")h1j)ubaubah7jubj)r0}r1(h0Uh9}r2(h=]h>]h<]h;]h?]uh1j!h+]r3hp)r4}r5(h0XPExecute every hour divisible by 3, and every hour during office hours (8am-5pm).r6h1j0h2h5h7hh9}r7(h=]h>]h<]h;]h?]uhAKh+]r8hVXPExecute every hour divisible by 3, and every hour during office hours (8am-5pm).r9r:}r;(h0j6h1j4ubaubah7jubeh7jubeh7Utbodyr<ubeh7Utgroupr=ubaubh-)r>}r?(h0X.. _beat-starting:h1jPh2h5h7h8h9}r@(h;]h<]h=]h>]h?]h@huhAKhBhh+]ubeubhC)rA}rB(h0Uh1hDh2h5hF}rChj>sh7hHh9}rD(h=]h>]h<]h;]rE(h$heh?]rF(h heuhAKhBhhL}rGhj>sh+]rH(hO)rI}rJ(h0hh1jAh2h5h7hSh9}rK(h;]h<]h=]h>]h?]h@huhAKhBhh+]rLhVXStarting celerybeatrMrN}rO(h0hh1jIubaubhp)rP}rQ(h0X,To start the :program:`celerybeat` service::rRh1jAh2h5h7hh9}rS(h=]h>]h<]h;]h?]uhAKhBhh+]rT(hVX To start the rUrV}rW(h0X To start the h1jPubh)rX}rY(h0X:program:`celerybeat`h9}rZ(h=]h>]r[hah<]h;]h?]uh1jPh+]r\hVX celerybeatr]r^}r_(h0Uh1jXubah7jubhVX service:r`ra}rb(h0X service:h1jPubeubjk)rc}rd(h0X $ celerybeath1jAh2h5h7jnh9}re(jrjsh;]h<]h=]h>]h?]uhAKhBhh+]rfhVX $ celerybeatrgrh}ri(h0Uh1jcubaubhp)rj}rk(h0XYou can also start ``celerybeat`` with ``celeryd`` by using the ``-B`` option, this is convenient if you only intend to use one worker node::h1jAh2h5h7hh9}rl(h=]h>]h<]h;]h?]uhAKhBhh+]rm(hVXYou can also start rnro}rp(h0XYou can also start h1jjubj)rq}rr(h0X``celerybeat``h9}rs(h=]h>]h<]h;]h?]uh1jjh+]rthVX celerybeatrurv}rw(h0Uh1jqubah7j"ubhVX with rxry}rz(h0X with h1jjubj)r{}r|(h0X ``celeryd``h9}r}(h=]h>]h<]h;]h?]uh1jjh+]r~hVXcelerydrr}r(h0Uh1j{ubah7j"ubhVX by using the rr}r(h0X by using the h1jjubj)r}r(h0X``-B``h9}r(h=]h>]h<]h;]h?]uh1jjh+]rhVX-Brr}r(h0Uh1jubah7j"ubhVXF option, this is convenient if you only intend to use one worker node:rr}r(h0XF option, this is convenient if you only intend to use one worker node:h1jjubeubjk)r}r(h0X $ celeryd -Bh1jAh2h5h7jnh9}r(jrjsh;]h<]h=]h>]h?]uhAKhBhh+]rhVX $ celeryd -Brr}r(h0Uh1jubaubhp)r}r(h0XCelerybeat needs to store the last run times of the tasks in a local database file (named ``celerybeat-schedule`` by default), so it needs access to write in the current directory, or alternatively you can specify a custom location for this file::h1jAh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKhBhh+]r(hVXZCelerybeat needs to store the last run times of the tasks in a local database file (named rr}r(h0XZCelerybeat needs to store the last run times of the tasks in a local database file (named h1jubj)r}r(h0X``celerybeat-schedule``h9}r(h=]h>]h<]h;]h?]uh1jh+]rhVXcelerybeat-schedulerr}r(h0Uh1jubah7j"ubhVX by default), so it needs access to write in the current directory, or alternatively you can specify a custom location for this file:rr}r(h0X by default), so it needs access to write in the current directory, or alternatively you can specify a custom location for this file:h1jubeubjk)r}r(h0X8$ celerybeat -s /home/celery/var/run/celerybeat-scheduleh1jAh2h5h7jnh9}r(jrjsh;]h<]h=]h>]h?]uhAKhBhh+]rhVX8$ celerybeat -s /home/celery/var/run/celerybeat-schedulerr}r(h0Uh1jubaubcdocutils.nodes note r)r}r(h0X/To daemonize celerybeat see :ref:`daemonizing`.rh1jAh2h5h7Unoterh9}r(h=]h>]h<]h;]h?]uhANhBhh+]rhp)r}r(h0jh1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKh+]r(hVXTo daemonize celerybeat see rr}r(h0XTo daemonize celerybeat see h1jubj )r}r(h0X:ref:`daemonizing`rh1jh2h5h7jh9}r(UreftypeXrefjjX daemonizingU refdomainXstdrh;]h<]U refexplicith=]h>]h?]jjuhAKh+]rj)r}r(h0jh9}r(h=]h>]r(jjXstd-refreh<]h;]h?]uh1jh+]rhVX daemonizingrr}r(h0Uh1jubah7jubaubhVX.r}r(h0X.h1jubeubaubh-)r}r(h0X.. _beat-custom-schedulers:h1jAh2h5h7h8h9}r(h;]h<]h=]h>]h?]h@h uhAKhBhh+]ubhC)r}r(h0Uh1jAh2h5hF}rh jsh7hHh9}r(h=]h>]h<]h;]r(h(h eh?]r(hh euhAKhBhhL}rh jsh+]r(hO)r}r(h0hh1jh2h5h7hSh9}r(h;]h<]h=]h>]h?]h@huhAKhBhh+]rhVXUsing custom scheduler classesrr}r(h0hh1jubaubhp)r}r(h0XCustom scheduler classes can be specified on the command line (the ``-S`` argument). The default scheduler is :class:`celery.beat.PersistentScheduler`, which is simply keeping track of the last run times in a local database file (a :mod:`shelve`).h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKhBhh+]r(hVXCCustom scheduler classes can be specified on the command line (the rr}r(h0XCCustom scheduler classes can be specified on the command line (the h1jubj)r}r(h0X``-S``h9}r(h=]h>]h<]h;]h?]uh1jh+]rhVX-Srr}r(h0Uh1jubah7j"ubhVX& argument). The default scheduler is rr}r(h0X& argument). The default scheduler is h1jubj )r}r(h0X(:class:`celery.beat.PersistentScheduler`rh1jh2h5h7jh9}r(UreftypeXclassjjXcelery.beat.PersistentSchedulerU refdomainXpyrh;]h<]U refexplicith=]h>]h?]jjjNjNuhAKh+]rj)r}r(h0jh9}r(h=]h>]r(jjXpy-classreh<]h;]h?]uh1jh+]rhVXcelery.beat.PersistentSchedulerrr}r(h0Uh1jubah7j"ubaubhVXR, which is simply keeping track of the last run times in a local database file (a rr}r(h0XR, which is simply keeping track of the last run times in a local database file (a h1jubj )r}r(h0X :mod:`shelve`rh1jh2h5h7jh9}r(UreftypeXmodjjXshelveU refdomainXpyrh;]h<]U refexplicith=]h>]h?]jjjNjNuhAKh+]rj)r}r (h0jh9}r (h=]h>]r (jjXpy-modr eh<]h;]h?]uh1jh+]r hVXshelverr}r(h0Uh1jubah7j"ubaubhVX).rr}r(h0X).h1jubeubhp)r}r(h0X_``django-celery`` also ships with a scheduler that stores the schedule in the Django database::h1jh2h5h7hh9}r(h=]h>]h<]h;]h?]uhAKhBhh+]r(j)r}r(h0X``django-celery``h9}r(h=]h>]h<]h;]h?]uh1jh+]rhVX django-celeryrr}r(h0Uh1jubah7j"ubhVXM also ships with a scheduler that stores the schedule in the Django database:rr }r!(h0XM also ships with a scheduler that stores the schedule in the Django database:h1jubeubjk)r"}r#(h0X5$ celerybeat -S djcelery.schedulers.DatabaseSchedulerh1jh2h5h7jnh9}r$(jrjsh;]h<]h=]h>]h?]uhAKhBhh+]r%hVX5$ celerybeat -S djcelery.schedulers.DatabaseSchedulerr&r'}r((h0Uh1j"ubaubhp)r)}r*(h0XhUsing ``django-celery``'s scheduler you can add, modify and remove periodic tasks from the Django Admin.h1jh2h5h7hh9}r+(h=]h>]h<]h;]h?]uhAKhBhh+]r,(hVXUsing r-r.}r/(h0XUsing h1j)ubj)r0}r1(h0X``django-celery``h9}r2(h=]h>]h<]h;]h?]uh1j)h+]r3hVX django-celeryr4r5}r6(h0Uh1j0ubah7j"ubhVXQ's scheduler you can add, modify and remove periodic tasks from the Django Admin.r7r8}r9(h0XQ's scheduler you can add, modify and remove periodic tasks from the Django Admin.h1j)ubeubeubeubeubeh0UU transformerr:NU footnote_refsr;}r<Urefnamesr=}r>Xcrontab schedules]r?jasUsymbol_footnotesr@]rAUautofootnote_refsrB]rCUsymbol_footnote_refsrD]rEU citationsrF]rGhBhU current_linerHNUtransform_messagesrI]rJ(cdocutils.nodes system_message rK)rL}rM(h0Uh9}rN(h=]UlevelKh;]h<]Usourceh5h>]h?]UlineKUtypeUINFOrOuh+]rPhp)rQ}rR(h0Uh9}rS(h=]h>]h<]h;]h?]uh1jLh+]rThVX0Hyperlink target "guide-beat" is not referenced.rUrV}rW(h0Uh1jQubah7hubah7Usystem_messagerXubjK)rY}rZ(h0Uh9}r[(h=]UlevelKh;]h<]Usourceh5h>]h?]UlineKUtypejOuh+]r\hp)r]}r^(h0Uh9}r_(h=]h>]h<]h;]h?]uh1jYh+]r`hVX2Hyperlink target "beat-entries" is not referenced.rarb}rc(h0Uh1j]ubah7hubah7jXubjK)rd}re(h0Uh9}rf(h=]UlevelKh;]h<]Usourceh5h>]h?]UlineK5UtypejOuh+]rghp)rh}ri(h0Uh9}rj(h=]h>]h<]h;]h?]uh1jdh+]rkhVX7Hyperlink target "beat-entry-fields" is not referenced.rlrm}rn(h0Uh1jhubah7hubah7jXubjK)ro}rp(h0Uh9}rq(h=]UlevelKh;]h<]Usourceh5h>]h?]UlineK_UtypejOuh+]rrhp)rs}rt(h0Uh9}ru(h=]h>]h<]h;]h?]uh1joh+]rvhVX2Hyperlink target "beat-crontab" is not referenced.rwrx}ry(h0Uh1jsubah7hubah7jXubjK)rz}r{(h0Uh9}r|(h=]UlevelKh;]h<]Usourceh5h>]h?]UlineKUtypejOuh+]r}hp)r~}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jzh+]rhVX3Hyperlink target "beat-starting" is not referenced.rr}r(h0Uh1j~ubah7hubah7jXubjK)r}r(h0Uh9}r(h=]UlevelKh;]h<]Usourceh5h>]h?]UlineKUtypejOuh+]rhp)r}r(h0Uh9}r(h=]h>]h<]h;]h?]uh1jh+]rhVX<Hyperlink target "beat-custom-schedulers" is not referenced.rr}r(h0Uh1jubah7hubah7jXubeUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrjU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhSNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUV/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/periodic-tasks.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjAh(jhhhjPhjPh jh!hhhhhh"hDh#hDhhhzhvh$jAh'jh%jh&j1hhh)h[h*j1uUsubstitution_namesr}rh7hBh9}r(h=]h;]h<]Usourceh5h>]h?]uU footnotesr]rUrefidsr}r(h]rj>ah]rjMah"]rh.ah ]rjah%]rjah*]rj.auub.PKYDDcq : :7celery-2.1-archived/.doctrees/userguide/workers.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xworker-inspect-registered-tasksqX!dump of currently executing tasksqNXworker-restartingqXthe broadcast() function.q NX rate limitsq NXworker-broadcast-funq Xworker-time-limitsq Xpersistent revokesq NX concurrencyqNXstopping the workerqNUcontentsqNXworker-maxtasksperchildqXinspecting workersqNX workers guideqNXenable/disable eventsqNXworker-custom-control-commandsqXpingqNXdump of reserved tasksqNXworker-startingqXworker-inspect-eta-scheduleqXworker-inspect-reservedqXworker-enable-eventsqXworker-inspect-active-tasksqX guide-workerqXworker-concurrencyqXworker-remote-controlqXstarting the workerq NXdump of registered tasksq!NX(writing your own remote control commandsq"NXremote controlq#NX time limitsq$NXworker-inspectq%Xrestarting the workerq&NXworker-rate-limitsq'Xworker-persistent-revokesq(Xworker-stoppingq)Xdump of scheduled (eta) tasksq*NXremote shutdownq+NXmax tasks per child settingq,NuUsubstitution_defsq-}q.Uparse_messagesq/]q0Ucurrent_sourceq1NU decorationq2NUautofootnote_startq3KUnameidsq4}q5(hUworker-inspect-registered-tasksq6hU!dump-of-currently-executing-tasksq7hUworker-restartingq8h Uthe-broadcast-functionq9h U rate-limitsq:h Uworker-broadcast-funq;h Uworker-time-limitsqhUstopping-the-workerq?hUcontentsq@hUworker-maxtasksperchildqAhUinspecting-workersqBhU workers-guideqChUenable-disable-eventsqDhUworker-custom-control-commandsqEhUpingqFhUdump-of-reserved-tasksqGhUworker-startingqHhUworker-inspect-eta-scheduleqIhUworker-inspect-reservedqJhUworker-enable-eventsqKhUworker-inspect-active-tasksqLhU guide-workerqMhUworker-concurrencyqNhUworker-remote-controlqOh Ustarting-the-workerqPh!Udump-of-registered-tasksqQh"U(writing-your-own-remote-control-commandsqRh#Uremote-controlqSh$U time-limitsqTh%Uworker-inspectqUh&Urestarting-the-workerqVh'Uworker-rate-limitsqWh(Uworker-persistent-revokesqXh)Uworker-stoppingqYh*Udump-of-scheduled-eta-tasksqZh+Uremote-shutdownq[h,Umax-tasks-per-child-settingq\uUchildrenq]]q^(cdocutils.nodes target q_)q`}qa(U rawsourceqbX.. _guide-worker:UparentqchUsourceqdcdocutils.nodes reprunicode qeXO/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/workers.rstqfqg}qhbUtagnameqiUtargetqjU attributesqk}ql(Uidsqm]Ubackrefsqn]Udupnamesqo]Uclassesqp]Unamesqq]UrefidqrhMuUlineqsKUdocumentqthh]]ubcdocutils.nodes section qu)qv}qw(hbUhchhdhgUexpect_referenced_by_nameqx}qyhh`shiUsectionqzhk}q{(ho]hp]hn]hm]q|(hChMehq]q}(hheuhsKhthUexpect_referenced_by_idq~}qhMh`sh]]q(cdocutils.nodes title q)q}q(hbX Workers GuideqhchvhdhghiUtitleqhk}q(ho]hp]hn]hm]hq]uhsKhthh]]qcdocutils.nodes Text qX Workers Guideqq}q(hbhhchubaubcdocutils.nodes topic q)q}q(hbUhchvhdhghiUtopicqhk}q(ho]hp]q(UcontentsqUlocalqehn]hm]qh@ahq]qhauhsKhthh]]qcdocutils.nodes bullet_list q)q}q(hbUhchhdNhiU bullet_listqhk}q(ho]hp]hn]hm]hq]uhsNhthh]]q(cdocutils.nodes list_item q)q}q(hbUhk}q(ho]hp]hn]hm]hq]uhchh]]qcdocutils.nodes paragraph q)q}q(hbUhk}q(ho]hp]hn]hm]hq]uhchh]]qcdocutils.nodes reference q)q}q(hbUhk}q(hm]qUid1qahn]ho]hp]hq]UrefidhPuhchh]]qhXStarting the workerqq}q(hbXStarting the workerqhchubahiU referencequbahiU paragraphqubahiU list_itemqubh)q}q(hbUhk}q(ho]hp]hn]hm]hq]uhchh]]qh)q}q(hbUhk}q(ho]hp]hn]hm]hq]uhchh]]qh)q}q(hbUhk}q(hm]qUid2qahn]ho]hp]hq]Urefidh?uhchh]]qhXStopping the workerqÅq}q(hbXStopping the workerqhchubahihubahihubahihubh)q}q(hbUhk}q(ho]hp]hn]hm]hq]uhchh]]qh)q}q(hbUhk}q(ho]hp]hn]hm]hq]uhchh]]qh)q}q(hbUhk}q(hm]qUid3qahn]ho]hp]hq]UrefidhVuhchh]]qhXRestarting the workerqՅq}q(hbXRestarting the workerqhchubahihubahihubahihubh)q}q(hbUhk}q(ho]hp]hn]hm]hq]uhchh]]qh)q}q(hbUhk}q(ho]hp]hn]hm]hq]uhchh]]qh)q}q(hbUhk}q(hm]qUid4qahn]ho]hp]hq]Urefidh>uhchh]]qhX Concurrencyq煁q}q(hbX Concurrencyqhchubahihubahihubahihubh)q}q(hbUhk}q(ho]hp]hn]hm]hq]uhchh]]qh)q}q(hbUhk}q(ho]hp]hn]hm]hq]uhchh]]qh)q}q(hbUhk}q(hm]qUid5qahn]ho]hp]hq]Urefidh=uhchh]]qhXPersistent revokesqq}q(hbXPersistent revokesqhchubahihubahihubahihubh)q}q(hbUhk}q(ho]hp]hn]hm]hq]uhchh]]rh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhchh]]rh)r}r(hbUhk}r(hm]rUid6r ahn]ho]hp]hq]UrefidhTuhcjh]]r hX Time limitsr r }r (hbX Time limitsrhcjubahihubahihubahihubh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhchh]]rh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rh)r}r(hbUhk}r(hm]rUid7rahn]ho]hp]hq]Urefidh\uhcjh]]rhXMax tasks per child settingrr}r(hbXMax tasks per child settingr hcjubahihubahihubahihubh)r!}r"(hbUhk}r#(ho]hp]hn]hm]hq]uhchh]]r$(h)r%}r&(hbUhk}r'(ho]hp]hn]hm]hq]uhcj!h]]r(h)r)}r*(hbUhk}r+(hm]r,Uid8r-ahn]ho]hp]hq]UrefidhSuhcj%h]]r.hXRemote controlr/r0}r1(hbXRemote controlr2hcj)ubahihubahihubh)r3}r4(hbUhk}r5(ho]hp]hn]hm]hq]uhcj!h]]r6(h)r7}r8(hbUhk}r9(ho]hp]hn]hm]hq]uhcj3h]]r:h)r;}r<(hbUhk}r=(ho]hp]hn]hm]hq]uhcj7h]]r>h)r?}r@(hbUhk}rA(hm]rBUid9rCahn]ho]hp]hq]Urefidh9uhcj;h]]rD(hXThe rErF}rG(hbXThe rHhcj?ubcsphinx.addnodes pending_xref rI)rJ}rK(hbX&:func:`~celery.task.control.broadcast`rLhk}rM(UreftypeXfuncrNUrefwarnU reftargetXcelery.task.control.broadcastrOU refdomainXpyrPhm]hn]U refexplicitho]hp]hq]UrefdocXuserguide/workersrQUpy:classNU py:moduleNuhcj?h]]rRcdocutils.nodes literal rS)rT}rU(hbjLhk}rV(ho]hp]rW(UxrefrXjPXpy-funcrYehn]hm]hq]uhcjJh]]rZhX broadcast()r[r\}r](hbUhcjTubahiUliteralr^ubahiU pending_xrefr_ubhX function.r`ra}rb(hbX function.rchcj?ubehihubahihubahihubh)rd}re(hbUhk}rf(ho]hp]hn]hm]hq]uhcj3h]]rgh)rh}ri(hbUhk}rj(ho]hp]hn]hm]hq]uhcjdh]]rkh)rl}rm(hbUhk}rn(hm]roUid10rpahn]ho]hp]hq]Urefidh:uhcjhh]]rqhX Rate limitsrrrs}rt(hbX Rate limitsruhcjlubahihubahihubahihubh)rv}rw(hbUhk}rx(ho]hp]hn]hm]hq]uhcj3h]]ryh)rz}r{(hbUhk}r|(ho]hp]hn]hm]hq]uhcjvh]]r}h)r~}r(hbUhk}r(hm]rUid11rahn]ho]hp]hq]Urefidh[uhcjzh]]rhXRemote shutdownrr}r(hbXRemote shutdownrhcj~ubahihubahihubahihubh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcj3h]]rh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rh)r}r(hbUhk}r(hm]rUid12rahn]ho]hp]hq]UrefidhFuhcjh]]rhXPingrr}r(hbXPingrhcjubahihubahihubahihubh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcj3h]]rh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rh)r}r(hbUhk}r(hm]rUid13rahn]ho]hp]hq]UrefidhDuhcjh]]rhXEnable/disable eventsrr}r(hbXEnable/disable eventsrhcjubahihubahihubahihubh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcj3h]]rh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rh)r}r(hbUhk}r(hm]rUid14rahn]ho]hp]hq]UrefidhRuhcjh]]rhX(Writing your own remote control commandsrr}r(hbX(Writing your own remote control commandsrhcjubahihubahihubahihubehihubehihubh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhchh]]r(h)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rh)r}r(hbUhk}r(hm]rUid15rahn]ho]hp]hq]UrefidhBuhcjh]]rhXInspecting workersrr}r(hbXInspecting workersrhcjubahihubahihubh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]r(h)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rh)r}r(hbUhk}r(hm]rUid16rahn]ho]hp]hq]UrefidhQuhcjh]]rhXDump of registered tasksrr}r(hbXDump of registered tasksrhcjubahihubahihubahihubh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rh)r}r(hbUhk}r(hm]rUid17rahn]ho]hp]hq]Urefidh7uhcjh]]rhX!Dump of currently executing tasksrr}r(hbX!Dump of currently executing tasksrhcjubahihubahihubahihubh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rh)r}r(hbUhk}r(hm]rUid18rahn]ho]hp]hq]UrefidhZuhcjh]]rhXDump of scheduled (ETA) tasksrr}r(hbXDump of scheduled (ETA) tasksr hcjubahihubahihubahihubh)r }r (hbUhk}r (ho]hp]hn]hm]hq]uhcjh]]r h)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcj h]]rh)r}r(hbUhk}r(hm]rUid19rahn]ho]hp]hq]UrefidhGuhcjh]]rhXDump of reserved tasksrr}r(hbXDump of reserved tasksrhcjubahihubahihubahihubehihubehihubeubaubh_)r}r(hbX.. _worker-starting:hchvhdhghihjhk}r(hm]hn]ho]hp]hq]hrhHuhsK hthh]]ubhu)r}r (hbUhchvhdhghx}r!hjshihzhk}r"(ho]hp]hn]hm]r#(hPhHehq]r$(h heuhsK hthh~}r%hHjsh]]r&(h)r'}r((hbhhcjhdhghihhk}r)(hm]hn]ho]hp]hq]hrhuhsK hthh]]r*hXStarting the workerr+r,}r-(hbhhcj'ubaubh)r.}r/(hbXIYou can start celeryd to run in the foreground by executing the command::r0hcjhdhghihhk}r1(ho]hp]hn]hm]hq]uhsKhthh]]r2hXHYou can start celeryd to run in the foreground by executing the command:r3r4}r5(hbXHYou can start celeryd to run in the foreground by executing the command:hcj.ubaubcdocutils.nodes literal_block r6)r7}r8(hbX$ celeryd --loglevel=INFOhcjhdhghiU literal_blockr9hk}r:(U xml:spacer;Upreserver<hm]hn]ho]hp]hq]uhsKhthh]]r=hX$ celeryd --loglevel=INFOr>r?}r@(hbUhcj7ubaubh)rA}rB(hbXYou probably want to use a daemonization tool to start ``celeryd`` in the background. See :ref:`daemonizing` for help using ``celeryd`` with popular daemonization tools.hcjhdhghihhk}rC(ho]hp]hn]hm]hq]uhsKhthh]]rD(hX7You probably want to use a daemonization tool to start rErF}rG(hbX7You probably want to use a daemonization tool to start hcjAubjS)rH}rI(hbX ``celeryd``hk}rJ(ho]hp]hn]hm]hq]uhcjAh]]rKhXcelerydrLrM}rN(hbUhcjHubahij^ubhX in the background. See rOrP}rQ(hbX in the background. See hcjAubjI)rR}rS(hbX:ref:`daemonizing`rThcjAhdhghij_hk}rU(UreftypeXrefUrefwarnrVU reftargetrWX daemonizingU refdomainXstdrXhm]hn]U refexplicitho]hp]hq]UrefdocrYjQuhsKh]]rZcdocutils.nodes emphasis r[)r\}r](hbjThk}r^(ho]hp]r_(jXjXXstd-refr`ehn]hm]hq]uhcjRh]]rahX daemonizingrbrc}rd(hbUhcj\ubahiUemphasisreubaubhX for help using rfrg}rh(hbX for help using hcjAubjS)ri}rj(hbX ``celeryd``hk}rk(ho]hp]hn]hm]hq]uhcjAh]]rlhXcelerydrmrn}ro(hbUhcjiubahij^ubhX" with popular daemonization tools.rprq}rr(hbX" with popular daemonization tools.hcjAubeubh)rs}rt(hbX`For a full list of available command line options see :mod:`~celery.bin.celeryd`, or simply do::hcjhdhghihhk}ru(ho]hp]hn]hm]hq]uhsKhthh]]rv(hX6For a full list of available command line options see rwrx}ry(hbX6For a full list of available command line options see hcjsubjI)rz}r{(hbX:mod:`~celery.bin.celeryd`r|hcjshdhghij_hk}r}(UreftypeXmodjVjWXcelery.bin.celerydU refdomainXpyr~hm]hn]U refexplicitho]hp]hq]jYjQUpy:classrNU py:modulerNuhsKh]]rjS)r}r(hbj|hk}r(ho]hp]r(jXj~Xpy-modrehn]hm]hq]uhcjzh]]rhXcelerydrr}r(hbUhcjubahij^ubaubhX, or simply do:rr}r(hbX, or simply do:hcjsubeubj6)r}r(hbX$ celeryd --helphcjhdhghij9hk}r(j;j<hm]hn]ho]hp]hq]uhsKhthh]]rhX$ celeryd --helprr}r(hbUhcjubaubh)r}r(hbXYou can also start multiple workers on the same machine. If you do so be sure to give a unique name to each individual worker by specifying a host name with the `--hostname|-n` argument::hcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsKhthh]]r(hXYou can also start multiple workers on the same machine. If you do so be sure to give a unique name to each individual worker by specifying a host name with the rr}r(hbXYou can also start multiple workers on the same machine. If you do so be sure to give a unique name to each individual worker by specifying a host name with the hcjubcdocutils.nodes title_reference r)r}r(hbX`--hostname|-n`hk}r(ho]hp]hn]hm]hq]uhcjh]]rhX --hostname|-nrr}r(hbUhcjubahiUtitle_referencerubhX argument:rr}r(hbX argument:hcjubeubj6)r}r(hbX$ celeryd --loglevel=INFO --concurrency=10 -n worker1.example.com $ celeryd --loglevel=INFO --concurrency=10 -n worker2.example.com $ celeryd --loglevel=INFO --concurrency=10 -n worker3.example.comhcjhdhghij9hk}r(j;j<hm]hn]ho]hp]hq]uhsK hthh]]rhX$ celeryd --loglevel=INFO --concurrency=10 -n worker1.example.com $ celeryd --loglevel=INFO --concurrency=10 -n worker2.example.com $ celeryd --loglevel=INFO --concurrency=10 -n worker3.example.comrr}r(hbUhcjubaubh_)r}r(hbX.. _worker-stopping:hcjhdhghihjhk}r(hm]hn]ho]hp]hq]hrhYuhsK$hthh]]ubeubhu)r}r(hbUhchvhdhghx}rh)jshihzhk}r(ho]hp]hn]hm]r(h?hYehq]r(hh)euhsK'hthh~}rhYjsh]]r(h)r}r(hbhhcjhdhghihhk}r(hm]hn]ho]hp]hq]hrhuhsK'hthh]]rhXStopping the workerrr}r(hbhhcjubaubh)r}r(hbX=Shutdown should be accomplished using the :sig:`TERM` signal.rhcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsK)hthh]]r(hX*Shutdown should be accomplished using the rr}r(hbX*Shutdown should be accomplished using the hcjubjI)r}r(hbX :sig:`TERM`rhcjhdhghij_hk}r(UreftypeXsigjVjWXTERMU refdomainXstdrhm]hn]U refexplicitho]hp]hq]jYjQuhsK)h]]rjS)r}r(hbjhk}r(ho]hp]r(jXjXstd-sigrehn]hm]hq]uhcjh]]rhXTERMrr}r(hbUhcjubahij^ubaubhX signal.rr}r(hbX signal.hcjubeubh)r}r(hbXWhen shutdown is initiated the worker will finish all currently executing tasks before it actually terminates, so if these tasks are important you should wait for it to finish before doing anything drastic (like sending the :sig:`KILL` signal).hcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsK+hthh]]r(hXWhen shutdown is initiated the worker will finish all currently executing tasks before it actually terminates, so if these tasks are important you should wait for it to finish before doing anything drastic (like sending the rr}r(hbXWhen shutdown is initiated the worker will finish all currently executing tasks before it actually terminates, so if these tasks are important you should wait for it to finish before doing anything drastic (like sending the hcjubjI)r}r(hbX :sig:`KILL`rhcjhdhghij_hk}r(UreftypeXsigjVjWXKILLU refdomainXstdrhm]hn]U refexplicitho]hp]hq]jYjQuhsK+h]]rjS)r}r(hbjhk}r(ho]hp]r(jXjXstd-sigrehn]hm]hq]uhcjh]]rhXKILLrr}r(hbUhcjubahij^ubaubhX signal).rr}r(hbX signal).hcjubeubh)r}r(hbX8If the worker won't shutdown after considerate time, for example because of tasks stuck in an infinite-loop, you can use the :sig:`KILL` signal to force terminate the worker, but be aware that currently executing tasks will be lost (unless the tasks have the :attr:`~celery.task.base.Task.acks_late` option set).hcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsK0hthh]]r(hX}If the worker won't shutdown after considerate time, for example because of tasks stuck in an infinite-loop, you can use the rr}r(hbX}If the worker won't shutdown after considerate time, for example because of tasks stuck in an infinite-loop, you can use the hcjubjI)r}r(hbX :sig:`KILL`rhcjhdhghij_hk}r(UreftypeXsigjVjWXKILLU refdomainXstdrhm]hn]U refexplicitho]hp]hq]jYjQuhsK0h]]rjS)r}r(hbjhk}r(ho]hp]r(jXjXstd-sigrehn]hm]hq]uhcjh]]rhXKILLrr}r (hbUhcjubahij^ubaubhX{ signal to force terminate the worker, but be aware that currently executing tasks will be lost (unless the tasks have the r r }r (hbX{ signal to force terminate the worker, but be aware that currently executing tasks will be lost (unless the tasks have the hcjubjI)r }r(hbX(:attr:`~celery.task.base.Task.acks_late`rhcjhdhghij_hk}r(UreftypeXattrjVjWXcelery.task.base.Task.acks_lateU refdomainXpyrhm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsK0h]]rjS)r}r(hbjhk}r(ho]hp]r(jXjXpy-attrrehn]hm]hq]uhcj h]]rhX acks_laterr}r(hbUhcjubahij^ubaubhX option set).rr}r(hbX option set).hcjubeubh)r}r (hbXAlso as processes can't override the :sig:`KILL` signal, the worker will not be able to reap its children, so make sure to do so manually. This command usually does the trick::hcjhdhghihhk}r!(ho]hp]hn]hm]hq]uhsK6hthh]]r"(hX%Also as processes can't override the r#r$}r%(hbX%Also as processes can't override the hcjubjI)r&}r'(hbX :sig:`KILL`r(hcjhdhghij_hk}r)(UreftypeXsigjVjWXKILLU refdomainXstdr*hm]hn]U refexplicitho]hp]hq]jYjQuhsK6h]]r+jS)r,}r-(hbj(hk}r.(ho]hp]r/(jXj*Xstd-sigr0ehn]hm]hq]uhcj&h]]r1hXKILLr2r3}r4(hbUhcj,ubahij^ubaubhX signal, the worker will not be able to reap its children, so make sure to do so manually. This command usually does the trick:r5r6}r7(hbX signal, the worker will not be able to reap its children, so make sure to do so manually. This command usually does the trick:hcjubeubj6)r8}r9(hbX<$ ps auxww | grep celeryd | awk '{print $2}' | xargs kill -9hcjhdhghij9hk}r:(j;j<hm]hn]ho]hp]hq]uhsK:hthh]]r;hX<$ ps auxww | grep celeryd | awk '{print $2}' | xargs kill -9r<r=}r>(hbUhcj8ubaubh_)r?}r@(hbX.. _worker-restarting:hcjhdhghihjhk}rA(hm]hn]ho]hp]hq]hrh8uhsKhNehq]r(hheuhsKLhthh~}rhNjysh]]r(h)r}r(hbhhcj|hdhghihhk}r(hm]hn]ho]hp]hq]hrhuhsKLhthh]]rhX Concurrencyrr}r(hbhhcjubaubh)r}r(hbXMultiprocessing is used to perform concurrent execution of tasks. The number of worker processes can be changed using the ``--concurrency`` argument and defaults to the number of CPUs available on the machine.hcj|hdhghihhk}r(ho]hp]hn]hm]hq]uhsKNhthh]]r(hX{Multiprocessing is used to perform concurrent execution of tasks. The number of worker processes can be changed using the rr}r(hbX{Multiprocessing is used to perform concurrent execution of tasks. The number of worker processes can be changed using the hcjubjS)r}r(hbX``--concurrency``hk}r(ho]hp]hn]hm]hq]uhcjh]]rhX --concurrencyrr}r(hbUhcjubahij^ubhXF argument and defaults to the number of CPUs available on the machine.rr}r(hbXF argument and defaults to the number of CPUs available on the machine.hcjubeubh)r}r(hbXMore worker processes are usually better, but there's a cut-off point where adding more processes affects performance in negative ways. There is even some evidence to support that having multiple celeryd's running, may perform better than having a single worker. For example 3 celeryd's with 10 worker processes each. You need to experiment to find the numbers that works best for you, as this varies based on application, work load, task run times and other factors.rhcj|hdhghihhk}r(ho]hp]hn]hm]hq]uhsKRhthh]]rhXMore worker processes are usually better, but there's a cut-off point where adding more processes affects performance in negative ways. There is even some evidence to support that having multiple celeryd's running, may perform better than having a single worker. For example 3 celeryd's with 10 worker processes each. You need to experiment to find the numbers that works best for you, as this varies based on application, work load, task run times and other factors.rr}r(hbjhcjubaubh_)r}r(hbX.. _worker-persistent-revokes:hcj|hdhghihjhk}r(hm]hn]ho]hp]hq]hrhXuhsKZhthh]]ubeubhu)r}r(hbUhchvhdhghx}rh(jshihzhk}r(ho]hp]hn]hm]r(h=hXehq]r(h h(euhsK]hthh~}rhXjsh]]r(h)r}r(hbhhcjhdhghihhk}r(hm]hn]ho]hp]hq]hrhuhsK]hthh]]rhXPersistent revokesrr}r(hbhhcjubaubh)r}r(hbXRevoking tasks works by sending a broadcast message to all the workers, the workers then keep a list of revoked tasks in memory.rhcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsK_hthh]]rhXRevoking tasks works by sending a broadcast message to all the workers, the workers then keep a list of revoked tasks in memory.rr}r(hbjhcjubaubh)r}r(hbXIf you want tasks to remain revoked after worker restart you need to specify a file for these to be stored in, either by using the ``--statedb`` argument to :mod:`~celery.bin.celeryd` or the :setting:`CELERYD_STATE_DB` setting. See :setting:`CELERYD_STATE_DB` for more information.hcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsKbhthh]]r(hXIf you want tasks to remain revoked after worker restart you need to specify a file for these to be stored in, either by using the rr}r(hbXIf you want tasks to remain revoked after worker restart you need to specify a file for these to be stored in, either by using the hcjubjS)r}r(hbX ``--statedb``hk}r(ho]hp]hn]hm]hq]uhcjh]]rhX --statedbrr}r(hbUhcjubahij^ubhX argument to rr}r(hbX argument to hcjubjI)r}r(hbX:mod:`~celery.bin.celeryd`rhcjhdhghij_hk}r(UreftypeXmodjVjWXcelery.bin.celerydU refdomainXpyrhm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsKbh]]rjS)r}r(hbjhk}r(ho]hp]r(jXjXpy-modrehn]hm]hq]uhcjh]]rhXcelerydrr}r(hbUhcjubahij^ubaubhX or the rr}r(hbX or the hcjubjI)r}r(hbX:setting:`CELERYD_STATE_DB`rhcjhdhghij_hk}r(UreftypeXsettingjVjWXCELERYD_STATE_DBU refdomainXstdrhm]hn]U refexplicitho]hp]hq]jYjQuhsKbh]]rjS)r}r(hbjhk}r(ho]hp]r(jXjX std-settingrehn]hm]hq]uhcjh]]rhXCELERYD_STATE_DBrr}r(hbUhcjubahij^ubaubhX setting. See rr}r(hbX setting. See hcjubjI)r}r(hbX:setting:`CELERYD_STATE_DB`rhcjhdhghij_hk}r(UreftypeXsettingjVjWXCELERYD_STATE_DBU refdomainXstdrhm]hn]U refexplicitho]hp]hq]jYjQuhsKbh]]rjS)r}r(hbjhk}r(ho]hp]r(jXjX std-settingrehn]hm]hq]uhcjh]]rhXCELERYD_STATE_DBrr}r(hbUhcjubahij^ubaubhX for more information.rr}r(hbX for more information.hcjubeubh_)r}r(hbX.. _worker-time-limits:hcjhdhghihjhk}r(hm]hn]ho]hp]hq]hrh(hbX``--time-limit``hk}r?(ho]hp]hn]hm]hq]uhcj6h]]r@hX --time-limitrArB}rC(hbUhcj=ubahij^ubhX) is the maximum number of seconds a task may run before the process executing it is terminated and replaced by a new process. You can also enable a soft time limit (rDrE}rF(hbX) is the maximum number of seconds a task may run before the process executing it is terminated and replaced by a new process. You can also enable a soft time limit (hcj6ubjS)rG}rH(hbX``--soft-time-limit``hk}rI(ho]hp]hn]hm]hq]uhcj6h]]rJhX--soft-time-limitrKrL}rM(hbUhcjGubahij^ubhX_), this raises an exception the task can catch to clean up before the hard time limit kills it:rNrO}rP(hbX_), this raises an exception the task can catch to clean up before the hard time limit kills it:hcj6ubeubj6)rQ}rR(hbXfrom celery.decorators import task from celery.exceptions import SoftTimeLimitExceeded @task() def mytask(): try: do_work() except SoftTimeLimitExceeded: clean_up_in_a_hurry()hcjhdhghij9hk}rS(UlinenosrTUlanguagerUXpythonj;j<hm]hn]ho]hp]hq]uhsKyhthh]]rVhXfrom celery.decorators import task from celery.exceptions import SoftTimeLimitExceeded @task() def mytask(): try: do_work() except SoftTimeLimitExceeded: clean_up_in_a_hurry()rWrX}rY(hbUhcjQubaubh)rZ}r[(hbX|Time limits can also be set using the :setting:`CELERYD_TASK_TIME_LIMIT` / :setting:`CELERYD_SOFT_TASK_TIME_LIMIT` settings.hcjhdhghihhk}r\(ho]hp]hn]hm]hq]uhsKhthh]]r](hX&Time limits can also be set using the r^r_}r`(hbX&Time limits can also be set using the hcjZubjI)ra}rb(hbX":setting:`CELERYD_TASK_TIME_LIMIT`rchcjZhdhghij_hk}rd(UreftypeXsettingjVjWXCELERYD_TASK_TIME_LIMITU refdomainXstdrehm]hn]U refexplicitho]hp]hq]jYjQuhsKh]]rfjS)rg}rh(hbjchk}ri(ho]hp]rj(jXjeX std-settingrkehn]hm]hq]uhcjah]]rlhXCELERYD_TASK_TIME_LIMITrmrn}ro(hbUhcjgubahij^ubaubhX / rprq}rr(hbX / hcjZubjI)rs}rt(hbX':setting:`CELERYD_SOFT_TASK_TIME_LIMIT`ruhcjZhdhghij_hk}rv(UreftypeXsettingjVjWXCELERYD_SOFT_TASK_TIME_LIMITU refdomainXstdrwhm]hn]U refexplicitho]hp]hq]jYjQuhsKh]]rxjS)ry}rz(hbjuhk}r{(ho]hp]r|(jXjwX std-settingr}ehn]hm]hq]uhcjsh]]r~hXCELERYD_SOFT_TASK_TIME_LIMITrr}r(hbUhcjyubahij^ubaubhX settings.rr}r(hbX settings.hcjZubeubcdocutils.nodes note r)r}r(hbX/Time limits does not currently work on Windows.rhcjhdhghiUnoterhk}r(ho]hp]hn]hm]hq]uhsNhthh]]rh)r}r(hbjhcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsKh]]rhX/Time limits does not currently work on Windows.rr}r(hbjhcjubaubaubh_)r}r(hbX.. _worker-maxtasksperchild:hcjhdhghihjhk}r(hm]hn]ho]hp]hq]hrhAuhsKhthh]]ubeubhu)r}r(hbUhchvhdhghx}rhjshihzhk}r(ho]hp]hn]hm]r(h\hAehq]r(h,heuhsKhthh~}rhAjsh]]r(h)r}r(hbj hcjhdhghihhk}r(hm]hn]ho]hp]hq]hrjuhsKhthh]]rhXMax tasks per child settingrr}r(hbj hcjubaubcdocutils.nodes comment r)r}r(hbXversionadded: 2.0hcjhdhghiUcommentrhk}r(j;j<hm]hn]ho]hp]hq]uhsKhthh]]rhXversionadded: 2.0rr}r(hbUhcjubaubh)r}r(hbXzWith this option you can configure the maximum number of tasks a worker can execute before it's replaced by a new process.rhcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsKhthh]]rhXzWith this option you can configure the maximum number of tasks a worker can execute before it's replaced by a new process.rr}r(hbjhcjubaubh)r}r(hbXmThis is useful if you have memory leaks you have no control over for example from closed source C extensions.rhcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsKhthh]]rhXmThis is useful if you have memory leaks you have no control over for example from closed source C extensions.rr}r(hbjhcjubaubh)r}r(hbXThe option can be set using the ``--maxtasksperchild`` argument to ``celeryd`` or using the :setting:`CELERYD_MAX_TASKS_PER_CHILD` setting.hcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsKhthh]]r(hX The option can be set using the rr}r(hbX The option can be set using the hcjubjS)r}r(hbX``--maxtasksperchild``hk}r(ho]hp]hn]hm]hq]uhcjh]]rhX--maxtasksperchildrr}r(hbUhcjubahij^ubhX argument to rr}r(hbX argument to hcjubjS)r}r(hbX ``celeryd``hk}r(ho]hp]hn]hm]hq]uhcjh]]rhXcelerydrr}r(hbUhcjubahij^ubhX or using the rr}r(hbX or using the hcjubjI)r}r(hbX&:setting:`CELERYD_MAX_TASKS_PER_CHILD`rhcjhdhghij_hk}r(UreftypeXsettingjVjWXCELERYD_MAX_TASKS_PER_CHILDU refdomainXstdrhm]hn]U refexplicitho]hp]hq]jYjQuhsKh]]rjS)r}r(hbjhk}r(ho]hp]r(jXjX std-settingrehn]hm]hq]uhcjh]]rhXCELERYD_MAX_TASKS_PER_CHILDrr}r(hbUhcjubahij^ubaubhX setting.rr}r(hbX setting.hcjubeubh_)r}r(hbX.. _worker-remote-control:hcjhdhghihjhk}r(hm]hn]ho]hp]hq]hrhOuhsKhthh]]ubeubhu)r}r(hbUhchvhdhghx}rhjshihzhk}r(ho]hp]hn]hm]r(hShOehq]r(h#heuhsKhthh~}rhOjsh]]r(h)r}r(hbj2hcjhdhghihhk}r(hm]hn]ho]hp]hq]hrj-uhsKhthh]]rhXRemote controlrr}r(hbj2hcjubaubj)r}r(hbUhcjhdhghijhk}r(jX2.0hm]hn]ho]hp]hq]jX versionaddedruhsKhthh]]rh)r}r(hbUhcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsKhthh]]rj$)r}r(hbUhk}r(ho]hp]r jahn]hm]hq]uhcjh]]r hXNew in version 2.0.r r }r (hbUhcjubahij-ubaubaubh)r}r(hbXWorkers have the ability to be remote controlled using a high-priority broadcast message queue. The commands can be directed to all, or a specific list of workers.rhcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsKhthh]]rhXWorkers have the ability to be remote controlled using a high-priority broadcast message queue. The commands can be directed to all, or a specific list of workers.rr}r(hbjhcjubaubh)r}r(hbXtCommands can also have replies. The client can then wait for and collect those replies. Since there's no central authority to know how many workers are available in the cluster, there is also no way to estimate how many workers may send a reply, so the client has a configurable timeout — the deadline in seconds for replies to arrive in. This timeout defaults to one second. If the worker doesn't reply within the deadline it doesn't necessarily mean the worker didn't reply, or worse is dead, but may simply be caused by network latency or the worker being slow at processing commands, so adjust the timeout accordingly.rhcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsKhthh]]rhXtCommands can also have replies. The client can then wait for and collect those replies. Since there's no central authority to know how many workers are available in the cluster, there is also no way to estimate how many workers may send a reply, so the client has a configurable timeout — the deadline in seconds for replies to arrive in. This timeout defaults to one second. If the worker doesn't reply within the deadline it doesn't necessarily mean the worker didn't reply, or worse is dead, but may simply be caused by network latency or the worker being slow at processing commands, so adjust the timeout accordingly.rr}r(hbjhcjubaubh)r}r(hbXIn addition to timeouts, the client can specify the maximum number of replies to wait for. If a destination is specified, this limit is set to the number of destination hosts.r hcjhdhghihhk}r!(ho]hp]hn]hm]hq]uhsKhthh]]r"hXIn addition to timeouts, the client can specify the maximum number of replies to wait for. If a destination is specified, this limit is set to the number of destination hosts.r#r$}r%(hbj hcjubaubcsphinx.addnodes seealso r&)r'}r((hbXThe :program:`celeryctl` program is used to execute remote control commands from the command line. It supports all of the commands listed below. See :ref:`monitoring-celeryctl` for more information.hcjhdhghiUseealsor)hk}r*(ho]hp]hn]hm]hq]uhsNhthh]]r+h)r,}r-(hbXThe :program:`celeryctl` program is used to execute remote control commands from the command line. It supports all of the commands listed below. See :ref:`monitoring-celeryctl` for more information.hcj'hdhghihhk}r.(ho]hp]hn]hm]hq]uhsKh]]r/(hXThe r0r1}r2(hbXThe hcj,ubcdocutils.nodes strong r3)r4}r5(hbX:program:`celeryctl`hk}r6(ho]hp]r7Uprogramr8ahn]hm]hq]uhcj,h]]r9hX celeryctlr:r;}r<(hbUhcj4ubahiUstrongr=ubhX program is used to execute remote control commands from the command line. It supports all of the commands listed below. See r>r?}r@(hbX program is used to execute remote control commands from the command line. It supports all of the commands listed below. See hcj,ubjI)rA}rB(hbX:ref:`monitoring-celeryctl`rChcj,hdhghij_hk}rD(UreftypeXrefjVjWXmonitoring-celeryctlU refdomainXstdrEhm]hn]U refexplicitho]hp]hq]jYjQuhsKh]]rFj[)rG}rH(hbjChk}rI(ho]hp]rJ(jXjEXstd-refrKehn]hm]hq]uhcjAh]]rLhXmonitoring-celeryctlrMrN}rO(hbUhcjGubahijeubaubhX for more information.rPrQ}rR(hbX for more information.hcj,ubeubaubh_)rS}rT(hbX.. _worker-broadcast-fun:hcjhdhghihjhk}rU(hm]hn]ho]hp]hq]hrh;uhsKhthh]]ubhu)rV}rW(hbUhcjhdhghx}rXh jSshihzhk}rY(ho]hp]hn]hm]rZ(h9h;ehq]r[(h h euhsKhthh~}r\h;jSsh]]r](h)r^}r_(hbX4The :func:`~celery.task.control.broadcast` function.r`hcjVhdhghihhk}ra(hm]hn]ho]hp]hq]hrjCuhsKhthh]]rb(hXThe rcrd}re(hbjHhcj^ubjI)rf}rg(hbjLhcj^hdhghij_hk}rh(UreftypejNjVjWjOU refdomainjPhm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsKh]]rijS)rj}rk(hbjLhk}rl(ho]hp]rm(jXjPjYehn]hm]hq]uhcjfh]]rnhX broadcast()rorp}rq(hbUhcjjubahij^ubaubhX function.rrrs}rt(hbjchcj^ubeubh)ru}rv(hbXThis is the client function used to send commands to the workers. Some remote control commands also have higher-level interfaces using :func:`~celery.task.control.broadcast` in the background, like :func:`~celery.task.control.rate_limit` and :func:`~celery.task.control.ping`.hcjVhdhghihhk}rw(ho]hp]hn]hm]hq]uhsKhthh]]rx(hXThis is the client function used to send commands to the workers. Some remote control commands also have higher-level interfaces using ryrz}r{(hbXThis is the client function used to send commands to the workers. Some remote control commands also have higher-level interfaces using hcjuubjI)r|}r}(hbX&:func:`~celery.task.control.broadcast`r~hcjuhdhghij_hk}r(UreftypeXfuncjVjWXcelery.task.control.broadcastU refdomainXpyrhm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsKh]]rjS)r}r(hbj~hk}r(ho]hp]r(jXjXpy-funcrehn]hm]hq]uhcj|h]]rhX broadcast()rr}r(hbUhcjubahij^ubaubhX in the background, like rr}r(hbX in the background, like hcjuubjI)r}r(hbX':func:`~celery.task.control.rate_limit`rhcjuhdhghij_hk}r(UreftypeXfuncjVjWXcelery.task.control.rate_limitU refdomainXpyrhm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsKh]]rjS)r}r(hbjhk}r(ho]hp]r(jXjXpy-funcrehn]hm]hq]uhcjh]]rhX rate_limit()rr}r(hbUhcjubahij^ubaubhX and rr}r(hbX and hcjuubjI)r}r(hbX!:func:`~celery.task.control.ping`rhcjuhdhghij_hk}r(UreftypeXfuncjVjWXcelery.task.control.pingU refdomainXpyrhm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsKh]]rjS)r}r(hbjhk}r(ho]hp]r(jXjXpy-funcrehn]hm]hq]uhcjh]]rhXping()rr}r(hbUhcjubahij^ubaubhX.r}r(hbX.hcjuubeubh)r}r(hbXASending the :control:`rate_limit` command and keyword arguments::rhcjVhdhghihhk}r(ho]hp]hn]hm]hq]uhsKhthh]]r(hX Sending the rr}r(hbX Sending the hcjubjI)r}r(hbX:control:`rate_limit`rhcjhdhghij_hk}r(UreftypeXcontroljVjWX rate_limitU refdomainXstdrhm]hn]U refexplicitho]hp]hq]jYjQuhsKh]]rjS)r}r(hbjhk}r(ho]hp]r(jXjX std-controlrehn]hm]hq]uhcjh]]rhX rate_limitrr}r(hbUhcjubahij^ubaubhX command and keyword arguments:rr}r(hbX command and keyword arguments:hcjubeubj6)r}r(hbX>>> from celery.task.control import broadcast >>> broadcast("rate_limit", arguments={"task_name": "myapp.mytask", ... "rate_limit": "200/m"})hcjVhdhghij9hk}r(j;j<hm]hn]ho]hp]hq]uhsKhthh]]rhX>>> from celery.task.control import broadcast >>> broadcast("rate_limit", arguments={"task_name": "myapp.mytask", ... "rate_limit": "200/m"})rr}r(hbUhcjubaubh)r}r(hbXThis will send the command asynchronously, without waiting for a reply. To request a reply you have to use the ``reply`` argument::hcjVhdhghihhk}r(ho]hp]hn]hm]hq]uhsKhthh]]r(hXoThis will send the command asynchronously, without waiting for a reply. To request a reply you have to use the rr}r(hbXoThis will send the command asynchronously, without waiting for a reply. To request a reply you have to use the hcjubjS)r}r(hbX ``reply``hk}r(ho]hp]hn]hm]hq]uhcjh]]rhXreplyrr}r(hbUhcjubahij^ubhX argument:rr}r(hbX argument:hcjubeubj6)r}r(hbX1>>> broadcast("rate_limit", {"task_name": "myapp.mytask", ... "rate_limit": "200/m"}, reply=True) [{'worker1.example.com': 'New rate limit set successfully'}, {'worker2.example.com': 'New rate limit set successfully'}, {'worker3.example.com': 'New rate limit set successfully'}]hcjVhdhghij9hk}r(j;j<hm]hn]ho]hp]hq]uhsKhthh]]rhX1>>> broadcast("rate_limit", {"task_name": "myapp.mytask", ... "rate_limit": "200/m"}, reply=True) [{'worker1.example.com': 'New rate limit set successfully'}, {'worker2.example.com': 'New rate limit set successfully'}, {'worker3.example.com': 'New rate limit set successfully'}]rr}r(hbUhcjubaubh)r}r(hbX]Using the ``destination`` argument you can specify a list of workers to receive the command::hcjVhdhghihhk}r(ho]hp]hn]hm]hq]uhsKhthh]]r(hX Using the rr}r(hbX Using the hcjubjS)r}r(hbX``destination``hk}r(ho]hp]hn]hm]hq]uhcjh]]rhX destinationrr}r(hbUhcjubahij^ubhXC argument you can specify a list of workers to receive the command:rr}r(hbXC argument you can specify a list of workers to receive the command:hcjubeubj6)r}r(hbX>>> broadcast >>> broadcast("rate_limit", {"task_name": "myapp.mytask", ... "rate_limit": "200/m"}, reply=True, ... destination=["worker1.example.com"]) [{'worker1.example.com': 'New rate limit set successfully'}]hcjVhdhghij9hk}r(j;j<hm]hn]ho]hp]hq]uhsKhthh]]rhX>>> broadcast >>> broadcast("rate_limit", {"task_name": "myapp.mytask", ... "rate_limit": "200/m"}, reply=True, ... destination=["worker1.example.com"]) [{'worker1.example.com': 'New rate limit set successfully'}]rr}r(hbUhcjubaubh)r}r(hbXOf course, using the higher-level interface to set rate limits is much more convenient, but there are commands that can only be requested using :func:`~celery.task.control.broadcast`.hcjVhdhghihhk}r(ho]hp]hn]hm]hq]uhsKhthh]]r(hXOf course, using the higher-level interface to set rate limits is much more convenient, but there are commands that can only be requested using rr}r(hbXOf course, using the higher-level interface to set rate limits is much more convenient, but there are commands that can only be requested using hcjubjI)r }r (hbX&:func:`~celery.task.control.broadcast`r hcjhdhghij_hk}r (UreftypeXfuncjVjWXcelery.task.control.broadcastU refdomainXpyr hm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsKh]]rjS)r}r(hbj hk}r(ho]hp]r(jXj Xpy-funcrehn]hm]hq]uhcj h]]rhX broadcast()rr}r(hbUhcjubahij^ubaubhX.r}r(hbX.hcjubeubh_)r}r(hbX.. _worker-rate-limits:hcjVhdhghihjhk}r(ho]hp]hn]hm]rhWahq]rh'auhsKhthh]]ubcsphinx.addnodes index r)r }r!(hbUhcjVhdhghiUindexr"hk}r#(hm]hn]ho]hp]hq]Uentries]r$(XpairXrate_limit; controlXstd:control-rate_limitr%Utr&auhsKhthh]]ubh_)r'}r((hbUhcjVhdhghihjhk}r)(hm]hn]ho]hp]hq]hrj%uhsKhthh]]ubeubhu)r*}r+(hbUhcjhdhghx}hihzhk}r,(ho]hp]hn]hm]r-(h:j%ehq]r.h auhsKhthh~}r/j%j'sh]]r0(h)r1}r2(hbjuhcj*hdhghihhk}r3(hm]hn]ho]hp]hq]hrjpuhsKhthh]]r4hX Rate limitsr5r6}r7(hbjuhcj1ubaubh)r8}r9(hbXjExample changing the rate limit for the ``myapp.mytask`` task to accept 200 tasks a minute on all servers:hcj*hdhghihhk}r:(ho]hp]hn]hm]hq]uhsKhthh]]r;(hX(Example changing the rate limit for the r<r=}r>(hbX(Example changing the rate limit for the hcj8ubjS)r?}r@(hbX``myapp.mytask``hk}rA(ho]hp]hn]hm]hq]uhcj8h]]rBhX myapp.mytaskrCrD}rE(hbUhcj?ubahij^ubhX2 task to accept 200 tasks a minute on all servers:rFrG}rH(hbX2 task to accept 200 tasks a minute on all servers:hcj8ubeubcdocutils.nodes doctest_block rI)rJ}rK(hbXV>>> from celery.task.control import rate_limit >>> rate_limit("myapp.mytask", "200/m")hcj*hdNhiU doctest_blockrLhk}rM(j;j<hm]hn]ho]hp]hq]uhsNhthh]]rNhXV>>> from celery.task.control import rate_limit >>> rate_limit("myapp.mytask", "200/m")rOrP}rQ(hbUhcjJubaubh)rR}rS(hbXYExample changing the rate limit on a single host by specifying the destination hostname::hcj*hdhghihhk}rT(ho]hp]hn]hm]hq]uhsKhthh]]rUhXXExample changing the rate limit on a single host by specifying the destination hostname:rVrW}rX(hbXXExample changing the rate limit on a single host by specifying the destination hostname:hcjRubaubj6)rY}rZ(hbX[>>> rate_limit("myapp.mytask", "200/m", ... destination=["worker1.example.com"])hcj*hdhghij9hk}r[(j;j<hm]hn]ho]hp]hq]uhsKhthh]]r\hX[>>> rate_limit("myapp.mytask", "200/m", ... destination=["worker1.example.com"])r]r^}r_(hbUhcjYubaubcdocutils.nodes warning r`)ra}rb(hbXThis won't affect workers with the :setting:`CELERY_DISABLE_RATE_LIMITS` setting on. To re-enable rate limits then you have to restart the worker.hcj*hdhghiUwarningrchk}rd(ho]hp]hn]hm]hq]uhsNhthh]]reh)rf}rg(hbXThis won't affect workers with the :setting:`CELERY_DISABLE_RATE_LIMITS` setting on. To re-enable rate limits then you have to restart the worker.hcjahdhghihhk}rh(ho]hp]hn]hm]hq]uhsKh]]ri(hX#This won't affect workers with the rjrk}rl(hbX#This won't affect workers with the hcjfubjI)rm}rn(hbX%:setting:`CELERY_DISABLE_RATE_LIMITS`rohcjfhdhghij_hk}rp(UreftypeXsettingjVjWXCELERY_DISABLE_RATE_LIMITSU refdomainXstdrqhm]hn]U refexplicitho]hp]hq]jYjQuhsKh]]rrjS)rs}rt(hbjohk}ru(ho]hp]rv(jXjqX std-settingrwehn]hm]hq]uhcjmh]]rxhXCELERY_DISABLE_RATE_LIMITSryrz}r{(hbUhcjsubahij^ubaubhXJ setting on. To re-enable rate limits then you have to restart the worker.r|r}}r~(hbXJ setting on. To re-enable rate limits then you have to restart the worker.hcjfubeubaubj)r}r(hbUhcj*hdhghij"hk}r(hm]hn]ho]hp]hq]Uentries]r(XpairXshutdown; controlXstd:control-shutdownrUtrauhsKhthh]]ubh_)r}r(hbUhcj*hdhghihjhk}r(hm]hn]ho]hp]hq]hrjuhsKhthh]]ubeubhu)r}r(hbUhcjhdhghx}hihzhk}r(ho]hp]hn]hm]r(h[jehq]rh+auhsKhthh~}rjjsh]]r(h)r}r(hbjhcjhdhghihhk}r(hm]hn]ho]hp]hq]hrjuhsKhthh]]rhXRemote shutdownrr}r(hbjhcjubaubh)r}r(hbX<This command will gracefully shut down the worker remotely::rhcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsMhthh]]rhX;This command will gracefully shut down the worker remotely:rr}r(hbX;This command will gracefully shut down the worker remotely:hcjubaubj6)r}r(hbXl>>> broadcast("shutdown") # shutdown all workers >>> broadcast("shutdown, destination="worker1.example.com")hcjhdhghij9hk}r(j;j<hm]hn]ho]hp]hq]uhsMhthh]]rhXl>>> broadcast("shutdown") # shutdown all workers >>> broadcast("shutdown, destination="worker1.example.com")rr}r(hbUhcjubaubj)r}r(hbUhcjhdhghij"hk}r(hm]hn]ho]hp]hq]Uentries]r(XpairX ping; controlXstd:control-pingrUtrauhsMhthh]]ubh_)r}r(hbUhcjhdhghihjhk}r(hm]hn]ho]hp]hq]hrjuhsMhthh]]ubeubhu)r}r(hbUhcjhdhghx}hihzhk}r(ho]hp]hn]hm]r(hFjehq]rhauhsMhthh~}rjjsh]]r(h)r}r(hbjhcjhdhghihhk}r(hm]hn]ho]hp]hq]hrjuhsMhthh]]rhXPingrr}r(hbjhcjubaubh)r}r(hbXThis command requests a ping from alive workers. The workers reply with the string 'pong', and that's just about it. It will use the default one second timeout for replies unless you specify a custom timeout::hcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsM hthh]]rhXThis command requests a ping from alive workers. The workers reply with the string 'pong', and that's just about it. It will use the default one second timeout for replies unless you specify a custom timeout:rr}r(hbXThis command requests a ping from alive workers. The workers reply with the string 'pong', and that's just about it. It will use the default one second timeout for replies unless you specify a custom timeout:hcjubaubj6)r}r(hbX>>> from celery.task.control import ping >>> ping(timeout=0.5) [{'worker1.example.com': 'pong'}, {'worker2.example.com': 'pong'}, {'worker3.example.com': 'pong'}]hcjhdhghij9hk}r(j;j<hm]hn]ho]hp]hq]uhsMhthh]]rhX>>> from celery.task.control import ping >>> ping(timeout=0.5) [{'worker1.example.com': 'pong'}, {'worker2.example.com': 'pong'}, {'worker3.example.com': 'pong'}]rr}r(hbUhcjubaubh)r}r(hbXx:func:`~celery.task.control.ping` also supports the ``destination`` argument, so you can specify which workers to ping::hcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsMhthh]]r(jI)r}r(hbX!:func:`~celery.task.control.ping`rhcjhdhghij_hk}r(UreftypeXfuncjVjWXcelery.task.control.pingU refdomainXpyrhm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsMh]]rjS)r}r(hbjhk}r(ho]hp]r(jXjXpy-funcrehn]hm]hq]uhcjh]]rhXping()rr}r(hbUhcjubahij^ubaubhX also supports the rr}r(hbX also supports the hcjubjS)r}r(hbX``destination``hk}r(ho]hp]hn]hm]hq]uhcjh]]rhX destinationrr}r(hbUhcjubahij^ubhX4 argument, so you can specify which workers to ping:rr}r(hbX4 argument, so you can specify which workers to ping:hcjubeubj6)r}r(hbX|>>> ping(['worker2.example.com', 'worker3.example.com']) [{'worker2.example.com': 'pong'}, {'worker3.example.com': 'pong'}]hcjhdhghij9hk}r(j;j<hm]hn]ho]hp]hq]uhsMhthh]]rhX|>>> ping(['worker2.example.com', 'worker3.example.com']) [{'worker2.example.com': 'pong'}, {'worker3.example.com': 'pong'}]rr}r(hbUhcjubaubh_)r}r(hbX.. _worker-enable-events:hcjhdhghihjhk}r(ho]hp]hn]hm]rhKahq]rhauhsMhthh]]ubj)r}r(hbUhcjhdhghij"hk}r(hm]hn]ho]hp]hq]Uentries]r(XpairXenable_events; controlXstd:control-enable_eventsrUtrauhsMhthh]]ubh_)r}r(hbUhcjhdhghihjhk}r(ho]hp]hn]hm]rjahq]uhsMhthh]]ubj)r}r(hbUhcjhdhghij"hk}r(hm]hn]ho]hp]hq]Uentries]r(XpairXdisable_events; controlXstd:control-disable_eventsrUtrauhsM hthh]]ubh_)r}r(hbUhcjhdhghihjhk}r(hm]hn]ho]hp]hq]hrjuhsM hthh]]ubeubhu)r }r (hbUhcjhdhghx}hihzhk}r (ho]hp]hn]hm]r (hDjehq]r hauhsM"hthh~}rjjsh]]r(h)r}r(hbjhcj hdhghihhk}r(hm]hn]ho]hp]hq]hrjuhsM"hthh]]rhXEnable/disable eventsrr}r(hbjhcjubaubh)r}r(hbXYou can enable/disable events by using the ``enable_events``, ``disable_events`` commands. This is useful to temporarily monitor a worker using :program:`celeryev`/:program:`celerymon`.hcj hdhghihhk}r(ho]hp]hn]hm]hq]uhsM$hthh]]r(hX+You can enable/disable events by using the rr}r(hbX+You can enable/disable events by using the hcjubjS)r}r(hbX``enable_events``hk}r (ho]hp]hn]hm]hq]uhcjh]]r!hX enable_eventsr"r#}r$(hbUhcjubahij^ubhX, r%r&}r'(hbX, hcjubjS)r(}r)(hbX``disable_events``hk}r*(ho]hp]hn]hm]hq]uhcjh]]r+hXdisable_eventsr,r-}r.(hbUhcj(ubahij^ubhXA commands. This is useful to temporarily monitor a worker using r/r0}r1(hbXA commands. This is useful to temporarily monitor a worker using hcjubj3)r2}r3(hbX:program:`celeryev`hk}r4(ho]hp]r5j8ahn]hm]hq]uhcjh]]r6hXceleryevr7r8}r9(hbUhcj2ubahij=ubhX/r:}r;(hbX/hcjubj3)r<}r=(hbX:program:`celerymon`hk}r>(ho]hp]r?j8ahn]hm]hq]uhcjh]]r@hX celerymonrArB}rC(hbUhcj<ubahij=ubhX.rD}rE(hbX.hcjubeubj6)rF}rG(hbX>>>> broadcast("enable_events") >>> broadcast("disable_events")hcj hdhghij9hk}rH(jTjUXpythonj;j<hm]hn]ho]hp]hq]uhsM(hthh]]rIhX>>>> broadcast("enable_events") >>> broadcast("disable_events")rJrK}rL(hbUhcjFubaubh_)rM}rN(hbX#.. _worker-custom-control-commands:hcj hdhghihjhk}rO(hm]hn]ho]hp]hq]hrhEuhsM-hthh]]ubeubhu)rP}rQ(hbUhcjhdhghx}rRhjMshihzhk}rS(ho]hp]hn]hm]rT(hRhEehq]rU(h"heuhsM0hthh~}rVhEjMsh]]rW(h)rX}rY(hbjhcjPhdhghihhk}rZ(hm]hn]ho]hp]hq]hrjuhsM0hthh]]r[hX(Writing your own remote control commandsr\r]}r^(hbjhcjXubaubh)r_}r`(hbXRemote control commands are registered in the control panel and they take a single argument: the current :class:`~celery.worker.control.ControlDispatch` instance. From there you have access to the active :class:`celery.worker.listener.CarrotListener` if needed.hcjPhdhghihhk}ra(ho]hp]hn]hm]hq]uhsM2hthh]]rb(hXiRemote control commands are registered in the control panel and they take a single argument: the current rcrd}re(hbXiRemote control commands are registered in the control panel and they take a single argument: the current hcj_ubjI)rf}rg(hbX/:class:`~celery.worker.control.ControlDispatch`rhhcj_hdhghij_hk}ri(UreftypeXclassjVjWX%celery.worker.control.ControlDispatchU refdomainXpyrjhm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsM2h]]rkjS)rl}rm(hbjhhk}rn(ho]hp]ro(jXjjXpy-classrpehn]hm]hq]uhcjfh]]rqhXControlDispatchrrrs}rt(hbUhcjlubahij^ubaubhX4 instance. From there you have access to the active rurv}rw(hbX4 instance. From there you have access to the active hcj_ubjI)rx}ry(hbX.:class:`celery.worker.listener.CarrotListener`rzhcj_hdhghij_hk}r{(UreftypeXclassjVjWX%celery.worker.listener.CarrotListenerU refdomainXpyr|hm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsM2h]]r}jS)r~}r(hbjzhk}r(ho]hp]r(jXj|Xpy-classrehn]hm]hq]uhcjxh]]rhX%celery.worker.listener.CarrotListenerrr}r(hbUhcj~ubahij^ubaubhX if needed.rr}r(hbX if needed.hcj_ubeubh)r}r(hbXFHere's an example control command that restarts the broker connection:rhcjPhdhghihhk}r(ho]hp]hn]hm]hq]uhsM8hthh]]rhXFHere's an example control command that restarts the broker connection:rr}r(hbjhcjubaubj6)r}r(hbXfrom celery.worker.control import Panel @Panel.register def reset_connection(panel): panel.logger.critical("Connection reset by remote control.") panel.listener.reset_connection() return {"ok": "connection reset"}hcjPhdhghij9hk}r(jTjUXpythonj;j<hm]hn]ho]hp]hq]uhsM:hthh]]rhXfrom celery.worker.control import Panel @Panel.register def reset_connection(panel): panel.logger.critical("Connection reset by remote control.") panel.listener.reset_connection() return {"ok": "connection reset"}rr}r(hbUhcjubaubh)r}r(hbXThese can be added to task modules, or you can keep them in their own module then import them using the :setting:`CELERY_IMPORTS` setting::hcjPhdhghihhk}r(ho]hp]hn]hm]hq]uhsMEhthh]]r(hXhThese can be added to task modules, or you can keep them in their own module then import them using the rr}r(hbXhThese can be added to task modules, or you can keep them in their own module then import them using the hcjubjI)r}r(hbX:setting:`CELERY_IMPORTS`rhcjhdhghij_hk}r(UreftypeXsettingjVjWXCELERY_IMPORTSU refdomainXstdrhm]hn]U refexplicitho]hp]hq]jYjQuhsMEh]]rjS)r}r(hbjhk}r(ho]hp]r(jXjX std-settingrehn]hm]hq]uhcjh]]rhXCELERY_IMPORTSrr}r(hbUhcjubahij^ubaubhX setting:rr}r(hbX setting:hcjubeubj6)r}r(hbX+CELERY_IMPORTS = ("myapp.worker.control", )hcjPhdhghij9hk}r(j;j<hm]hn]ho]hp]hq]uhsMHhthh]]rhX+CELERY_IMPORTS = ("myapp.worker.control", )rr}r(hbUhcjubaubh_)r}r(hbX.. _worker-inspect:hcjPhdhghihjhk}r(hm]hn]ho]hp]hq]hrhUuhsMJhthh]]ubeubeubhu)r}r(hbUhchvhdhghx}rh%jshihzhk}r(ho]hp]hn]hm]r(hBhUehq]r(hh%euhsMMhthh~}rhUjsh]]r(h)r}r(hbjhcjhdhghihhk}r(hm]hn]ho]hp]hq]hrjuhsMMhthh]]rhXInspecting workersrr}r(hbjhcjubaubh)r}r(hbXw:class:`celery.task.control.inspect` lets you inspect running workers. It uses remote control commands under the hood.hcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsMOhthh]]r(jI)r}r(hbX$:class:`celery.task.control.inspect`rhcjhdhghij_hk}r(UreftypeXclassjVjWXcelery.task.control.inspectU refdomainXpyrhm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsMOh]]rjS)r}r(hbjhk}r(ho]hp]r(jXjXpy-classrehn]hm]hq]uhcjh]]rhXcelery.task.control.inspectrr}r(hbUhcjubahij^ubaubhXS lets you inspect running workers. It uses remote control commands under the hood.rr}r(hbXS lets you inspect running workers. It uses remote control commands under the hood.hcjubeubj6)r}r(hbX>>> from celery.task.control import inspect # Inspect all nodes. >>> i = inspect() # Specify multiple nodes to inspect. >>> i = inspect(["worker1.example.com", "worker2.example.com"]) # Specify a single node to inspect. >>> i = inspect("worker1.example.com")hcjhdhghij9hk}r(jTjUXpythonj;j<hm]hn]ho]hp]hq]uhsMRhthh]]rhX>>> from celery.task.control import inspect # Inspect all nodes. >>> i = inspect() # Specify multiple nodes to inspect. >>> i = inspect(["worker1.example.com", "worker2.example.com"]) # Specify a single node to inspect. >>> i = inspect("worker1.example.com")rr}r(hbUhcjubaubh_)r}r(hbX$.. _worker-inspect-registered-tasks:hcjhdhghihjhk}r(hm]hn]ho]hp]hq]hrh6uhsM`hthh]]ubhu)r}r(hbUhcjhdhghx}rhjshihzhk}r(ho]hp]hn]hm]r(hQh6ehq]r(h!heuhsMchthh~}rh6jsh]]r(h)r}r(hbjhcjhdhghihhk}r(hm]hn]ho]hp]hq]hrjuhsMchthh]]rhXDump of registered tasksrr}r(hbjhcjubaubh)r}r(hbXvYou can get a list of tasks registered in the worker using the :meth:`~celery.task.control.inspect.registered_tasks`::hcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsMehthh]]r(hX?You can get a list of tasks registered in the worker using the rr}r(hbX?You can get a list of tasks registered in the worker using the hcjubjI)r}r(hbX5:meth:`~celery.task.control.inspect.registered_tasks`rhcjhdhghij_hk}r(UreftypeXmethjVjWX,celery.task.control.inspect.registered_tasksU refdomainXpyrhm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsMeh]]rjS)r}r(hbjhk}r (ho]hp]r (jXjXpy-methr ehn]hm]hq]uhcjh]]r hXregistered_tasks()r r}r(hbUhcjubahij^ubaubhX:r}r(hbX:hcjubeubj6)r}r(hbXt>>> i.registered_tasks() [{'worker1.example.com': ['celery.delete_expired_task_meta', 'celery.execute_remote', 'celery.map_async', 'celery.ping', 'celery.task.http.HttpDispatchTask', 'tasks.add', 'tasks.sleeptask']}]hcjhdhghij9hk}r(j;j<hm]hn]ho]hp]hq]uhsMhhthh]]rhXt>>> i.registered_tasks() [{'worker1.example.com': ['celery.delete_expired_task_meta', 'celery.execute_remote', 'celery.map_async', 'celery.ping', 'celery.task.http.HttpDispatchTask', 'tasks.add', 'tasks.sleeptask']}]rr}r(hbUhcjubaubh_)r}r(hbX .. _worker-inspect-active-tasks:hcjhdhghihjhk}r(hm]hn]ho]hp]hq]hrhLuhsMqhthh]]ubeubhu)r}r(hbUhcjhdhghx}rhjshihzhk}r(ho]hp]hn]hm]r (h7hLehq]r!(hheuhsMththh~}r"hLjsh]]r#(h)r$}r%(hbjhcjhdhghihhk}r&(hm]hn]ho]hp]hq]hrjuhsMththh]]r'hX!Dump of currently executing tasksr(r)}r*(hbjhcj$ubaubh)r+}r,(hbXVYou can get a list of active tasks using :meth:`~celery.task.control.inspect.active`::hcjhdhghihhk}r-(ho]hp]hn]hm]hq]uhsMvhthh]]r.(hX)You can get a list of active tasks using r/r0}r1(hbX)You can get a list of active tasks using hcj+ubjI)r2}r3(hbX+:meth:`~celery.task.control.inspect.active`r4hcj+hdhghij_hk}r5(UreftypeXmethjVjWX"celery.task.control.inspect.activeU refdomainXpyr6hm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsMvh]]r7jS)r8}r9(hbj4hk}r:(ho]hp]r;(jXj6Xpy-methr<ehn]hm]hq]uhcj2h]]r=hXactive()r>r?}r@(hbUhcj8ubahij^ubaubhX:rA}rB(hbX:hcj+ubeubj6)rC}rD(hbX>>> i.active() [{'worker1.example.com': [{"name": "tasks.sleeptask", "id": "32666e9b-809c-41fa-8e93-5ae0c80afbbf", "args": "(8,)", "kwargs": "{}"}]}]hcjhdhghij9hk}rE(j;j<hm]hn]ho]hp]hq]uhsMyhthh]]rFhX>>> i.active() [{'worker1.example.com': [{"name": "tasks.sleeptask", "id": "32666e9b-809c-41fa-8e93-5ae0c80afbbf", "args": "(8,)", "kwargs": "{}"}]}]rGrH}rI(hbUhcjCubaubh_)rJ}rK(hbX .. _worker-inspect-eta-schedule:hcjhdhghihjhk}rL(hm]hn]ho]hp]hq]hrhIuhsMhthh]]ubeubhu)rM}rN(hbUhcjhdhghx}rOhjJshihzhk}rP(ho]hp]hn]hm]rQ(hZhIehq]rR(h*heuhsMhthh~}rShIjJsh]]rT(h)rU}rV(hbj hcjMhdhghihhk}rW(hm]hn]ho]hp]hq]hrjuhsMhthh]]rXhXDump of scheduled (ETA) tasksrYrZ}r[(hbj hcjUubaubh)r\}r](hbXmYou can get a list of tasks waiting to be scheduled by using :meth:`~celery.task.control.inspect.scheduled`::hcjMhdhghihhk}r^(ho]hp]hn]hm]hq]uhsMhthh]]r_(hX=You can get a list of tasks waiting to be scheduled by using r`ra}rb(hbX=You can get a list of tasks waiting to be scheduled by using hcj\ubjI)rc}rd(hbX.:meth:`~celery.task.control.inspect.scheduled`rehcj\hdhghij_hk}rf(UreftypeXmethjVjWX%celery.task.control.inspect.scheduledU refdomainXpyrghm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsMh]]rhjS)ri}rj(hbjehk}rk(ho]hp]rl(jXjgXpy-methrmehn]hm]hq]uhcjch]]rnhX scheduled()rorp}rq(hbUhcjiubahij^ubaubhX:rr}rs(hbX:hcj\ubeubj6)rt}ru(hbX>>> i.scheduled() [{'worker1.example.com': [{"eta": "2010-06-07 09:07:52", "priority": 0, "request": { "name": "tasks.sleeptask", "id": "1a7980ea-8b19-413e-91d2-0b74f3844c4d", "args": "[1]", "kwargs": "{}"}}, {"eta": "2010-06-07 09:07:53", "priority": 0, "request": { "name": "tasks.sleeptask", "id": "49661b9a-aa22-4120-94b7-9ee8031d219d", "args": "[2]", "kwargs": "{}"}}]}]hcjMhdhghij9hk}rv(j;j<hm]hn]ho]hp]hq]uhsMhthh]]rwhX>>> i.scheduled() [{'worker1.example.com': [{"eta": "2010-06-07 09:07:52", "priority": 0, "request": { "name": "tasks.sleeptask", "id": "1a7980ea-8b19-413e-91d2-0b74f3844c4d", "args": "[1]", "kwargs": "{}"}}, {"eta": "2010-06-07 09:07:53", "priority": 0, "request": { "name": "tasks.sleeptask", "id": "49661b9a-aa22-4120-94b7-9ee8031d219d", "args": "[2]", "kwargs": "{}"}}]}]rxry}rz(hbUhcjtubaubh)r{}r|(hbXMNote that these are tasks with an eta/countdown argument, not periodic tasks.r}hcjMhdhghihhk}r~(ho]hp]hn]hm]hq]uhsMhthh]]rhXMNote that these are tasks with an eta/countdown argument, not periodic tasks.rr}r(hbj}hcj{ubaubh_)r}r(hbX.. _worker-inspect-reserved:hcjMhdhghihjhk}r(hm]hn]ho]hp]hq]hrhJuhsMhthh]]ubeubhu)r}r(hbUhcjhdhghx}rhjshihzhk}r(ho]hp]hn]hm]r(hGhJehq]r(hheuhsMhthh~}rhJjsh]]r(h)r}r(hbjhcjhdhghihhk}r(hm]hn]ho]hp]hq]hrjuhsMhthh]]rhXDump of reserved tasksrr}r(hbjhcjubaubh)r}r(hbXUReserved tasks are tasks that has been received, but is still waiting to be executed.rhcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsMhthh]]rhXUReserved tasks are tasks that has been received, but is still waiting to be executed.rr}r(hbjhcjubaubh)r}r(hbXQYou can get a list of these using :meth:`~celery.task.control.inspect.reserved`::hcjhdhghihhk}r(ho]hp]hn]hm]hq]uhsMhthh]]r(hX"You can get a list of these using rr}r(hbX"You can get a list of these using hcjubjI)r}r(hbX-:meth:`~celery.task.control.inspect.reserved`rhcjhdhghij_hk}r(UreftypeXmethjVjWX$celery.task.control.inspect.reservedU refdomainXpyrhm]hn]U refexplicitho]hp]hq]jYjQjNjNuhsMh]]rjS)r}r(hbjhk}r(ho]hp]r(jXjXpy-methrehn]hm]hq]uhcjh]]rhX reserved()rr}r(hbUhcjubahij^ubaubhX:r}r(hbX:hcjubeubj6)r}r(hbX>>> i.reserved() [{'worker1.example.com': [{"name": "tasks.sleeptask", "id": "32666e9b-809c-41fa-8e93-5ae0c80afbbf", "args": "(8,)", "kwargs": "{}"}]}]hcjhdhghij9hk}r(j;j<hm]hn]ho]hp]hq]uhsMhthh]]rhX>>> i.reserved() [{'worker1.example.com': [{"name": "tasks.sleeptask", "id": "32666e9b-809c-41fa-8e93-5ae0c80afbbf", "args": "(8,)", "kwargs": "{}"}]}]rr}r(hbUhcjubaubeubeubeubehbUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhthU current_linerNUtransform_messagesr]r(cdocutils.nodes system_message r)r}r(hbUhk}r(ho]UlevelKhm]hn]Usourcehghp]hq]UlineKUtypeUINFOruh]]rh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rhX2Hyperlink target "guide-worker" is not referenced.rr}r(hbUhcjubahihubahiUsystem_messagerubj)r}r(hbUhk}r(ho]UlevelKhm]hn]Usourcehghp]hq]UlineK Utypejuh]]rh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rhX5Hyperlink target "worker-starting" is not referenced.rr}r(hbUhcjubahihubahijubj)r}r(hbUhk}r(ho]UlevelKhm]hn]Usourcehghp]hq]UlineK$Utypejuh]]rh)r}r(hbUhk}r(ho]hp]hn]hm]hq]uhcjh]]rhX5Hyperlink target "worker-stopping" is not referenced.rr}r(hbUhcjubahihubahijubj)r}r(hbUhk}r(ho]UlevelKhm]hn]Usourcehghp]hq]UlineK (hbUhk}r? (ho]UlevelKhm]hn]Usourcehghp]hq]UlineKUtypejuh]]r@ h)rA }rB (hbUhk}rC (ho]hp]hn]hm]hq]uhcj= h]]rD hX8Hyperlink target "worker-rate-limits" is not referenced.rE rF }rG (hbUhcjA ubahihubahijubj)rH }rI (hbUhk}rJ (ho]UlevelKhm]hn]Usourcehghp]hq]UlineKUtypejuh]]rK h)rL }rM (hbUhk}rN (ho]hp]hn]hm]hq]uhcjH h]]rO hX<Hyperlink target "std:control-rate_limit" is not referenced.rP rQ }rR (hbUhcjL ubahihubahijubj)rS }rT (hbUhk}rU (ho]UlevelKhm]hn]Usourcehghp]hq]UlineKUtypejuh]]rV h)rW }rX (hbUhk}rY (ho]hp]hn]hm]hq]uhcjS h]]rZ hX:Hyperlink target "std:control-shutdown" is not referenced.r[ r\ }r] (hbUhcjW ubahihubahijubj)r^ }r_ (hbUhk}r` (ho]UlevelKhm]hn]Usourcehghp]hq]UlineMUtypejuh]]ra h)rb }rc (hbUhk}rd (ho]hp]hn]hm]hq]uhcj^ h]]re hX6Hyperlink target "std:control-ping" is not referenced.rf rg }rh (hbUhcjb ubahihubahijubj)ri }rj (hbUhk}rk (ho]UlevelKhm]hn]Usourcehghp]hq]UlineMUtypejuh]]rl h)rm }rn (hbUhk}ro (ho]hp]hn]hm]hq]uhcji h]]rp hX:Hyperlink target "worker-enable-events" is not referenced.rq rr }rs (hbUhcjm ubahihubahijubj)rt }ru (hbUhk}rv (ho]UlevelKhm]hn]Usourcehghp]hq]UlineMUtypejuh]]rw h)rx }ry (hbUhk}rz (ho]hp]hn]hm]hq]uhcjt h]]r{ hX?Hyperlink target "std:control-enable_events" is not referenced.r| r} }r~ (hbUhcjx ubahihubahijubj)r }r (hbUhk}r (ho]UlevelKhm]hn]Usourcehghp]hq]UlineM Utypejuh]]r h)r }r (hbUhk}r (ho]hp]hn]hm]hq]uhcj h]]r hX@Hyperlink target "std:control-disable_events" is not referenced.r r }r (hbUhcj ubahihubahijubj)r }r (hbUhk}r (ho]UlevelKhm]hn]Usourcehghp]hq]UlineM-Utypejuh]]r h)r }r (hbUhk}r (ho]hp]hn]hm]hq]uhcj h]]r hXDHyperlink target "worker-custom-control-commands" is not referenced.r r }r (hbUhcj ubahihubahijubj)r }r (hbUhk}r (ho]UlevelKhm]hn]Usourcehghp]hq]UlineMJUtypejuh]]r h)r }r (hbUhk}r (ho]hp]hn]hm]hq]uhcj h]]r hX4Hyperlink target "worker-inspect" is not referenced.r r }r (hbUhcj ubahihubahijubj)r }r (hbUhk}r (ho]UlevelKhm]hn]Usourcehghp]hq]UlineM`Utypejuh]]r h)r }r (hbUhk}r (ho]hp]hn]hm]hq]uhcj h]]r hXEHyperlink target "worker-inspect-registered-tasks" is not referenced.r r }r (hbUhcj ubahihubahijubj)r }r (hbUhk}r (ho]UlevelKhm]hn]Usourcehghp]hq]UlineMqUtypejuh]]r h)r }r (hbUhk}r (ho]hp]hn]hm]hq]uhcj h]]r hXAHyperlink target "worker-inspect-active-tasks" is not referenced.r r }r (hbUhcj ubahihubahijubj)r }r (hbUhk}r (ho]UlevelKhm]hn]Usourcehghp]hq]UlineMUtypejuh]]r h)r }r (hbUhk}r (ho]hp]hn]hm]hq]uhcj h]]r hXAHyperlink target "worker-inspect-eta-schedule" is not referenced.r r }r (hbUhcj ubahihubahijubj)r }r (hbUhk}r (ho]UlevelKhm]hn]Usourcehghp]hq]UlineMUtypejuh]]r h)r }r (hbUhk}r (ho]hp]hn]hm]hq]uhcj h]]r hX=Hyperlink target "worker-inspect-reserved" is not referenced.r r }r (hbUhcj ubahihubahijubeUreporterr NUid_startr KU autofootnotesr ]r U citation_refsr }r Uindirect_targetsr ]r Usettingsr (cdocutils.frontend Values r or }r (Ufootnote_backlinksr KUrecord_dependenciesr NU rfc_base_urlr Uhttp://tools.ietf.org/html/r U tracebackr Upep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder Uenr U datestampr NU report_levelr KU _destinationr NU halt_levelr KU strip_classesr NhNUerror_encoding_error_handlerr Ubackslashreplacer Udebugr NUembed_stylesheetr Uoutput_encoding_error_handlerr Ustrictr U sectnum_xformr KUdump_transformsr NU docinfo_xformr KUwarning_streamr NUpep_file_url_templater Upep-%04dr Uexit_status_levelr KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr UUTF-8r U_sourcer UO/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/workers.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr j Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (hVjBh6jh9jVh8jBhBjh;jVhj|jjh@hhSjhAjhZjMj-j)jCj?j jjjhGjhhhFjhhhhhHjjj~h[jjjjjjjjjjjjjjjhPjhIjMh\jhJjhChvhQjhKjhLjhMhvhNj|j%j*hOjhRjPhEjPhDj h?jhUjhhjpjlhWjhXjjj h=jhYjjjhTjjjhhh7juUsubstitution_namesr }r hihthk}r! (ho]hm]hn]Usourcehghp]hq]uU footnotesr" ]r# Urefidsr$ }r% (hE]r& jMahY]r' jahL]r( jahM]r) h`ahN]r* jyahA]r+ jah8]r, j?aj%]r- j'ahO]r. jaj]r/ jahJ]r0 jahH]r1 jahX]r2 jah<]r3 jaj]r4 jahU]r5 jah6]r6 jaj]r7 jahI]r8 jJah;]r9 jSauub.PKYDDJ>>8celery-2.1-archived/.doctrees/userguide/overview.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xoverview-figure-1qXoverview-figure-2qXtasksqNX monitoringq NXoverviewq NXworkersq NXroutingq NXguide-overviewq UcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUoverview-figure-1qhUoverview-figure-2qhUtasksqh U monitoringqh Uoverviewqh Uworkersqh Uroutingqh Uguide-overviewqhUcontentsq uUchildrenq!]q"(cdocutils.nodes target q#)q$}q%(U rawsourceq&X.. _guide-overview:Uparentq'hUsourceq(cdocutils.nodes reprunicode q)XP/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/overview.rstq*q+}q,bUtagnameq-Utargetq.U attributesq/}q0(Uidsq1]Ubackrefsq2]Udupnamesq3]Uclassesq4]Unamesq5]Urefidq6huUlineq7KUdocumentq8hh!]ubcdocutils.nodes section q9)q:}q;(h&Uh'hh(h+Uexpect_referenced_by_nameq<}q=h h$sh-Usectionq>h/}q?(h3]h4]h2]h1]q@(hheh5]qA(h h euh7Kh8hUexpect_referenced_by_idqB}qChh$sh!]qD(cdocutils.nodes title qE)qF}qG(h&XOverviewqHh'h:h(h+h-UtitleqIh/}qJ(h3]h4]h2]h1]h5]uh7Kh8hh!]qKcdocutils.nodes Text qLXOverviewqMqN}qO(h&hHh'hFubaubcdocutils.nodes topic qP)qQ}qR(h&Uh'h:h(h+h-UtopicqSh/}qT(h3]h4]qU(UcontentsqVUlocalqWeh2]h1]qXh ah5]qYhauh7Kh8hh!]qZcdocutils.nodes bullet_list q[)q\}q](h&Uh'hQh(Nh-U bullet_listq^h/}q_(h3]h4]h2]h1]h5]uh7Nh8hh!]q`(cdocutils.nodes list_item qa)qb}qc(h&Uh/}qd(h3]h4]h2]h1]h5]uh'h\h!]qecdocutils.nodes paragraph qf)qg}qh(h&Uh/}qi(h3]h4]h2]h1]h5]uh'hbh!]qjcdocutils.nodes reference qk)ql}qm(h&Uh/}qn(h1]qoUid1qpah2]h3]h4]h5]Urefidhuh'hgh!]qqhLXTasksqrqs}qt(h&XTasksquh'hlubah-U referenceqvubah-U paragraphqwubah-U list_itemqxubha)qy}qz(h&Uh/}q{(h3]h4]h2]h1]h5]uh'h\h!]q|hf)q}}q~(h&Uh/}q(h3]h4]h2]h1]h5]uh'hyh!]qhk)q}q(h&Uh/}q(h1]qUid2qah2]h3]h4]h5]Urefidhuh'h}h!]qhLXWorkersqq}q(h&XWorkersqh'hubah-hvubah-hwubah-hxubha)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'h\h!]qhf)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'hh!]qhk)q}q(h&Uh/}q(h1]qUid3qah2]h3]h4]h5]Urefidhuh'hh!]qhLX Monitoringqq}q(h&X Monitoringqh'hubah-hvubah-hwubah-hxubha)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'h\h!]qhf)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'hh!]qhk)q}q(h&Uh/}q(h1]qUid4qah2]h3]h4]h5]Urefidhuh'hh!]qhLXRoutingqq}q(h&XRoutingqh'hubah-hvubah-hwubah-hxubeubaubh#)q}q(h&X.. _overview-figure-1:h'h:h(h+h-h.h/}q(h1]h2]h3]h4]h5]h6huh7K h8hh!]ubcdocutils.nodes figure q)q}q(h&Uh'h:h(h+h<}qhhsh-Ufigureqh/}q(h3]h4]h2]h1]qhah5]qhauh7Nh8hhB}qhhsh!]q(cdocutils.nodes image q)q}q(h&X_.. figure:: ../images/celery-broker-worker-nodes.jpg *Figure 1:* Worker and broker nodes. h/}q(UuriX2userguide/../images/celery-broker-worker-nodes.jpgqh1]h2]h3]h4]U candidatesq}qU*hsh5]uh'hh!]h-Uimagequbcdocutils.nodes caption q)q}q(h&X$*Figure 1:* Worker and broker nodes.qh'hh(h+h-Ucaptionqh/}q(h3]h4]h2]h1]h5]uh7Kh!]q(cdocutils.nodes emphasis q)q}q(h&X *Figure 1:*qh/}q(h3]h4]h2]h1]h5]uh'hh!]qhLX Figure 1:qхq}q(h&Uh'hubah-UemphasisqubhLX Worker and broker nodes.qՅq}q(h&X Worker and broker nodes.qh'hubeubeubhf)q}q(h&XSTo use Celery you need at least two main components; a message broker and a worker.qh'h:h(h+h-hwh/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]qhLXSTo use Celery you need at least two main components; a message broker and a worker.qޅq}q(h&hh'hubaubhf)q}q(h&XThe message broker enables clients and workers to communicate through messaging. There are several broker implementations available, the most popular being RabbitMQ.qh'h:h(h+h-hwh/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]qhLXThe message broker enables clients and workers to communicate through messaging. There are several broker implementations available, the most popular being RabbitMQ.q慁q}q(h&hh'hubaubhf)q}q(h&XWThe worker processes messages, and consists of one or more physical (or virtual) nodes.qh'h:h(h+h-hwh/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]qhLXWThe worker processes messages, and consists of one or more physical (or virtual) nodes.qq}q(h&hh'hubaubh9)q}q(h&Uh'h:h(h+h-h>h/}q(h3]h4]h2]h1]qhah5]qhauh7Kh8hh!]q(hE)q}q(h&huh'hh(h+h-hIh/}q(h1]h2]h3]h4]h5]h6hpuh7Kh8hh!]qhLXTasksqq}q(h&huh'hubaubhf)q}q(h&XWThe action to take whenever a message of a certain type is received is called a "task".rh'hh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rhLXWThe action to take whenever a message of a certain type is received is called a "task".rr}r(h&jh'hubaubh[)r}r(h&Uh'hh(h+h-h^h/}r(Ubulletr X*h1]h2]h3]h4]h5]uh7K!h8hh!]r (ha)r }r (h&XGo to :ref:`guide-tasks`.r h'jh(h+h-hxh/}r(h3]h4]h2]h1]h5]uh7Nh8hh!]rhf)r}r(h&j h'j h(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7K!h!]r(hLXGo to rr}r(h&XGo to h'jubcsphinx.addnodes pending_xref r)r}r(h&X:ref:`guide-tasks`rh'jh(h+h-U pending_xrefrh/}r(UreftypeXrefUrefwarnrU reftargetrX guide-tasksU refdomainXstdrh1]h2]U refexplicith3]h4]h5]Urefdocr Xuserguide/overviewr!uh7K!h!]r"h)r#}r$(h&jh/}r%(h3]h4]r&(Uxrefr'jXstd-refr(eh2]h1]h5]uh'jh!]r)hLX guide-tasksr*r+}r,(h&Uh'j#ubah-hubaubhLX.r-}r.(h&X.h'jubeubaubha)r/}r0(h&XGo to :ref:`guide-executing`.r1h'jh(h+h-hxh/}r2(h3]h4]h2]h1]h5]uh7Nh8hh!]r3hf)r4}r5(h&j1h'j/h(h+h-hwh/}r6(h3]h4]h2]h1]h5]uh7K"h!]r7(hLXGo to r8r9}r:(h&XGo to h'j4ubj)r;}r<(h&X:ref:`guide-executing`r=h'j4h(h+h-jh/}r>(UreftypeXrefjjXguide-executingU refdomainXstdr?h1]h2]U refexplicith3]h4]h5]j j!uh7K"h!]r@h)rA}rB(h&j=h/}rC(h3]h4]rD(j'j?Xstd-refrEeh2]h1]h5]uh'j;h!]rFhLXguide-executingrGrH}rI(h&Uh'jAubah-hubaubhLX.rJ}rK(h&X.h'j4ubeubaubha)rL}rM(h&XGo to :ref:`guide-sets`rNh'jh(h+h-hxh/}rO(h3]h4]h2]h1]h5]uh7Nh8hh!]rPhf)rQ}rR(h&jNh'jLh(h+h-hwh/}rS(h3]h4]h2]h1]h5]uh7K#h!]rT(hLXGo to rUrV}rW(h&XGo to h'jQubj)rX}rY(h&X:ref:`guide-sets`rZh'jQh(h+h-jh/}r[(UreftypeXrefjjX guide-setsU refdomainXstdr\h1]h2]U refexplicith3]h4]h5]j j!uh7K#h!]r]h)r^}r_(h&jZh/}r`(h3]h4]ra(j'j\Xstd-refrbeh2]h1]h5]uh'jXh!]rchLX guide-setsrdre}rf(h&Uh'j^ubah-hubaubeubaubha)rg}rh(h&XGo to :ref:`guide-beat`.rih'jh(h+h-hxh/}rj(h3]h4]h2]h1]h5]uh7Nh8hh!]rkhf)rl}rm(h&jih'jgh(h+h-hwh/}rn(h3]h4]h2]h1]h5]uh7K$h!]ro(hLXGo to rprq}rr(h&XGo to h'jlubj)rs}rt(h&X:ref:`guide-beat`ruh'jlh(h+h-jh/}rv(UreftypeXrefjjX guide-beatU refdomainXstdrwh1]h2]U refexplicith3]h4]h5]j j!uh7K$h!]rxh)ry}rz(h&juh/}r{(h3]h4]r|(j'jwXstd-refr}eh2]h1]h5]uh'jsh!]r~hLX guide-beatrr}r(h&Uh'jyubah-hubaubhLX.r}r(h&X.h'jlubeubaubha)r}r(h&XGo to :ref:`guide-webhooks`. h'jh(h+h-hxh/}r(h3]h4]h2]h1]h5]uh7Nh8hh!]rhf)r}r(h&XGo to :ref:`guide-webhooks`.h'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7K%h!]r(hLXGo to rr}r(h&XGo to h'jubj)r}r(h&X:ref:`guide-webhooks`rh'jh(h+h-jh/}r(UreftypeXrefjjXguide-webhooksU refdomainXstdrh1]h2]U refexplicith3]h4]h5]j j!uh7K%h!]rh)r}r(h&jh/}r(h3]h4]r(j'jXstd-refreh2]h1]h5]uh'jh!]rhLXguide-webhooksrr}r(h&Uh'jubah-hubaubhLX.r}r(h&X.h'jubeubaubeubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7K)h8hh!]r(hE)r}r(h&hh'jh(h+h-hIh/}r(h1]h2]h3]h4]h5]h6huh7K)h8hh!]rhLXWorkersrr}r(h&hh'jubaubhf)r}r(h&XGo to :ref:`guide-worker`.rh'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7K*h8hh!]r(hLXGo to rr}r(h&XGo to h'jubj)r}r(h&X:ref:`guide-worker`rh'jh(h+h-jh/}r(UreftypeXrefjjX guide-workerU refdomainXstdrh1]h2]U refexplicith3]h4]h5]j j!uh7K*h!]rh)r}r(h&jh/}r(h3]h4]r(j'jXstd-refreh2]h1]h5]uh'jh!]rhLX guide-workerrr}r(h&Uh'jubah-hubaubhLX.r}r(h&X.h'jubeubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7K-h8hh!]r(hE)r}r(h&hh'jh(h+h-hIh/}r(h1]h2]h3]h4]h5]h6huh7K-h8hh!]rhLX Monitoringrr}r(h&hh'jubaubhf)r}r(h&XGo to :ref:`guide-monitoring`.rh'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7K.h8hh!]r(hLXGo to rr}r(h&XGo to h'jubj)r}r(h&X:ref:`guide-monitoring`rh'jh(h+h-jh/}r(UreftypeXrefjjXguide-monitoringU refdomainXstdrh1]h2]U refexplicith3]h4]h5]j j!uh7K.h!]rh)r}r(h&jh/}r(h3]h4]r(j'jXstd-refreh2]h1]h5]uh'jh!]rhLXguide-monitoringrr}r(h&Uh'jubah-hubaubhLX.r}r(h&X.h'jubeubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7K1h8hh!]r(hE)r}r(h&hh'jh(h+h-hIh/}r(h1]h2]h3]h4]h5]h6huh7K1h8hh!]rhLXRoutingrr}r(h&hh'jubaubh#)r}r(h&X.. _overview-figure-2:h'jh(h+h-h.h/}r(h1]h2]h3]h4]h5]h6huh7K3h8hh!]ubh)r}r(h&Uh'jh(h+h<}rhjsh-hh/}r(h3]h4]h2]h1]rhah5]rhauh7Nh8hhB}rhjsh!]r(h)r}r(h&XS.. figure:: ../images/celery-worker-bindings.jpg *Figure 2:* Worker bindings. h/}r(UuriX.userguide/../images/celery-worker-bindings.jpgrh1]h2]h3]h4]h}rU*jsh5]uh'jh!]h-hubh)r }r (h&X*Figure 2:* Worker bindings.r h'jh(h+h-hh/}r (h3]h4]h2]h1]h5]uh7K7h!]r (h)r}r(h&X *Figure 2:*rh/}r(h3]h4]h2]h1]h5]uh'j h!]rhLX Figure 2:rr}r(h&Uh'jubah-hubhLX Worker bindings.rr}r(h&X Worker bindings.rh'j ubeubeubhf)r}r(h&XGo to :ref:`guide-routing`.rh'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7K9h8hh!]r(hLXGo to rr }r!(h&XGo to h'jubj)r"}r#(h&X:ref:`guide-routing`r$h'jh(h+h-jh/}r%(UreftypeXrefjjX guide-routingU refdomainXstdr&h1]h2]U refexplicith3]h4]h5]j j!uh7K9h!]r'h)r(}r)(h&j$h/}r*(h3]h4]r+(j'j&Xstd-refr,eh2]h1]h5]uh'j"h!]r-hLX guide-routingr.r/}r0(h&Uh'j(ubah-hubaubhLX.r1}r2(h&X.h'jubeubhf)r3}r4(h&XFCelery takes advantage of AMQPs flexible routing model. Tasks can be routed to specific servers, or a cluster of servers by binding workers to different queues. A single worker node can be bound to one or more queues. Multiple messaging scenarios are supported: round robin, point-to-point, broadcast (one-to-many), and more.r5h'jh(h+h-hwh/}r6(h3]h4]h2]h1]h5]uh7K;h8hh!]r7hLXFCelery takes advantage of AMQPs flexible routing model. Tasks can be routed to specific servers, or a cluster of servers by binding workers to different queues. A single worker node can be bound to one or more queues. Multiple messaging scenarios are supported: round robin, point-to-point, broadcast (one-to-many), and more.r8r9}r:(h&j5h'j3ubaubhf)r;}r<(h&XCelery aims to hide the complexity of AMQP through features like :ref:`routing-automatic`, while still preserving the ability to go low level if that should be necessary.h'jh(h+h-hwh/}r=(h3]h4]h2]h1]h5]uh7KAh8hh!]r>(hLXACelery aims to hide the complexity of AMQP through features like r?r@}rA(h&XACelery aims to hide the complexity of AMQP through features like h'j;ubj)rB}rC(h&X:ref:`routing-automatic`rDh'j;h(h+h-jh/}rE(UreftypeXrefjjXrouting-automaticU refdomainXstdrFh1]h2]U refexplicith3]h4]h5]j j!uh7KAh!]rGh)rH}rI(h&jDh/}rJ(h3]h4]rK(j'jFXstd-refrLeh2]h1]h5]uh'jBh!]rMhLXrouting-automaticrNrO}rP(h&Uh'jHubah-hubaubhLXQ, while still preserving the ability to go low level if that should be necessary.rQrR}rS(h&XQ, while still preserving the ability to go low level if that should be necessary.h'j;ubeubeubeubeh&UU transformerrTNU footnote_refsrU}rVUrefnamesrW}rXUsymbol_footnotesrY]rZUautofootnote_refsr[]r\Usymbol_footnote_refsr]]r^U citationsr_]r`h8hU current_lineraNUtransform_messagesrb]rc(cdocutils.nodes system_message rd)re}rf(h&Uh/}rg(h3]UlevelKh1]h2]Usourceh+h4]h5]UlineKUtypeUINFOrhuh!]rihf)rj}rk(h&Uh/}rl(h3]h4]h2]h1]h5]uh'jeh!]rmhLX4Hyperlink target "guide-overview" is not referenced.rnro}rp(h&Uh'jjubah-hwubah-Usystem_messagerqubjd)rr}rs(h&Uh/}rt(h3]UlevelKh1]h2]Usourceh+h4]h5]UlineK Utypejhuh!]ruhf)rv}rw(h&Uh/}rx(h3]h4]h2]h1]h5]uh'jrh!]ryhLX7Hyperlink target "overview-figure-1" is not referenced.rzr{}r|(h&Uh'jvubah-hwubah-jqubjd)r}}r~(h&Uh/}r(h3]UlevelKh1]h2]Usourceh+h4]h5]UlineK3Utypejhuh!]rhf)r}r(h&Uh/}r(h3]h4]h2]h1]h5]uh'j}h!]rhLX7Hyperlink target "overview-figure-2" is not referenced.rr}r(h&Uh'jubah-hwubah-jqubeUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhINUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUP/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/overview.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhjhhhjhh:hjhhhhhphlhjhh:hhh hQuUsubstitution_namesr}rh-h8h/}r(h3]h1]h2]Usourceh+h4]h5]uU footnotesr]rUrefidsr}r(h]rhah]rjah]rh$auub.PKYDDN8celery-2.1-archived/.doctrees/userguide/tasksets.doctreecdocutils.nodes document q)q}q(U nametypesq}q(XsubtasksqNX guide-setsqXresultsqNX callbacksq NX%sets of tasks, subtasks and callbacksq NX sets-resultsq X sets-tasksetq Xsets-callbacksq X sets-subtasksqUcontentsqNX task setsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUsubtasksqhU guide-setsqhUresultsqh U callbacksqh U$sets-of-tasks-subtasks-and-callbacksqh U sets-resultsqh U sets-tasksetq h Usets-callbacksq!hU sets-subtasksq"hUcontentsq#hU task-setsq$uUchildrenq%]q&(cdocutils.nodes target q')q(}q)(U rawsourceq*X.. _guide-sets:Uparentq+hUsourceq,cdocutils.nodes reprunicode q-XP/var/build/user_builds/celery/checkouts/2.1-archived/docs/userguide/tasksets.rstq.q/}q0bUtagnameq1Utargetq2U attributesq3}q4(Uidsq5]Ubackrefsq6]Udupnamesq7]Uclassesq8]Unamesq9]Urefidq:huUlineq;KUdocumentq}q?(h*Uh+hh,h/Uexpect_referenced_by_nameq@}qAhh(sh1UsectionqBh3}qC(h7]h8]h6]h5]qD(hheh9]qE(h heuh;Khh,h/h1UtitleqMh3}qN(h7]h8]h6]h5]h9]uh;Khh,h/h1UtopicqWh3}qX(h7]h8]qY(UcontentsqZUlocalq[eh6]h5]q\h#ah9]q]hauh;Khh,h/h1h2h3}q(h5]h6]h7]h8]h9]h:h"uh;K hh,h/h@}qhhsh1hBh3}q(h7]h8]h6]h5]q(hh"eh9]q(hheuh;K h}r?(h*j:h3}r@(h7]h8]rA(hj<Xpy-classrBeh6]h5]h9]uh+j8h%]rChPXdictrDrE}rF(h*Uh+j>ubah1jubaubhPXu subclass, which means it can be serialized with JSON or other encodings that doesn't support complex Python objects.rGrH}rI(h*Xu subclass, which means it can be serialized with JSON or other encodings that doesn't support complex Python objects.h+j"ubeubhj)rJ}rK(h*XAAlso it can be regarded as a type, as the following usage works::rLh+hh,h/h1h{h3}rM(h7]h8]h6]h5]h9]uh;Kh>> s = subtask("tasks.add", args=(2, 2), kwargs={}) >>> subtask(dict(s)) # coerce dict into subtaskh+hh,h/h1j h3}rT(j jh5]h6]h7]h8]h9]uh;K h>> s = subtask("tasks.add", args=(2, 2), kwargs={}) >>> subtask(dict(s)) # coerce dict into subtaskrVrW}rX(h*Uh+jRubaubhj)rY}rZ(h*XEThis makes it excellent as a means to pass callbacks around to tasks.r[h+hh,h/h1h{h3}r\(h7]h8]h6]h5]h9]uh;K$h>> add.subtask(args=(10, ))h+jdh,h/h1j h3}r(j jh5]h6]h7]h8]h9]uh;KAh>> add.subtask(args=(10, ))rr}r(h*Uh+jubaubhj)r}r(h*X#``subtask.delay(result)`` becomes::rh+jdh,h/h1h{h3}r(h7]h8]h6]h5]h9]uh;KCh>> add.apply_async(args=(result, 10))h+jdh,h/h1j h3}r(j jh5]h6]h7]h8]h9]uh;KEh>> add.apply_async(args=(result, 10))rr}r(h*Uh+jubaubhj)r}r(h*X...rh+jdh,h/h1h{h3}r(h7]h8]h6]h5]h9]uh;KGh>> add.delay(2, 2, callback=add.subtask((8, )))h+jdh,h/h1j h3}r(j jh5]h6]h7]h8]h9]uh;KKh>> add.delay(2, 2, callback=add.subtask((8, )))rr}r(h*Uh+jubaubhj)r}r(h*XkAs expected this will first launch one task calculating ``2 + 2``, then another task calculating ``4 + 8``.h+jdh,h/h1h{h3}r(h7]h8]h6]h5]h9]uh;KMhh,h/h@}r:h j5sh1hBh3}r;(h7]h8]h6]h5]r<(h$h eh9]r=(hh euh;KShh j5sh%]r?(hI)r@}rA(h*hh+j8h,h/h1hMh3}rB(h5]h6]h7]h8]h9]h:huh;KSh>> from celery.task.sets import TaskSet >>> from tasks import add >>> job = TaskSet(tasks=[ ... add.subtask((4, 4)), ... add.subtask((8, 8)), ... add.subtask((16, 16)), ... add.subtask((32, 32)), ... ]) >>> result = job.apply_async() >>> result.ready() # has all subtasks completed? True >>> result.successful() # was all subtasks successful? >>> result.join() [4, 8, 16, 32, 64]h+j8h,h/h1j h3}r|(j jh5]h6]h7]h8]h9]uh;K[h>> from celery.task.sets import TaskSet >>> from tasks import add >>> job = TaskSet(tasks=[ ... add.subtask((4, 4)), ... add.subtask((8, 8)), ... add.subtask((16, 16)), ... add.subtask((32, 32)), ... ]) >>> result = job.apply_async() >>> result.ready() # has all subtasks completed? True >>> result.successful() # was all subtasks successful? >>> result.join() [4, 8, 16, 32, 64]r~r}r(h*Uh+jzubaubh')r}r(h*X.. _sets-results:h+j8h,h/h1h2h3}r(h5]h6]h7]h8]h9]h:huh;Knh}r?(h*Uh+j7ubah1jubaubaubj )r@}rA(h*Uh3}rB(h7]h8]h6]h5]h9]uh+j)h%]rChj)rD}rE(h*X4Returns :const:`True` if any of the subtasks failed.h+j@h,h/h1h{h3}rF(h7]h8]h6]h5]h9]uh;Kh%]rG(hPXReturns rHrI}rJ(h*XReturns h+jDubh)rK}rL(h*X :const:`True`rMh+jDh,h/h1hh3}rN(UreftypeXconsthhXTrueU refdomainXpyrOh5]h6]U refexplicith7]h8]h9]hhhNhNuh;Kh%]rPh)rQ}rR(h*jMh3}rS(h7]h8]rT(hjOXpy-constrUeh6]h5]h9]uh+jKh%]rVhPXTruerWrX}rY(h*Uh+jQubah1jubaubhPX if any of the subtasks failed.rZr[}r\(h*X if any of the subtasks failed.h+jDubeubah1j(ubeubhe)r]}r^(h*Xq:meth:`~celery.result.TaskSetResult.waiting` Returns :const:`True` if any of the subtasks is not ready yet. h+jh,h/h1hh3}r_(h7]h8]h6]h5]h9]uh;NhReturns :const:`True` if any of the subtasks is not ready yet.h+jth,h/h1h{h3}rz(h7]h8]h6]h5]h9]uh;Kh%]r{(hPXReturns r|r}}r~(h*XReturns h+jxubh)r}r(h*X :const:`True`rh+jxh,h/h1hh3}r(UreftypeXconsthhXTrueU refdomainXpyrh5]h6]U refexplicith7]h8]h9]hhhNhNuh;Kh%]rh)r}r(h*jh3}r(h7]h8]r(hjXpy-constreh6]h5]h9]uh+jh%]rhPXTruerr}r(h*Uh+jubah1jubaubhPX) if any of the subtasks is not ready yet.rr}r(h*X) if any of the subtasks is not ready yet.h+jxubeubah1j(ubeubhe)r}r(h*Xg:meth:`~celery.result.TaskSetResult.ready` Return :const:`True` if all of the subtasks are ready. h+jh,h/h1hh3}r(h7]h8]h6]h5]h9]uh;Nh(h7]h8]r?(hj:Xpy-methr@eh6]h5]h9]uh+j7h%]rAhPXjoin()rBrC}rD(h*Uh+j<ubah1jubaubaubj )rE}rF(h*Uh3}rG(h7]h8]h6]h5]h9]uh+j.h%]rHhj)rI}rJ(h*XvGather the results for all of the subtasks and return a list with them ordered by the order of which they were called.rKh+jEh,h/h1h{h3}rL(h7]h8]h6]h5]h9]uh;Kh%]rMhPXvGather the results for all of the subtasks and return a list with them ordered by the order of which they were called.rNrO}rP(h*jKh+jIubaubah1j(ubeubeubeubeubeubeh*UU transformerrQNU footnote_refsrR}rSUrefnamesrT}rUUsymbol_footnotesrV]rWUautofootnote_refsrX]rYUsymbol_footnote_refsrZ]r[U citationsr\]r]hhhhhhh>hjhthphjdhjh j8h!jdh"hh#hUuUsubstitution_namesr}rh1h(cdocutils.nodes title q?)q@}qA(h*XCelery 1.0 has been released!qBh+h(h,h/h1UtitleqCh3}qD(h5]h6]h7]h8]h:]uh(h)r?}r@(h*XTask decorators Write tasks as regular functions and decorate them. There are both :func:`task`, and :func:`periodic_task` decorators. h+j;h,h/h1hh3}rA(h5]h6]h7]h8]h:]uhEvents If enabled, the worker will send events, telling you what tasks it executes, their results, and how long it took to execute them. It also sends out heartbeats, so listeners are able to detect nonfunctional workers. This is the basis for the new real-time web monitor we're working on (`celerymon`_). h+j;h,h/h1hh3}r(h5]h6]h7]h8]h:]uh}r?(h*X! If you're only running a single h+j0ubh)r@}rA(h*X ``celeryd``h3}rB(h5]h6]h7]h8]h:]uh+j0h%]rChFXcelerydrDrE}rF(h*Uh+j@ubah1hubhFX server, you can embed rGrH}rI(h*X server, you can embed h+j0ubh)rJ}rK(h*X``celerybeat``h3}rL(h5]h6]h7]h8]h:]uh+j0h%]rMhFX celerybeatrNrO}rP(h*Uh+jJubah1hubhFX inside it. Just add the rQrR}rS(h*X inside it. Just add the h+j0ubh)rT}rU(h*X ``--beat``h3}rV(h5]h6]h7]h8]h:]uh+j0h%]rWhFX--beatrXrY}rZ(h*Uh+jTubah1hubhFX argument.r[r\}r](h*X argument.h+j0ubeubeubh)r^}r_(h*XcBroadcast commands If you change your mind and don't want to run a task after all, you now have the option to revoke it. Also, you can rate limit tasks or even shut down the worker remotely. It doesn't have many commands yet, but we're waiting for broadcast commands to reach its full potential, so please share your ideas if you have any. h+jh,h/h1hh3}r`(h5]h6]h7]h8]h:]uhr?}r@(h*X& listings. Just install it using pip: h+jubh)rA}rB(h*X``pip install setproctitle``h3}rC(h5]h6]h7]h8]h:]uh+jh%]rDhFXpip install setproctitlerErF}rG(h*Uh+jAubah1hubhFX.rH}rI(h*X.h+jubeubeubh')rJ}rK(h*Uh+h(h,h/h1h2h3}rL(h5]h6]h7]h8]rMhah:]rNhauhU_sourcer?UW/var/build/user_builds/celery/checkouts/2.1-archived/docs/releases/1.0/announcement.rstr@Ugettext_compactrAU generatorrBNUdump_internalsrCNU smart_quotesrDU pep_base_urlrEUhttp://www.python.org/dev/peps/rFUsyntax_highlightrGUlongrHUinput_encoding_error_handlerrIj#Uauto_id_prefixrJUidrKUdoctitle_xformrLUstrip_elements_with_classesrMNU _config_filesrN]Ufile_insertion_enabledrOU raw_enabledrPKU dump_settingsrQNubUsymbol_footnote_startrRKUidsrS}rT(h hh"j-hhThjhjh!hhjh$h(h#j(hjJhhuUsubstitution_namesrU}rVh1h=h3}rW(h5]h8]h7]Usourceh/h6]h:]uU footnotesrX]rYUrefidsrZ}r[ub.PKYDD <celery-2.1-archived/.doctrees/tutorials/clickcounter.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xtut-clickcounterqX'using carrot to send clicks as messagesqNX introductionqNX:tutorial: creating a click counter using carrot and celeryq NX view and urlsq NXcreating the periodic taskq NX finishingq NX the modelq NUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUtut-clickcounterqhU'using-carrot-to-send-clicks-as-messagesqhU introductionqh U9tutorial-creating-a-click-counter-using-carrot-and-celeryqh U view-and-urlsqh Ucreating-the-periodic-taskqh U finishingqh U the-modelqhUcontentsq uUchildrenq!]q"(cdocutils.nodes target q#)q$}q%(U rawsourceq&X.. _tut-clickcounter:Uparentq'hUsourceq(cdocutils.nodes reprunicode q)XT/var/build/user_builds/celery/checkouts/2.1-archived/docs/tutorials/clickcounter.rstq*q+}q,bUtagnameq-Utargetq.U attributesq/}q0(Uidsq1]Ubackrefsq2]Udupnamesq3]Uclassesq4]Unamesq5]Urefidq6huUlineq7KUdocumentq8hh!]ubcdocutils.nodes section q9)q:}q;(h&Uh'hh(h+Uexpect_referenced_by_nameq<}q=hh$sh-Usectionq>h/}q?(h3]h4]h2]h1]q@(hheh5]qA(h heuh7Kh8hUexpect_referenced_by_idqB}qChh$sh!]qD(cdocutils.nodes title qE)qF}qG(h&X:Tutorial: Creating a click counter using carrot and celeryqHh'h:h(h+h-UtitleqIh/}qJ(h3]h4]h2]h1]h5]uh7Kh8hh!]qKcdocutils.nodes Text qLX:Tutorial: Creating a click counter using carrot and celeryqMqN}qO(h&hHh'hFubaubcdocutils.nodes topic qP)qQ}qR(h&Uh'h:h(h+h-UtopicqSh/}qT(h3]h4]qU(UcontentsqVUlocalqWeh2]h1]qXh ah5]qYhauh7Kh8hh!]qZcdocutils.nodes bullet_list q[)q\}q](h&Uh'hQh(Nh-U bullet_listq^h/}q_(h3]h4]h2]h1]h5]uh7Nh8hh!]q`(cdocutils.nodes list_item qa)qb}qc(h&Uh/}qd(h3]h4]h2]h1]h5]uh'h\h!]qecdocutils.nodes paragraph qf)qg}qh(h&Uh/}qi(h3]h4]h2]h1]h5]uh'hbh!]qjcdocutils.nodes reference qk)ql}qm(h&Uh/}qn(h1]qoUid1qpah2]h3]h4]h5]Urefidhuh'hgh!]qqhLX Introductionqrqs}qt(h&X Introductionquh'hlubah-U referenceqvubah-U paragraphqwubah-U list_itemqxubha)qy}qz(h&Uh/}q{(h3]h4]h2]h1]h5]uh'h\h!]q|hf)q}}q~(h&Uh/}q(h3]h4]h2]h1]h5]uh'hyh!]qhk)q}q(h&Uh/}q(h1]qUid2qah2]h3]h4]h5]Urefidhuh'h}h!]qhLX The modelqq}q(h&X The modelqh'hubah-hvubah-hwubah-hxubha)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'h\h!]qhf)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'hh!]qhk)q}q(h&Uh/}q(h1]qUid3qah2]h3]h4]h5]Urefidhuh'hh!]qhLX'Using carrot to send clicks as messagesqq}q(h&X'Using carrot to send clicks as messagesqh'hubah-hvubah-hwubah-hxubha)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'h\h!]qhf)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'hh!]qhk)q}q(h&Uh/}q(h1]qUid4qah2]h3]h4]h5]Urefidhuh'hh!]qhLX View and URLsqq}q(h&X View and URLsqh'hubah-hvubah-hwubah-hxubha)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'h\h!]qhf)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'hh!]qhk)q}q(h&Uh/}q(h1]qUid5qah2]h3]h4]h5]Urefidhuh'hh!]qhLXCreating the periodic taskqq}q(h&XCreating the periodic taskqh'hubah-hvubah-hwubah-hxubha)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'h\h!]qhf)q}q(h&Uh/}q(h3]h4]h2]h1]h5]uh'hh!]qhk)q}q(h&Uh/}q(h1]qUid6qah2]h3]h4]h5]Urefidhuh'hh!]qhLX Finishingqυq}q(h&X Finishingqh'hubah-hvubah-hwubah-hxubeubaubh9)q}q(h&Uh'h:h(h+h-h>h/}q(h3]h4]h2]h1]qhah5]qhauh7K h8hh!]q(hE)q}q(h&huh'hh(h+h-hIh/}q(h1]h2]h3]h4]h5]h6hpuh7K h8hh!]qhLX Introductionq݅q}q(h&huh'hubaubhf)q}q(h&XA click counter should be easy, right? Just a simple view that increments a click in the DB and forwards you to the real destination.qh'hh(h+h-hwh/}q(h3]h4]h2]h1]h5]uh7K h8hh!]qhLXA click counter should be easy, right? Just a simple view that increments a click in the DB and forwards you to the real destination.q允q}q(h&hh'hubaubhf)q}q(h&XThis would work well for most sites, but when traffic starts to increase, you are likely to bump into problems. One database write for every click is not good if you have millions of clicks a day.qh'hh(h+h-hwh/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]qhLXThis would work well for most sites, but when traffic starts to increase, you are likely to bump into problems. One database write for every click is not good if you have millions of clicks a day.q텁q}q(h&hh'hubaubhf)q}q(h&XSo what can you do? In this tutorial we will send the individual clicks as messages using ``carrot``, and then process them later with a ``celery`` periodic task.h'hh(h+h-hwh/}q(h3]h4]h2]h1]h5]uh7Kh8hh!]q(hLXZSo what can you do? In this tutorial we will send the individual clicks as messages using qq}q(h&XZSo what can you do? In this tutorial we will send the individual clicks as messages using h'hubcdocutils.nodes literal q)q}q(h&X ``carrot``h/}q(h3]h4]h2]h1]h5]uh'hh!]qhLXcarrotqq}q(h&Uh'hubah-UliteralqubhLX%, and then process them later with a rr}r(h&X%, and then process them later with a h'hubh)r}r(h&X ``celery``h/}r(h3]h4]h2]h1]h5]uh'hh!]rhLXceleryrr}r (h&Uh'jubah-hubhLX periodic task.r r }r (h&X periodic task.h'hubeubhf)r }r(h&XCelery and carrot is excellent in tandem, and while this might not be the perfect example, you'll at least see one example how of they can be used to solve a task.rh'hh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]rhLXCelery and carrot is excellent in tandem, and while this might not be the perfect example, you'll at least see one example how of they can be used to solve a task.rr}r(h&jh'j ubaubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7Kh8hh!]r(hE)r}r(h&hh'jh(h+h-hIh/}r(h1]h2]h3]h4]h5]h6huh7Kh8hh!]rhLX The modelrr }r!(h&hh'jubaubhf)r"}r#(h&XThe model is simple, ``Click`` has the URL as primary key and a number of clicks for that URL. Its manager, ``ClickManager`` implements the ``increment_clicks`` method, which takes a URL and by how much to increment its count by.h'jh(h+h-hwh/}r$(h3]h4]h2]h1]h5]uh7Kh8hh!]r%(hLXThe model is simple, r&r'}r((h&XThe model is simple, h'j"ubh)r)}r*(h&X ``Click``h/}r+(h3]h4]h2]h1]h5]uh'j"h!]r,hLXClickr-r.}r/(h&Uh'j)ubah-hubhLXN has the URL as primary key and a number of clicks for that URL. Its manager, r0r1}r2(h&XN has the URL as primary key and a number of clicks for that URL. Its manager, h'j"ubh)r3}r4(h&X``ClickManager``h/}r5(h3]h4]h2]h1]h5]uh'j"h!]r6hLX ClickManagerr7r8}r9(h&Uh'j3ubah-hubhLX implements the r:r;}r<(h&X implements the h'j"ubh)r=}r>(h&X``increment_clicks``h/}r?(h3]h4]h2]h1]h5]uh'j"h!]r@hLXincrement_clicksrArB}rC(h&Uh'j=ubah-hubhLXE method, which takes a URL and by how much to increment its count by.rDrE}rF(h&XE method, which takes a URL and by how much to increment its count by.h'j"ubeubhf)rG}rH(h&X*clickmuncher/models.py*:rIh'jh(h+h-hwh/}rJ(h3]h4]h2]h1]h5]uh7K%h8hh!]rK(cdocutils.nodes emphasis rL)rM}rN(h&X*clickmuncher/models.py*h/}rO(h3]h4]h2]h1]h5]uh'jGh!]rPhLXclickmuncher/models.pyrQrR}rS(h&Uh'jMubah-UemphasisrTubhLX:rU}rV(h&X:h'jGubeubcdocutils.nodes literal_block rW)rX}rY(h&Xfrom django.db import models from django.utils.translation import ugettext_lazy as _ class ClickManager(models.Manager): def increment_clicks(self, for_url, increment_by=1): """Increment the click count for an URL. >>> Click.objects.increment_clicks("http://google.com", 10) """ click, created = self.get_or_create(url=for_url, defaults={"click_count": increment_by}) if not created: click.click_count += increment_by click.save() return click.click_count class Click(models.Model): url = models.URLField(_(u"URL"), verify_exists=False, unique=True) click_count = models.PositiveIntegerField(_(u"click_count"), default=0) objects = ClickManager() class Meta: verbose_name = _(u"URL clicks") verbose_name_plural = _(u"URL clicks")h'jh(h+h-U literal_blockrZh/}r[(Ulinenosr\Ulanguager]XpythonU xml:spacer^Upreserver_h1]h2]h3]h4]h5]uh7K'h8hh!]r`hLXfrom django.db import models from django.utils.translation import ugettext_lazy as _ class ClickManager(models.Manager): def increment_clicks(self, for_url, increment_by=1): """Increment the click count for an URL. >>> Click.objects.increment_clicks("http://google.com", 10) """ click, created = self.get_or_create(url=for_url, defaults={"click_count": increment_by}) if not created: click.click_count += increment_by click.save() return click.click_count class Click(models.Model): url = models.URLField(_(u"URL"), verify_exists=False, unique=True) click_count = models.PositiveIntegerField(_(u"click_count"), default=0) objects = ClickManager() class Meta: verbose_name = _(u"URL clicks") verbose_name_plural = _(u"URL clicks")rarb}rc(h&Uh'jXubaubeubh9)rd}re(h&Uh'h:h(h+h-h>h/}rf(h3]h4]h2]h1]rghah5]rhhauh7KJh8hh!]ri(hE)rj}rk(h&hh'jdh(h+h-hIh/}rl(h1]h2]h3]h4]h5]h6huh7KJh8hh!]rmhLX'Using carrot to send clicks as messagesrnro}rp(h&hh'jjubaubhf)rq}rr(h&X4The model is normal django stuff, nothing new there. But now we get on to the messaging. It has been a tradition for me to put the projects messaging related code in its own ``messaging.py`` module, and I will continue to do so here so maybe you can adopt this practice. In this module we have two functions:h'jdh(h+h-hwh/}rs(h3]h4]h2]h1]h5]uh7KLh8hh!]rt(hLXThe model is normal django stuff, nothing new there. But now we get on to the messaging. It has been a tradition for me to put the projects messaging related code in its own rurv}rw(h&XThe model is normal django stuff, nothing new there. But now we get on to the messaging. It has been a tradition for me to put the projects messaging related code in its own h'jqubh)rx}ry(h&X``messaging.py``h/}rz(h3]h4]h2]h1]h5]uh'jqh!]r{hLX messaging.pyr|r}}r~(h&Uh'jxubah-hubhLXv module, and I will continue to do so here so maybe you can adopt this practice. In this module we have two functions:rr}r(h&Xv module, and I will continue to do so here so maybe you can adopt this practice. In this module we have two functions:h'jqubeubh[)r}r(h&Uh'jdh(h+h-h^h/}r(UbulletrX*h1]h2]h3]h4]h5]uh7KRh8hh!]r(ha)r}r(h&X``send_increment_clicks`` This function sends a simple message to the broker. The message body only contains the URL we want to increment as plain-text, so the exchange and routing key play a role here. We use an exchange called ``clicks``, with a routing key of ``increment_click``, so any consumer binding a queue to this exchange using this routing key will receive these messages. h'jh(h+h-hxh/}r(h3]h4]h2]h1]h5]uh7Nh8hh!]r(hf)r}r(h&X``send_increment_clicks``rh'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7KRh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXsend_increment_clicksrr}r(h&Uh'jubah-hubaubhf)r}r(h&XfThis function sends a simple message to the broker. The message body only contains the URL we want to increment as plain-text, so the exchange and routing key play a role here. We use an exchange called ``clicks``, with a routing key of ``increment_click``, so any consumer binding a queue to this exchange using this routing key will receive these messages.h'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7KTh!]r(hLXThis function sends a simple message to the broker. The message body only contains the URL we want to increment as plain-text, so the exchange and routing key play a role here. We use an exchange called rr}r(h&XThis function sends a simple message to the broker. The message body only contains the URL we want to increment as plain-text, so the exchange and routing key play a role here. We use an exchange called h'jubh)r}r(h&X ``clicks``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXclicksrr}r(h&Uh'jubah-hubhLX, with a routing key of rr}r(h&X, with a routing key of h'jubh)r}r(h&X``increment_click``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXincrement_clickrr}r(h&Uh'jubah-hubhLXf, so any consumer binding a queue to this exchange using this routing key will receive these messages.rr}r(h&Xf, so any consumer binding a queue to this exchange using this routing key will receive these messages.h'jubeubeubha)r}r(h&XZ``process_clicks`` This function processes all currently gathered clicks sent using ``send_increment_clicks``. Instead of issuing one database query for every click it processes all of the messages first, calculates the new click count and issues one update per URL. A message that has been received will not be deleted from the broker until it has been acknowledged by the receiver, so if the receiver dies in the middle of processing the message, it will be re-sent at a later point in time. This guarantees delivery and we respect this feature here by not acknowledging the message until the clicks has actually been written to disk. **Note**: This could probably be optimized further with some hand-written SQL, but it will do for now. Let's say it's an exercise left for the picky reader, albeit a discouraged one if you can survive without doing it. h'jh(h+h-hxh/}r(h3]h4]h2]h1]h5]uh7Nh8hh!]r(hf)r}r(h&X``process_clicks``rh'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7KZh!]rh)r}r(h&jh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXprocess_clicksrr}r(h&Uh'jubah-hubaubhf)r}r(h&XiThis function processes all currently gathered clicks sent using ``send_increment_clicks``. Instead of issuing one database query for every click it processes all of the messages first, calculates the new click count and issues one update per URL. A message that has been received will not be deleted from the broker until it has been acknowledged by the receiver, so if the receiver dies in the middle of processing the message, it will be re-sent at a later point in time. This guarantees delivery and we respect this feature here by not acknowledging the message until the clicks has actually been written to disk.h'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7K\h!]r(hLXAThis function processes all currently gathered clicks sent using rr}r(h&XAThis function processes all currently gathered clicks sent using h'jubh)r}r(h&X``send_increment_clicks``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXsend_increment_clicksrr}r(h&Uh'jubah-hubhLX. Instead of issuing one database query for every click it processes all of the messages first, calculates the new click count and issues one update per URL. A message that has been received will not be deleted from the broker until it has been acknowledged by the receiver, so if the receiver dies in the middle of processing the message, it will be re-sent at a later point in time. This guarantees delivery and we respect this feature here by not acknowledging the message until the clicks has actually been written to disk.rr}r(h&X. Instead of issuing one database query for every click it processes all of the messages first, calculates the new click count and issues one update per URL. A message that has been received will not be deleted from the broker until it has been acknowledged by the receiver, so if the receiver dies in the middle of processing the message, it will be re-sent at a later point in time. This guarantees delivery and we respect this feature here by not acknowledging the message until the clicks has actually been written to disk.h'jubeubhf)r}r(h&X**Note**: This could probably be optimized further with some hand-written SQL, but it will do for now. Let's say it's an exercise left for the picky reader, albeit a discouraged one if you can survive without doing it.h'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7Kfh!]r(cdocutils.nodes strong r)r}r(h&X**Note**h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXNoterr}r(h&Uh'jubah-UstrongrubhLX: This could probably be optimized further with some hand-written SQL, but it will do for now. Let's say it's an exercise left for the picky reader, albeit a discouraged one if you can survive without doing it.rr}r(h&X: This could probably be optimized further with some hand-written SQL, but it will do for now. Let's say it's an exercise left for the picky reader, albeit a discouraged one if you can survive without doing it.h'jubeubeubeubhf)r}r(h&XOn to the code...rh'jdh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7Kkh8hh!]rhLXOn to the code...rr}r(h&jh'jubaubhf)r}r(h&X*clickmuncher/messaging.py*:rh'jdh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7Kmh8hh!]r(jL)r}r(h&X*clickmuncher/messaging.py*h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXclickmuncher/messaging.pyrr}r(h&Uh'jubah-jTubhLX:r}r(h&X:h'jubeubjW)r}r(h&Xqfrom celery.messaging import establish_connection from carrot.messaging import Publisher, Consumer from clickmuncher.models import Click def send_increment_clicks(for_url): """Send a message for incrementing the click count for an URL.""" connection = establish_connection() publisher = Publisher(connection=connection, exchange="clicks", routing_key="increment_click", exchange_type="direct") publisher.send(for_url) publisher.close() connection.close() def process_clicks(): """Process all currently gathered clicks by saving them to the database.""" connection = establish_connection() consumer = Consumer(connection=connection, queue="clicks", exchange="clicks", routing_key="increment_click", exchange_type="direct") # First process the messages: save the number of clicks # for every URL. clicks_for_url = {} messages_for_url = {} for message in consumer.iterqueue(): url = message.body clicks_for_url[url] = clicks_for_url.get(url, 0) + 1 # We also need to keep the message objects so we can ack the # messages as processed when we are finished with them. if url in messages_for_url: messages_for_url[url].append(message) else: messages_for_url[url] = [message] # Then increment the clicks in the database so we only need # one UPDATE/INSERT for each URL. for url, click_count in clicks_for_urls.items(): Click.objects.increment_clicks(url, click_count) # Now that the clicks has been registered for this URL we can # acknowledge the messages [message.ack() for message in messages_for_url[url]] consumer.close() connection.close()h'jdh(h+h-jZh/}r(j\j]Xpythonj^j_h1]h2]h3]h4]h5]uh7Koh8hh!]rhLXqfrom celery.messaging import establish_connection from carrot.messaging import Publisher, Consumer from clickmuncher.models import Click def send_increment_clicks(for_url): """Send a message for incrementing the click count for an URL.""" connection = establish_connection() publisher = Publisher(connection=connection, exchange="clicks", routing_key="increment_click", exchange_type="direct") publisher.send(for_url) publisher.close() connection.close() def process_clicks(): """Process all currently gathered clicks by saving them to the database.""" connection = establish_connection() consumer = Consumer(connection=connection, queue="clicks", exchange="clicks", routing_key="increment_click", exchange_type="direct") # First process the messages: save the number of clicks # for every URL. clicks_for_url = {} messages_for_url = {} for message in consumer.iterqueue(): url = message.body clicks_for_url[url] = clicks_for_url.get(url, 0) + 1 # We also need to keep the message objects so we can ack the # messages as processed when we are finished with them. if url in messages_for_url: messages_for_url[url].append(message) else: messages_for_url[url] = [message] # Then increment the clicks in the database so we only need # one UPDATE/INSERT for each URL. for url, click_count in clicks_for_urls.items(): Click.objects.increment_clicks(url, click_count) # Now that the clicks has been registered for this URL we can # acknowledge the messages [message.ack() for message in messages_for_url[url]] consumer.close() connection.close()rr}r(h&Uh'jubaubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7Kh8hh!]r(hE)r}r(h&hh'jh(h+h-hIh/}r(h1]h2]h3]h4]h5]h6huh7Kh8hh!]r hLX View and URLsr r }r (h&hh'jubaubhf)r }r(h&XThis is also simple stuff, don't think I have to explain this code to you. The interface is as follows, if you have a link to http://google.com you would want to count the clicks for, you replace the URL with:h'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLX~This is also simple stuff, don't think I have to explain this code to you. The interface is as follows, if you have a link to rr}r(h&X~This is also simple stuff, don't think I have to explain this code to you. The interface is as follows, if you have a link to h'j ubhk)r}r(h&Xhttp://google.comrh/}r(Urefurijh1]h2]h3]h4]h5]uh'j h!]rhLXhttp://google.comrr}r(h&Uh'jubah-hvubhLXB you would want to count the clicks for, you replace the URL with:rr}r(h&XB you would want to count the clicks for, you replace the URL with:h'j ubeubcdocutils.nodes block_quote r)r }r!(h&Uh'jh(h+h-U block_quoter"h/}r#(h3]h4]h2]h1]h5]uh7Nh8hh!]r$hf)r%}r&(h&X5http://mysite/clickmuncher/count/?u=http://google.comr'h'j h(h+h-hwh/}r((h3]h4]h2]h1]h5]uh7Kh!]r)hk)r*}r+(h&j'h/}r,(Urefurij'h1]h2]h3]h4]h5]uh'j%h!]r-hLX5http://mysite/clickmuncher/count/?u=http://google.comr.r/}r0(h&Uh'j*ubah-hvubaubaubhf)r1}r2(h&XWand the ``count`` view will send off an increment message and forward you to that site.h'jh(h+h-hwh/}r3(h3]h4]h2]h1]h5]uh7Kh8hh!]r4(hLXand the r5r6}r7(h&Xand the h'j1ubh)r8}r9(h&X ``count``h/}r:(h3]h4]h2]h1]h5]uh'j1h!]r;hLXcountr<r=}r>(h&Uh'j8ubah-hubhLXF view will send off an increment message and forward you to that site.r?r@}rA(h&XF view will send off an increment message and forward you to that site.h'j1ubeubhf)rB}rC(h&X*clickmuncher/views.py*:rDh'jh(h+h-hwh/}rE(h3]h4]h2]h1]h5]uh7Kh8hh!]rF(jL)rG}rH(h&X*clickmuncher/views.py*h/}rI(h3]h4]h2]h1]h5]uh'jBh!]rJhLXclickmuncher/views.pyrKrL}rM(h&Uh'jGubah-jTubhLX:rN}rO(h&X:h'jBubeubjW)rP}rQ(h&Xfrom django.http import HttpResponseRedirect from clickmuncher.messaging import send_increment_clicks def count(request): url = request.GET["u"] send_increment_clicks(url) return HttpResponseRedirect(url)h'jh(h+h-jZh/}rR(j\j]Xpythonj^j_h1]h2]h3]h4]h5]uh7Kh8hh!]rShLXfrom django.http import HttpResponseRedirect from clickmuncher.messaging import send_increment_clicks def count(request): url = request.GET["u"] send_increment_clicks(url) return HttpResponseRedirect(url)rTrU}rV(h&Uh'jPubaubhf)rW}rX(h&X*clickmuncher/urls.py*:rYh'jh(h+h-hwh/}rZ(h3]h4]h2]h1]h5]uh7Kh8hh!]r[(jL)r\}r](h&X*clickmuncher/urls.py*h/}r^(h3]h4]h2]h1]h5]uh'jWh!]r_hLXclickmuncher/urls.pyr`ra}rb(h&Uh'j\ubah-jTubhLX:rc}rd(h&X:h'jWubeubjW)re}rf(h&Xfrom django.conf.urls.defaults import patterns, url from clickmuncher import views urlpatterns = patterns("", url(r'^$', views.count, name="clickmuncher-count"), )h'jh(h+h-jZh/}rg(j\j]Xpythonj^j_h1]h2]h3]h4]h5]uh7Kh8hh!]rhhLXfrom django.conf.urls.defaults import patterns, url from clickmuncher import views urlpatterns = patterns("", url(r'^$', views.count, name="clickmuncher-count"), )rirj}rk(h&Uh'jeubaubeubh9)rl}rm(h&Uh'h:h(h+h-h>h/}rn(h3]h4]h2]h1]rohah5]rph auh7Kh8hh!]rq(hE)rr}rs(h&hh'jlh(h+h-hIh/}rt(h1]h2]h3]h4]h5]h6huh7Kh8hh!]ruhLXCreating the periodic taskrvrw}rx(h&hh'jrubaubhf)ry}rz(h&XKProcessing the clicks every 30 minutes is easy using celery periodic tasks.r{h'jlh(h+h-hwh/}r|(h3]h4]h2]h1]h5]uh7Kh8hh!]r}hLXKProcessing the clicks every 30 minutes is easy using celery periodic tasks.r~r}r(h&j{h'jyubaubhf)r}r(h&X*clickmuncher/tasks.py*:rh'jlh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(jL)r}r(h&X*clickmuncher/tasks.py*h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXclickmuncher/tasks.pyrr}r(h&Uh'jubah-jTubhLX:r}r(h&X:h'jubeubjW)r}r(h&Xfrom celery.task import PeriodicTask from clickmuncher.messaging import process_clicks from datetime import timedelta class ProcessClicksTask(PeriodicTask): run_every = timedelta(minutes=30) def run(self, **kwargs): process_clicks()h'jlh(h+h-jZh/}r(j\j]Xpythonj^j_h1]h2]h3]h4]h5]uh7Kh8hh!]rhLXfrom celery.task import PeriodicTask from clickmuncher.messaging import process_clicks from datetime import timedelta class ProcessClicksTask(PeriodicTask): run_every = timedelta(minutes=30) def run(self, **kwargs): process_clicks()rr}r(h&Uh'jubaubhf)r}r(h&XWe subclass from :class:`celery.task.base.PeriodicTask`, set the ``run_every`` attribute and in the body of the task just call the ``process_clicks`` function we wrote earlier.h'jlh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLXWe subclass from rr}r(h&XWe subclass from h'jubcsphinx.addnodes pending_xref r)r}r(h&X&:class:`celery.task.base.PeriodicTask`rh'jh(h+h-U pending_xrefrh/}r(UreftypeXclassUrefwarnrU reftargetrXcelery.task.base.PeriodicTaskU refdomainXpyrh1]h2]U refexplicith3]h4]h5]UrefdocrXtutorials/clickcounterrUpy:classrNU py:modulerNuh7Kh!]rh)r}r(h&jh/}r(h3]h4]r(UxrefrjXpy-classreh2]h1]h5]uh'jh!]rhLXcelery.task.base.PeriodicTaskrr}r(h&Uh'jubah-hubaubhLX , set the rr}r(h&X , set the h'jubh)r}r(h&X ``run_every``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX run_everyrr}r(h&Uh'jubah-hubhLX5 attribute and in the body of the task just call the rr}r(h&X5 attribute and in the body of the task just call the h'jubh)r}r(h&X``process_clicks``h/}r(h3]h4]h2]h1]h5]uh'jh!]rhLXprocess_clicksrr}r(h&Uh'jubah-hubhLX function we wrote earlier.rr}r(h&X function we wrote earlier.h'jubeubeubh9)r}r(h&Uh'h:h(h+h-h>h/}r(h3]h4]h2]h1]rhah5]rh auh7Kh8hh!]r(hE)r}r(h&hh'jh(h+h-hIh/}r(h1]h2]h3]h4]h5]h6huh7Kh8hh!]rhLX Finishingrr}r(h&hh'jubaubhf)r}r(h&XThere are still ways to improve this application. The URLs could be cleaned so the URL http://google.com and http://google.com/ is the same. Maybe it's even possible to update the click count using a single UPDATE query?h'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLXWThere are still ways to improve this application. The URLs could be cleaned so the URL rr}r(h&XWThere are still ways to improve this application. The URLs could be cleaned so the URL h'jubhk)r}r(h&Xhttp://google.comrh/}r(Urefurijh1]h2]h3]h4]h5]uh'jh!]rhLXhttp://google.comrr}r(h&Uh'jubah-hvubhLX and rr}r(h&X and h'jubhk)r}r(h&Xhttp://google.com/rh/}r(Urefurijh1]h2]h3]h4]h5]uh'jh!]rhLXhttp://google.com/rr}r(h&Uh'jubah-hvubhLX] is the same. Maybe it's even possible to update the click count using a single UPDATE query?rr}r(h&X] is the same. Maybe it's even possible to update the click count using a single UPDATE query?h'jubeubhf)r}r(h&XIf you have any questions regarding this tutorial, please send a mail to the mailing-list or come join us in the #celery IRC channel at Freenode: http://celeryq.org/introduction.html#getting-helph'jh(h+h-hwh/}r(h3]h4]h2]h1]h5]uh7Kh8hh!]r(hLXIf you have any questions regarding this tutorial, please send a mail to the mailing-list or come join us in the #celery IRC channel at Freenode: rr}r(h&XIf you have any questions regarding this tutorial, please send a mail to the mailing-list or come join us in the #celery IRC channel at Freenode: h'jubhk)r}r(h&X1http://celeryq.org/introduction.html#getting-helprh/}r(Urefurijh1]h2]h3]h4]h5]uh'jh!]rhLX1http://celeryq.org/introduction.html#getting-helprr}r(h&Uh'jubah-hvubeubeubeubeh&UU transformerrNU footnote_refsr}rUrefnamesr}r Usymbol_footnotesr ]r Uautofootnote_refsr ]r Usymbol_footnote_refsr]rU citationsr]rh8hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h&Uh/}r(h3]UlevelKh1]h2]Usourceh+h4]h5]UlineKUtypeUINFOruh!]rhf)r}r(h&Uh/}r(h3]h4]h2]h1]h5]uh'jh!]rhLX6Hyperlink target "tut-clickcounter" is not referenced.rr }r!(h&Uh'jubah-hwubah-Usystem_messager"ubaUreporterr#NUid_startr$KU autofootnotesr%]r&U citation_refsr'}r(Uindirect_targetsr)]r*Usettingsr+(cdocutils.frontend Values r,or-}r.(Ufootnote_backlinksr/KUrecord_dependenciesr0NU rfc_base_urlr1Uhttp://tools.ietf.org/html/r2U tracebackr3Upep_referencesr4NUstrip_commentsr5NU toc_backlinksr6Uentryr7U language_coder8Uenr9U datestampr:NU report_levelr;KU _destinationr<NU halt_levelr=KU strip_classesr>NhINUerror_encoding_error_handlerr?Ubackslashreplacer@UdebugrANUembed_stylesheetrBUoutput_encoding_error_handlerrCUstrictrDU sectnum_xformrEKUdump_transformsrFNU docinfo_xformrGKUwarning_streamrHNUpep_file_url_templaterIUpep-%04drJUexit_status_levelrKKUconfigrLNUstrict_visitorrMNUcloak_email_addressesrNUtrim_footnote_reference_spacerOUenvrPNUdump_pseudo_xmlrQNUexpose_internalsrRNUsectsubtitle_xformrSU source_linkrTNUrfc_referencesrUNUoutput_encodingrVUutf-8rWU source_urlrXNUinput_encodingrYU utf-8-sigrZU_disable_configr[NU id_prefixr\UU tab_widthr]KUerror_encodingr^UUTF-8r_U_sourcer`UT/var/build/user_builds/celery/checkouts/2.1-archived/docs/tutorials/clickcounter.rstraUgettext_compactrbU generatorrcNUdump_internalsrdNU smart_quotesreU pep_base_urlrfUhttp://www.python.org/dev/peps/rgUsyntax_highlightrhUlongriUinput_encoding_error_handlerrjjDUauto_id_prefixrkUidrlUdoctitle_xformrmUstrip_elements_with_classesrnNU _config_filesro]rpUfile_insertion_enabledrqU raw_enabledrrKU dump_settingsrsNubUsymbol_footnote_startrtKUidsru}rv(hhhh:hjhhhjlhhhhhhhh:hphlhhhjdhjhjh hQuUsubstitution_namesrw}rxh-h8h/}ry(h3]h1]h2]Usourceh+h4]h5]uU footnotesrz]r{Urefidsr|}r}h]r~h$asub.PKYDDM!5celery-2.1-archived/.doctrees/tutorials/index.doctreecdocutils.nodes document q)q}q(U nametypesq}qX tutorialsqNsUsubstitution_defsq}qUparse_messagesq ]q Ucurrent_sourceq NU decorationq NUautofootnote_startq KUnameidsq}qhU tutorialsqsUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXM/var/build/user_builds/celery/checkouts/2.1-archived/docs/tutorials/index.rstqq}qbUtagnameqUsectionqU attributesq}q (Udupnamesq!]Uclassesq"]Ubackrefsq#]Uidsq$]q%haUnamesq&]q'hauUlineq(KUdocumentq)hh]q*(cdocutils.nodes title q+)q,}q-(hX Tutorialsq.hhhhhUtitleq/h}q0(h!]h"]h#]h$]h&]uh(Kh)hh]q1cdocutils.nodes Text q2X Tutorialsq3q4}q5(hh.hh,ubaubcdocutils.nodes field_list q6)q7}q8(hUhhhhhU field_listq9h}q:(h!]h"]h#]h$]h&]uh(Kh)hh]q;(cdocutils.nodes field q<)q=}q>(hUhh7hhhUfieldq?h}q@(h!]h"]h#]h$]h&]uh(Kh)hh]qA(cdocutils.nodes field_name qB)qC}qD(hXReleaseqEh}qF(h!]h"]h#]h$]h&]uhh=h]qGh2XReleaseqHqI}qJ(hhEhhCubahU field_nameqKubcdocutils.nodes field_body qL)qM}qN(hX |version|qOh}qP(h!]h"]h#]h$]h&]uhh=h]qQcdocutils.nodes paragraph qR)qS}qT(hhOhhMhhhU paragraphqUh}qV(h!]h"]h#]h$]h&]uh(Kh]qWh2X2.1qXqY}qZ(hU2.1q[hhSubaubahU field_bodyq\ubeubh<)q]}q^(hUhh7hhhh?h}q_(h!]h"]h#]h$]h&]uh(Kh)hh]q`(hB)qa}qb(hXDateqch}qd(h!]h"]h#]h$]h&]uhh]h]qeh2XDateqfqg}qh(hhchhaubahhKubhL)qi}qj(hX|today| h}qk(h!]h"]h#]h$]h&]uhh]h]qlhR)qm}qn(hX|today|qohhihhhhUh}qp(h!]h"]h#]h$]h&]uh(Kh]qqh2XFebruary 04, 2014qrqs}qt(hXFebruary 04, 2014hhmubaubahh\ubeubeubcdocutils.nodes compound qu)qv}qw(hUhhhhhUcompoundqxh}qy(h!]h"]qzUtoctree-wrapperq{ah#]h$]h&]uh(Nh)hh]q|csphinx.addnodes toctree q})q~}q(hUhhvhhhUtoctreeqh}q(UnumberedqKU includehiddenqhXtutorials/indexqU titlesonlyqUglobqh$]h#]h!]h"]h&]Uentriesq]q(NXtutorials/otherqueuesqqNXtutorials/clickcounterqqeUhiddenqU includefilesq]q(hheUmaxdepthqKuh(Kh]ubaubeubahUU transformerqNU footnote_refsq}qUrefnamesq}qUsymbol_footnotesq]qUautofootnote_refsq]qUsymbol_footnote_refsq]qU citationsq]qh)hU current_lineqNUtransform_messagesq]qUreporterqNUid_startqKU autofootnotesq]qU citation_refsq}qUindirect_targetsq]qUsettingsq(cdocutils.frontend Values qoq}q(Ufootnote_backlinksqKUrecord_dependenciesqNU rfc_base_urlqUhttp://tools.ietf.org/html/qU tracebackqUpep_referencesqNUstrip_commentsqNU toc_backlinksqUentryqU language_codeqUenqU datestampqNU report_levelqKU _destinationqNU halt_levelqKU strip_classesqNh/NUerror_encoding_error_handlerqUbackslashreplaceqUdebugqNUembed_stylesheetqUoutput_encoding_error_handlerqUstrictqU sectnum_xformqKUdump_transformsqNU docinfo_xformqKUwarning_streamqNUpep_file_url_templateqUpep-%04dqUexit_status_levelqKUconfigqNUstrict_visitorqNUcloak_email_addressesq̈Utrim_footnote_reference_spaceq͉UenvqNUdump_pseudo_xmlqNUexpose_internalsqNUsectsubtitle_xformqщU source_linkqNUrfc_referencesqNUoutput_encodingqUutf-8qU source_urlqNUinput_encodingqU utf-8-sigqU_disable_configqNU id_prefixqUU tab_widthqKUerror_encodingqUUTF-8qU_sourceqUM/var/build/user_builds/celery/checkouts/2.1-archived/docs/tutorials/index.rstqUgettext_compactqU generatorqNUdump_internalsqNU smart_quotesqU pep_base_urlqUhttp://www.python.org/dev/peps/qUsyntax_highlightqUlongqUinput_encoding_error_handlerqhUauto_id_prefixqUidqUdoctitle_xformqUstrip_elements_with_classesqNU _config_filesq]Ufile_insertion_enabledqU raw_enabledqKU dump_settingsqNubUsymbol_footnote_startqKUidsq}qhhsUsubstitution_namesq}qhh)h}q(h!]h$]h#]Usourcehh"]h&]uU footnotesq]qUrefidsq}qub.PKYDDHHXCQCQ;celery-2.1-archived/.doctrees/tutorials/otherqueues.doctreecdocutils.nodes document q)q}q(U nametypesq}q(XredisqNX installationqNXdatabaseqNXtut-otherqueuesq Ximportant notesq NXcarrotq X8using celery with redis/database as the messaging queue.q NXotherqueues-redisq Xotherqueues-databaseqXotherqueues-notesqXotherqueues-redis-confqXotherqueues-database-confqX configurationqNXghettoqqUcontentsqNXotherqueues-installationquUsubstitution_defsq}qUparse_messagesq]qcdocutils.nodes system_message q)q}q(U rawsourceqUUparentqcdocutils.nodes section q)q }q!(hUU referencedq"Khh)q#}q$(hUhh)q%}q&(hUhhUsourceq'cdocutils.nodes reprunicode q(XS/var/build/user_builds/celery/checkouts/2.1-archived/docs/tutorials/otherqueues.rstq)q*}q+bUexpect_referenced_by_nameq,}q-h cdocutils.nodes target q.)q/}q0(hX.. _tut-otherqueues:hhh'h*Utagnameq1Utargetq2U attributesq3}q4(Uidsq5]Ubackrefsq6]Udupnamesq7]Uclassesq8]Unamesq9]Urefidq:Utut-otherqueuesq;uUlineq]ubsh1Usectionq?h3}q@(h7]h8]h6]h5]qA(U7using-celery-with-redis-database-as-the-messaging-queueqBh;eh9]qC(h h euh]qF(cdocutils.nodes title qG)qH}qI(hX8Using Celery with Redis/Database as the messaging queue.qJhh%h'h*h1UtitleqKh3}qL(h7]h8]h6]h5]h9]uh]qMcdocutils.nodes Text qNX8Using Celery with Redis/Database as the messaging queue.qOqP}qQ(hhJhhHubaubcdocutils.nodes paragraph qR)qS}qT(hXThere's a plug-in for celery that enables the use of Redis or an SQL database as the messaging queue. This is not part of celery itself, but exists as an extension to `carrot`_.hh%h'h*h1U paragraphqUh3}qV(h7]h8]h6]h5]h9]uh]qW(hNXThere's a plug-in for celery that enables the use of Redis or an SQL database as the messaging queue. This is not part of celery itself, but exists as an extension to qXqY}qZ(hXThere's a plug-in for celery that enables the use of Redis or an SQL database as the messaging queue. This is not part of celery itself, but exists as an extension to hhSubcdocutils.nodes reference q[)q\}q](hX `carrot`_Uresolvedq^KhhSh1U referenceq_h3}q`(UnameXcarrotqaUrefuriqbX"http://pypi.python.org/pypi/carrotqch5]h6]h7]h8]h9]uh>]qdhNXcarrotqeqf}qg(hUhh\ubaubhNX.qh}qi(hX.hhSubeubh.)qj}qk(hX0.. _`carrot`: http://pypi.python.org/pypi/carroth"Khh%h'h*h1h2h3}ql(hbhch5]qmUcarrotqnah6]h7]h8]h9]qoh auh]ubh.)qp}qq(hX2.. _`ghettoq`: http://pypi.python.org/pypi/ghettoqh"Khh%h'h*h1h2h3}qr(hbX#http://pypi.python.org/pypi/ghettoqqsh5]qtUghettoqquah6]h7]h8]h9]qvhauh]ubcdocutils.nodes topic qw)qx}qy(hUhh%h'h*h1Utopicqzh3}q{(h7]h8]q|(Ucontentsq}Ulocalq~eh6]h5]qUcontentsqah9]qhauh]qcdocutils.nodes bullet_list q)q}q(hUhhxh'Nh1U bullet_listqh3}q(h7]h8]h6]h5]h9]uh]q(cdocutils.nodes list_item q)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]qhR)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]qh[)q}q(hUh3}q(h5]qUid2qah6]h7]h8]h9]UrefidU installationquhhh>]qhNX Installationqq}q(hX Installationqhhubah1h_ubah1hUubah1U list_itemqubh)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]q(hR)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]qh[)q}q(hUh3}q(h5]qUid3qah6]h7]h8]h9]UrefidUredisquhhh>]qhNXRedisqq}q(hXRedisqhhubah1h_ubah1hUubh)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]qh)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]qhR)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]qh[)q}q(hUh3}q(h5]qUid4qah6]h7]h8]h9]UrefidU configurationquhhh>]qhNX Configurationqąq}q(hX Configurationqhhubah1h_ubah1hUubah1hubah1hubeh1hubh)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]q(hR)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]qh[)q}q(hUh3}q(h5]qUid5qah6]h7]h8]h9]UrefidUdatabasequhhh>]qhNXDatabaseqׅq}q(hXDatabaseqhhubah1h_ubah1hUubh)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]q(h)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]qhR)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]qh[)q}q(hUh3}q(h5]qUid6qah6]h7]h8]h9]UrefidUotherqueues-database-confquhhh>]qhNX Configurationqq}q(hX Configurationqhhubah1h_ubah1hUubah1hubh)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]qhR)q}q(hUh3}q(h7]h8]h6]h5]h9]uhhh>]qh[)q}q(hUh3}q(h5]qUid7qah6]h7]h8]h9]UrefidUimportant-notesquhhh>]rhNXImportant notesrr}r(hXImportant notesrhhubah1h_ubah1hUubah1hubeh1hubeh1hubeubaubh.)r}r(hX.. _otherqueues-installation:hh%h'h*h1h2h3}r(h5]h6]h7]h8]h9]h:Uotherqueues-installationruh]ubh)r }r (hUhh%h'h*h,}r hjsh1h?h3}r (h7]h8]h6]h5]r (hjeh9]r(hheuh]r(hG)r}r(hhhj h'h*h1hKh3}r(h5]h6]h7]h8]h9]h:huh]rhNX Installationrr}r(hhhjubaubhR)r}r(hX,You need to install the `ghettoq`_ library::rhj h'h*h1hUh3}r(h7]h8]h6]h5]h9]uh]r(hNXYou need to install the rr}r(hXYou need to install the hjubh[)r }r!(hX `ghettoq`_h^Khjh1h_h3}r"(UnameXghettoqr#hbhsh5]h6]h7]h8]h9]uh>]r$hNXghettoqr%r&}r'(hUhj ubaubhNX library:r(r)}r*(hX library:hjubeubcdocutils.nodes literal_block r+)r,}r-(hX$ pip install -U ghettoqhj h'h*h1U literal_blockr.h3}r/(U xml:spacer0Upreserver1h5]h6]h7]h8]h9]uh]r2hNX$ pip install -U ghettoqr3r4}r5(hUhj,ubaubh.)r6}r7(hX.. _otherqueues-redis:hj h'h*h1h2h3}r8(h5]h6]h7]h8]h9]h:Uotherqueues-redisr9uh]ubeubh)r:}r;(hUhh%h'h*h,}r<h j6sh1h?h3}r=(h7]h8]h6]h5]r>(hj9eh9]r?(hh euh]rA(hG)rB}rC(hhhj:h'h*h1hKh3}rD(h5]h6]h7]h8]h9]h:huh]rEhNXRedisrFrG}rH(hhhjBubaubhR)rI}rJ(hXCFor the Redis support you have to install the Python redis client::rKhj:h'h*h1hUh3}rL(h7]h8]h6]h5]h9]uh]rMhNXBFor the Redis support you have to install the Python redis client:rNrO}rP(hXBFor the Redis support you have to install the Python redis client:hjIubaubj+)rQ}rR(hX$ pip install -U redishj:h'h*h1j.h3}rS(j0j1h5]h6]h7]h8]h9]uh]rThNX$ pip install -U redisrUrV}rW(hUhjQubaubh.)rX}rY(hX.. _otherqueues-redis-conf:hj:h'h*h1h2h3}rZ(h5]h6]h7]h8]h9]h:Uotherqueues-redis-confr[uh]ubh)r\}r](hUh"Khj:h'h*h,}r^hjXsh1h?h3}r_(h7]r`X configurationraah8]h6]h5]rb(hj[eh9]rchauh]re(hG)rf}rg(hhhj\h'h*h1hKh3}rh(h5]h6]h7]h8]h9]h:huh]rihNX Configurationrjrk}rl(hhhjfubaubhR)rm}rn(hXbConfiguration is easy, set the carrot backend, and configure the location of your Redis database::hj\h'h*h1hUh3}ro(h7]h8]h6]h5]h9]uh]rphNXaConfiguration is easy, set the carrot backend, and configure the location of your Redis database:rqrr}rs(hXaConfiguration is easy, set the carrot backend, and configure the location of your Redis database:hjmubaubj+)rt}ru(hXCARROT_BACKEND = "ghettoq.taproot.Redis" BROKER_HOST = "localhost" # Maps to redis host. BROKER_PORT = 6379 # Maps to redis port. BROKER_VHOST = "0" # Maps to database number.hj\h'h*h1j.h3}rv(j0j1h5]h6]h7]h8]h9]uh]rwhNXCARROT_BACKEND = "ghettoq.taproot.Redis" BROKER_HOST = "localhost" # Maps to redis host. BROKER_PORT = 6379 # Maps to redis port. BROKER_VHOST = "0" # Maps to database number.rxry}rz(hUhjtubaubh.)r{}r|(hX.. _otherqueues-database:hj\h'h*h1h2h3}r}(h5]h6]h7]h8]h9]h:Uotherqueues-databaser~uh]ubeubeubh#eubh'h*h,}rhj{sh1h?h3}r(h7]h8]h6]h5]r(hj~eh9]r(hheuh]r(hG)r}r(hhhh#h'h*h1hKh3}r(h5]h6]h7]h8]h9]h:huh]rhNXDatabaserr}r(hhhjubaubh.)r}r(hX.. _otherqueues-database-conf:hh#h'h*h1h2h3}r(h5]h6]h7]h8]h9]h:huh]ubh h)r}r(hUhh#h'h*h,}rhh.)r}r(hX.. _otherqueues-notes:hh h'h*h1h2h3}r(h5]h6]h7]h8]h9]h:Uotherqueues-notesruh]ubsh1h?h3}r(h7]h8]h6]h5]r(hjeh9]r(h heuh]r(hG)r}r(hjhjh'h*h1hKh3}r(h5]h6]h7]h8]h9]h:huh]rhNXImportant notesrr}r(hjhjubaubhR)r}r(hXThese message queues does not have the concept of exchanges and routing keys, there's only the queue entity. As a result of this you need to set the name of the exchange to be the same as the queue::hjh'h*h1hUh3}r(h7]h8]h6]h5]h9]uh]rhNXThese message queues does not have the concept of exchanges and routing keys, there's only the queue entity. As a result of this you need to set the name of the exchange to be the same as the queue:rr}r(hXThese message queues does not have the concept of exchanges and routing keys, there's only the queue entity. As a result of this you need to set the name of the exchange to be the same as the queue:hjubaubj+)r}r(hX!CELERY_DEFAULT_EXCHANGE = "tasks"hjh'h*h1j.h3}r(j0j1h5]h6]h7]h8]h9]uh]rhNX!CELERY_DEFAULT_EXCHANGE = "tasks"rr}r(hUhjubaubhR)r}r(hXor in a custom queue-mapping:rhjh'h*h1hUh3}r(h7]h8]h6]h5]h9]uh]rhNXor in a custom queue-mapping:rr}r(hjhjubaubj+)r}r(hX[CELERY_QUEUES = { "tasks": {"exchange": "tasks"}, "feeds": {"exchange": "feeds"}, }hjh'h*h1j.h3}r(UlinenosrUlanguagerXpythonj0j1h5]h6]h7]h8]h9]uh]rhNX[CELERY_QUEUES = { "tasks": {"exchange": "tasks"}, "feeds": {"exchange": "feeds"}, }rr}r(hUhjubaubhR)r}r(hX|This isn't a problem if you use the default queue setting, as the default is already using the same name for queue/exchange.rhjh'h*h1hUh3}r(h7]h8]h6]h5]h9]uh]rhNX|This isn't a problem if you use the default queue setting, as the default is already using the same name for queue/exchange.rr}r(hjhjubaubeubeubh'h*h,}rhjsh1h?h3}r(h7]rjaah8]h6]h5]r(hUid1reh9]rhauh]r(hG)r}r(hhhh h'h*h1hKh3}r(h5]h6]h7]h8]h9]h:huh]rhNX Configurationrr}r(hhhjubaubhR)r}r(hX_The database backend uses the Django ``DATABASE_*`` settings for database configuration values.hh h'h*h1hUh3}r(h7]h8]h6]h5]h9]uh]r(hNX%The database backend uses the Django rr}r(hX%The database backend uses the Django hjubcdocutils.nodes literal r)r}r(hX``DATABASE_*``h3}r(h7]h8]h6]h5]h9]uhjh>]rhNX DATABASE_*rr}r(hUhjubah1UliteralrubhNX, settings for database configuration values.rr}r(hX, settings for database configuration values.hjubeubcdocutils.nodes enumerated_list r)r}r(hUhh h'h*h1Uenumerated_listrh3}r(UsuffixrU.h5]h6]h7]UprefixrUh8]h9]UenumtyperUarabicruhh=hh>]r(h)r}r(hXISet your carrot backend:: CARROT_BACKEND = "ghettoq.taproot.Database" hjh'h*h1hh3}r(h7]h8]h6]h5]h9]uh]r(hR)r}r(hXSet your carrot backend::hjh'h*h1hUh3}r(h7]h8]h6]h5]h9]uhh>]rhNXSet your carrot backend:rr}r(hXSet your carrot backend:hjubaubj+)r}r(hX+CARROT_BACKEND = "ghettoq.taproot.Database"hjh1j.h3}r(j0j1h5]h6]h7]h8]h9]uh]rhNX+CARROT_BACKEND = "ghettoq.taproot.Database"rr}r(hUhjubaubeubh)r}r(hXMAdd :mod:`ghettoq` to ``INSTALLED_APPS``:: INSTALLED_APPS = ("ghettoq", ) hjh'h*h1hh3}r (h7]h8]h6]h5]h9]uh]r (hR)r }r (hX*Add :mod:`ghettoq` to ``INSTALLED_APPS``::hjh'h*h1hUh3}r (h7]h8]h6]h5]h9]uh]r(hNXAdd rr}r(hXAdd hj ubcsphinx.addnodes pending_xref r)r}r(hX:mod:`ghettoq`rhj h'h*h1U pending_xrefrh3}r(UreftypeXmodUrefwarnrU reftargetrXghettoqU refdomainXpyrh5]h6]U refexplicith7]h8]h9]UrefdocrXtutorials/otherqueuesrUpy:classrNU py:modulerNuh]rj)r }r!(hjh3}r"(h7]h8]r#(Uxrefr$jXpy-modr%eh6]h5]h9]uhjh>]r&hNXghettoqr'r(}r)(hUhj ubah1jubaubhNX to r*r+}r,(hX to hj ubj)r-}r.(hX``INSTALLED_APPS``h3}r/(h7]h8]h6]h5]h9]uhj h>]r0hNXINSTALLED_APPSr1r2}r3(hUhj-ubah1jubhNX:r4}r5(hX:hj ubeubj+)r6}r7(hXINSTALLED_APPS = ("ghettoq", )hjh1j.h3}r8(j0j1h5]h6]h7]h8]h9]uh]r9hNXINSTALLED_APPS = ("ghettoq", )r:r;}r<(hUhj6ubaubeubh)r=}r>(hXVerify you database settings:: DATABASE_ENGINE = "mysql" DATABASE_NAME = "mydb" DATABASE_USER = "myuser" DATABASE_PASSWORD = "secret" hjh'h*h1hh3}r?(h7]h8]h6]h5]h9]uh]r@(hR)rA}rB(hXVerify you database settings::hj=h'h*h1hUh3}rC(h7]h8]h6]h5]h9]uh]rDhNXVerify you database settings:rErF}rG(hXVerify you database settings:hjAubaubj+)rH}rI(hXfDATABASE_ENGINE = "mysql" DATABASE_NAME = "mydb" DATABASE_USER = "myuser" DATABASE_PASSWORD = "secret"hj=h1j.h3}rJ(j0j1h5]h6]h7]h8]h9]uh]rKhNXfDATABASE_ENGINE = "mysql" DATABASE_NAME = "mydb" DATABASE_USER = "myuser" DATABASE_PASSWORD = "secret"rLrM}rN(hUhjHubaubeubeubcdocutils.nodes block_quote rO)rP}rQ(hUhh h'h*h1U block_quoterRh3}rS(h7]h8]h6]h5]h9]uh]rThR)rU}rV(hXThe above is just an example, if you haven't configured your database before you should read the Django database settings reference: http://docs.djangoproject.com/en/1.1/ref/settings/#database-enginehjPh'h*h1hUh3}rW(h7]h8]h6]h5]h9]uh]rX(hNXThe above is just an example, if you haven't configured your database before you should read the Django database settings reference: rYrZ}r[(hXThe above is just an example, if you haven't configured your database before you should read the Django database settings reference: hjUubh[)r\}r](hXBhttp://docs.djangoproject.com/en/1.1/ref/settings/#database-enginer^h3}r_(Urefurij^h5]h6]h7]h8]h9]uhjUh>]r`hNXBhttp://docs.djangoproject.com/en/1.1/ref/settings/#database-enginerarb}rc(hUhj\ubah1h_ubeubaubj)rd}re(hUhh h'h*h1jh3}rf(jU.h5]h6]h7]jUh8]h9]jjuh]rgh)rh}ri(hXQSync your database schema. When using Django:: $ python manage.py syncdb hjdh'h*h1hh3}rj(h7]h8]h6]h5]h9]uh]rk(hR)rl}rm(hXSync your database schema.rnhjhh'h*h1hUh3}ro(h7]h8]h6]h5]h9]uh]rphNXSync your database schema.rqrr}rs(hjnhjlubaubjO)rt}ru(hUh3}rv(h7]h8]h6]h5]h9]uhjhh>]rw(hR)rx}ry(hXWhen using Django::rzhjth'h*h1hUh3}r{(h7]h8]h6]h5]h9]uh]r|hNXWhen using Django:r}r~}r(hXWhen using Django:hjxubaubj+)r}r(hX$ python manage.py syncdbhjth1j.h3}r(j0j1h5]h6]h7]h8]h9]uh]rhNX$ python manage.py syncdbrr}r(hUhjubaubeh1jRubeubaubjeubh'h*h1Usystem_messagerh3}r(h7]UlevelKh5]h6]rjaUsourceh*h8]h9]UlineK9UtypeUINFOruh]rhR)r}r(hUh3}r(h7]h8]h6]h5]h9]uhhh>]rhNX0Duplicate implicit target name: "configuration".rr}r(hUhjubah1hUubaubaUcurrent_sourcerNU decorationrNUautofootnote_startrKUnameidsr}r(hhhhhhh h;h hh hnh hBh j9hj~hjhj[hhhNhhuhhhjuh>]r(h/h%ehUU transformerrNU footnote_refsr}rUrefnamesr}r(ha]rh\aj#]rj auUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh=hU current_linerNUtransform_messagesr]r(h)r}r(hUh3}r(h7]UlevelKh5]h6]Usourceh*h8]h9]UlineKUtypejuh>]rhR)r}r(hUh3}r(h7]h8]h6]h5]h9]uhjh>]rhNX5Hyperlink target "tut-otherqueues" is not referenced.rr}r(hUhjubah1hUubah1jubh)r}r(hUh3}r(h7]UlevelKh5]h6]Usourceh*h8]h9]UlineKUtypejuh>]rhR)r}r(hUh3}r(h7]h8]h6]h5]h9]uhjh>]rhNX>Hyperlink target "otherqueues-installation" is not referenced.rr}r(hUhjubah1hUubah1jubh)r}r(hUh3}r(h7]UlevelKh5]h6]Usourceh*h8]h9]UlineKUtypejuh>]rhR)r}r(hUh3}r(h7]h8]h6]h5]h9]uhjh>]rhNX7Hyperlink target "otherqueues-redis" is not referenced.rr}r(hUhjubah1hUubah1jubh)r}r(hUh3}r(h7]UlevelKh5]h6]Usourceh*h8]h9]UlineK#Utypejuh>]rhR)r}r(hUh3}r(h7]h8]h6]h5]h9]uhjh>]rhNX<Hyperlink target "otherqueues-redis-conf" is not referenced.rr}r(hUhjubah1hUubah1jubh)r}r(hUh3}r(h7]UlevelKh5]h6]Usourceh*h8]h9]UlineK1Utypejuh>]rhR)r}r(hUh3}r(h7]h8]h6]h5]h9]uhjh>]rhNX:Hyperlink target "otherqueues-database" is not referenced.rr}r(hUhjubah1hUubah1jubh)r}r(hUh3}r(h7]UlevelKh5]h6]Usourceh*h8]h9]UlineK6Utypejuh>]rhR)r}r(hUh3}r(h7]h8]h6]h5]h9]uhjh>]rhNX?Hyperlink target "otherqueues-database-conf" is not referenced.rr}r(hUhjubah1hUubah1jubh)r}r(hUh3}r(h7]UlevelKh5]h6]Usourceh*h8]h9]UlineKZUtypejuh>]rhR)r}r(hUh3}r(h7]h8]h6]h5]h9]uhjh>]rhNX7Hyperlink target "otherqueues-notes" is not referenced.rr}r(hUhjubah1hUubah1jubeUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesr NUstrip_commentsr NU toc_backlinksr Uentryr U language_coder UenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhKNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelr KUconfigr!NUstrict_visitorr"NUcloak_email_addressesr#Utrim_footnote_reference_spacer$Uenvr%NUdump_pseudo_xmlr&NUexpose_internalsr'NUsectsubtitle_xformr(U source_linkr)NUrfc_referencesr*NUoutput_encodingr+Uutf-8r,U source_urlr-NUinput_encodingr.U utf-8-sigr/U_disable_configr0NU id_prefixr1UU tab_widthr2KUerror_encodingr3UUTF-8r4U_sourcer5US/var/build/user_builds/celery/checkouts/2.1-archived/docs/tutorials/otherqueues.rstr6Ugettext_compactr7U generatorr8NUdump_internalsr9NU smart_quotesr:U pep_base_urlr;Uhttp://www.python.org/dev/peps/r<Usyntax_highlightr=Ulongr>Uinput_encoding_error_handlerr?jUauto_id_prefixr@UidrAUdoctitle_xformrBUstrip_elements_with_classesrCNU _config_filesrD]Ufile_insertion_enabledrEU raw_enabledrFKU dump_settingsrGNubUsymbol_footnote_startrHKUidsrI}rJ(j~h#hj:hnhjj[j\hh hhxjj hhhhhhhhhhhhjh hjhBh%j9j:jjhj\hj hh#h;h%huhpuUsubstitution_namesrK}rLh1h=h3}rM(h7]h5]h6]Usourceh*h8]h9]uU footnotesrN]rOUrefidsrP}rQ(j~]rRj{ah;]rSh/aj9]rTj6aj]rUjaj[]rVjXah]rWjaj]rXjauub.PKYDDA?G+,+,Fcelery-2.1-archived/.doctrees/reference/celery.loaders.default.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X0celery.loaders.default.Loader.read_configurationqX)celery.loaders.default.wanted_module_itemqX,celery.loaders.default.Loader.setup_settingsqX'default loader - celery.loaders.defaultq NXcelery.loaders.default.Loaderq X,celery.loaders.default.Loader.on_worker_initq Ucontentsq NuUsubstitution_defsq }qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh U%default-loader-celery-loaders-defaultqh h h h h UcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode q X^/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.loaders.default.rstq!q"}q#bUtagnameq$Usectionq%U attributesq&}q'(Udupnamesq(]Uclassesq)]Ubackrefsq*]Uidsq+]q,haUnamesq-]q.h auUlineq/KUdocumentq0hh]q1(cdocutils.nodes title q2)q3}q4(hX'Default Loader - celery.loaders.defaultq5hhhh"h$Utitleq6h&}q7(h(]h)]h*]h+]h-]uh/Kh0hh]q8cdocutils.nodes Text q9X'Default Loader - celery.loaders.defaultq:q;}q<(hh5hh3ubaubcdocutils.nodes target q=)q>}q?(hUhhhU q@h$UtargetqAh&}qB(h(]h+]qCXmodule-celery.loaders.defaultqDah*]Uismodh)]h-]uh/Kh0hh]ubcsphinx.addnodes index qE)qF}qG(hUhhhh@h$UindexqHh&}qI(h+]h*]h(]h)]h-]Uentries]qJ(UsingleqKXcelery.loaders.default (module)Xmodule-celery.loaders.defaultUtqLauh/Kh0hh]ubhE)qM}qN(hUhhhNh$hHh&}qO(h+]h*]h(]h)]h-]Uentries]qP(hKX(Loader (class in celery.loaders.default)h UtqQauh/Nh0hh]ubcsphinx.addnodes desc qR)qS}qT(hUhhhNh$UdescqUh&}qV(UnoindexqWUdomainqXXpyh+]h*]h(]h)]h-]UobjtypeqYXclassqZUdesctypeq[hZuh/Nh0hh]q\(csphinx.addnodes desc_signature q])q^}q_(hXLoaderq`hhShU qah$Udesc_signatureqbh&}qc(h+]qdh aUmoduleqeh Xcelery.loaders.defaultqfqg}qhbh*]h(]h)]h-]qih aUfullnameqjh`UclassqkUUfirstqluh/Nh0hh]qm(csphinx.addnodes desc_annotation qn)qo}qp(hXclass hh^hhah$Udesc_annotationqqh&}qr(h(]h)]h*]h+]h-]uh/Nh0hh]qsh9Xclass qtqu}qv(hUhhoubaubcsphinx.addnodes desc_addname qw)qx}qy(hXcelery.loaders.default.hh^hhah$U desc_addnameqzh&}q{(h(]h)]h*]h+]h-]uh/Nh0hh]q|h9Xcelery.loaders.default.q}q~}q(hUhhxubaubcsphinx.addnodes desc_name q)q}q(hh`hh^hhah$U desc_nameqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9XLoaderqq}q(hUhhubaubeubcsphinx.addnodes desc_content q)q}q(hUhhShhah$U desc_contentqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]q(cdocutils.nodes paragraph q)q}q(hXThe default loader.qhhhXy/var/build/user_builds/celery/checkouts/2.1-archived/celery/loaders/default.py:docstring of celery.loaders.default.Loaderqh$U paragraphqh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]qh9XThe default loader.qq}q(hhhhubaubh)q}q(hXSee the FAQ for example usage.qhhhhh$hh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]qh9XSee the FAQ for example usage.qq}q(hhhhubaubhE)q}q(hUhhhX/var/build/user_builds/celery/checkouts/2.1-archived/celery/loaders/default.py:docstring of celery.loaders.default.Loader.on_worker_initqh$hHh&}q(h+]h*]h(]h)]h-]Uentries]q(hKX7on_worker_init() (celery.loaders.default.Loader method)h Utqauh/Nh0hh]ubhR)q}q(hUhhhhh$hUh&}q(hWhXXpyh+]h*]h(]h)]h-]hYXmethodqh[huh/Nh0hh]q(h])q}q(hXLoader.on_worker_init()hhhhah$hbh&}q(h+]qh aheh Xcelery.loaders.defaultqq}qbh*]h(]h)]h-]qh ahjXLoader.on_worker_inithkh`hluh/Nh0hh]q(h)q}q(hXon_worker_inithhhhah$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]qh9Xon_worker_initqq}q(hUhhubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhhhhah$Udesc_parameterlistqh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubh)q}q(hUhhhhah$hh&}q(h(]h)]h*]h+]h-]uh/Nh0hh]q(h)q}q(hXQImports modules at worker init so tasks can be registered and used by the worked.qhhhhh$hh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]qh9XQImports modules at worker init so tasks can be registered and used by the worked.q˅q}q(hhhhubaubh)q}q(hXRThe list of modules to import is taken from the :setting:`CELERY_IMPORTS` setting.hhhhh$hh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]q(h9X0The list of modules to import is taken from the q҅q}q(hX0The list of modules to import is taken from the hhubcsphinx.addnodes pending_xref q)q}q(hX:setting:`CELERY_IMPORTS`qhhhNh$U pending_xrefqh&}q(UreftypeXsettingUrefwarnqۉU reftargetqXCELERY_IMPORTSU refdomainXstdqh+]h*]U refexplicith(]h)]h-]UrefdocqX reference/celery.loaders.defaultquh/Nh]qcdocutils.nodes literal q)q}q(hhh&}q(h(]h)]q(UxrefqhX std-settingqeh*]h+]h-]uhhh]qh9XCELERY_IMPORTSq酁q}q(hUhhubah$Uliteralqubaubh9X setting.q텁q}q(hX setting.hhubeubeubeubhE)q}q(hUhhhX/var/build/user_builds/celery/checkouts/2.1-archived/celery/loaders/default.py:docstring of celery.loaders.default.Loader.read_configurationqh$hHh&}q(h+]h*]h(]h)]h-]Uentries]q(hKX;read_configuration() (celery.loaders.default.Loader method)hUtqauh/Nh0hh]ubhR)q}q(hUhhhhh$hUh&}q(hWhXXpyh+]h*]h(]h)]h-]hYXmethodqh[huh/Nh0hh]q(h])q}q(hXLoader.read_configuration()hhhhah$hbh&}q(h+]qhaheh Xcelery.loaders.defaultqr}rbh*]h(]h)]h-]rhahjXLoader.read_configurationhkh`hluh/Nh0hh]r(h)r}r(hXread_configurationhhhhah$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9Xread_configurationrr }r (hUhjubaubh)r }r (hUhhhhah$hh&}r (h(]h)]h*]h+]h-]uh/Nh0hh]ubeubh)r}r(hUhhhhah$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh)r}r(hXpRead configuration from ``celeryconfig.py`` and configure celery and Django so it can be used by regular Python.hjhhh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]r(h9XRead configuration from rr}r(hXRead configuration from hjubh)r}r(hX``celeryconfig.py``h&}r(h(]h)]h*]h+]h-]uhjh]rh9Xceleryconfig.pyrr}r(hUhjubah$hubh9XE and configure celery and Django so it can be used by regular Python.r r!}r"(hXE and configure celery and Django so it can be used by regular Python.hjubeubaubeubhE)r#}r$(hUhhhNh$hHh&}r%(h+]h*]h(]h)]h-]Uentries]r&(hKX7setup_settings() (celery.loaders.default.Loader method)hUtr'auh/Nh0hh]ubhR)r(}r)(hUhhhNh$hUh&}r*(hWhXXpyh+]h*]h(]h)]h-]hYXmethodr+h[j+uh/Nh0hh]r,(h])r-}r.(hX#Loader.setup_settings(settingsdict)r/hj(hhah$hbh&}r0(h+]r1haheh Xcelery.loaders.defaultr2r3}r4bh*]h(]h)]h-]r5hahjXLoader.setup_settingshkh`hluh/Nh0hh]r6(h)r7}r8(hXsetup_settingshj-hhah$hh&}r9(h(]h)]h*]h+]h-]uh/Nh0hh]r:h9Xsetup_settingsr;r<}r=(hUhj7ubaubh)r>}r?(hUhj-hhah$hh&}r@(h(]h)]h*]h+]h-]uh/Nh0hh]rAcsphinx.addnodes desc_parameter rB)rC}rD(hX settingsdicth&}rE(h(]h)]h*]h+]h-]uhj>h]rFh9X settingsdictrGrH}rI(hUhjCubah$Udesc_parameterrJubaubeubh)rK}rL(hUhj(hhah$hh&}rM(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubeubeubhE)rN}rO(hUhhhNh$hHh&}rP(h+]h*]h(]h)]h-]Uentries]rQ(hKX7wanted_module_item() (in module celery.loaders.default)hUtrRauh/Nh0hh]ubhR)rS}rT(hUhhhNh$hUh&}rU(hWhXXpyh+]h*]h(]h)]h-]hYXfunctionrVh[jVuh/Nh0hh]rW(h])rX}rY(hXwanted_module_item(item)rZhjShhah$hbh&}r[(h+]r\haheh Xcelery.loaders.defaultr]r^}r_bh*]h(]h)]h-]r`hahjXwanted_module_itemrahkUhluh/Nh0hh]rb(hw)rc}rd(hXcelery.loaders.default.hjXhhah$hzh&}re(h(]h)]h*]h+]h-]uh/Nh0hh]rfh9Xcelery.loaders.default.rgrh}ri(hUhjcubaubh)rj}rk(hjahjXhhah$hh&}rl(h(]h)]h*]h+]h-]uh/Nh0hh]rmh9Xwanted_module_itemrnro}rp(hUhjjubaubh)rq}rr(hUhjXhhah$hh&}rs(h(]h)]h*]h+]h-]uh/Nh0hh]rtjB)ru}rv(hXitemh&}rw(h(]h)]h*]h+]h-]uhjqh]rxh9Xitemryrz}r{(hUhjuubah$jJubaubeubh)r|}r}(hUhjShhah$hh&}r~(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh0hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh&}r(h(]UlevelKh+]h*]Usourceh@h)]h-]UlineKUtypeUINFOruh]rh)r}r(hUh&}r(h(]h)]h*]h+]h-]uhjh]rh9XCHyperlink target "module-celery.loaders.default" is not referenced.rr}r(hUhjubah$hubah$Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh6NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerU^/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.loaders.default.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]rUfile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhjXhj-hhh h^hDh>h hhcdocutils.nodes topic r)r}r(hUhhhh"h$Utopicrh&}r(h(]h)]r(UcontentsrUlocalreh*]h+]rhah-]rh auh/Kh0hh]rcdocutils.nodes pending r)r}r(hX.. contents:: :local:hjU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh$Upendingrh&}r(h(]h)]h*]h+]h-]uh]ubaubuUsubstitution_namesr}rh$h0h&}r(h(]h+]h*]Usourceh"h)]h-]uU footnotesr]r Urefidsr }r ub.PKYDD;%nn@celery-2.1-archived/.doctrees/reference/celery.task.http.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery.task.http.URL.post_asyncqX(celery.task.http.HttpDispatch.user_agentqUcontentsqNX%celery.task.http.HttpDispatch.timeoutq X&celery.task.http.HttpDispatch.dispatchq Xcelery.task.http.utf8dictq Xcelery.task.http.maybe_utf8q X&celery.task.http.HttpDispatchTask.nameq X%celery.task.http.HttpDispatchTask.urlqXcelery.task.http.HttpDispatchqX(celery.task.http.HttpDispatchTask.methodqX!celery.task.http.extract_responseqX%celery.task.http.InvalidResponseErrorqX!celery.task.http.MutableURL.queryqX#celery.task.http.UnknownStatusErrorqX*celery.task.http.HttpDispatch.http_headersqX%celery.task.http.HttpDispatchTask.runqXcelery.task.http.URL.get_asyncqXcelery.task.http.URL.dispatcherqX&http callback tasks - celery.task.httpqNXcelery.task.http.MutableURLqX!celery.task.http.HttpDispatchTaskqX*celery.task.http.HttpDispatch.make_requestqXcelery.task.http.URLqX#celery.task.http.RemoteExecuteErrorquUsubstitution_defsq}q Uparse_messagesq!]q"Ucurrent_sourceq#NU decorationq$NUautofootnote_startq%KUnameidsq&}q'(hhhhhUcontentsq(h h h h h h h h h h hhhhhhhhhhhhhhhhhhhhhhhU$http-callback-tasks-celery-task-httpq)hhhhhhhhhhuUchildrenq*]q+cdocutils.nodes section q,)q-}q.(U rawsourceq/UUparentq0hUsourceq1cdocutils.nodes reprunicode q2XX/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.task.http.rstq3q4}q5bUtagnameq6Usectionq7U attributesq8}q9(Udupnamesq:]Uclassesq;]Ubackrefsq<]Uidsq=]q>h)aUnamesq?]q@hauUlineqAKUdocumentqBhh*]qC(cdocutils.nodes title qD)qE}qF(h/X&HTTP Callback Tasks - celery.task.httpqGh0h-h1h4h6UtitleqHh8}qI(h:]h;]h<]h=]h?]uhAKhBhh*]qJcdocutils.nodes Text qKX&HTTP Callback Tasks - celery.task.httpqLqM}qN(h/hGh0hEubaubcdocutils.nodes target qO)qP}qQ(h/Uh0h-h1U qRh6UtargetqSh8}qT(h:]h=]qUXmodule-celery.task.httpqVah<]Uismodh;]h?]uhAKhBhh*]ubcsphinx.addnodes index qW)qX}qY(h/Uh0h-h1hRh6UindexqZh8}q[(h=]h<]h:]h;]h?]Uentries]q\(Usingleq]Xcelery.task.http (module)Xmodule-celery.task.httpUtq^auhAKhBhh*]ubhW)q_}q`(h/Uh0h-h1Nh6hZh8}qa(h=]h<]h:]h;]h?]Uentries]qb(h]X(HttpDispatch (class in celery.task.http)hUtqcauhANhBhh*]ubcsphinx.addnodes desc qd)qe}qf(h/Uh0h-h1Nh6Udescqgh8}qh(UnoindexqiUdomainqjXpyh=]h<]h:]h;]h?]UobjtypeqkXclassqlUdesctypeqmhluhANhBhh*]qn(csphinx.addnodes desc_signature qo)qp}qq(h/X.HttpDispatch(url, method, task_kwargs, logger)h0heh1U qrh6Udesc_signatureqsh8}qt(h=]quhaUmoduleqvh2Xcelery.task.httpqwqx}qybh<]h:]h;]h?]qzhaUfullnameq{X HttpDispatchq|Uclassq}UUfirstq~uhANhBhh*]q(csphinx.addnodes desc_annotation q)q}q(h/Xclass h0hph1hrh6Udesc_annotationqh8}q(h:]h;]h<]h=]h?]uhANhBhh*]qhKXclass qq}q(h/Uh0hubaubcsphinx.addnodes desc_addname q)q}q(h/Xcelery.task.http.h0hph1hrh6U desc_addnameqh8}q(h:]h;]h<]h=]h?]uhANhBhh*]qhKXcelery.task.http.qq}q(h/Uh0hubaubcsphinx.addnodes desc_name q)q}q(h/h|h0hph1hrh6U desc_nameqh8}q(h:]h;]h<]h=]h?]uhANhBhh*]qhKX HttpDispatchqq}q(h/Uh0hubaubcsphinx.addnodes desc_parameterlist q)q}q(h/Uh0hph1hrh6Udesc_parameterlistqh8}q(h:]h;]h<]h=]h?]uhANhBhh*]q(csphinx.addnodes desc_parameter q)q}q(h/Xurlh8}q(h:]h;]h<]h=]h?]uh0hh*]qhKXurlqq}q(h/Uh0hubah6Udesc_parameterqubh)q}q(h/Xmethodh8}q(h:]h;]h<]h=]h?]uh0hh*]qhKXmethodqq}q(h/Uh0hubah6hubh)q}q(h/X task_kwargsh8}q(h:]h;]h<]h=]h?]uh0hh*]qhKX task_kwargsqq}q(h/Uh0hubah6hubh)q}q(h/Xloggerh8}q(h:]h;]h<]h=]h?]uh0hh*]qhKXloggerqq}q(h/Uh0hubah6hubeubeubcsphinx.addnodes desc_content q)q}q(h/Uh0heh1hrh6U desc_contentqh8}q(h:]h;]h<]h=]h?]uhANhBhh*]q(cdocutils.nodes paragraph q)q}q(h/X3Make task HTTP request and collect the task result.qh0hh1Xs/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.HttpDispatchqh6U paragraphqh8}q(h:]h;]h<]h=]h?]uhAKhBhh*]qhKX3Make task HTTP request and collect the task result.qͅq}q(h/hh0hubaubcdocutils.nodes field_list q)q}q(h/Uh0hh1Nh6U field_listqh8}q(h:]h;]h<]h=]h?]uhANhBhh*]qcdocutils.nodes field q)q}q(h/Uh8}q(h:]h;]h<]h=]h?]uh0hh*]q(cdocutils.nodes field_name q)q}q(h/Uh8}q(h:]h;]h<]h=]h?]uh0hh*]qhKX Parametersqq}q(h/Uh0hubah6U field_namequbcdocutils.nodes field_body q)q}q(h/Uh8}q(h:]h;]h<]h=]h?]uh0hh*]qcdocutils.nodes bullet_list q)q}q(h/Uh8}q(h:]h;]h<]h=]h?]uh0hh*]q(cdocutils.nodes list_item q)q}q(h/Uh8}q(h:]h;]h<]h=]h?]uh0hh*]qh)q}q(h/Uh8}q(h:]h;]h<]h=]h?]uh0hh*]q(cdocutils.nodes strong q)q}q(h/Xurlh8}q(h:]h;]h<]h=]h?]uh0hh*]qhKXurlqq}q(h/Uh0hubah6UstrongqubhKX -- rr}r(h/Uh0hubhKXThe URL to request.rr}r(h/XThe URL to request.h0hubeh6hubah6U list_itemrubh)r}r(h/Uh8}r (h:]h;]h<]h=]h?]uh0hh*]r h)r }r (h/Uh8}r (h:]h;]h<]h=]h?]uh0jh*]r(h)r}r(h/Xmethodh8}r(h:]h;]h<]h=]h?]uh0j h*]rhKXmethodrr}r(h/Uh0jubah6hubhKX -- rr}r(h/Uh0j ubhKX2HTTP method used. Currently supported methods are rr}r(h/X2HTTP method used. Currently supported methods are h0j ubcdocutils.nodes literal r)r}r(h/X``GET``h8}r(h:]h;]h<]h=]h?]uh0j h*]r hKXGETr!r"}r#(h/Uh0jubah6Uliteralr$ubhKX and r%r&}r'(h/X and h0j ubj)r(}r)(h/X``POST``h8}r*(h:]h;]h<]h=]h?]uh0j h*]r+hKXPOSTr,r-}r.(h/Uh0j(ubah6j$ubhKX.r/}r0(h/X.h0j ubeh6hubah6jubh)r1}r2(h/Uh8}r3(h:]h;]h<]h=]h?]uh0hh*]r4h)r5}r6(h/Uh8}r7(h:]h;]h<]h=]h?]uh0j1h*]r8(h)r9}r:(h/X task_kwargsh8}r;(h:]h;]h<]h=]h?]uh0j5h*]r<hKX task_kwargsr=r>}r?(h/Uh0j9ubah6hubhKX -- r@rA}rB(h/Uh0j5ubhKXTask keyword arguments.rCrD}rE(h/XTask keyword arguments.h0j5ubeh6hubah6jubh)rF}rG(h/Uh8}rH(h:]h;]h<]h=]h?]uh0hh*]rIh)rJ}rK(h/Uh8}rL(h:]h;]h<]h=]h?]uh0jFh*]rM(h)rN}rO(h/Xloggerh8}rP(h:]h;]h<]h=]h?]uh0jJh*]rQhKXloggerrRrS}rT(h/Uh0jNubah6hubhKX -- rUrV}rW(h/Uh0jJubhKX%Logger used for user/system feedback.rXrY}rZ(h/X%Logger used for user/system feedback.h0jJubeh6hubah6jubeh6U bullet_listr[ubah6U field_bodyr\ubeh6Ufieldr]ubaubhW)r^}r_(h/Uh0hh1X|/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.HttpDispatch.dispatchr`h6hZh8}ra(h=]h<]h:]h;]h?]Uentries]rb(h]X1dispatch() (celery.task.http.HttpDispatch method)h UtrcauhANhBhh*]ubhd)rd}re(h/Uh0hh1j`h6hgh8}rf(hihjXpyh=]h<]h:]h;]h?]hkXmethodrghmjguhANhBhh*]rh(ho)ri}rj(h/XHttpDispatch.dispatch()h0jdh1hrh6hsh8}rk(h=]rlh ahvh2Xcelery.task.httprmrn}robh<]h:]h;]h?]rph ah{XHttpDispatch.dispatchh}h|h~uhANhBhh*]rq(h)rr}rs(h/Xdispatchh0jih1hrh6hh8}rt(h:]h;]h<]h=]h?]uhANhBhh*]ruhKXdispatchrvrw}rx(h/Uh0jrubaubh)ry}rz(h/Uh0jih1hrh6hh8}r{(h:]h;]h<]h=]h?]uhANhBhh*]ubeubh)r|}r}(h/Uh0jdh1hrh6hh8}r~(h:]h;]h<]h=]h?]uhANhBhh*]rh)r}r(h/X$Dispatch callback and return result.rh0j|h1j`h6hh8}r(h:]h;]h<]h=]h?]uhAKhBhh*]rhKX$Dispatch callback and return result.rr}r(h/jh0jubaubaubeubhW)r}r(h/Uh0hh1Nh6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]X6http_headers (celery.task.http.HttpDispatch attribute)hUtrauhANhBhh*]ubhd)r}r(h/Uh0hh1Nh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkX attributerhmjuhANhBhh*]r(ho)r}r(h/XHttpDispatch.http_headersh0jh1hrh6hsh8}r(h=]rhahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rhah{XHttpDispatch.http_headersh}h|h~uhANhBhh*]rh)r}r(h/X http_headersh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKX http_headersrr}r(h/Uh0jubaubaubh)r}r(h/Uh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]ubeubhW)r}r(h/Uh0hh1X/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.HttpDispatch.make_requestrh6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]X5make_request() (celery.task.http.HttpDispatch method)hUtrauhANhBhh*]ubhd)r}r(h/Uh0hh1jh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkXmethodrhmjuhANhBhh*]r(ho)r}r(h/X.HttpDispatch.make_request(url, method, params)h0jh1hrh6hsh8}r(h=]rhahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rhah{XHttpDispatch.make_requesth}h|h~uhANhBhh*]r(h)r}r(h/X make_requesth0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKX make_requestrr}r(h/Uh0jubaubh)r}r(h/Uh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]r(h)r}r(h/Xurlh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKXurlrr}r(h/Uh0jubah6hubh)r}r(h/Xmethodh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKXmethodrr}r(h/Uh0jubah6hubh)r}r(h/Xparamsh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKXparamsrr}r(h/Uh0jubah6hubeubeubh)r}r(h/Uh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rh)r}r(h/X/Makes an HTTP request and returns the response.rh0jh1jh6hh8}r(h:]h;]h<]h=]h?]uhAKhBhh*]rhKX/Makes an HTTP request and returns the response.rr}r(h/jh0jubaubaubeubhW)r}r(h/Uh0hh1Nh6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]X1timeout (celery.task.http.HttpDispatch attribute)h UtrauhANhBhh*]ubhd)r}r(h/Uh0hh1Nh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkX attributerhmjuhANhBhh*]r(ho)r}r(h/XHttpDispatch.timeouth0jh1U rh6hsh8}r(h=]rh ahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rh ah{XHttpDispatch.timeouth}h|h~uhANhBhh*]r(h)r}r(h/Xtimeouth0jh1jh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXtimeoutrr}r(h/Uh0jubaubh)r}r(h/X = 5h0jh1jh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKX = 5rr}r(h/Uh0jubaubeubh)r}r(h/Uh0jh1jh6hh8}r (h:]h;]h<]h=]h?]uhANhBhh*]ubeubhW)r }r (h/Uh0hh1Nh6hZh8}r (h=]h<]h:]h;]h?]Uentries]r (h]X4user_agent (celery.task.http.HttpDispatch attribute)hUtrauhANhBhh*]ubhd)r}r(h/Uh0hh1Nh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkX attributerhmjuhANhBhh*]r(ho)r}r(h/XHttpDispatch.user_agenth0jh1jh6hsh8}r(h=]rhahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rhah{XHttpDispatch.user_agenth}h|h~uhANhBhh*]r(h)r}r(h/X user_agenth0jh1jh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]r hKX user_agentr!r"}r#(h/Uh0jubaubh)r$}r%(h/X = 'celery/2.1.4'h0jh1jh6hh8}r&(h:]h;]h<]h=]h?]uhANhBhh*]r'hKX = 'celery/2.1.4'r(r)}r*(h/Uh0j$ubaubeubh)r+}r,(h/Uh0jh1jh6hh8}r-(h:]h;]h<]h=]h?]uhANhBhh*]ubeubeubeubhW)r.}r/(h/Uh0h-h1Nh6hZh8}r0(h=]h<]h:]h;]h?]Uentries]r1(h]X,HttpDispatchTask (class in celery.task.http)hUtr2auhANhBhh*]ubhd)r3}r4(h/Uh0h-h1Nh6hgh8}r5(hihjXpyh=]h<]h:]h;]h?]hkXclassr6hmj6uhANhBhh*]r7(ho)r8}r9(h/XHttpDispatchTaskr:h0j3h1hrh6hsh8}r;(h=]r<hahvh2Xcelery.task.httpr=r>}r?bh<]h:]h;]h?]r@hah{j:h}Uh~uhANhBhh*]rA(h)rB}rC(h/Xclass h0j8h1hrh6hh8}rD(h:]h;]h<]h=]h?]uhANhBhh*]rEhKXclass rFrG}rH(h/Uh0jBubaubh)rI}rJ(h/Xcelery.task.http.h0j8h1hrh6hh8}rK(h:]h;]h<]h=]h?]uhANhBhh*]rLhKXcelery.task.http.rMrN}rO(h/Uh0jIubaubh)rP}rQ(h/j:h0j8h1hrh6hh8}rR(h:]h;]h<]h=]h?]uhANhBhh*]rShKXHttpDispatchTaskrTrU}rV(h/Uh0jPubaubeubh)rW}rX(h/Uh0j3h1hrh6hh8}rY(h:]h;]h<]h=]h?]uhANhBhh*]rZ(h)r[}r\(h/XTask dispatching to an URL.r]h0jWh1Xw/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.HttpDispatchTaskr^h6hh8}r_(h:]h;]h<]h=]h?]uhAKhBhh*]r`hKXTask dispatching to an URL.rarb}rc(h/j]h0j[ubaubh)rd}re(h/Uh0jWh1Nh6hh8}rf(h:]h;]h<]h=]h?]uhANhBhh*]rgh)rh}ri(h/Uh8}rj(h:]h;]h<]h=]h?]uh0jdh*]rk(h)rl}rm(h/Uh8}rn(h:]h;]h<]h=]h?]uh0jhh*]rohKX Parametersrprq}rr(h/Uh0jlubah6hubh)rs}rt(h/Uh8}ru(h:]h;]h<]h=]h?]uh0jhh*]rvh)rw}rx(h/Uh8}ry(h:]h;]h<]h=]h?]uh0jsh*]rz(h)r{}r|(h/Uh8}r}(h:]h;]h<]h=]h?]uh0jwh*]r~h)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0j{h*]r(h)r}r(h/Xurlh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKXurlrr}r(h/Uh0jubah6hubhKX -- rr}r(h/Uh0jubhKX+The URL location of the HTTP callback task.rr}r(h/X+The URL location of the HTTP callback task.h0jubeh6hubah6jubh)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jwh*]rh)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jh*]r(h)r}r(h/Xmethodh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKXmethodrr}r(h/Uh0jubah6hubhKX -- rr}r(h/Uh0jubhKX5Method to use when dispatching the callback. Usually rr}r(h/X5Method to use when dispatching the callback. Usually h0jubj)r}r(h/X``GET``h8}r(h:]h;]h<]h=]h?]uh0jh*]rhKXGETrr}r(h/Uh0jubah6j$ubhKX or rr}r(h/X or h0jubj)r}r(h/X``POST``h8}r(h:]h;]h<]h=]h?]uh0jh*]rhKXPOSTrr}r(h/Uh0jubah6j$ubhKX.r}r(h/X.h0jubeh6hubah6jubh)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jwh*]rh)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jh*]r(h)r}r(h/X**kwargsh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKX**kwargsrr}r(h/Uh0jubah6hubhKX -- rr}r(h/Uh0jubhKX2Keyword arguments to pass on to the HTTP callback.rr}r(h/X2Keyword arguments to pass on to the HTTP callback.h0jubeh6hubah6jubeh6j[ubah6j\ubeh6j]ubaubhW)r}r(h/Uh0jWh1j^h6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]X1url (celery.task.http.HttpDispatchTask attribute)hUtrauhANhBhh*]ubhd)r}r(h/Uh0jWh1j^h6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkX attributerhmjuhANhBhh*]r(ho)r}r(h/Xurlrh0jh1j^h6hsh8}r(h=]rhahvXcelery.task.httprh<]h:]h;]h?]rhah{XHttpDispatchTask.urlh}j:h~uhAK hBhh*]rh)r}r(h/jh0jh1j^h6hh8}r(h:]h;]h<]h=]h?]uhAK hBhh*]rhKXurlrr}r(h/Uh0jubaubaubh)r}r(h/Uh0jh1j^h6hh8}r(h:]h;]h<]h=]h?]uhAK hBhh*]rh)r}r(h/XIf this is set, this is used as the default URL for requests. Default is to require the user of the task to supply the url as an argument, as this attribute is intended for subclasses.rh0jh1j^h6hh8}r(h:]h;]h<]h=]h?]uhAK hBhh*]rhKXIf this is set, this is used as the default URL for requests. Default is to require the user of the task to supply the url as an argument, as this attribute is intended for subclasses.rr}r(h/jh0jubaubaubeubhW)r}r(h/Uh0jWh1j^h6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]X4method (celery.task.http.HttpDispatchTask attribute)hUtrauhANhBhh*]ubhd)r}r(h/Uh0jWh1j^h6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkX attributerhmjuhANhBhh*]r(ho)r}r(h/Xmethodrh0jh1hRh6hsh8}r(h=]rhahvjh<]h:]h;]h?]rhah{XHttpDispatchTask.methodh}j:h~uhAKhBhh*]rh)r}r(h/jh0jh1hRh6hh8}r(h:]h;]h<]h=]h?]uhAKhBhh*]rhKXmethodrr}r (h/Uh0jubaubaubh)r }r (h/Uh0jh1hRh6hh8}r (h:]h;]h<]h=]h?]uhAKhBhh*]r h)r}r(h/XIf this is set, this is the default method used for requests. Default is to require the user of the task to supply the method as an argument, as this attribute is intended for subclasses.rh0j h1j^h6hh8}r(h:]h;]h<]h=]h?]uhAKhBhh*]rhKXIf this is set, this is the default method used for requests. Default is to require the user of the task to supply the method as an argument, as this attribute is intended for subclasses.rr}r(h/jh0jubaubaubeubhW)r}r(h/Uh0jWh1Nh6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]X4method (celery.task.http.HttpDispatchTask attribute)X(celery.task.http.HttpDispatchTask.methodUtrauhANhBhh*]ubhd)r}r(h/Uh0jWh1Nh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkX attributerhmjuhANhBhh*]r(ho)r }r!(h/XHttpDispatchTask.methodh0jh1jh6hsh8}r"(h=]hvh2Xcelery.task.httpr#r$}r%bh<]h:]h;]h?]h{XHttpDispatchTask.methodh}j:h~uhANhBhh*]r&(h)r'}r((h/Xmethodh0j h1jh6hh8}r)(h:]h;]h<]h=]h?]uhANhBhh*]r*hKXmethodr+r,}r-(h/Uh0j'ubaubh)r.}r/(h/X = Noneh0j h1jh6hh8}r0(h:]h;]h<]h=]h?]uhANhBhh*]r1hKX = Noner2r3}r4(h/Uh0j.ubaubeubh)r5}r6(h/Uh0jh1jh6hh8}r7(h:]h;]h<]h=]h?]uhANhBhh*]ubeubhW)r8}r9(h/Uh0jWh1Nh6hZh8}r:(h=]h<]h:]h;]h?]Uentries]r;(h]X2name (celery.task.http.HttpDispatchTask attribute)h Utr<auhANhBhh*]ubhd)r=}r>(h/Uh0jWh1Nh6hgh8}r?(hihjXpyh=]h<]h:]h;]h?]hkX attributer@hmj@uhANhBhh*]rA(ho)rB}rC(h/XHttpDispatchTask.nameh0j=h1jh6hsh8}rD(h=]rEh ahvh2Xcelery.task.httprFrG}rHbh<]h:]h;]h?]rIh ah{XHttpDispatchTask.nameh}j:h~uhANhBhh*]rJ(h)rK}rL(h/Xnameh0jBh1jh6hh8}rM(h:]h;]h<]h=]h?]uhANhBhh*]rNhKXnamerOrP}rQ(h/Uh0jKubaubh)rR}rS(h/X& = 'celery.task.http.HttpDispatchTask'h0jBh1jh6hh8}rT(h:]h;]h<]h=]h?]uhANhBhh*]rUhKX& = 'celery.task.http.HttpDispatchTask'rVrW}rX(h/Uh0jRubaubeubh)rY}rZ(h/Uh0j=h1jh6hh8}r[(h:]h;]h<]h=]h?]uhANhBhh*]ubeubhW)r\}r](h/Uh0jWh1Nh6hZh8}r^(h=]h<]h:]h;]h?]Uentries]r_(h]X0run() (celery.task.http.HttpDispatchTask method)hUtr`auhANhBhh*]ubhd)ra}rb(h/Uh0jWh1Nh6hgh8}rc(hihjXpyh=]h<]h:]h;]h?]hkXmethodrdhmjduhANhBhh*]re(ho)rf}rg(h/X6HttpDispatchTask.run(url=None, method='GET', **kwargs)h0jah1hrh6hsh8}rh(h=]rihahvh2Xcelery.task.httprjrk}rlbh<]h:]h;]h?]rmhah{XHttpDispatchTask.runh}j:h~uhANhBhh*]rn(h)ro}rp(h/Xrunh0jfh1hrh6hh8}rq(h:]h;]h<]h=]h?]uhANhBhh*]rrhKXrunrsrt}ru(h/Uh0joubaubh)rv}rw(h/Uh0jfh1hrh6hh8}rx(h:]h;]h<]h=]h?]uhANhBhh*]ry(h)rz}r{(h/Xurl=Noneh8}r|(h:]h;]h<]h=]h?]uh0jvh*]r}hKXurl=Noner~r}r(h/Uh0jzubah6hubh)r}r(h/X method='GET'h8}r(h:]h;]h<]h=]h?]uh0jvh*]rhKX method='GET'rr}r(h/Uh0jubah6hubh)r}r(h/X**kwargsh8}r(h:]h;]h<]h=]h?]uh0jvh*]rhKX**kwargsrr}r(h/Uh0jubah6hubeubeubh)r}r(h/Uh0jah1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]ubeubhW)r}r(h/Uh0jWh1Nh6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]X1url (celery.task.http.HttpDispatchTask attribute)X%celery.task.http.HttpDispatchTask.urlUtrauhANhBhh*]ubhd)r}r(h/Uh0jWh1Nh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkX attributerhmjuhANhBhh*]r(ho)r}r(h/XHttpDispatchTask.urlh0jh1jh6hsh8}r(h=]hvh2Xcelery.task.httprr}rbh<]h:]h;]h?]h{XHttpDispatchTask.urlh}j:h~uhANhBhh*]r(h)r}r(h/Xurlh0jh1jh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXurlrr}r(h/Uh0jubaubh)r}r(h/X = Noneh0jh1jh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKX = Nonerr}r(h/Uh0jubaubeubh)r}r(h/Uh0jh1jh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]ubeubeubeubhW)r}r(h/Uh0h-h1X{/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.InvalidResponseErrorrh6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]XInvalidResponseErrorrhUtrauhANhBhh*]ubhd)r}r(h/Uh0h-h1jh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkX exceptionrhmjuhANhBhh*]r(ho)r}r(h/jh0jh1hrh6hsh8}r(h=]rhahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rhah{jh}Uh~uhANhBhh*]r(h)r}r(h/X exception h0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKX exception rr}r(h/Uh0jubaubh)r}r(h/Xcelery.task.http.h0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXcelery.task.http.rr}r(h/Uh0jubaubh)r}r(h/jh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXInvalidResponseErrorrr}r(h/Uh0jubaubeubh)r}r(h/Uh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rh)r}r(h/X+The remote server gave an invalid response.rh0jh1jh6hh8}r(h:]h;]h<]h=]h?]uhAKhBhh*]rhKX+The remote server gave an invalid response.rr}r(h/jh0jubaubaubeubhW)r}r(h/Uh0h-h1Nh6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]X&MutableURL (class in celery.task.http)hUtrauhANhBhh*]ubhd)r}r(h/Uh0h-h1Nh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkXclassrhmjuhANhBhh*]r(ho)r}r(h/XMutableURL(url)h0jh1hrh6hsh8}r(h=]rhahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rhah{X MutableURLrh}Uh~uhANhBhh*]r(h)r}r(h/Xclass h0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXclass rr}r(h/Uh0jubaubh)r}r(h/Xcelery.task.http.h0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXcelery.task.http.r r }r (h/Uh0jubaubh)r }r (h/jh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKX MutableURLrr}r(h/Uh0j ubaubh)r}r(h/Uh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rh)r}r(h/Xurlh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKXurlrr}r(h/Uh0jubah6hubaubeubh)r}r(h/Uh0jh1hrh6hh8}r (h:]h;]h<]h=]h?]uhANhBhh*]r!(h)r"}r#(h/X+Object wrapping a Uniform Resource Locator.r$h0jh1Xq/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.MutableURLr%h6hh8}r&(h:]h;]h<]h=]h?]uhAKhBhh*]r'hKX+Object wrapping a Uniform Resource Locator.r(r)}r*(h/j$h0j"ubaubh)r+}r,(h/X~Supports editing the query parameter list. You can convert the object back to a string, the query will be properly urlencoded.r-h0jh1j%h6hh8}r.(h:]h;]h<]h=]h?]uhAKhBhh*]r/hKX~Supports editing the query parameter list. You can convert the object back to a string, the query will be properly urlencoded.r0r1}r2(h/j-h0j+ubaubh)r3}r4(h/XExamplesr5h0jh1j%h6hh8}r6(h:]h;]h<]h=]h?]uhAKhBhh*]r7hKXExamplesr8r9}r:(h/j5h0j3ubaubcdocutils.nodes doctest_block r;)r<}r=(h/X4>>> url = URL("http://www.google.com:6580/foo/bar?x=3&y=4#foo") >>> url.query {'x': '3', 'y': '4'} >>> str(url) 'http://www.google.com:6580/foo/bar?y=4&x=3#foo' >>> url.query["x"] = 10 >>> url.query.update({"George": "Costanza"}) >>> str(url) 'http://www.google.com:6580/foo/bar?y=4&x=10&George=Costanza#foo'h0jh1Nh6U doctest_blockr>h8}r?(U xml:spacer@UpreserverAh=]h<]h:]h;]h?]uhANhBhh*]rBhKX4>>> url = URL("http://www.google.com:6580/foo/bar?x=3&y=4#foo") >>> url.query {'x': '3', 'y': '4'} >>> str(url) 'http://www.google.com:6580/foo/bar?y=4&x=3#foo' >>> url.query["x"] = 10 >>> url.query.update({"George": "Costanza"}) >>> str(url) 'http://www.google.com:6580/foo/bar?y=4&x=10&George=Costanza#foo'rCrD}rE(h/Uh0j<ubaubhW)rF}rG(h/Uh0jh1Nh6hZh8}rH(h=]h<]h:]h;]h?]Uentries]rI(h]X-query (celery.task.http.MutableURL attribute)hUtrJauhANhBhh*]ubhd)rK}rL(h/Uh0jh1Nh6hgh8}rM(hihjXpyh=]h<]h:]h;]h?]hkX attributerNhmjNuhANhBhh*]rO(ho)rP}rQ(h/XMutableURL.queryh0jKh1hrh6hsh8}rR(h=]rShahvh2Xcelery.task.httprTrU}rVbh<]h:]h;]h?]rWhah{XMutableURL.queryh}jh~uhANhBhh*]rXh)rY}rZ(h/Xqueryh0jPh1hrh6hh8}r[(h:]h;]h<]h=]h?]uhANhBhh*]r\hKXqueryr]r^}r_(h/Uh0jYubaubaubh)r`}ra(h/Uh0jKh1hrh6hh8}rb(h:]h;]h<]h=]h?]uhANhBhh*]ubeubeubeubhW)rc}rd(h/Uh0h-h1Xy/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.RemoteExecuteErrorreh6hZh8}rf(h=]h<]h:]h;]h?]Uentries]rg(h]XRemoteExecuteErrorrhhUtriauhANhBhh*]ubhd)rj}rk(h/Uh0h-h1jeh6hgh8}rl(hihjXpyh=]h<]h:]h;]h?]hkX exceptionrmhmjmuhANhBhh*]rn(ho)ro}rp(h/jhh0jjh1hrh6hsh8}rq(h=]rrhahvh2Xcelery.task.httprsrt}rubh<]h:]h;]h?]rvhah{jhh}Uh~uhANhBhh*]rw(h)rx}ry(h/X exception h0joh1hrh6hh8}rz(h:]h;]h<]h=]h?]uhANhBhh*]r{hKX exception r|r}}r~(h/Uh0jxubaubh)r}r(h/Xcelery.task.http.h0joh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXcelery.task.http.rr}r(h/Uh0jubaubh)r}r(h/jhh0joh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXRemoteExecuteErrorrr}r(h/Uh0jubaubeubh)r}r(h/Uh0jjh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rh)r}r(h/X$The remote task gave a custom error.rh0jh1jeh6hh8}r(h:]h;]h<]h=]h?]uhAKhBhh*]rhKX$The remote task gave a custom error.rr}r(h/jh0jubaubaubeubhW)r}r(h/Uh0h-h1Nh6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]XURL (class in celery.task.http)hUtrauhANhBhh*]ubhd)r}r(h/Uh0h-h1Nh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkXclassrhmjuhANhBhh*]r(ho)r}r(h/XURL(url, dispatcher=None)h0jh1hrh6hsh8}r(h=]rhahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rhah{XURLrh}Uh~uhANhBhh*]r(h)r}r(h/Xclass h0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXclass rr}r(h/Uh0jubaubh)r}r(h/Xcelery.task.http.h0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXcelery.task.http.rr}r(h/Uh0jubaubh)r}r(h/jh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXURLrr}r(h/Uh0jubaubh)r}r(h/Uh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]r(h)r}r(h/Xurlh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKXurlrr}r(h/Uh0jubah6hubh)r}r(h/Xdispatcher=Noneh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKXdispatcher=Nonerr}r(h/Uh0jubah6hubeubeubh)r}r(h/Uh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]r(h)r}r(h/XHTTP Callback URLrh0jh1Xj/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.URLrh6hh8}r(h:]h;]h<]h=]h?]uhAKhBhh*]rhKXHTTP Callback URLrr}r(h/jh0jubaubh)r}r(h/X*Supports requesting an URL asynchronously.rh0jh1jh6hh8}r(h:]h;]h<]h=]h?]uhAKhBhh*]rhKX*Supports requesting an URL asynchronously.rr}r(h/jh0jubaubh)r}r(h/Uh0jh1Nh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rh)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jh*]r(h)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKX Parametersrr}r(h/Uh0jubah6hubh)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jh*]rh)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jh*]r(h)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jh*]rh)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jh*]r(h)r}r (h/Xurlh8}r (h:]h;]h<]h=]h?]uh0jh*]r hKXurlr r }r(h/Uh0jubah6hubhKX -- rr}r(h/Uh0jubhKXURL to request.rr}r(h/XURL to request.h0jubeh6hubah6jubh)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jh*]rh)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jh*]r(h)r}r(h/X dispatcherh8}r(h:]h;]h<]h=]h?]uh0jh*]r hKX dispatcherr!r"}r#(h/Uh0jubah6hubhKX -- r$r%}r&(h/Uh0jubhKX7Class used to dispatch the request. By default this is r'r(}r)(h/X7Class used to dispatch the request. By default this is h0jubcsphinx.addnodes pending_xref r*)r+}r,(h/X:class:`HttpDispatchTask`r-h0jh1Nh6U pending_xrefr.h8}r/(UreftypeXclassUrefwarnr0U reftargetr1XHttpDispatchTaskU refdomainXpyr2h=]h<]U refexplicith:]h;]h?]Urefdocr3Xreference/celery.task.httpr4Upy:classr5jU py:moduler6juhANh*]r7j)r8}r9(h/j-h8}r:(h:]h;]r;(Uxrefr<j2Xpy-classr=eh<]h=]h?]uh0j+h*]r>hKXHttpDispatchTaskr?r@}rA(h/Uh0j8ubah6j$ubaubhKX.rB}rC(h/X.h0jubeh6hubah6jubeh6j[ubah6j\ubeh6j]ubaubhW)rD}rE(h/Uh0jh1Uh6hZh8}rF(h=]h<]h:]h;]h?]Uentries]rG(h]X+dispatcher (celery.task.http.URL attribute)hUtrHauhANhBhh*]ubhd)rI}rJ(h/Uh0jh1Uh6hgh8}rK(hihjXpyh=]h<]h:]h;]h?]hkX attributerLhmjLuhANhBhh*]rM(ho)rN}rO(h/XURL.dispatcherh0jIh1hrh6hsh8}rP(h=]rQhahvh2Xcelery.task.httprRrS}rTbh<]h:]h;]h?]rUhah{XURL.dispatcherh}jh~uhANhBhh*]rVh)rW}rX(h/X dispatcherh0jNh1hrh6hh8}rY(h:]h;]h<]h=]h?]uhANhBhh*]rZhKX dispatcherr[r\}r](h/Uh0jWubaubaubh)r^}r_(h/Uh0jIh1hrh6hh8}r`(h:]h;]h<]h=]h?]uhANhBhh*]rah)rb}rc(h/X"alias of :class:`HttpDispatchTask`h0j^h1Uh6hh8}rd(h:]h;]h<]h=]h?]uhAKhBhh*]re(hKX alias of rfrg}rh(h/X alias of h0jbubj*)ri}rj(h/X:class:`HttpDispatchTask`rkh0jbh1Nh6j.h8}rl(UreftypeXclassj0j1XHttpDispatchTaskU refdomainXpyrmh=]h<]U refexplicith:]h;]h?]j3j4j5jj6juhANh*]rnj)ro}rp(h/jkh8}rq(h:]h;]rr(j<jmXpy-classrseh<]h=]h?]uh0jih*]rthKXHttpDispatchTaskrurv}rw(h/Uh0joubah6j$ubaubeubaubeubhW)rx}ry(h/Uh0jh1Nh6hZh8}rz(h=]h<]h:]h;]h?]Uentries]r{(h]X)get_async() (celery.task.http.URL method)hUtr|auhANhBhh*]ubhd)r}}r~(h/Uh0jh1Nh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkXmethodrhmjuhANhBhh*]r(ho)r}r(h/XURL.get_async(**kwargs)h0j}h1hrh6hsh8}r(h=]rhahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rhah{X URL.get_asynch}jh~uhANhBhh*]r(h)r}r(h/X get_asynch0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKX get_asyncrr}r(h/Uh0jubaubh)r}r(h/Uh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rh)r}r(h/X**kwargsh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKX**kwargsrr}r(h/Uh0jubah6hubaubeubh)r}r(h/Uh0j}h1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]ubeubhW)r}r(h/Uh0jh1Nh6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]X*post_async() (celery.task.http.URL method)hUtrauhANhBhh*]ubhd)r}r(h/Uh0jh1Nh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkXmethodrhmjuhANhBhh*]r(ho)r}r(h/XURL.post_async(**kwargs)rh0jh1hrh6hsh8}r(h=]rhahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rhah{XURL.post_asynch}jh~uhANhBhh*]r(h)r}r(h/X post_asynch0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKX post_asyncrr}r(h/Uh0jubaubh)r}r(h/Uh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rh)r}r(h/X**kwargsh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKX**kwargsrr}r(h/Uh0jubah6hubaubeubh)r}r(h/Uh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]ubeubeubeubhW)r}r(h/Uh0h-h1Xy/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.UnknownStatusErrorrh6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]XUnknownStatusErrorrhUtrauhANhBhh*]ubhd)r}r(h/Uh0h-h1jh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkX exceptionrhmjuhANhBhh*]r(ho)r}r(h/jh0jh1hrh6hsh8}r(h=]rhahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rhah{jh}Uh~uhANhBhh*]r(h)r}r(h/X exception h0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKX exception rr}r(h/Uh0jubaubh)r}r(h/Xcelery.task.http.h0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXcelery.task.http.rr}r(h/Uh0jubaubh)r}r(h/jh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXUnknownStatusErrorrr}r(h/Uh0jubaubeubh)r}r(h/Uh0jh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rh)r}r(h/X)The remote server gave an unknown status.rh0jh1jh6hh8}r(h:]h;]h<]h=]h?]uhAKhBhh*]rhKX)The remote server gave an unknown status.rr}r(h/jh0jubaubaubeubhW)r}r(h/Uh0h-h1Xw/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.extract_responserh6hZh8}r(h=]h<]h:]h;]h?]Uentries]r(h]X/extract_response() (in module celery.task.http)hUtrauhANhBhh*]ubhd)r}r(h/Uh0h-h1jh6hgh8}r(hihjXpyh=]h<]h:]h;]h?]hkXfunctionrhmjuhANhBhh*]r (ho)r }r (h/Xextract_response(raw_response)h0jh1hrh6hsh8}r (h=]r hahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rhah{Xextract_responserh}Uh~uhANhBhh*]r(h)r}r(h/Xcelery.task.http.h0j h1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXcelery.task.http.rr}r(h/Uh0jubaubh)r}r(h/jh0j h1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXextract_responserr }r!(h/Uh0jubaubh)r"}r#(h/Uh0j h1hrh6hh8}r$(h:]h;]h<]h=]h?]uhANhBhh*]r%h)r&}r'(h/X raw_responseh8}r((h:]h;]h<]h=]h?]uh0j"h*]r)hKX raw_responser*r+}r,(h/Uh0j&ubah6hubaubeubh)r-}r.(h/Uh0jh1hrh6hh8}r/(h:]h;]h<]h=]h?]uhANhBhh*]r0h)r1}r2(h/X3Extract the response text from a raw JSON response.r3h0j-h1jh6hh8}r4(h:]h;]h<]h=]h?]uhAKhBhh*]r5hKX3Extract the response text from a raw JSON response.r6r7}r8(h/j3h0j1ubaubaubeubhW)r9}r:(h/Uh0h-h1Xq/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.maybe_utf8r;h6hZh8}r<(h=]h<]h:]h;]h?]Uentries]r=(h]X)maybe_utf8() (in module celery.task.http)h Utr>auhANhBhh*]ubhd)r?}r@(h/Uh0h-h1j;h6hgh8}rA(hihjXpyh=]h<]h:]h;]h?]hkXfunctionrBhmjBuhANhBhh*]rC(ho)rD}rE(h/Xmaybe_utf8(value)h0j?h1hrh6hsh8}rF(h=]rGh ahvh2Xcelery.task.httprHrI}rJbh<]h:]h;]h?]rKh ah{X maybe_utf8rLh}Uh~uhANhBhh*]rM(h)rN}rO(h/Xcelery.task.http.h0jDh1hrh6hh8}rP(h:]h;]h<]h=]h?]uhANhBhh*]rQhKXcelery.task.http.rRrS}rT(h/Uh0jNubaubh)rU}rV(h/jLh0jDh1hrh6hh8}rW(h:]h;]h<]h=]h?]uhANhBhh*]rXhKX maybe_utf8rYrZ}r[(h/Uh0jUubaubh)r\}r](h/Uh0jDh1hrh6hh8}r^(h:]h;]h<]h=]h?]uhANhBhh*]r_h)r`}ra(h/Xvalueh8}rb(h:]h;]h<]h=]h?]uh0j\h*]rchKXvaluerdre}rf(h/Uh0j`ubah6hubaubeubh)rg}rh(h/Uh0j?h1hrh6hh8}ri(h:]h;]h<]h=]h?]uhANhBhh*]rjh)rk}rl(h/X8Encode utf-8 value, only if the value is actually utf-8.rmh0jgh1j;h6hh8}rn(h:]h;]h<]h=]h?]uhAKhBhh*]rohKX8Encode utf-8 value, only if the value is actually utf-8.rprq}rr(h/jmh0jkubaubaubeubhW)rs}rt(h/Uh0h-h1Xo/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/http.py:docstring of celery.task.http.utf8dictruh6hZh8}rv(h=]h<]h:]h;]h?]Uentries]rw(h]X'utf8dict() (in module celery.task.http)h UtrxauhANhBhh*]ubhd)ry}rz(h/Uh0h-h1juh6hgh8}r{(hihjXpyh=]h<]h:]h;]h?]hkXfunctionr|hmj|uhANhBhh*]r}(ho)r~}r(h/X utf8dict(tup)rh0jyh1hrh6hsh8}r(h=]rh ahvh2Xcelery.task.httprr}rbh<]h:]h;]h?]rh ah{Xutf8dictrh}Uh~uhANhBhh*]r(h)r}r(h/Xcelery.task.http.h0j~h1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXcelery.task.http.rr}r(h/Uh0jubaubh)r}r(h/jh0j~h1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rhKXutf8dictrr}r(h/Uh0jubaubh)r}r(h/Uh0j~h1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rh)r}r(h/Xtuph8}r(h:]h;]h<]h=]h?]uh0jh*]rhKXtuprr}r(h/Uh0jubah6hubaubeubh)r}r(h/Uh0jyh1hrh6hh8}r(h:]h;]h<]h=]h?]uhANhBhh*]rh)r}r(h/XQWith a dict's items() tuple return a new dict with any utf-8 keys/values encoded.rh0jh1juh6hh8}r(h:]h;]h<]h=]h?]uhAKhBhh*]rhKXQWith a dict's items() tuple return a new dict with any utf-8 keys/values encoded.rr}r(h/jh0jubaubaubeubeubah/UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhBhU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h/Uh8}r(h:]UlevelKh=]h<]UsourcehRh;]h?]UlineKUtypeUINFOruh*]rh)r}r(h/Uh8}r(h:]h;]h<]h=]h?]uh0jh*]rhKX=Hyperlink target "module-celery.task.http" is not referenced.rr}r(h/Uh0jubah6hubah6Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhHNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcer UX/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.task.http.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhjh(cdocutils.nodes topic r)r }r!(h/Uh0h-h1h4h6Utopicr"h8}r#(h:]h;]r$(Ucontentsr%Ulocalr&eh<]h=]r'h(ah?]r(hauhAKhBhh*]r)cdocutils.nodes pending r*)r+}r,(h/X.. contents:: :local:h0j U transformr-cdocutils.transforms.parts Contents r.Udetailsr/}r0UlocalNsh6Upendingr1h8}r2(h:]h;]h<]h=]h?]uh*]ubaubh jh)h-h jih j~h jDh jBhjhhphjhj hVhPhjhjPhjhjhjfhjhjNhjhj8hjhjhjouUsubstitution_namesr3}r4h6hBh8}r5(h:]h=]h<]Usourceh4h;]h?]uU footnotesr6]r7Urefidsr8}r9ub.PKYDD1Qzll@celery-2.1-archived/.doctrees/reference/celery.task.base.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X2celery.task.base.Task.store_errors_even_if_ignoredqX"celery.task.base.Task.update_stateqX#celery.task.base.Task.exchange_typeqX#celery.task.base.Task.track_startedq Xcelery.task.base.Task.exchangeq X celery.task.base.Task.on_failureq X0celery.task.base.PeriodicTask.remaining_estimateq X!celery.task.base.Task.routing_keyq X celery.task.base.Task.on_successqX!defining tasks - celery.task.baseqNX/celery.task.base.PeriodicTask.timedelta_secondsqXcelery.task.base.Task.expiresqXcelery.task.base.Task.mandatoryqUcontentsqNX*celery.task.base.Task.establish_connectionqX'celery.task.base.PeriodicTask.run_everyqXcelery.task.base.PeriodicTaskqX$celery.task.base.PeriodicTask.is_dueqXcelery.task.base.Task.abstractqX&celery.task.base.PeriodicTask.relativeqX"celery.task.base.Task.get_consumerqX%celery.task.base.Task.error_whitelistqXcelery.task.base.Task.on_retryqX celery.task.base.Task.rate_limitqXcelery.task.base.Task.applyqX#celery.task.base.Task.get_publisherqXcelery.task.base.Task.subtaskq X"celery.task.base.Task.after_returnq!Xcelery.task.base.Task.runq"X celery.task.base.Task.serializerq#Xcelery.task.base.Task.executeq$X#celery.task.base.Task.delivery_modeq%X!celery.task.base.Task.max_retriesq&X!celery.task.base.Task.AsyncResultq'Xcelery.task.base.Task.nameq(Xcelery.task.base.Task.typeq)Xcelery.task.base.Task.delayq*X"celery.task.base.Task.autoregisterq+X#celery.task.base.Task.ignore_resultq,X-celery.task.base.Task.MaxRetriesExceededErrorq-Xcelery.task.base.Task.retryq.X'celery.task.base.Task.send_error_emailsq/Xcelery.task.base.TaskTypeq0Xcelery.task.base.Task.backendq1X)celery.task.base.Task.default_retry_delayq2Xcelery.task.base.Task.queueq3X celery.task.base.Task.get_loggerq4Xcelery.task.base.Taskq5Xcelery.task.base.Task.acks_lateq6X!celery.task.base.Task.apply_asyncq7uUsubstitution_defsq8}q9Uparse_messagesq:]q;Ucurrent_sourceqKUnameidsq?}q@(hhhhhhh h h h h h h h h h hhhUdefining-tasks-celery-task-baseqAhhhhhhhUcontentsqBhhhhhhhhhhhhhhhhhhhhhhhhh h h!h!h"h"h#h#h$h$h%h%h&h&h'h'h(h(h)h)h*h*h+h+h,h,h-h-h.h.h/h/h0h0h1h1h2h2h3h3h4h4h5h5h6h6h7h7uUchildrenqC]qDcdocutils.nodes section qE)qF}qG(U rawsourceqHUUparentqIhUsourceqJcdocutils.nodes reprunicode qKXX/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.task.base.rstqLqM}qNbUtagnameqOUsectionqPU attributesqQ}qR(UdupnamesqS]UclassesqT]UbackrefsqU]UidsqV]qWhAaUnamesqX]qYhauUlineqZKUdocumentq[hhC]q\(cdocutils.nodes title q])q^}q_(hHX!Defining Tasks - celery.task.baseq`hIhFhJhMhOUtitleqahQ}qb(hS]hT]hU]hV]hX]uhZKh[hhC]qccdocutils.nodes Text qdX!Defining Tasks - celery.task.baseqeqf}qg(hHh`hIh^ubaubcdocutils.nodes target qh)qi}qj(hHUhIhFhJU qkhOUtargetqlhQ}qm(hS]hV]qnXmodule-celery.task.baseqoahU]UismodhT]hX]uhZKh[hhC]ubcsphinx.addnodes index qp)qq}qr(hHUhIhFhJhkhOUindexqshQ}qt(hV]hU]hS]hT]hX]Uentries]qu(UsingleqvXcelery.task.base (module)Xmodule-celery.task.baseUtqwauhZKh[hhC]ubhp)qx}qy(hHUhIhFhJNhOhshQ}qz(hV]hU]hS]hT]hX]Uentries]q{(hvX Task (class in celery.task.base)h5Utq|auhZNh[hhC]ubcsphinx.addnodes desc q})q~}q(hHUhIhFhJNhOUdescqhQ}q(UnoindexqUdomainqXpyhV]hU]hS]hT]hX]UobjtypeqXclassqUdesctypeqhuhZNh[hhC]q(csphinx.addnodes desc_signature q)q}q(hHXTaskqhIh~hJU qhOUdesc_signatureqhQ}q(hV]qh5aUmoduleqhKXcelery.task.baseqq}qbhU]hS]hT]hX]qh5aUfullnameqhUclassqUUfirstquhZNh[hhC]q(csphinx.addnodes desc_annotation q)q}q(hHXclass hIhhJhhOUdesc_annotationqhQ}q(hS]hT]hU]hV]hX]uhZNh[hhC]qhdXclass qq}q(hHUhIhubaubcsphinx.addnodes desc_addname q)q}q(hHXcelery.task.base.hIhhJhhOU desc_addnameqhQ}q(hS]hT]hU]hV]hX]uhZNh[hhC]qhdXcelery.task.base.qq}q(hHUhIhubaubcsphinx.addnodes desc_name q)q}q(hHhhIhhJhhOU desc_nameqhQ}q(hS]hT]hU]hV]hX]uhZNh[hhC]qhdXTaskqq}q(hHUhIhubaubeubcsphinx.addnodes desc_content q)q}q(hHUhIh~hJhhOU desc_contentqhQ}q(hS]hT]hU]hV]hX]uhZNh[hhC]q(cdocutils.nodes paragraph q)q}q(hHXA celery task.qhIhhJXk/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.TaskqhOU paragraphqhQ}q(hS]hT]hU]hV]hX]uhZKh[hhC]qhdXA celery task.q…q}q(hHhhIhubaubh)q}q(hHX~All subclasses of :class:`Task` must define the :meth:`run` method, which is the actual method the ``celery`` daemon executes.hIhhJhhOhhQ}q(hS]hT]hU]hV]hX]uhZKh[hhC]q(hdXAll subclasses of qɅq}q(hHXAll subclasses of hIhubcsphinx.addnodes pending_xref q)q}q(hHX :class:`Task`qhIhhJhMhOU pending_xrefqhQ}q(UreftypeXclassUrefwarnq҉U reftargetqXTaskU refdomainXpyqhV]hU]U refexplicithS]hT]hX]UrefdocqXreference/celery.task.baseqUpy:classqhU py:moduleqXcelery.task.basequhZK hC]qcdocutils.nodes literal q)q}q(hHhhQ}q(hS]hT]q(UxrefqhXpy-classqehU]hV]hX]uhIhhC]qhdXTaskqㅁq}q(hHUhIhubahOUliteralqubaubhdX must define the q煁q}q(hHX must define the hIhubh)q}q(hHX :meth:`run`qhIhhJhMhOhhQ}q(UreftypeXmethh҉hXrunU refdomainXpyqhV]hU]U refexplicithS]hT]hX]hhhhhhuhZK hC]qh)q}q(hHhhQ}q(hS]hT]q(hhXpy-methqehU]hV]hX]uhIhhC]qhdXrun()qq}q(hHUhIhubahOhubaubhdX( method, which is the actual method the qq}q(hHX( method, which is the actual method the hIhubh)q}q(hHX ``celery``hQ}q(hS]hT]hU]hV]hX]uhIhhC]qhdXceleryrr}r(hHUhIhubahOhubhdX daemon executes.rr}r(hHX daemon executes.hIhubeubh)r}r(hHXqThe :meth:`run` method can take use of the default keyword arguments, as listed in the :meth:`run` documentation.hIhhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]r (hdXThe r r }r (hHXThe hIjubh)r }r(hHX :meth:`run`rhIjhJNhOhhQ}r(UreftypeXmethh҉hXrunU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-methrehU]hV]hX]uhIj hC]rhdXrun()rr}r(hHUhIjubahOhubaubhdXH method can take use of the default keyword arguments, as listed in the rr}r(hHXH method can take use of the default keyword arguments, as listed in the hIjubh)r}r (hHX :meth:`run`r!hIjhJNhOhhQ}r"(UreftypeXmethh҉hXrunU refdomainXpyr#hV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]r$h)r%}r&(hHj!hQ}r'(hS]hT]r((hj#Xpy-methr)ehU]hV]hX]uhIjhC]r*hdXrun()r+r,}r-(hHUhIj%ubahOhubaubhdX documentation.r.r/}r0(hHX documentation.hIjubeubh)r1}r2(hHXSThe resulting class is callable, which if called will apply the :meth:`run` method.hIhhJhhOhhQ}r3(hS]hT]hU]hV]hX]uhZK h[hhC]r4(hdX@The resulting class is callable, which if called will apply the r5r6}r7(hHX@The resulting class is callable, which if called will apply the hIj1ubh)r8}r9(hHX :meth:`run`r:hIj1hJNhOhhQ}r;(UreftypeXmethh҉hXrunU refdomainXpyr<hV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]r=h)r>}r?(hHj:hQ}r@(hS]hT]rA(hj<Xpy-methrBehU]hV]hX]uhIj8hC]rChdXrun()rDrE}rF(hHUhIj>ubahOhubaubhdX method.rGrH}rI(hHX method.hIj1ubeubhp)rJ}rK(hHUhIhhJhhOhshQ}rL(hV]hU]hS]hT]hX]Uentries]rM(hvX&name (celery.task.base.Task attribute)h(UtrNauhZNh[hhC]ubh})rO}rP(hHUhIhhJhhOhhQ}rQ(hhXpyhV]hU]hS]hT]hX]hX attributerRhjRuhZNh[hhC]rS(h)rT}rU(hHXnamerVhIjOhJhhOhhQ}rW(hV]rXh(ahhhU]hS]hT]hX]rYh(ahX Task.namehhhuhZKh[hhC]rZh)r[}r\(hHjVhIjThJhhOhhQ}r](hS]hT]hU]hV]hX]uhZKh[hhC]r^hdXnamer_r`}ra(hHUhIj[ubaubaubh)rb}rc(hHUhIjOhJhhOhhQ}rd(hS]hT]hU]hV]hX]uhZKh[hhC]reh)rf}rg(hHXName of the task.rhhIjbhJhhOhhQ}ri(hS]hT]hU]hV]hX]uhZKh[hhC]rjhdXName of the task.rkrl}rm(hHjhhIjfubaubaubeubhp)rn}ro(hHUhIhhJhhOhshQ}rp(hV]hU]hS]hT]hX]Uentries]rq(hvX*abstract (celery.task.base.Task attribute)hUtrrauhZNh[hhC]ubh})rs}rt(hHUhIhhJhhOhhQ}ru(hhXpyhV]hU]hS]hT]hX]hX attributervhjvuhZNh[hhC]rw(h)rx}ry(hHXabstractrzhIjshJhhOhhQ}r{(hV]r|hahhhU]hS]hT]hX]r}hahX Task.abstracthhhuhZKh[hhC]r~h)r}r(hHjzhIjxhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXabstractrr}r(hHUhIjubaubaubh)r}r(hHUhIjshJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rh)r}r(hHX4If :const:`True` the task is an abstract base class.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]r(hdXIf rr}r(hHXIf hIjubh)r}r(hHX :const:`True`rhIjhJNhOhhQ}r(UreftypeXconsth҉hXTrueU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-constrehU]hV]hX]uhIjhC]rhdXTruerr}r(hHUhIjubahOhubaubhdX$ the task is an abstract base class.rr}r(hHX$ the task is an abstract base class.hIjubeubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX&type (celery.task.base.Task attribute)h)UtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHXtyperhIjhJhhOhhQ}r(hV]rh)ahhhU]hS]hT]hX]rh)ahX Task.typehhhuhZKh[hhC]rh)r}r(hHjhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXtyperr}r(hHUhIjubaubaubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rh)r}r(hHXThe type of task, currently this can be ``regular``, or ``periodic``, however if you want a periodic task, you should subclass :class:`PeriodicTask` instead.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]r(hdX(The type of task, currently this can be rr}r(hHX(The type of task, currently this can be hIjubh)r}r(hHX ``regular``hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXregularrr}r(hHUhIjubahOhubhdX, or rr}r(hHX, or hIjubh)r}r(hHX ``periodic``hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXperiodicrr}r(hHUhIjubahOhubhdX;, however if you want a periodic task, you should subclass rr}r(hHX;, however if you want a periodic task, you should subclass hIjubh)r}r(hHX:class:`PeriodicTask`rhIjhJNhOhhQ}r(UreftypeXclassh҉hX PeriodicTaskU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-classrehU]hV]hX]uhIjhC]rhdX PeriodicTaskrr}r(hHUhIjubahOhubaubhdX instead.rr}r(hHX instead.hIjubeubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX'queue (celery.task.base.Task attribute)h3UtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHXqueuerhIjhJhhOhhQ}r(hV]rh3ahhhU]hS]hT]hX]rh3ahX Task.queuehhhuhZKh[hhC]rh)r}r(hHjhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXqueuerr}r(hHUhIjubaubaubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rh)r}r (hHXSelect a destination queue for this task. The queue needs to exist in :setting:`CELERY_QUEUES`. The ``routing_key``, ``exchange`` and ``exchange_type`` attributes will be ignored if this is set.hIjhJhhOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r (hdXFSelect a destination queue for this task. The queue needs to exist in r r }r(hHXFSelect a destination queue for this task. The queue needs to exist in hIjubh)r}r(hHX:setting:`CELERY_QUEUES`rhIjhJNhOhhQ}r(UreftypeXsettingh҉hX CELERY_QUEUESU refdomainXstdrhV]hU]U refexplicithS]hT]hX]hhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjX std-settingrehU]hV]hX]uhIjhC]rhdX CELERY_QUEUESrr}r(hHUhIjubahOhubaubhdX. The rr}r (hHX. The hIjubh)r!}r"(hHX``routing_key``hQ}r#(hS]hT]hU]hV]hX]uhIjhC]r$hdX routing_keyr%r&}r'(hHUhIj!ubahOhubhdX, r(r)}r*(hHX, hIjubh)r+}r,(hHX ``exchange``hQ}r-(hS]hT]hU]hV]hX]uhIjhC]r.hdXexchanger/r0}r1(hHUhIj+ubahOhubhdX and r2r3}r4(hHX and hIjubh)r5}r6(hHX``exchange_type``hQ}r7(hS]hT]hU]hV]hX]uhIjhC]r8hdX exchange_typer9r:}r;(hHUhIj5ubahOhubhdX+ attributes will be ignored if this is set.r<r=}r>(hHX+ attributes will be ignored if this is set.hIjubeubaubeubhp)r?}r@(hHUhIhhJhhOhshQ}rA(hV]hU]hS]hT]hX]Uentries]rB(hvX-routing_key (celery.task.base.Task attribute)h UtrCauhZNh[hhC]ubh})rD}rE(hHUhIhhJhhOhhQ}rF(hhXpyhV]hU]hS]hT]hX]hX attributerGhjGuhZNh[hhC]rH(h)rI}rJ(hHX routing_keyrKhIjDhJhhOhhQ}rL(hV]rMh ahhhU]hS]hT]hX]rNh ahXTask.routing_keyhhhuhZK#h[hhC]rOh)rP}rQ(hHjKhIjIhJhhOhhQ}rR(hS]hT]hU]hV]hX]uhZK#h[hhC]rShdX routing_keyrTrU}rV(hHUhIjPubaubaubh)rW}rX(hHUhIjDhJhhOhhQ}rY(hS]hT]hU]hV]hX]uhZK#h[hhC]rZh)r[}r\(hHX:Override the global default ``routing_key`` for this task.hIjWhJhhOhhQ}r](hS]hT]hU]hV]hX]uhZK"h[hhC]r^(hdXOverride the global default r_r`}ra(hHXOverride the global default hIj[ubh)rb}rc(hHX``routing_key``hQ}rd(hS]hT]hU]hV]hX]uhIj[hC]rehdX routing_keyrfrg}rh(hHUhIjbubahOhubhdX for this task.rirj}rk(hHX for this task.hIj[ubeubaubeubhp)rl}rm(hHUhIhhJhhOhshQ}rn(hV]hU]hS]hT]hX]Uentries]ro(hvX*exchange (celery.task.base.Task attribute)h UtrpauhZNh[hhC]ubh})rq}rr(hHUhIhhJhhOhhQ}rs(hhXpyhV]hU]hS]hT]hX]hX attributerthjtuhZNh[hhC]ru(h)rv}rw(hHXexchangerxhIjqhJhhOhhQ}ry(hV]rzh ahhhU]hS]hT]hX]r{h ahX Task.exchangehhhuhZK'h[hhC]r|h)r}}r~(hHjxhIjvhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK'h[hhC]rhdXexchangerr}r(hHUhIj}ubaubaubh)r}r(hHUhIjqhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK'h[hhC]rh)r}r(hHX7Override the global default ``exchange`` for this task.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK&h[hhC]r(hdXOverride the global default rr}r(hHXOverride the global default hIjubh)r}r(hHX ``exchange``hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXexchangerr}r(hHUhIjubahOhubhdX for this task.rr}r(hHX for this task.hIjubeubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX/exchange_type (celery.task.base.Task attribute)hUtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHX exchange_typerhIjhJhhOhhQ}r(hV]rhahhhU]hS]hT]hX]rhahXTask.exchange_typehhhuhZK+h[hhC]rh)r}r(hHjhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK+h[hhC]rhdX exchange_typerr}r(hHUhIjubaubaubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK+h[hhC]rh)r}r(hHX8Override the global default exchange type for this task.rhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK*h[hhC]rhdX8Override the global default exchange type for this task.rr}r(hHjhIjubaubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX/delivery_mode (celery.task.base.Task attribute)h%UtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHX delivery_moderhIjhJhhOhhQ}r(hV]rh%ahhhU]hS]hT]hX]rh%ahXTask.delivery_modehhhuhZK2h[hhC]rh)r}r(hHjhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK2h[hhC]rhdX delivery_moderr}r(hHUhIjubaubaubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK2h[hhC]rh)r}r(hHXOverride the global default delivery mode for this task. By default this is set to ``2`` (persistent). You can change this to ``1`` to get non-persistent behavior, which means the messages are lost if the broker is restarted.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK.h[hhC]r(hdXSOverride the global default delivery mode for this task. By default this is set to rr}r(hHXSOverride the global default delivery mode for this task. By default this is set to hIjubh)r}r(hHX``2``hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX2r}r(hHUhIjubahOhubhdX& (persistent). You can change this to rr}r(hHX& (persistent). You can change this to hIjubh)r}r(hHX``1``hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX1r}r(hHUhIjubahOhubhdX^ to get non-persistent behavior, which means the messages are lost if the broker is restarted.rr}r(hHX^ to get non-persistent behavior, which means the messages are lost if the broker is restarted.hIjubeubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX+mandatory (celery.task.base.Task attribute)hUtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHX mandatoryrhIjhJhhOhhQ}r(hV]rhahhhU]hS]hT]hX]rhahXTask.mandatoryhhhuhZK7h[hhC]rh)r}r(hHjhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK7h[hhC]rhdX mandatoryrr}r (hHUhIjubaubaubh)r }r (hHUhIjhJhhOhhQ}r (hS]hT]hU]hV]hX]uhZK7h[hhC]r h)r}r(hHX^Mandatory message routing. An exception will be raised if the task can't be routed to a queue.rhIj hJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK5h[hhC]rhdX^Mandatory message routing. An exception will be raised if the task can't be routed to a queue.rr}r(hHjhIjubaubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]uhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHX immediate:r hIjhJhhOhhQ}r!(hV]hU]hS]hT]hX]huhZK}r?(hHX priority:r@hIj9hJhhOhhQ}rA(hV]hU]hS]hT]hX]huhZKAh[hhC]rBh)rC}rD(hHj@hIj>hJhhOhhQ}rE(hS]hT]hU]hV]hX]uhZKAh[hhC]rFhdX priority:rGrH}rI(hHUhIjCubaubaubh)rJ}rK(hHUhIj9hJhhOhhQ}rL(hS]hT]hU]hV]hX]uhZKAh[hhC]rMh)rN}rO(hHXThe message priority. A number from ``0`` to ``9``, where ``0`` is the highest. Note that RabbitMQ doesn't support priorities yet.hIjJhJhhOhhQ}rP(hS]hT]hU]hV]hX]uhZK?h[hhC]rQ(hdX$The message priority. A number from rRrS}rT(hHX$The message priority. A number from hIjNubh)rU}rV(hHX``0``hQ}rW(hS]hT]hU]hV]hX]uhIjNhC]rXhdX0rY}rZ(hHUhIjUubahOhubhdX to r[r\}r](hHX to hIjNubh)r^}r_(hHX``9``hQ}r`(hS]hT]hU]hV]hX]uhIjNhC]rahdX9rb}rc(hHUhIj^ubahOhubhdX, where rdre}rf(hHX, where hIjNubh)rg}rh(hHX``0``hQ}ri(hS]hT]hU]hV]hX]uhIjNhC]rjhdX0rk}rl(hHUhIjgubahOhubhdXC is the highest. Note that RabbitMQ doesn't support priorities yet.rmrn}ro(hHXC is the highest. Note that RabbitMQ doesn't support priorities yet.hIjNubeubaubeubhp)rp}rq(hHUhIhhJhhOhshQ}rr(hV]hU]hS]hT]hX]Uentries]rs(hvX-max_retries (celery.task.base.Task attribute)h&UtrtauhZNh[hhC]ubh})ru}rv(hHUhIhhJhhOhhQ}rw(hhXpyhV]hU]hS]hT]hX]hX attributerxhjxuhZNh[hhC]ry(h)rz}r{(hHX max_retriesr|hIjuhJhhOhhQ}r}(hV]r~h&ahhhU]hS]hT]hX]rh&ahXTask.max_retrieshhhuhZKFh[hhC]rh)r}r(hHj|hIjzhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKFh[hhC]rhdX max_retriesrr}r(hHUhIjubaubaubh)r}r(hHUhIjuhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKFh[hhC]rh)r}r(hHXaMaximum number of retries before giving up. If set to :const:`None`, it will never stop retrying.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKDh[hhC]r(hdX6Maximum number of retries before giving up. If set to rr}r(hHX6Maximum number of retries before giving up. If set to hIjubh)r}r(hHX :const:`None`rhIjhJNhOhhQ}r(UreftypeXconsth҉hXNoneU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-constrehU]hV]hX]uhIjhC]rhdXNonerr}r(hHUhIjubahOhubaubhdX, it will never stop retrying.rr}r(hHX, it will never stop retrying.hIjubeubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX5default_retry_delay (celery.task.base.Task attribute)h2UtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHXdefault_retry_delayrhIjhJhhOhhQ}r(hV]rh2ahhhU]hS]hT]hX]rh2ahXTask.default_retry_delayhhhuhZKKh[hhC]rh)r}r(hHjhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKKh[hhC]rhdXdefault_retry_delayrr}r(hHUhIjubaubaubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKKh[hhC]rh)r}r(hHXcDefault time in seconds before a retry of the task should be executed. Default is a 3 minute delay.rhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKIh[hhC]rhdXcDefault time in seconds before a retry of the task should be executed. Default is a 3 minute delay.rr}r(hHjhIjubaubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX,rate_limit (celery.task.base.Task attribute)hUtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHX rate_limitrhIjhJhhOhhQ}r(hV]rhahhhU]hS]hT]hX]rhahXTask.rate_limithhhuhZKQh[hhC]rh)r}r(hHjhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKQh[hhC]rhdX rate_limitrr}r(hHUhIjubaubaubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKQh[hhC]rh)r}r(hHXSet the rate limit for this task type, Examples: :const:`None` (no rate limit), ``"100/s"`` (hundred tasks a second), ``"100/m"`` (hundred tasks a minute), ``"100/h"`` (hundred tasks an hour)hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKNh[hhC]r(hdX1Set the rate limit for this task type, Examples: rr}r(hHX1Set the rate limit for this task type, Examples: hIjubh)r}r(hHX :const:`None`rhIjhJNhOhhQ}r(UreftypeXconsth҉hXNoneU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-constrehU]hV]hX]uhIjhC]rhdXNonerr}r(hHUhIjubahOhubaubhdX (no rate limit), rr}r(hHX (no rate limit), hIjubh)r}r(hHX ``"100/s"``hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX"100/s"rr}r(hHUhIjubahOhubhdX (hundred tasks a second), rr}r(hHX (hundred tasks a second), hIjubh)r}r (hHX ``"100/m"``hQ}r (hS]hT]hU]hV]hX]uhIjhC]r hdX"100/m"r r }r(hHUhIjubahOhubhdX (hundred tasks a minute), rr}r(hHX (hundred tasks a minute), hIjubh)r}r(hHX ``"100/h"``hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX"100/h"rr}r(hHUhIjubahOhubhdX (hundred tasks an hour)rr}r(hHX (hundred tasks an hour)hIjubeubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX/ignore_result (celery.task.base.Task attribute)h,Utr auhZNh[hhC]ubh})r!}r"(hHUhIhhJhhOhhQ}r#(hhXpyhV]hU]hS]hT]hX]hX attributer$hj$uhZNh[hhC]r%(h)r&}r'(hHX ignore_resultr(hIj!hJhhOhhQ}r)(hV]r*h,ahhhU]hS]hT]hX]r+h,ahXTask.ignore_resulthhhuhZKUh[hhC]r,h)r-}r.(hHj(hIj&hJhhOhhQ}r/(hS]hT]hU]hV]hX]uhZKUh[hhC]r0hdX ignore_resultr1r2}r3(hHUhIj-ubaubaubh)r4}r5(hHUhIj!hJhhOhhQ}r6(hS]hT]hU]hV]hX]uhZKUh[hhC]r7h)r8}r9(hHX*Don't store the return value of this task.r:hIj4hJhhOhhQ}r;(hS]hT]hU]hV]hX]uhZKTh[hhC]r<hdX*Don't store the return value of this task.r=r>}r?(hHj:hIj8ubaubaubeubhp)r@}rA(hHUhIhhJhhOhshQ}rB(hV]hU]hS]hT]hX]Uentries]rC(hvX>store_errors_even_if_ignored (celery.task.base.Task attribute)hUtrDauhZNh[hhC]ubh})rE}rF(hHUhIhhJhhOhhQ}rG(hhXpyhV]hU]hS]hT]hX]hX attributerHhjHuhZNh[hhC]rI(h)rJ}rK(hHXstore_errors_even_if_ignoredrLhIjEhJhhOhhQ}rM(hV]rNhahhhU]hS]hT]hX]rOhahX!Task.store_errors_even_if_ignoredhhhuhZKZh[hhC]rPh)rQ}rR(hHjLhIjJhJhhOhhQ}rS(hS]hT]hU]hV]hX]uhZKZh[hhC]rThdXstore_errors_even_if_ignoredrUrV}rW(hHUhIjQubaubaubh)rX}rY(hHUhIjEhJhhOhhQ}rZ(hS]hT]hU]hV]hX]uhZKZh[hhC]r[h)r\}r](hHXPIf true, errors will be stored even if the task is configured to ignore results.r^hIjXhJhhOhhQ}r_(hS]hT]hU]hV]hX]uhZKXh[hhC]r`hdXPIf true, errors will be stored even if the task is configured to ignore results.rarb}rc(hHj^hIj\ubaubaubeubhp)rd}re(hHUhIhhJhhOhshQ}rf(hV]hU]hS]hT]hX]Uentries]rg(hvX3send_error_emails (celery.task.base.Task attribute)h/UtrhauhZNh[hhC]ubh})ri}rj(hHUhIhhJhhOhhQ}rk(hhXpyhV]hU]hS]hT]hX]hX attributerlhjluhZNh[hhC]rm(h)rn}ro(hHXsend_error_emailsrphIjihJhhOhhQ}rq(hV]rrh/ahhhU]hS]hT]hX]rsh/ahXTask.send_error_emailshhhuhZK_h[hhC]rth)ru}rv(hHjphIjnhJhhOhhQ}rw(hS]hT]hU]hV]hX]uhZK_h[hhC]rxhdXsend_error_emailsryrz}r{(hHUhIjuubaubaubh)r|}r}(hHUhIjihJhhOhhQ}r~(hS]hT]hU]hV]hX]uhZK_h[hhC]rh)r}r(hHX_If true, an e-mail will be sent to the admins whenever a task of this type raises an exception.rhIj|hJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK]h[hhC]rhdX_If true, an e-mail will be sent to the admins whenever a task of this type raises an exception.rr}r(hHjhIjubaubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX1error_whitelist (celery.task.base.Task attribute)hUtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHXerror_whitelistrhIjhJhhOhhQ}r(hV]rhahhhU]hS]hT]hX]rhahXTask.error_whitelisthhhuhZKch[hhC]rh)r}r(hHjhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKch[hhC]rhdXerror_whitelistrr}r(hHUhIjubaubaubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKch[hhC]rh)r}r(hHX2List of exception types to send error e-mails for.rhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKbh[hhC]rhdX2List of exception types to send error e-mails for.rr}r(hHjhIjubaubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX,serializer (celery.task.base.Task attribute)h#UtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHX serializerrhIjhJhhOhhQ}r(hV]rh#ahhhU]hS]hT]hX]rh#ahXTask.serializerhhhuhZKhh[hhC]rh)r}r(hHjhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKhh[hhC]rhdX serializerrr}r(hHUhIjubaubaubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKhh[hhC]rh)r}r(hHXqThe name of a serializer that has been registered with :mod:`carrot.serialization.registry`. Example: ``"json"``.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKfh[hhC]r(hdX7The name of a serializer that has been registered with rr}r(hHX7The name of a serializer that has been registered with hIjubh)r}r(hHX$:mod:`carrot.serialization.registry`rhIjhJNhOhhQ}r(UreftypeXmodh҉hXcarrot.serialization.registryU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-modrehU]hV]hX]uhIjhC]rhdXcarrot.serialization.registryrr}r(hHUhIjubahOhubaubhdX . Example: rr}r(hHX . Example: hIjubh)r}r(hHX ``"json"``hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX"json"rr}r(hHUhIjubahOhubhdX.r}r(hHX.hIjubeubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX)backend (celery.task.base.Task attribute)h1UtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHXbackendrhIjhJhhOhhQ}r(hV]rh1ahhhU]hS]hT]hX]rh1ahX Task.backendhhhuhZKlh[hhC]rh)r}r(hHjhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKlh[hhC]rhdXbackendrr}r(hHUhIjubaubaubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKlh[hhC]rh)r}r(hHX,The result store backend used for this task.rhIjhJhhOhhQ}r (hS]hT]hU]hV]hX]uhZKkh[hhC]r hdX,The result store backend used for this task.r r }r (hHjhIjubaubaubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX.autoregister (celery.task.base.Task attribute)h+UtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHX autoregisterrhIjhJhhOhhQ}r(hV]rh+ahhhU]hS]hT]hX]rh+ahXTask.autoregisterhhhuhZKqh[hhC]rh)r}r (hHjhIjhJhhOhhQ}r!(hS]hT]hU]hV]hX]uhZKqh[hhC]r"hdX autoregisterr#r$}r%(hHUhIjubaubaubh)r&}r'(hHUhIjhJhhOhhQ}r((hS]hT]hU]hV]hX]uhZKqh[hhC]r)h)r*}r+(hHXkIf :const:`True` the task is automatically registered in the task registry, which is the default behaviour.hIj&hJhhOhhQ}r,(hS]hT]hU]hV]hX]uhZKoh[hhC]r-(hdXIf r.r/}r0(hHXIf hIj*ubh)r1}r2(hHX :const:`True`r3hIj*hJNhOhhQ}r4(UreftypeXconsth҉hXTrueU refdomainXpyr5hV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]r6h)r7}r8(hHj3hQ}r9(hS]hT]r:(hj5Xpy-constr;ehU]hV]hX]uhIj1hC]r<hdXTruer=r>}r?(hHUhIj7ubahOhubaubhdX[ the task is automatically registered in the task registry, which is the default behaviour.r@rA}rB(hHX[ the task is automatically registered in the task registry, which is the default behaviour.hIj*ubeubaubeubhp)rC}rD(hHUhIhhJhhOhshQ}rE(hV]hU]hS]hT]hX]Uentries]rF(hvX/track_started (celery.task.base.Task attribute)h UtrGauhZNh[hhC]ubh})rH}rI(hHUhIhhJhhOhhQ}rJ(hhXpyhV]hU]hS]hT]hX]hX attributerKhjKuhZNh[hhC]rL(h)rM}rN(hHX track_startedrOhIjHhJhhOhhQ}rP(hV]rQh ahhhU]hS]hT]hX]rRh ahXTask.track_startedhhhuhZK~h[hhC]rSh)rT}rU(hHjOhIjMhJhhOhhQ}rV(hS]hT]hU]hV]hX]uhZK~h[hhC]rWhdX track_startedrXrY}rZ(hHUhIjTubaubaubh)r[}r\(hHUhIjHhJhhOhhQ}r](hS]hT]hU]hV]hX]uhZK~h[hhC]r^(h)r_}r`(hHXIf :const:`True` the task will report its status as "started" when the task is executed by a worker. The default value is ``False`` as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" status can be useful for when there are long running tasks and there is a need to report which task is currently running.hIj[hJhhOhhQ}ra(hS]hT]hU]hV]hX]uhZKth[hhC]rb(hdXIf rcrd}re(hHXIf hIj_ubh)rf}rg(hHX :const:`True`rhhIj_hJNhOhhQ}ri(UreftypeXconsth҉hXTrueU refdomainXpyrjhV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]rkh)rl}rm(hHjhhQ}rn(hS]hT]ro(hjjXpy-constrpehU]hV]hX]uhIjfhC]rqhdXTruerrrs}rt(hHUhIjlubahOhubaubhdXj the task will report its status as "started" when the task is executed by a worker. The default value is rurv}rw(hHXj the task will report its status as "started" when the task is executed by a worker. The default value is hIj_ubh)rx}ry(hHX ``False``hQ}rz(hS]hT]hU]hV]hX]uhIj_hC]r{hdXFalser|r}}r~(hHUhIjxubahOhubhdX as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" status can be useful for when there are long running tasks and there is a need to report which task is currently running.rr}r(hHX as the normal behaviour is to not report that level of granularity. Tasks are either pending, finished, or waiting to be retried. Having a "started" status can be useful for when there are long running tasks and there is a need to report which task is currently running.hIj_ubeubh)r}r(hHXTThe global default can be overridden by the :setting:`CELERY_TRACK_STARTED` setting.hIj[hJhhOhhQ}r(hS]hT]hU]hV]hX]uhZK|h[hhC]r(hdX,The global default can be overridden by the rr}r(hHX,The global default can be overridden by the hIjubh)r}r(hHX:setting:`CELERY_TRACK_STARTED`rhIjhJNhOhhQ}r(UreftypeXsettingh҉hXCELERY_TRACK_STARTEDU refdomainXstdrhV]hU]U refexplicithS]hT]hX]hhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjX std-settingrehU]hV]hX]uhIjhC]rhdXCELERY_TRACK_STARTEDrr}r(hHUhIjubahOhubaubhdX setting.rr}r(hHX setting.hIjubeubeubeubhp)r}r(hHUhIhhJhhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX+acks_late (celery.task.base.Task attribute)h6UtrauhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHX acks_laterhIjhJhhOhhQ}r(hV]rh6ahhhU]hS]hT]hX]rh6ahXTask.acks_latehhhuhZKh[hhC]rh)r}r(hHjhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdX acks_laterr}r(hHUhIjubaubaubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]r(h)r}r(hHXIf set to :const:`True` messages for this task will be acknowledged **after** the task has been executed, not *just before*, which is the default behavior.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]r(hdX If set to rr}r(hHX If set to hIjubh)r}r(hHX :const:`True`rhIjhJNhOhhQ}r(UreftypeXconsth҉hXTrueU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-constrehU]hV]hX]uhIjhC]rhdXTruerr}r(hHUhIjubahOhubaubhdX- messages for this task will be acknowledged rr}r(hHX- messages for this task will be acknowledged hIjubcdocutils.nodes strong r)r}r(hHX **after**hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXafterrr}r(hHUhIjubahOUstrongrubhdX! the task has been executed, not rr}r(hHX! the task has been executed, not hIjubcdocutils.nodes emphasis r)r}r(hHX *just before*hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX just beforerr}r(hHUhIjubahOUemphasisrubhdX , which is the default behavior.rr}r(hHX , which is the default behavior.hIjubeubh)r}r(hHXNote that this means the task may be executed twice if the worker crashes in the middle of execution, which may be acceptable for some applications.rhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXNote that this means the task may be executed twice if the worker crashes in the middle of execution, which may be acceptable for some applications.rr}r(hHjhIjubaubh)r}r(hHXOThe global default can be overriden by the :setting:`CELERY_ACKS_LATE` setting.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]r(hdX+The global default can be overriden by the rr}r(hHX+The global default can be overriden by the hIjubh)r}r(hHX:setting:`CELERY_ACKS_LATE`rhIjhJNhOhhQ}r(UreftypeXsettingh҉hXCELERY_ACKS_LATEU refdomainXstdrhV]hU]U refexplicithS]hT]hX]hhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjX std-settingrehU]hV]hX]uhIjhC]rhdXCELERY_ACKS_LATErr}r(hHUhIjubahOhubaubhdX setting.rr}r(hHX setting.hIjubeubeubeubhp)r }r (hHUhIhhJhhOhshQ}r (hV]hU]hS]hT]hX]Uentries]r (hvX)expires (celery.task.base.Task attribute)hUtr auhZNh[hhC]ubh})r}r(hHUhIhhJhhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHXexpiresrhIjhJhkhOhhQ}r(hV]rhahhhU]hS]hT]hX]rhahX Task.expireshhhuhZKh[hhC]rh)r}r(hHjhIjhJhkhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXexpiresrr}r (hHUhIjubaubaubh)r!}r"(hHUhIjhJhkhOhhQ}r#(hS]hT]hU]hV]hX]uhZKh[hhC]r$h)r%}r&(hHXEDefault task expiry time in seconds or a :class:`~datetime.datetime`.hIj!hJhhOhhQ}r'(hS]hT]hU]hV]hX]uhZKh[hhC]r((hdX)Default task expiry time in seconds or a r)r*}r+(hHX)Default task expiry time in seconds or a hIj%ubh)r,}r-(hHX:class:`~datetime.datetime`r.hIj%hJNhOhhQ}r/(UreftypeXclassh҉hXdatetime.datetimeU refdomainXpyr0hV]hU]U refexplicithS]hT]hX]hhhhhhuhZNhC]r1h)r2}r3(hHj.hQ}r4(hS]hT]r5(hj0Xpy-classr6ehU]hV]hX]uhIj,hC]r7hdXdatetimer8r9}r:(hHUhIj2ubahOhubaubhdX.r;}r<(hHX.hIj%ubeubaubeubhp)r=}r>(hHUhIhhJNhOhshQ}r?(hV]hU]hS]hT]hX]Uentries]r@(hvX2AsyncResult() (celery.task.base.Task class method)h'UtrAauhZNh[hhC]ubh})rB}rC(hHUhIhhJNhOhhQ}rD(hhXpyhV]hU]hS]hT]hX]hX classmethodrEhjEuhZNh[hhC]rF(h)rG}rH(hHXTask.AsyncResult(task_id)hIjBhJhhOhhQ}rI(hV]rJh'ahhKXcelery.task.baserKrL}rMbhU]hS]hT]hX]rNh'ahXTask.AsyncResulthhhuhZNh[hhC]rO(h)rP}rQ(hHU classmethod rRhIjGhJhhOhhQ}rS(hS]hT]hU]hV]hX]uhZNh[hhC]rThdX classmethod rUrV}rW(hHUhIjPubaubh)rX}rY(hHX AsyncResulthIjGhJhhOhhQ}rZ(hS]hT]hU]hV]hX]uhZNh[hhC]r[hdX AsyncResultr\r]}r^(hHUhIjXubaubcsphinx.addnodes desc_parameterlist r_)r`}ra(hHUhIjGhJhhOUdesc_parameterlistrbhQ}rc(hS]hT]hU]hV]hX]uhZNh[hhC]rdcsphinx.addnodes desc_parameter re)rf}rg(hHXtask_idhQ}rh(hS]hT]hU]hV]hX]uhIj`hC]rihdXtask_idrjrk}rl(hHUhIjfubahOUdesc_parameterrmubaubeubh)rn}ro(hHUhIjBhJhhOhhQ}rp(hS]hT]hU]hV]hX]uhZNh[hhC]rq(h)rr}rs(hHX/Get AsyncResult instance for this kind of task.rthIjnhJXw/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.AsyncResultruhOhhQ}rv(hS]hT]hU]hV]hX]uhZKh[hhC]rwhdX/Get AsyncResult instance for this kind of task.rxry}rz(hHjthIjrubaubcdocutils.nodes field_list r{)r|}r}(hHUhIjnhJNhOU field_listr~hQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rcdocutils.nodes field r)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIj|hC]r(cdocutils.nodes field_name r)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX Parametersrr}r(hHUhIjubahOU field_namerubcdocutils.nodes field_body r)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHXtask_idhQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXtask_idrr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubhdXTask id to get result for.rr}r(hHXTask id to get result for.hIjubehOhubahOU field_bodyrubehOUfieldrubaubeubeubhp)r}r(hHUhIhhJX/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.MaxRetriesExceededErrorrhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvXTask.MaxRetriesExceededErrorrh-UtrauhZNh[hhC]ubh})r}r(hHUhIhhJjhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX exceptionrhjuhZNh[hhC]r(h)r}r(hHXTask.MaxRetriesExceededErrorhIjhJhhOhhQ}r(hV]rh-ahhKXcelery.task.baserr}rbhU]hS]hT]hX]rh-ahjhhhuhZNh[hhC]r(h)r}r(hHX exception hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdX exception rr}r(hHUhIjubaubh)r}r(hHXMaxRetriesExceededErrorhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdXMaxRetriesExceededErrorrr}r(hHUhIjubaubeubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rh)r}r(hHX.The tasks max restart limit has been exceeded.rhIjhJjhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdX.The tasks max restart limit has been exceeded.rr}r(hHjhIjubaubaubeubhp)r}r(hHUhIhhJXx/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.after_returnrhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX-after_return() (celery.task.base.Task method)h!UtrauhZNh[hhC]ubh})r}r(hHUhIhhJjhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hXmethodrhjuhZNh[hhC]r(h)r}r(hHXDTask.after_return(status, retval, task_id, args, kwargs, einfo=None)hIjhJhhOhhQ}r(hV]rh!ahhKXcelery.task.baserr}rbhU]hS]hT]hX]rh!ahXTask.after_returnhXTaskhuhZNh[hhC]r(h)r}r(hHXTask.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdXTask.rr}r(hHUhIjubaubh)r}r(hHX after_returnhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdX after_returnrr}r(hHUhIjubaubj_)r}r(hHUhIjhJhhOjbhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]r(je)r}r(hHXstatushQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXstatusrr}r(hHUhIjubahOjmubje)r}r(hHXretvalhQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXretvalrr}r (hHUhIjubahOjmubje)r }r (hHXtask_idhQ}r (hS]hT]hU]hV]hX]uhIjhC]r hdXtask_idrr}r(hHUhIj ubahOjmubje)r}r(hHXargshQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXargsrr}r(hHUhIjubahOjmubje)r}r(hHXkwargshQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXkwargsrr}r(hHUhIjubahOjmubje)r}r (hHX einfo=NonehQ}r!(hS]hT]hU]hV]hX]uhIjhC]r"hdX einfo=Noner#r$}r%(hHUhIjubahOjmubeubeubh)r&}r'(hHUhIjhJhhOhhQ}r((hS]hT]hU]hV]hX]uhZNh[hhC]r)(h)r*}r+(hHX&Handler called after the task returns.r,hIj&hJjhOhhQ}r-(hS]hT]hU]hV]hX]uhZKh[hhC]r.hdX&Handler called after the task returns.r/r0}r1(hHj,hIj*ubaubj{)r2}r3(hHUhIj&hJjhOj~hQ}r4(hS]hT]hU]hV]hX]uhZNh[hhC]r5j)r6}r7(hHUhQ}r8(hS]hT]hU]hV]hX]uhIj2hC]r9(j)r:}r;(hHUhQ}r<(hS]hT]hU]hV]hX]uhIj6hC]r=hdX Parametersr>r?}r@(hHUhIj:ubahOjubj)rA}rB(hHUhQ}rC(hS]hT]hU]hV]hX]uhIj6hC]rDcdocutils.nodes bullet_list rE)rF}rG(hHUhQ}rH(hS]hT]hU]hV]hX]uhIjAhC]rI(cdocutils.nodes list_item rJ)rK}rL(hHUhQ}rM(hS]hT]hU]hV]hX]uhIjFhC]rNh)rO}rP(hHUhQ}rQ(hS]hT]hU]hV]hX]uhIjKhC]rR(j)rS}rT(hHXstatushQ}rU(hS]hT]hU]hV]hX]uhIjOhC]rVhdXstatusrWrX}rY(hHUhIjSubahOjubhdX -- rZr[}r\(hHUhIjOubhdXCurrent task state.r]r^}r_(hHXCurrent task state.hIjOubehOhubahOU list_itemr`ubjJ)ra}rb(hHUhQ}rc(hS]hT]hU]hV]hX]uhIjFhC]rdh)re}rf(hHUhQ}rg(hS]hT]hU]hV]hX]uhIjahC]rh(j)ri}rj(hHXretvalhQ}rk(hS]hT]hU]hV]hX]uhIjehC]rlhdXretvalrmrn}ro(hHUhIjiubahOjubhdX -- rprq}rr(hHUhIjeubhdXTask return value/exception.rsrt}ru(hHXTask return value/exception.hIjeubehOhubahOj`ubjJ)rv}rw(hHUhQ}rx(hS]hT]hU]hV]hX]uhIjFhC]ryh)rz}r{(hHUhQ}r|(hS]hT]hU]hV]hX]uhIjvhC]r}(j)r~}r(hHXtask_idhQ}r(hS]hT]hU]hV]hX]uhIjzhC]rhdXtask_idrr}r(hHUhIj~ubahOjubhdX -- rr}r(hHUhIjzubhdXUnique id of the task.rr}r(hHXUnique id of the task.hIjzubehOhubahOj`ubjJ)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjFhC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHXargshQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXargsrr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubhdX,Original arguments for the task that failed.rr}r(hHX,Original arguments for the task that failed.hIjubehOhubahOj`ubjJ)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjFhC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHXkwargshQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXkwargsrr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubhdX4Original keyword arguments for the task that failed.rr}r(hHX4Original keyword arguments for the task that failed.hIjubehOhubahOj`ubjJ)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjFhC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHXeinfohQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXeinforr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubh)r}r(hHX-:class:`~celery.datastructures.ExceptionInfo`rhIjhJNhOhhQ}r(UreftypeXclassh҉hX#celery.datastructures.ExceptionInfoU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhXTaskhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-classrehU]hV]hX]uhIjhC]rhdX ExceptionInforr}r(hHUhIjubahOhubaubhdX- instance, containing the traceback (if any).rr}r(hHX- instance, containing the traceback (if any).hIjubehOhubahOj`ubehOU bullet_listrubahOjubehOjubaubh)r}r(hHX,The return value of this handler is ignored.rhIj&hJjhOhhQ}r(hS]hT]hU]hV]hX]uhZK h[hhC]rhdX,The return value of this handler is ignored.rr}r(hHjhIjubaubeubeubhp)r}r(hHUhIhhJXq/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.applyrhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX,apply() (celery.task.base.Task class method)hUtrauhZNh[hhC]ubh})r}r(hHUhIhhJjhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX classmethodrhjuhZNh[hhC]r(h)r}r(hHX-Task.apply(args=None, kwargs=None, **options)hIjhJhhOhhQ}r(hV]rhahhKXcelery.task.baserr}rbhU]hS]hT]hX]rhahX Task.applyhXTaskhuhZNh[hhC]r(h)r}r(hHjRhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdX classmethod rr}r(hHUhIjubaubh)r}r(hHXTask.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdXTask.rr}r(hHUhIjubaubh)r}r(hHXapplyhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdXapplyrr }r (hHUhIjubaubj_)r }r (hHUhIjhJhhOjbhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r(je)r}r(hHX args=NonehQ}r(hS]hT]hU]hV]hX]uhIj hC]rhdX args=Nonerr}r(hHUhIjubahOjmubje)r}r(hHX kwargs=NonehQ}r(hS]hT]hU]hV]hX]uhIj hC]rhdX kwargs=Nonerr}r(hHUhIjubahOjmubje)r}r(hHX **optionshQ}r(hS]hT]hU]hV]hX]uhIj hC]r hdX **optionsr!r"}r#(hHUhIjubahOjmubeubeubh)r$}r%(hHUhIjhJhhOhhQ}r&(hS]hT]hU]hV]hX]uhZNh[hhC]r'(h)r(}r)(hHXMExecute this task locally, by blocking until the task has finished executing.r*hIj$hJjhOhhQ}r+(hS]hT]hU]hV]hX]uhZKh[hhC]r,hdXMExecute this task locally, by blocking until the task has finished executing.r-r.}r/(hHj*hIj(ubaubj{)r0}r1(hHUhIj$hJjhOj~hQ}r2(hS]hT]hU]hV]hX]uhZNh[hhC]r3j)r4}r5(hHUhQ}r6(hS]hT]hU]hV]hX]uhIj0hC]r7(j)r8}r9(hHUhQ}r:(hS]hT]hU]hV]hX]uhIj4hC]r;hdX Parametersr<r=}r>(hHUhIj8ubahOjubj)r?}r@(hHUhQ}rA(hS]hT]hU]hV]hX]uhIj4hC]rBjE)rC}rD(hHUhQ}rE(hS]hT]hU]hV]hX]uhIj?hC]rF(jJ)rG}rH(hHUhQ}rI(hS]hT]hU]hV]hX]uhIjChC]rJh)rK}rL(hHUhQ}rM(hS]hT]hU]hV]hX]uhIjGhC]rN(j)rO}rP(hHXargshQ}rQ(hS]hT]hU]hV]hX]uhIjKhC]rRhdXargsrSrT}rU(hHUhIjOubahOjubhdX -- rVrW}rX(hHUhIjKubhdX+positional arguments passed on to the task.rYrZ}r[(hHX+positional arguments passed on to the task.hIjKubehOhubahOj`ubjJ)r\}r](hHUhQ}r^(hS]hT]hU]hV]hX]uhIjChC]r_h)r`}ra(hHUhQ}rb(hS]hT]hU]hV]hX]uhIj\hC]rc(j)rd}re(hHXkwargshQ}rf(hS]hT]hU]hV]hX]uhIj`hC]rghdXkwargsrhri}rj(hHUhIjdubahOjubhdX -- rkrl}rm(hHUhIj`ubhdX(keyword arguments passed on to the task.rnro}rp(hHX(keyword arguments passed on to the task.hIj`ubehOhubahOj`ubjJ)rq}rr(hHUhQ}rs(hS]hT]hU]hV]hX]uhIjChC]rth)ru}rv(hHUhQ}rw(hS]hT]hU]hV]hX]uhIjqhC]rx(j)ry}rz(hHXthrowhQ}r{(hS]hT]hU]hV]hX]uhIjuhC]r|hdXthrowr}r~}r(hHUhIjyubahOjubhdX -- rr}r(hHUhIjuubhdX*Re-raise task exceptions. Defaults to the rr}r(hHX*Re-raise task exceptions. Defaults to the hIjuubh)r}r(hHX-:setting:`CELERY_EAGER_PROPAGATES_EXCEPTIONS`rhIjuhJNhOhhQ}r(UreftypeXsettingh҉hX"CELERY_EAGER_PROPAGATES_EXCEPTIONSU refdomainXstdrhV]hU]U refexplicithS]hT]hX]hhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjX std-settingrehU]hV]hX]uhIjhC]rhdX"CELERY_EAGER_PROPAGATES_EXCEPTIONSrr}r(hHUhIjubahOhubaubhdX setting.rr}r(hHX setting.hIjuubehOhubahOj`ubehOjubahOjubehOjubaubh)r}r(hHX*:rtype :class:`celery.result.EagerResult`:hIj$hJjhOhhQ}r(hS]hT]hU]hV]hX]uhZK h[hhC]r(hdX:rtype rr}r(hHX:rtype hIjubh)r}r(hHX":class:`celery.result.EagerResult`rhIjhJNhOhhQ}r(UreftypeXclassh҉hXcelery.result.EagerResultU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhXTaskrhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-classrehU]hV]hX]uhIjhC]rhdXcelery.result.EagerResultrr}r(hHUhIjubahOhubaubhdX:r}r(hHX:hIjubeubh)r}r(hHX!See :func:`celery.execute.apply`.hIj$hJjhOhhQ}r(hS]hT]hU]hV]hX]uhZK h[hhC]r(hdXSee rr}r(hHXSee hIjubh)r}r(hHX:func:`celery.execute.apply`rhIjhJNhOhhQ}r(UreftypeXfunch҉hXcelery.execute.applyU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-funcrehU]hV]hX]uhIjhC]rhdXcelery.execute.apply()rr}r(hHUhIjubahOhubaubhdX.r}r(hHX.hIjubeubeubeubhp)r}r(hHUhIhhJXw/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.apply_asyncrhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX2apply_async() (celery.task.base.Task class method)h7UtrauhZNh[hhC]ubh})r}r(hHUhIhhJjhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX classmethodrhjuhZNh[hhC]r(h)r}r(hHX3Task.apply_async(args=None, kwargs=None, **options)hIjhJhhOhhQ}r(hV]rh7ahhKXcelery.task.baserr}rbhU]hS]hT]hX]rh7ahXTask.apply_asynchXTaskhuhZNh[hhC]r(h)r}r(hHjRhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdX classmethod rr}r(hHUhIjubaubh)r}r(hHXTask.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdXTask.rr}r(hHUhIjubaubh)r}r(hHX apply_asynchIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdX apply_asyncrr}r(hHUhIjubaubj_)r}r(hHUhIjhJhhOjbhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]r(je)r}r(hHX args=NonehQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX args=Nonerr}r(hHUhIjubahOjmubje)r}r(hHX kwargs=NonehQ}r(hS]hT]hU]hV]hX]uhIjhC]r hdX kwargs=Noner r }r (hHUhIjubahOjmubje)r }r (hHX **optionshQ}r (hS]hT]hU]hV]hX]uhIjhC]r hdX **optionsr r }r (hHUhIj ubahOjmubeubeubh)r }r (hHUhIjhJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (h)r }r (hHX:Delay this task for execution by the ``celery`` daemon(s).hIj hJjhOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r (hdX%Delay this task for execution by the r r }r (hHX%Delay this task for execution by the hIj ubh)r }r (hHX ``celery``hQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXceleryr r }r (hHUhIj ubahOhubhdX daemon(s).r r }r (hHX daemon(s).hIj ubeubj{)r }r! (hHUhIj hJjhOj~hQ}r" (hS]hT]hU]hV]hX]uhZNh[hhC]r# j)r$ }r% (hHUhQ}r& (hS]hT]hU]hV]hX]uhIj hC]r' (j)r( }r) (hHUhQ}r* (hS]hT]hU]hV]hX]uhIj$ hC]r+ hdX Parametersr, r- }r. (hHUhIj( ubahOjubj)r/ }r0 (hHUhQ}r1 (hS]hT]hU]hV]hX]uhIj$ hC]r2 jE)r3 }r4 (hHUhQ}r5 (hS]hT]hU]hV]hX]uhIj/ hC]r6 (jJ)r7 }r8 (hHUhQ}r9 (hS]hT]hU]hV]hX]uhIj3 hC]r: h)r; }r< (hHUhQ}r= (hS]hT]hU]hV]hX]uhIj7 hC]r> (j)r? }r@ (hHXargshQ}rA (hS]hT]hU]hV]hX]uhIj; hC]rB hdXargsrC rD }rE (hHUhIj? ubahOjubhdX -- rF rG }rH (hHUhIj; ubhdX+positional arguments passed on to the task.rI rJ }rK (hHX+positional arguments passed on to the task.hIj; ubehOhubahOj`ubjJ)rL }rM (hHUhQ}rN (hS]hT]hU]hV]hX]uhIj3 hC]rO h)rP }rQ (hHUhQ}rR (hS]hT]hU]hV]hX]uhIjL hC]rS (j)rT }rU (hHXkwargshQ}rV (hS]hT]hU]hV]hX]uhIjP hC]rW hdXkwargsrX rY }rZ (hHUhIjT ubahOjubhdX -- r[ r\ }r] (hHUhIjP ubhdX(keyword arguments passed on to the task.r^ r_ }r` (hHX(keyword arguments passed on to the task.hIjP ubehOhubahOj`ubjJ)ra }rb (hHUhQ}rc (hS]hT]hU]hV]hX]uhIj3 hC]rd h)re }rf (hHUhQ}rg (hS]hT]hU]hV]hX]uhIja hC]rh (j)ri }rj (hHX **optionshQ}rk (hS]hT]hU]hV]hX]uhIje hC]rl hdX **optionsrm rn }ro (hHUhIji ubahOjubhdX -- rp rq }rr (hHUhIje ubhdX$Any keyword arguments to pass on to rs rt }ru (hHX$Any keyword arguments to pass on to hIje ubh)rv }rw (hHX":func:`celery.execute.apply_async`rx hIje hJNhOhhQ}ry (UreftypeXfunch҉hXcelery.execute.apply_asyncU refdomainXpyrz hV]hU]U refexplicithS]hT]hX]hhhXTaskr{ hhuhZNhC]r| h)r} }r~ (hHjx hQ}r (hS]hT]r (hjz Xpy-funcr ehU]hV]hX]uhIjv hC]r hdXcelery.execute.apply_async()r r }r (hHUhIj} ubahOhubaubhdX.r }r (hHX.hIje ubehOhubahOj`ubehOjubahOjubehOjubaubh)r }r (hHX<See :func:`celery.execute.apply_async` for more information.hIj hJjhOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r (hdXSee r r }r (hHXSee hIj ubh)r }r (hHX":func:`celery.execute.apply_async`r hIj hJNhOhhQ}r (UreftypeXfunch҉hXcelery.execute.apply_asyncU refdomainXpyr hV]hU]U refexplicithS]hT]hX]hhhj{ hhuhZNhC]r h)r }r (hHj hQ}r (hS]hT]r (hj Xpy-funcr ehU]hV]hX]uhIj hC]r hdXcelery.execute.apply_async()r r }r (hHUhIj ubahOhubaubhdX for more information.r r }r (hHX for more information.hIj ubeubh)r }r (hHX,:returns :class:`celery.result.AsyncResult`:hIj hJjhOhhQ}r (hS]hT]hU]hV]hX]uhZK h[hhC]r (hdX :returns r r }r (hHX :returns hIj ubh)r }r (hHX":class:`celery.result.AsyncResult`r hIj hJNhOhhQ}r (UreftypeXclassh҉hXcelery.result.AsyncResultU refdomainXpyr hV]hU]U refexplicithS]hT]hX]hhhj{ hhuhZNhC]r h)r }r (hHj hQ}r (hS]hT]r (hj Xpy-classr ehU]hV]hX]uhIj hC]r hdXcelery.result.AsyncResultr r }r (hHUhIj ubahOhubaubhdX:r }r (hHX:hIj ubeubeubeubhp)r }r (hHUhIhhJXq/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.delayr hOhshQ}r (hV]hU]hS]hT]hX]Uentries]r (hvX,delay() (celery.task.base.Task class method)h*Utr auhZNh[hhC]ubh})r }r (hHUhIhhJj hOhhQ}r (hhXpyhV]hU]hS]hT]hX]hX classmethodr hj uhZNh[hhC]r (h)r }r (hHXTask.delay(*args, **kwargs)hIj hJhhOhhQ}r (hV]r h*ahhKXcelery.task.baser r }r bhU]hS]hT]hX]r h*ahX Task.delayhXTaskhuhZNh[hhC]r (h)r }r (hHjRhIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdX classmethod r r }r (hHUhIj ubaubh)r }r (hHXTask.hIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXTask.r r }r (hHUhIj ubaubh)r }r (hHXdelayhIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXdelayr r }r (hHUhIj ubaubj_)r }r (hHUhIj hJhhOjbhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (je)r }r (hHX*argshQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdX*argsr r }r (hHUhIj ubahOjmubje)r }r (hHX**kwargshQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdX**kwargsr r }r (hHUhIj ubahOjmubeubeubh)r }r (hHUhIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (h)r }r (hHX\Shortcut to :meth:`apply_async`, with star arguments, but doesn't support the extra options.hIj hJj hOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r (hdX Shortcut to r r }r (hHX Shortcut to hIj ubh)r }r (hHX:meth:`apply_async`r hIj hJNhOhhQ}r (UreftypeXmethh҉hX apply_asyncU refdomainXpyr hV]hU]U refexplicithS]hT]hX]hhhXTaskr hhuhZNhC]r h)r }r (hHj hQ}r (hS]hT]r (hj Xpy-methr ehU]hV]hX]uhIj hC]r hdX apply_async()r r }r (hHUhIj ubahOhubaubhdX=, with star arguments, but doesn't support the extra options.r r }r (hHX=, with star arguments, but doesn't support the extra options.hIj ubeubj{)r }r (hHUhIj hJj hOj~hQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r j)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIj hC]r (j)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdX Parametersr r }r (hHUhIj ubahOjubj)r! }r" (hHUhQ}r# (hS]hT]hU]hV]hX]uhIj hC]r$ jE)r% }r& (hHUhQ}r' (hS]hT]hU]hV]hX]uhIj! hC]r( (jJ)r) }r* (hHUhQ}r+ (hS]hT]hU]hV]hX]uhIj% hC]r, h)r- }r. (hHUhQ}r/ (hS]hT]hU]hV]hX]uhIj) hC]r0 (j)r1 }r2 (hHX*argshQ}r3 (hS]hT]hU]hV]hX]uhIj- hC]r4 hdX*argsr5 r6 }r7 (hHUhIj1 ubahOjubhdX -- r8 r9 }r: (hHUhIj- ubhdX+positional arguments passed on to the task.r; r< }r= (hHX+positional arguments passed on to the task.hIj- ubehOhubahOj`ubjJ)r> }r? (hHUhQ}r@ (hS]hT]hU]hV]hX]uhIj% hC]rA h)rB }rC (hHUhQ}rD (hS]hT]hU]hV]hX]uhIj> hC]rE (j)rF }rG (hHX**kwargshQ}rH (hS]hT]hU]hV]hX]uhIjB hC]rI hdX**kwargsrJ rK }rL (hHUhIjF ubahOjubhdX -- rM rN }rO (hHUhIjB ubhdX(keyword arguments passed on to the task.rP rQ }rR (hHX(keyword arguments passed on to the task.hIjB ubehOhubahOj`ubehOjubahOjubehOjubaubh)rS }rT (hHX,:returns :class:`celery.result.AsyncResult`:hIj hJj hOhhQ}rU (hS]hT]hU]hV]hX]uhZKh[hhC]rV (hdX :returns rW rX }rY (hHX :returns hIjS ubh)rZ }r[ (hHX":class:`celery.result.AsyncResult`r\ hIjS hJNhOhhQ}r] (UreftypeXclassh҉hXcelery.result.AsyncResultU refdomainXpyr^ hV]hU]U refexplicithS]hT]hX]hhhj hhuhZNhC]r_ h)r` }ra (hHj\ hQ}rb (hS]hT]rc (hj^ Xpy-classrd ehU]hV]hX]uhIjZ hC]re hdXcelery.result.AsyncResultrf rg }rh (hHUhIj` ubahOhubaubhdX:ri }rj (hHX:hIjS ubeubeubeubhp)rk }rl (hHUhIhhJX/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.establish_connectionrm hOhshQ}rn (hV]hU]hS]hT]hX]Uentries]ro (hvX;establish_connection() (celery.task.base.Task class method)hUtrp auhZNh[hhC]ubh})rq }rr (hHUhIhhJjm hOhhQ}rs (hhXpyhV]hU]hS]hT]hX]hX classmethodrt hjt uhZNh[hhC]ru (h)rv }rw (hHX,Task.establish_connection(connect_timeout=4)hIjq hJhhOhhQ}rx (hV]ry hahhKXcelery.task.baserz r{ }r| bhU]hS]hT]hX]r} hahXTask.establish_connectionhXTaskhuhZNh[hhC]r~ (h)r }r (hHjRhIjv hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdX classmethod r r }r (hHUhIj ubaubh)r }r (hHXTask.hIjv hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXTask.r r }r (hHUhIj ubaubh)r }r (hHXestablish_connectionhIjv hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXestablish_connectionr r }r (hHUhIj ubaubj_)r }r (hHUhIjv hJhhOjbhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r je)r }r (hHXconnect_timeout=4hQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXconnect_timeout=4r r }r (hHUhIj ubahOjmubaubeubh)r }r (hHUhIjq hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r h)r }r (hHX-Establish a connection to the message broker.r hIj hJjm hOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r hdX-Establish a connection to the message broker.r r }r (hHj hIj ubaubaubeubhp)r }r (hHUhIhhJNhOhshQ}r (hV]hU]hS]hT]hX]Uentries]r (hvX(execute() (celery.task.base.Task method)h$Utr auhZNh[hhC]ubh})r }r (hHUhIhhJNhOhhQ}r (hhXpyhV]hU]hS]hT]hX]hXmethodr hj uhZNh[hhC]r (h)r }r (hHX.Task.execute(wrapper, pool, loglevel, logfile)hIj hJhhOhhQ}r (hV]r h$ahhKXcelery.task.baser r }r bhU]hS]hT]hX]r h$ahX Task.executehXTaskhuhZNh[hhC]r (h)r }r (hHXTask.hIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXTask.r r }r (hHUhIj ubaubh)r }r (hHXexecutehIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXexecuter r }r (hHUhIj ubaubj_)r }r (hHUhIj hJhhOjbhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (je)r }r (hHXwrapperhQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXwrapperr r }r (hHUhIj ubahOjmubje)r }r (hHXpoolhQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXpoolr r }r (hHUhIj ubahOjmubje)r }r (hHXloglevelhQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXloglevelr r }r (hHUhIj ubahOjmubje)r }r (hHXlogfilehQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXlogfiler r }r (hHUhIj ubahOjmubeubeubh)r }r (hHUhIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (h)r }r (hHX0The method the worker calls to execute the task.r hIj hJXs/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.executer hOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r hdX0The method the worker calls to execute the task.r r }r (hHj hIj ubaubj{)r }r (hHUhIj hJNhOj~hQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r j)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIj hC]r (j)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdX Parametersr r }r (hHUhIj ubahOjubj)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIj hC]r jE)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIj hC]r (jJ)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIj hC]r h)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIj hC]r (j)r }r (hHXwrapperhQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXwrapperr r }r (hHUhIj ubahOjubhdX -- r r }r! (hHUhIj ubhdXA r" r# }r$ (hHXA hIj ubh)r% }r& (hHX':class:`~celery.worker.job.TaskRequest`r' hIj hJNhOhhQ}r( (UreftypeXclassh҉hXcelery.worker.job.TaskRequestU refdomainXpyr) hV]hU]U refexplicithS]hT]hX]hhhXTaskhhuhZNhC]r* h)r+ }r, (hHj' hQ}r- (hS]hT]r. (hj) Xpy-classr/ ehU]hV]hX]uhIj% hC]r0 hdX TaskRequestr1 r2 }r3 (hHUhIj+ ubahOhubaubhdX.r4 }r5 (hHX.hIj ubehOhubahOj`ubjJ)r6 }r7 (hHUhQ}r8 (hS]hT]hU]hV]hX]uhIj hC]r9 h)r: }r; (hHUhQ}r< (hS]hT]hU]hV]hX]uhIj6 hC]r= (j)r> }r? (hHXpoolhQ}r@ (hS]hT]hU]hV]hX]uhIj: hC]rA hdXpoolrB rC }rD (hHUhIj> ubahOjubhdX -- rE rF }rG (hHUhIj: ubhdX A task pool.rH rI }rJ (hHX A task pool.rK hIj: ubehOhubahOj`ubjJ)rL }rM (hHUhQ}rN (hS]hT]hU]hV]hX]uhIj hC]rO h)rP }rQ (hHUhQ}rR (hS]hT]hU]hV]hX]uhIjL hC]rS (j)rT }rU (hHXloglevelhQ}rV (hS]hT]hU]hV]hX]uhIjP hC]rW hdXloglevelrX rY }rZ (hHUhIjT ubahOjubhdX -- r[ r\ }r] (hHUhIjP ubhdXCurrent loglevel.r^ r_ }r` (hHXCurrent loglevel.ra hIjP ubehOhubahOj`ubjJ)rb }rc (hHUhQ}rd (hS]hT]hU]hV]hX]uhIj hC]re h)rf }rg (hHUhQ}rh (hS]hT]hU]hV]hX]uhIjb hC]ri (j)rj }rk (hHXlogfilehQ}rl (hS]hT]hU]hV]hX]uhIjf hC]rm hdXlogfilern ro }rp (hHUhIjj ubahOjubhdX -- rq rr }rs (hHUhIjf ubhdX#Name of the currently used logfile.rt ru }rv (hHX#Name of the currently used logfile.rw hIjf ubehOhubahOj`ubehOjubahOjubehOjubaubeubeubhp)rx }ry (hHUhIhhJXx/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.get_consumerrz hOhshQ}r{ (hV]hU]hS]hT]hX]Uentries]r| (hvX3get_consumer() (celery.task.base.Task class method)hUtr} auhZNh[hhC]ubh})r~ }r (hHUhIhhJjz hOhhQ}r (hhXpyhV]hU]hS]hT]hX]hX classmethodr hj uhZNh[hhC]r (h)r }r (hHX5Task.get_consumer(connection=None, connect_timeout=4)hIj~ hJhhOhhQ}r (hV]r hahhKXcelery.task.baser r }r bhU]hS]hT]hX]r hahXTask.get_consumerhXTaskhuhZNh[hhC]r (h)r }r (hHjRhIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdX classmethod r r }r (hHUhIj ubaubh)r }r (hHXTask.hIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXTask.r r }r (hHUhIj ubaubh)r }r (hHX get_consumerhIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdX get_consumerr r }r (hHUhIj ubaubj_)r }r (hHUhIj hJhhOjbhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (je)r }r (hHXconnection=NonehQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXconnection=Noner r }r (hHUhIj ubahOjmubje)r }r (hHXconnect_timeout=4hQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXconnect_timeout=4r r }r (hHUhIj ubahOjmubeubeubh)r }r (hHUhIj~ hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (h)r }r (hHX#Get a celery task message consumer.r hIj hJjz hOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r hdX#Get a celery task message consumer.r r }r (hHj hIj ubaubh)r }r (hHX.:rtype :class:`celery.messaging.TaskConsumer`:hIj hJjz hOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r (hdX:rtype r r }r (hHX:rtype hIj ubh)r }r (hHX&:class:`celery.messaging.TaskConsumer`r hIj hJNhOhhQ}r (UreftypeXclassh҉hXcelery.messaging.TaskConsumerU refdomainXpyr hV]hU]U refexplicithS]hT]hX]hhhXTaskhhuhZNhC]r h)r }r (hHj hQ}r (hS]hT]r (hj Xpy-classr ehU]hV]hX]uhIj hC]r hdXcelery.messaging.TaskConsumerr r }r (hHUhIj ubahOhubaubhdX:r }r (hHX:hIj ubeubh)r }r (hHXTPlease be sure to close the AMQP connection when you're done with this object. i.e.:r hIj hJjz hOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r hdXTPlease be sure to close the AMQP connection when you're done with this object. i.e.:r r }r (hHj hIj ubaubcdocutils.nodes doctest_block r )r }r (hHXc>>> consumer = self.get_consumer() >>> # do something with consumer >>> consumer.connection.close()hIj hJNhOU doctest_blockr hQ}r (U xml:spacer Upreserver hV]hU]hS]hT]hX]uhZNh[hhC]r hdXc>>> consumer = self.get_consumer() >>> # do something with consumer >>> consumer.connection.close()r r }r (hHUhIj ubaubeubeubhp)r }r (hHUhIhhJXv/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.get_loggerr hOhshQ}r (hV]hU]hS]hT]hX]Uentries]r (hvX1get_logger() (celery.task.base.Task class method)h4Utr auhZNh[hhC]ubh})r }r (hHUhIhhJj hOhhQ}r (hhXpyhV]hU]hS]hT]hX]hX classmethodr hj uhZNh[hhC]r (h)r }r (hHXGTask.get_logger(loglevel=None, logfile=None, propagate=False, **kwargs)hIj hJhhOhhQ}r (hV]r h4ahhKXcelery.task.baser r }r bhU]hS]hT]hX]r h4ahXTask.get_loggerhXTaskhuhZNh[hhC]r (h)r }r (hHjRhIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdX classmethod r r }r (hHUhIj ubaubh)r }r (hHXTask.hIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXTask.r r }r (hHUhIj ubaubh)r }r (hHX get_loggerhIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdX get_loggerr r }r (hHUhIj ubaubj_)r }r (hHUhIj hJhhOjbhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (je)r }r (hHX loglevel=NonehQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdX loglevel=Noner r }r (hHUhIj ubahOjmubje)r }r (hHX logfile=NonehQ}r (hS]hT]hU]hV]hX]uhIj hC]r! hdX logfile=Noner" r# }r$ (hHUhIj ubahOjmubje)r% }r& (hHXpropagate=FalsehQ}r' (hS]hT]hU]hV]hX]uhIj hC]r( hdXpropagate=Falser) r* }r+ (hHUhIj% ubahOjmubje)r, }r- (hHX**kwargshQ}r. (hS]hT]hU]hV]hX]uhIj hC]r/ hdX**kwargsr0 r1 }r2 (hHUhIj, ubahOjmubeubeubh)r3 }r4 (hHUhIj hJhhOhhQ}r5 (hS]hT]hU]hV]hX]uhZNh[hhC]r6 (h)r7 }r8 (hHXGet task-aware logger object.r9 hIj3 hJj hOhhQ}r: (hS]hT]hU]hV]hX]uhZKh[hhC]r; hdXGet task-aware logger object.r< r= }r> (hHj9 hIj7 ubaubh)r? }r@ (hHX)See :func:`celery.log.setup_task_logger`.hIj3 hJj hOhhQ}rA (hS]hT]hU]hV]hX]uhZKh[hhC]rB (hdXSee rC rD }rE (hHXSee hIj? ubh)rF }rG (hHX$:func:`celery.log.setup_task_logger`rH hIj? hJNhOhhQ}rI (UreftypeXfunch҉hXcelery.log.setup_task_loggerU refdomainXpyrJ hV]hU]U refexplicithS]hT]hX]hhhXTaskhhuhZNhC]rK h)rL }rM (hHjH hQ}rN (hS]hT]rO (hjJ Xpy-funcrP ehU]hV]hX]uhIjF hC]rQ hdXcelery.log.setup_task_logger()rR rS }rT (hHUhIjL ubahOhubaubhdX.rU }rV (hHX.hIj? ubeubeubeubhp)rW }rX (hHUhIhhJXy/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.get_publisherrY hOhshQ}rZ (hV]hU]hS]hT]hX]Uentries]r[ (hvX4get_publisher() (celery.task.base.Task class method)hUtr\ auhZNh[hhC]ubh})r] }r^ (hHUhIhhJjY hOhhQ}r_ (hhXpyhV]hU]hS]hT]hX]hX classmethodr` hj` uhZNh[hhC]ra (h)rb }rc (hHXYTask.get_publisher(connection=None, exchange=None, connect_timeout=4, exchange_type=None)hIj] hJhhOhhQ}rd (hV]re hahhKXcelery.task.baserf rg }rh bhU]hS]hT]hX]ri hahXTask.get_publisherhXTaskhuhZNh[hhC]rj (h)rk }rl (hHjRhIjb hJhhOhhQ}rm (hS]hT]hU]hV]hX]uhZNh[hhC]rn hdX classmethod ro rp }rq (hHUhIjk ubaubh)rr }rs (hHXTask.hIjb hJhhOhhQ}rt (hS]hT]hU]hV]hX]uhZNh[hhC]ru hdXTask.rv rw }rx (hHUhIjr ubaubh)ry }rz (hHX get_publisherhIjb hJhhOhhQ}r{ (hS]hT]hU]hV]hX]uhZNh[hhC]r| hdX get_publisherr} r~ }r (hHUhIjy ubaubj_)r }r (hHUhIjb hJhhOjbhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (je)r }r (hHXconnection=NonehQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXconnection=Noner r }r (hHUhIj ubahOjmubje)r }r (hHX exchange=NonehQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdX exchange=Noner r }r (hHUhIj ubahOjmubje)r }r (hHXconnect_timeout=4hQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXconnect_timeout=4r r }r (hHUhIj ubahOjmubje)r }r (hHXexchange_type=NonehQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXexchange_type=Noner r }r (hHUhIj ubahOjmubeubeubh)r }r (hHUhIj] hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (h)r }r (hHX$Get a celery task message publisher.r hIj hJjY hOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r hdX$Get a celery task message publisher.r r }r (hHj hIj ubaubh)r }r (hHX/:rtype :class:`celery.messaging.TaskPublisher`:hIj hJjY hOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r (hdX:rtype r r }r (hHX:rtype hIj ubh)r }r (hHX':class:`celery.messaging.TaskPublisher`r hIj hJNhOhhQ}r (UreftypeXclassh҉hXcelery.messaging.TaskPublisherU refdomainXpyr hV]hU]U refexplicithS]hT]hX]hhhXTaskhhuhZNhC]r h)r }r (hHj hQ}r (hS]hT]r (hj Xpy-classr ehU]hV]hX]uhIj hC]r hdXcelery.messaging.TaskPublisherr r }r (hHUhIj ubahOhubaubhdX:r }r (hHX:hIj ubeubh)r }r (hHXTPlease be sure to close the AMQP connection when you're done with this object, i.e.:r hIj hJjY hOhhQ}r (hS]hT]hU]hV]hX]uhZKh[hhC]r hdXTPlease be sure to close the AMQP connection when you're done with this object, i.e.:r r }r (hHj hIj ubaubj )r }r (hHXg>>> publisher = self.get_publisher() >>> # do something with publisher >>> publisher.connection.close()hIj hJNhOj hQ}r (j j hV]hU]hS]hT]hX]uhZNh[hhC]r hdXg>>> publisher = self.get_publisher() >>> # do something with publisher >>> publisher.connection.close()r r }r (hHUhIj ubaubeubeubhp)r }r (hHUhIhhJXv/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.on_failurer hOhshQ}r (hV]hU]hS]hT]hX]Uentries]r (hvX+on_failure() (celery.task.base.Task method)h Utr auhZNh[hhC]ubh})r }r (hHUhIhhJj hOhhQ}r (hhXpyhV]hU]hS]hT]hX]hXmethodr hj uhZNh[hhC]r (h)r }r (hHX7Task.on_failure(exc, task_id, args, kwargs, einfo=None)hIj hJhhOhhQ}r (hV]r h ahhKXcelery.task.baser r }r bhU]hS]hT]hX]r h ahXTask.on_failurehXTaskhuhZNh[hhC]r (h)r }r (hHXTask.hIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXTask.r r }r (hHUhIj ubaubh)r }r (hHX on_failurehIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdX on_failurer r }r (hHUhIj ubaubj_)r }r (hHUhIj hJhhOjbhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (je)r }r (hHXexchQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXexcr r }r (hHUhIj ubahOjmubje)r }r (hHXtask_idhQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXtask_idr r }r (hHUhIj ubahOjmubje)r }r (hHXargshQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXargsr r }r (hHUhIj ubahOjmubje)r }r (hHXkwargshQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXkwargsr r }r (hHUhIj ubahOjmubje)r }r (hHX einfo=NonehQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdX einfo=Noner r }r (hHUhIj ubahOjmubeubeubh)r }r (hHUhIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (h)r }r! (hHXError handler.r" hIj hJj hOhhQ}r# (hS]hT]hU]hV]hX]uhZKh[hhC]r$ hdXError handler.r% r& }r' (hHj" hIj ubaubh)r( }r) (hHX.This is run by the worker when the task fails.r* hIj hJj hOhhQ}r+ (hS]hT]hU]hV]hX]uhZKh[hhC]r, hdX.This is run by the worker when the task fails.r- r. }r/ (hHj* hIj( ubaubj{)r0 }r1 (hHUhIj hJj hOj~hQ}r2 (hS]hT]hU]hV]hX]uhZNh[hhC]r3 j)r4 }r5 (hHUhQ}r6 (hS]hT]hU]hV]hX]uhIj0 hC]r7 (j)r8 }r9 (hHUhQ}r: (hS]hT]hU]hV]hX]uhIj4 hC]r; hdX Parametersr< r= }r> (hHUhIj8 ubahOjubj)r? }r@ (hHUhQ}rA (hS]hT]hU]hV]hX]uhIj4 hC]rB jE)rC }rD (hHUhQ}rE (hS]hT]hU]hV]hX]uhIj? hC]rF (jJ)rG }rH (hHUhQ}rI (hS]hT]hU]hV]hX]uhIjC hC]rJ h)rK }rL (hHUhQ}rM (hS]hT]hU]hV]hX]uhIjG hC]rN (j)rO }rP (hHXexchQ}rQ (hS]hT]hU]hV]hX]uhIjK hC]rR hdXexcrS rT }rU (hHUhIjO ubahOjubhdX -- rV rW }rX (hHUhIjK ubhdX!The exception raised by the task.rY rZ }r[ (hHX!The exception raised by the task.hIjK ubehOhubahOj`ubjJ)r\ }r] (hHUhQ}r^ (hS]hT]hU]hV]hX]uhIjC hC]r_ h)r` }ra (hHUhQ}rb (hS]hT]hU]hV]hX]uhIj\ hC]rc (j)rd }re (hHXtask_idhQ}rf (hS]hT]hU]hV]hX]uhIj` hC]rg hdXtask_idrh ri }rj (hHUhIjd ubahOjubhdX -- rk rl }rm (hHUhIj` ubhdXUnique id of the failed task.rn ro }rp (hHXUnique id of the failed task.hIj` ubehOhubahOj`ubjJ)rq }rr (hHUhQ}rs (hS]hT]hU]hV]hX]uhIjC hC]rt h)ru }rv (hHUhQ}rw (hS]hT]hU]hV]hX]uhIjq hC]rx (j)ry }rz (hHXargshQ}r{ (hS]hT]hU]hV]hX]uhIju hC]r| hdXargsr} r~ }r (hHUhIjy ubahOjubhdX -- r r }r (hHUhIju ubhdX,Original arguments for the task that failed.r r }r (hHX,Original arguments for the task that failed.hIju ubehOhubahOj`ubjJ)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIjC hC]r h)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIj hC]r (j)r }r (hHXkwargshQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXkwargsr r }r (hHUhIj ubahOjubhdX -- r r }r (hHUhIj ubhdX4Original keyword arguments for the task that failed.r r }r (hHX4Original keyword arguments for the task that failed.hIj ubehOhubahOj`ubjJ)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIjC hC]r h)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIj hC]r (j)r }r (hHXeinfohQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXeinfor r }r (hHUhIj ubahOjubhdX -- r r }r (hHUhIj ubh)r }r (hHX-:class:`~celery.datastructures.ExceptionInfo`r hIj hJNhOhhQ}r (UreftypeXclassh҉hX#celery.datastructures.ExceptionInfoU refdomainXpyr hV]hU]U refexplicithS]hT]hX]hhhXTaskhhuhZNhC]r h)r }r (hHj hQ}r (hS]hT]r (hj Xpy-classr ehU]hV]hX]uhIj hC]r hdX ExceptionInfor r }r (hHUhIj ubahOhubaubhdX$ instance, containing the traceback.r r }r (hHX$ instance, containing the traceback.hIj ubehOhubahOj`ubehOjubahOjubehOjubaubh)r }r (hHX,The return value of this handler is ignored.r hIj hJj hOhhQ}r (hS]hT]hU]hV]hX]uhZK h[hhC]r hdX,The return value of this handler is ignored.r r }r (hHj hIj ubaubeubeubhp)r }r (hHUhIhhJXt/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.on_retryr hOhshQ}r (hV]hU]hS]hT]hX]Uentries]r (hvX)on_retry() (celery.task.base.Task method)hUtr auhZNh[hhC]ubh})r }r (hHUhIhhJj hOhhQ}r (hhXpyhV]hU]hS]hT]hX]hXmethodr hj uhZNh[hhC]r (h)r }r (hHX5Task.on_retry(exc, task_id, args, kwargs, einfo=None)hIj hJhhOhhQ}r (hV]r hahhKXcelery.task.baser r }r bhU]hS]hT]hX]r hahX Task.on_retryhXTaskhuhZNh[hhC]r (h)r }r (hHXTask.hIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXTask.r r }r (hHUhIj ubaubh)r }r (hHXon_retryhIj hJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXon_retryr r }r (hHUhIj ubaubj_)r }r (hHUhIj hJhhOjbhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r (je)r }r (hHXexchQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXexcr r }r (hHUhIj ubahOjmubje)r }r (hHXtask_idhQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXtask_idr r }r (hHUhIj ubahOjmubje)r }r (hHXargshQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdXargsr r}r(hHUhIj ubahOjmubje)r}r(hHXkwargshQ}r(hS]hT]hU]hV]hX]uhIj hC]rhdXkwargsrr}r(hHUhIjubahOjmubje)r }r (hHX einfo=NonehQ}r (hS]hT]hU]hV]hX]uhIj hC]r hdX einfo=Noner r}r(hHUhIj ubahOjmubeubeubh)r}r(hHUhIj hJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]r(h)r}r(hHXRetry handler.rhIjhJj hOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXRetry handler.rr}r(hHjhIjubaubh)r}r(hHX9This is run by the worker when the task is to be retried.rhIjhJj hOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]r hdX9This is run by the worker when the task is to be retried.r!r"}r#(hHjhIjubaubj{)r$}r%(hHUhIjhJj hOj~hQ}r&(hS]hT]hU]hV]hX]uhZNh[hhC]r'j)r(}r)(hHUhQ}r*(hS]hT]hU]hV]hX]uhIj$hC]r+(j)r,}r-(hHUhQ}r.(hS]hT]hU]hV]hX]uhIj(hC]r/hdX Parametersr0r1}r2(hHUhIj,ubahOjubj)r3}r4(hHUhQ}r5(hS]hT]hU]hV]hX]uhIj(hC]r6jE)r7}r8(hHUhQ}r9(hS]hT]hU]hV]hX]uhIj3hC]r:(jJ)r;}r<(hHUhQ}r=(hS]hT]hU]hV]hX]uhIj7hC]r>h)r?}r@(hHUhQ}rA(hS]hT]hU]hV]hX]uhIj;hC]rB(j)rC}rD(hHXexchQ}rE(hS]hT]hU]hV]hX]uhIj?hC]rFhdXexcrGrH}rI(hHUhIjCubahOjubhdX -- rJrK}rL(hHUhIj?ubhdXThe exception sent to rMrN}rO(hHXThe exception sent to hIj?ubh)rP}rQ(hHX :meth:`retry`rRhIj?hJNhOhhQ}rS(UreftypeXmethh҉hXretryU refdomainXpyrThV]hU]U refexplicithS]hT]hX]hhhXTaskrUhhuhZNhC]rVh)rW}rX(hHjRhQ}rY(hS]hT]rZ(hjTXpy-methr[ehU]hV]hX]uhIjPhC]r\hdXretry()r]r^}r_(hHUhIjWubahOhubaubhdX.r`}ra(hHX.hIj?ubehOhubahOj`ubjJ)rb}rc(hHUhQ}rd(hS]hT]hU]hV]hX]uhIj7hC]reh)rf}rg(hHUhQ}rh(hS]hT]hU]hV]hX]uhIjbhC]ri(j)rj}rk(hHXtask_idhQ}rl(hS]hT]hU]hV]hX]uhIjfhC]rmhdXtask_idrnro}rp(hHUhIjjubahOjubhdX -- rqrr}rs(hHUhIjfubhdXUnique id of the retried task.rtru}rv(hHXUnique id of the retried task.hIjfubehOhubahOj`ubjJ)rw}rx(hHUhQ}ry(hS]hT]hU]hV]hX]uhIj7hC]rzh)r{}r|(hHUhQ}r}(hS]hT]hU]hV]hX]uhIjwhC]r~(j)r}r(hHXargshQ}r(hS]hT]hU]hV]hX]uhIj{hC]rhdXargsrr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIj{ubhdX(Original arguments for the retried task.rr}r(hHX(Original arguments for the retried task.hIj{ubehOhubahOj`ubjJ)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIj7hC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHXkwargshQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXkwargsrr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubhdX0Original keyword arguments for the retried task.rr}r(hHX0Original keyword arguments for the retried task.hIjubehOhubahOj`ubjJ)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIj7hC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHXeinfohQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXeinforr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubh)r}r(hHX-:class:`~celery.datastructures.ExceptionInfo`rhIjhJNhOhhQ}r(UreftypeXclassh҉hX#celery.datastructures.ExceptionInfoU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjUhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-classrehU]hV]hX]uhIjhC]rhdX ExceptionInforr}r(hHUhIjubahOhubaubhdX$ instance, containing the traceback.rr}r(hHX$ instance, containing the traceback.hIjubehOhubahOj`ubehOjubahOjubehOjubaubh)r}r(hHX,The return value of this handler is ignored.rhIjhJj hOhhQ}r(hS]hT]hU]hV]hX]uhZK h[hhC]rhdX,The return value of this handler is ignored.rr}r(hHjhIjubaubeubeubhp)r}r(hHUhIhhJXv/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.on_successrhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX+on_success() (celery.task.base.Task method)hUtrauhZNh[hhC]ubh})r}r(hHUhIhhJjhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hXmethodrhjuhZNh[hhC]r(h)r}r(hHX.Task.on_success(retval, task_id, args, kwargs)hIjhJhhOhhQ}r(hV]rhahhKXcelery.task.baserr}rbhU]hS]hT]hX]rhahXTask.on_successhXTaskhuhZNh[hhC]r(h)r}r(hHXTask.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdXTask.rr}r(hHUhIjubaubh)r}r(hHX on_successhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdX on_successrr}r(hHUhIjubaubj_)r}r(hHUhIjhJhhOjbhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]r(je)r}r(hHXretvalhQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXretvalrr}r(hHUhIjubahOjmubje)r}r(hHXtask_idhQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXtask_idrr}r(hHUhIjubahOjmubje)r}r(hHXargshQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXargsrr}r(hHUhIjubahOjmubje)r}r (hHXkwargshQ}r (hS]hT]hU]hV]hX]uhIjhC]r hdXkwargsr r }r(hHUhIjubahOjmubeubeubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]r(h)r}r(hHXSuccess handler.rhIjhJjhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXSuccess handler.rr}r(hHjhIjubaubh)r}r(hHX4Run by the worker if the task executes successfully.rhIjhJjhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdX4Run by the worker if the task executes successfully.r r!}r"(hHjhIjubaubj{)r#}r$(hHUhIjhJjhOj~hQ}r%(hS]hT]hU]hV]hX]uhZNh[hhC]r&j)r'}r((hHUhQ}r)(hS]hT]hU]hV]hX]uhIj#hC]r*(j)r+}r,(hHUhQ}r-(hS]hT]hU]hV]hX]uhIj'hC]r.hdX Parametersr/r0}r1(hHUhIj+ubahOjubj)r2}r3(hHUhQ}r4(hS]hT]hU]hV]hX]uhIj'hC]r5jE)r6}r7(hHUhQ}r8(hS]hT]hU]hV]hX]uhIj2hC]r9(jJ)r:}r;(hHUhQ}r<(hS]hT]hU]hV]hX]uhIj6hC]r=h)r>}r?(hHUhQ}r@(hS]hT]hU]hV]hX]uhIj:hC]rA(j)rB}rC(hHXretvalhQ}rD(hS]hT]hU]hV]hX]uhIj>hC]rEhdXretvalrFrG}rH(hHUhIjBubahOjubhdX -- rIrJ}rK(hHUhIj>ubhdXThe return value of the task.rLrM}rN(hHXThe return value of the task.hIj>ubehOhubahOj`ubjJ)rO}rP(hHUhQ}rQ(hS]hT]hU]hV]hX]uhIj6hC]rRh)rS}rT(hHUhQ}rU(hS]hT]hU]hV]hX]uhIjOhC]rV(j)rW}rX(hHXtask_idhQ}rY(hS]hT]hU]hV]hX]uhIjShC]rZhdXtask_idr[r\}r](hHUhIjWubahOjubhdX -- r^r_}r`(hHUhIjSubhdXUnique id of the executed task.rarb}rc(hHXUnique id of the executed task.hIjSubehOhubahOj`ubjJ)rd}re(hHUhQ}rf(hS]hT]hU]hV]hX]uhIj6hC]rgh)rh}ri(hHUhQ}rj(hS]hT]hU]hV]hX]uhIjdhC]rk(j)rl}rm(hHXargshQ}rn(hS]hT]hU]hV]hX]uhIjhhC]rohdXargsrprq}rr(hHUhIjlubahOjubhdX -- rsrt}ru(hHUhIjhubhdX)Original arguments for the executed task.rvrw}rx(hHX)Original arguments for the executed task.hIjhubehOhubahOj`ubjJ)ry}rz(hHUhQ}r{(hS]hT]hU]hV]hX]uhIj6hC]r|h)r}}r~(hHUhQ}r(hS]hT]hU]hV]hX]uhIjyhC]r(j)r}r(hHXkwargshQ}r(hS]hT]hU]hV]hX]uhIj}hC]rhdXkwargsrr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIj}ubhdX1Original keyword arguments for the executed task.rr}r(hHX1Original keyword arguments for the executed task.hIj}ubehOhubahOj`ubehOjubahOjubehOjubaubh)r}r(hHX,The return value of this handler is ignored.rhIjhJjhOhhQ}r(hS]hT]hU]hV]hX]uhZK h[hhC]rhdX,The return value of this handler is ignored.rr}r(hHjhIjubaubeubeubhp)r}r(hHUhIhhJXq/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.retryrhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX,retry() (celery.task.base.Task class method)h.UtrauhZNh[hhC]ubh})r}r(hHUhIhhJjhOhhQ}r(hhXpyrhV]hU]hS]hT]hX]hX classmethodrhjuhZNh[hhC]r(h)r}r(hHXCTask.retry(args=None, kwargs=None, exc=None, throw=True, **options)hIjhJhhOhhQ}r(hV]rh.ahhKXcelery.task.baserr}rbhU]hS]hT]hX]rh.ahX Task.retryhXTaskhuhZNh[hhC]r(h)r}r(hHjRhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdX classmethod rr}r(hHUhIjubaubh)r}r(hHXTask.hIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdXTask.rr}r(hHUhIjubaubh)r}r(hHXretryhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdXretryrr}r(hHUhIjubaubj_)r}r(hHUhIjhJhhOjbhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]r(je)r}r(hHX args=NonehQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX args=Nonerr}r(hHUhIjubahOjmubje)r}r(hHX kwargs=NonehQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX kwargs=Nonerr}r(hHUhIjubahOjmubje)r}r(hHXexc=NonehQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXexc=Nonerr}r(hHUhIjubahOjmubje)r}r(hHX throw=TruehQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX throw=Truerr}r(hHUhIjubahOjmubje)r}r(hHX **optionshQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX **optionsrr}r(hHUhIjubahOjmubeubeubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]r(h)r}r(hHXRetry the task.rhIjhJjhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXRetry the task.rr}r(hHjhIjubaubj{)r}r(hHUhIjhJjhOj~hQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]r(j)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX Parametersrr}r(hHUhIjubahOjubj)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rjE)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r (jJ)r }r (hHUhQ}r (hS]hT]hU]hV]hX]uhIjhC]r h)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIj hC]r(j)r}r(hHXargshQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXargsrr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubhdX#Positional arguments to retry with.rr}r(hHX#Positional arguments to retry with.hIjubehOhubahOj`ubjJ)r}r (hHUhQ}r!(hS]hT]hU]hV]hX]uhIjhC]r"h)r#}r$(hHUhQ}r%(hS]hT]hU]hV]hX]uhIjhC]r&(j)r'}r((hHXkwargshQ}r)(hS]hT]hU]hV]hX]uhIj#hC]r*hdXkwargsr+r,}r-(hHUhIj'ubahOjubhdX -- r.r/}r0(hHUhIj#ubhdX Keyword arguments to retry with.r1r2}r3(hHX Keyword arguments to retry with.hIj#ubehOhubahOj`ubjJ)r4}r5(hHUhQ}r6(hS]hT]hU]hV]hX]uhIjhC]r7h)r8}r9(hHUhQ}r:(hS]hT]hU]hV]hX]uhIj4hC]r;(j)r<}r=(hHXexchQ}r>(hS]hT]hU]hV]hX]uhIj8hC]r?hdXexcr@rA}rB(hHUhIj<ubahOjubhdX -- rCrD}rE(hHUhIj8ubhdX'Optional exception to raise instead of rFrG}rH(hHX'Optional exception to raise instead of hIj8ubh)rI}rJ(hHX1:exc:`~celery.exceptions.MaxRetriesExceededError`rKhIj8hJNhOhhQ}rL(UreftypeXexch҉hX)celery.exceptions.MaxRetriesExceededErrorU refdomainXpyrMhV]hU]U refexplicithS]hT]hX]hhhXTaskrNhhuhZNhC]rOh)rP}rQ(hHjKhQ}rR(hS]hT]rS(hjMXpy-excrTehU]hV]hX]uhIjIhC]rUhdXMaxRetriesExceededErrorrVrW}rX(hHUhIjPubahOhubaubhdX. when the max restart limit has been exceeded.rYrZ}r[(hHX. when the max restart limit has been exceeded.hIj8ubehOhubahOj`ubjJ)r\}r](hHUhQ}r^(hS]hT]hU]hV]hX]uhIjhC]r_h)r`}ra(hHUhQ}rb(hS]hT]hU]hV]hX]uhIj\hC]rc(j)rd}re(hHX countdownhQ}rf(hS]hT]hU]hV]hX]uhIj`hC]rghdX countdownrhri}rj(hHUhIjdubahOjubhdX -- rkrl}rm(hHUhIj`ubhdX'Time in seconds to delay the retry for.rnro}rp(hHX'Time in seconds to delay the retry for.hIj`ubehOhubahOj`ubjJ)rq}rr(hHUhQ}rs(hS]hT]hU]hV]hX]uhIjhC]rth)ru}rv(hHUhQ}rw(hS]hT]hU]hV]hX]uhIjqhC]rx(j)ry}rz(hHXetahQ}r{(hS]hT]hU]hV]hX]uhIjuhC]r|hdXetar}r~}r(hHUhIjyubahOjubhdX -- rr}r(hHUhIjuubhdX6Explicit time and date to run the retry at (must be a rr}r(hHX6Explicit time and date to run the retry at (must be a hIjuubh)r}r(hHX:class:`datetime.datetime`rhIjuhJNhOhhQ}r(UreftypeXclassh҉hXdatetime.datetimeU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjNhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-classrehU]hV]hX]uhIjhC]rhdXdatetime.datetimerr}r(hHUhIjubahOhubaubhdX instance).rr}r(hHX instance).hIjuubehOhubahOj`ubjJ)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHX **optionshQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX **optionsrr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubhdX%Any extra options to pass on to meth:rr}r(hHX%Any extra options to pass on to meth:hIjubcdocutils.nodes title_reference r)r}r(hHX `apply_async`hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX apply_asyncrr}r(hHUhIjubahOUtitle_referencerubhdX. See rr}r(hHX. See hIjubh)r}r(hHX":func:`celery.execute.apply_async`rhIjhJNhOhhQ}r(UreftypeXfunch҉hXcelery.execute.apply_asyncU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjNhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-funcrehU]hV]hX]uhIjhC]rhdXcelery.execute.apply_async()rr}r(hHUhIjubahOhubaubhdX.r}r(hHX.hIjubehOhubahOj`ubjJ)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHXthrowhQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXthrowrr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubhdX If this is rr}r(hHX If this is hIjubh)r}r(hHX ``False``hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXFalserr}r(hHUhIjubahOhubhdX, do not raise the rr}r(hHX, do not raise the hIjubh)r}r(hHX(:exc:`~celery.exceptions.RetryTaskError`rhIjhJNhOhhQ}r(UreftypeXexch҉hX celery.exceptions.RetryTaskErrorU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjNhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-excrehU]hV]hX]uhIjhC]rhdXRetryTaskErrorrr}r(hHUhIjubahOhubaubhdX exception, that tells the worker to mark the task as being retried. Note that this means the task will be marked as failed if the task raises an exception, or successful if it returns.rr}r(hHX exception, that tells the worker to mark the task as being retried. Note that this means the task will be marked as failed if the task raises an exception, or successful if it returns.hIjubehOhubahOj`ubehOjubahOjubehOjubj)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(hdXRaisesrr}r(hHUhIjubhdX r}r(hHUhIjubh)r}r (hHUhQ}r (UreftypeUexcr U reftargetX celery.exceptions.RetryTaskErrorr U refdomainjhV]hU]U refexplicithS]hT]hX]uhIjhC]r hdX celery.exceptions.RetryTaskErrorrr}r(hHj hIjubahOhubehOjubj)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(hdX]To tell the worker that the task has been re-sent for retry. This always happens, unless the rr}r(hHX]To tell the worker that the task has been re-sent for retry. This always happens, unless the hIjubh)r}r(hHX ``throw``hQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXthrowr r!}r"(hHUhIjubahOhubhdX- keyword argument has been explicitly set to r#r$}r%(hHX- keyword argument has been explicitly set to hIjubh)r&}r'(hHX ``False``hQ}r((hS]hT]hU]hV]hX]uhIjhC]r)hdXFalser*r+}r,(hHUhIj&ubahOhubhdX%, and is considered normal operation.r-r.}r/(hHX%, and is considered normal operation.hIjubehOhubahOjubehOjubeubh)r0}r1(hHXExampler2hIjhJjhOhhQ}r3(hS]hT]hU]hV]hX]uhZKh[hhC]r4hdXExampler5r6}r7(hHj2hIj0ubaubj )r8}r9(hHX>>> class TwitterPostStatusTask(Task): ... ... def run(self, username, password, message, **kwargs): ... twitter = Twitter(username, password) ... try: ... twitter.post_status(message) ... except twitter.FailWhale, exc: ... # Retry in 5 minutes. ... self.retry([username, password, message], kwargs, ... countdown=60 * 5, exc=exc)hIjhJNhOj hQ}r:(j j hV]hU]hS]hT]hX]uhZNh[hhC]r;hdX>>> class TwitterPostStatusTask(Task): ... ... def run(self, username, password, message, **kwargs): ... twitter = Twitter(username, password) ... try: ... twitter.post_status(message) ... except twitter.FailWhale, exc: ... # Retry in 5 minutes. ... self.retry([username, password, message], kwargs, ... countdown=60 * 5, exc=exc)r<r=}r>(hHUhIj8ubaubeubeubhp)r?}r@(hHUhIhhJXo/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.runrAhOhshQ}rB(hV]hU]hS]hT]hX]Uentries]rC(hvX$run() (celery.task.base.Task method)h"UtrDauhZNh[hhC]ubh})rE}rF(hHUhIhhJjAhOhhQ}rG(hhXpyhV]hU]hS]hT]hX]hXmethodrHhjHuhZNh[hhC]rI(h)rJ}rK(hHXTask.run(*args, **kwargs)hIjEhJhhOhhQ}rL(hV]rMh"ahhKXcelery.task.baserNrO}rPbhU]hS]hT]hX]rQh"ahXTask.runhXTaskhuhZNh[hhC]rR(h)rS}rT(hHXTask.hIjJhJhhOhhQ}rU(hS]hT]hU]hV]hX]uhZNh[hhC]rVhdXTask.rWrX}rY(hHUhIjSubaubh)rZ}r[(hHXrunhIjJhJhhOhhQ}r\(hS]hT]hU]hV]hX]uhZNh[hhC]r]hdXrunr^r_}r`(hHUhIjZubaubj_)ra}rb(hHUhIjJhJhhOjbhQ}rc(hS]hT]hU]hV]hX]uhZNh[hhC]rd(je)re}rf(hHX*argshQ}rg(hS]hT]hU]hV]hX]uhIjahC]rhhdX*argsrirj}rk(hHUhIjeubahOjmubje)rl}rm(hHX**kwargshQ}rn(hS]hT]hU]hV]hX]uhIjahC]rohdX**kwargsrprq}rr(hHUhIjlubahOjmubeubeubh)rs}rt(hHUhIjEhJhhOhhQ}ru(hS]hT]hU]hV]hX]uhZNh[hhC]rv(h)rw}rx(hHX,The body of the task executed by the worker.ryhIjshJjAhOhhQ}rz(hS]hT]hU]hV]hX]uhZKh[hhC]r{hdX,The body of the task executed by the worker.r|r}}r~(hHjyhIjwubaubh)r}r(hHXwThe following standard keyword arguments are reserved and is passed by the worker if the function/method supports them:rhIjshJjAhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXwThe following standard keyword arguments are reserved and is passed by the worker if the function/method supports them:rr}r(hHjhIjubaubcdocutils.nodes block_quote r)r}r(hHUhIjshJNhOU block_quoterhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rjE)r}r(hHUhQ}r(UbulletrX*hV]hU]hS]hT]hX]uhIjhC]r(jJ)r}r(hHXtask_idrhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHjhIjhJjAhOhhQ}r(hS]hT]hU]hV]hX]uhZKhC]rhdXtask_idrr}r(hHjhIjubaubahOj`ubjJ)r}r(hHX task_namerhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHjhIjhJjAhOhhQ}r(hS]hT]hU]hV]hX]uhZKhC]rhdX task_namerr}r(hHjhIjubaubahOj`ubjJ)r}r(hHX task_retriesrhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHjhIjhJjAhOhhQ}r(hS]hT]hU]hV]hX]uhZKhC]rhdX task_retriesrr}r(hHjhIjubaubahOj`ubjJ)r}r(hHX task_is_eagerrhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHjhIjhJjAhOhhQ}r(hS]hT]hU]hV]hX]uhZK hC]rhdX task_is_eagerrr}r(hHjhIjubaubahOj`ubjJ)r}r(hHXlogfilerhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHjhIjhJjAhOhhQ}r(hS]hT]hU]hV]hX]uhZK hC]rhdXlogfilerr}r(hHjhIjubaubahOj`ubjJ)r}r(hHXloglevelrhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHjhIjhJjAhOhhQ}r(hS]hT]hU]hV]hX]uhZK hC]rhdXloglevelrr}r(hHjhIjubaubahOj`ubjJ)r}r(hHXdelivery_info hQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHX delivery_inforhIjhJjAhOhhQ}r(hS]hT]hU]hV]hX]uhZK hC]rhdX delivery_inforr}r(hHjhIjubaubahOj`ubehOjubaubh)r}r(hHXAdditional standard keyword arguments may be added in the future. To take these default arguments, the task can either list the ones it wants explicitly or just take an arbitrary list of keyword arguments (\*\*kwargs).hIjshJjAhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXAdditional standard keyword arguments may be added in the future. To take these default arguments, the task can either list the ones it wants explicitly or just take an arbitrary list of keyword arguments (**kwargs).rr}r(hHXAdditional standard keyword arguments may be added in the future. To take these default arguments, the task can either list the ones it wants explicitly or just take an arbitrary list of keyword arguments (\*\*kwargs).hIjubaubeubeubhp)r}r(hHUhIhhJXs/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.subtaskrhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX.subtask() (celery.task.base.Task class method)h UtrauhZNh[hhC]ubh})r}r(hHUhIhhJjhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX classmethodrhjuhZNh[hhC]r(h)r}r(hHXTask.subtask(*args, **kwargs)hIjhJhhOhhQ}r(hV]rh ahhKXcelery.task.baserr}rbhU]hS]hT]hX]rh ahX Task.subtaskhXTaskhuhZNh[hhC]r(h)r}r(hHjRhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdX classmethod rr}r(hHUhIjubaubh)r}r (hHXTask.hIjhJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r hdXTask.r r }r(hHUhIjubaubh)r}r(hHXsubtaskhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdXsubtaskrr}r(hHUhIjubaubj_)r}r(hHUhIjhJhhOjbhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]r(je)r}r(hHX*argshQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX*argsrr}r (hHUhIjubahOjmubje)r!}r"(hHX**kwargshQ}r#(hS]hT]hU]hV]hX]uhIjhC]r$hdX**kwargsr%r&}r'(hHUhIj!ubahOjmubeubeubh)r(}r)(hHUhIjhJhhOhhQ}r*(hS]hT]hU]hV]hX]uhZNh[hhC]r+h)r,}r-(hHXReturns a :class:`~celery.task.sets.subtask` object for this task that wraps arguments and execution options for a single task invocation.hIj(hJjhOhhQ}r.(hS]hT]hU]hV]hX]uhZKh[hhC]r/(hdX Returns a r0r1}r2(hHX Returns a hIj,ubh)r3}r4(hHX":class:`~celery.task.sets.subtask`r5hIj,hJNhOhhQ}r6(UreftypeXclassh҉hXcelery.task.sets.subtaskU refdomainXpyr7hV]hU]U refexplicithS]hT]hX]hhhXTaskhhuhZNhC]r8h)r9}r:(hHj5hQ}r;(hS]hT]r<(hj7Xpy-classr=ehU]hV]hX]uhIj3hC]r>hdXsubtaskr?r@}rA(hHUhIj9ubahOhubaubhdX^ object for this task that wraps arguments and execution options for a single task invocation.rBrC}rD(hHX^ object for this task that wraps arguments and execution options for a single task invocation.hIj,ubeubaubeubhp)rE}rF(hHUhIhhJNhOhshQ}rG(hV]hU]hS]hT]hX]Uentries]rH(hvX-update_state() (celery.task.base.Task method)hUtrIauhZNh[hhC]ubh})rJ}rK(hHUhIhhJNhOhhQ}rL(hhXpyhV]hU]hS]hT]hX]hXmethodrMhjMuhZNh[hhC]rN(h)rO}rP(hHX,Task.update_state(task_id, state, meta=None)hIjJhJhhOhhQ}rQ(hV]rRhahhKXcelery.task.baserSrT}rUbhU]hS]hT]hX]rVhahXTask.update_statehXTaskhuhZNh[hhC]rW(h)rX}rY(hHXTask.hIjOhJhhOhhQ}rZ(hS]hT]hU]hV]hX]uhZNh[hhC]r[hdXTask.r\r]}r^(hHUhIjXubaubh)r_}r`(hHX update_statehIjOhJhhOhhQ}ra(hS]hT]hU]hV]hX]uhZNh[hhC]rbhdX update_statercrd}re(hHUhIj_ubaubj_)rf}rg(hHUhIjOhJhhOjbhQ}rh(hS]hT]hU]hV]hX]uhZNh[hhC]ri(je)rj}rk(hHXtask_idhQ}rl(hS]hT]hU]hV]hX]uhIjfhC]rmhdXtask_idrnro}rp(hHUhIjjubahOjmubje)rq}rr(hHXstatehQ}rs(hS]hT]hU]hV]hX]uhIjfhC]rthdXstaterurv}rw(hHUhIjqubahOjmubje)rx}ry(hHX meta=NonehQ}rz(hS]hT]hU]hV]hX]uhIjfhC]r{hdX meta=Noner|r}}r~(hHUhIjxubahOjmubeubeubh)r}r(hHUhIjJhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]r(h)r}r(hHXUpdate task state.rhIjhJXx/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.Task.update_staterhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXUpdate task state.rr}r(hHjhIjubaubj{)r}r(hHUhIjhJNhOj~hQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rj)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX Parametersrr}r(hHUhIjubahOjubj)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rjE)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(jJ)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHXtask_idhQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXtask_idrr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubhdXId of the task to update.rr}r(hHXId of the task to update.rhIjubehOhubahOj`ubjJ)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHXstatehQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXstaterr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubhdX New state (rr}r(hHX New state (hIjubh)r}r(hHX :class:`str`rhIjhJNhOhhQ}r(UreftypeXclassh҉hXstrU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhXTaskrhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-classrehU]hV]hX]uhIjhC]rhdXstrrr}r(hHUhIjubahOhubaubhdX).rr}r(hHX).hIjubehOhubahOj`ubjJ)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHXmetahQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXmetarr}r(hHUhIjubahOjubhdX -- rr}r(hHUhIjubhdXState metadata (rr}r(hHXState metadata (hIjubh)r}r(hHX :class:`dict`rhIjhJNhOhhQ}r(UreftypeXclassh҉hXdictU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-classrehU]hV]hX]uhIjhC]rhdXdictrr}r(hHUhIjubahOhubaubhdX).rr}r(hHX).hIjubehOhubahOj`ubehOjubahOjubehOjubaubeubeubeubeubhp)r}r (hHUhIhFhJNhOhshQ}r (hV]hU]hS]hT]hX]Uentries]r (hvX(PeriodicTask (class in celery.task.base)hUtr auhZNh[hhC]ubh})r }r(hHUhIhFhJNhOhhQ}r(hhXpyrhV]hU]hS]hT]hX]hXclassrhjuhZNh[hhC]r(h)r}r(hHXPeriodicTask()rhIj hJhhOhhQ}r(hV]rhahhKXcelery.task.baserr}rbhU]hS]hT]hX]rhahX PeriodicTaskrhUhuhZNh[hhC]r(h)r}r(hHXclass hIjhJhhOhhQ}r (hS]hT]hU]hV]hX]uhZNh[hhC]r!hdXclass r"r#}r$(hHUhIjubaubh)r%}r&(hHXcelery.task.base.hIjhJhhOhhQ}r'(hS]hT]hU]hV]hX]uhZNh[hhC]r(hdXcelery.task.base.r)r*}r+(hHUhIj%ubaubh)r,}r-(hHjhIjhJhhOhhQ}r.(hS]hT]hU]hV]hX]uhZNh[hhC]r/hdX PeriodicTaskr0r1}r2(hHUhIj,ubaubeubh)r3}r4(hHUhIj hJhhOhhQ}r5(hS]hT]hU]hV]hX]uhZNh[hhC]r6(h)r7}r8(hHXBA periodic task is a task that behaves like a :manpage:`cron` job.r9hIj3hJXs/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.PeriodicTaskr:hOhhQ}r;(hS]hT]hU]hV]hX]uhZKh[hhC]r<(hdX.A periodic task is a task that behaves like a r=r>}r?(hHX.A periodic task is a task that behaves like a hIj7ubcsphinx.addnodes literal_emphasis r@)rA}rB(hHX:manpage:`cron`hQ}rC(hS]hT]rDUmanpagerEahU]hV]hX]uhIj7hC]rFhdXcronrGrH}rI(hHUhIjAubahOUliteral_emphasisrJubhdX job.rKrL}rM(hHX job.hIj7ubeubh)rN}rO(hHX4Results of periodic tasks are not stored by default.rPhIj3hJj:hOhhQ}rQ(hS]hT]hU]hV]hX]uhZKh[hhC]rRhdX4Results of periodic tasks are not stored by default.rSrT}rU(hHjPhIjNubaubhp)rV}rW(hHUhIj3hJj:hOhshQ}rX(hV]hU]hS]hT]hX]Uentries]rY(hvX3run_every (celery.task.base.PeriodicTask attribute)hUtrZauhZNh[hhC]ubh})r[}r\(hHUhIj3hJj:hOhhQ}r](hhXpyhV]hU]hS]hT]hX]hX attributer^hj^uhZNh[hhC]r_(h)r`}ra(hHX run_everyrbhIj[hJj:hOhhQ}rc(hV]rdhahhhU]hS]hT]hX]rehahXPeriodicTask.run_everyhjhuhZK h[hhC]rfh)rg}rh(hHjbhIj`hJj:hOhhQ}ri(hS]hT]hU]hV]hX]uhZK h[hhC]rjhdX run_everyrkrl}rm(hHUhIjgubaubaubh)rn}ro(hHUhIj[hJj:hOhhQ}rp(hS]hT]hU]hV]hX]uhZK h[hhC]rqh)rr}rs(hHX*REQUIRED* Defines how often the task is run (its interval), it can be a :class:`~datetime.timedelta` object, a :class:`~celery.task.schedules.crontab` object or an integer specifying the time in seconds.hIjnhJj:hOhhQ}rt(hS]hT]hU]hV]hX]uhZKh[hhC]ru(j)rv}rw(hHX *REQUIRED*hQ}rx(hS]hT]hU]hV]hX]uhIjrhC]ryhdXREQUIREDrzr{}r|(hHUhIjvubahOjubhdX? Defines how often the task is run (its interval), it can be a r}r~}r(hHX? Defines how often the task is run (its interval), it can be a hIjrubh)r}r(hHX:class:`~datetime.timedelta`rhIjrhJNhOhhQ}r(UreftypeXclassh҉hXdatetime.timedeltaU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-classrehU]hV]hX]uhIjhC]rhdX timedeltarr}r(hHUhIjubahOhubaubhdX object, a rr}r(hHX object, a hIjrubh)r}r(hHX':class:`~celery.task.schedules.crontab`rhIjrhJNhOhhQ}r(UreftypeXclassh҉hXcelery.task.schedules.crontabU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-classrehU]hV]hX]uhIjhC]rhdXcrontabrr}r(hHUhIjubahOhubaubhdX5 object or an integer specifying the time in seconds.rr}r(hHX5 object or an integer specifying the time in seconds.hIjrubeubaubeubhp)r}r(hHUhIj3hJj:hOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX2relative (celery.task.base.PeriodicTask attribute)hUtrauhZNh[hhC]ubh})r}r(hHUhIj3hJj:hOhhQ}r(hhXpyhV]hU]hS]hT]hX]hX attributerhjuhZNh[hhC]r(h)r}r(hHXrelativerhIjhJj:hOhhQ}r(hV]rhahhhU]hS]hT]hX]rhahXPeriodicTask.relativehjhuhZKh[hhC]rh)r}r(hHjhIjhJj:hOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXrelativerr}r(hHUhIjubaubaubh)r}r(hHUhIjhJj:hOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rh)r}r(hHXIf set to :const:`True`, run times are relative to the time when the server was started. This was the previous behaviour, periodic tasks are now scheduled by the clock.hIjhJj:hOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]r(hdX If set to rr}r(hHX If set to hIjubh)r}r(hHX :const:`True`rhIjhJNhOhhQ}r(UreftypeXconsth҉hXTrueU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-constrehU]hV]hX]uhIjhC]rhdXTruerr}r(hHUhIjubahOhubaubhdX, run times are relative to the time when the server was started. This was the previous behaviour, periodic tasks are now scheduled by the clock.rr}r(hHX, run times are relative to the time when the server was started. This was the previous behaviour, periodic tasks are now scheduled by the clock.hIjubeubaubeubj{)r}r(hHUhIj3hJNhOj~hQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rj)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(j)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(hdXRaisesrr}r(hHUhIjubhdX r}r(hHUhIjubh)r}r(hHUhQ}r(Ureftypej U reftargetXNotImplementedErrorrU refdomainjhV]hU]U refexplicithS]hT]hX]uhIjhC]rhdXNotImplementedErrorrr}r(hHjhIjubahOhubehOjubj)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]rh)r}r(hHUhQ}r(hS]hT]hU]hV]hX]uhIjhC]r(hdXif the rr}r(hHXif the hIjubh)r}r(hHX:attr:`run_every`rhIjhJNhOhhQ}r(UreftypeXattrh҉hX run_everyU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-attrrehU]hV]hX]uhIjhC]rhdX run_everyr r }r (hHUhIjubahOhubaubhdX attribute is not defined.r r }r(hHX attribute is not defined.hIjubehOhubahOjubehOjubaubh)r}r(hHXExamplerhIj3hJj:hOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdXExamplerr}r(hHjhIjubaubj )r}r(hHX4>>> from celery.task import tasks, PeriodicTask >>> from datetime import timedelta >>> class EveryThirtySecondsTask(PeriodicTask): ... run_every = timedelta(seconds=30) ... ... def run(self, **kwargs): ... logger = self.get_logger(**kwargs) ... logger.info("Execute every 30 seconds")hIj3hJNhOj hQ}r(j j hV]hU]hS]hT]hX]uhZNh[hhC]rhdX4>>> from celery.task import tasks, PeriodicTask >>> from datetime import timedelta >>> class EveryThirtySecondsTask(PeriodicTask): ... run_every = timedelta(seconds=30) ... ... def run(self, **kwargs): ... logger = self.get_logger(**kwargs) ... logger.info("Execute every 30 seconds")rr}r(hHUhIjubaubj )r}r(hHXV>>> from celery.task import PeriodicTask >>> from celery.task.schedules import crontabhIj3hJNhOj hQ}r (j j hV]hU]hS]hT]hX]uhZNh[hhC]r!hdXV>>> from celery.task import PeriodicTask >>> from celery.task.schedules import crontabr"r#}r$(hHUhIjubaubj )r%}r&(hHX>>> class EveryMondayMorningTask(PeriodicTask): ... run_every = crontab(hour=7, minute=30, day_of_week=1) ... ... def run(self, **kwargs): ... logger = self.get_logger(**kwargs) ... logger.info("Execute every Monday at 7:30AM.")hIj3hJNhOj hQ}r'(j j hV]hU]hS]hT]hX]uhZNh[hhC]r(hdX>>> class EveryMondayMorningTask(PeriodicTask): ... run_every = crontab(hour=7, minute=30, day_of_week=1) ... ... def run(self, **kwargs): ... logger = self.get_logger(**kwargs) ... logger.info("Execute every Monday at 7:30AM.")r)r*}r+(hHUhIj%ubaubj )r,}r-(hHX>>> class EveryMorningTask(PeriodicTask): ... run_every = crontab(hours=7, minute=30) ... ... def run(self, **kwargs): ... logger = self.get_logger(**kwargs) ... logger.info("Execute every day at 7:30AM.")hIj3hJNhOj hQ}r.(j j hV]hU]hS]hT]hX]uhZNh[hhC]r/hdX>>> class EveryMorningTask(PeriodicTask): ... run_every = crontab(hours=7, minute=30) ... ... def run(self, **kwargs): ... logger = self.get_logger(**kwargs) ... logger.info("Execute every day at 7:30AM.")r0r1}r2(hHUhIj,ubaubj )r3}r4(hHX>>> class EveryQuarterPastTheHourTask(PeriodicTask): ... run_every = crontab(minute=15) ... ... def run(self, **kwargs): ... logger = self.get_logger(**kwargs) ... logger.info("Execute every 0:15 past the hour every day.")hIj3hJNhOj hQ}r5(j j hV]hU]hS]hT]hX]uhZNh[hhC]r6hdX>>> class EveryQuarterPastTheHourTask(PeriodicTask): ... run_every = crontab(minute=15) ... ... def run(self, **kwargs): ... logger = self.get_logger(**kwargs) ... logger.info("Execute every 0:15 past the hour every day.")r7r8}r9(hHUhIj3ubaubhp)r:}r;(hHUhIj3hJXz/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.PeriodicTask.is_duer<hOhshQ}r=(hV]hU]hS]hT]hX]Uentries]r>(hvX/is_due() (celery.task.base.PeriodicTask method)hUtr?auhZNh[hhC]ubh})r@}rA(hHUhIj3hJj<hOhhQ}rB(hhXpyhV]hU]hS]hT]hX]hXmethodrChjCuhZNh[hhC]rD(h)rE}rF(hHX PeriodicTask.is_due(last_run_at)hIj@hJhhOhhQ}rG(hV]rHhahhKXcelery.task.baserIrJ}rKbhU]hS]hT]hX]rLhahXPeriodicTask.is_duehjhuhZNh[hhC]rM(h)rN}rO(hHXis_duehIjEhJhhOhhQ}rP(hS]hT]hU]hV]hX]uhZNh[hhC]rQhdXis_duerRrS}rT(hHUhIjNubaubj_)rU}rV(hHUhIjEhJhhOjbhQ}rW(hS]hT]hU]hV]hX]uhZNh[hhC]rXje)rY}rZ(hHX last_run_athQ}r[(hS]hT]hU]hV]hX]uhIjUhC]r\hdX last_run_atr]r^}r_(hHUhIjYubahOjmubaubeubh)r`}ra(hHUhIj@hJhhOhhQ}rb(hS]hT]hU]hV]hX]uhZNh[hhC]rc(h)rd}re(hHX`Returns tuple of two items ``(is_due, next_time_to_run)``, where next time to run is in seconds.hIj`hJj<hOhhQ}rf(hS]hT]hU]hV]hX]uhZKh[hhC]rg(hdXReturns tuple of two items rhri}rj(hHXReturns tuple of two items hIjdubh)rk}rl(hHX``(is_due, next_time_to_run)``hQ}rm(hS]hT]hU]hV]hX]uhIjdhC]rnhdX(is_due, next_time_to_run)rorp}rq(hHUhIjkubahOhubhdX', where next time to run is in seconds.rrrs}rt(hHX', where next time to run is in seconds.hIjdubeubh)ru}rv(hHXBSee :meth:`celery.schedules.schedule.is_due` for more information.hIj`hJj<hOhhQ}rw(hS]hT]hU]hV]hX]uhZKh[hhC]rx(hdXSee ryrz}r{(hHXSee hIjuubh)r|}r}(hHX(:meth:`celery.schedules.schedule.is_due`r~hIjuhJNhOhhQ}r(UreftypeXmethh҉hX celery.schedules.schedule.is_dueU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjhhuhZNhC]rh)r}r(hHj~hQ}r(hS]hT]r(hjXpy-methrehU]hV]hX]uhIj|hC]rhdX"celery.schedules.schedule.is_due()rr}r(hHUhIjubahOhubaubhdX for more information.rr}r(hHX for more information.hIjuubeubeubeubhp)r}r(hHUhIj3hJX/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.PeriodicTask.remaining_estimaterhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX;remaining_estimate() (celery.task.base.PeriodicTask method)h UtrauhZNh[hhC]ubh})r}r(hHUhIj3hJjhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hXmethodrhjuhZNh[hhC]r(h)r}r(hHX,PeriodicTask.remaining_estimate(last_run_at)hIjhJhhOhhQ}r(hV]rh ahhKXcelery.task.baserr}rbhU]hS]hT]hX]rh ahXPeriodicTask.remaining_estimatehjhuhZNh[hhC]r(h)r}r(hHXremaining_estimatehIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdXremaining_estimaterr}r(hHUhIjubaubj_)r}r(hHUhIjhJhhOjbhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rje)r}r(hHX last_run_athQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdX last_run_atrr}r(hHUhIjubahOjmubaubeubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rh)r}r(hHX>Returns when the periodic task should run next as a timedelta.rhIjhJjhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]rhdX>Returns when the periodic task should run next as a timedelta.rr}r(hHjhIjubaubaubeubhp)r}r(hHUhIj3hJX/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.PeriodicTask.timedelta_secondsrhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX:timedelta_seconds() (celery.task.base.PeriodicTask method)hUtrauhZNh[hhC]ubh})r}r(hHUhIj3hJjhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hXmethodrhjuhZNh[hhC]r(h)r}r(hHX%PeriodicTask.timedelta_seconds(delta)rhIjhJhhOhhQ}r(hV]rhahhKXcelery.task.baserr}rbhU]hS]hT]hX]rhahXPeriodicTask.timedelta_secondshjhuhZNh[hhC]r(h)r}r(hHXtimedelta_secondshIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rhdXtimedelta_secondsrr}r(hHUhIjubaubj_)r}r(hHUhIjhJhhOjbhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]rje)r}r(hHXdeltahQ}r(hS]hT]hU]hV]hX]uhIjhC]rhdXdeltarr}r(hHUhIjubahOjmubaubeubh)r}r(hHUhIjhJhhOhhQ}r(hS]hT]hU]hV]hX]uhZNh[hhC]r(h)r}r(hHX0Convert :class:`~datetime.timedelta` to seconds.rhIjhJjhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]r(hdXConvert rr}r(hHXConvert hIjubh)r}r(hHX:class:`~datetime.timedelta`rhIjhJNhOhhQ}r(UreftypeXclassh҉hXdatetime.timedeltaU refdomainXpyrhV]hU]U refexplicithS]hT]hX]hhhjhhuhZNhC]rh)r}r(hHjhQ}r(hS]hT]r(hjXpy-classrehU]hV]hX]uhIjhC]rhdX timedeltarr}r(hHUhIjubahOhubaubhdX to seconds.rr}r(hHX to seconds.hIjubeubh)r}r(hHX(Doesn't account for negative timedeltas.rhIjhJjhOhhQ}r(hS]hT]hU]hV]hX]uhZKh[hhC]r hdX(Doesn't account for negative timedeltas.r r }r (hHjhIjubaubeubeubeubeubhp)r }r(hHUhIhFhJXo/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/base.py:docstring of celery.task.base.TaskTyperhOhshQ}r(hV]hU]hS]hT]hX]Uentries]r(hvX$TaskType (class in celery.task.base)h0UtrauhZNh[hhC]ubh})r}r(hHUhIhFhJjhOhhQ}r(hhXpyhV]hU]hS]hT]hX]hXclassrhjuhZNh[hhC]r(h)r}r(hHXTaskTyperhIjhJhhOhhQ}r(hV]rh0ahhKXcelery.task.baserr}rbhU]hS]hT]hX]r h0ahjhUhuhZNh[hhC]r!(h)r"}r#(hHXclass hIjhJhhOhhQ}r$(hS]hT]hU]hV]hX]uhZNh[hhC]r%hdXclass r&r'}r((hHUhIj"ubaubh)r)}r*(hHXcelery.task.base.hIjhJhhOhhQ}r+(hS]hT]hU]hV]hX]uhZNh[hhC]r,hdXcelery.task.base.r-r.}r/(hHUhIj)ubaubh)r0}r1(hHjhIjhJhhOhhQ}r2(hS]hT]hU]hV]hX]uhZNh[hhC]r3hdXTaskTyper4r5}r6(hHUhIj0ubaubeubh)r7}r8(hHUhIjhJhhOhhQ}r9(hS]hT]hU]hV]hX]uhZNh[hhC]r:(h)r;}r<(hHXMetaclass for tasks.r=hIj7hJjhOhhQ}r>(hS]hT]hU]hV]hX]uhZKh[hhC]r?hdXMetaclass for tasks.r@rA}rB(hHj=hIj;ubaubh)rC}rD(hHXcAutomatically registers the task in the task registry, except if the ``abstract`` attribute is set.hIj7hJjhOhhQ}rE(hS]hT]hU]hV]hX]uhZKh[hhC]rF(hdXEAutomatically registers the task in the task registry, except if the rGrH}rI(hHXEAutomatically registers the task in the task registry, except if the hIjCubh)rJ}rK(hHX ``abstract``hQ}rL(hS]hT]hU]hV]hX]uhIjChC]rMhdXabstractrNrO}rP(hHUhIjJubahOhubhdX attribute is set.rQrR}rS(hHX attribute is set.hIjCubeubh)rT}rU(hHXIf no ``name`` attribute is provided, the name is automatically set to the name of the module it was defined in, and the class name.hIj7hJjhOhhQ}rV(hS]hT]hU]hV]hX]uhZKh[hhC]rW(hdXIf no rXrY}rZ(hHXIf no hIjTubh)r[}r\(hHX``name``hQ}r](hS]hT]hU]hV]hX]uhIjThC]r^hdXnamer_r`}ra(hHUhIj[ubahOhubhdXv attribute is provided, the name is automatically set to the name of the module it was defined in, and the class name.rbrc}rd(hHXv attribute is provided, the name is automatically set to the name of the module it was defined in, and the class name.hIjTubeubeubeubeubahHUU transformerreNU footnote_refsrf}rgUrefnamesrh}riUsymbol_footnotesrj]rkUautofootnote_refsrl]rmUsymbol_footnote_refsrn]roU citationsrp]rqh[hU current_linerrNUtransform_messagesrs]rtcdocutils.nodes system_message ru)rv}rw(hHUhQ}rx(hS]UlevelKhV]hU]UsourcehkhT]hX]UlineKUtypeUINFOryuhC]rzh)r{}r|(hHUhQ}r}(hS]hT]hU]hV]hX]uhIjvhC]r~hdX=Hyperlink target "module-celery.task.base" is not referenced.rr}r(hHUhIj{ubahOhubahOUsystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhaNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUX/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.task.base.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjJhjOhjh jMh jvh j hohih jh jIhjhjhjhjhBcdocutils.nodes topic r)r}r(hHUhIhFhJhMhOUtopicrhQ}r(hS]hT]r(UcontentsrUlocalrehU]hV]rhBahX]rhauhZKh[hhC]rcdocutils.nodes pending r)r}r(hHX.. contents:: :local:hIjU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNshOUpendingrhQ}r(hS]hT]hU]hV]hX]uhC]ubaubhjv hj`hjhjEhjxhjhAhFhj hjhj hjhjhjb h jh!jh"jJh#jh$j h%jh&jzh'jGh(jTh)jh*j h+jh,j&h-jh.jh/jnh0jh1jh2jh3jh4j h5hh6jh7juUsubstitution_namesr}rhOh[hQ}r(hS]hV]hU]UsourcehMhT]hX]uU footnotesr]rUrefidsr}rub.PKYDDqj֬::?celery-2.1-archived/.doctrees/reference/celery.bin.base.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X%celery.bin.base.Command.parse_optionsqXcelery.bin.base.CommandqX#celery.bin.base.Command.get_optionsqXcelery.bin.base.Command.Parserq Xbase command - celery.bin.baseq NXcelery.bin.base.Command.argsq Xcelery.bin.base.Command.versionq X%celery.bin.base.Command.create_parserq Xcelery.bin.base.Command.runqX0celery.bin.base.Command.execute_from_commandlineqXcelery.bin.base.Command.usageqX#celery.bin.base.Command.option_listqUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h Ubase-command-celery-bin-baseqh h h h h h hhhhhhhhhUcontentsquUchildrenq]qcdocutils.nodes section q )q!}q"(U rawsourceq#UUparentq$hUsourceq%cdocutils.nodes reprunicode q&XW/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.bin.base.rstq'q(}q)bUtagnameq*Usectionq+U attributesq,}q-(Udupnamesq.]Uclassesq/]Ubackrefsq0]Uidsq1]q2haUnamesq3]q4h auUlineq5KUdocumentq6hh]q7(cdocutils.nodes title q8)q9}q:(h#XBase Command - celery.bin.baseq;h$h!h%h(h*Utitleqcdocutils.nodes Text q?XBase Command - celery.bin.baseq@qA}qB(h#h;h$h9ubaubcdocutils.nodes target qC)qD}qE(h#Uh$h!h%U qFh*UtargetqGh,}qH(h.]h1]qIXmodule-celery.bin.baseqJah0]Uismodh/]h3]uh5Kh6hh]ubcsphinx.addnodes index qK)qL}qM(h#Uh$h!h%hFh*UindexqNh,}qO(h1]h0]h.]h/]h3]Uentries]qP(UsingleqQXcelery.bin.base (module)Xmodule-celery.bin.baseUtqRauh5Kh6hh]ubhK)qS}qT(h#Uh$h!h%Nh*hNh,}qU(h1]h0]h.]h/]h3]Uentries]qV(hQX"Command (class in celery.bin.base)hUtqWauh5Nh6hh]ubcsphinx.addnodes desc qX)qY}qZ(h#Uh$h!h%Nh*Udescq[h,}q\(Unoindexq]Udomainq^Xpyh1]h0]h.]h/]h3]Uobjtypeq_Xclassq`Udesctypeqah`uh5Nh6hh]qb(csphinx.addnodes desc_signature qc)qd}qe(h#XCommand(defaults=None)qfh$hYh%U qgh*Udesc_signatureqhh,}qi(h1]qjhaUmoduleqkh&Xcelery.bin.baseqlqm}qnbh0]h.]h/]h3]qohaUfullnameqpXCommandqqUclassqrUUfirstqsuh5Nh6hh]qt(csphinx.addnodes desc_annotation qu)qv}qw(h#Xclass h$hdh%hgh*Udesc_annotationqxh,}qy(h.]h/]h0]h1]h3]uh5Nh6hh]qzh?Xclass q{q|}q}(h#Uh$hvubaubcsphinx.addnodes desc_addname q~)q}q(h#Xcelery.bin.base.h$hdh%hgh*U desc_addnameqh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]qh?Xcelery.bin.base.qq}q(h#Uh$hubaubcsphinx.addnodes desc_name q)q}q(h#hqh$hdh%hgh*U desc_nameqh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]qh?XCommandqq}q(h#Uh$hubaubcsphinx.addnodes desc_parameterlist q)q}q(h#Uh$hdh%hgh*Udesc_parameterlistqh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]qcsphinx.addnodes desc_parameter q)q}q(h#X defaults=Noneh,}q(h.]h/]h0]h1]h3]uh$hh]qh?X defaults=Noneqq}q(h#Uh$hubah*Udesc_parameterqubaubeubcsphinx.addnodes desc_content q)q}q(h#Uh$hYh%hgh*U desc_contentqh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]q(hK)q}q(h#Uh$hh%Uh*hNh,}q(h1]h0]h.]h/]h3]Uentries]q(hQX*Parser (celery.bin.base.Command attribute)h Utqauh5Nh6hh]ubhX)q}q(h#Uh$hh%Uh*h[h,}q(h]h^Xpyh1]h0]h.]h/]h3]h_X attributeqhahuh5Nh6hh]q(hc)q}q(h#XCommand.Parserh$hh%hgh*hhh,}q(h1]qh ahkh&Xcelery.bin.baseqq}qbh0]h.]h/]h3]qh ahpXCommand.Parserhrhqhsuh5Nh6hh]qh)q}q(h#XParserh$hh%hgh*hh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]qh?XParserqq}q(h#Uh$hubaubaubh)q}q(h#Uh$hh%hgh*hh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]qcdocutils.nodes paragraph q)q}q(h#Xalias of :class:`OptionParser`h$hh%Uh*U paragraphqh,}q(h.]h/]h0]h1]h3]uh5Kh6hh]q(h?X alias of qɅq}q(h#X alias of h$hubcsphinx.addnodes pending_xref q)q}q(h#X:class:`OptionParser`qh$hh%h(h*U pending_xrefqh,}q(UreftypeXclassUrefwarnq҉U reftargetqX OptionParserU refdomainXpyqh1]h0]U refexplicith.]h/]h3]UrefdocqXreference/celery.bin.baseqUpy:classqhqU py:moduleqXcelery.bin.basequh5K h]qcdocutils.nodes literal q)q}q(h#hh,}q(h.]h/]q(UxrefqhXpy-classqeh0]h1]h3]uh$hh]qh?X OptionParserqㅁq}q(h#Uh$hubah*UliteralqubaubeubaubeubhK)q}q(h#Uh$hh%Nh*hNh,}q(h1]h0]h.]h/]h3]Uentries]q(hQX(args (celery.bin.base.Command attribute)h Utqauh5Nh6hh]ubhX)q}q(h#Uh$hh%Nh*h[h,}q(h]h^Xpyh1]h0]h.]h/]h3]h_X attributeqhahuh5Nh6hh]q(hc)q}q(h#X Command.argsh$hh%U qh*hhh,}q(h1]qh ahkh&Xcelery.bin.baseqq}qbh0]h.]h/]h3]qh ahpX Command.argshrhqhsuh5Nh6hh]q(h)q}q(h#Xargsh$hh%hh*hh,}q(h.]h/]h0]h1]h3]uh5Nh6hh]qh?Xargsqr}r(h#Uh$hubaubhu)r}r(h#X = ''h$hh%hh*hxh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?X = ''rr}r(h#Uh$jubaubeubh)r }r (h#Uh$hh%hh*hh,}r (h.]h/]h0]h1]h3]uh5Nh6hh]ubeubhK)r }r (h#Uh$hh%Nh*hNh,}r(h1]h0]h.]h/]h3]Uentries]r(hQX0create_parser() (celery.bin.base.Command method)h Utrauh5Nh6hh]ubhX)r}r(h#Uh$hh%Nh*h[h,}r(h]h^Xpyh1]h0]h.]h/]h3]h_Xmethodrhajuh5Nh6hh]r(hc)r}r(h#X Command.create_parser(prog_name)h$jh%hgh*hhh,}r(h1]rh ahkh&Xcelery.bin.baserr}rbh0]h.]h/]h3]rh ahpXCommand.create_parserhrhqhsuh5Nh6hh]r(h)r}r (h#X create_parserh$jh%hgh*hh,}r!(h.]h/]h0]h1]h3]uh5Nh6hh]r"h?X create_parserr#r$}r%(h#Uh$jubaubh)r&}r'(h#Uh$jh%hgh*hh,}r((h.]h/]h0]h1]h3]uh5Nh6hh]r)h)r*}r+(h#X prog_nameh,}r,(h.]h/]h0]h1]h3]uh$j&h]r-h?X prog_namer.r/}r0(h#Uh$j*ubah*hubaubeubh)r1}r2(h#Uh$jh%hgh*hh,}r3(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubhK)r4}r5(h#Uh$hh%Nh*hNh,}r6(h1]h0]h.]h/]h3]Uentries]r7(hQX;execute_from_commandline() (celery.bin.base.Command method)hUtr8auh5Nh6hh]ubhX)r9}r:(h#Uh$hh%Nh*h[h,}r;(h]h^Xpyh1]h0]h.]h/]h3]h_Xmethodr<haj<uh5Nh6hh]r=(hc)r>}r?(h#X+Command.execute_from_commandline(argv=None)h$j9h%hgh*hhh,}r@(h1]rAhahkh&Xcelery.bin.baserBrC}rDbh0]h.]h/]h3]rEhahpX Command.execute_from_commandlinehrhqhsuh5Nh6hh]rF(h)rG}rH(h#Xexecute_from_commandlineh$j>h%hgh*hh,}rI(h.]h/]h0]h1]h3]uh5Nh6hh]rJh?Xexecute_from_commandlinerKrL}rM(h#Uh$jGubaubh)rN}rO(h#Uh$j>h%hgh*hh,}rP(h.]h/]h0]h1]h3]uh5Nh6hh]rQh)rR}rS(h#X argv=Noneh,}rT(h.]h/]h0]h1]h3]uh$jNh]rUh?X argv=NonerVrW}rX(h#Uh$jRubah*hubaubeubh)rY}rZ(h#Uh$j9h%hgh*hh,}r[(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubhK)r\}r](h#Uh$hh%Nh*hNh,}r^(h1]h0]h.]h/]h3]Uentries]r_(hQX.get_options() (celery.bin.base.Command method)hUtr`auh5Nh6hh]ubhX)ra}rb(h#Uh$hh%Nh*h[h,}rc(h]h^Xpyh1]h0]h.]h/]h3]h_Xmethodrdhajduh5Nh6hh]re(hc)rf}rg(h#XCommand.get_options()h$jah%hgh*hhh,}rh(h1]rihahkh&Xcelery.bin.baserjrk}rlbh0]h.]h/]h3]rmhahpXCommand.get_optionshrhqhsuh5Nh6hh]rn(h)ro}rp(h#X get_optionsh$jfh%hgh*hh,}rq(h.]h/]h0]h1]h3]uh5Nh6hh]rrh?X get_optionsrsrt}ru(h#Uh$joubaubh)rv}rw(h#Uh$jfh%hgh*hh,}rx(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubh)ry}rz(h#Uh$jah%hgh*hh,}r{(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubhK)r|}r}(h#Uh$hh%Nh*hNh,}r~(h1]h0]h.]h/]h3]Uentries]r(hQX/option_list (celery.bin.base.Command attribute)hUtrauh5Nh6hh]ubhX)r}r(h#Uh$hh%Nh*h[h,}r(h]h^Xpyh1]h0]h.]h/]h3]h_X attributerhajuh5Nh6hh]r(hc)r}r(h#XCommand.option_listh$jh%hh*hhh,}r(h1]rhahkh&Xcelery.bin.baserr}rbh0]h.]h/]h3]rhahpXCommand.option_listhrhqhsuh5Nh6hh]r(h)r}r(h#X option_listh$jh%hh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?X option_listrr}r(h#Uh$jubaubhu)r}r(h#X = ()h$jh%hh*hxh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?X = ()rr}r(h#Uh$jubaubeubh)r}r(h#Uh$jh%hh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubhK)r}r(h#Uh$hh%Xz/var/build/user_builds/celery/checkouts/2.1-archived/celery/bin/base.py:docstring of celery.bin.base.Command.parse_optionsrh*hNh,}r(h1]h0]h.]h/]h3]Uentries]r(hQX0parse_options() (celery.bin.base.Command method)hUtrauh5Nh6hh]ubhX)r}r(h#Uh$hh%jh*h[h,}r(h]h^Xpyh1]h0]h.]h/]h3]h_Xmethodrhajuh5Nh6hh]r(hc)r}r(h#X+Command.parse_options(prog_name, arguments)h$jh%hgh*hhh,}r(h1]rhahkh&Xcelery.bin.baserr}rbh0]h.]h/]h3]rhahpXCommand.parse_optionshrhqhsuh5Nh6hh]r(h)r}r(h#X parse_optionsh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?X parse_optionsrr}r(h#Uh$jubaubh)r}r(h#Uh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]r(h)r}r(h#X prog_nameh,}r(h.]h/]h0]h1]h3]uh$jh]rh?X prog_namerr}r(h#Uh$jubah*hubh)r}r(h#X argumentsh,}r(h.]h/]h0]h1]h3]uh$jh]rh?X argumentsrr}r(h#Uh$jubah*hubeubeubh)r}r(h#Uh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh)r}r(h#XParse the available options.rh$jh%jh*hh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh?XParse the available options.rr}r(h#jh$jubaubaubeubhK)r}r(h#Uh$hh%Nh*hNh,}r(h1]h0]h.]h/]h3]Uentries]r(hQX&run() (celery.bin.base.Command method)hUtrauh5Nh6hh]ubhX)r}r(h#Uh$hh%Nh*h[h,}r(h]h^Xpyh1]h0]h.]h/]h3]h_Xmethodrhajuh5Nh6hh]r(hc)r}r(h#XCommand.run(*args, **options)h$jh%hgh*hhh,}r(h1]rhahkh&Xcelery.bin.baserr}rbh0]h.]h/]h3]rhahpX Command.runhrhqhsuh5Nh6hh]r(h)r}r(h#Xrunh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xrunrr}r(h#Uh$jubaubh)r}r(h#Uh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]r(h)r}r(h#X*argsh,}r(h.]h/]h0]h1]h3]uh$jh]rh?X*argsrr}r(h#Uh$jubah*hubh)r}r(h#X **optionsh,}r(h.]h/]h0]h1]h3]uh$jh]rh?X **optionsrr}r(h#Uh$jubah*hubeubeubh)r}r(h#Uh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubhK)r}r (h#Uh$hh%Nh*hNh,}r (h1]h0]h.]h/]h3]Uentries]r (hQX(usage() (celery.bin.base.Command method)hUtr auh5Nh6hh]ubhX)r }r(h#Uh$hh%Nh*h[h,}r(h]h^Xpyh1]h0]h.]h/]h3]h_Xmethodrhajuh5Nh6hh]r(hc)r}r(h#XCommand.usage()h$j h%hgh*hhh,}r(h1]rhahkh&Xcelery.bin.baserr}rbh0]h.]h/]h3]rhahpX Command.usagehrhqhsuh5Nh6hh]r(h)r}r(h#Xusageh$jh%hgh*hh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xusagerr }r!(h#Uh$jubaubh)r"}r#(h#Uh$jh%hgh*hh,}r$(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubh)r%}r&(h#Uh$j h%hgh*hh,}r'(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubhK)r(}r)(h#Uh$hh%Nh*hNh,}r*(h1]h0]h.]h/]h3]Uentries]r+(hQX+version (celery.bin.base.Command attribute)h Utr,auh5Nh6hh]ubhX)r-}r.(h#Uh$hh%Nh*h[h,}r/(h]h^Xpyh1]h0]h.]h/]h3]h_X attributer0haj0uh5Nh6hh]r1(hc)r2}r3(h#XCommand.versionr4h$j-h%hh*hhh,}r5(h1]r6h ahkh&Xcelery.bin.baser7r8}r9bh0]h.]h/]h3]r:h ahpXCommand.versionhrhqhsuh5Nh6hh]r;(h)r<}r=(h#Xversionh$j2h%hh*hh,}r>(h.]h/]h0]h1]h3]uh5Nh6hh]r?h?Xversionr@rA}rB(h#Uh$j<ubaubhu)rC}rD(h#X = '2.1.4'h$j2h%hh*hxh,}rE(h.]h/]h0]h1]h3]uh5Nh6hh]rFh?X = '2.1.4'rGrH}rI(h#Uh$jCubaubeubh)rJ}rK(h#Uh$j-h%hh*hh,}rL(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubeubeubeubah#UU transformerrMNU footnote_refsrN}rOUrefnamesrP}rQUsymbol_footnotesrR]rSUautofootnote_refsrT]rUUsymbol_footnote_refsrV]rWU citationsrX]rYh6hU current_linerZNUtransform_messagesr[]r\cdocutils.nodes system_message r])r^}r_(h#Uh,}r`(h.]UlevelKh1]h0]UsourcehFh/]h3]UlineKUtypeUINFOrauh]rbh)rc}rd(h#Uh,}re(h.]h/]h0]h1]h3]uh$j^h]rfh?X<Hyperlink target "module-celery.bin.base" is not referenced.rgrh}ri(h#Uh$jcubah*hubah*Usystem_messagerjubaUreporterrkNUid_startrlKU autofootnotesrm]rnU citation_refsro}rpUindirect_targetsrq]rrUsettingsrs(cdocutils.frontend Values rtoru}rv(Ufootnote_backlinksrwKUrecord_dependenciesrxNU rfc_base_urlryUhttp://tools.ietf.org/html/rzU tracebackr{Upep_referencesr|NUstrip_commentsr}NU toc_backlinksr~UentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhhjhh!hjhcdocutils.nodes topic r)r}r(h#Uh$h!h%h(h*Utopicrh,}r(h.]h/]r(UcontentsrUlocalreh0]h1]rhah3]rhauh5Kh6hh]rcdocutils.nodes pending r)r}r(h#X.. contents:: :local:h$jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh*Upendingrh,}r(h.]h/]h0]h1]h3]uh]ubaubuUsubstitution_namesr}rh*h6h,}r(h.]h1]h0]Usourceh(h/]h3]uU footnotesr]rUrefidsr}rub.PKYDDKassBcelery-2.1-archived/.doctrees/reference/celery.bin.celeryd.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X$celery.bin.celeryd.WorkerCommand.runqXceleryd - celery.bin.celerydqNXcelery.bin.celeryd.mainqX,celery.bin.celeryd.WorkerCommand.get_optionsq Xcelery.bin.celeryd.windows_mainq X celery.bin.celeryd.WorkerCommandq Ucontentsq NuUsubstitution_defsq }qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhUceleryd-celery-bin-celerydqhhh h h h h h h UcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode q XZ/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.bin.celeryd.rstq!q"}q#bUtagnameq$Usectionq%U attributesq&}q'(Udupnamesq(]Uclassesq)]Ubackrefsq*]Uidsq+]q,haUnamesq-]q.hauUlineq/KUdocumentq0hh]q1(cdocutils.nodes title q2)q3}q4(hXceleryd - celery.bin.celerydq5hhhh"h$Utitleq6h&}q7(h(]h)]h*]h+]h-]uh/Kh0hh]q8cdocutils.nodes Text q9Xceleryd - celery.bin.celerydq:q;}q<(hh5hh3ubaubcdocutils.nodes target q=)q>}q?(hUhhhU q@h$UtargetqAh&}qB(h(]h+]qCXmodule-celery.bin.celerydqDah*]Uismodh)]h-]uh/Kh0hh]ubcsphinx.addnodes index qE)qF}qG(hUhhhh@h$UindexqHh&}qI(h+]h*]h(]h)]h-]Uentries]qJ(UsingleqKXcelery.bin.celeryd (module)Xmodule-celery.bin.celerydUtqLauh/Kh0hh]ubcdocutils.nodes paragraph qM)qN}qO(hXcelerydqPhhhXj/var/build/user_builds/celery/checkouts/2.1-archived/celery/bin/celeryd.py:docstring of celery.bin.celerydqQh$U paragraphqRh&}qS(h(]h)]h*]h+]h-]uh/Kh0hh]qTh9XcelerydqUqV}qW(hhPhhNubaubhE)qX}qY(hUhhhhQh$hHh&}qZ(h+]h*]h(]h)]h-]Uentries]q[(Upairq\X.celeryd command line option; -c, --concurrencyXcmdoption-celeryd-cq]Utq^auh/Nh0hh]ubcsphinx.addnodes desc q_)q`}qa(hUhhhhQh$Udescqbh&}qc(UnoindexqdUdomainqeXstdh+]h*]h(]h)]h-]UobjtypeqfX cmdoptionqgUdesctypeqhhguh/Nh0hh]qi(csphinx.addnodes desc_signature qj)qk}ql(hX-c, --concurrencyhh`hhQh$Udesc_signatureqmh&}qn(h+]qoh]ah*]h(]h)]h-]Ufirstqpuh/K h0hh]qq(csphinx.addnodes desc_name qr)qs}qt(hX-cquhhkhhQh$U desc_nameqvh&}qw(h(]h)]h*]h+]h-]uh/K h0hh]qxh9X-cqyqz}q{(hUhhsubaubcsphinx.addnodes desc_addname q|)q}}q~(hXhhkhhQh$U desc_addnameqh&}q(h(]h)]h*]h+]h-]uh/K h0hh]ubh|)q}q(hU, qhhkhhQh$hh&}q(h(]h)]h*]h+]h-]uh/K h0hh]qh9X, qq}q(hUhhubaubhr)q}q(hX --concurrencyhhkhhQh$hvh&}q(h(]h)]h*]h+]h-]uh/K h0hh]qh9X --concurrencyqq}q(hUhhubaubh|)q}q(hXhhkhhQh$hh&}q(h(]h)]h*]h+]h-]uh/K h0hh]ubeubcsphinx.addnodes desc_content q)q}q(hUhh`hhQh$U desc_contentqh&}q(h(]h)]h*]h+]h-]uh/K h0hh]qhM)q}q(hXkNumber of child processes processing the queue. The default is the number of CPUs available on your system.qhhhhQh$hRh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]qh9XkNumber of child processes processing the queue. The default is the number of CPUs available on your system.qq}q(hhhhubaubaubeubhE)q}q(hUhhhhQh$hHh&}q(h+]h*]h(]h)]h-]Uentries]q(h\X*celeryd command line option; -f, --logfileXcmdoption-celeryd-fqUtqauh/Nh0hh]ubh_)q}q(hUhhhhQh$hbh&}q(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionqhhhuh/Nh0hh]q(hj)q}q(hX -f, --logfilehhhhQh$hmh&}q(h+]qhah*]h(]h)]h-]hpuh/K h0hh]q(hr)q}q(hX-fqhhhhQh$hvh&}q(h(]h)]h*]h+]h-]uh/K h0hh]qh9X-fqq}q(hUhhubaubh|)q}q(hXhhhhQh$hh&}q(h(]h)]h*]h+]h-]uh/K h0hh]ubh|)q}q(hhhhhhQh$hh&}q(h(]h)]h*]h+]h-]uh/K h0hh]qh9X, qq}q(hUhhubaubhr)q}q(hX --logfilehhhhQh$hvh&}q(h(]h)]h*]h+]h-]uh/K h0hh]qh9X --logfileqDžq}q(hUhhubaubh|)q}q(hXhhhhQh$hh&}q(h(]h)]h*]h+]h-]uh/K h0hh]ubeubh)q}q(hUhhhhQh$hh&}q(h(]h)]h*]h+]h-]uh/K h0hh]qhM)q}q(hXAPath to log file. If no logfile is specified, ``stderr`` is used.hhhhQh$hRh&}q(h(]h)]h*]h+]h-]uh/K h0hh]q(h9X.Path to log file. If no logfile is specified, qՅq}q(hX.Path to log file. If no logfile is specified, hhubcdocutils.nodes literal q)q}q(hX ``stderr``h&}q(h(]h)]h*]h+]h-]uhhh]qh9Xstderrq݅q}q(hUhhubah$Uliteralqubh9X is used.qᅁq}q(hX is used.hhubeubaubeubhE)q}q(hUhhhhQh$hHh&}q(h+]h*]h(]h)]h-]Uentries]q(h\X+celeryd command line option; -l, --loglevelXcmdoption-celeryd-lqUtqauh/Nh0hh]ubh_)q}q(hUhhhhQh$hbh&}q(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionqhhhuh/Nh0hh]q(hj)q}q(hX-l, --loglevelhhhhQh$hmh&}q(h+]qhah*]h(]h)]h-]hpuh/Kh0hh]q(hr)q}q(hX-lqhhhhQh$hvh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]qh9X-lqq}q(hUhhubaubh|)q}q(hXhhhhQh$hh&}q(h(]h)]h*]h+]h-]uh/Kh0hh]ubh|)q}r(hhhhhhQh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rh9X, rr}r(hUhhubaubhr)r}r(hX --loglevelhhhhQh$hvh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]r h9X --loglevelr r }r (hUhjubaubh|)r }r(hXhhhhQh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]ubeubh)r}r(hUhhhhQh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rhM)r}r(hXfLogging level, choose between ``DEBUG``, ``INFO``, ``WARNING``, ``ERROR``, ``CRITICAL``, or ``FATAL``.hjhhQh$hRh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]r(h9XLogging level, choose between rr}r(hXLogging level, choose between hjubh)r}r(hX ``DEBUG``h&}r(h(]h)]h*]h+]h-]uhjh]rh9XDEBUGrr }r!(hUhjubah$hubh9X, r"r#}r$(hX, hjubh)r%}r&(hX``INFO``h&}r'(h(]h)]h*]h+]h-]uhjh]r(h9XINFOr)r*}r+(hUhj%ubah$hubh9X, r,r-}r.(hX, hjubh)r/}r0(hX ``WARNING``h&}r1(h(]h)]h*]h+]h-]uhjh]r2h9XWARNINGr3r4}r5(hUhj/ubah$hubh9X, r6r7}r8(hX, hjubh)r9}r:(hX ``ERROR``h&}r;(h(]h)]h*]h+]h-]uhjh]r<h9XERRORr=r>}r?(hUhj9ubah$hubh9X, r@rA}rB(hX, hjubh)rC}rD(hX ``CRITICAL``h&}rE(h(]h)]h*]h+]h-]uhjh]rFh9XCRITICALrGrH}rI(hUhjCubah$hubh9X, or rJrK}rL(hX, or hjubh)rM}rN(hX ``FATAL``h&}rO(h(]h)]h*]h+]h-]uhjh]rPh9XFATALrQrR}rS(hUhjMubah$hubh9X.rT}rU(hX.hjubeubaubeubhE)rV}rW(hUhhhhQh$hHh&}rX(h+]h*]h(]h)]h-]Uentries]rY(h\X+celeryd command line option; -n, --hostnameXcmdoption-celeryd-nrZUtr[auh/Nh0hh]ubh_)r\}r](hUhhhhQh$hbh&}r^(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionr_hhj_uh/Nh0hh]r`(hj)ra}rb(hX-n, --hostnamehj\hhQh$hmh&}rc(h+]rdjZah*]h(]h)]h-]hpuh/Kh0hh]re(hr)rf}rg(hX-nrhhjahhQh$hvh&}ri(h(]h)]h*]h+]h-]uh/Kh0hh]rjh9X-nrkrl}rm(hUhjfubaubh|)rn}ro(hXhjahhQh$hh&}rp(h(]h)]h*]h+]h-]uh/Kh0hh]ubh|)rq}rr(hhhjahhQh$hh&}rs(h(]h)]h*]h+]h-]uh/Kh0hh]rth9X, rurv}rw(hUhjqubaubhr)rx}ry(hX --hostnamehjahhQh$hvh&}rz(h(]h)]h*]h+]h-]uh/Kh0hh]r{h9X --hostnamer|r}}r~(hUhjxubaubh|)r}r(hXhjahhQh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]ubeubh)r}r(hUhj\hhQh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rhM)r}r(hXSet custom hostname.rhjhhQh$hRh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rh9XSet custom hostname.rr}r(hjhjubaubaubeubhE)r}r(hUhhhhQh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(h\X'celeryd command line option; -B, --beatXcmdoption-celeryd-BrUtrauh/Nh0hh]ubh_)r}r(hUhhhhQh$hbh&}r(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionrhhjuh/Nh0hh]r(hj)r}r(hX -B, --beathjhhQh$hmh&}r(h+]rjah*]h(]h)]h-]hpuh/Kh0hh]r(hr)r}r(hX-BrhjhhQh$hvh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rh9X-Brr}r(hUhjubaubh|)r}r(hXhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]ubh|)r}r(hhhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rh9X, rr}r(hUhjubaubhr)r}r(hX--beathjhhQh$hvh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rh9X--beatrr}r(hUhjubaubh|)r}r(hXhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]ubeubh)r}r(hUhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rhM)r}r(hXvAlso run the ``celerybeat`` periodic task scheduler. Please note that there must only be one instance of this service.hjhhQh$hRh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]r(h9X Also run the rr}r(hX Also run the hjubh)r}r(hX``celerybeat``h&}r(h(]h)]h*]h+]h-]uhjh]rh9X celerybeatrr}r(hUhjubah$hubh9X[ periodic task scheduler. Please note that there must only be one instance of this service.rr}r(hX[ periodic task scheduler. Please note that there must only be one instance of this service.hjubeubaubeubhE)r}r(hUhhhhQh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(h\X)celeryd command line option; -Q, --queuesXcmdoption-celeryd-QrUtrauh/Nh0hh]ubh_)r}r(hUhhhhQh$hbh&}r(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionrhhjuh/Nh0hh]r(hj)r}r(hX -Q, --queueshjhhQh$hmh&}r(h+]rjah*]h(]h)]h-]hpuh/K!h0hh]r(hr)r}r(hX-QrhjhhQh$hvh&}r(h(]h)]h*]h+]h-]uh/K!h0hh]rh9X-Qrr}r(hUhjubaubh|)r}r(hXhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K!h0hh]ubh|)r}r(hhhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K!h0hh]rh9X, rr}r(hUhjubaubhr)r}r(hX--queueshjhhQh$hvh&}r(h(]h)]h*]h+]h-]uh/K!h0hh]rh9X--queuesrr}r(hUhjubaubh|)r}r(hXhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K!h0hh]ubeubh)r}r(hUhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K!h0hh]rhM)r}r(hXList of queues to enable for this worker, separated by comma. By default all configured queues are enabled. Example: ``-Q video,image``hjhhQh$hRh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]r(h9XuList of queues to enable for this worker, separated by comma. By default all configured queues are enabled. Example: rr}r(hXuList of queues to enable for this worker, separated by comma. By default all configured queues are enabled. Example: hjubh)r}r(hX``-Q video,image``h&}r(h(]h)]h*]h+]h-]uhjh]r h9X-Q video,imager r }r (hUhjubah$hubeubaubeubhE)r }r(hUhhhhQh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(h\X*celeryd command line option; -I, --includeXcmdoption-celeryd-IrUtrauh/Nh0hh]ubh_)r}r(hUhhhhQh$hbh&}r(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionrhhjuh/Nh0hh]r(hj)r}r(hX -I, --includehjhhQh$hmh&}r(h+]rjah*]h(]h)]h-]hpuh/K&h0hh]r(hr)r}r(hX-IrhjhhQh$hvh&}r (h(]h)]h*]h+]h-]uh/K&h0hh]r!h9X-Ir"r#}r$(hUhjubaubh|)r%}r&(hXhjhhQh$hh&}r'(h(]h)]h*]h+]h-]uh/K&h0hh]ubh|)r(}r)(hhhjhhQh$hh&}r*(h(]h)]h*]h+]h-]uh/K&h0hh]r+h9X, r,r-}r.(hUhj(ubaubhr)r/}r0(hX --includehjhhQh$hvh&}r1(h(]h)]h*]h+]h-]uh/K&h0hh]r2h9X --includer3r4}r5(hUhj/ubaubh|)r6}r7(hXhjhhQh$hh&}r8(h(]h)]h*]h+]h-]uh/K&h0hh]ubeubh)r9}r:(hUhjhhQh$hh&}r;(h(]h)]h*]h+]h-]uh/K&h0hh]r<hM)r=}r>(hXUComma separated list of additional modules to import. Example: -I foo.tasks,bar.tasksr?hj9hhQh$hRh&}r@(h(]h)]h*]h+]h-]uh/K$h0hh]rAh9XUComma separated list of additional modules to import. Example: -I foo.tasks,bar.tasksrBrC}rD(hj?hj=ubaubaubeubhE)rE}rF(hUhhhhQh$hHh&}rG(h+]h*]h(]h)]h-]Uentries]rH(h\X+celeryd command line option; -s, --scheduleXcmdoption-celeryd-srIUtrJauh/Nh0hh]ubh_)rK}rL(hUhhhhQh$hbh&}rM(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionrNhhjNuh/Nh0hh]rO(hj)rP}rQ(hX-s, --schedulehjKhhQh$hmh&}rR(h+]rSjIah*]h(]h)]h-]hpuh/K,h0hh]rT(hr)rU}rV(hX-srWhjPhhQh$hvh&}rX(h(]h)]h*]h+]h-]uh/K,h0hh]rYh9X-srZr[}r\(hUhjUubaubh|)r]}r^(hXhjPhhQh$hh&}r_(h(]h)]h*]h+]h-]uh/K,h0hh]ubh|)r`}ra(hhhjPhhQh$hh&}rb(h(]h)]h*]h+]h-]uh/K,h0hh]rch9X, rdre}rf(hUhj`ubaubhr)rg}rh(hX --schedulehjPhhQh$hvh&}ri(h(]h)]h*]h+]h-]uh/K,h0hh]rjh9X --schedulerkrl}rm(hUhjgubaubh|)rn}ro(hXhjPhhQh$hh&}rp(h(]h)]h*]h+]h-]uh/K,h0hh]ubeubh)rq}rr(hUhjKhhQh$hh&}rs(h(]h)]h*]h+]h-]uh/K,h0hh]rthM)ru}rv(hXPath to the schedule database if running with the ``-B`` option. Defaults to ``celerybeat-schedule``. The extension ".db" will be appended to the filename.hjqhhQh$hRh&}rw(h(]h)]h*]h+]h-]uh/K)h0hh]rx(h9X2Path to the schedule database if running with the ryrz}r{(hX2Path to the schedule database if running with the hjuubh)r|}r}(hX``-B``h&}r~(h(]h)]h*]h+]h-]uhjuh]rh9X-Brr}r(hUhj|ubah$hubh9X option. Defaults to rr}r(hX option. Defaults to hjuubh)r}r(hX``celerybeat-schedule``h&}r(h(]h)]h*]h+]h-]uhjuh]rh9Xcelerybeat-schedulerr}r(hUhjubah$hubh9X7. The extension ".db" will be appended to the filename.rr}r(hX7. The extension ".db" will be appended to the filename.hjuubeubaubeubhE)r}r(hUhhhhQh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(h\X(celeryd command line option; --schedulerXcmdoption-celeryd--schedulerrUtrauh/Nh0hh]ubh_)r}r(hUhhhhQh$hbh&}r(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionrhhjuh/Nh0hh]r(hj)r}r(hX --schedulerrhjhhQh$hmh&}r(h+]rjah*]h(]h)]h-]hpuh/K0h0hh]r(hr)r}r(hjhjhhQh$hvh&}r(h(]h)]h*]h+]h-]uh/K0h0hh]rh9X --schedulerrr}r(hUhjubaubh|)r}r(hXhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K0h0hh]ubeubh)r}r(hUhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K0h0hh]rhM)r}r(hXBScheduler class to use. Default is celery.beat.PersistentSchedulerrhjhhQh$hRh&}r(h(]h)]h*]h+]h-]uh/K/h0hh]rh9XBScheduler class to use. Default is celery.beat.PersistentSchedulerrr}r(hjhjubaubaubeubhE)r}r(hUhhhhQh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(h\X)celeryd command line option; -E, --eventsXcmdoption-celeryd-ErUtrauh/Nh0hh]ubh_)r}r(hUhhhhQh$hbh&}r(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionrhhjuh/Nh0hh]r(hj)r}r(hX -E, --eventshjhhQh$hmh&}r(h+]rjah*]h(]h)]h-]hpuh/K4h0hh]r(hr)r}r(hX-ErhjhhQh$hvh&}r(h(]h)]h*]h+]h-]uh/K4h0hh]rh9X-Err}r(hUhjubaubh|)r}r(hXhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K4h0hh]ubh|)r}r(hhhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K4h0hh]rh9X, rr}r(hUhjubaubhr)r}r(hX--eventshjhhQh$hvh&}r(h(]h)]h*]h+]h-]uh/K4h0hh]rh9X--eventsrr}r(hUhjubaubh|)r}r(hXhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K4h0hh]ubeubh)r}r(hUhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K4h0hh]rhM)r}r(hX@Send events that can be captured by monitors like ``celerymon``.hjhhQh$hRh&}r(h(]h)]h*]h+]h-]uh/K3h0hh]r(h9X2Send events that can be captured by monitors like rr}r(hX2Send events that can be captured by monitors like hjubh)r}r(hX ``celerymon``h&}r(h(]h)]h*]h+]h-]uhjh]rh9X celerymonrr}r(hUhjubah$hubh9X.r}r(hX.hjubeubaubeubhE)r}r(hUhhhhQh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(h\X/celeryd command line option; --purge, --discardXcmdoption-celeryd--purgerUtrauh/Nh0hh]ubh_)r}r(hUhhhhQh$hbh&}r(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionrhhjuh/Nh0hh]r(hj)r}r(hX--purge, --discardhjhhQh$hmh&}r(h+]rjah*]h(]h)]h-]hpuh/K:h0hh]r(hr)r}r(hX--purger hjhhQh$hvh&}r (h(]h)]h*]h+]h-]uh/K:h0hh]r h9X--purger r }r(hUhjubaubh|)r}r(hXhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K:h0hh]ubh|)r}r(hhhjhhQh$hh&}r(h(]h)]h*]h+]h-]uh/K:h0hh]rh9X, rr}r(hUhjubaubhr)r}r(hX --discardhjhhQh$hvh&}r(h(]h)]h*]h+]h-]uh/K:h0hh]rh9X --discardrr}r(hUhjubaubh|)r }r!(hXhjhhQh$hh&}r"(h(]h)]h*]h+]h-]uh/K:h0hh]ubeubh)r#}r$(hUhjhhQh$hh&}r%(h(]h)]h*]h+]h-]uh/K:h0hh]r&hM)r'}r((hXDiscard all waiting tasks before the daemon is started. **WARNING**: This is unrecoverable, and the tasks will be deleted from the messaging server.hj#hhQh$hRh&}r)(h(]h)]h*]h+]h-]uh/K7h0hh]r*(h9X8Discard all waiting tasks before the daemon is started. r+r,}r-(hX8Discard all waiting tasks before the daemon is started. hj'ubcdocutils.nodes strong r.)r/}r0(hX **WARNING**h&}r1(h(]h)]h*]h+]h-]uhj'h]r2h9XWARNINGr3r4}r5(hUhj/ubah$Ustrongr6ubh9XQ: This is unrecoverable, and the tasks will be deleted from the messaging server.r7r8}r9(hXQ: This is unrecoverable, and the tasks will be deleted from the messaging server.hj'ubeubaubeubhE)r:}r;(hUhhhhQh$hHh&}r<(h+]h*]h(]h)]h-]Uentries]r=(h\X)celeryd command line option; --time-limitXcmdoption-celeryd--time-limitr>Utr?auh/Nh0hh]ubh_)r@}rA(hUhhhhQh$hbh&}rB(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionrChhjCuh/Nh0hh]rD(hj)rE}rF(hX --time-limitrGhj@hhQh$hmh&}rH(h+]rIj>ah*]h(]h)]h-]hpuh/K>h0hh]rJ(hr)rK}rL(hjGhjEhhQh$hvh&}rM(h(]h)]h*]h+]h-]uh/K>h0hh]rNh9X --time-limitrOrP}rQ(hUhjKubaubh|)rR}rS(hXhjEhhQh$hh&}rT(h(]h)]h*]h+]h-]uh/K>h0hh]ubeubh)rU}rV(hUhj@hhQh$hh&}rW(h(]h)]h*]h+]h-]uh/K>h0hh]rXhM)rY}rZ(hX1Enables a hard time limit (in seconds) for tasks.r[hjUhhQh$hRh&}r\(h(]h)]h*]h+]h-]uh/K=h0hh]r]h9X1Enables a hard time limit (in seconds) for tasks.r^r_}r`(hj[hjYubaubaubeubhE)ra}rb(hUhhhhQh$hHh&}rc(h+]h*]h(]h)]h-]Uentries]rd(h\X.celeryd command line option; --soft-time-limitX"cmdoption-celeryd--soft-time-limitreUtrfauh/Nh0hh]ubh_)rg}rh(hUhhhhQh$hbh&}ri(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionrjhhjjuh/Nh0hh]rk(hj)rl}rm(hX--soft-time-limitrnhjghhQh$hmh&}ro(h+]rpjeah*]h(]h)]h-]hpuh/KBh0hh]rq(hr)rr}rs(hjnhjlhhQh$hvh&}rt(h(]h)]h*]h+]h-]uh/KBh0hh]ruh9X--soft-time-limitrvrw}rx(hUhjrubaubh|)ry}rz(hXhjlhhQh$hh&}r{(h(]h)]h*]h+]h-]uh/KBh0hh]ubeubh)r|}r}(hUhjghhQh$hh&}r~(h(]h)]h*]h+]h-]uh/KBh0hh]rhM)r}r(hX1Enables a soft time limit (in seconds) for tasks.rhj|hhQh$hRh&}r(h(]h)]h*]h+]h-]uh/KAh0hh]rh9X1Enables a soft time limit (in seconds) for tasks.rr}r(hjhjubaubaubeubhE)r}r(hUhhhhQh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(h\X/celeryd command line option; --maxtasksperchildX#cmdoption-celeryd--maxtasksperchildrUtrauh/Nh0hh]ubh_)r}r(hUhhhhQh$hbh&}r(hdheXstdh+]h*]h(]h)]h-]hfX cmdoptionrhhjuh/Nh0hh]r(hj)r}r(hX--maxtasksperchildrhjhh@h$hmh&}r(h+]rjah*]h(]h)]h-]hpuh/Kh0hh]r(hr)r}r(hjhjhh@h$hvh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rh9X--maxtasksperchildrr}r(hUhjubaubh|)r}r(hXhjhh@h$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]ubeubh)r}r(hUhjhh@h$hh&}r(h(]h)]h*]h+]h-]uh/Kh0hh]rhM)r}r(hXfMaximum number of tasks a pool worker can execute before it's terminated and replaced by a new worker.rhjhhQh$hRh&}r(h(]h)]h*]h+]h-]uh/KEh0hh]rh9XfMaximum number of tasks a pool worker can execute before it's terminated and replaced by a new worker.rr}r(hjhjubaubaubeubhE)r}r(hUhhhNh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(hKX+WorkerCommand (class in celery.bin.celeryd)h Utrauh/Nh0hh]ubh_)r}r(hUhhhNh$hbh&}r(hdheXpyh+]h*]h(]h)]h-]hfXclassrhhjuh/Nh0hh]r(hj)r}r(hXWorkerCommand(defaults=None)rhjhU rh$hmh&}r(h+]rh aUmodulerh Xcelery.bin.celerydrr}rbh*]h(]h)]h-]rh aUfullnamerX WorkerCommandrUclassrUhpuh/Nh0hh]r(csphinx.addnodes desc_annotation r)r}r(hXclass hjhjh$Udesc_annotationrh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9Xclass rr}r(hUhjubaubh|)r}r(hXcelery.bin.celeryd.hjhjh$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9Xcelery.bin.celeryd.rr}r(hUhjubaubhr)r}r(hjhjhjh$hvh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9X WorkerCommandrr}r(hUhjubaubcsphinx.addnodes desc_parameterlist r)r}r(hUhjhjh$Udesc_parameterlistrh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rcsphinx.addnodes desc_parameter r)r}r(hX defaults=Noneh&}r(h(]h)]h*]h+]h-]uhjh]rh9X defaults=Nonerr}r(hUhjubah$Udesc_parameterrubaubeubh)r}r(hUhjhjh$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]r(hE)r}r(hUhjhNh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(hKX7get_options() (celery.bin.celeryd.WorkerCommand method)h Utrauh/Nh0hh]ubh_)r}r(hUhjhNh$hbh&}r(hdheXpyh+]h*]h(]h)]h-]hfXmethodrhhjuh/Nh0hh]r(hj)r}r(hXWorkerCommand.get_options()hjhjh$hmh&}r(h+]rh ajh Xcelery.bin.celerydrr}rbh*]h(]h)]h-]rh ajXWorkerCommand.get_optionsjjhpuh/Nh0hh]r(hr)r}r(hX get_optionshjhjh$hvh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9X get_optionsr r }r (hUhjubaubj)r }r (hUhjhjh$jh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubh)r}r(hUhjhjh$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubhE)r}r(hUhjhNh$hHh&}r(h+]h*]h(]h)]h-]Uentries]r(hKX/run() (celery.bin.celeryd.WorkerCommand method)hUtrauh/Nh0hh]ubh_)r}r(hUhjhNh$hbh&}r(hdheXpyh+]h*]h(]h)]h-]hfXmethodrhhjuh/Nh0hh]r(hj)r}r(hX"WorkerCommand.run(*args, **kwargs)hjhjh$hmh&}r(h+]rhajh Xcelery.bin.celerydr r!}r"bh*]h(]h)]h-]r#hajXWorkerCommand.runjjhpuh/Nh0hh]r$(hr)r%}r&(hXrunhjhjh$hvh&}r'(h(]h)]h*]h+]h-]uh/Nh0hh]r(h9Xrunr)r*}r+(hUhj%ubaubj)r,}r-(hUhjhjh$jh&}r.(h(]h)]h*]h+]h-]uh/Nh0hh]r/(j)r0}r1(hX*argsh&}r2(h(]h)]h*]h+]h-]uhj,h]r3h9X*argsr4r5}r6(hUhj0ubah$jubj)r7}r8(hX**kwargsh&}r9(h(]h)]h*]h+]h-]uhj,h]r:h9X**kwargsr;r<}r=(hUhj7ubah$jubeubeubh)r>}r?(hUhjhjh$hh&}r@(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubeubeubhE)rA}rB(hUhhhNh$hHh&}rC(h+]h*]h(]h)]h-]Uentries]rD(hKX%main() (in module celery.bin.celeryd)hUtrEauh/Nh0hh]ubh_)rF}rG(hUhhhNh$hbh&}rH(hdheXpyh+]h*]h(]h)]h-]hfXfunctionrIhhjIuh/Nh0hh]rJ(hj)rK}rL(hXmain()hjFhjh$hmh&}rM(h+]rNhajh Xcelery.bin.celerydrOrP}rQbh*]h(]h)]h-]rRhajXmainrSjUhpuh/Nh0hh]rT(h|)rU}rV(hXcelery.bin.celeryd.hjKhjh$hh&}rW(h(]h)]h*]h+]h-]uh/Nh0hh]rXh9Xcelery.bin.celeryd.rYrZ}r[(hUhjUubaubhr)r\}r](hjShjKhjh$hvh&}r^(h(]h)]h*]h+]h-]uh/Nh0hh]r_h9Xmainr`ra}rb(hUhj\ubaubj)rc}rd(hUhjKhjh$jh&}re(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubh)rf}rg(hUhjFhjh$hh&}rh(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubhE)ri}rj(hUhhhNh$hHh&}rk(h+]h*]h(]h)]h-]Uentries]rl(hKX-windows_main() (in module celery.bin.celeryd)h Utrmauh/Nh0hh]ubh_)rn}ro(hUhhhNh$hbh&}rp(hdheXpyh+]h*]h(]h)]h-]hfXfunctionrqhhjquh/Nh0hh]rr(hj)rs}rt(hXwindows_main()ruhjnhjh$hmh&}rv(h+]rwh ajh Xcelery.bin.celerydrxry}rzbh*]h(]h)]h-]r{h ajX windows_mainr|jUhpuh/Nh0hh]r}(h|)r~}r(hXcelery.bin.celeryd.hjshjh$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9Xcelery.bin.celeryd.rr}r(hUhj~ubaubhr)r}r(hj|hjshjh$hvh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]rh9X windows_mainrr}r(hUhjubaubj)r}r(hUhjshjh$jh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubh)r}r(hUhjnhjh$hh&}r(h(]h)]h*]h+]h-]uh/Nh0hh]ubeubeubahUU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh0hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(hUh&}r(h(]UlevelKh+]h*]Usourceh@h)]h-]UlineKUtypeUINFOruh]rhM)r}r(hUh&}r(h(]h)]h*]h+]h-]uhjh]rh9X?Hyperlink target "module-celery.bin.celeryd" is not referenced.rr}r(hUhjubah$hRubah$Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh6NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUZ/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.bin.celeryd.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hhhDh>h jsjjjjhcdocutils.nodes topic r)r}r(hUhhhh"h$Utopicrh&}r(h(]h)]r(Ucontentsr Ulocalr eh*]h+]r hah-]r h auh/Kh0hh]r cdocutils.nodes pending r)r}r(hX.. contents:: :local:hjU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh$Upendingrh&}r(h(]h)]h*]h+]h-]uh]ubaubhjhjKh jjZjahhh]hkhhjejljIjPjjjjjjh jjjjjj>jEuUsubstitution_namesr}rh$h0h&}r(h(]h+]h*]Usourceh"h)]h-]uU footnotesr]rUrefidsr}rub.PKYDD9h.}q?(h0]h1]h2]h3]h5]uh7Kh8hh ]q@cdocutils.nodes Text qAX4Task Sets, Subtasks and Callbacks - celery.task.setsqBqC}qD(h%h=h&h;ubaubcdocutils.nodes target qE)qF}qG(h%Uh&h#h'U qHh,UtargetqIh.}qJ(h0]h3]qKXmodule-celery.task.setsqLah2]Uismodh1]h5]uh7Kh8hh ]ubcsphinx.addnodes index qM)qN}qO(h%Uh&h#h'hHh,UindexqPh.}qQ(h3]h2]h0]h1]h5]Uentries]qR(UsingleqSXcelery.task.sets (module)Xmodule-celery.task.setsUtqTauh7Kh8hh ]ubhM)qU}qV(h%Uh&h#h'Nh,hPh.}qW(h3]h2]h0]h1]h5]Uentries]qX(hSX#TaskSet (class in celery.task.sets)hUtqYauh7Nh8hh ]ubcsphinx.addnodes desc qZ)q[}q\(h%Uh&h#h'Nh,Udescq]h.}q^(Unoindexq_Udomainq`Xpyh3]h2]h0]h1]h5]UobjtypeqaXclassqbUdesctypeqchbuh7Nh8hh ]qd(csphinx.addnodes desc_signature qe)qf}qg(h%XTaskSet(task=None, tasks=None)h&h[h'U qhh,Udesc_signatureqih.}qj(h3]qkhaUmoduleqlh(Xcelery.task.setsqmqn}qobh2]h0]h1]h5]qphaUfullnameqqXTaskSetqrUclassqsUUfirstqtuh7Nh8hh ]qu(csphinx.addnodes desc_annotation qv)qw}qx(h%Xclass h&hfh'hhh,Udesc_annotationqyh.}qz(h0]h1]h2]h3]h5]uh7Nh8hh ]q{hAXclass q|q}}q~(h%Uh&hwubaubcsphinx.addnodes desc_addname q)q}q(h%Xcelery.task.sets.h&hfh'hhh,U desc_addnameqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]qhAXcelery.task.sets.qq}q(h%Uh&hubaubcsphinx.addnodes desc_name q)q}q(h%hrh&hfh'hhh,U desc_nameqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]qhAXTaskSetqq}q(h%Uh&hubaubcsphinx.addnodes desc_parameterlist q)q}q(h%Uh&hfh'hhh,Udesc_parameterlistqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]q(csphinx.addnodes desc_parameter q)q}q(h%X task=Noneh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAX task=Noneqq}q(h%Uh&hubah,Udesc_parameterqubh)q}q(h%X tasks=Noneh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAX tasks=Noneqq}q(h%Uh&hubah,hubeubeubcsphinx.addnodes desc_content q)q}q(h%Uh&h[h'hhh,U desc_contentqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]q(cdocutils.nodes paragraph q)q}q(h%XvA task containing several subtasks, making it possible to track how many, or when all of the tasks has been completed.qh&hh'Xn/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/sets.py:docstring of celery.task.sets.TaskSetqh,U paragraphqh.}q(h0]h1]h2]h3]h5]uh7Kh8hh ]qhAXvA task containing several subtasks, making it possible to track how many, or when all of the tasks has been completed.qq}q(h%hh&hubaubcdocutils.nodes field_list q)q}q(h%Uh&hh'Nh,U field_listqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]qcdocutils.nodes field q)q}q(h%Uh.}q(h0]h1]h2]h3]h5]uh&hh ]q(cdocutils.nodes field_name q)q}q(h%Uh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAX Parametersqȅq}q(h%Uh&hubah,U field_namequbcdocutils.nodes field_body q)q}q(h%Uh.}q(h0]h1]h2]h3]h5]uh&hh ]qh)q}q(h%Uh.}q(h0]h1]h2]h3]h5]uh&hh ]q(cdocutils.nodes strong q)q}q(h%Xtasksh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAXtasksqڅq}q(h%Uh&hubah,UstrongqubhAX -- qޅq}q(h%Uh&hubhAX A list of qᅁq}q(h%X A list of h&hubcsphinx.addnodes pending_xref q)q}q(h%X:class:`subtask`qh&hh'h*h,U pending_xrefqh.}q(UreftypeXclassUrefwarnqU reftargetqXsubtaskU refdomainXpyqh3]h2]U refexplicith0]h1]h5]UrefdocqXreference/celery.task.setsqUpy:classqhrU py:moduleqXcelery.task.setsquh7K h ]qcdocutils.nodes literal q)q}q(h%hh.}q(h0]h1]q(UxrefqhXpy-classqeh2]h3]h5]uh&hh ]qhAXsubtaskqq}q(h%Uh&hubah,UliteralqubaubhAX instances.qr}r(h%X instances.h&hubeh,hubah,U field_bodyrubeh,UfieldrubaubhM)r}r(h%Uh&hh'hh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX*total (celery.task.sets.TaskSet attribute)h Utrauh7Nh8hh ]ubhZ)r }r (h%Uh&hh'hh,h]h.}r (h_h`Xpyh3]h2]h0]h1]h5]haX attributer hcj uh7Nh8hh ]r (he)r}r(h%Xtotalrh&j h'hh,hih.}r(h3]rh ahlhh2]h0]h1]h5]rh ahqX TaskSet.totalhshrhtuh7K h8hh ]rh)r}r(h%jh&jh'hh,hh.}r(h0]h1]h2]h3]h5]uh7K h8hh ]rhAXtotalrr}r(h%Uh&jubaubaubh)r}r(h%Uh&j h'hh,hh.}r(h0]h1]h2]h3]h5]uh7K h8hh ]rh)r }r!(h%X*Total number of subtasks in this task set.r"h&jh'hh,hh.}r#(h0]h1]h2]h3]h5]uh7Kh8hh ]r$hAX*Total number of subtasks in this task set.r%r&}r'(h%j"h&j ubaubaubeubh)r(}r)(h%X Example::r*h&hh'hh,hh.}r+(h0]h1]h2]h3]h5]uh7K h8hh ]r,hAXExample:r-r.}r/(h%XExample:h&j(ubaubcdocutils.nodes literal_block r0)r1}r2(h%X>>> from djangofeeds.tasks import RefreshFeedTask >>> from celery.task.sets import TaskSet, subtask >>> urls = ("http://cnn.com/rss", ... "http://bbc.co.uk/rss", ... "http://xkcd.com/rss") >>> subtasks = [RefreshFeedTask.subtask(kwargs={"feed_url": url}) ... for url in urls] >>> taskset = TaskSet(tasks=subtasks) >>> taskset_result = taskset.apply_async() >>> list_of_return_values = taskset_result.join()h&hh'hHh,U literal_blockr3h.}r4(U xml:spacer5Upreserver6h3]h2]h0]h1]h5]uh7Kh8hh ]r7hAX>>> from djangofeeds.tasks import RefreshFeedTask >>> from celery.task.sets import TaskSet, subtask >>> urls = ("http://cnn.com/rss", ... "http://bbc.co.uk/rss", ... "http://xkcd.com/rss") >>> subtasks = [RefreshFeedTask.subtask(kwargs={"feed_url": url}) ... for url in urls] >>> taskset = TaskSet(tasks=subtasks) >>> taskset_result = taskset.apply_async() >>> list_of_return_values = taskset_result.join()r8r9}r:(h%Uh&j1ubaubhM)r;}r<(h%Uh&hh'Uh,hPh.}r=(h3]h2]h0]h1]h5]Uentries]r>(hSX.Publisher (celery.task.sets.TaskSet attribute)hUtr?auh7Nh8hh ]ubhZ)r@}rA(h%Uh&hh'Uh,h]h.}rB(h_h`Xpyh3]h2]h0]h1]h5]haX attributerChcjCuh7Nh8hh ]rD(he)rE}rF(h%XTaskSet.Publisherh&j@h'hhh,hih.}rG(h3]rHhahlh(Xcelery.task.setsrIrJ}rKbh2]h0]h1]h5]rLhahqXTaskSet.Publisherhshrhtuh7Nh8hh ]rMh)rN}rO(h%X Publisherh&jEh'hhh,hh.}rP(h0]h1]h2]h3]h5]uh7Nh8hh ]rQhAX PublisherrRrS}rT(h%Uh&jNubaubaubh)rU}rV(h%Uh&j@h'hhh,hh.}rW(h0]h1]h2]h3]h5]uh7Nh8hh ]rXh)rY}rZ(h%Xalias of :class:`TaskPublisher`h&jUh'Uh,hh.}r[(h0]h1]h2]h3]h5]uh7Kh8hh ]r\(hAX alias of r]r^}r_(h%X alias of h&jYubh)r`}ra(h%X:class:`TaskPublisher`rbh&jYh'Nh,hh.}rc(UreftypeXclasshhX TaskPublisherU refdomainXpyrdh3]h2]U refexplicith0]h1]h5]hhhhrhhuh7Nh ]reh)rf}rg(h%jbh.}rh(h0]h1]ri(hjdXpy-classrjeh2]h3]h5]uh&j`h ]rkhAX TaskPublisherrlrm}rn(h%Uh&jfubah,hubaubeubaubeubhM)ro}rp(h%Uh&hh'Xt/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/sets.py:docstring of celery.task.sets.TaskSet.applyrqh,hPh.}rr(h3]h2]h0]h1]h5]Uentries]rs(hSX)apply() (celery.task.sets.TaskSet method)hUtrtauh7Nh8hh ]ubhZ)ru}rv(h%Uh&hh'jqh,h]h.}rw(h_h`Xpyh3]h2]h0]h1]h5]haXmethodrxhcjxuh7Nh8hh ]ry(he)rz}r{(h%XTaskSet.apply()h&juh'hhh,hih.}r|(h3]r}hahlh(Xcelery.task.setsr~r}rbh2]h0]h1]h5]rhahqX TaskSet.applyhshrhtuh7Nh8hh ]r(h)r}r(h%Xapplyh&jzh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXapplyrr}r(h%Uh&jubaubh)r}r(h%Uh&jzh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)r}r(h%Uh&juh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rh)r}r(h%XApplies the taskset locally.rh&jh'jqh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]rhAXApplies the taskset locally.rr}r(h%jh&jubaubaubeubhM)r}r(h%Uh&hh'Xz/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/sets.py:docstring of celery.task.sets.TaskSet.apply_asyncrh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX/apply_async() (celery.task.sets.TaskSet method)hUtrauh7Nh8hh ]ubhZ)r}r(h%Uh&hh'jh,h]h.}r(h_h`Xpyh3]h2]h0]h1]h5]haXmethodrhcjuh7Nh8hh ]r(he)r}r(h%X$TaskSet.apply_async(*args, **kwargs)h&jh'hhh,hih.}r(h3]rhahlh(Xcelery.task.setsrr}rbh2]h0]h1]h5]rhahqXTaskSet.apply_asynchshrhtuh7Nh8hh ]r(h)r}r(h%X apply_asynch&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAX apply_asyncrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]r(h)r}r(h%X*argsh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX*argsrr}r(h%Uh&jubah,hubh)r}r(h%X**kwargsh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX**kwargsrr}r(h%Uh&jubah,hubeubeubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]r(h)r}r(h%XRun all tasks in the taskset.rh&jh'jh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]rhAXRun all tasks in the taskset.rr}r(h%jh&jubaubh)r}r(h%X8Returns a :class:`celery.result.TaskSetResult` instance.rh&jh'jh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]r(hAX Returns a rr}r(h%X Returns a h&jubh)r}r(h%X$:class:`celery.result.TaskSetResult`rh&jh'Nh,hh.}r(UreftypeXclasshhXcelery.result.TaskSetResultU refdomainXpyrh3]h2]U refexplicith0]h1]h5]hhhhrhhuh7Nh ]rh)r}r(h%jh.}r(h0]h1]r(hjXpy-classreh2]h3]h5]uh&jh ]rhAXcelery.result.TaskSetResultrr}r(h%Uh&jubah,hubaubhAX instance.rr}r(h%X instance.h&jubeubh)r}r(h%XExamplerh&jh'jh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]rhAXExamplerr}r(h%jh&jubaubcdocutils.nodes doctest_block r)r}r(h%X>>> ts = TaskSet(tasks=( ... RefreshFeedTask.subtask(["http://foo.com/rss"]), ... RefreshFeedTask.subtask(["http://bar.com/rss"]), ... )) >>> result = ts.apply_async() >>> result.taskset_id "d2c9b261-8eff-4bfb-8459-1e1b72063514" >>> result.subtask_ids ["b4996460-d959-49c8-aeb9-39c530dcde25", "598d2d18-ab86-45ca-8b4f-0779f5d6a3cb"] >>> result.waiting() True >>> time.sleep(10) >>> result.ready() True >>> result.successful() True >>> result.failed() False >>> result.join() [True, True]h&jh'Nh,U doctest_blockrh.}r(j5j6h3]h2]h0]h1]h5]uh7Nh8hh ]rhAX>>> ts = TaskSet(tasks=( ... RefreshFeedTask.subtask(["http://foo.com/rss"]), ... RefreshFeedTask.subtask(["http://bar.com/rss"]), ... )) >>> result = ts.apply_async() >>> result.taskset_id "d2c9b261-8eff-4bfb-8459-1e1b72063514" >>> result.subtask_ids ["b4996460-d959-49c8-aeb9-39c530dcde25", "598d2d18-ab86-45ca-8b4f-0779f5d6a3cb"] >>> result.waiting() True >>> time.sleep(10) >>> result.ready() True >>> result.successful() True >>> result.failed() False >>> result.join() [True, True]rr}r(h%Uh&jubaubeubeubhM)r}r(h%Uh&hh'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX)task (celery.task.sets.TaskSet attribute)hUtrauh7Nh8hh ]ubhZ)r}r(h%Uh&hh'Nh,h]h.}r(h_h`Xpyh3]h2]h0]h1]h5]haX attributerhcjuh7Nh8hh ]r(he)r}r(h%X TaskSet.taskh&jh'hhh,hih.}r (h3]r hahlh(Xcelery.task.setsr r }r bh2]h0]h1]h5]rhahqX TaskSet.taskhshrhtuh7Nh8hh ]rh)r}r(h%Xtaskh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXtaskrr}r(h%Uh&jubaubaubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r}r(h%Uh&hh'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX.task_name (celery.task.sets.TaskSet attribute)h Utrauh7Nh8hh ]ubhZ)r}r (h%Uh&hh'Nh,h]h.}r!(h_h`Xpyh3]h2]h0]h1]h5]haX attributer"hcj"uh7Nh8hh ]r#(he)r$}r%(h%XTaskSet.task_nameh&jh'hhh,hih.}r&(h3]r'h ahlh(Xcelery.task.setsr(r)}r*bh2]h0]h1]h5]r+h ahqXTaskSet.task_namehshrhtuh7Nh8hh ]r,h)r-}r.(h%X task_nameh&j$h'hhh,hh.}r/(h0]h1]h2]h3]h5]uh7Nh8hh ]r0hAX task_namer1r2}r3(h%Uh&j-ubaubaubh)r4}r5(h%Uh&jh'hhh,hh.}r6(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r7}r8(h%Uh&hh'Nh,hPh.}r9(h3]h2]h0]h1]h5]Uentries]r:(hSX*tasks (celery.task.sets.TaskSet attribute)h Utr;auh7Nh8hh ]ubhZ)r<}r=(h%Uh&hh'Nh,h]h.}r>(h_h`Xpyh3]h2]h0]h1]h5]haX attributer?hcj?uh7Nh8hh ]r@(he)rA}rB(h%X TaskSet.tasksh&j<h'hhh,hih.}rC(h3]rDh ahlh(Xcelery.task.setsrErF}rGbh2]h0]h1]h5]rHh ahqX TaskSet.taskshshrhtuh7Nh8hh ]rIh)rJ}rK(h%Xtasksh&jAh'hhh,hh.}rL(h0]h1]h2]h3]h5]uh7Nh8hh ]rMhAXtasksrNrO}rP(h%Uh&jJubaubaubh)rQ}rR(h%Uh&j<h'hhh,hh.}rS(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubeubeubhM)rT}rU(h%Uh&h#h'Nh,hPh.}rV(h3]h2]h0]h1]h5]Uentries]rW(hSX#subtask (class in celery.task.sets)h UtrXauh7Nh8hh ]ubhZ)rY}rZ(h%Uh&h#h'Nh,h]h.}r[(h_h`Xpyh3]h2]h0]h1]h5]haXclassr\hcj\uh7Nh8hh ]r](he)r^}r_(h%XAsubtask(task=None, args=None, kwargs=None, options=None, **extra)h&jYh'hhh,hih.}r`(h3]rah ahlh(Xcelery.task.setsrbrc}rdbh2]h0]h1]h5]reh ahqXsubtaskrfhsUhtuh7Nh8hh ]rg(hv)rh}ri(h%Xclass h&j^h'hhh,hyh.}rj(h0]h1]h2]h3]h5]uh7Nh8hh ]rkhAXclass rlrm}rn(h%Uh&jhubaubh)ro}rp(h%Xcelery.task.sets.h&j^h'hhh,hh.}rq(h0]h1]h2]h3]h5]uh7Nh8hh ]rrhAXcelery.task.sets.rsrt}ru(h%Uh&joubaubh)rv}rw(h%jfh&j^h'hhh,hh.}rx(h0]h1]h2]h3]h5]uh7Nh8hh ]ryhAXsubtaskrzr{}r|(h%Uh&jvubaubh)r}}r~(h%Uh&j^h'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]r(h)r}r(h%X task=Noneh.}r(h0]h1]h2]h3]h5]uh&j}h ]rhAX task=Nonerr}r(h%Uh&jubah,hubh)r}r(h%X args=Noneh.}r(h0]h1]h2]h3]h5]uh&j}h ]rhAX args=Nonerr}r(h%Uh&jubah,hubh)r}r(h%X kwargs=Noneh.}r(h0]h1]h2]h3]h5]uh&j}h ]rhAX kwargs=Nonerr}r(h%Uh&jubah,hubh)r}r(h%X options=Noneh.}r(h0]h1]h2]h3]h5]uh&j}h ]rhAX options=Nonerr}r(h%Uh&jubah,hubh)r}r(h%X**extrah.}r(h0]h1]h2]h3]h5]uh&j}h ]rhAX**extrarr}r(h%Uh&jubah,hubeubeubh)r}r(h%Uh&jYh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]r(h)r}r(h%XRClass that wraps the arguments and execution options for a single task invocation.rh&jh'Xn/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/sets.py:docstring of celery.task.sets.subtaskrh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]rhAXRClass that wraps the arguments and execution options for a single task invocation.rr}r(h%jh&jubaubh)r}r(h%XTUsed as the parts in a :class:`TaskSet` or to safely pass tasks around as callbacks.h&jh'jh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]r(hAXUsed as the parts in a rr}r(h%XUsed as the parts in a h&jubh)r}r(h%X:class:`TaskSet`rh&jh'Nh,hh.}r(UreftypeXclasshhXTaskSetU refdomainXpyrh3]h2]U refexplicith0]h1]h5]hhhjfhhuh7Nh ]rh)r}r(h%jh.}r(h0]h1]r(hjXpy-classreh2]h3]h5]uh&jh ]rhAXTaskSetrr}r(h%Uh&jubah,hubaubhAX- or to safely pass tasks around as callbacks.rr}r(h%X- or to safely pass tasks around as callbacks.h&jubeubh)r}r(h%Uh&jh'Nh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rh)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r(h)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX Parametersrr}r(h%Uh&jubah,hubh)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rcdocutils.nodes bullet_list r)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r(cdocutils.nodes list_item r)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rh)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r(h)r}r(h%Xtaskh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAXtaskrr}r(h%Uh&jubah,hubhAX -- rr}r(h%Uh&jubhAX4Either a task class/instance, or the name of a task.rr}r(h%X4Either a task class/instance, or the name of a task.rh&jubeh,hubah,U list_itemrubj)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rh)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r(h)r}r(h%Xargsh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAXargsrr}r(h%Uh&jubah,hubhAX -- r r }r (h%Uh&jubhAXPositional arguments to apply.r r }r(h%XPositional arguments to apply.rh&jubeh,hubah,jubj)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rh)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r(h)r}r(h%Xkwargsh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAXkwargsrr}r(h%Uh&jubah,hubhAX -- rr }r!(h%Uh&jubhAXKeyword arguments to apply.r"r#}r$(h%XKeyword arguments to apply.r%h&jubeh,hubah,jubj)r&}r'(h%Uh.}r((h0]h1]h2]h3]h5]uh&jh ]r)h)r*}r+(h%Uh.}r,(h0]h1]h2]h3]h5]uh&j&h ]r-(h)r.}r/(h%Xoptionsh.}r0(h0]h1]h2]h3]h5]uh&j*h ]r1hAXoptionsr2r3}r4(h%Uh&j.ubah,hubhAX -- r5r6}r7(h%Uh&j*ubhAXAdditional options to r8r9}r:(h%XAdditional options to h&j*ubh)r;}r<(h%X":func:`celery.execute.apply_async`r=h&j*h'Nh,hh.}r>(UreftypeXfunchhXcelery.execute.apply_asyncU refdomainXpyr?h3]h2]U refexplicith0]h1]h5]hhhjfhhuh7Nh ]r@h)rA}rB(h%j=h.}rC(h0]h1]rD(hj?Xpy-funcrEeh2]h3]h5]uh&j;h ]rFhAXcelery.execute.apply_async()rGrH}rI(h%Uh&jAubah,hubaubhAX.rJ}rK(h%X.h&j*ubeh,hubah,jubeh,U bullet_listrLubah,jubeh,jubaubh)rM}rN(h%XNote that if the first argument is a :class:`dict`, the other arguments will be ignored and the values in the dict will be used instead.h&jh'jh,hh.}rO(h0]h1]h2]h3]h5]uh7K h8hh ]rP(hAX%Note that if the first argument is a rQrR}rS(h%X%Note that if the first argument is a h&jMubh)rT}rU(h%X :class:`dict`rVh&jMh'Nh,hh.}rW(UreftypeXclasshhXdictU refdomainXpyrXh3]h2]U refexplicith0]h1]h5]hhhjfhhuh7Nh ]rYh)rZ}r[(h%jVh.}r\(h0]h1]r](hjXXpy-classr^eh2]h3]h5]uh&jTh ]r_hAXdictr`ra}rb(h%Uh&jZubah,hubaubhAXV, the other arguments will be ignored and the values in the dict will be used instead.rcrd}re(h%XV, the other arguments will be ignored and the values in the dict will be used instead.h&jMubeubj)rf}rg(h%Xr>>> s = subtask("tasks.add", args=(2, 2)) >>> subtask(s) {"task": "tasks.add", args=(2, 2), kwargs={}, options={}}h&jh'Nh,jh.}rh(j5j6h3]h2]h0]h1]h5]uh7Nh8hh ]rihAXr>>> s = subtask("tasks.add", args=(2, 2)) >>> subtask(s) {"task": "tasks.add", args=(2, 2), kwargs={}, options={}}rjrk}rl(h%Uh&jfubaubhM)rm}rn(h%Uh&jh'Xt/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/sets.py:docstring of celery.task.sets.subtask.applyroh,hPh.}rp(h3]h2]h0]h1]h5]Uentries]rq(hSX)apply() (celery.task.sets.subtask method)h Utrrauh7Nh8hh ]ubhZ)rs}rt(h%Uh&jh'joh,h]h.}ru(h_h`Xpyh3]h2]h0]h1]h5]haXmethodrvhcjvuh7Nh8hh ]rw(he)rx}ry(h%X,subtask.apply(args=(), kwargs={}, **options)h&jsh'hhh,hih.}rz(h3]r{h ahlh(Xcelery.task.setsr|r}}r~bh2]h0]h1]h5]rh ahqX subtask.applyhsjfhtuh7Nh8hh ]r(h)r}r(h%Xapplyh&jxh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXapplyrr}r(h%Uh&jubaubh)r}r(h%Uh&jxh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]r(h)r}r(h%Xargs=()h.}r(h0]h1]h2]h3]h5]uh&jh ]rhAXargs=()rr}r(h%Uh&jubah,hubh)r}r(h%X kwargs={}h.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX kwargs={}rr}r(h%Uh&jubah,hubh)r}r(h%X **optionsh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX **optionsrr}r(h%Uh&jubah,hubeubeubh)r}r(h%Uh&jsh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rh)r}r(h%XApply this task locally.rh&jh'joh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]rhAXApply this task locally.rr}r(h%jh&jubaubaubeubhM)r}r(h%Uh&jh'Xz/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/sets.py:docstring of celery.task.sets.subtask.apply_asyncrh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX/apply_async() (celery.task.sets.subtask method)hUtrauh7Nh8hh ]ubhZ)r}r(h%Uh&jh'jh,h]h.}r(h_h`Xpyh3]h2]h0]h1]h5]haXmethodrhcjuh7Nh8hh ]r(he)r}r(h%X2subtask.apply_async(args=(), kwargs={}, **options)h&jh'hhh,hih.}r(h3]rhahlh(Xcelery.task.setsrr}rbh2]h0]h1]h5]rhahqXsubtask.apply_asynchsjfhtuh7Nh8hh ]r(h)r}r(h%X apply_asynch&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAX apply_asyncrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]r(h)r}r(h%Xargs=()h.}r(h0]h1]h2]h3]h5]uh&jh ]rhAXargs=()rr}r(h%Uh&jubah,hubh)r}r(h%X kwargs={}h.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX kwargs={}rr}r(h%Uh&jubah,hubh)r}r(h%X **optionsh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX **optionsrr}r(h%Uh&jubah,hubeubeubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rh)r}r(h%XApply this task asynchronously.rh&jh'jh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]rhAXApply this task asynchronously.rr}r(h%jh&jubaubaubeubhM)r}r(h%Uh&jh'Xt/var/build/user_builds/celery/checkouts/2.1-archived/celery/task/sets.py:docstring of celery.task.sets.subtask.delayrh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX)delay() (celery.task.sets.subtask method)hUtrauh7Nh8hh ]ubhZ)r}r(h%Uh&jh'jh,h]h.}r(h_h`Xpyh3]h2]h0]h1]h5]haXmethodrhcjuh7Nh8hh ]r(he)r}r(h%X#subtask.delay(*argmerge, **kwmerge)h&jh'hhh,hih.}r(h3]rhahlh(Xcelery.task.setsrr}rbh2]h0]h1]h5]rhahqX subtask.delayhsjfhtuh7Nh8hh ]r(h)r}r(h%Xdelayh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXdelayrr}r(h%Uh&jubaubh)r}r (h%Uh&jh'hhh,hh.}r (h0]h1]h2]h3]h5]uh7Nh8hh ]r (h)r }r (h%X *argmergeh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX *argmergerr}r(h%Uh&j ubah,hubh)r}r(h%X **kwmergeh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX **kwmergerr}r(h%Uh&jubah,hubeubeubh)r}r(h%Uh&jh'hhh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rh)r}r(h%X.Shortcut to ``apply_async(argmerge, kwargs)``.h&jh'jh,hh.}r (h0]h1]h2]h3]h5]uh7Kh8hh ]r!(hAX Shortcut to r"r#}r$(h%X Shortcut to h&jubh)r%}r&(h%X!``apply_async(argmerge, kwargs)``h.}r'(h0]h1]h2]h3]h5]uh&jh ]r(hAXapply_async(argmerge, kwargs)r)r*}r+(h%Uh&j%ubah,hubhAX.r,}r-(h%X.h&jubeubaubeubhM)r.}r/(h%Uh&jh'Nh,hPh.}r0(h3]h2]h0]h1]h5]Uentries]r1(hSX,get_type() (celery.task.sets.subtask method)hUtr2auh7Nh8hh ]ubhZ)r3}r4(h%Uh&jh'Nh,h]h.}r5(h_h`Xpyh3]h2]h0]h1]h5]haXmethodr6hcj6uh7Nh8hh ]r7(he)r8}r9(h%Xsubtask.get_type()r:h&j3h'hhh,hih.}r;(h3]r<hahlh(Xcelery.task.setsr=r>}r?bh2]h0]h1]h5]r@hahqXsubtask.get_typehsjfhtuh7Nh8hh ]rA(h)rB}rC(h%Xget_typeh&j8h'hhh,hh.}rD(h0]h1]h2]h3]h5]uh7Nh8hh ]rEhAXget_typerFrG}rH(h%Uh&jBubaubh)rI}rJ(h%Uh&j8h'hhh,hh.}rK(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)rL}rM(h%Uh&j3h'hhh,hh.}rN(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubeubeubeubah%UU transformerrONU footnote_refsrP}rQUrefnamesrR}rSUsymbol_footnotesrT]rUUautofootnote_refsrV]rWUsymbol_footnote_refsrX]rYU citationsrZ]r[h8hU current_liner\NUtransform_messagesr]]r^cdocutils.nodes system_message r_)r`}ra(h%Uh.}rb(h0]UlevelKh3]h2]UsourcehHh1]h5]UlineKUtypeUINFOrcuh ]rdh)re}rf(h%Uh.}rg(h0]h1]h2]h3]h5]uh&j`h ]rhhAX=Hyperlink target "module-celery.task.sets" is not referenced.rirj}rk(h%Uh&jeubah,hubah,Usystem_messagerlubaUreporterrmNUid_startrnKU autofootnotesro]rpU citation_refsrq}rrUindirect_targetsrs]rtUsettingsru(cdocutils.frontend Values rvorw}rx(Ufootnote_backlinksryKUrecord_dependenciesrzNU rfc_base_urlr{Uhttp://tools.ietf.org/html/r|U tracebackr}Upep_referencesr~NUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh>NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUX/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.task.sets.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhjh jxh jh j$h jAhLhFh j^hjhjzhj8hh#hjEhjhcdocutils.nodes topic r)r}r(h%Uh&h#h'h*h,Utopicrh.}r(h0]h1]r(UcontentsrUlocalreh2]h3]rhah5]rhauh7Kh8hh ]rcdocutils.nodes pending r)r}r(h%X.. contents:: :local:h&jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh,Upendingrh.}r(h0]h1]h2]h3]h5]uh ]ubaubhhfuUsubstitution_namesr}rh,h8h.}r(h0]h3]h2]Usourceh*h1]h5]uU footnotesr]rUrefidsr}rub.PKYDD7ffHcelery-2.1-archived/.doctrees/reference/celery.contrib.abortable.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X+celery.contrib.abortable.AbortableTask.nameqX1celery.contrib.abortable.AbortableTask.is_abortedqX usage exampleqNX3celery.contrib.abortable.AbortableAsyncResult.abortq X-celery.contrib.abortable.AbortableAsyncResultq X3contrib: abortable tasks - celery.contrib.abortableq NX&celery.contrib.abortable.AbortableTaskq X8celery.contrib.abortable.AbortableAsyncResult.is_abortedq Xabortable tasks overviewqNUcontentsqNX2celery.contrib.abortable.AbortableTask.AsyncResultquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhU usage-exampleqh h h h h U0contrib-abortable-tasks-celery-contrib-abortableqh h h h hUabortable-tasks-overviewqhUcontentsqhhuUchildrenq]qcdocutils.nodes section q )q!}q"(U rawsourceq#UUparentq$hUsourceq%cdocutils.nodes reprunicode q&X`/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.contrib.abortable.rstq'q(}q)bUtagnameq*Usectionq+U attributesq,}q-(Udupnamesq.]Uclassesq/]Ubackrefsq0]Uidsq1]q2haUnamesq3]q4h auUlineq5KUdocumentq6hh]q7(cdocutils.nodes title q8)q9}q:(h#X3Contrib: Abortable tasks - celery.contrib.abortableq;h$h!h%h(h*Utitleqcdocutils.nodes Text q?X3Contrib: Abortable tasks - celery.contrib.abortableq@qA}qB(h#h;h$h9ubaubcdocutils.nodes topic qC)qD}qE(h#Uh$h!h%h(h*UtopicqFh,}qG(h.]h/]qH(UcontentsqIUlocalqJeh0]h1]qKhah3]qLhauh5Kh6hh]qMcdocutils.nodes bullet_list qN)qO}qP(h#Uh$hDh%Nh*U bullet_listqQh,}qR(h.]h/]h0]h1]h3]uh5Nh6hh]qScdocutils.nodes list_item qT)qU}qV(h#Uh,}qW(h.]h/]h0]h1]h3]uh$hOh]qX(cdocutils.nodes paragraph qY)qZ}q[(h#Uh,}q\(h.]h/]h0]h1]h3]uh$hUh]q]cdocutils.nodes reference q^)q_}q`(h#Uh,}qa(h1]qbUid1qcah0]h.]h/]h3]Urefidhuh$hZh]qdh?XAbortable tasks overviewqeqf}qg(h#XAbortable tasks overviewqhh$h_ubah*U referenceqiubah*U paragraphqjubhN)qk}ql(h#Uh,}qm(h.]h/]h0]h1]h3]uh$hUh]qnhT)qo}qp(h#Uh,}qq(h.]h/]h0]h1]h3]uh$hkh]qrhY)qs}qt(h#Uh,}qu(h.]h/]h0]h1]h3]uh$hoh]qvh^)qw}qx(h#Uh,}qy(h1]qzUid2q{ah0]h.]h/]h3]Urefidhuh$hsh]q|h?X Usage exampleq}q~}q(h#X Usage exampleqh$hwubah*hiubah*hjubah*U list_itemqubah*hQubeh*hubaubaubcdocutils.nodes target q)q}q(h#Uh$h!h%U qh*Utargetqh,}q(h.]h1]qXmodule-celery.contrib.abortableqah0]Uismodh/]h3]uh5Kh6hh]ubcsphinx.addnodes index q)q}q(h#Uh$h!h%hh*Uindexqh,}q(h1]h0]h.]h/]h3]Uentries]q(UsingleqX!celery.contrib.abortable (module)Xmodule-celery.contrib.abortableUtqauh5Kh6hh]ubh )q}q(h#Uh$h!h%Xv/var/build/user_builds/celery/checkouts/2.1-archived/celery/contrib/abortable.py:docstring of celery.contrib.abortableqh*h+h,}q(h.]h/]h0]h1]qhah3]qhauh5Kh6hh]q(h8)q}q(h#hhh$hh%hh*h(h#Uh$j6ubah*hubaubh?X- method at controlled points in their task's r?r@}rA(h#X- method at controlled points in their task's h$j)ubh)rB}rC(h#X :meth:`run`rDh$j)h%Nh*hh,}rE(UreftypeXmethhhXrunU refdomainXpyrFh1]h0]U refexplicith.]h/]h3]hhhNhhuh5Nh]rGh)rH}rI(h#jDh,}rJ(h.]h/]rK(hjFXpy-methrLeh0]h1]h3]uh$jBh]rMh?Xrun()rNrO}rP(h#Uh$jHubah*hubaubh?X$ method. The more often, the better.rQrR}rS(h#X$ method. The more often, the better.h$j)ubeubaubeubhY)rT}rU(h#XdThe necessary intermediate communication is dealt with by the :class:`AbortableTask` implementation.h$hh%hh*hjh,}rV(h.]h/]h0]h1]h3]uh5Kh6hh]rW(h?X>The necessary intermediate communication is dealt with by the rXrY}rZ(h#X>The necessary intermediate communication is dealt with by the h$jTubh)r[}r\(h#X:class:`AbortableTask`r]h$jTh%Nh*hh,}r^(UreftypeXclasshhX AbortableTaskU refdomainXpyr_h1]h0]U refexplicith.]h/]h3]hhhNhhuh5Nh]r`h)ra}rb(h#j]h,}rc(h.]h/]rd(hj_Xpy-classreeh0]h1]h3]uh$j[h]rfh?X AbortableTaskrgrh}ri(h#Uh$jaubah*hubaubh?X implementation.rjrk}rl(h#X implementation.h$jTubeubh )rm}rn(h#Uh$hh%hh*h+h,}ro(h.]h/]h0]h1]rphah3]rqhauh5Kh6hh]rr(h8)rs}rt(h#hh$jmh%hh*hrh*Udesc_signaturerh,}r(h1]rh aUmodulerh&Xcelery.contrib.abortablerr}rbh0]h.]h/]h3]rh aUfullnamerXAbortableAsyncResultrUclassrUUfirstruh5Nh6hh]r(csphinx.addnodes desc_annotation r)r}r(h#Xclass h$jh%jh*Udesc_annotationrh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xclass rr}r(h#Uh$jubaubcsphinx.addnodes desc_addname r)r}r(h#Xcelery.contrib.abortable.h$jh%jh*U desc_addnamerh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xcelery.contrib.abortable.rr}r(h#Uh$jubaubcsphinx.addnodes desc_name r)r}r(h#jh$jh%jh*U desc_namerh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]r h?XAbortableAsyncResultr r }r (h#Uh$jubaubcsphinx.addnodes desc_parameterlist r )r}r(h#Uh$jh%jh*Udesc_parameterlistrh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]r(csphinx.addnodes desc_parameter r)r}r(h#Xtask_idh,}r(h.]h/]h0]h1]h3]uh$jh]rh?Xtask_idrr}r(h#Uh$jubah*Udesc_parameterrubj)r}r(h#X backend=Noneh,}r(h.]h/]h0]h1]h3]uh$jh]rh?X backend=Noner r!}r"(h#Uh$jubah*jubj)r#}r$(h#Xtask_name=Noneh,}r%(h.]h/]h0]h1]h3]uh$jh]r&h?Xtask_name=Noner'r(}r)(h#Uh$j#ubah*jubeubeubcsphinx.addnodes desc_content r*)r+}r,(h#Uh$jh%jh*U desc_contentr-h,}r.(h.]h/]h0]h1]h3]uh5Nh6hh]r/(hY)r0}r1(h#XRepresents a abortable result.r2h$j+h%X/var/build/user_builds/celery/checkouts/2.1-archived/celery/contrib/abortable.py:docstring of celery.contrib.abortable.AbortableAsyncResultr3h*hjh,}r4(h.]h/]h0]h1]h3]uh5Kh6hh]r5h?XRepresents a abortable result.r6r7}r8(h#j2h$j0ubaubhY)r9}r:(h#XSpecifically, this gives the ``AsyncResult`` a :meth:`abort()` method, which sets the state of the underlying Task to ``"ABORTED"``.h$j+h%j3h*hjh,}r;(h.]h/]h0]h1]h3]uh5Kh6hh]r<(h?XSpecifically, this gives the r=r>}r?(h#XSpecifically, this gives the h$j9ubh)r@}rA(h#X``AsyncResult``h,}rB(h.]h/]h0]h1]h3]uh$j9h]rCh?X AsyncResultrDrE}rF(h#Uh$j@ubah*hubh?X a rGrH}rI(h#X a h$j9ubh)rJ}rK(h#X:meth:`abort()`rLh$j9h%Nh*hh,}rM(UreftypeXmethhhXabortU refdomainXpyrNh1]h0]U refexplicith.]h/]h3]hhhjhhuh5Nh]rOh)rP}rQ(h#jLh,}rR(h.]h/]rS(hjNXpy-methrTeh0]h1]h3]uh$jJh]rUh?Xabort()rVrW}rX(h#Uh$jPubah*hubaubh?X8 method, which sets the state of the underlying Task to rYrZ}r[(h#X8 method, which sets the state of the underlying Task to h$j9ubh)r\}r](h#X ``"ABORTED"``h,}r^(h.]h/]h0]h1]h3]uh$j9h]r_h?X "ABORTED"r`ra}rb(h#Uh$j\ubah*hubh?X.rc}rd(h#X.h$j9ubeubh)re}rf(h#Uh$j+h%X/var/build/user_builds/celery/checkouts/2.1-archived/celery/contrib/abortable.py:docstring of celery.contrib.abortable.AbortableAsyncResult.abortrgh*hh,}rh(h1]h0]h.]h/]h3]Uentries]ri(hX>abort() (celery.contrib.abortable.AbortableAsyncResult method)h Utrjauh5Nh6hh]ubj)rk}rl(h#Uh$j+h%jgh*jh,}rm(jjXpyh1]h0]h.]h/]h3]jXmethodrnjjnuh5Nh6hh]ro(j)rp}rq(h#XAbortableAsyncResult.abort()h$jkh%jh*jh,}rr(h1]rsh ajh&Xcelery.contrib.abortablertru}rvbh0]h.]h/]h3]rwh ajXAbortableAsyncResult.abortjjjuh5Nh6hh]rx(j)ry}rz(h#Xaborth$jph%jh*jh,}r{(h.]h/]h0]h1]h3]uh5Nh6hh]r|h?Xabortr}r~}r(h#Uh$jyubaubj )r}r(h#Uh$jph%jh*jh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubj*)r}r(h#Uh$jkh%jh*j-h,}r(h.]h/]h0]h1]h3]uh5Nh6hh]r(hY)r}r(h#X.Set the state of the task to :const:`ABORTED`.h$jh%jgh*hjh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]r(h?XSet the state of the task to rr}r(h#XSet the state of the task to h$jubh)r}r(h#X:const:`ABORTED`rh$jh%Nh*hh,}r(UreftypeXconsthhXABORTEDU refdomainXpyrh1]h0]U refexplicith.]h/]h3]hhhjhhuh5Nh]rh)r}r(h#jh,}r(h.]h/]r(hjXpy-constreh0]h1]h3]uh$jh]rh?XABORTEDrr}r(h#Uh$jubah*hubaubh?X.r}r(h#X.h$jubeubhY)r}r(h#XWAbortable tasks monitor their state at regular intervals and terminate execution if so.rh$jh%jgh*hjh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh?XWAbortable tasks monitor their state at regular intervals and terminate execution if so.rr}r(h#jh$jubaubhY)r}r(h#XBe aware that invoking this method does not guarantee when the task will be aborted (or even if the task will be aborted at all).rh$jh%jgh*hjh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh?XBe aware that invoking this method does not guarantee when the task will be aborted (or even if the task will be aborted at all).rr}r(h#jh$jubaubeubeubh)r}r(h#Uh$j+h%X/var/build/user_builds/celery/checkouts/2.1-archived/celery/contrib/abortable.py:docstring of celery.contrib.abortable.AbortableAsyncResult.is_abortedrh*hh,}r(h1]h0]h.]h/]h3]Uentries]r(hXCis_aborted() (celery.contrib.abortable.AbortableAsyncResult method)h Utrauh5Nh6hh]ubj)r}r(h#Uh$j+h%jh*jh,}r(jjXpyh1]h0]h.]h/]h3]jXmethodrjjuh5Nh6hh]r(j)r}r(h#X!AbortableAsyncResult.is_aborted()h$jh%jh*jh,}r(h1]rh ajh&Xcelery.contrib.abortablerr}rbh0]h.]h/]h3]rh ajXAbortableAsyncResult.is_abortedjjjuh5Nh6hh]r(j)r}r(h#X is_abortedh$jh%jh*jh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?X is_abortedrr}r(h#Uh$jubaubj )r}r(h#Uh$jh%jh*jh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubj*)r}r(h#Uh$jh%jh*j-h,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rhY)r}r(h#X5Returns :const:`True` if the task is (being) aborted.h$jh%jh*hjh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]r(h?XReturns rr}r(h#XReturns h$jubh)r}r(h#X :const:`True`rh$jh%Nh*hh,}r(UreftypeXconsthhXTrueU refdomainXpyrh1]h0]U refexplicith.]h/]h3]hhhjhhuh5Nh]rh)r}r(h#jh,}r(h.]h/]r(hjXpy-constreh0]h1]h3]uh$jh]rh?XTruerr}r(h#Uh$jubah*hubaubh?X if the task is (being) aborted.rr}r(h#X if the task is (being) aborted.h$jubeubaubeubeubeubh)r}r(h#Uh$jmh%Nh*hh,}r(h1]h0]h.]h/]h3]Uentries]r(hX1AbortableTask (class in celery.contrib.abortable)h Utrauh5Nh6hh]ubj)r}r(h#Uh$jmh%Nh*jh,}r(jjXpyh1]h0]h.]h/]h3]jXclassrjjuh5Nh6hh]r(j)r}r(h#X AbortableTaskrh$jh%jh*jh,}r(h1]rh ajh&Xcelery.contrib.abortablerr}rbh0]h.]h/]h3]rh ajjjUjuh5Nh6hh]r(j)r}r(h#Xclass h$jh%jh*jh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xclass rr}r(h#Uh$jubaubj)r}r(h#Xcelery.contrib.abortable.h$jh%jh*jh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?Xcelery.contrib.abortable.r r }r (h#Uh$jubaubj)r }r (h#jh$jh%jh*jh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?X AbortableTaskrr}r(h#Uh$j ubaubeubj*)r}r(h#Uh$jh%jh*j-h,}r(h.]h/]h0]h1]h3]uh5Nh6hh]r(hY)r}r(h#XiA celery task that serves as a base class for all :class:`Task`'s that support aborting during execution.h$jh%X/var/build/user_builds/celery/checkouts/2.1-archived/celery/contrib/abortable.py:docstring of celery.contrib.abortable.AbortableTaskrh*hjh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]r(h?X2A celery task that serves as a base class for all rr}r(h#X2A celery task that serves as a base class for all h$jubh)r}r (h#X :class:`Task`r!h$jh%Nh*hh,}r"(UreftypeXclasshhXTaskU refdomainXpyr#h1]h0]U refexplicith.]h/]h3]hhhjhhuh5Nh]r$h)r%}r&(h#j!h,}r'(h.]h/]r((hj#Xpy-classr)eh0]h1]h3]uh$jh]r*h?XTaskr+r,}r-(h#Uh$j%ubah*hubaubh?X*'s that support aborting during execution.r.r/}r0(h#X*'s that support aborting during execution.h$jubeubhY)r1}r2(h#XAll subclasses of :class:`AbortableTask` must call the :meth:`is_aborted` method periodically and act accordingly when the call evaluates to :const:`True`.h$jh%jh*hjh,}r3(h.]h/]h0]h1]h3]uh5Kh6hh]r4(h?XAll subclasses of r5r6}r7(h#XAll subclasses of h$j1ubh)r8}r9(h#X:class:`AbortableTask`r:h$j1h%Nh*hh,}r;(UreftypeXclasshhX AbortableTaskU refdomainXpyr<h1]h0]U refexplicith.]h/]h3]hhhjhhuh5Nh]r=h)r>}r?(h#j:h,}r@(h.]h/]rA(hj<Xpy-classrBeh0]h1]h3]uh$j8h]rCh?X AbortableTaskrDrE}rF(h#Uh$j>ubah*hubaubh?X must call the rGrH}rI(h#X must call the h$j1ubh)rJ}rK(h#X:meth:`is_aborted`rLh$j1h%Nh*hh,}rM(UreftypeXmethhhX is_abortedU refdomainXpyrNh1]h0]U refexplicith.]h/]h3]hhhjhhuh5Nh]rOh)rP}rQ(h#jLh,}rR(h.]h/]rS(hjNXpy-methrTeh0]h1]h3]uh$jJh]rUh?X is_aborted()rVrW}rX(h#Uh$jPubah*hubaubh?XD method periodically and act accordingly when the call evaluates to rYrZ}r[(h#XD method periodically and act accordingly when the call evaluates to h$j1ubh)r\}r](h#X :const:`True`r^h$j1h%Nh*hh,}r_(UreftypeXconsthhXTrueU refdomainXpyr`h1]h0]U refexplicith.]h/]h3]hhhjhhuh5Nh]rah)rb}rc(h#j^h,}rd(h.]h/]re(hj`Xpy-constrfeh0]h1]h3]uh$j\h]rgh?XTruerhri}rj(h#Uh$jbubah*hubaubh?X.rk}rl(h#X.h$j1ubeubh)rm}rn(h#Uh$jh%X/var/build/user_builds/celery/checkouts/2.1-archived/celery/contrib/abortable.py:docstring of celery.contrib.abortable.AbortableTask.AsyncResultroh*hh,}rp(h1]h0]h.]h/]h3]Uentries]rq(hXCAsyncResult() (celery.contrib.abortable.AbortableTask class method)hUtrrauh5Nh6hh]ubj)rs}rt(h#Uh$jh%joh*jh,}ru(jjXpyh1]h0]h.]h/]h3]jX classmethodrvjjvuh5Nh6hh]rw(j)rx}ry(h#X"AbortableTask.AsyncResult(task_id)h$jsh%jh*jh,}rz(h1]r{hajh&Xcelery.contrib.abortabler|r}}r~bh0]h.]h/]h3]rhajXAbortableTask.AsyncResultjjjuh5Nh6hh]r(j)r}r(h#U classmethod rh$jxh%jh*jh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?X classmethod rr}r(h#Uh$jubaubj)r}r(h#X AsyncResulth$jxh%jh*jh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?X AsyncResultrr}r(h#Uh$jubaubj )r}r(h#Uh$jxh%jh*jh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rj)r}r(h#Xtask_idh,}r(h.]h/]h0]h1]h3]uh$jh]rh?Xtask_idrr}r(h#Uh$jubah*jubaubeubj*)r}r(h#Uh$jsh%jh*j-h,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rhY)r}r(h#X7Returns the accompanying AbortableAsyncResult instance.rh$jh%joh*hjh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]rh?X7Returns the accompanying AbortableAsyncResult instance.rr}r(h#jh$jubaubaubeubh)r}r(h#Uh$jh%X/var/build/user_builds/celery/checkouts/2.1-archived/celery/contrib/abortable.py:docstring of celery.contrib.abortable.AbortableTask.is_abortedrh*hh,}r(h1]h0]h.]h/]h3]Uentries]r(hX<is_aborted() (celery.contrib.abortable.AbortableTask method)hUtrauh5Nh6hh]ubj)r}r(h#Uh$jh%jh*jh,}r(jjXpyh1]h0]h.]h/]h3]jXmethodrjjuh5Nh6hh]r(j)r}r(h#X"AbortableTask.is_aborted(**kwargs)h$jh%jh*jh,}r(h1]rhajh&Xcelery.contrib.abortablerr}rbh0]h.]h/]h3]rhajXAbortableTask.is_abortedjjjuh5Nh6hh]r(j)r}r(h#X is_abortedh$jh%jh*jh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rh?X is_abortedrr}r(h#Uh$jubaubj )r}r(h#Uh$jh%jh*jh,}r(h.]h/]h0]h1]h3]uh5Nh6hh]rj)r}r(h#X**kwargsh,}r(h.]h/]h0]h1]h3]uh$jh]rh?X**kwargsrr}r(h#Uh$jubah*jubaubeubj*)r}r(h#Uh$jh%jh*j-h,}r(h.]h/]h0]h1]h3]uh5Nh6hh]r(hY)r}r(h#XZChecks against the backend whether this :class:`AbortableAsyncResult` is :const:`ABORTED`.h$jh%jh*hjh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]r(h?X(Checks against the backend whether this rr}r(h#X(Checks against the backend whether this h$jubh)r}r(h#X:class:`AbortableAsyncResult`rh$jh%Nh*hh,}r(UreftypeXclasshhXAbortableAsyncResultU refdomainXpyrh1]h0]U refexplicith.]h/]h3]hhhjhhuh5Nh]rh)r}r(h#jh,}r(h.]h/]r(hjXpy-classreh0]h1]h3]uh$jh]rh?XAbortableAsyncResultrr}r(h#Uh$jubah*hubaubh?X is rr}r(h#X is h$jubh)r}r(h#X:const:`ABORTED`rh$jh%Nh*hh,}r(UreftypeXconsthhXABORTEDU refdomainXpyrh1]h0]U refexplicith.]h/]h3]hhhjhhuh5Nh]rh)r}r(h#jh,}r(h.]h/]r(hjXpy-constreh0]h1]h3]uh$jh]rh?XABORTEDrr}r(h#Uh$jubah*hubaubh?X.r}r(h#X.h$jubeubhY)r}r(h#XpAlways returns :const:`False` in case the `task_id` parameter refers to a regular (non-abortable) :class:`Task`.h$jh%jh*hjh,}r(h.]h/]h0]h1]h3]uh5Kh6hh]r(h?XAlways returns rr}r(h#XAlways returns h$jubh)r}r(h#X:const:`False`rh$jh%Nh*hh,}r(UreftypeXconsthhXFalseU refdomainXpyrh1]h0]U refexplicith.]h/]h3]hhhjhhuh5Nh]rh)r}r (h#jh,}r (h.]h/]r (hjXpy-constr eh0]h1]h3]uh$jh]r h?XFalserr}r(h#Uh$jubah*hubaubh?X in case the rr}r(h#X in case the h$jubcdocutils.nodes title_reference r)r}r(h#X `task_id`h,}r(h.]h/]h0]h1]h3]uh$jh]rh?Xtask_idrr}r(h#Uh$jubah*Utitle_referencerubh?X/ parameter refers to a regular (non-abortable) rr}r(h#X/ parameter refers to a regular (non-abortable) h$jubh)r }r!(h#X :class:`Task`r"h$jh%Nh*hh,}r#(UreftypeXclasshhXTaskU refdomainXpyr$h1]h0]U refexplicith.]h/]h3]hhhjhhuh5Nh]r%h)r&}r'(h#j"h,}r((h.]h/]r)(hj$Xpy-classr*eh0]h1]h3]uh$j h]r+h?XTaskr,r-}r.(h#Uh$j&ubah*hubaubh?X.r/}r0(h#X.h$jubeubhY)r1}r2(h#XBe aware that invoking this method will cause a hit in the backend (for example a database query), so find a good balance between calling it regularly (for responsiveness), but not too often (for performance).r3h$jh%jh*hjh,}r4(h.]h/]h0]h1]h3]uh5Kh6hh]r5h?XBe aware that invoking this method will cause a hit in the backend (for example a database query), so find a good balance between calling it regularly (for responsiveness), but not too often (for performance).r6r7}r8(h#j3h$j1ubaubeubeubh)r9}r:(h#Uh$jh%Nh*hh,}r;(h1]h0]h.]h/]h3]Uentries]r<(hX7name (celery.contrib.abortable.AbortableTask attribute)hUtr=auh5Nh6hh]ubj)r>}r?(h#Uh$jh%Nh*jh,}r@(jjXpyh1]h0]h.]h/]h3]jX attributerAjjAuh5Nh6hh]rB(j)rC}rD(h#XAbortableTask.namerEh$j>h%U rFh*jh,}rG(h1]rHhajh&Xcelery.contrib.abortablerIrJ}rKbh0]h.]h/]h3]rLhajXAbortableTask.namejjjuh5Nh6hh]rM(j)rN}rO(h#Xnameh$jCh%jFh*jh,}rP(h.]h/]h0]h1]h3]uh5Nh6hh]rQh?XnamerRrS}rT(h#Uh$jNubaubj)rU}rV(h#X+ = 'celery.contrib.abortable.AbortableTask'h$jCh%jFh*jh,}rW(h.]h/]h0]h1]h3]uh5Nh6hh]rXh?X+ = 'celery.contrib.abortable.AbortableTask'rYrZ}r[(h#Uh$jUubaubeubj*)r\}r](h#Uh$j>h%jFh*j-h,}r^(h.]h/]h0]h1]h3]uh5Nh6hh]ubeubeubeubeubeubeubah#UU transformerr_NU footnote_refsr`}raUrefnamesrb}rcUsymbol_footnotesrd]reUautofootnote_refsrf]rgUsymbol_footnote_refsrh]riU citationsrj]rkh6hU current_linerlNUtransform_messagesrm]rncdocutils.nodes system_message ro)rp}rq(h#Uh,}rr(h.]UlevelKh1]h0]Usourcehh/]h3]UlineKUtypeUINFOrsuh]rthY)ru}rv(h#Uh,}rw(h.]h/]h0]h1]h3]uh$jph]rxh?XEHyperlink target "module-celery.contrib.abortable" is not referenced.ryrz}r{(h#Uh$juubah*hjubah*Usystem_messager|ubaUreporterr}NUid_startr~KU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhcelery-2.1-archived/.doctrees/reference/celery.loaders.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery.loaders.load_settingsqXcelery.loaders.setup_loaderqXloaders - celery.loadersqNXcelery.loaders.get_loader_clsq Xcelery.loaders.current_loaderq Ucontentsq NuUsubstitution_defsq }q Uparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhUloaders-celery-loadersqh h h h h UcontentsquUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceqUUparentqhUsourceqcdocutils.nodes reprunicode qXV/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.loaders.rstq q!}q"bUtagnameq#Usectionq$U attributesq%}q&(Udupnamesq']Uclassesq(]Ubackrefsq)]Uidsq*]q+haUnamesq,]q-hauUlineq.KUdocumentq/hh]q0(cdocutils.nodes title q1)q2}q3(hXLoaders - celery.loadersq4hhhh!h#Utitleq5h%}q6(h']h(]h)]h*]h,]uh.Kh/hh]q7cdocutils.nodes Text q8XLoaders - celery.loadersq9q:}q;(hh4hh2ubaubcdocutils.nodes target q<)q=}q>(hUhhhU q?h#Utargetq@h%}qA(h']h*]qBXmodule-celery.loadersqCah)]Uismodh(]h,]uh.Kh/hh]ubcsphinx.addnodes index qD)qE}qF(hUhhhh?h#UindexqGh%}qH(h*]h)]h']h(]h,]Uentries]qI(UsingleqJXcelery.loaders (module)Xmodule-celery.loadersUtqKauh.Kh/hh]ubhD)qL}qM(hUhhhXz/var/build/user_builds/celery/checkouts/2.1-archived/celery/loaders/__init__.py:docstring of celery.loaders.current_loaderqNh#hGh%}qO(h*]h)]h']h(]h,]Uentries]qP(hJX+current_loader() (in module celery.loaders)h UtqQauh.Nh/hh]ubcsphinx.addnodes desc qR)qS}qT(hUhhhhNh#UdescqUh%}qV(UnoindexqWUdomainqXXpyh*]h)]h']h(]h,]UobjtypeqYXfunctionqZUdesctypeq[hZuh.Nh/hh]q\(csphinx.addnodes desc_signature q])q^}q_(hXcurrent_loader()hhShU q`h#Udesc_signatureqah%}qb(h*]qch aUmoduleqdhXcelery.loadersqeqf}qgbh)]h']h(]h,]qhh aUfullnameqiXcurrent_loaderqjUclassqkUUfirstqluh.Nh/hh]qm(csphinx.addnodes desc_addname qn)qo}qp(hXcelery.loaders.hh^hh`h#U desc_addnameqqh%}qr(h']h(]h)]h*]h,]uh.Nh/hh]qsh8Xcelery.loaders.qtqu}qv(hUhhoubaubcsphinx.addnodes desc_name qw)qx}qy(hhjhh^hh`h#U desc_nameqzh%}q{(h']h(]h)]h*]h,]uh.Nh/hh]q|h8Xcurrent_loaderq}q~}q(hUhhxubaubcsphinx.addnodes desc_parameterlist q)q}q(hUhh^hh`h#Udesc_parameterlistqh%}q(h']h(]h)]h*]h,]uh.Nh/hh]ubeubcsphinx.addnodes desc_content q)q}q(hUhhShh`h#U desc_contentqh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qcdocutils.nodes paragraph q)q}q(hX%Detect and return the current loader.qhhhhNh#U paragraphqh%}q(h']h(]h)]h*]h,]uh.Kh/hh]qh8X%Detect and return the current loader.qq}q(hhhhubaubaubeubhD)q}q(hUhhhXz/var/build/user_builds/celery/checkouts/2.1-archived/celery/loaders/__init__.py:docstring of celery.loaders.get_loader_clsqh#hGh%}q(h*]h)]h']h(]h,]Uentries]q(hJX+get_loader_cls() (in module celery.loaders)h Utqauh.Nh/hh]ubhR)q}q(hUhhhhh#hUh%}q(hWhXXpyh*]h)]h']h(]h,]hYXfunctionqh[huh.Nh/hh]q(h])q}q(hXget_loader_cls(loader)hhhh`h#hah%}q(h*]qh ahdhXcelery.loadersqq}qbh)]h']h(]h,]qh ahiXget_loader_clsqhkUhluh.Nh/hh]q(hn)q}q(hXcelery.loaders.hhhh`h#hqh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh8Xcelery.loaders.qq}q(hUhhubaubhw)q}q(hhhhhh`h#hzh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh8Xget_loader_clsqq}q(hUhhubaubh)q}q(hUhhhh`h#hh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qcsphinx.addnodes desc_parameter q)q}q(hXloaderh%}q(h']h(]h)]h*]h,]uhhh]qh8Xloaderqq}q(hUhhubah#Udesc_parameterqubaubeubh)q}q(hUhhhh`h#hh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh)q}q(hXGet loader class by name/aliasqhhhhh#hh%}q(h']h(]h)]h*]h,]uh.Kh/hh]qh8XGet loader class by name/aliasq΅q}q(hhhhubaubaubeubhD)q}q(hUhhhXy/var/build/user_builds/celery/checkouts/2.1-archived/celery/loaders/__init__.py:docstring of celery.loaders.load_settingsqh#hGh%}q(h*]h)]h']h(]h,]Uentries]q(hJX*load_settings() (in module celery.loaders)hUtqauh.Nh/hh]ubhR)q}q(hUhhhhh#hUh%}q(hWhXXpyh*]h)]h']h(]h,]hYXfunctionqh[huh.Nh/hh]q(h])q}q(hXload_settings()hhhh`h#hah%}q(h*]qhahdhXcelery.loadersqq}qbh)]h']h(]h,]qhahiX load_settingsqhkUhluh.Nh/hh]q(hn)q}q(hXcelery.loaders.hhhh`h#hqh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh8Xcelery.loaders.qꅁq}q(hUhhubaubhw)q}q(hhhhhh`h#hzh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh8X load_settingsqq}q(hUhhubaubh)q}q(hUhhhh`h#hh%}q(h']h(]h)]h*]h,]uh.Nh/hh]ubeubh)q}q(hUhhhh`h#hh%}q(h']h(]h)]h*]h,]uh.Nh/hh]qh)q}q(hX Load the global settings object.qhhhhh#hh%}q(h']h(]h)]h*]h,]uh.Kh/hh]qh8X Load the global settings object.rr}r(hhhhubaubaubeubhD)r}r(hUhhhNh#hGh%}r(h*]h)]h']h(]h,]Uentries]r(hJX)setup_loader() (in module celery.loaders)hUtrauh.Nh/hh]ubhR)r}r (hUhhhNh#hUh%}r (hWhXXpyh*]h)]h']h(]h,]hYXfunctionr h[j uh.Nh/hh]r (h])r }r(hXsetup_loader()rhjhh`h#hah%}r(h*]rhahdhXcelery.loadersrr}rbh)]h']h(]h,]rhahiX setup_loaderrhkUhluh.Nh/hh]r(hn)r}r(hXcelery.loaders.hj hh`h#hqh%}r(h']h(]h)]h*]h,]uh.Nh/hh]rh8Xcelery.loaders.rr}r(hUhjubaubhw)r}r (hjhj hh`h#hzh%}r!(h']h(]h)]h*]h,]uh.Nh/hh]r"h8X setup_loaderr#r$}r%(hUhjubaubh)r&}r'(hUhj hh`h#hh%}r((h']h(]h)]h*]h,]uh.Nh/hh]ubeubh)r)}r*(hUhjhh`h#hh%}r+(h']h(]h)]h*]h,]uh.Nh/hh]ubeubeubahUU transformerr,NU footnote_refsr-}r.Urefnamesr/}r0Usymbol_footnotesr1]r2Uautofootnote_refsr3]r4Usymbol_footnote_refsr5]r6U citationsr7]r8h/hU current_liner9NUtransform_messagesr:]r;cdocutils.nodes system_message r<)r=}r>(hUh%}r?(h']UlevelKh*]h)]Usourceh?h(]h,]UlineKUtypeUINFOr@uh]rAh)rB}rC(hUh%}rD(h']h(]h)]h*]h,]uhj=h]rEh8X;Hyperlink target "module-celery.loaders" is not referenced.rFrG}rH(hUhjBubah#hubah#Usystem_messagerIubaUreporterrJNUid_startrKKU autofootnotesrL]rMU citation_refsrN}rOUindirect_targetsrP]rQUsettingsrR(cdocutils.frontend Values rSorT}rU(Ufootnote_backlinksrVKUrecord_dependenciesrWNU rfc_base_urlrXUhttp://tools.ietf.org/html/rYU tracebackrZUpep_referencesr[NUstrip_commentsr\NU toc_backlinksr]Uentryr^U language_coder_Uenr`U datestampraNU report_levelrbKU _destinationrcNU halt_levelrdKU strip_classesreNh5NUerror_encoding_error_handlerrfUbackslashreplacergUdebugrhNUembed_stylesheetriUoutput_encoding_error_handlerrjUstrictrkU sectnum_xformrlKUdump_transformsrmNU docinfo_xformrnKUwarning_streamroNUpep_file_url_templaterpUpep-%04drqUexit_status_levelrrKUconfigrsNUstrict_visitorrtNUcloak_email_addressesruUtrim_footnote_reference_spacervUenvrwNUdump_pseudo_xmlrxNUexpose_internalsryNUsectsubtitle_xformrzU source_linkr{NUrfc_referencesr|NUoutput_encodingr}Uutf-8r~U source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUV/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.loaders.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjkUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hj hhh hhhhCh=h h^hcdocutils.nodes topic r)r}r(hUhhhh!h#Utopicrh%}r(h']h(]r(UcontentsrUlocalreh)]h*]rhah,]rh auh.Kh/hh]rcdocutils.nodes pending r)r}r(hX.. contents:: :local:hjU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh#Upendingrh%}r(h']h(]h)]h*]h,]uh]ubaubuUsubstitution_namesr}rh#h/h%}r(h']h*]h)]Usourceh!h(]h,]uU footnotesr]rUrefidsr}rub.PKYDD-EE?celery-2.1-archived/.doctrees/reference/celery.registry.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery.registry.TaskRegistryqX$celery.registry.TaskRegistry.regularqXtask registry - celery.registryqNX celery.registry.TaskRegistry.popq X%celery.registry.TaskRegistry.periodicq Ucontentsq NX*celery.registry.TaskRegistry.NotRegisteredq X%celery.registry.TaskRegistry.registerq X'celery.registry.TaskRegistry.unregisterqX)celery.registry.TaskRegistry.filter_typesquUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhUtask-registry-celery-registryqh h h h h Ucontentsqh h h h hhhhuUchildrenq]qcdocutils.nodes section q)q}q(U rawsourceq UUparentq!hUsourceq"cdocutils.nodes reprunicode q#XW/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.registry.rstq$q%}q&bUtagnameq'Usectionq(U attributesq)}q*(Udupnamesq+]Uclassesq,]Ubackrefsq-]Uidsq.]q/haUnamesq0]q1hauUlineq2KUdocumentq3hh]q4(cdocutils.nodes title q5)q6}q7(h XTask Registry - celery.registryq8h!hh"h%h'Utitleq9h)}q:(h+]h,]h-]h.]h0]uh2Kh3hh]q;cdocutils.nodes Text q}q?(h h8h!h6ubaubcdocutils.nodes target q@)qA}qB(h Uh!hh"U qCh'UtargetqDh)}qE(h+]h.]qFXmodule-celery.registryqGah-]Uismodh,]h0]uh2Kh3hh]ubcsphinx.addnodes index qH)qI}qJ(h Uh!hh"hCh'UindexqKh)}qL(h.]h-]h+]h,]h0]Uentries]qM(UsingleqNXcelery.registry (module)Xmodule-celery.registryUtqOauh2Kh3hh]ubcdocutils.nodes paragraph qP)qQ}qR(h Xcelery.registryqSh!hh"Xd/var/build/user_builds/celery/checkouts/2.1-archived/celery/registry.py:docstring of celery.registryqTh'U paragraphqUh)}qV(h+]h,]h-]h.]h0]uh2Kh3hh]qWhqoh'Udesc_signatureqph)}qq(h.]qrhaUmoduleqsh#Xcelery.registryqtqu}qvbh-]h+]h,]h0]qwhaUfullnameqxX TaskRegistryqyUclassqzUUfirstq{uh2Nh3hh]q|(csphinx.addnodes desc_annotation q})q~}q(h Xclass h!hlh"hoh'Udesc_annotationqh)}q(h+]h,]h-]h.]h0]uh2Nh3hh]qhh ahxXTaskRegistry.periodichzX TaskRegistryh{uh2Nh3hh]r?(h)r@}rA(h X TaskRegistry.h!j7h"hoh'hh)}rB(h+]h,]h-]h.]h0]uh2Nh3hh]rCh}r?(h j9h!j7ubaubcdocutils.nodes field_list r@)rA}rB(h Uh!j3h"Nh'U field_listrCh)}rD(h+]h,]h-]h.]h0]uh2Nh3hh]rE(cdocutils.nodes field rF)rG}rH(h Uh)}rI(h+]h,]h-]h.]h0]uh!jAh]rJ(cdocutils.nodes field_name rK)rL}rM(h Uh)}rN(h+]h,]h-]h.]h0]uh!jGh]rOhh'h3h)}r?(h+]h.]h-]Usourceh%h,]h0]uU footnotesr@]rAUrefidsrB}rCub.PKYDD"Fnn=celery-2.1-archived/.doctrees/reference/celery.events.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery.events.create_eventqXcelery.events.EventqX#celery.events.EventReceiver.processqX$celery.events.EventDispatcher.enableq X$celery.events.EventReceiver.handlersq Xcelery.events.EventReceiverq X#celery.events.EventDispatcher.closeq X#celery.events.EventDispatcher.flushq X#celery.events.EventReceiver.captureqXevents - celery.eventsqNX%celery.events.EventDispatcher.disableqX$celery.events.EventReceiver.consumerqXcelery.events.EventDispatcherqX"celery.events.EventDispatcher.sendqUcontentsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hhhhhhh h h h h h h h h h hhhUevents-celery-eventsqhhhhhhhhhUcontentsquUchildrenq ]q!cdocutils.nodes section q")q#}q$(U rawsourceq%UUparentq&hUsourceq'cdocutils.nodes reprunicode q(XU/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.events.rstq)q*}q+bUtagnameq,Usectionq-U attributesq.}q/(Udupnamesq0]Uclassesq1]Ubackrefsq2]Uidsq3]q4haUnamesq5]q6hauUlineq7KUdocumentq8hh ]q9(cdocutils.nodes title q:)q;}q<(h%XEvents - celery.eventsq=h&h#h'h*h,Utitleq>h.}q?(h0]h1]h2]h3]h5]uh7Kh8hh ]q@cdocutils.nodes Text qAXEvents - celery.eventsqBqC}qD(h%h=h&h;ubaubcdocutils.nodes target qE)qF}qG(h%Uh&h#h'U qHh,UtargetqIh.}qJ(h0]h3]qKXmodule-celery.eventsqLah2]Uismodh1]h5]uh7Kh8hh ]ubcsphinx.addnodes index qM)qN}qO(h%Uh&h#h'hHh,UindexqPh.}qQ(h3]h2]h0]h1]h5]Uentries]qR(UsingleqSXcelery.events (module)Xmodule-celery.eventsUtqTauh7Kh8hh ]ubhM)qU}qV(h%Uh&h#h'Xo/var/build/user_builds/celery/checkouts/2.1-archived/celery/events/__init__.py:docstring of celery.events.EventqWh,hPh.}qX(h3]h2]h0]h1]h5]Uentries]qY(hSX!Event() (in module celery.events)hUtqZauh7Nh8hh ]ubcsphinx.addnodes desc q[)q\}q](h%Uh&h#h'hWh,Udescq^h.}q_(Unoindexq`UdomainqaXpyh3]h2]h0]h1]h5]UobjtypeqbXfunctionqcUdesctypeqdhcuh7Nh8hh ]qe(csphinx.addnodes desc_signature qf)qg}qh(h%XEvent(type, **fields)h&h\h'U qih,Udesc_signatureqjh.}qk(h3]qlhaUmoduleqmh(X celery.eventsqnqo}qpbh2]h0]h1]h5]qqhaUfullnameqrXEventqsUclassqtUUfirstquuh7Nh8hh ]qv(csphinx.addnodes desc_addname qw)qx}qy(h%Xcelery.events.h&hgh'hih,U desc_addnameqzh.}q{(h0]h1]h2]h3]h5]uh7Nh8hh ]q|hAXcelery.events.q}q~}q(h%Uh&hxubaubcsphinx.addnodes desc_name q)q}q(h%hsh&hgh'hih,U desc_nameqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]qhAXEventqq}q(h%Uh&hubaubcsphinx.addnodes desc_parameterlist q)q}q(h%Uh&hgh'hih,Udesc_parameterlistqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]q(csphinx.addnodes desc_parameter q)q}q(h%Xtypeh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAXtypeqq}q(h%Uh&hubah,Udesc_parameterqubh)q}q(h%X**fieldsh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAX**fieldsqq}q(h%Uh&hubah,hubeubeubcsphinx.addnodes desc_content q)q}q(h%Uh&h\h'hih,U desc_contentqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]q(cdocutils.nodes paragraph q)q}q(h%XCreate an event.qh&hh'hWh,U paragraphqh.}q(h0]h1]h2]h3]h5]uh7Kh8hh ]qhAXCreate an event.qq}q(h%hh&hubaubh)q}q(h%X>An event is a dictionary, the only required field is the type.qh&hh'hWh,hh.}q(h0]h1]h2]h3]h5]uh7Kh8hh ]qhAX>An event is a dictionary, the only required field is the type.qq}q(h%hh&hubaubeubeubhM)q}q(h%Uh&h#h'Nh,hPh.}q(h3]h2]h0]h1]h5]Uentries]q(hSX(EventDispatcher (class in celery.events)hUtqauh7Nh8hh ]ubh[)q}q(h%Uh&h#h'Nh,h^h.}q(h`haXpyh3]h2]h0]h1]h5]hbXclassqhdhuh7Nh8hh ]q(hf)q}q(h%X8EventDispatcher(connection, hostname=None, enabled=True)h&hh'hih,hjh.}q(h3]qhahmh(X celery.eventsqŅq}qbh2]h0]h1]h5]qhahrXEventDispatcherqhtUhuuh7Nh8hh ]q(csphinx.addnodes desc_annotation q)q}q(h%Xclass h&hh'hih,Udesc_annotationqh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]qhAXclass qхq}q(h%Uh&hubaubhw)q}q(h%Xcelery.events.h&hh'hih,hzh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]qhAXcelery.events.q؅q}q(h%Uh&hubaubh)q}q(h%hh&hh'hih,hh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]qhAXEventDispatcherq߅q}q(h%Uh&hubaubh)q}q(h%Uh&hh'hih,hh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]q(h)q}q(h%X connectionh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAX connectionqꅁq}q(h%Uh&hubah,hubh)q}q(h%X hostname=Noneh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAX hostname=Noneqq}q(h%Uh&hubah,hubh)q}q(h%X enabled=Trueh.}q(h0]h1]h2]h3]h5]uh&hh ]qhAX enabled=Trueqq}q(h%Uh&hubah,hubeubeubh)q}q(h%Uh&hh'hih,hh.}q(h0]h1]h2]h3]h5]uh7Nh8hh ]q(h)q}r(h%XSend events as messages.rh&hh'Xy/var/build/user_builds/celery/checkouts/2.1-archived/celery/events/__init__.py:docstring of celery.events.EventDispatcherrh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]rhAXSend events as messages.rr}r(h%jh&hubaubcdocutils.nodes field_list r)r }r (h%Uh&hh'Nh,U field_listr h.}r (h0]h1]h2]h3]h5]uh7Nh8hh ]r cdocutils.nodes field r)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&j h ]r(cdocutils.nodes field_name r)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX Parametersrr}r(h%Uh&jubah,U field_namerubcdocutils.nodes field_body r)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r cdocutils.nodes bullet_list r!)r"}r#(h%Uh.}r$(h0]h1]h2]h3]h5]uh&jh ]r%(cdocutils.nodes list_item r&)r'}r((h%Uh.}r)(h0]h1]h2]h3]h5]uh&j"h ]r*h)r+}r,(h%Uh.}r-(h0]h1]h2]h3]h5]uh&j'h ]r.(cdocutils.nodes strong r/)r0}r1(h%X connectionh.}r2(h0]h1]h2]h3]h5]uh&j+h ]r3hAX connectionr4r5}r6(h%Uh&j0ubah,Ustrongr7ubhAX -- r8r9}r:(h%Uh&j+ubhAXCarrot connection.r;r<}r=(h%XCarrot connection.r>h&j+ubeh,hubah,U list_itemr?ubj&)r@}rA(h%Uh.}rB(h0]h1]h2]h3]h5]uh&j"h ]rCh)rD}rE(h%Uh.}rF(h0]h1]h2]h3]h5]uh&j@h ]rG(j/)rH}rI(h%Xhostnameh.}rJ(h0]h1]h2]h3]h5]uh&jDh ]rKhAXhostnamerLrM}rN(h%Uh&jHubah,j7ubhAX -- rOrP}rQ(h%Uh&jDubhAXLHostname to identify ourselves as, by default uses the hostname returned by rRrS}rT(h%XLHostname to identify ourselves as, by default uses the hostname returned by h&jDubcsphinx.addnodes pending_xref rU)rV}rW(h%X:func:`socket.gethostname`rXh&jDh'Nh,U pending_xrefrYh.}rZ(UreftypeXfuncUrefwarnr[U reftargetr\Xsocket.gethostnameU refdomainXpyr]h3]h2]U refexplicith0]h1]h5]Urefdocr^Xreference/celery.eventsr_Upy:classr`hU py:moduleraX celery.eventsrbuh7Nh ]rccdocutils.nodes literal rd)re}rf(h%jXh.}rg(h0]h1]rh(Uxrefrij]Xpy-funcrjeh2]h3]h5]uh&jVh ]rkhAXsocket.gethostname()rlrm}rn(h%Uh&jeubah,UliteralroubaubhAX.rp}rq(h%X.h&jDubeh,hubah,j?ubj&)rr}rs(h%Uh.}rt(h0]h1]h2]h3]h5]uh&j"h ]ruh)rv}rw(h%Uh.}rx(h0]h1]h2]h3]h5]uh&jrh ]ry(j/)rz}r{(h%Xenabledh.}r|(h0]h1]h2]h3]h5]uh&jvh ]r}hAXenabledr~r}r(h%Uh&jzubah,j7ubhAX -- rr}r(h%Uh&jvubhAXSet to rr}r(h%XSet to h&jvubjd)r}r(h%X ``False``h.}r(h0]h1]h2]h3]h5]uh&jvh ]rhAXFalserr}r(h%Uh&jubah,joubhAX, to not actually publish any events, making rr}r(h%X, to not actually publish any events, making h&jvubjU)r}r(h%X :meth:`send`rh&jvh'Nh,jYh.}r(UreftypeXmethj[j\XsendU refdomainXpyrh3]h2]U refexplicith0]h1]h5]j^j_j`hjajbuh7Nh ]rjd)r}r(h%jh.}r(h0]h1]r(jijXpy-methreh2]h3]h5]uh&jh ]rhAXsend()rr}r(h%Uh&jubah,joubaubhAX a noop operation.rr}r(h%X a noop operation.h&jvubeh,hubah,j?ubeh,U bullet_listrubah,U field_bodyrubeh,Ufieldrubaubh)r}r(h%X)You need to :meth:`close` this after use.rh&hh'jh,hh.}r(h0]h1]h2]h3]h5]uh7K h8hh ]r(hAX You need to rr}r(h%X You need to h&jubjU)r}r(h%X :meth:`close`rh&jh'Nh,jYh.}r(UreftypeXmethj[j\XcloseU refdomainXpyrh3]h2]U refexplicith0]h1]h5]j^j_j`hjajbuh7Nh ]rjd)r}r(h%jh.}r(h0]h1]r(jijXpy-methreh2]h3]h5]uh&jh ]rhAXclose()rr}r(h%Uh&jubah,joubaubhAX this after use.rr}r(h%X this after use.h&jubeubhM)r}r(h%Uh&hh'X/var/build/user_builds/celery/checkouts/2.1-archived/celery/events/__init__.py:docstring of celery.events.EventDispatcher.closerh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX.close() (celery.events.EventDispatcher method)h Utrauh7Nh8hh ]ubh[)r}r(h%Uh&hh'jh,h^h.}r(h`haXpyh3]h2]h0]h1]h5]hbXmethodrhdjuh7Nh8hh ]r(hf)r}r(h%XEventDispatcher.close()h&jh'hih,hjh.}r(h3]rh ahmh(X celery.eventsrr}rbh2]h0]h1]h5]rh ahrXEventDispatcher.closehthhuuh7Nh8hh ]r(h)r}r(h%Xcloseh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXcloserr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)r}r(h%Uh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rh)r}r(h%XClose the event dispatcher.rh&jh'jh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]rhAXClose the event dispatcher.rr}r(h%jh&jubaubaubeubhM)r}r(h%Uh&hh'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX0disable() (celery.events.EventDispatcher method)hUtrauh7Nh8hh ]ubh[)r}r(h%Uh&hh'Nh,h^h.}r(h`haXpyh3]h2]h0]h1]h5]hbXmethodrhdjuh7Nh8hh ]r(hf)r}r(h%XEventDispatcher.disable()h&jh'hih,hjh.}r(h3]rhahmh(X celery.eventsrr}rbh2]h0]h1]h5]rhahrXEventDispatcher.disablehthhuuh7Nh8hh ]r(h)r}r(h%Xdisableh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXdisablerr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)r}r(h%Uh&jh'hih,hh.}r (h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r }r (h%Uh&hh'Nh,hPh.}r (h3]h2]h0]h1]h5]Uentries]r (hSX/enable() (celery.events.EventDispatcher method)h Utrauh7Nh8hh ]ubh[)r}r(h%Uh&hh'Nh,h^h.}r(h`haXpyh3]h2]h0]h1]h5]hbXmethodrhdjuh7Nh8hh ]r(hf)r}r(h%XEventDispatcher.enable()h&jh'hih,hjh.}r(h3]rh ahmh(X celery.eventsrr}rbh2]h0]h1]h5]rh ahrXEventDispatcher.enablehthhuuh7Nh8hh ]r(h)r}r(h%Xenableh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]r hAXenabler!r"}r#(h%Uh&jubaubh)r$}r%(h%Uh&jh'hih,hh.}r&(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)r'}r((h%Uh&jh'hih,hh.}r)(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r*}r+(h%Uh&hh'Nh,hPh.}r,(h3]h2]h0]h1]h5]Uentries]r-(hSX.flush() (celery.events.EventDispatcher method)h Utr.auh7Nh8hh ]ubh[)r/}r0(h%Uh&hh'Nh,h^h.}r1(h`haXpyh3]h2]h0]h1]h5]hbXmethodr2hdj2uh7Nh8hh ]r3(hf)r4}r5(h%XEventDispatcher.flush()h&j/h'hih,hjh.}r6(h3]r7h ahmh(X celery.eventsr8r9}r:bh2]h0]h1]h5]r;h ahrXEventDispatcher.flushhthhuuh7Nh8hh ]r<(h)r=}r>(h%Xflushh&j4h'hih,hh.}r?(h0]h1]h2]h3]h5]uh7Nh8hh ]r@hAXflushrArB}rC(h%Uh&j=ubaubh)rD}rE(h%Uh&j4h'hih,hh.}rF(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)rG}rH(h%Uh&j/h'hih,hh.}rI(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)rJ}rK(h%Uh&hh'Nh,hPh.}rL(h3]h2]h0]h1]h5]Uentries]rM(hSX-send() (celery.events.EventDispatcher method)hUtrNauh7Nh8hh ]ubh[)rO}rP(h%Uh&hh'Nh,h^h.}rQ(h`haXpyh3]h2]h0]h1]h5]hbXmethodrRhdjRuh7Nh8hh ]rS(hf)rT}rU(h%X$EventDispatcher.send(type, **fields)h&jOh'hih,hjh.}rV(h3]rWhahmh(X celery.eventsrXrY}rZbh2]h0]h1]h5]r[hahrXEventDispatcher.sendhthhuuh7Nh8hh ]r\(h)r]}r^(h%Xsendh&jTh'hih,hh.}r_(h0]h1]h2]h3]h5]uh7Nh8hh ]r`hAXsendrarb}rc(h%Uh&j]ubaubh)rd}re(h%Uh&jTh'hih,hh.}rf(h0]h1]h2]h3]h5]uh7Nh8hh ]rg(h)rh}ri(h%Xtypeh.}rj(h0]h1]h2]h3]h5]uh&jdh ]rkhAXtyperlrm}rn(h%Uh&jhubah,hubh)ro}rp(h%X**fieldsh.}rq(h0]h1]h2]h3]h5]uh&jdh ]rrhAX**fieldsrsrt}ru(h%Uh&joubah,hubeubeubh)rv}rw(h%Uh&jOh'hih,hh.}rx(h0]h1]h2]h3]h5]uh7Nh8hh ]ry(h)rz}r{(h%X Send event.r|h&jvh'X~/var/build/user_builds/celery/checkouts/2.1-archived/celery/events/__init__.py:docstring of celery.events.EventDispatcher.sendr}h,hh.}r~(h0]h1]h2]h3]h5]uh7Kh8hh ]rhAX Send event.rr}r(h%j|h&jzubaubj)r}r(h%Uh&jvh'Nh,j h.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rj)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r(j)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX Parametersrr}r(h%Uh&jubah,jubj)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rj!)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r(j&)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rh)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r(j/)r}r(h%Xtypeh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAXtyperr}r(h%Uh&jubah,j7ubhAX -- rr}r(h%Uh&jubhAXKind of event.rr}r(h%XKind of event.rh&jubeh,hubah,j?ubj&)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rh)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r(j/)r}r(h%X**fieldsh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX**fieldsrr}r(h%Uh&jubah,j7ubhAX -- rr}r(h%Uh&jubhAXEvent arguments.rr}r(h%XEvent arguments.rh&jubeh,hubah,j?ubeh,jubah,jubeh,jubaubeubeubeubeubhM)r}r(h%Uh&h#h'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX&EventReceiver (class in celery.events)h Utrauh7Nh8hh ]ubh[)r}r(h%Uh&h#h'Nh,h^h.}r(h`haXpyh3]h2]h0]h1]h5]hbXclassrhdjuh7Nh8hh ]r(hf)r}r(h%X5EventReceiver(connection, handlers=None, wakeup=True)h&jh'hih,hjh.}r(h3]rh ahmh(X celery.eventsrr}rbh2]h0]h1]h5]rh ahrX EventReceiverrhtUhuuh7Nh8hh ]r(h)r}r(h%Xclass h&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXclass rr}r(h%Uh&jubaubhw)r}r(h%Xcelery.events.h&jh'hih,hzh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXcelery.events.rr}r(h%Uh&jubaubh)r}r(h%jh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAX EventReceiverrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]r(h)r}r(h%X connectionh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX connectionrr}r(h%Uh&jubah,hubh)r}r(h%X handlers=Noneh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX handlers=Nonerr}r(h%Uh&jubah,hubh)r}r(h%X wakeup=Trueh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX wakeup=Truerr}r(h%Uh&jubah,hubeubeubh)r}r (h%Uh&jh'hih,hh.}r (h0]h1]h2]h3]h5]uh7Nh8hh ]r (h)r }r (h%XCapture events.rh&jh'Xw/var/build/user_builds/celery/checkouts/2.1-archived/celery/events/__init__.py:docstring of celery.events.EventReceiverrh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]rhAXCapture events.rr}r(h%jh&j ubaubj)r}r(h%Uh&jh'Nh,j h.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rj)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r(j)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]r hAX Parametersr!r"}r#(h%Uh&jubah,jubj)r$}r%(h%Uh.}r&(h0]h1]h2]h3]h5]uh&jh ]r'j!)r(}r)(h%Uh.}r*(h0]h1]h2]h3]h5]uh&j$h ]r+(j&)r,}r-(h%Uh.}r.(h0]h1]h2]h3]h5]uh&j(h ]r/h)r0}r1(h%Uh.}r2(h0]h1]h2]h3]h5]uh&j,h ]r3(j/)r4}r5(h%X connectionh.}r6(h0]h1]h2]h3]h5]uh&j0h ]r7hAX connectionr8r9}r:(h%Uh&j4ubah,j7ubhAX -- r;r<}r=(h%Uh&j0ubhAXCarrot connection.r>r?}r@(h%XCarrot connection.rAh&j0ubeh,hubah,j?ubj&)rB}rC(h%Uh.}rD(h0]h1]h2]h3]h5]uh&j(h ]rEh)rF}rG(h%Uh.}rH(h0]h1]h2]h3]h5]uh&jBh ]rI(j/)rJ}rK(h%Xhandlersh.}rL(h0]h1]h2]h3]h5]uh&jFh ]rMhAXhandlersrNrO}rP(h%Uh&jJubah,j7ubhAX -- rQrR}rS(h%Uh&jFubhAXEvent handlers.rTrU}rV(h%XEvent handlers.rWh&jFubeh,hubah,j?ubeh,jubah,jubeh,jubaubh)rX}rY(h%X:attr:`handlers`` is a dict of event types and their handlers, the special handler ``"*`"`` captures all events that doesn't have a handler.h&jh'jh,hh.}rZ(h0]h1]h2]h3]h5]uh7Kh8hh ]r[(jU)r\}r](h%X:attr:`handlers``r^h&jXh'Nh,jYh.}r_(UreftypeXattrj[j\X handlers`U refdomainXpyr`h3]h2]U refexplicith0]h1]h5]j^j_j`jjajbuh7Nh ]rajd)rb}rc(h%j^h.}rd(h0]h1]re(jij`Xpy-attrrfeh2]h3]h5]uh&j\h ]rghAX handlers`rhri}rj(h%Uh&jbubah,joubaubhAXB is a dict of event types and their handlers, the special handler rkrl}rm(h%XB is a dict of event types and their handlers, the special handler h&jXubjd)rn}ro(h%X``"*`"``h.}rp(h0]h1]h2]h3]h5]uh&jXh ]rqhAX"*`"rrrs}rt(h%Uh&jnubah,joubhAX1 captures all events that doesn't have a handler.rurv}rw(h%X1 captures all events that doesn't have a handler.h&jXubeubhM)rx}ry(h%Uh&jh'X/var/build/user_builds/celery/checkouts/2.1-archived/celery/events/__init__.py:docstring of celery.events.EventReceiver.capturerzh,hPh.}r{(h3]h2]h0]h1]h5]Uentries]r|(hSX.capture() (celery.events.EventReceiver method)hUtr}auh7Nh8hh ]ubh[)r~}r(h%Uh&jh'jzh,h^h.}r(h`haXpyh3]h2]h0]h1]h5]hbXmethodrhdjuh7Nh8hh ]r(hf)r}r(h%X/EventReceiver.capture(limit=None, timeout=None)h&j~h'hih,hjh.}r(h3]rhahmh(X celery.eventsrr}rbh2]h0]h1]h5]rhahrXEventReceiver.capturehtjhuuh7Nh8hh ]r(h)r}r(h%Xcaptureh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXcapturerr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]r(h)r}r(h%X limit=Noneh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX limit=Nonerr}r(h%Uh&jubah,hubh)r}r(h%X timeout=Noneh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX timeout=Nonerr}r(h%Uh&jubah,hubeubeubh)r}r(h%Uh&j~h'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]r(h)r}r(h%X$Open up a consumer capturing events.rh&jh'jzh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]rhAX$Open up a consumer capturing events.rr}r(h%jh&jubaubh)r}r(h%X|This has to run in the main process, and it will never stop unless forced via :exc:`KeyboardInterrupt` or :exc:`SystemExit`.h&jh'jzh,hh.}r(h0]h1]h2]h3]h5]uh7Kh8hh ]r(hAXNThis has to run in the main process, and it will never stop unless forced via rr}r(h%XNThis has to run in the main process, and it will never stop unless forced via h&jubjU)r}r(h%X:exc:`KeyboardInterrupt`rh&jh'Nh,jYh.}r(UreftypeXexcj[j\XKeyboardInterruptU refdomainXpyrh3]h2]U refexplicith0]h1]h5]j^j_j`jjajbuh7Nh ]rjd)r}r(h%jh.}r(h0]h1]r(jijXpy-excreh2]h3]h5]uh&jh ]rhAXKeyboardInterruptrr}r(h%Uh&jubah,joubaubhAX or rr}r(h%X or h&jubjU)r}r(h%X:exc:`SystemExit`rh&jh'Nh,jYh.}r(UreftypeXexcj[j\X SystemExitU refdomainXpyrh3]h2]U refexplicith0]h1]h5]j^j_j`jjajbuh7Nh ]rjd)r}r(h%jh.}r(h0]h1]r(jijXpy-excreh2]h3]h5]uh&jh ]rhAX SystemExitrr}r(h%Uh&jubah,joubaubhAX.r}r(h%X.h&jubeubeubeubhM)r}r(h%Uh&jh'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX/consumer() (celery.events.EventReceiver method)hUtrauh7Nh8hh ]ubh[)r}r(h%Uh&jh'Nh,h^h.}r(h`haXpyh3]h2]h0]h1]h5]hbXmethodrhdjuh7Nh8hh ]r(hf)r}r(h%XEventReceiver.consumer()h&jh'hih,hjh.}r(h3]rhahmh(X celery.eventsrr}rbh2]h0]h1]h5]rhahrXEventReceiver.consumerhtjhuuh7Nh8hh ]r(h)r}r(h%Xconsumerh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXconsumerrr}r(h%Uh&jubaubh)r}r(h%Uh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubh)r}r(h%Uh&jh'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r}r(h%Uh&jh'Nh,hPh.}r(h3]h2]h0]h1]h5]Uentries]r(hSX0handlers (celery.events.EventReceiver attribute)h Utrauh7Nh8hh ]ubh[)r}r(h%Uh&jh'Nh,h^h.}r(h`haXpyh3]h2]h0]h1]h5]hbX attributerhdjuh7Nh8hh ]r(hf)r}r(h%XEventReceiver.handlersh&jh'U rh,hjh.}r(h3]r h ahmh(X celery.eventsr r }r bh2]h0]h1]h5]r h ahrXEventReceiver.handlershtjhuuh7Nh8hh ]r(h)r}r(h%Xhandlersh&jh'jh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAXhandlersrr}r(h%Uh&jubaubh)r}r(h%X = {}h&jh'jh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]rhAX = {}rr}r(h%Uh&jubaubeubh)r}r(h%Uh&jh'jh,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubhM)r }r!(h%Uh&jh'X/var/build/user_builds/celery/checkouts/2.1-archived/celery/events/__init__.py:docstring of celery.events.EventReceiver.processr"h,hPh.}r#(h3]h2]h0]h1]h5]Uentries]r$(hSX.process() (celery.events.EventReceiver method)hUtr%auh7Nh8hh ]ubh[)r&}r'(h%Uh&jh'j"h,h^h.}r((h`haXpyh3]h2]h0]h1]h5]hbXmethodr)hdj)uh7Nh8hh ]r*(hf)r+}r,(h%X"EventReceiver.process(type, event)h&j&h'hih,hjh.}r-(h3]r.hahmh(X celery.eventsr/r0}r1bh2]h0]h1]h5]r2hahrXEventReceiver.processhtjhuuh7Nh8hh ]r3(h)r4}r5(h%Xprocessh&j+h'hih,hh.}r6(h0]h1]h2]h3]h5]uh7Nh8hh ]r7hAXprocessr8r9}r:(h%Uh&j4ubaubh)r;}r<(h%Uh&j+h'hih,hh.}r=(h0]h1]h2]h3]h5]uh7Nh8hh ]r>(h)r?}r@(h%Xtypeh.}rA(h0]h1]h2]h3]h5]uh&j;h ]rBhAXtyperCrD}rE(h%Uh&j?ubah,hubh)rF}rG(h%Xeventh.}rH(h0]h1]h2]h3]h5]uh&j;h ]rIhAXeventrJrK}rL(h%Uh&jFubah,hubeubeubh)rM}rN(h%Uh&j&h'hih,hh.}rO(h0]h1]h2]h3]h5]uh7Nh8hh ]rPh)rQ}rR(h%XHProcess the received event by dispatching it to the appropriate handler.rSh&jMh'j"h,hh.}rT(h0]h1]h2]h3]h5]uh7Kh8hh ]rUhAXHProcess the received event by dispatching it to the appropriate handler.rVrW}rX(h%jSh&jQubaubaubeubeubeubhM)rY}rZ(h%Uh&h#h'Nh,hPh.}r[(h3]h2]h0]h1]h5]Uentries]r\(hSX(create_event() (in module celery.events)hUtr]auh7Nh8hh ]ubh[)r^}r_(h%Uh&h#h'Nh,h^h.}r`(h`haXpyh3]h2]h0]h1]h5]hbXfunctionrahdjauh7Nh8hh ]rb(hf)rc}rd(h%Xcreate_event(type, fields)h&j^h'hih,hjh.}re(h3]rfhahmh(X celery.eventsrgrh}ribh2]h0]h1]h5]rjhahrX create_eventrkhtUhuuh7Nh8hh ]rl(hw)rm}rn(h%Xcelery.events.h&jch'hih,hzh.}ro(h0]h1]h2]h3]h5]uh7Nh8hh ]rphAXcelery.events.rqrr}rs(h%Uh&jmubaubh)rt}ru(h%jkh&jch'hih,hh.}rv(h0]h1]h2]h3]h5]uh7Nh8hh ]rwhAX create_eventrxry}rz(h%Uh&jtubaubh)r{}r|(h%Uh&jch'hih,hh.}r}(h0]h1]h2]h3]h5]uh7Nh8hh ]r~(h)r}r(h%Xtypeh.}r(h0]h1]h2]h3]h5]uh&j{h ]rhAXtyperr}r(h%Uh&jubah,hubh)r}r(h%Xfieldsh.}r(h0]h1]h2]h3]h5]uh&j{h ]rhAXfieldsrr}r(h%Uh&jubah,hubeubeubh)r}r(h%Uh&j^h'hih,hh.}r(h0]h1]h2]h3]h5]uh7Nh8hh ]ubeubeubah%UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh8hU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h%Uh.}r(h0]UlevelKh3]h2]UsourcehHh1]h5]UlineKUtypeUINFOruh ]rh)r}r(h%Uh.}r(h0]h1]h2]h3]h5]uh&jh ]rhAX:Hyperlink target "module-celery.events" is not referenced.rr}r(h%Uh&jubah,hubah,Usystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh>NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerUU/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.events.rstrUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjchhghh#h jh jh jhLhFh j4hjh jhjhjhj+hhhjThcdocutils.nodes topic r)r}r(h%Uh&h#h'h*h,Utopicrh.}r(h0]h1]r(UcontentsrUlocalreh2]h3]r hah5]r hauh7Kh8hh ]r cdocutils.nodes pending r )r }r(h%X.. contents:: :local:h&jU transformrcdocutils.transforms.parts Contents rUdetailsr}rUlocalNsh,Upendingrh.}r(h0]h1]h2]h3]h5]uh ]ubaubuUsubstitution_namesr}rh,h8h.}r(h0]h3]h2]Usourceh*h1]h5]uU footnotesr]rUrefidsr}rub.PKYDDe=F=F@celery-2.1-archived/.doctrees/reference/celery.messaging.doctreecdocutils.nodes document q)q}q(U nametypesq}q(X+celery.messaging.EventPublisher.routing_keyqX,celery.messaging.EventConsumer.exchange_typeqX-celery.messaging.ControlReplyConsumer.durableqX%celery.messaging.ControlReplyConsumerq X4celery.messaging.ControlReplyPublisher.exchange_typeq X'celery.messaging.EventPublisher.durableq X(celery.messaging.BroadcastPublisher.sendq X"celery.messaging.BroadcastConsumerq X/celery.messaging.ControlReplyPublisher.exchangeqX'celery.messaging.EventConsumer.exchangeqX%celery.messaging.establish_connectionqX)celery.messaging.TaskPublisher.delay_taskqX%celery.messaging.EventConsumer.no_ackqX&celery.messaging.TaskConsumer.exchangeqX)celery.messaging.BroadcastConsumer.no_ackqUcontentsqNX&celery.messaging.TaskPublisher.declareqXcelery.messaging.EventPublisherqX3celery.messaging.BroadcastConsumer.verify_exclusiveqX+celery.messaging.BroadcastPublisher.ReplyToqX+celery.messaging.EventPublisher.auto_deleteqXmessaging - celery.messagingqNX1celery.messaging.ControlReplyConsumer.auto_deleteqX.celery.messaging.ControlReplyConsumer.exchangeqX celery.messaging.with_connectionqX+celery.messaging.BroadcastPublisher.durableqX+celery.messaging.TaskConsumer.exchange_typeq X0celery.messaging.BroadcastConsumer.exchange_typeq!X,celery.messaging.ControlReplyConsumer.no_ackq"X$celery.messaging.EventConsumer.queueq#X$celery.messaging.extract_msg_optionsq$X-celery.messaging.EventPublisher.delivery_modeq%X.celery.messaging.ControlReplyPublisher.durableq&X4celery.messaging.ControlReplyPublisher.delivery_modeq'X+celery.messaging.TaskPublisher.auto_declareq(X-celery.messaging.EventPublisher.exchange_typeq)X(celery.messaging.BroadcastConsumer.queueq*X/celery.messaging.ControlReplyConsumer.exclusiveq+X*celery.messaging.BroadcastConsumer.durableq,X*celery.messaging.EventConsumer.routing_keyq-X#celery.messaging.TaskConsumer.queueq.X#celery.messaging.BroadcastPublisherq/X(celery.messaging.EventPublisher.exchangeq0X)celery.messaging.TaskConsumer.routing_keyq1X)celery.messaging.TaskPublisher.serializerq2X,celery.messaging.ConsumerSet.on_decode_errorq3X'celery.messaging.TaskPublisher.exchangeq4Xcelery.messaging.EventConsumerq5Xcelery.messaging.TaskPublisherq6X*celery.messaging.BroadcastConsumer.consumeq7X1celery.messaging.BroadcastPublisher.exchange_typeq8X&celery.messaging.ControlReplyPublisherq9X,celery.messaging.TaskPublisher.exchange_typeq:X2celery.messaging.ControlReplyPublisher.auto_deleteq;X*celery.messaging.EventPublisher.serializerqX,celery.messaging.BroadcastPublisher.exchangeq?X.celery.messaging.BroadcastConsumer.auto_deleteq@X3celery.messaging.ControlReplyConsumer.exchange_typeqAX/celery.messaging.BroadcastPublisher.auto_deleteqBX-celery.messaging.ControlReplyConsumer.collectqCX+celery.messaging.BroadcastConsumer.exchangeqDX!celery.messaging.get_consumer_setqEX*celery.messaging.TaskPublisher.routing_keyqFXcelery.messaging.ConsumerSetqGX*celery.messaging.EventConsumer.auto_deleteqHuUsubstitution_defsqI}qJUparse_messagesqK]qLUcurrent_sourceqMNU decorationqNNUautofootnote_startqOKUnameidsqP}qQ(hhhhhhh h h h h h h h h h hhhhhhhhhhhhhhhUcontentsqRhhhhhhhhhhhUmessaging-celery-messagingqShhhhhhhhh h h!h!h"h"h#h#h$h$h%h%h&h&h'h'h(h(h)h)h*h*h+h+h,h,h-h-h.h.h/h/h0h0h1h1h2h2h3h3h4h4h5h5h6h6h7h7h8h8h9h9h:h:h;h;hh>h?h?h@h@hAhAhBhBhChChDhDhEhEhFhFhGhGhHhHuUchildrenqT]qUcdocutils.nodes section qV)qW}qX(U rawsourceqYUUparentqZhUsourceq[cdocutils.nodes reprunicode q\XX/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.messaging.rstq]q^}q_bUtagnameq`UsectionqaU attributesqb}qc(Udupnamesqd]Uclassesqe]Ubackrefsqf]Uidsqg]qhhSaUnamesqi]qjhauUlineqkKUdocumentqlhhT]qm(cdocutils.nodes title qn)qo}qp(hYXMessaging - celery.messagingqqhZhWh[h^h`Utitleqrhb}qs(hd]he]hf]hg]hi]uhkKhlhhT]qtcdocutils.nodes Text quXMessaging - celery.messagingqvqw}qx(hYhqhZhoubaubcdocutils.nodes target qy)qz}q{(hYUhZhWh[U q|h`Utargetq}hb}q~(hd]hg]qXmodule-celery.messagingqahf]Uismodhe]hi]uhkKhlhhT]ubcsphinx.addnodes index q)q}q(hYUhZhWh[h|h`Uindexqhb}q(hg]hf]hd]he]hi]Uentries]q(UsingleqXcelery.messaging (module)Xmodule-celery.messagingUtqauhkKhlhhT]ubcdocutils.nodes paragraph q)q}q(hYXSending and Receiving MessagesqhZhWh[Xf/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messagingqh`U paragraphqhb}q(hd]he]hf]hg]hi]uhkKhlhhT]qhuXSending and Receiving Messagesqq}q(hYhhZhubaubh)q}q(hYUhZhWh[Nh`hhb}q(hg]hf]hd]he]hi]Uentries]q(hX-BroadcastConsumer (class in celery.messaging)h UtqauhkNhlhhT]ubcsphinx.addnodes desc q)q}q(hYUhZhWh[Nh`Udescqhb}q(UnoindexqUdomainqXpyhg]hf]hd]he]hi]UobjtypeqXclassqUdesctypeqhuhkNhlhhT]q(csphinx.addnodes desc_signature q)q}q(hYX"BroadcastConsumer(*args, **kwargs)hZhh[U qh`Udesc_signatureqhb}q(hg]qh aUmoduleqh\Xcelery.messagingqq}qbhf]hd]he]hi]qh aUfullnameqXBroadcastConsumerqUclassqUUfirstquhkNhlhhT]q(csphinx.addnodes desc_annotation q)q}q(hYXclass hZhh[hh`Udesc_annotationqhb}q(hd]he]hf]hg]hi]uhkNhlhhT]qhuXclass qq}q(hYUhZhubaubcsphinx.addnodes desc_addname q)q}q(hYXcelery.messaging.hZhh[hh`U desc_addnameqhb}q(hd]he]hf]hg]hi]uhkNhlhhT]qhuXcelery.messaging.qąq}q(hYUhZhubaubcsphinx.addnodes desc_name q)q}q(hYhhZhh[hh`U desc_nameqhb}q(hd]he]hf]hg]hi]uhkNhlhhT]qhuXBroadcastConsumerqͅq}q(hYUhZhubaubcsphinx.addnodes desc_parameterlist q)q}q(hYUhZhh[hh`Udesc_parameterlistqhb}q(hd]he]hf]hg]hi]uhkNhlhhT]q(csphinx.addnodes desc_parameter q)q}q(hYX*argshb}q(hd]he]hf]hg]hi]uhZhhT]qhuX*argsqۅq}q(hYUhZhubah`Udesc_parameterqubh)q}q(hYX**kwargshb}q(hd]he]hf]hg]hi]uhZhhT]qhuX**kwargsqㅁq}q(hYUhZhubah`hubeubeubcsphinx.addnodes desc_content q)q}q(hYUhZhh[hh`U desc_contentqhb}q(hd]he]hf]hg]hi]uhkNhlhhT]q(h)q}q(hYXConsume broadcast commandsqhZhh[Xx/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.BroadcastConsumerqh`hhb}q(hd]he]hf]hg]hi]uhkKhlhhT]qhuXConsume broadcast commandsqq}q(hYhhZhubaubh)q}q(hYUhZhh[Nh`hhb}q(hg]hf]hd]he]hi]Uentries]q(hX:auto_delete (celery.messaging.BroadcastConsumer attribute)h@UtqauhkNhlhhT]ubh)q}q(hYUhZhh[Nh`hhb}q(hhXpyhg]hf]hd]he]hi]hX attributeqhhuhkNhlhhT]q(h)q}r(hYXBroadcastConsumer.auto_deletehZhh[U rh`hhb}r(hg]rh@ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh@ahXBroadcastConsumer.auto_deletehhhuhkNhlhhT]r(h)r }r (hYX auto_deletehZhh[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX auto_deleter r}r(hYUhZj ubaubh)r}r(hYX = FalsehZhh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = Falserr}r(hYUhZjubaubeubh)r}r(hYUhZhh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZhh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX5consume() (celery.messaging.BroadcastConsumer method)h7UtrauhkNhlhhT]ubh)r}r (hYUhZhh[Nh`hhb}r!(hhXpyhg]hf]hd]he]hi]hXmethodr"hj"uhkNhlhhT]r#(h)r$}r%(hYX*BroadcastConsumer.consume(*args, **kwargs)hZjh[hh`hhb}r&(hg]r'h7ahh\Xcelery.messagingr(r)}r*bhf]hd]he]hi]r+h7ahXBroadcastConsumer.consumehhhuhkNhlhhT]r,(h)r-}r.(hYXconsumehZj$h[hh`hhb}r/(hd]he]hf]hg]hi]uhkNhlhhT]r0huXconsumer1r2}r3(hYUhZj-ubaubh)r4}r5(hYUhZj$h[hh`hhb}r6(hd]he]hf]hg]hi]uhkNhlhhT]r7(h)r8}r9(hYX*argshb}r:(hd]he]hf]hg]hi]uhZj4hT]r;huX*argsr<r=}r>(hYUhZj8ubah`hubh)r?}r@(hYX**kwargshb}rA(hd]he]hf]hg]hi]uhZj4hT]rBhuX**kwargsrCrD}rE(hYUhZj?ubah`hubeubeubh)rF}rG(hYUhZjh[hh`hhb}rH(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)rI}rJ(hYUhZhh[Nh`hhb}rK(hg]hf]hd]he]hi]Uentries]rL(hX6durable (celery.messaging.BroadcastConsumer attribute)h,UtrMauhkNhlhhT]ubh)rN}rO(hYUhZhh[Nh`hhb}rP(hhXpyhg]hf]hd]he]hi]hX attributerQhjQuhkNhlhhT]rR(h)rS}rT(hYXBroadcastConsumer.durablehZjNh[jh`hhb}rU(hg]rVh,ahh\Xcelery.messagingrWrX}rYbhf]hd]he]hi]rZh,ahXBroadcastConsumer.durablehhhuhkNhlhhT]r[(h)r\}r](hYXdurablehZjSh[jh`hhb}r^(hd]he]hf]hg]hi]uhkNhlhhT]r_huXdurabler`ra}rb(hYUhZj\ubaubh)rc}rd(hYX = TruehZjSh[jh`hhb}re(hd]he]hf]hg]hi]uhkNhlhhT]rfhuX = Truergrh}ri(hYUhZjcubaubeubh)rj}rk(hYUhZjNh[jh`hhb}rl(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)rm}rn(hYUhZhh[Nh`hhb}ro(hg]hf]hd]he]hi]Uentries]rp(hX7exchange (celery.messaging.BroadcastConsumer attribute)hDUtrqauhkNhlhhT]ubh)rr}rs(hYUhZhh[Nh`hhb}rt(hhXpyhg]hf]hd]he]hi]hX attributeruhjuuhkNhlhhT]rv(h)rw}rx(hYXBroadcastConsumer.exchangehZjrh[jh`hhb}ry(hg]rzhDahh\Xcelery.messagingr{r|}r}bhf]hd]he]hi]r~hDahXBroadcastConsumer.exchangehhhuhkNhlhhT]r(h)r}r(hYXexchangehZjwh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXexchangerr}r(hYUhZjubaubh)r}r(hYX = 'celeryctl'hZjwh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = 'celeryctl'rr}r(hYUhZjubaubeubh)r}r(hYUhZjrh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZhh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX<exchange_type (celery.messaging.BroadcastConsumer attribute)h!UtrauhkNhlhhT]ubh)r}r(hYUhZhh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXBroadcastConsumer.exchange_typehZjh[jh`hhb}r(hg]rh!ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh!ahXBroadcastConsumer.exchange_typehhhuhkNhlhhT]r(h)r}r(hYX exchange_typehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX exchange_typerr}r(hYUhZjubaubh)r}r(hYX = 'fanout'hZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = 'fanout'rr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZhh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX5no_ack (celery.messaging.BroadcastConsumer attribute)hUtrauhkNhlhhT]ubh)r}r(hYUhZhh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXBroadcastConsumer.no_ackhZjh[jh`hhb}r(hg]rhahh\Xcelery.messagingrr}rbhf]hd]he]hi]rhahXBroadcastConsumer.no_ackhhhuhkNhlhhT]r(h)r}r(hYXno_ackhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXno_ackrr}r(hYUhZjubaubh)r}r(hYX = TruehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = Truerr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZhh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX4queue (celery.messaging.BroadcastConsumer attribute)h*UtrauhkNhlhhT]ubh)r}r(hYUhZhh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXBroadcastConsumer.queuehZjh[jh`hhb}r(hg]rh*ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh*ahXBroadcastConsumer.queuehhhuhkNhlhhT]r(h)r}r(hYXqueuehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXqueuerr}r(hYUhZjubaubh)r}r(hYX = 'celeryctl'hZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = 'celeryctl'rr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZhh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX>verify_exclusive() (celery.messaging.BroadcastConsumer method)hUtrauhkNhlhhT]ubh)r}r(hYUhZhh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hXmethodrhjuhkNhlhhT]r(h)r}r(hYX$BroadcastConsumer.verify_exclusive()hZjh[hh`hhb}r (hg]r hahh\Xcelery.messagingr r }r bhf]hd]he]hi]rhahX"BroadcastConsumer.verify_exclusivehhhuhkNhlhhT]r(h)r}r(hYXverify_exclusivehZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXverify_exclusiverr}r(hYUhZjubaubh)r}r(hYUhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubeubeubh)r}r(hYUhZhWh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r (hX.BroadcastPublisher (class in celery.messaging)h/Utr!auhkNhlhhT]ubh)r"}r#(hYUhZhWh[Nh`hhb}r$(hhXpyhg]hf]hd]he]hi]hXclassr%hj%uhkNhlhhT]r&(h)r'}r((hYXIBroadcastPublisher(connection, exchange=None, routing_key=None, **kwargs)hZj"h[hh`hhb}r)(hg]r*h/ahh\Xcelery.messagingr+r,}r-bhf]hd]he]hi]r.h/ahXBroadcastPublisherr/hUhuhkNhlhhT]r0(h)r1}r2(hYXclass hZj'h[hh`hhb}r3(hd]he]hf]hg]hi]uhkNhlhhT]r4huXclass r5r6}r7(hYUhZj1ubaubh)r8}r9(hYXcelery.messaging.hZj'h[hh`hhb}r:(hd]he]hf]hg]hi]uhkNhlhhT]r;huXcelery.messaging.r<r=}r>(hYUhZj8ubaubh)r?}r@(hYj/hZj'h[hh`hhb}rA(hd]he]hf]hg]hi]uhkNhlhhT]rBhuXBroadcastPublisherrCrD}rE(hYUhZj?ubaubh)rF}rG(hYUhZj'h[hh`hhb}rH(hd]he]hf]hg]hi]uhkNhlhhT]rI(h)rJ}rK(hYX connectionhb}rL(hd]he]hf]hg]hi]uhZjFhT]rMhuX connectionrNrO}rP(hYUhZjJubah`hubh)rQ}rR(hYX exchange=Nonehb}rS(hd]he]hf]hg]hi]uhZjFhT]rThuX exchange=NonerUrV}rW(hYUhZjQubah`hubh)rX}rY(hYXrouting_key=Nonehb}rZ(hd]he]hf]hg]hi]uhZjFhT]r[huXrouting_key=Noner\r]}r^(hYUhZjXubah`hubh)r_}r`(hYX**kwargshb}ra(hd]he]hf]hg]hi]uhZjFhT]rbhuX**kwargsrcrd}re(hYUhZj_ubah`hubeubeubh)rf}rg(hYUhZj"h[hh`hhb}rh(hd]he]hf]hg]hi]uhkNhlhhT]ri(h)rj}rk(hYXPublish broadcast commandsrlhZjfh[Xy/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.BroadcastPublisherrmh`hhb}rn(hd]he]hf]hg]hi]uhkKhlhhT]rohuXPublish broadcast commandsrprq}rr(hYjlhZjjubaubh)rs}rt(hYUhZjfh[Uh`hhb}ru(hg]hf]hd]he]hi]Uentries]rv(hX7ReplyTo (celery.messaging.BroadcastPublisher attribute)hUtrwauhkNhlhhT]ubh)rx}ry(hYUhZjfh[Uh`hhb}rz(hhXpyhg]hf]hd]he]hi]hX attributer{hj{uhkNhlhhT]r|(h)r}}r~(hYXBroadcastPublisher.ReplyTohZjxh[hh`hhb}r(hg]rhahh\Xcelery.messagingrr}rbhf]hd]he]hi]rhahXBroadcastPublisher.ReplyTohj/huhkNhlhhT]rh)r}r(hYXReplyTohZj}h[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXReplyTorr}r(hYUhZjubaubaubh)r}r(hYUhZjxh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rh)r}r(hYX&alias of :class:`ControlReplyConsumer`hZjh[Uh`hhb}r(hd]he]hf]hg]hi]uhkKhlhhT]r(huX alias of rr}r(hYX alias of hZjubcsphinx.addnodes pending_xref r)r}r(hYX:class:`ControlReplyConsumer`rhZjh[Nh`U pending_xrefrhb}r(UreftypeXclassUrefwarnrU reftargetrXControlReplyConsumerU refdomainXpyrhg]hf]U refexplicithd]he]hi]UrefdocrXreference/celery.messagingrUpy:classrj/U py:modulerXcelery.messagingruhkNhT]rcdocutils.nodes literal r)r}r(hYjhb}r(hd]he]r(UxrefrjXpy-classrehf]hg]hi]uhZjhT]rhuXControlReplyConsumerrr}r(hYUhZjubah`Uliteralrubaubeubaubeubh)r}r(hYUhZjfh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX;auto_delete (celery.messaging.BroadcastPublisher attribute)hBUtrauhkNhlhhT]ubh)r}r(hYUhZjfh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXBroadcastPublisher.auto_deletehZjh[jh`hhb}r(hg]rhBahh\Xcelery.messagingrr}rbhf]hd]he]hi]rhBahXBroadcastPublisher.auto_deletehj/huhkNhlhhT]r(h)r}r(hYX auto_deletehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX auto_deleterr}r(hYUhZjubaubh)r}r(hYX = FalsehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = Falserr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjfh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX7durable (celery.messaging.BroadcastPublisher attribute)hUtrauhkNhlhhT]ubh)r}r(hYUhZjfh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXBroadcastPublisher.durablehZjh[jh`hhb}r(hg]rhahh\Xcelery.messagingrr}rbhf]hd]he]hi]rhahXBroadcastPublisher.durablehj/huhkNhlhhT]r(h)r}r(hYXdurablehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXdurablerr}r(hYUhZjubaubh)r}r(hYX = TruehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = Truerr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjfh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX8exchange (celery.messaging.BroadcastPublisher attribute)h?UtrauhkNhlhhT]ubh)r}r(hYUhZjfh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXBroadcastPublisher.exchangehZjh[jh`hhb}r(hg]rh?ahh\Xcelery.messagingr r }r bhf]hd]he]hi]r h?ahXBroadcastPublisher.exchangehj/huhkNhlhhT]r (h)r}r(hYXexchangehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXexchangerr}r(hYUhZjubaubh)r}r(hYX = 'celeryctl'hZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = 'celeryctl'rr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r (hYUhZjfh[Nh`hhb}r!(hg]hf]hd]he]hi]Uentries]r"(hX=exchange_type (celery.messaging.BroadcastPublisher attribute)h8Utr#auhkNhlhhT]ubh)r$}r%(hYUhZjfh[Nh`hhb}r&(hhXpyhg]hf]hd]he]hi]hX attributer'hj'uhkNhlhhT]r((h)r)}r*(hYX BroadcastPublisher.exchange_typehZj$h[jh`hhb}r+(hg]r,h8ahh\Xcelery.messagingr-r.}r/bhf]hd]he]hi]r0h8ahX BroadcastPublisher.exchange_typehj/huhkNhlhhT]r1(h)r2}r3(hYX exchange_typehZj)h[jh`hhb}r4(hd]he]hf]hg]hi]uhkNhlhhT]r5huX exchange_typer6r7}r8(hYUhZj2ubaubh)r9}r:(hYX = 'fanout'hZj)h[jh`hhb}r;(hd]he]hf]hg]hi]uhkNhlhhT]r<huX = 'fanout'r=r>}r?(hYUhZj9ubaubeubh)r@}rA(hYUhZj$h[jh`hhb}rB(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)rC}rD(hYUhZjfh[X~/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.BroadcastPublisher.sendrEh`hhb}rF(hg]hf]hd]he]hi]Uentries]rG(hX3send() (celery.messaging.BroadcastPublisher method)h UtrHauhkNhlhhT]ubh)rI}rJ(hYUhZjfh[jEh`hhb}rK(hhXpyhg]hf]hd]he]hi]hXmethodrLhjLuhkNhlhhT]rM(h)rN}rO(hYXMBroadcastPublisher.send(type, arguments, destination=None, reply_ticket=None)hZjIh[hh`hhb}rP(hg]rQh ahh\Xcelery.messagingrRrS}rTbhf]hd]he]hi]rUh ahXBroadcastPublisher.sendhj/huhkNhlhhT]rV(h)rW}rX(hYXsendhZjNh[hh`hhb}rY(hd]he]hf]hg]hi]uhkNhlhhT]rZhuXsendr[r\}r](hYUhZjWubaubh)r^}r_(hYUhZjNh[hh`hhb}r`(hd]he]hf]hg]hi]uhkNhlhhT]ra(h)rb}rc(hYXtypehb}rd(hd]he]hf]hg]hi]uhZj^hT]rehuXtyperfrg}rh(hYUhZjbubah`hubh)ri}rj(hYX argumentshb}rk(hd]he]hf]hg]hi]uhZj^hT]rlhuX argumentsrmrn}ro(hYUhZjiubah`hubh)rp}rq(hYXdestination=Nonehb}rr(hd]he]hf]hg]hi]uhZj^hT]rshuXdestination=Nonertru}rv(hYUhZjpubah`hubh)rw}rx(hYXreply_ticket=Nonehb}ry(hd]he]hf]hg]hi]uhZj^hT]rzhuXreply_ticket=Noner{r|}r}(hYUhZjwubah`hubeubeubh)r~}r(hYUhZjIh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rh)r}r(hYXSend broadcast command.rhZj~h[jEh`hhb}r(hd]he]hf]hg]hi]uhkKhlhhT]rhuXSend broadcast command.rr}r(hYjhZjubaubaubeubeubeubh)r}r(hYUhZhWh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX'ConsumerSet (class in celery.messaging)hGUtrauhkNhlhhT]ubh)r}r(hYUhZhWh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hXclassrhjuhkNhlhhT]r(h)r}r(hYXRConsumerSet(connection, from_dict=None, consumers=None, callbacks=None, **options)hZjh[hh`hhb}r(hg]rhGahh\Xcelery.messagingrr}rbhf]hd]he]hi]rhGahX ConsumerSetrhUhuhkNhlhhT]r(h)r}r(hYXclass hZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXclass rr}r(hYUhZjubaubh)r}r(hYXcelery.messaging.hZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXcelery.messaging.rr}r(hYUhZjubaubh)r}r(hYjhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX ConsumerSetrr}r(hYUhZjubaubh)r}r(hYUhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]r(h)r}r(hYX connectionhb}r(hd]he]hf]hg]hi]uhZjhT]rhuX connectionrr}r(hYUhZjubah`hubh)r}r(hYXfrom_dict=Nonehb}r(hd]he]hf]hg]hi]uhZjhT]rhuXfrom_dict=Nonerr}r(hYUhZjubah`hubh)r}r(hYXconsumers=Nonehb}r(hd]he]hf]hg]hi]uhZjhT]rhuXconsumers=Nonerr}r(hYUhZjubah`hubh)r}r(hYXcallbacks=Nonehb}r(hd]he]hf]hg]hi]uhZjhT]rhuXcallbacks=Nonerr}r(hYUhZjubah`hubh)r}r(hYX **optionshb}r(hd]he]hf]hg]hi]uhZjhT]rhuX **optionsrr}r(hYUhZjubah`hubeubeubh)r}r(hYUhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]r(h)r}r(hYX3ConsumerSet with an optional decode error callback.rhZjh[Xr/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.ConsumerSetrh`hhb}r(hd]he]hf]hg]hi]uhkKhlhhT]rhuX3ConsumerSet with an optional decode error callback.rr}r(hYjhZjubaubh)r}r(hYX?For more information see :class:`carrot.messaging.ConsumerSet`.hZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkKhlhhT]r(huXFor more information see rr}r(hYXFor more information see hZjubj)r}r(hYX%:class:`carrot.messaging.ConsumerSet`rhZjh[Nh`jhb}r(UreftypeXclassjjXcarrot.messaging.ConsumerSetU refdomainXpyrhg]hf]U refexplicithd]he]hi]jjjjjjuhkNhT]rj)r}r(hYjhb}r(hd]he]r(jjXpy-classrehf]hg]hi]uhZjhT]rhuXcarrot.messaging.ConsumerSetrr}r(hYUhZjubah`jubaubhuX.r}r(hYX.hZjubeubh)r}r(hYUhZjh[jh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX8on_decode_error (celery.messaging.ConsumerSet attribute)h3UtrauhkNhlhhT]ubh)r}r(hYUhZjh[jh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r }r (hYXon_decode_errorr hZjh[h|h`hhb}r (hg]r h3ahjhf]hd]he]hi]rh3ahXConsumerSet.on_decode_errorhjhuhkKhlhhT]rh)r}r(hYj hZj h[h|h`hhb}r(hd]he]hf]hg]hi]uhkKhlhhT]rhuXon_decode_errorrr}r(hYUhZjubaubaubh)r}r(hYUhZjh[h|h`hhb}r(hd]he]hf]hg]hi]uhkKhlhhT]r(h)r}r(hYX]Callback called if a message had decoding errors. The callback is called with the signature::hZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkKhlhhT]rhuX\Callback called if a message had decoding errors. The callback is called with the signature:rr }r!(hYX\Callback called if a message had decoding errors. The callback is called with the signature:hZjubaubcdocutils.nodes literal_block r")r#}r$(hYXcallback(message, exception)hZjh[jh`U literal_blockr%hb}r&(U xml:spacer'Upreserver(hg]hf]hd]he]hi]uhkKdhlhhT]r)huXcallback(message, exception)r*r+}r,(hYUhZj#ubaubeubeubh)r-}r.(hYUhZjh[Nh`hhb}r/(hg]hf]hd]he]hi]Uentries]r0(hX8on_decode_error (celery.messaging.ConsumerSet attribute)X,celery.messaging.ConsumerSet.on_decode_errorUtr1auhkNhlhhT]ubh)r2}r3(hYUhZjh[Nh`hhb}r4(hhXpyhg]hf]hd]he]hi]hX attributer5hj5uhkNhlhhT]r6(h)r7}r8(hYXConsumerSet.on_decode_errorhZj2h[jh`hhb}r9(hg]hh\Xcelery.messagingr:r;}r<bhf]hd]he]hi]hXConsumerSet.on_decode_errorhjhuhkNhlhhT]r=(h)r>}r?(hYXon_decode_errorhZj7h[jh`hhb}r@(hd]he]hf]hg]hi]uhkNhlhhT]rAhuXon_decode_errorrBrC}rD(hYUhZj>ubaubh)rE}rF(hYX = NonehZj7h[jh`hhb}rG(hd]he]hf]hg]hi]uhkNhlhhT]rHhuX = NonerIrJ}rK(hYUhZjEubaubeubh)rL}rM(hYUhZj2h[jh`hhb}rN(hd]he]hf]hg]hi]uhkNhlhhT]ubeubeubeubh)rO}rP(hYUhZhWh[Nh`hhb}rQ(hg]hf]hd]he]hi]Uentries]rR(hX0ControlReplyConsumer (class in celery.messaging)h UtrSauhkNhlhhT]ubh)rT}rU(hYUhZhWh[Nh`hhb}rV(hhXpyhg]hf]hd]he]hi]hXclassrWhjWuhkNhlhhT]rX(h)rY}rZ(hYX2ControlReplyConsumer(connection, ticket, **kwargs)hZjTh[hh`hhb}r[(hg]r\h ahh\Xcelery.messagingr]r^}r_bhf]hd]he]hi]r`h ahXControlReplyConsumerrahUhuhkNhlhhT]rb(h)rc}rd(hYXclass hZjYh[hh`hhb}re(hd]he]hf]hg]hi]uhkNhlhhT]rfhuXclass rgrh}ri(hYUhZjcubaubh)rj}rk(hYXcelery.messaging.hZjYh[hh`hhb}rl(hd]he]hf]hg]hi]uhkNhlhhT]rmhuXcelery.messaging.rnro}rp(hYUhZjjubaubh)rq}rr(hYjahZjYh[hh`hhb}rs(hd]he]hf]hg]hi]uhkNhlhhT]rthuXControlReplyConsumerrurv}rw(hYUhZjqubaubh)rx}ry(hYUhZjYh[hh`hhb}rz(hd]he]hf]hg]hi]uhkNhlhhT]r{(h)r|}r}(hYX connectionhb}r~(hd]he]hf]hg]hi]uhZjxhT]rhuX connectionrr}r(hYUhZj|ubah`hubh)r}r(hYXtickethb}r(hd]he]hf]hg]hi]uhZjxhT]rhuXticketrr}r(hYUhZjubah`hubh)r}r(hYX**kwargshb}r(hd]he]hf]hg]hi]uhZjxhT]rhuX**kwargsrr}r(hYUhZjubah`hubeubeubh)r}r(hYUhZjTh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]r(h)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX=auto_delete (celery.messaging.ControlReplyConsumer attribute)hUtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYX ControlReplyConsumer.auto_deletehZjh[jh`hhb}r(hg]rhahh\Xcelery.messagingrr}rbhf]hd]he]hi]rhahX ControlReplyConsumer.auto_deletehjahuhkNhlhhT]r(h)r}r(hYX auto_deletehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX auto_deleterr}r(hYUhZjubaubh)r}r(hYX = TruehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = Truerr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX8collect() (celery.messaging.ControlReplyConsumer method)hCUtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hXmethodrhjuhkNhlhhT]r(h)r}r(hYXBControlReplyConsumer.collect(limit=None, timeout=1, callback=None)hZjh[hh`hhb}r(hg]rhCahh\Xcelery.messagingrr}rbhf]hd]he]hi]rhCahXControlReplyConsumer.collecthjahuhkNhlhhT]r(h)r}r(hYXcollecthZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXcollectrr}r(hYUhZjubaubh)r}r(hYUhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]r(h)r}r(hYX limit=Nonehb}r(hd]he]hf]hg]hi]uhZjhT]rhuX limit=Nonerr}r(hYUhZjubah`hubh)r}r(hYX timeout=1hb}r(hd]he]hf]hg]hi]uhZjhT]rhuX timeout=1rr}r(hYUhZjubah`hubh)r}r(hYX callback=Nonehb}r(hd]he]hf]hg]hi]uhZjhT]rhuX callback=Nonerr}r(hYUhZjubah`hubeubeubh)r}r(hYUhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX9durable (celery.messaging.ControlReplyConsumer attribute)hUtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXControlReplyConsumer.durablehZjh[jh`hhb}r(hg]rhahh\Xcelery.messagingrr}rbhf]hd]he]hi]rhahXControlReplyConsumer.durablehjahuhkNhlhhT]r(h)r}r(hYXdurablehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXdurablerr}r(hYUhZjubaubh)r }r (hYX = FalsehZjh[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX = Falser r}r(hYUhZj ubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX:exchange (celery.messaging.ControlReplyConsumer attribute)hUtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXControlReplyConsumer.exchangehZjh[jh`hhb}r(hg]r hahh\Xcelery.messagingr!r"}r#bhf]hd]he]hi]r$hahXControlReplyConsumer.exchangehjahuhkNhlhhT]r%(h)r&}r'(hYXexchangehZjh[jh`hhb}r((hd]he]hf]hg]hi]uhkNhlhhT]r)huXexchanger*r+}r,(hYUhZj&ubaubh)r-}r.(hYX = 'celerycrq'hZjh[jh`hhb}r/(hd]he]hf]hg]hi]uhkNhlhhT]r0huX = 'celerycrq'r1r2}r3(hYUhZj-ubaubeubh)r4}r5(hYUhZjh[jh`hhb}r6(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r7}r8(hYUhZjh[Nh`hhb}r9(hg]hf]hd]he]hi]Uentries]r:(hX?exchange_type (celery.messaging.ControlReplyConsumer attribute)hAUtr;auhkNhlhhT]ubh)r<}r=(hYUhZjh[Nh`hhb}r>(hhXpyhg]hf]hd]he]hi]hX attributer?hj?uhkNhlhhT]r@(h)rA}rB(hYX"ControlReplyConsumer.exchange_typehZj<h[jh`hhb}rC(hg]rDhAahh\Xcelery.messagingrErF}rGbhf]hd]he]hi]rHhAahX"ControlReplyConsumer.exchange_typehjahuhkNhlhhT]rI(h)rJ}rK(hYX exchange_typehZjAh[jh`hhb}rL(hd]he]hf]hg]hi]uhkNhlhhT]rMhuX exchange_typerNrO}rP(hYUhZjJubaubh)rQ}rR(hYX = 'direct'hZjAh[jh`hhb}rS(hd]he]hf]hg]hi]uhkNhlhhT]rThuX = 'direct'rUrV}rW(hYUhZjQubaubeubh)rX}rY(hYUhZj<h[jh`hhb}rZ(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r[}r\(hYUhZjh[Nh`hhb}r](hg]hf]hd]he]hi]Uentries]r^(hX;exclusive (celery.messaging.ControlReplyConsumer attribute)h+Utr_auhkNhlhhT]ubh)r`}ra(hYUhZjh[Nh`hhb}rb(hhXpyhg]hf]hd]he]hi]hX attributerchjcuhkNhlhhT]rd(h)re}rf(hYXControlReplyConsumer.exclusivehZj`h[jh`hhb}rg(hg]rhh+ahh\Xcelery.messagingrirj}rkbhf]hd]he]hi]rlh+ahXControlReplyConsumer.exclusivehjahuhkNhlhhT]rm(h)rn}ro(hYX exclusivehZjeh[jh`hhb}rp(hd]he]hf]hg]hi]uhkNhlhhT]rqhuX exclusiverrrs}rt(hYUhZjnubaubh)ru}rv(hYX = FalsehZjeh[jh`hhb}rw(hd]he]hf]hg]hi]uhkNhlhhT]rxhuX = Falseryrz}r{(hYUhZjuubaubeubh)r|}r}(hYUhZj`h[jh`hhb}r~(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX8no_ack (celery.messaging.ControlReplyConsumer attribute)h"UtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXControlReplyConsumer.no_ackhZjh[jh`hhb}r(hg]rh"ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh"ahXControlReplyConsumer.no_ackhjahuhkNhlhhT]r(h)r}r(hYXno_ackhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXno_ackrr}r(hYUhZjubaubh)r}r(hYX = TruehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = Truerr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubeubeubh)r}r(hYUhZhWh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX1ControlReplyPublisher (class in celery.messaging)h9UtrauhkNhlhhT]ubh)r}r(hYUhZhWh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hXclassrhjuhkNhlhhT]r(h)r}r(hYXLControlReplyPublisher(connection, exchange=None, routing_key=None, **kwargs)hZjh[hh`hhb}r(hg]rh9ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh9ahXControlReplyPublisherrhUhuhkNhlhhT]r(h)r}r(hYXclass hZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXclass rr}r(hYUhZjubaubh)r}r(hYXcelery.messaging.hZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXcelery.messaging.rr}r(hYUhZjubaubh)r}r(hYjhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXControlReplyPublisherrr}r(hYUhZjubaubh)r}r(hYUhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]r(h)r}r(hYX connectionhb}r(hd]he]hf]hg]hi]uhZjhT]rhuX connectionrr}r(hYUhZjubah`hubh)r}r(hYX exchange=Nonehb}r(hd]he]hf]hg]hi]uhZjhT]rhuX exchange=Nonerr}r(hYUhZjubah`hubh)r}r(hYXrouting_key=Nonehb}r(hd]he]hf]hg]hi]uhZjhT]rhuXrouting_key=Nonerr}r(hYUhZjubah`hubh)r}r(hYX**kwargshb}r(hd]he]hf]hg]hi]uhZjhT]rhuX**kwargsrr}r(hYUhZjubah`hubeubeubh)r}r(hYUhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]r(h)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX>auto_delete (celery.messaging.ControlReplyPublisher attribute)h;UtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYX!ControlReplyPublisher.auto_deletehZjh[jh`hhb}r(hg]rh;ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh;ahX!ControlReplyPublisher.auto_deletehjhuhkNhlhhT]r(h)r}r(hYX auto_deletehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX auto_deleterr}r (hYUhZjubaubh)r }r (hYX = TruehZjh[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX = Truerr}r(hYUhZj ubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX@delivery_mode (celery.messaging.ControlReplyPublisher attribute)h'UtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYX#ControlReplyPublisher.delivery_modehZjh[jh`hhb}r (hg]r!h'ahh\Xcelery.messagingr"r#}r$bhf]hd]he]hi]r%h'ahX#ControlReplyPublisher.delivery_modehjhuhkNhlhhT]r&(h)r'}r((hYX delivery_modehZjh[jh`hhb}r)(hd]he]hf]hg]hi]uhkNhlhhT]r*huX delivery_moder+r,}r-(hYUhZj'ubaubh)r.}r/(hYX = 'non-persistent'hZjh[jh`hhb}r0(hd]he]hf]hg]hi]uhkNhlhhT]r1huX = 'non-persistent'r2r3}r4(hYUhZj.ubaubeubh)r5}r6(hYUhZjh[jh`hhb}r7(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r8}r9(hYUhZjh[Nh`hhb}r:(hg]hf]hd]he]hi]Uentries]r;(hX:durable (celery.messaging.ControlReplyPublisher attribute)h&Utr<auhkNhlhhT]ubh)r=}r>(hYUhZjh[Nh`hhb}r?(hhXpyhg]hf]hd]he]hi]hX attributer@hj@uhkNhlhhT]rA(h)rB}rC(hYXControlReplyPublisher.durablehZj=h[jh`hhb}rD(hg]rEh&ahh\Xcelery.messagingrFrG}rHbhf]hd]he]hi]rIh&ahXControlReplyPublisher.durablehjhuhkNhlhhT]rJ(h)rK}rL(hYXdurablehZjBh[jh`hhb}rM(hd]he]hf]hg]hi]uhkNhlhhT]rNhuXdurablerOrP}rQ(hYUhZjKubaubh)rR}rS(hYX = FalsehZjBh[jh`hhb}rT(hd]he]hf]hg]hi]uhkNhlhhT]rUhuX = FalserVrW}rX(hYUhZjRubaubeubh)rY}rZ(hYUhZj=h[jh`hhb}r[(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r\}r](hYUhZjh[Nh`hhb}r^(hg]hf]hd]he]hi]Uentries]r_(hX;exchange (celery.messaging.ControlReplyPublisher attribute)hUtr`auhkNhlhhT]ubh)ra}rb(hYUhZjh[Nh`hhb}rc(hhXpyhg]hf]hd]he]hi]hX attributerdhjduhkNhlhhT]re(h)rf}rg(hYXControlReplyPublisher.exchangehZjah[jh`hhb}rh(hg]rihahh\Xcelery.messagingrjrk}rlbhf]hd]he]hi]rmhahXControlReplyPublisher.exchangehjhuhkNhlhhT]rn(h)ro}rp(hYXexchangehZjfh[jh`hhb}rq(hd]he]hf]hg]hi]uhkNhlhhT]rrhuXexchangersrt}ru(hYUhZjoubaubh)rv}rw(hYX = 'celerycrq'hZjfh[jh`hhb}rx(hd]he]hf]hg]hi]uhkNhlhhT]ryhuX = 'celerycrq'rzr{}r|(hYUhZjvubaubeubh)r}}r~(hYUhZjah[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX@exchange_type (celery.messaging.ControlReplyPublisher attribute)h UtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYX#ControlReplyPublisher.exchange_typehZjh[jh`hhb}r(hg]rh ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh ahX#ControlReplyPublisher.exchange_typehjhuhkNhlhhT]r(h)r}r(hYX exchange_typehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX exchange_typerr}r(hYUhZjubaubh)r}r(hYX = 'direct'hZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = 'direct'rr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubeubeubh)r}r(hYUhZhWh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX)EventConsumer (class in celery.messaging)h5UtrauhkNhlhhT]ubh)r}r(hYUhZhWh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hXclassrhjuhkNhlhhT]r(h)r}r(hYXPEventConsumer(connection, queue=None, exchange=None, routing_key=None, **kwargs)hZjh[hh`hhb}r(hg]rh5ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh5ahX EventConsumerrhUhuhkNhlhhT]r(h)r}r(hYXclass hZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXclass rr}r(hYUhZjubaubh)r}r(hYXcelery.messaging.hZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXcelery.messaging.rr}r(hYUhZjubaubh)r}r(hYjhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX EventConsumerrr}r(hYUhZjubaubh)r}r(hYUhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]r(h)r}r(hYX connectionhb}r(hd]he]hf]hg]hi]uhZjhT]rhuX connectionrr}r(hYUhZjubah`hubh)r}r(hYX queue=Nonehb}r(hd]he]hf]hg]hi]uhZjhT]rhuX queue=Nonerr}r(hYUhZjubah`hubh)r}r(hYX exchange=Nonehb}r(hd]he]hf]hg]hi]uhZjhT]rhuX exchange=Nonerr}r(hYUhZjubah`hubh)r}r(hYXrouting_key=Nonehb}r(hd]he]hf]hg]hi]uhZjhT]rhuXrouting_key=Nonerr}r(hYUhZjubah`hubh)r}r(hYX**kwargshb}r(hd]he]hf]hg]hi]uhZjhT]rhuX**kwargsrr}r(hYUhZjubah`hubeubeubh)r}r(hYUhZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]r(h)r}r(hYXConsume eventsrhZjh[Xt/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.EventConsumerrh`hhb}r(hd]he]hf]hg]hi]uhkKhlhhT]rhuXConsume eventsrr}r(hYjhZjubaubh)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX6auto_delete (celery.messaging.EventConsumer attribute)hHUtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributer hj uhkNhlhhT]r (h)r }r (hYXEventConsumer.auto_deletehZjh[jh`hhb}r (hg]rhHahh\Xcelery.messagingrr}rbhf]hd]he]hi]rhHahXEventConsumer.auto_deletehjhuhkNhlhhT]r(h)r}r(hYX auto_deletehZj h[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX auto_deleterr}r(hYUhZjubaubh)r}r(hYX = FalsehZj h[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = Falserr }r!(hYUhZjubaubeubh)r"}r#(hYUhZjh[jh`hhb}r$(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r%}r&(hYUhZjh[Nh`hhb}r'(hg]hf]hd]he]hi]Uentries]r((hX2durable (celery.messaging.EventConsumer attribute)h=Utr)auhkNhlhhT]ubh)r*}r+(hYUhZjh[Nh`hhb}r,(hhXpyhg]hf]hd]he]hi]hX attributer-hj-uhkNhlhhT]r.(h)r/}r0(hYXEventConsumer.durablehZj*h[jh`hhb}r1(hg]r2h=ahh\Xcelery.messagingr3r4}r5bhf]hd]he]hi]r6h=ahXEventConsumer.durablehjhuhkNhlhhT]r7(h)r8}r9(hYXdurablehZj/h[jh`hhb}r:(hd]he]hf]hg]hi]uhkNhlhhT]r;huXdurabler<r=}r>(hYUhZj8ubaubh)r?}r@(hYX = TruehZj/h[jh`hhb}rA(hd]he]hf]hg]hi]uhkNhlhhT]rBhuX = TruerCrD}rE(hYUhZj?ubaubeubh)rF}rG(hYUhZj*h[jh`hhb}rH(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)rI}rJ(hYUhZjh[Nh`hhb}rK(hg]hf]hd]he]hi]Uentries]rL(hX3exchange (celery.messaging.EventConsumer attribute)hUtrMauhkNhlhhT]ubh)rN}rO(hYUhZjh[Nh`hhb}rP(hhXpyhg]hf]hd]he]hi]hX attributerQhjQuhkNhlhhT]rR(h)rS}rT(hYXEventConsumer.exchangehZjNh[jh`hhb}rU(hg]rVhahh\Xcelery.messagingrWrX}rYbhf]hd]he]hi]rZhahXEventConsumer.exchangehjhuhkNhlhhT]r[(h)r\}r](hYXexchangehZjSh[jh`hhb}r^(hd]he]hf]hg]hi]uhkNhlhhT]r_huXexchanger`ra}rb(hYUhZj\ubaubh)rc}rd(hYX = 'celeryevent'hZjSh[jh`hhb}re(hd]he]hf]hg]hi]uhkNhlhhT]rfhuX = 'celeryevent'rgrh}ri(hYUhZjcubaubeubh)rj}rk(hYUhZjNh[jh`hhb}rl(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)rm}rn(hYUhZjh[Nh`hhb}ro(hg]hf]hd]he]hi]Uentries]rp(hX8exchange_type (celery.messaging.EventConsumer attribute)hUtrqauhkNhlhhT]ubh)rr}rs(hYUhZjh[Nh`hhb}rt(hhXpyhg]hf]hd]he]hi]hX attributeruhjuuhkNhlhhT]rv(h)rw}rx(hYXEventConsumer.exchange_typehZjrh[jh`hhb}ry(hg]rzhahh\Xcelery.messagingr{r|}r}bhf]hd]he]hi]r~hahXEventConsumer.exchange_typehjhuhkNhlhhT]r(h)r}r(hYX exchange_typehZjwh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX exchange_typerr}r(hYUhZjubaubh)r}r(hYX = 'direct'hZjwh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = 'direct'rr}r(hYUhZjubaubeubh)r}r(hYUhZjrh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX1no_ack (celery.messaging.EventConsumer attribute)hUtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXEventConsumer.no_ackhZjh[jh`hhb}r(hg]rhahh\Xcelery.messagingrr}rbhf]hd]he]hi]rhahXEventConsumer.no_ackhjhuhkNhlhhT]r(h)r}r(hYXno_ackhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXno_ackrr}r(hYUhZjubaubh)r}r(hYX = TruehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = Truerr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX0queue (celery.messaging.EventConsumer attribute)h#UtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXEventConsumer.queuehZjh[jh`hhb}r(hg]rh#ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh#ahXEventConsumer.queuehjhuhkNhlhhT]r(h)r}r(hYXqueuehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXqueuerr}r(hYUhZjubaubh)r}r(hYX = 'celeryevent'hZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = 'celeryevent'rr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX6routing_key (celery.messaging.EventConsumer attribute)h-UtrauhkNhlhhT]ubh)r}r(hYUhZjh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXEventConsumer.routing_keyhZjh[jh`hhb}r(hg]rh-ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh-ahXEventConsumer.routing_keyhjhuhkNhlhhT]r(h)r}r(hYX routing_keyhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX routing_keyrr}r(hYUhZjubaubh)r}r(hYX = 'celeryevent'hZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = 'celeryevent'rr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubeubeubh)r}r(hYUhZhWh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX*EventPublisher (class in celery.messaging)hUtrauhkNhlhhT]ubh)r}r(hYUhZhWh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hXclassrhjuhkNhlhhT]r(h)r}r(hYXEEventPublisher(connection, exchange=None, routing_key=None, **kwargs)hZjh[hh`hhb}r (hg]r hahh\Xcelery.messagingr r }r bhf]hd]he]hi]rhahXEventPublisherrhUhuhkNhlhhT]r(h)r}r(hYXclass hZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXclass rr}r(hYUhZjubaubh)r}r(hYXcelery.messaging.hZjh[hh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXcelery.messaging.rr}r(hYUhZjubaubh)r}r (hYjhZjh[hh`hhb}r!(hd]he]hf]hg]hi]uhkNhlhhT]r"huXEventPublisherr#r$}r%(hYUhZjubaubh)r&}r'(hYUhZjh[hh`hhb}r((hd]he]hf]hg]hi]uhkNhlhhT]r)(h)r*}r+(hYX connectionhb}r,(hd]he]hf]hg]hi]uhZj&hT]r-huX connectionr.r/}r0(hYUhZj*ubah`hubh)r1}r2(hYX exchange=Nonehb}r3(hd]he]hf]hg]hi]uhZj&hT]r4huX exchange=Noner5r6}r7(hYUhZj1ubah`hubh)r8}r9(hYXrouting_key=Nonehb}r:(hd]he]hf]hg]hi]uhZj&hT]r;huXrouting_key=Noner<r=}r>(hYUhZj8ubah`hubh)r?}r@(hYX**kwargshb}rA(hd]he]hf]hg]hi]uhZj&hT]rBhuX**kwargsrCrD}rE(hYUhZj?ubah`hubeubeubh)rF}rG(hYUhZjh[hh`hhb}rH(hd]he]hf]hg]hi]uhkNhlhhT]rI(h)rJ}rK(hYXPublish eventsrLhZjFh[Xu/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.EventPublisherrMh`hhb}rN(hd]he]hf]hg]hi]uhkKhlhhT]rOhuXPublish eventsrPrQ}rR(hYjLhZjJubaubh)rS}rT(hYUhZjFh[Nh`hhb}rU(hg]hf]hd]he]hi]Uentries]rV(hX7auto_delete (celery.messaging.EventPublisher attribute)hUtrWauhkNhlhhT]ubh)rX}rY(hYUhZjFh[Nh`hhb}rZ(hhXpyhg]hf]hd]he]hi]hX attributer[hj[uhkNhlhhT]r\(h)r]}r^(hYXEventPublisher.auto_deletehZjXh[jh`hhb}r_(hg]r`hahh\Xcelery.messagingrarb}rcbhf]hd]he]hi]rdhahXEventPublisher.auto_deletehjhuhkNhlhhT]re(h)rf}rg(hYX auto_deletehZj]h[jh`hhb}rh(hd]he]hf]hg]hi]uhkNhlhhT]rihuX auto_deleterjrk}rl(hYUhZjfubaubh)rm}rn(hYX = FalsehZj]h[jh`hhb}ro(hd]he]hf]hg]hi]uhkNhlhhT]rphuX = Falserqrr}rs(hYUhZjmubaubeubh)rt}ru(hYUhZjXh[jh`hhb}rv(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)rw}rx(hYUhZjFh[Nh`hhb}ry(hg]hf]hd]he]hi]Uentries]rz(hX9delivery_mode (celery.messaging.EventPublisher attribute)h%Utr{auhkNhlhhT]ubh)r|}r}(hYUhZjFh[Nh`hhb}r~(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXEventPublisher.delivery_modehZj|h[jh`hhb}r(hg]rh%ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh%ahXEventPublisher.delivery_modehjhuhkNhlhhT]r(h)r}r(hYX delivery_modehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX delivery_moderr}r(hYUhZjubaubh)r}r(hYX = 2hZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = 2rr}r(hYUhZjubaubeubh)r}r(hYUhZj|h[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjFh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX3durable (celery.messaging.EventPublisher attribute)h UtrauhkNhlhhT]ubh)r}r(hYUhZjFh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXEventPublisher.durablehZjh[jh`hhb}r(hg]rh ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh ahXEventPublisher.durablehjhuhkNhlhhT]r(h)r}r(hYXdurablehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXdurablerr}r(hYUhZjubaubh)r}r(hYX = TruehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = Truerr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjFh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX4exchange (celery.messaging.EventPublisher attribute)h0UtrauhkNhlhhT]ubh)r}r(hYUhZjFh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXEventPublisher.exchangehZjh[jh`hhb}r(hg]rh0ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh0ahXEventPublisher.exchangehjhuhkNhlhhT]r(h)r}r(hYXexchangehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuXexchangerr}r(hYUhZjubaubh)r}r(hYX = 'celeryevent'hZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX = 'celeryevent'rr}r(hYUhZjubaubeubh)r}r(hYUhZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r}r(hYUhZjFh[Nh`hhb}r(hg]hf]hd]he]hi]Uentries]r(hX9exchange_type (celery.messaging.EventPublisher attribute)h)UtrauhkNhlhhT]ubh)r}r(hYUhZjFh[Nh`hhb}r(hhXpyhg]hf]hd]he]hi]hX attributerhjuhkNhlhhT]r(h)r}r(hYXEventPublisher.exchange_typehZjh[jh`hhb}r(hg]rh)ahh\Xcelery.messagingrr}rbhf]hd]he]hi]rh)ahXEventPublisher.exchange_typehjhuhkNhlhhT]r(h)r}r(hYX exchange_typehZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]rhuX exchange_typerr}r(hYUhZjubaubh)r}r(hYX = 'direct'hZjh[jh`hhb}r(hd]he]hf]hg]hi]uhkNhlhhT]r huX = 'direct'r r }r (hYUhZjubaubeubh)r }r (hYUhZjh[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r }r (hYUhZjFh[Nh`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX7routing_key (celery.messaging.EventPublisher attribute)hUtr auhkNhlhhT]ubh)r }r (hYUhZjFh[Nh`hhb}r (hhXpyhg]hf]hd]he]hi]hX attributer hj uhkNhlhhT]r (h)r }r (hYXEventPublisher.routing_keyhZj h[jh`hhb}r (hg]r hahh\Xcelery.messagingr r }r bhf]hd]he]hi]r hahXEventPublisher.routing_keyhjhuhkNhlhhT]r (h)r }r (hYX routing_keyhZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX routing_keyr r }r (hYUhZj ubaubh)r! }r" (hYX = 'celeryevent'hZj h[jh`hhb}r# (hd]he]hf]hg]hi]uhkNhlhhT]r$ huX = 'celeryevent'r% r& }r' (hYUhZj! ubaubeubh)r( }r) (hYUhZj h[jh`hhb}r* (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r+ }r, (hYUhZjFh[Nh`hhb}r- (hg]hf]hd]he]hi]Uentries]r. (hX6serializer (celery.messaging.EventPublisher attribute)h }r? (hYX serializerhZj5 h[jh`hhb}r@ (hd]he]hf]hg]hi]uhkNhlhhT]rA huX serializerrB rC }rD (hYUhZj> ubaubh)rE }rF (hYX = 'json'hZj5 h[jh`hhb}rG (hd]he]hf]hg]hi]uhkNhlhhT]rH huX = 'json'rI rJ }rK (hYUhZjE ubaubeubh)rL }rM (hYUhZj0 h[jh`hhb}rN (hd]he]hf]hg]hi]uhkNhlhhT]ubeubeubeubh)rO }rP (hYUhZhWh[Nh`hhb}rQ (hg]hf]hd]he]hi]Uentries]rR (hX(TaskConsumer (class in celery.messaging)h>UtrS auhkNhlhhT]ubh)rT }rU (hYUhZhWh[Nh`hhb}rV (hhXpyhg]hf]hd]he]hi]hXclassrW hjW uhkNhlhhT]rX (h)rY }rZ (hYXOTaskConsumer(connection, queue=None, exchange=None, routing_key=None, **kwargs)hZjT h[hh`hhb}r[ (hg]r\ h>ahh\Xcelery.messagingr] r^ }r_ bhf]hd]he]hi]r` h>ahX TaskConsumerra hUhuhkNhlhhT]rb (h)rc }rd (hYXclass hZjY h[hh`hhb}re (hd]he]hf]hg]hi]uhkNhlhhT]rf huXclass rg rh }ri (hYUhZjc ubaubh)rj }rk (hYXcelery.messaging.hZjY h[hh`hhb}rl (hd]he]hf]hg]hi]uhkNhlhhT]rm huXcelery.messaging.rn ro }rp (hYUhZjj ubaubh)rq }rr (hYja hZjY h[hh`hhb}rs (hd]he]hf]hg]hi]uhkNhlhhT]rt huX TaskConsumerru rv }rw (hYUhZjq ubaubh)rx }ry (hYUhZjY h[hh`hhb}rz (hd]he]hf]hg]hi]uhkNhlhhT]r{ (h)r| }r} (hYX connectionhb}r~ (hd]he]hf]hg]hi]uhZjx hT]r huX connectionr r }r (hYUhZj| ubah`hubh)r }r (hYX queue=Nonehb}r (hd]he]hf]hg]hi]uhZjx hT]r huX queue=Noner r }r (hYUhZj ubah`hubh)r }r (hYX exchange=Nonehb}r (hd]he]hf]hg]hi]uhZjx hT]r huX exchange=Noner r }r (hYUhZj ubah`hubh)r }r (hYXrouting_key=Nonehb}r (hd]he]hf]hg]hi]uhZjx hT]r huXrouting_key=Noner r }r (hYUhZj ubah`hubh)r }r (hYX**kwargshb}r (hd]he]hf]hg]hi]uhZjx hT]r huX**kwargsr r }r (hYUhZj ubah`hubeubeubh)r }r (hYUhZjT h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r (h)r }r (hYX Consume tasksr hZj h[Xs/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.TaskConsumerr h`hhb}r (hd]he]hf]hg]hi]uhkKhlhhT]r huX Consume tasksr r }r (hYj hZj ubaubh)r }r (hYUhZj h[Nh`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX2exchange (celery.messaging.TaskConsumer attribute)hUtr auhkNhlhhT]ubh)r }r (hYUhZj h[Nh`hhb}r (hhXpyhg]hf]hd]he]hi]hX attributer hj uhkNhlhhT]r (h)r }r (hYXTaskConsumer.exchangehZj h[jh`hhb}r (hg]r hahh\Xcelery.messagingr r }r bhf]hd]he]hi]r hahXTaskConsumer.exchangehja huhkNhlhhT]r (h)r }r (hYXexchangehZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huXexchanger r }r (hYUhZj ubaubh)r }r (hYX = 'celery'hZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX = 'celery'r r }r (hYUhZj ubaubeubh)r }r (hYUhZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r }r (hYUhZj h[Nh`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX7exchange_type (celery.messaging.TaskConsumer attribute)h Utr auhkNhlhhT]ubh)r }r (hYUhZj h[Nh`hhb}r (hhXpyhg]hf]hd]he]hi]hX attributer hj uhkNhlhhT]r (h)r }r (hYXTaskConsumer.exchange_typehZj h[jh`hhb}r (hg]r h ahh\Xcelery.messagingr r }r bhf]hd]he]hi]r h ahXTaskConsumer.exchange_typehja huhkNhlhhT]r (h)r }r (hYX exchange_typehZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX exchange_typer r }r (hYUhZj ubaubh)r }r (hYX = 'direct'hZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX = 'direct'r r }r (hYUhZj ubaubeubh)r }r (hYUhZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r }r (hYUhZj h[Nh`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX/queue (celery.messaging.TaskConsumer attribute)h.Utr auhkNhlhhT]ubh)r }r (hYUhZj h[Nh`hhb}r (hhXpyhg]hf]hd]he]hi]hX attributer hj uhkNhlhhT]r (h)r }r (hYXTaskConsumer.queuehZj h[jh`hhb}r (hg]r h.ahh\Xcelery.messagingr r }r bhf]hd]he]hi]r h.ahXTaskConsumer.queuehja huhkNhlhhT]r (h)r }r (hYXqueuehZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huXqueuer r }r (hYUhZj ubaubh)r }r (hYX = 'celery'hZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX = 'celery'r r }r (hYUhZj ubaubeubh)r }r (hYUhZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r }r (hYUhZj h[Nh`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX5routing_key (celery.messaging.TaskConsumer attribute)h1Utr auhkNhlhhT]ubh)r }r (hYUhZj h[Nh`hhb}r (hhXpyhg]hf]hd]he]hi]hX attributer hj uhkNhlhhT]r! (h)r" }r# (hYXTaskConsumer.routing_keyhZj h[jh`hhb}r$ (hg]r% h1ahh\Xcelery.messagingr& r' }r( bhf]hd]he]hi]r) h1ahXTaskConsumer.routing_keyhja huhkNhlhhT]r* (h)r+ }r, (hYX routing_keyhZj" h[jh`hhb}r- (hd]he]hf]hg]hi]uhkNhlhhT]r. huX routing_keyr/ r0 }r1 (hYUhZj+ ubaubh)r2 }r3 (hYX = 'celery'hZj" h[jh`hhb}r4 (hd]he]hf]hg]hi]uhkNhlhhT]r5 huX = 'celery'r6 r7 }r8 (hYUhZj2 ubaubeubh)r9 }r: (hYUhZj h[jh`hhb}r; (hd]he]hf]hg]hi]uhkNhlhhT]ubeubeubeubh)r< }r= (hYUhZhWh[Nh`hhb}r> (hg]hf]hd]he]hi]Uentries]r? (hX)TaskPublisher (class in celery.messaging)h6Utr@ auhkNhlhhT]ubh)rA }rB (hYUhZhWh[Nh`hhb}rC (hhXpyhg]hf]hd]he]hi]hXclassrD hjD uhkNhlhhT]rE (h)rF }rG (hYXTaskPublisher(*args, **kwargs)hZjA h[hh`hhb}rH (hg]rI h6ahh\Xcelery.messagingrJ rK }rL bhf]hd]he]hi]rM h6ahX TaskPublisherrN hUhuhkNhlhhT]rO (h)rP }rQ (hYXclass hZjF h[hh`hhb}rR (hd]he]hf]hg]hi]uhkNhlhhT]rS huXclass rT rU }rV (hYUhZjP ubaubh)rW }rX (hYXcelery.messaging.hZjF h[hh`hhb}rY (hd]he]hf]hg]hi]uhkNhlhhT]rZ huXcelery.messaging.r[ r\ }r] (hYUhZjW ubaubh)r^ }r_ (hYjN hZjF h[hh`hhb}r` (hd]he]hf]hg]hi]uhkNhlhhT]ra huX TaskPublisherrb rc }rd (hYUhZj^ ubaubh)re }rf (hYUhZjF h[hh`hhb}rg (hd]he]hf]hg]hi]uhkNhlhhT]rh (h)ri }rj (hYX*argshb}rk (hd]he]hf]hg]hi]uhZje hT]rl huX*argsrm rn }ro (hYUhZji ubah`hubh)rp }rq (hYX**kwargshb}rr (hd]he]hf]hg]hi]uhZje hT]rs huX**kwargsrt ru }rv (hYUhZjp ubah`hubeubeubh)rw }rx (hYUhZjA h[hh`hhb}ry (hd]he]hf]hg]hi]uhkNhlhhT]rz (h)r{ }r| (hYXPublish tasks.r} hZjw h[Xt/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.TaskPublisherr~ h`hhb}r (hd]he]hf]hg]hi]uhkKhlhhT]r huXPublish tasks.r r }r (hYj} hZj{ ubaubh)r }r (hYUhZjw h[Nh`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX7auto_declare (celery.messaging.TaskPublisher attribute)h(Utr auhkNhlhhT]ubh)r }r (hYUhZjw h[Nh`hhb}r (hhXpyhg]hf]hd]he]hi]hX attributer hj uhkNhlhhT]r (h)r }r (hYXTaskPublisher.auto_declarehZj h[jh`hhb}r (hg]r h(ahh\Xcelery.messagingr r }r bhf]hd]he]hi]r h(ahXTaskPublisher.auto_declarehjN huhkNhlhhT]r (h)r }r (hYX auto_declarehZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX auto_declarer r }r (hYUhZj ubaubh)r }r (hYX = FalsehZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX = Falser r }r (hYUhZj ubaubeubh)r }r (hYUhZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r }r (hYUhZjw h[Nh`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX1declare() (celery.messaging.TaskPublisher method)hUtr auhkNhlhhT]ubh)r }r (hYUhZjw h[Nh`hhb}r (hhXpyhg]hf]hd]he]hi]hXmethodr hj uhkNhlhhT]r (h)r }r (hYXTaskPublisher.declare()hZj h[hh`hhb}r (hg]r hahh\Xcelery.messagingr r }r bhf]hd]he]hi]r hahXTaskPublisher.declarehjN huhkNhlhhT]r (h)r }r (hYXdeclarehZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huXdeclarer r }r (hYUhZj ubaubh)r }r (hYUhZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r }r (hYUhZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r }r (hYUhZjw h[X/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.TaskPublisher.delay_taskr h`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX4delay_task() (celery.messaging.TaskPublisher method)hUtr auhkNhlhhT]ubh)r }r (hYUhZjw h[j h`hhb}r (hhXpyhg]hf]hd]he]hi]hXmethodr hj uhkNhlhhT]r (h)r }r (hYXTaskPublisher.delay_task(task_name, task_args=None, task_kwargs=None, countdown=None, eta=None, task_id=None, taskset_id=None, exchange=None, exchange_type=None, expires=None, **kwargs)hZj h[hh`hhb}r (hg]r hahh\Xcelery.messagingr r }r bhf]hd]he]hi]r hahXTaskPublisher.delay_taskhjN huhkNhlhhT]r (h)r }r (hYX delay_taskhZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX delay_taskr r }r (hYUhZj ubaubh)r }r (hYUhZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r (h)r }r (hYX task_namehb}r (hd]he]hf]hg]hi]uhZj hT]r huX task_namer r }r (hYUhZj ubah`hubh)r }r (hYXtask_args=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huXtask_args=Noner r }r (hYUhZj ubah`hubh)r }r (hYXtask_kwargs=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huXtask_kwargs=Noner r }r (hYUhZj ubah`hubh)r }r (hYXcountdown=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huXcountdown=Noner r }r (hYUhZj ubah`hubh)r }r (hYXeta=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huXeta=Noner r }r (hYUhZj ubah`hubh)r }r (hYX task_id=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huX task_id=Noner r }r (hYUhZj ubah`hubh)r }r (hYXtaskset_id=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huXtaskset_id=Noner r }r (hYUhZj ubah`hubh)r }r (hYX exchange=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huX exchange=Noner r }r (hYUhZj ubah`hubh)r }r (hYXexchange_type=Nonehb}r! (hd]he]hf]hg]hi]uhZj hT]r" huXexchange_type=Noner# r$ }r% (hYUhZj ubah`hubh)r& }r' (hYX expires=Nonehb}r( (hd]he]hf]hg]hi]uhZj hT]r) huX expires=Noner* r+ }r, (hYUhZj& ubah`hubh)r- }r. (hYX**kwargshb}r/ (hd]he]hf]hg]hi]uhZj hT]r0 huX**kwargsr1 r2 }r3 (hYUhZj- ubah`hubeubeubh)r4 }r5 (hYUhZj h[hh`hhb}r6 (hd]he]hf]hg]hi]uhkNhlhhT]r7 h)r8 }r9 (hYX-Delay task for execution by the celery nodes.r: hZj4 h[j h`hhb}r; (hd]he]hf]hg]hi]uhkKhlhhT]r< huX-Delay task for execution by the celery nodes.r= r> }r? (hYj: hZj8 ubaubaubeubh)r@ }rA (hYUhZjw h[Nh`hhb}rB (hg]hf]hd]he]hi]Uentries]rC (hX3exchange (celery.messaging.TaskPublisher attribute)h4UtrD auhkNhlhhT]ubh)rE }rF (hYUhZjw h[Nh`hhb}rG (hhXpyhg]hf]hd]he]hi]hX attributerH hjH uhkNhlhhT]rI (h)rJ }rK (hYXTaskPublisher.exchangehZjE h[jh`hhb}rL (hg]rM h4ahh\Xcelery.messagingrN rO }rP bhf]hd]he]hi]rQ h4ahXTaskPublisher.exchangehjN huhkNhlhhT]rR (h)rS }rT (hYXexchangehZjJ h[jh`hhb}rU (hd]he]hf]hg]hi]uhkNhlhhT]rV huXexchangerW rX }rY (hYUhZjS ubaubh)rZ }r[ (hYX = 'celery'hZjJ h[jh`hhb}r\ (hd]he]hf]hg]hi]uhkNhlhhT]r] huX = 'celery'r^ r_ }r` (hYUhZjZ ubaubeubh)ra }rb (hYUhZjE h[jh`hhb}rc (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)rd }re (hYUhZjw h[Nh`hhb}rf (hg]hf]hd]he]hi]Uentries]rg (hX8exchange_type (celery.messaging.TaskPublisher attribute)h:Utrh auhkNhlhhT]ubh)ri }rj (hYUhZjw h[Nh`hhb}rk (hhXpyhg]hf]hd]he]hi]hX attributerl hjl uhkNhlhhT]rm (h)rn }ro (hYXTaskPublisher.exchange_typehZji h[jh`hhb}rp (hg]rq h:ahh\Xcelery.messagingrr rs }rt bhf]hd]he]hi]ru h:ahXTaskPublisher.exchange_typehjN huhkNhlhhT]rv (h)rw }rx (hYX exchange_typehZjn h[jh`hhb}ry (hd]he]hf]hg]hi]uhkNhlhhT]rz huX exchange_typer{ r| }r} (hYUhZjw ubaubh)r~ }r (hYX = 'direct'hZjn h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX = 'direct'r r }r (hYUhZj~ ubaubeubh)r }r (hYUhZji h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r }r (hYUhZjw h[Nh`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX6routing_key (celery.messaging.TaskPublisher attribute)hFUtr auhkNhlhhT]ubh)r }r (hYUhZjw h[Nh`hhb}r (hhXpyhg]hf]hd]he]hi]hX attributer hj uhkNhlhhT]r (h)r }r (hYXTaskPublisher.routing_keyhZj h[jh`hhb}r (hg]r hFahh\Xcelery.messagingr r }r bhf]hd]he]hi]r hFahXTaskPublisher.routing_keyhjN huhkNhlhhT]r (h)r }r (hYX routing_keyhZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX routing_keyr r }r (hYUhZj ubaubh)r }r (hYX = 'celery'hZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX = 'celery'r r }r (hYUhZj ubaubeubh)r }r (hYUhZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)r }r (hYUhZjw h[Nh`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX5serializer (celery.messaging.TaskPublisher attribute)h2Utr auhkNhlhhT]ubh)r }r (hYUhZjw h[Nh`hhb}r (hhXpyhg]hf]hd]he]hi]hX attributer hj uhkNhlhhT]r (h)r }r (hYXTaskPublisher.serializerr hZj h[jh`hhb}r (hg]r h2ahh\Xcelery.messagingr r }r bhf]hd]he]hi]r h2ahXTaskPublisher.serializerhjN huhkNhlhhT]r (h)r }r (hYX serializerhZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX serializerr r }r (hYUhZj ubaubh)r }r (hYX = 'pickle'hZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huX = 'pickle'r r }r (hYUhZj ubaubeubh)r }r (hYUhZj h[jh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]ubeubeubeubh)r }r (hYUhZhWh[X{/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.establish_connectionr h`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX3establish_connection() (in module celery.messaging)hUtr auhkNhlhhT]ubh)r }r (hYUhZhWh[j h`hhb}r (hhXpyhg]hf]hd]he]hi]hXfunctionr hj uhkNhlhhT]r (h)r }r (hYXestablish_connection(hostname=None, userid=None, password=None, virtual_host=None, port=None, ssl=None, insist=None, connect_timeout=None, backend_cls=None, defaults=)hZj h[hh`hhb}r (hg]r hahh\Xcelery.messagingr r }r bhf]hd]he]hi]r hahXestablish_connectionr hUhuhkNhlhhT]r (h)r }r (hYXcelery.messaging.hZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huXcelery.messaging.r r }r (hYUhZj ubaubh)r }r (hYj hZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huXestablish_connectionr r }r (hYUhZj ubaubh)r }r (hYUhZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r (h)r }r (hYX hostname=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huX hostname=Noner r }r (hYUhZj ubah`hubh)r }r (hYX userid=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huX userid=Noner r }r (hYUhZj ubah`hubh)r }r (hYX password=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huX password=Noner r }r (hYUhZj ubah`hubh)r }r (hYXvirtual_host=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huXvirtual_host=Noner r }r (hYUhZj ubah`hubh)r }r (hYX port=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huX port=Noner r }r (hYUhZj ubah`hubh)r }r (hYXssl=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huXssl=Noner r }r! (hYUhZj ubah`hubh)r" }r# (hYX insist=Nonehb}r$ (hd]he]hf]hg]hi]uhZj hT]r% huX insist=Noner& r' }r( (hYUhZj" ubah`hubh)r) }r* (hYXconnect_timeout=Nonehb}r+ (hd]he]hf]hg]hi]uhZj hT]r, huXconnect_timeout=Noner- r. }r/ (hYUhZj) ubah`hubh)r0 }r1 (hYXbackend_cls=Nonehb}r2 (hd]he]hf]hg]hi]uhZj hT]r3 huXbackend_cls=Noner4 r5 }r6 (hYUhZj0 ubah`hubh)r7 }r8 (hYX8defaults=hb}r9 (hd]he]hf]hg]hi]uhZj hT]r: huX8defaults=r; r< }r= (hYUhZj7 ubah`hubeubeubh)r> }r? (hYUhZj h[hh`hhb}r@ (hd]he]hf]hg]hi]uhkNhlhhT]rA h)rB }rC (hYX-Establish a connection to the message broker.rD hZj> h[j h`hhb}rE (hd]he]hf]hg]hi]uhkKhlhhT]rF huX-Establish a connection to the message broker.rG rH }rI (hYjD hZjB ubaubaubeubh)rJ }rK (hYUhZhWh[Nh`hhb}rL (hg]hf]hd]he]hi]Uentries]rM (hX2extract_msg_options() (in module celery.messaging)h$UtrN auhkNhlhhT]ubh)rO }rP (hYUhZhWh[Nh`hhb}rQ (hhXpyhg]hf]hd]he]hi]hXfunctionrR hjR uhkNhlhhT]rS (h)rT }rU (hYXextract_msg_options(d)hZjO h[hh`hhb}rV (hg]rW h$ahh\Xcelery.messagingrX rY }rZ bhf]hd]he]hi]r[ h$ahXextract_msg_optionsr\ hUhuhkNhlhhT]r] (h)r^ }r_ (hYXcelery.messaging.hZjT h[hh`hhb}r` (hd]he]hf]hg]hi]uhkNhlhhT]ra huXcelery.messaging.rb rc }rd (hYUhZj^ ubaubh)re }rf (hYj\ hZjT h[hh`hhb}rg (hd]he]hf]hg]hi]uhkNhlhhT]rh huXextract_msg_optionsri rj }rk (hYUhZje ubaubh)rl }rm (hYUhZjT h[hh`hhb}rn (hd]he]hf]hg]hi]uhkNhlhhT]ro h)rp }rq (hYXdhb}rr (hd]he]hf]hg]hi]uhZjl hT]rs huXdrt }ru (hYUhZjp ubah`hubaubeubh)rv }rw (hYUhZjO h[hh`hhb}rx (hd]he]hf]hg]hi]uhkNhlhhT]ubeubh)ry }rz (hYUhZhWh[Xw/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.get_consumer_setr{ h`hhb}r| (hg]hf]hd]he]hi]Uentries]r} (hX/get_consumer_set() (in module celery.messaging)hEUtr~ auhkNhlhhT]ubh)r }r (hYUhZhWh[j{ h`hhb}r (hhXpyhg]hf]hd]he]hi]hXfunctionr hj uhkNhlhhT]r (h)r }r (hYX4get_consumer_set(connection, queues=None, **options)hZj h[hh`hhb}r (hg]r hEahh\Xcelery.messagingr r }r bhf]hd]he]hi]r hEahXget_consumer_setr hUhuhkNhlhhT]r (h)r }r (hYXcelery.messaging.hZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huXcelery.messaging.r r }r (hYUhZj ubaubh)r }r (hYj hZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huXget_consumer_setr r }r (hYUhZj ubaubh)r }r (hYUhZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r (h)r }r (hYX connectionhb}r (hd]he]hf]hg]hi]uhZj hT]r huX connectionr r }r (hYUhZj ubah`hubh)r }r (hYX queues=Nonehb}r (hd]he]hf]hg]hi]uhZj hT]r huX queues=Noner r }r (hYUhZj ubah`hubh)r }r (hYX **optionshb}r (hd]he]hf]hg]hi]uhZj hT]r huX **optionsr r }r (hYUhZj ubah`hubeubeubh)r }r (hYUhZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r (h)r }r (hYXIGet the :class:`carrot.messaging.ConsumerSet`` for a queue configuration.hZj h[j{ h`hhb}r (hd]he]hf]hg]hi]uhkKhlhhT]r (huXGet the r r }r (hYXGet the hZj ubj)r }r (hYX&:class:`carrot.messaging.ConsumerSet``r hZj h[Nh`jhb}r (UreftypeXclassjjXcarrot.messaging.ConsumerSet`U refdomainXpyr hg]hf]U refexplicithd]he]hi]jjjNjjuhkNhT]r j)r }r (hYj hb}r (hd]he]r (jj Xpy-classr ehf]hg]hi]uhZj hT]r huXcarrot.messaging.ConsumerSet`r r }r (hYUhZj ubah`jubaubhuX for a queue configuration.r r }r (hYX for a queue configuration.hZj ubeubh)r }r (hYX1Defaults to the queues in :const:`CELERY_QUEUES`.hZj h[j{ h`hhb}r (hd]he]hf]hg]hi]uhkKhlhhT]r (huXDefaults to the queues in r r }r (hYXDefaults to the queues in hZj ubj)r }r (hYX:const:`CELERY_QUEUES`r hZj h[Nh`jhb}r (UreftypeXconstjjX CELERY_QUEUESU refdomainXpyr hg]hf]U refexplicithd]he]hi]jjjNjjuhkNhT]r j)r }r (hYj hb}r (hd]he]r (jj Xpy-constr ehf]hg]hi]uhZj hT]r huX CELERY_QUEUESr r }r (hYUhZj ubah`jubaubhuX.r }r (hYX.hZj ubeubeubeubh)r }r (hYUhZhWh[Xv/var/build/user_builds/celery/checkouts/2.1-archived/celery/messaging.py:docstring of celery.messaging.with_connectionr h`hhb}r (hg]hf]hd]he]hi]Uentries]r (hX.with_connection() (in module celery.messaging)hUtr auhkNhlhhT]ubh)r }r (hYUhZhWh[j h`hhb}r (hhXpyhg]hf]hd]he]hi]hXfunctionr hj uhkNhlhhT]r (h)r }r (hYXwith_connection(fun)r hZj h[hh`hhb}r (hg]r hahh\Xcelery.messagingr r }r bhf]hd]he]hi]r hahXwith_connectionr hUhuhkNhlhhT]r (h)r }r (hYXcelery.messaging.hZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huXcelery.messaging.r r }r (hYUhZj ubaubh)r }r (hYj hZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r huXwith_connectionr r }r (hYUhZj ubaubh)r }r (hYUhZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r h)r }r (hYXfunhb}r (hd]he]hf]hg]hi]uhZj hT]r huXfunr r }r (hYUhZj ubah`hubaubeubh)r }r (hYUhZj h[hh`hhb}r (hd]he]hf]hg]hi]uhkNhlhhT]r h)r }r (hYXDecorator for providing default message broker connection for functions supporting the ``connection`` and ``connect_timeout`` keyword arguments.hZj h[j h`hhb}r (hd]he]hf]hg]hi]uhkKhlhhT]r (huXWDecorator for providing default message broker connection for functions supporting the r! r" }r# (hYXWDecorator for providing default message broker connection for functions supporting the hZj ubj)r$ }r% (hYX``connection``hb}r& (hd]he]hf]hg]hi]uhZj hT]r' huX connectionr( r) }r* (hYUhZj$ ubah`jubhuX and r+ r, }r- (hYX and hZj ubj)r. }r/ (hYX``connect_timeout``hb}r0 (hd]he]hf]hg]hi]uhZj hT]r1 huXconnect_timeoutr2 r3 }r4 (hYUhZj. ubah`jubhuX keyword arguments.r5 r6 }r7 (hYX keyword arguments.hZj ubeubaubeubeubahYUU transformerr8 NU footnote_refsr9 }r: Urefnamesr; }r< Usymbol_footnotesr= ]r> Uautofootnote_refsr? ]r@ Usymbol_footnote_refsrA ]rB U citationsrC ]rD hlhU current_linerE NUtransform_messagesrF ]rG cdocutils.nodes system_message rH )rI }rJ (hYUhb}rK (hd]UlevelKhg]hf]Usourceh|he]hi]UlineKUtypeUINFOrL uhT]rM h)rN }rO (hYUhb}rP (hd]he]hf]hg]hi]uhZjI hT]rQ huX=Hyperlink target "module-celery.messaging" is not referenced.rR rS }rT (hYUhZjN ubah`hubah`Usystem_messagerU ubaUreporterrV NUid_startrW KU autofootnotesrX ]rY U citation_refsrZ }r[ Uindirect_targetsr\ ]r] Usettingsr^ (cdocutils.frontend Values r_ or` }ra (Ufootnote_backlinksrb KUrecord_dependenciesrc NU rfc_base_urlrd Uhttp://tools.ietf.org/html/re U tracebackrf Upep_referencesrg NUstrip_commentsrh NU toc_backlinksri Uentryrj U language_coderk Uenrl U datestamprm NU report_levelrn KU _destinationro NU halt_levelrp KU strip_classesrq NhrNUerror_encoding_error_handlerrr Ubackslashreplacers Udebugrt NUembed_stylesheetru Uoutput_encoding_error_handlerrv Ustrictrw U sectnum_xformrx KUdump_transformsry NU docinfo_xformrz KUwarning_streamr{ NUpep_file_url_templater| Upep-%04dr} Uexit_status_levelr~ KUconfigr NUstrict_visitorr NUcloak_email_addressesr Utrim_footnote_reference_spacer Uenvr NUdump_pseudo_xmlr NUexpose_internalsr NUsectsubtitle_xformr U source_linkr NUrfc_referencesr NUoutput_encodingr Uutf-8r U source_urlr NUinput_encodingr U utf-8-sigr U_disable_configr NU id_prefixr UU tab_widthr KUerror_encodingr UUTF-8r U_sourcer UX/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.messaging.rstr Ugettext_compactr U generatorr NUdump_internalsr NU smart_quotesr U pep_base_urlr Uhttp://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr jw Uauto_id_prefixr Uidr Udoctitle_xformr Ustrip_elements_with_classesr NU _config_filesr ]Ufile_insertion_enabledr U raw_enabledr KU dump_settingsr NubUsymbol_footnote_startr KUidsr }r (hj hjwhjhhzh jh jh jNh hhjfhjShj hj hjhj hjhRcdocutils.nodes topic r )r }r (hYUhZhWh[h^h`Utopicr hb}r (hd]he]r (Ucontentsr Ulocalr ehf]hg]r hRahi]r hauhkKhlhhT]r cdocutils.nodes pending r )r }r (hYX.. contents:: :local:hZj U transformr cdocutils.transforms.parts Contents r Udetailsr }r UlocalNsh`Upendingr hb}r (hd]he]hf]hg]hi]uhT]ubaubhj hjhjhj}h jYh=j/hjhj]hjhj hjh j h!jhShWh"jh#jh$jT h%jh&jBh'jh(j h)jh*jh+jeh,jSh-jh.j h/j'h0jh1j" h2j h3j h4jJ h5jh6jF h7j$h8j)h9jh:jn h;jhjY h?jh@hhAjAhBjhCjhDjwhEj hFj hGjhHj uUsubstitution_namesr }r h`hlhb}r (hd]hg]hf]Usourceh^he]hi]uU footnotesr ]r Urefidsr }r ub.PKYDD6J55Hcelery-2.1-archived/.doctrees/reference/celery.bin.celeryd_multi.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery.bin.celeryd_multi.mainqX#celery.bin.celeryd_multi.multi_argsqX;celery.bin.celeryd_multi.MultiTool.execute_from_commandlineqX1celery.bin.celeryd_multi.MultiTool.shutdown_nodesq X-celeryd multi tool - celery.bin.celeryd_multiq NXexamplesq NX@celery.bin.celeryd_multi.MultiTool.with_detacher_default_optionsq X#celery.bin.celeryd_multi.format_optq UcontentsqNX'celery.bin.celeryd_multi.parse_ns_rangeqX'celery.bin.celeryd_multi.MultiTool.stopqX(celery.bin.celeryd_multi.MultiTool.namesqX&celery.bin.celeryd_multi.abbreviationsqXcelery.bin.celeryd_multi.sayqXcelery.bin.celeryd_multi.quoteqX(celery.bin.celeryd_multi.MultiTool.startqX'celery.bin.celeryd_multi.MultiTool.noteqX(celery.bin.celeryd_multi.MultiTool.errorqX*celery.bin.celeryd_multi.MultiTool.restartqX(celery.bin.celeryd_multi.MultiTool.usageqX8celery.bin.celeryd_multi.NamespacedOptionParser.optmergeqX/celery.bin.celeryd_multi.NamespacedOptionParserqX.celery.bin.celeryd_multi.MultiTool.signal_nodeqX:celery.bin.celeryd_multi.NamespacedOptionParser.add_optionqXAcelery.bin.celeryd_multi.NamespacedOptionParser.process_short_optqX)celery.bin.celeryd_multi.MultiTool.splashqX*celery.bin.celeryd_multi.MultiTool.retcodeq X)celery.bin.celeryd_multi.MultiTool.expandq!X&celery.bin.celeryd_multi.MultiTool.getq"X*celery.bin.celeryd_multi.MultiTool.getpidsq#X'celery.bin.celeryd_multi.MultiTool.helpq$X+celery.bin.celeryd_multi.MultiTool.waitexecq%X'celery.bin.celeryd_multi.MultiTool.showq&X'celery.bin.celeryd_multi.MultiTool.killq'X@celery.bin.celeryd_multi.NamespacedOptionParser.process_long_optq(X5celery.bin.celeryd_multi.NamespacedOptionParser.parseq)X celery.bin.celeryd_multi.findsigq*X-celery.bin.celeryd_multi.MultiTool.node_aliveq+X"celery.bin.celeryd_multi.MultiToolq,X'celery.bin.celeryd_multi.MultiTool.infoq-uUsubstitution_defsq.}q/Uparse_messagesq0]q1Ucurrent_sourceq2NU decorationq3NUautofootnote_startq4KUnameidsq5}q6(hhhhhhh h h U+celeryd-multi-tool-celery-bin-celeryd-multiq7h Uexamplesq8h h h h hUcontentsq9hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh h h!h!h"h"h#h#h$h$h%h%h&h&h'h'h(h(h)h)h*h*h+h+h,h,h-h-uUchildrenq:]q;cdocutils.nodes section q<)q=}q>(U rawsourceq?UUparentq@hUsourceqAcdocutils.nodes reprunicode qBX`/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.bin.celeryd_multi.rstqCqD}qEbUtagnameqFUsectionqGU attributesqH}qI(UdupnamesqJ]UclassesqK]UbackrefsqL]UidsqM]qNh7aUnamesqO]qPh auUlineqQKUdocumentqRhh:]qS(cdocutils.nodes title qT)qU}qV(h?X-Celeryd Multi Tool - celery.bin.celeryd_multiqWh@h=hAhDhFUtitleqXhH}qY(hJ]hK]hL]hM]hO]uhQKhRhh:]qZcdocutils.nodes Text q[X-Celeryd Multi Tool - celery.bin.celeryd_multiq\q]}q^(h?hWh@hUubaubcdocutils.nodes topic q_)q`}qa(h?Uh@h=hAhDhFUtopicqbhH}qc(hJ]hK]qd(UcontentsqeUlocalqfehL]hM]qgh9ahO]qhhauhQKhRhh:]qicdocutils.nodes bullet_list qj)qk}ql(h?Uh@h`hANhFU bullet_listqmhH}qn(hJ]hK]hL]hM]hO]uhQNhRhh:]qocdocutils.nodes list_item qp)qq}qr(h?UhH}qs(hJ]hK]hL]hM]hO]uh@hkh:]qtcdocutils.nodes paragraph qu)qv}qw(h?UhH}qx(hJ]hK]hL]hM]hO]uh@hqh:]qycdocutils.nodes reference qz)q{}q|(h?UhH}q}(hM]q~Uid1qahL]hJ]hK]hO]Urefidh8uh@hvh:]qh[XExamplesqq}q(h?XExamplesqh@h{ubahFU referencequbahFU paragraphqubahFU list_itemqubaubaubcdocutils.nodes target q)q}q(h?Uh@h=hAU qhFUtargetqhH}q(hJ]hM]qXmodule-celery.bin.celeryd_multiqahL]UismodhK]hO]uhQKhRhh:]ubcsphinx.addnodes index q)q}q(h?Uh@h=hAhhFUindexqhH}q(hM]hL]hJ]hK]hO]Uentries]q(UsingleqX!celery.bin.celeryd_multi (module)Xmodule-celery.bin.celeryd_multiUtqauhQKhRhh:]ubh<)q}q(h?Uh@h=hAXv/var/build/user_builds/celery/checkouts/2.1-archived/celery/bin/celeryd_multi.py:docstring of celery.bin.celeryd_multiqhFhGhH}q(hJ]hK]hL]hM]qh8ahO]qh auhQKhRhh:]q(hT)q}q(h?hh@hhAhhFhXhH}q(hM]hL]hJ]hK]hO]UrefidqhuhQKhRhh:]qh[XExamplesqq}q(h?hh@hubaubcdocutils.nodes literal_block q)q}q(h?X# Advanced example starting 10 workers in the background: # * Three of the workers processes the images and video queue # * Two of the workers processes the data queue with loglevel DEBUG # * the rest processes the default' queue. $ celeryd-multi start 10 -l INFO -Q:1-3 images,video -Q:4,5:data -Q default -L:4,5 DEBUG # You can show the commands necessary to start the workers with # the "show" command: $ celeryd-multi show 10 -l INFO -Q:1-3 images,video -Q:4,5:data -Q default -L:4,5 DEBUG # 3 workers, with 3 processes each $ celeryd-multi start 3 -c 3 celeryd -n celeryd1.myhost -c 3 celeryd -n celeryd2.myhost -c 3 celeryd- n celeryd3.myhost -c 3 # start 3 named workers $ celeryd-multi start image video data -c 3 celeryd -n image.myhost -c 3 celeryd -n video.myhost -c 3 celeryd -n data.myhost -c 3 # specify custom hostname $ celeryd-multi start 2 -n worker.example.com -c 3 celeryd -n celeryd1.worker.example.com -c 3 celeryd -n celeryd2.worker.example.com -c 3 # Additionl options are added to each celeryd', # but you can also modify the options for ranges of or single workers # 3 workers: Two with 3 processes, and one with 10 processes. $ celeryd-multi start 3 -c 3 -c:1 10 celeryd -n celeryd1.myhost -c 10 celeryd -n celeryd2.myhost -c 3 celeryd -n celeryd3.myhost -c 3 # can also specify options for named workers $ celeryd-multi start image video data -c 3 -c:image 10 celeryd -n image.myhost -c 10 celeryd -n video.myhost -c 3 celeryd -n data.myhost -c 3 # ranges and lists of workers in options is also allowed: # (-c:1-3 can also be written as -c:1,2,3) $ celeryd-multi start 5 -c 3 -c:1-3 10 celeryd -n celeryd1.myhost -c 10 celeryd -n celeryd2.myhost -c 10 celeryd -n celeryd3.myhost -c 10 celeryd -n celeryd4.myhost -c 3 celeryd -n celeryd5.myhost -c 3 # lists also works with named workers $ celeryd-multi start foo bar baz xuzzy -c 3 -c:foo,bar,baz 10 celeryd -n foo.myhost -c 10 celeryd -n bar.myhost -c 10 celeryd -n baz.myhost -c 10 celeryd -n xuzzy.myhost -c 3h@hhAhhFU literal_blockqhH}q(U xml:spaceqUpreserveqhM]hL]hJ]hK]hO]uhQK hRhh:]qh[X# Advanced example starting 10 workers in the background: # * Three of the workers processes the images and video queue # * Two of the workers processes the data queue with loglevel DEBUG # * the rest processes the default' queue. $ celeryd-multi start 10 -l INFO -Q:1-3 images,video -Q:4,5:data -Q default -L:4,5 DEBUG # You can show the commands necessary to start the workers with # the "show" command: $ celeryd-multi show 10 -l INFO -Q:1-3 images,video -Q:4,5:data -Q default -L:4,5 DEBUG # 3 workers, with 3 processes each $ celeryd-multi start 3 -c 3 celeryd -n celeryd1.myhost -c 3 celeryd -n celeryd2.myhost -c 3 celeryd- n celeryd3.myhost -c 3 # start 3 named workers $ celeryd-multi start image video data -c 3 celeryd -n image.myhost -c 3 celeryd -n video.myhost -c 3 celeryd -n data.myhost -c 3 # specify custom hostname $ celeryd-multi start 2 -n worker.example.com -c 3 celeryd -n celeryd1.worker.example.com -c 3 celeryd -n celeryd2.worker.example.com -c 3 # Additionl options are added to each celeryd', # but you can also modify the options for ranges of or single workers # 3 workers: Two with 3 processes, and one with 10 processes. $ celeryd-multi start 3 -c 3 -c:1 10 celeryd -n celeryd1.myhost -c 10 celeryd -n celeryd2.myhost -c 3 celeryd -n celeryd3.myhost -c 3 # can also specify options for named workers $ celeryd-multi start image video data -c 3 -c:image 10 celeryd -n image.myhost -c 10 celeryd -n video.myhost -c 3 celeryd -n data.myhost -c 3 # ranges and lists of workers in options is also allowed: # (-c:1-3 can also be written as -c:1,2,3) $ celeryd-multi start 5 -c 3 -c:1-3 10 celeryd -n celeryd1.myhost -c 10 celeryd -n celeryd2.myhost -c 10 celeryd -n celeryd3.myhost -c 10 celeryd -n celeryd4.myhost -c 3 celeryd -n celeryd5.myhost -c 3 # lists also works with named workers $ celeryd-multi start foo bar baz xuzzy -c 3 -c:foo,bar,baz 10 celeryd -n foo.myhost -c 10 celeryd -n bar.myhost -c 10 celeryd -n baz.myhost -c 10 celeryd -n xuzzy.myhost -c 3qq}q(h?Uh@hubaubh)q}q(h?Uh@hhANhFhhH}q(hM]hL]hJ]hK]hO]Uentries]q(hX-MultiTool (class in celery.bin.celeryd_multi)h,UtqauhQNhRhh:]ubcsphinx.addnodes desc q)q}q(h?Uh@hhANhFUdescqhH}q(UnoindexqUdomainqXpyhM]hL]hJ]hK]hO]UobjtypeqXclassqUdesctypeqhuhQNhRhh:]q(csphinx.addnodes desc_signature q)q}q(h?X MultiTool()h@hhAU qhFUdesc_signatureqhH}q(hM]qh,aUmoduleqhBXcelery.bin.celeryd_multiqʅq}qbhL]hJ]hK]hO]qh,aUfullnameqX MultiToolqUclassqUUfirstqщuhQNhRhh:]q(csphinx.addnodes desc_annotation q)q}q(h?Xclass h@hhAhhFUdesc_annotationqhH}q(hJ]hK]hL]hM]hO]uhQNhRhh:]qh[Xclass qمq}q(h?Uh@hubaubcsphinx.addnodes desc_addname q)q}q(h?Xcelery.bin.celeryd_multi.h@hhAhhFU desc_addnameqhH}q(hJ]hK]hL]hM]hO]uhQNhRhh:]qh[Xcelery.bin.celeryd_multi.q⅁q}q(h?Uh@hubaubcsphinx.addnodes desc_name q)q}q(h?hh@hhAhhFU desc_nameqhH}q(hJ]hK]hL]hM]hO]uhQNhRhh:]qh[X MultiToolq녁q}q(h?Uh@hubaubeubcsphinx.addnodes desc_content q)q}q(h?Uh@hhAhhFU desc_contentqhH}q(hJ]hK]hL]hM]hO]uhQNhRhh:]q(h)q}q(h?Uh@hhANhFhhH}q(hM]hL]hJ]hK]hO]Uentries]q(hX3error() (celery.bin.celeryd_multi.MultiTool method)hUtqauhQNhRhh:]ubh)q}q(h?Uh@hhANhFhhH}q(hhXpyhM]hL]hJ]hK]hO]hXmethodqhhuhQNhRhh:]q(h)q}q(h?XMultiTool.error(msg=None)h@hhAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahXMultiTool.errorhhhщuhQNhRhh:]r(h)r}r(h?Xerrorh@hhAhhFhhH}r (hJ]hK]hL]hM]hO]uhQNhRhh:]r h[Xerrorr r }r (h?Uh@jubaubcsphinx.addnodes desc_parameterlist r)r}r(h?Uh@hhAhhFUdesc_parameterlistrhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rcsphinx.addnodes desc_parameter r)r}r(h?Xmsg=NonehH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xmsg=Nonerr}r(h?Uh@jubahFUdesc_parameterrubaubeubh)r}r(h?Uh@hhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r }r!(h?Uh@hhANhFhhH}r"(hM]hL]hJ]hK]hO]Uentries]r#(hXFexecute_from_commandline() (celery.bin.celeryd_multi.MultiTool method)hUtr$auhQNhRhh:]ubh)r%}r&(h?Uh@hhANhFhhH}r'(hhXpyhM]hL]hJ]hK]hO]hXmethodr(hj(uhQNhRhh:]r)(h)r*}r+(h?X7MultiTool.execute_from_commandline(argv, cmd='celeryd')h@j%hAhhFhhH}r,(hM]r-hahhBXcelery.bin.celeryd_multir.r/}r0bhL]hJ]hK]hO]r1hahX"MultiTool.execute_from_commandlinehhhщuhQNhRhh:]r2(h)r3}r4(h?Xexecute_from_commandlineh@j*hAhhFhhH}r5(hJ]hK]hL]hM]hO]uhQNhRhh:]r6h[Xexecute_from_commandliner7r8}r9(h?Uh@j3ubaubj)r:}r;(h?Uh@j*hAhhFjhH}r<(hJ]hK]hL]hM]hO]uhQNhRhh:]r=(j)r>}r?(h?XargvhH}r@(hJ]hK]hL]hM]hO]uh@j:h:]rAh[XargvrBrC}rD(h?Uh@j>ubahFjubj)rE}rF(h?X cmd='celeryd'hH}rG(hJ]hK]hL]hM]hO]uh@j:h:]rHh[X cmd='celeryd'rIrJ}rK(h?Uh@jEubahFjubeubeubh)rL}rM(h?Uh@j%hAhhFhhH}rN(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)rO}rP(h?Uh@hhANhFhhH}rQ(hM]hL]hJ]hK]hO]Uentries]rR(hX4expand() (celery.bin.celeryd_multi.MultiTool method)h!UtrSauhQNhRhh:]ubh)rT}rU(h?Uh@hhANhFhhH}rV(hhXpyhM]hL]hJ]hK]hO]hXmethodrWhjWuhQNhRhh:]rX(h)rY}rZ(h?X MultiTool.expand(argv, cmd=None)h@jThAhhFhhH}r[(hM]r\h!ahhBXcelery.bin.celeryd_multir]r^}r_bhL]hJ]hK]hO]r`h!ahXMultiTool.expandhhhщuhQNhRhh:]ra(h)rb}rc(h?Xexpandh@jYhAhhFhhH}rd(hJ]hK]hL]hM]hO]uhQNhRhh:]reh[Xexpandrfrg}rh(h?Uh@jbubaubj)ri}rj(h?Uh@jYhAhhFjhH}rk(hJ]hK]hL]hM]hO]uhQNhRhh:]rl(j)rm}rn(h?XargvhH}ro(hJ]hK]hL]hM]hO]uh@jih:]rph[Xargvrqrr}rs(h?Uh@jmubahFjubj)rt}ru(h?Xcmd=NonehH}rv(hJ]hK]hL]hM]hO]uh@jih:]rwh[Xcmd=Nonerxry}rz(h?Uh@jtubahFjubeubeubh)r{}r|(h?Uh@jThAhhFhhH}r}(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r~}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX1get() (celery.bin.celeryd_multi.MultiTool method)h"UtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?XMultiTool.get(argv, cmd)h@jhAhhFhhH}r(hM]rh"ahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rh"ahX MultiTool.gethhhщuhQNhRhh:]r(h)r}r(h?Xgeth@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xgetrr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XargvhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xargvrr}r(h?Uh@jubahFjubj)r}r(h?XcmdhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xcmdrr}r(h?Uh@jubahFjubeubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX5getpids() (celery.bin.celeryd_multi.MultiTool method)h#UtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?X(MultiTool.getpids(p, cmd, callback=None)h@jhAhhFhhH}r(hM]rh#ahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rh#ahXMultiTool.getpidshhhщuhQNhRhh:]r(h)r}r(h?Xgetpidsh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xgetpidsrr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XphH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xpr}r(h?Uh@jubahFjubj)r}r(h?XcmdhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xcmdrr}r(h?Uh@jubahFjubj)r}r(h?X callback=NonehH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[X callback=Nonerr}r(h?Uh@jubahFjubeubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX2help() (celery.bin.celeryd_multi.MultiTool method)h$UtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?XMultiTool.help(argv, cmd=None)h@jhAhhFhhH}r(hM]rh$ahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rh$ahXMultiTool.helphhhщuhQNhRhh:]r(h)r}r(h?Xhelph@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xhelprr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XargvhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xargvrr}r(h?Uh@jubahFjubj)r}r(h?Xcmd=NonehH}r (hJ]hK]hL]hM]hO]uh@jh:]r h[Xcmd=Noner r }r (h?Uh@jubahFjubeubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX2info() (celery.bin.celeryd_multi.MultiTool method)h-UtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?X!MultiTool.info(msg, newline=True)h@jhAhhFhhH}r(hM]rh-ahhBXcelery.bin.celeryd_multirr }r!bhL]hJ]hK]hO]r"h-ahXMultiTool.infohhhщuhQNhRhh:]r#(h)r$}r%(h?Xinfoh@jhAhhFhhH}r&(hJ]hK]hL]hM]hO]uhQNhRhh:]r'h[Xinfor(r)}r*(h?Uh@j$ubaubj)r+}r,(h?Uh@jhAhhFjhH}r-(hJ]hK]hL]hM]hO]uhQNhRhh:]r.(j)r/}r0(h?XmsghH}r1(hJ]hK]hL]hM]hO]uh@j+h:]r2h[Xmsgr3r4}r5(h?Uh@j/ubahFjubj)r6}r7(h?X newline=TruehH}r8(hJ]hK]hL]hM]hO]uh@j+h:]r9h[X newline=Truer:r;}r<(h?Uh@j6ubahFjubeubeubh)r=}r>(h?Uh@jhAhhFhhH}r?(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r@}rA(h?Uh@hhANhFhhH}rB(hM]hL]hJ]hK]hO]Uentries]rC(hX2kill() (celery.bin.celeryd_multi.MultiTool method)h'UtrDauhQNhRhh:]ubh)rE}rF(h?Uh@hhANhFhhH}rG(hhXpyhM]hL]hJ]hK]hO]hXmethodrHhjHuhQNhRhh:]rI(h)rJ}rK(h?XMultiTool.kill(argv, cmd)h@jEhAhhFhhH}rL(hM]rMh'ahhBXcelery.bin.celeryd_multirNrO}rPbhL]hJ]hK]hO]rQh'ahXMultiTool.killhhhщuhQNhRhh:]rR(h)rS}rT(h?Xkillh@jJhAhhFhhH}rU(hJ]hK]hL]hM]hO]uhQNhRhh:]rVh[XkillrWrX}rY(h?Uh@jSubaubj)rZ}r[(h?Uh@jJhAhhFjhH}r\(hJ]hK]hL]hM]hO]uhQNhRhh:]r](j)r^}r_(h?XargvhH}r`(hJ]hK]hL]hM]hO]uh@jZh:]rah[Xargvrbrc}rd(h?Uh@j^ubahFjubj)re}rf(h?XcmdhH}rg(hJ]hK]hL]hM]hO]uh@jZh:]rhh[Xcmdrirj}rk(h?Uh@jeubahFjubeubeubh)rl}rm(h?Uh@jEhAhhFhhH}rn(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)ro}rp(h?Uh@hhANhFhhH}rq(hM]hL]hJ]hK]hO]Uentries]rr(hX3names() (celery.bin.celeryd_multi.MultiTool method)hUtrsauhQNhRhh:]ubh)rt}ru(h?Uh@hhANhFhhH}rv(hhXpyhM]hL]hJ]hK]hO]hXmethodrwhjwuhQNhRhh:]rx(h)ry}rz(h?XMultiTool.names(argv, cmd)h@jthAhhFhhH}r{(hM]r|hahhBXcelery.bin.celeryd_multir}r~}rbhL]hJ]hK]hO]rhahXMultiTool.nameshhhщuhQNhRhh:]r(h)r}r(h?Xnamesh@jyhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xnamesrr}r(h?Uh@jubaubj)r}r(h?Uh@jyhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XargvhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xargvrr}r(h?Uh@jubahFjubj)r}r(h?XcmdhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xcmdrr}r(h?Uh@jubahFjubeubeubh)r}r(h?Uh@jthAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX8node_alive() (celery.bin.celeryd_multi.MultiTool method)h+UtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?XMultiTool.node_alive(pid)h@jhAhhFhhH}r(hM]rh+ahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rh+ahXMultiTool.node_alivehhhщuhQNhRhh:]r(h)r}r(h?X node_aliveh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[X node_aliverr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rj)r}r(h?XpidhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xpidrr}r(h?Uh@jubahFjubaubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX2note() (celery.bin.celeryd_multi.MultiTool method)hUtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?X!MultiTool.note(msg, newline=True)h@jhAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahXMultiTool.notehhhщuhQNhRhh:]r(h)r}r(h?Xnoteh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xnoterr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XmsghH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xmsgrr}r(h?Uh@jubahFjubj)r}r(h?X newline=TruehH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[X newline=Truerr}r(h?Uh@jubahFjubeubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX5restart() (celery.bin.celeryd_multi.MultiTool method)hUtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?XMultiTool.restart(argv, cmd)h@jhAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahXMultiTool.restarthhhщuhQNhRhh:]r(h)r}r (h?Xrestarth@jhAhhFhhH}r (hJ]hK]hL]hM]hO]uhQNhRhh:]r h[Xrestartr r }r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XargvhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xargvrr}r(h?Uh@jubahFjubj)r}r(h?XcmdhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xcmdrr}r (h?Uh@jubahFjubeubeubh)r!}r"(h?Uh@jhAhhFhhH}r#(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r$}r%(h?Uh@hhANhFhhH}r&(hM]hL]hJ]hK]hO]Uentries]r'(hX6retcode (celery.bin.celeryd_multi.MultiTool attribute)h Utr(auhQNhRhh:]ubh)r)}r*(h?Uh@hhANhFhhH}r+(hhXpyhM]hL]hJ]hK]hO]hX attributer,hj,uhQNhRhh:]r-(h)r.}r/(h?XMultiTool.retcodeh@j)hAU r0hFhhH}r1(hM]r2h ahhBXcelery.bin.celeryd_multir3r4}r5bhL]hJ]hK]hO]r6h ahXMultiTool.retcodehhhщuhQNhRhh:]r7(h)r8}r9(h?Xretcodeh@j.hAj0hFhhH}r:(hJ]hK]hL]hM]hO]uhQNhRhh:]r;h[Xretcoder<r=}r>(h?Uh@j8ubaubh)r?}r@(h?X = 0h@j.hAj0hFhhH}rA(hJ]hK]hL]hM]hO]uhQNhRhh:]rBh[X = 0rCrD}rE(h?Uh@j?ubaubeubh)rF}rG(h?Uh@j)hAj0hFhhH}rH(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)rI}rJ(h?Uh@hhANhFhhH}rK(hM]hL]hJ]hK]hO]Uentries]rL(hX2show() (celery.bin.celeryd_multi.MultiTool method)h&UtrMauhQNhRhh:]ubh)rN}rO(h?Uh@hhANhFhhH}rP(hhXpyhM]hL]hJ]hK]hO]hXmethodrQhjQuhQNhRhh:]rR(h)rS}rT(h?XMultiTool.show(argv, cmd)h@jNhAhhFhhH}rU(hM]rVh&ahhBXcelery.bin.celeryd_multirWrX}rYbhL]hJ]hK]hO]rZh&ahXMultiTool.showhhhщuhQNhRhh:]r[(h)r\}r](h?Xshowh@jShAhhFhhH}r^(hJ]hK]hL]hM]hO]uhQNhRhh:]r_h[Xshowr`ra}rb(h?Uh@j\ubaubj)rc}rd(h?Uh@jShAhhFjhH}re(hJ]hK]hL]hM]hO]uhQNhRhh:]rf(j)rg}rh(h?XargvhH}ri(hJ]hK]hL]hM]hO]uh@jch:]rjh[Xargvrkrl}rm(h?Uh@jgubahFjubj)rn}ro(h?XcmdhH}rp(hJ]hK]hL]hM]hO]uh@jch:]rqh[Xcmdrrrs}rt(h?Uh@jnubahFjubeubeubh)ru}rv(h?Uh@jNhAhhFhhH}rw(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)rx}ry(h?Uh@hhANhFhhH}rz(hM]hL]hJ]hK]hO]Uentries]r{(hX<shutdown_nodes() (celery.bin.celeryd_multi.MultiTool method)h Utr|auhQNhRhh:]ubh)r}}r~(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?XBMultiTool.shutdown_nodes(nodes, sig=15, retry=None, callback=None)h@j}hAhhFhhH}r(hM]rh ahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rh ahXMultiTool.shutdown_nodeshhhщuhQNhRhh:]r(h)r}r(h?Xshutdown_nodesh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xshutdown_nodesrr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XnodeshH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xnodesrr}r(h?Uh@jubahFjubj)r}r(h?Xsig=15hH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xsig=15rr}r(h?Uh@jubahFjubj)r}r(h?X retry=NonehH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[X retry=Nonerr}r(h?Uh@jubahFjubj)r}r(h?X callback=NonehH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[X callback=Nonerr}r(h?Uh@jubahFjubeubeubh)r}r(h?Uh@j}hAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX9signal_node() (celery.bin.celeryd_multi.MultiTool method)hUtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?X)MultiTool.signal_node(nodename, pid, sig)h@jhAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahXMultiTool.signal_nodehhhщuhQNhRhh:]r(h)r}r(h?X signal_nodeh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[X signal_noderr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XnodenamehH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xnodenamerr}r(h?Uh@jubahFjubj)r}r(h?XpidhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xpidrr}r(h?Uh@jubahFjubj)r}r(h?XsighH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xsigrr}r(h?Uh@jubahFjubeubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX4splash() (celery.bin.celeryd_multi.MultiTool method)hUtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?XMultiTool.splash()h@jhAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahXMultiTool.splashhhhщuhQNhRhh:]r(h)r}r(h?Xsplashh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xsplashrr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r (h?Uh@jhAhhFhhH}r (hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r }r (h?Uh@hhANhFhhH}r (hM]hL]hJ]hK]hO]Uentries]r(hX3start() (celery.bin.celeryd_multi.MultiTool method)hUtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?XMultiTool.start(argv, cmd)h@jhAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahXMultiTool.starthhhщuhQNhRhh:]r(h)r}r(h?Xstarth@jhAhhFhhH}r (hJ]hK]hL]hM]hO]uhQNhRhh:]r!h[Xstartr"r#}r$(h?Uh@jubaubj)r%}r&(h?Uh@jhAhhFjhH}r'(hJ]hK]hL]hM]hO]uhQNhRhh:]r((j)r)}r*(h?XargvhH}r+(hJ]hK]hL]hM]hO]uh@j%h:]r,h[Xargvr-r.}r/(h?Uh@j)ubahFjubj)r0}r1(h?XcmdhH}r2(hJ]hK]hL]hM]hO]uh@j%h:]r3h[Xcmdr4r5}r6(h?Uh@j0ubahFjubeubeubh)r7}r8(h?Uh@jhAhhFhhH}r9(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r:}r;(h?Uh@hhANhFhhH}r<(hM]hL]hJ]hK]hO]Uentries]r=(hX2stop() (celery.bin.celeryd_multi.MultiTool method)hUtr>auhQNhRhh:]ubh)r?}r@(h?Uh@hhANhFhhH}rA(hhXpyhM]hL]hJ]hK]hO]hXmethodrBhjBuhQNhRhh:]rC(h)rD}rE(h?XMultiTool.stop(argv, cmd)h@j?hAhhFhhH}rF(hM]rGhahhBXcelery.bin.celeryd_multirHrI}rJbhL]hJ]hK]hO]rKhahXMultiTool.stophhhщuhQNhRhh:]rL(h)rM}rN(h?Xstoph@jDhAhhFhhH}rO(hJ]hK]hL]hM]hO]uhQNhRhh:]rPh[XstoprQrR}rS(h?Uh@jMubaubj)rT}rU(h?Uh@jDhAhhFjhH}rV(hJ]hK]hL]hM]hO]uhQNhRhh:]rW(j)rX}rY(h?XargvhH}rZ(hJ]hK]hL]hM]hO]uh@jTh:]r[h[Xargvr\r]}r^(h?Uh@jXubahFjubj)r_}r`(h?XcmdhH}ra(hJ]hK]hL]hM]hO]uh@jTh:]rbh[Xcmdrcrd}re(h?Uh@j_ubahFjubeubeubh)rf}rg(h?Uh@j?hAhhFhhH}rh(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)ri}rj(h?Uh@hhANhFhhH}rk(hM]hL]hJ]hK]hO]Uentries]rl(hX3usage() (celery.bin.celeryd_multi.MultiTool method)hUtrmauhQNhRhh:]ubh)rn}ro(h?Uh@hhANhFhhH}rp(hhXpyhM]hL]hJ]hK]hO]hXmethodrqhjquhQNhRhh:]rr(h)rs}rt(h?XMultiTool.usage()h@jnhAhhFhhH}ru(hM]rvhahhBXcelery.bin.celeryd_multirwrx}rybhL]hJ]hK]hO]rzhahXMultiTool.usagehhhщuhQNhRhh:]r{(h)r|}r}(h?Xusageh@jshAhhFhhH}r~(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xusagerr}r(h?Uh@j|ubaubj)r}r(h?Uh@jshAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@jnhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX6waitexec() (celery.bin.celeryd_multi.MultiTool method)h%UtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?XuMultiTool.waitexec(argv, path='/home/docs/checkouts/readthedocs.org/user_builds/celery/envs/2.1-archived/bin/python')h@jhAhhFhhH}r(hM]rh%ahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rh%ahXMultiTool.waitexechhhщuhQNhRhh:]r(h)r}r(h?Xwaitexech@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xwaitexecrr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XargvhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xargvrr}r(h?Uh@jubahFjubj)r}r(h?X[path='/home/docs/checkouts/readthedocs.org/user_builds/celery/envs/2.1-archived/bin/python'hH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[X[path='/home/docs/checkouts/readthedocs.org/user_builds/celery/envs/2.1-archived/bin/python'rr}r(h?Uh@jubahFjubeubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hXKwith_detacher_default_options() (celery.bin.celeryd_multi.MultiTool method)h UtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?X*MultiTool.with_detacher_default_options(p)h@jhAhhFhhH}r(hM]rh ahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rh ahX'MultiTool.with_detacher_default_optionshhhщuhQNhRhh:]r(h)r}r(h?Xwith_detacher_default_optionsh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xwith_detacher_default_optionsrr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rj)r}r(h?XphH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xpr}r(h?Uh@jubahFjubaubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubeubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX:NamespacedOptionParser (class in celery.bin.celeryd_multi)hUtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXclassrhjuhQNhRhh:]r(h)r}r(h?XNamespacedOptionParser(args)rh@jhAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahXNamespacedOptionParserrhUhщuhQNhRhh:]r(h)r}r(h?Xclass h@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xclass rr}r(h?Uh@jubaubh)r}r(h?Xcelery.bin.celeryd_multi.h@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xcelery.bin.celeryd_multi.rr}r(h?Uh@jubaubh)r}r(h?jh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[XNamespacedOptionParserrr}r(h?Uh@jubaubj)r }r (h?Uh@jhAhhFjhH}r (hJ]hK]hL]hM]hO]uhQNhRhh:]r j)r }r(h?XargshH}r(hJ]hK]hL]hM]hO]uh@j h:]rh[Xargsrr}r(h?Uh@j ubahFjubaubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(h)r}r(h?Uh@jhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hXEadd_option() (celery.bin.celeryd_multi.NamespacedOptionParser method)hUtrauhQNhRhh:]ubh)r}r(h?Uh@jhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodr hj uhQNhRhh:]r!(h)r"}r#(h?XDNamespacedOptionParser.add_option(name, value, short=False, ns=None)h@jhAhhFhhH}r$(hM]r%hahhBXcelery.bin.celeryd_multir&r'}r(bhL]hJ]hK]hO]r)hahX!NamespacedOptionParser.add_optionhjhщuhQNhRhh:]r*(h)r+}r,(h?X add_optionh@j"hAhhFhhH}r-(hJ]hK]hL]hM]hO]uhQNhRhh:]r.h[X add_optionr/r0}r1(h?Uh@j+ubaubj)r2}r3(h?Uh@j"hAhhFjhH}r4(hJ]hK]hL]hM]hO]uhQNhRhh:]r5(j)r6}r7(h?XnamehH}r8(hJ]hK]hL]hM]hO]uh@j2h:]r9h[Xnamer:r;}r<(h?Uh@j6ubahFjubj)r=}r>(h?XvaluehH}r?(hJ]hK]hL]hM]hO]uh@j2h:]r@h[XvaluerArB}rC(h?Uh@j=ubahFjubj)rD}rE(h?X short=FalsehH}rF(hJ]hK]hL]hM]hO]uh@j2h:]rGh[X short=FalserHrI}rJ(h?Uh@jDubahFjubj)rK}rL(h?Xns=NonehH}rM(hJ]hK]hL]hM]hO]uh@j2h:]rNh[Xns=NonerOrP}rQ(h?Uh@jKubahFjubeubeubh)rR}rS(h?Uh@jhAhhFhhH}rT(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)rU}rV(h?Uh@jhANhFhhH}rW(hM]hL]hJ]hK]hO]Uentries]rX(hXCoptmerge() (celery.bin.celeryd_multi.NamespacedOptionParser method)hUtrYauhQNhRhh:]ubh)rZ}r[(h?Uh@jhANhFhhH}r\(hhXpyhM]hL]hJ]hK]hO]hXmethodr]hj]uhQNhRhh:]r^(h)r_}r`(h?X2NamespacedOptionParser.optmerge(ns, defaults=None)h@jZhAhhFhhH}ra(hM]rbhahhBXcelery.bin.celeryd_multircrd}rebhL]hJ]hK]hO]rfhahXNamespacedOptionParser.optmergehjhщuhQNhRhh:]rg(h)rh}ri(h?Xoptmergeh@j_hAhhFhhH}rj(hJ]hK]hL]hM]hO]uhQNhRhh:]rkh[Xoptmergerlrm}rn(h?Uh@jhubaubj)ro}rp(h?Uh@j_hAhhFjhH}rq(hJ]hK]hL]hM]hO]uhQNhRhh:]rr(j)rs}rt(h?XnshH}ru(hJ]hK]hL]hM]hO]uh@joh:]rvh[Xnsrwrx}ry(h?Uh@jsubahFjubj)rz}r{(h?X defaults=NonehH}r|(hJ]hK]hL]hM]hO]uh@joh:]r}h[X defaults=Noner~r}r(h?Uh@jzubahFjubeubeubh)r}r(h?Uh@jZhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@jhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX@parse() (celery.bin.celeryd_multi.NamespacedOptionParser method)h)UtrauhQNhRhh:]ubh)r}r(h?Uh@jhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?XNamespacedOptionParser.parse()h@jhAhhFhhH}r(hM]rh)ahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rh)ahXNamespacedOptionParser.parsehjhщuhQNhRhh:]r(h)r}r(h?Xparseh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xparserr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@jhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hXKprocess_long_opt() (celery.bin.celeryd_multi.NamespacedOptionParser method)h(UtrauhQNhRhh:]ubh)r}r(h?Uh@jhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?X8NamespacedOptionParser.process_long_opt(arg, value=None)h@jhAhhFhhH}r(hM]rh(ahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rh(ahX'NamespacedOptionParser.process_long_opthjhщuhQNhRhh:]r(h)r}r(h?Xprocess_long_opth@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xprocess_long_optrr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XarghH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xargrr}r(h?Uh@jubahFjubj)r}r(h?X value=NonehH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[X value=Nonerr}r(h?Uh@jubahFjubeubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@jhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hXLprocess_short_opt() (celery.bin.celeryd_multi.NamespacedOptionParser method)hUtrauhQNhRhh:]ubh)r}r(h?Uh@jhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXmethodrhjuhQNhRhh:]r(h)r}r(h?X9NamespacedOptionParser.process_short_opt(arg, value=None)h@jhAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahX(NamespacedOptionParser.process_short_opthjhщuhQNhRhh:]r(h)r}r(h?Xprocess_short_opth@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xprocess_short_optrr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XarghH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xargrr}r(h?Uh@jubahFjubj)r}r(h?X value=NonehH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[X value=Nonerr}r(h?Uh@jubahFjubeubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubeubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX4abbreviations() (in module celery.bin.celeryd_multi)hUtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r (hhXpyhM]hL]hJ]hK]hO]hXfunctionr hj uhQNhRhh:]r (h)r }r (h?Xabbreviations(map)h@jhAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahX abbreviationsrhUhщuhQNhRhh:]r(h)r}r(h?Xcelery.bin.celeryd_multi.h@j hAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xcelery.bin.celeryd_multi.rr}r(h?Uh@jubaubh)r}r(h?jh@j hAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r h[X abbreviationsr!r"}r#(h?Uh@jubaubj)r$}r%(h?Uh@j hAhhFjhH}r&(hJ]hK]hL]hM]hO]uhQNhRhh:]r'j)r(}r)(h?XmaphH}r*(hJ]hK]hL]hM]hO]uh@j$h:]r+h[Xmapr,r-}r.(h?Uh@j(ubahFjubaubeubh)r/}r0(h?Uh@jhAhhFhhH}r1(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r2}r3(h?Uh@hhANhFhhH}r4(hM]hL]hJ]hK]hO]Uentries]r5(hX.findsig() (in module celery.bin.celeryd_multi)h*Utr6auhQNhRhh:]ubh)r7}r8(h?Uh@hhANhFhhH}r9(hhXpyhM]hL]hJ]hK]hO]hXfunctionr:hj:uhQNhRhh:]r;(h)r<}r=(h?Xfindsig(args, default=15)h@j7hAhhFhhH}r>(hM]r?h*ahhBXcelery.bin.celeryd_multir@rA}rBbhL]hJ]hK]hO]rCh*ahXfindsigrDhUhщuhQNhRhh:]rE(h)rF}rG(h?Xcelery.bin.celeryd_multi.h@j<hAhhFhhH}rH(hJ]hK]hL]hM]hO]uhQNhRhh:]rIh[Xcelery.bin.celeryd_multi.rJrK}rL(h?Uh@jFubaubh)rM}rN(h?jDh@j<hAhhFhhH}rO(hJ]hK]hL]hM]hO]uhQNhRhh:]rPh[XfindsigrQrR}rS(h?Uh@jMubaubj)rT}rU(h?Uh@j<hAhhFjhH}rV(hJ]hK]hL]hM]hO]uhQNhRhh:]rW(j)rX}rY(h?XargshH}rZ(hJ]hK]hL]hM]hO]uh@jTh:]r[h[Xargsr\r]}r^(h?Uh@jXubahFjubj)r_}r`(h?X default=15hH}ra(hJ]hK]hL]hM]hO]uh@jTh:]rbh[X default=15rcrd}re(h?Uh@j_ubahFjubeubeubh)rf}rg(h?Uh@j7hAhhFhhH}rh(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)ri}rj(h?Uh@hhANhFhhH}rk(hM]hL]hJ]hK]hO]Uentries]rl(hX1format_opt() (in module celery.bin.celeryd_multi)h UtrmauhQNhRhh:]ubh)rn}ro(h?Uh@hhANhFhhH}rp(hhXpyhM]hL]hJ]hK]hO]hXfunctionrqhjquhQNhRhh:]rr(h)rs}rt(h?Xformat_opt(opt, value)h@jnhAhhFhhH}ru(hM]rvh ahhBXcelery.bin.celeryd_multirwrx}rybhL]hJ]hK]hO]rzh ahX format_optr{hUhщuhQNhRhh:]r|(h)r}}r~(h?Xcelery.bin.celeryd_multi.h@jshAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xcelery.bin.celeryd_multi.rr}r(h?Uh@j}ubaubh)r}r(h?j{h@jshAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[X format_optrr}r(h?Uh@jubaubj)r}r(h?Uh@jshAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XopthH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xoptrr}r(h?Uh@jubahFjubj)r}r(h?XvaluehH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xvaluerr}r(h?Uh@jubahFjubeubeubh)r}r(h?Uh@jnhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX+main() (in module celery.bin.celeryd_multi)hUtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXfunctionrhjuhQNhRhh:]r(h)r}r(h?Xmain()h@jhAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahXmainrhUhщuhQNhRhh:]r(h)r}r(h?Xcelery.bin.celeryd_multi.h@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xcelery.bin.celeryd_multi.rr}r(h?Uh@jubaubh)r}r(h?jh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xmainrr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX1multi_args() (in module celery.bin.celeryd_multi)hUtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXfunctionrhjuhQNhRhh:]r(h)r}r(h?X=multi_args(p, cmd='celeryd', append='', prefix='', suffix='')h@jhAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahX multi_argsrhUhщuhQNhRhh:]r(h)r}r(h?Xcelery.bin.celeryd_multi.h@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xcelery.bin.celeryd_multi.rr}r(h?Uh@jubaubh)r}r(h?jh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[X multi_argsrr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XphH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xpr}r(h?Uh@jubahFjubj)r}r(h?X cmd='celeryd'hH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[X cmd='celeryd'rr}r(h?Uh@jubahFjubj)r}r(h?X append=''hH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[X append=''rr}r(h?Uh@jubahFjubj)r}r(h?X prefix=''hH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[X prefix=''rr}r(h?Uh@jubahFjubj)r }r (h?X suffix=''hH}r (hJ]hK]hL]hM]hO]uh@jh:]r h[X suffix=''r r}r(h?Uh@j ubahFjubeubeubh)r}r(h?Uh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)r}r(h?Uh@hhANhFhhH}r(hM]hL]hJ]hK]hO]Uentries]r(hX5parse_ns_range() (in module celery.bin.celeryd_multi)hUtrauhQNhRhh:]ubh)r}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXfunctionrhjuhQNhRhh:]r(h)r}r(h?X parse_ns_range(ns, ranges=False)h@jhAhhFhhH}r(hM]r hahhBXcelery.bin.celeryd_multir!r"}r#bhL]hJ]hK]hO]r$hahXparse_ns_ranger%hUhщuhQNhRhh:]r&(h)r'}r((h?Xcelery.bin.celeryd_multi.h@jhAhhFhhH}r)(hJ]hK]hL]hM]hO]uhQNhRhh:]r*h[Xcelery.bin.celeryd_multi.r+r,}r-(h?Uh@j'ubaubh)r.}r/(h?j%h@jhAhhFhhH}r0(hJ]hK]hL]hM]hO]uhQNhRhh:]r1h[Xparse_ns_ranger2r3}r4(h?Uh@j.ubaubj)r5}r6(h?Uh@jhAhhFjhH}r7(hJ]hK]hL]hM]hO]uhQNhRhh:]r8(j)r9}r:(h?XnshH}r;(hJ]hK]hL]hM]hO]uh@j5h:]r<h[Xnsr=r>}r?(h?Uh@j9ubahFjubj)r@}rA(h?X ranges=FalsehH}rB(hJ]hK]hL]hM]hO]uh@j5h:]rCh[X ranges=FalserDrE}rF(h?Uh@j@ubahFjubeubeubh)rG}rH(h?Uh@jhAhhFhhH}rI(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)rJ}rK(h?Uh@hhANhFhhH}rL(hM]hL]hJ]hK]hO]Uentries]rM(hX,quote() (in module celery.bin.celeryd_multi)hUtrNauhQNhRhh:]ubh)rO}rP(h?Uh@hhANhFhhH}rQ(hhXpyhM]hL]hJ]hK]hO]hXfunctionrRhjRuhQNhRhh:]rS(h)rT}rU(h?Xquote(v)h@jOhAhhFhhH}rV(hM]rWhahhBXcelery.bin.celeryd_multirXrY}rZbhL]hJ]hK]hO]r[hahXquoter\hUhщuhQNhRhh:]r](h)r^}r_(h?Xcelery.bin.celeryd_multi.h@jThAhhFhhH}r`(hJ]hK]hL]hM]hO]uhQNhRhh:]rah[Xcelery.bin.celeryd_multi.rbrc}rd(h?Uh@j^ubaubh)re}rf(h?j\h@jThAhhFhhH}rg(hJ]hK]hL]hM]hO]uhQNhRhh:]rhh[Xquoterirj}rk(h?Uh@jeubaubj)rl}rm(h?Uh@jThAhhFjhH}rn(hJ]hK]hL]hM]hO]uhQNhRhh:]roj)rp}rq(h?XvhH}rr(hJ]hK]hL]hM]hO]uh@jlh:]rsh[Xvrt}ru(h?Uh@jpubahFjubaubeubh)rv}rw(h?Uh@jOhAhhFhhH}rx(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubh)ry}rz(h?Uh@hhANhFhhH}r{(hM]hL]hJ]hK]hO]Uentries]r|(hX*say() (in module celery.bin.celeryd_multi)hUtr}auhQNhRhh:]ubh)r~}r(h?Uh@hhANhFhhH}r(hhXpyhM]hL]hJ]hK]hO]hXfunctionrhjuhQNhRhh:]r(h)r}r(h?Xsay(m, newline=True)h@j~hAhhFhhH}r(hM]rhahhBXcelery.bin.celeryd_multirr}rbhL]hJ]hK]hO]rhahXsayrhUhщuhQNhRhh:]r(h)r}r(h?Xcelery.bin.celeryd_multi.h@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xcelery.bin.celeryd_multi.rr}r(h?Uh@jubaubh)r}r(h?jh@jhAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]rh[Xsayrr}r(h?Uh@jubaubj)r}r(h?Uh@jhAhhFjhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]r(j)r}r(h?XmhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[Xmr}r(h?Uh@jubahFjubj)r}r(h?X newline=TruehH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[X newline=Truerr}r(h?Uh@jubahFjubeubeubh)r}r(h?Uh@j~hAhhFhhH}r(hJ]hK]hL]hM]hO]uhQNhRhh:]ubeubeubeubah?UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rhRhU current_linerNUtransform_messagesr]rcdocutils.nodes system_message r)r}r(h?UhH}r(hJ]UlevelKhM]hL]UsourcehhK]hO]UlineKUtypeUINFOruh:]rhu)r}r(h?UhH}r(hJ]hK]hL]hM]hO]uh@jh:]rh[XEHyperlink target "module-celery.bin.celeryd_multi" is not referenced.rr}r(h?Uh@jubahFhubahFUsystem_messagerubaUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttp://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNhXNUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8r U_sourcer U`/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.bin.celeryd_multi.rstr Ugettext_compactr U generatorr NUdump_internalsrNU smart_quotesrU pep_base_urlrUhttp://www.python.org/dev/peps/rUsyntax_highlightrUlongrUinput_encoding_error_handlerrjUauto_id_prefixrUidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hjhjhj*h jh8hh jhh{h jsh9h`hjhjDh#jhj hjhjThjhjhhhhh-jhjshj_hjhjhj"hjhjh j.h!jYh"jhjyh$jh%jh7h=h&jSh'jJh(jh)jh*j<h+jh,hhjuUsubstitution_namesr }r!hFhRhH}r"(hJ]hM]hL]UsourcehDhK]hO]uU footnotesr#]r$Urefidsr%}r&ub.PKYDDnDcelery-2.1-archived/.doctrees/reference/celery.bin.celeryctl.doctreecdocutils.nodes document q)q}q(U nametypesq}q(Xcelery.bin.celeryctl.apply.runqX!celery.bin.celeryctl.Command.argsqXcelery.bin.celeryctl.mainqX'celery.bin.celeryctl.result.option_listq X"celery.bin.celeryctl.inspect.usageq X celery.bin.celeryctl.result.argsq Xcelery.bin.celeryctl.statusq X%celery.bin.celeryctl.Command.prettifyq Xcelery.bin.celeryctl.celeryctlqXcelery.bin.celeryctl.resultqX$celery.bin.celeryctl.inspect.choicesqXcelery.bin.celeryctl.commandqUcontentsqNX*celery.bin.celeryctl.Command.prettify_listqXcelery.bin.celeryctl.status.runqX(celery.bin.celeryctl.Command.option_listqX"celery.bin.celeryctl.Command.usageqX'celery.bin.celeryctl.celeryctl.commandsqX&celery.bin.celeryctl.celeryctl.executeqX celeryctl - celery.bin.celeryctlqNXcelery.bin.celeryctl.CommandqX$celery.bin.celeryctl.Command.versionqX celery.bin.celeryctl.Command.runqX(celery.bin.celeryctl.inspect.option_listqX celery.bin.celeryctl.Command.outqXcelery.bin.celeryctl.inspectqX celery.bin.celeryctl.inspect.runq Xcelery.bin.celeryctl.result.runq!X!celery.bin.celeryctl.Command.helpq"X'celery.bin.celeryctl.status.option_listq#Xcelery.bin.celeryctl.indentq$X*celery.bin.celeryctl.Command.run_from_argvq%Xcelery.bin.celeryctl.help.usageq&Xcelery.bin.celeryctl.Errorq'X"celery.bin.celeryctl.Command.errorq(Xcelery.bin.celeryctl.applyq)X3celery.bin.celeryctl.Command.prettify_dict_ok_errorq*X*celery.bin.celeryctl.Command.create_parserq+X7celery.bin.celeryctl.celeryctl.execute_from_commandlineq,Xcelery.bin.celeryctl.helpq-X&celery.bin.celeryctl.apply.option_listq.Xcelery.bin.celeryctl.help.runq/Xcelery.bin.celeryctl.apply.argsq0X celery.bin.celeryctl.inspect.sayq1uUsubstitution_defsq2}q3Uparse_messagesq4]q5Ucurrent_sourceq6NU decorationq7NUautofootnote_startq8KUnameidsq9}q:(hhhhhhh h h h h h h h h h hhhhhhhhhUcontentsq;hhhhhhhhhhhhhUceleryctl-celery-bin-celeryctlqcdocutils.nodes section q?)q@}qA(U rawsourceqBUUparentqChUsourceqDcdocutils.nodes reprunicode qEX\/var/build/user_builds/celery/checkouts/2.1-archived/docs/reference/celery.bin.celeryctl.rstqFqG}qHbUtagnameqIUsectionqJU attributesqK}qL(UdupnamesqM]UclassesqN]UbackrefsqO]UidsqP]qQhqehIUtargetqfhK}qg(hM]hP]qhXmodule-celery.bin.celeryctlqiahO]UismodhN]hR]uhTKhUhh=]ubcsphinx.addnodes index qj)qk}ql(hBUhCh@hDhehIUindexqmhK}qn(hP]hO]hM]hN]hR]Uentries]qo(UsingleqpXcelery.bin.celeryctl (module)Xmodule-celery.bin.celeryctlUtqqauhTKhUhh=]ubhj)qr}qs(hBUhCh@hDNhIhmhK}qt(hP]hO]hM]hN]hR]Uentries]qu(hpX'Command (class in celery.bin.celeryctl)hUtqvauhTNhUhh=]ubcsphinx.addnodes desc qw)qx}qy(hBUhCh@hDNhIUdescqzhK}q{(Unoindexq|Udomainq}XpyhP]hO]hM]hN]hR]Uobjtypeq~XclassqUdesctypeqhuhTNhUhh=]q(csphinx.addnodes desc_signature q)q}q(hBXCommand(no_color=False)hChxhDU qhIUdesc_signatureqhK}q(hP]qhaUmoduleqhEXcelery.bin.celeryctlqq}qbhO]hM]hN]hR]qhaUfullnameqXCommandqUclassqUUfirstquhTNhUhh=]q(csphinx.addnodes desc_annotation q)q}q(hBXclass hChhDhhIUdesc_annotationqhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^Xclass qq}q(hBUhChubaubcsphinx.addnodes desc_addname q)q}q(hBXcelery.bin.celeryctl.hChhDhhIU desc_addnameqhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^Xcelery.bin.celeryctl.qq}q(hBUhChubaubcsphinx.addnodes desc_name q)q}q(hBhhChhDhhIU desc_nameqhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^XCommandqq}q(hBUhChubaubcsphinx.addnodes desc_parameterlist q)q}q(hBUhChhDhhIUdesc_parameterlistqhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qcsphinx.addnodes desc_parameter q)q}q(hBXno_color=FalsehK}q(hM]hN]hO]hP]hR]uhChh=]qh^Xno_color=Falseqq}q(hBUhChubahIUdesc_parameterqubaubeubcsphinx.addnodes desc_content q)q}q(hBUhChxhDhhIU desc_contentqhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]q(hj)q}q(hBUhChhDNhIhmhK}q(hP]hO]hM]hN]hR]Uentries]q(hpX-args (celery.bin.celeryctl.Command attribute)hUtqauhTNhUhh=]ubhw)q}q(hBUhChhDNhIhzhK}q(h|h}XpyhP]hO]hM]hN]hR]h~X attributeqhhuhTNhUhh=]q(h)q}q(hBX Command.argshChhDU qhIhhK}q(hP]qhahhEXcelery.bin.celeryctlq҅q}qbhO]hM]hN]hR]qhahX Command.argshhhuhTNhUhh=]q(h)q}q(hBXargshChhDhhIhhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^Xargsqۅq}q(hBUhChubaubh)q}q(hBX = ''hChhDhhIhhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^X = ''q⅁q}q(hBUhChubaubeubh)q}q(hBUhChhDhhIhhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)q}q(hBUhChhDNhIhmhK}q(hP]hO]hM]hN]hR]Uentries]q(hpX5create_parser() (celery.bin.celeryctl.Command method)h+UtqauhTNhUhh=]ubhw)q}q(hBUhChhDNhIhzhK}q(h|h}XpyhP]hO]hM]hN]hR]h~XmethodqhhuhTNhUhh=]q(h)q}q(hBX)Command.create_parser(prog_name, command)hChhDhhIhhK}q(hP]qh+ahhEXcelery.bin.celeryctlqq}qbhO]hM]hN]hR]qh+ahXCommand.create_parserhhhuhTNhUhh=]q(h)q}q(hBX create_parserhChhDhhIhhK}q(hM]hN]hO]hP]hR]uhTNhUhh=]qh^X create_parserqr}r(hBUhChubaubh)r}r(hBUhChhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]r(h)r}r(hBX prog_namehK}r(hM]hN]hO]hP]hR]uhCjh=]r h^X prog_namer r }r (hBUhCjubahIhubh)r }r(hBXcommandhK}r(hM]hN]hO]hP]hR]uhCjh=]rh^Xcommandrr}r(hBUhCj ubahIhubeubeubh)r}r(hBUhChhDhhIhhK}r(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r}r(hBUhChhDNhIhmhK}r(hP]hO]hM]hN]hR]Uentries]r(hpX-error() (celery.bin.celeryctl.Command method)h(UtrauhTNhUhh=]ubhw)r}r(hBUhChhDNhIhzhK}r(h|h}XpyhP]hO]hM]hN]hR]h~XmethodrhjuhTNhUhh=]r (h)r!}r"(hBXCommand.error(s)hCjhDhhIhhK}r#(hP]r$h(ahhEXcelery.bin.celeryctlr%r&}r'bhO]hM]hN]hR]r(h(ahX Command.errorhhhuhTNhUhh=]r)(h)r*}r+(hBXerrorhCj!hDhhIhhK}r,(hM]hN]hO]hP]hR]uhTNhUhh=]r-h^Xerrorr.r/}r0(hBUhCj*ubaubh)r1}r2(hBUhCj!hDhhIhhK}r3(hM]hN]hO]hP]hR]uhTNhUhh=]r4h)r5}r6(hBXshK}r7(hM]hN]hO]hP]hR]uhCj1h=]r8h^Xsr9}r:(hBUhCj5ubahIhubaubeubh)r;}r<(hBUhCjhDhhIhhK}r=(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)r>}r?(hBUhChhDNhIhmhK}r@(hP]hO]hM]hN]hR]Uentries]rA(hpX-help (celery.bin.celeryctl.Command attribute)h"UtrBauhTNhUhh=]ubhw)rC}rD(hBUhChhDNhIhzhK}rE(h|h}XpyhP]hO]hM]hN]hR]h~X attributerFhjFuhTNhUhh=]rG(h)rH}rI(hBX Command.helphCjChDhhIhhK}rJ(hP]rKh"ahhEXcelery.bin.celeryctlrLrM}rNbhO]hM]hN]hR]rOh"ahX Command.helphhhuhTNhUhh=]rP(h)rQ}rR(hBXhelphCjHhDhhIhhK}rS(hM]hN]hO]hP]hR]uhTNhUhh=]rTh^XhelprUrV}rW(hBUhCjQubaubh)rX}rY(hBX = ''hCjHhDhhIhhK}rZ(hM]hN]hO]hP]hR]uhTNhUhh=]r[h^X = ''r\r]}r^(hBUhCjXubaubeubh)r_}r`(hBUhCjChDhhIhhK}ra(hM]hN]hO]hP]hR]uhTNhUhh=]ubeubhj)rb}rc(hBUhChhDNhIhmhK}rd(hP]hO]hM]hN]hR]Uentries]re(hpX4option_list (celery.bin.celeryctl.Command attribute)hUtrfauhTNhUhh=]ubhw)rg}rh(hBUhChhDNhIhzhK}ri(h|h}XpyhP]hO]hM]hN]hR]h~X attributerjhjjuhTNhUhh=]rk(h)rl}rm(hBXCommand.option_listhCjghDhhIhhK}rn(hP]rohahhEXcelery.bin.celeryctlrprq}rrbhO]hM]hN]hR]rshahXCommand.option_listhhhuhTNhUhh=]rt(h)ru}rv(hBX option_listhCjlhDhhIhhK}rw(hM]hN]hO]hP]hR]uhTNhUhh=]rxh^X option_listryrz}r{(hBUhCjuubaubh)r|}r}(hBX = (