日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

#celery#周期性任务

發布時間:2023/12/4 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 #celery#周期性任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

玩了一個星期的clannad,是時候干點事了。


折騰了下celery周期性任務:

celery提供了一個叫celery beat的服務,用于定時驅使worker執行任務。也就是說,如果本地沒有活動的worker,它將不會得到任何執行結果,他只是負責把任務消息傳到rabbitmq,一旦啟動一個可用worker,則自動從rabbitmq獲取任務信息并執行。

與此配置相關的參數是CELERYBEAT_SCHEDULE,我把我的celery應用proj的所有配置內容都放置在一個config.py文件中:

from?__future__?import?absolute_import from?datetime?import?timedelta from?celery.schedules?import?crontabCELERY_TASK_RESULT_EXPIRES=3600 CELERY_TASK_SERIALIZER='json' CELERY_ACCEPT_CONTENT=['json'] CELERY_RESULT_SERIALIZER='json'CELERYBEAT_SCHEDULE?=?{'add-every-1-min':?{'task':?'proj.agent.add','schedule':?crontab(),'args':?(16,?16),}, } #CELERYBEAT_SCHEDULE?=?{ #????'add-every-2-seconds':?{ #????????'task':?'proj.agent.add', #????????'schedule':?timedelta(seconds=3), #????????'args':?(16,?16) #????}, #}CELERY_TIMEZONE?=?'UTC'

目前的定時任務是:

add-every-4-s

task指定了相應的任務:proj目錄下agent模塊的add函數

schedule指定了定時工具,這里是celery.schedules的crontab

args是任務的參數


此時我們回到proj所在的目錄中,啟動一個worker:

root@workgroup0:~/celeryapp/configtest#?ls celerybeat-schedule??logging??proj root@workgroup0:~/celeryapp/configtest#?celery?-A?proj?worker?--loglevel=INFO /usr/local/lib/python2.7/dist-packages/celery/platforms.py:766:?RuntimeWarning:?You?are?running?the?worker?with?superuser?privileges,?which?is absolutely?not?recommended!Please?specify?a?different?user?using?the?-u?option.User?information:?uid=0?euid=0?gid=0?egid=0uid=uid,?euid=euid,?gid=gid,?egid=egid,--------------?celery@workgroup0.hzg.com?v3.1.17?(Cipater) ----?****?-----? ---?*?***??*?--?Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty --?*?-?****?---? -?**?----------?[config] -?**?----------?.>?app:?????????proj:0x7f0027635510 -?**?----------?.>?transport:???amqp://guest:**@localhost:5672// -?**?----------?.>?results:?????amqp://guest@loaclhost// -?***?---?*?---?.>?concurrency:?1?(prefork) --?*******?----? ---?*****?-----?[queues]--------------?.>?celery???????????exchange=celery(direct)?key=celery[tasks].?proj.agent.add.?proj.agent.mul.?proj.agent.writefile.?proj.agent.xsum[2015-05-24?15:00:37,873:?INFO/MainProcess]?Connected?to?amqp://guest:**@127.0.0.1:5672// [2015-05-24?15:00:37,940:?INFO/MainProcess]?mingle:?searching?for?neighbors [2015-05-24?15:00:38,980:?INFO/MainProcess]?mingle:?all?alone [2015-05-24?15:00:39,021:?WARNING/MainProcess]?celery@workgroup0.hzg.com?ready.

worker啟動成功,此時再開一個終端,啟動beat服務:

root@workgroup0:~/celeryapp/configtest#?celery?-A?proj?beat?-s?celerybeat-schedule?#這里的celerybeat-schedule指定一個記錄文件celery?beat?v3.1.17?(Cipater)?is?starting. __????-????...?__???-????????_ Configuration?->.?broker?->?amqp://guest:**@localhost:5672//.?loader?->?celery.loaders.app.AppLoader.?scheduler?->?celery.beat.PersistentScheduler.?db?->?celerybeat-schedule.?logfile?->?[stderr]@%INFO.?maxinterval?->?now?(0s) [2015-05-24?15:02:53,761:?INFO/MainProcess]?beat:?Starting... [2015-05-24?15:03:00,000:?INFO/MainProcess]?Scheduler:?Sending?due?task?add-every-1-min?(proj.agent.add)#已經相隔1min了[2015-05-24?15:04:00,066:?INFO/MainProcess]?Scheduler:?Sending?due?task?add-every-1-min?(proj.agent.add)

返回看看worker的輸出:

[2015-05-24?15:01:50,827:?INFO/MainProcess]?Task?proj.agent.add[9b6f962a-9b66-4fde-916f-fc5a951ad599]?succeeded?in?0.0342152439989s:?{'value':?'32'} [2015-05-24?15:02:24,923:?INFO/MainProcess]?Received?task:?proj.agent.add[e4b9840b-09f6-4db6-88c1-2a418b11d393] [2015-05-24?15:02:24,947:?INFO/MainProcess]?Task?proj.agent.add[e4b9840b-09f6-4db6-88c1-2a418b11d393]?succeeded?in?0.0200459280004s:?{'value':?'32'} [2015-05-24?15:03:00,015:?INFO/MainProcess]?Received?task:?proj.agent.add[98f44dd1-e6e2-4457-bfd6-ff59d0ee6d2f] [2015-05-24?15:03:00,031:?INFO/MainProcess]?Task?proj.agent.add[98f44dd1-e6e2-4457-bfd6-ff59d0ee6d2f]?succeeded?in?0.0125673500006s:?{'value':?'32'}

這就是周期性任務的執行。


遇到的坑:

在配置文件中,from __future__ import absolute_import這一行很關鍵,如果沒有這一行,

from?celery.schedules?import?crontab

這個命令執行時會報錯,celery beat無法正常啟動。


補充:

默認情況下,celery beat使用UTC時區,你也可以配置其他時區:

CELERY_TIMEZONE?=?'Europe/London'


關于設置任務執行周期,你可以通過datetime的timedelta設置,可以讓任務執行間隔精確到秒,相應的配置如下:

CELERYBEAT_SCHEDULE?=?{'add-every-2-seconds':?{'task':?'proj.agent.add','schedule':?timedelta(seconds=3),'args':?(16,?16)}, }

也可以用crontab風格的:

CELERYBEAT_SCHEDULE?=?{#?Executes?every?Monday?morning?at?7:30?A.M'add-every-1-min':?{'task':?'proj.agent.add','schedule':?crontab(),'args':?(16,?16),}, }


關于一個CELERYBEAT_SCHEDULE的可以配置的參數,以及crontab的詳細示例,請參見celery官方文檔。


關于啟動celery beat的tips,我這里只貼原文:

Starting the Scheduler

To start the?celery beat?service:

$?celery?-A?proj?beat

You can also start embed?beat?inside the worker by enabling workers?-B?option, this is convenient if you will never run more than one worker node, but it’s not commonly used and for that reason is not recommended for production use:

$?celery?-A?proj?worker?-B

Beat needs to store the last run times of the tasks in a local database file (namedcelerybeat-schedule?by default), so it needs access to write in the current directory, or alternatively you can specify a custom location for this file:

$?celery?-A?proj?beat?-s?/home/celery/var/run/celerybeat-schedule


轉載于:https://my.oschina.net/hochikong/blog/419191

總結

以上是生活随笔為你收集整理的#celery#周期性任务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩欧美在线视频播放 | 2021av| 黄色观看网站 | 亚洲综合一区中 | 欧美做受xxxxxⅹ性视频 | 欧美7777| 毛片网站视频 | 一级特黄特色的免费大片视频 | 午夜精品免费视频 | 久久久久久久久免费视频 | 99热3| 国产精品久久久久久久久久久新郎 | 亚洲精品丝袜 | 黄色三极片 | 97caop| 91精品一区二区 | 动漫美女舌吻 | 理论片中文字幕 | 天堂а√在线最新版中文在线 | 色噜噜亚洲| 手机成人免费视频 | 亚洲一区二区动漫 | 日韩美女毛片 | 免费观看全黄做爰的视频 | 亚洲欧美日韩中文字幕在线观看 | 中国在线观看视频高清免费 | 草草在线影院 | 欧美日韩国产精品一区二区三区 | 成人av教育| 69久久久久久| 天天操穴| 天天操夜夜摸 | 欧美综合一区二区三区 | 日本少妇全体裸体洗澡 | 又色又爽又黄无遮挡的免费视频 | 综合天堂av久久久久久久 | 天堂影音 | 久久精品香蕉 | 午夜寂寞自拍 | 日韩欧美国产电影 | 欧美成人女星 | 国产精品偷伦视频免费看 | 手机在线免费看av | 日本三级黄在线观看 | 毛片网站在线免费观看 | 男人的天堂在线播放 | 久久日本精品字幕区二区 | 亚洲午夜无码久久久久 | 青青草原亚洲视频 | 婷婷中文网| 亚洲天堂国产 | 国产色自拍 | 亚洲国产一区二区三区a毛片 | 中文字幕av不卡 | 男女激情实录 | 日韩手机在线观看 | 日韩视频播放 | 中文字幕不卡av | 偷拍精品一区二区三区 | 亚洲综合五月天 | 久久精品中文闷骚内射 | 手机在线免费看av | a视频免费看 | 黄色成人在线观看 | 四虎成人网 | 亚洲一级黄色片 | 中文字幕一区二区三区5566 | 日韩人妻一区二区三区 | 国产精品乱码一区二区视频 | 就去色综合 | av福利在线看 | 91福利视频网 | 超碰97人人爱| 中文字幕一区二区三区四区不卡 | 亚洲综合欧美 | 中文字幕一区二区三区免费 | 在线免费观看a级片 | 中文字幕福利视频 | 亚洲国产av一区二区三区 | av55 | 免费高清av在线看 | 欧美亚洲一区二区在线观看 | 亚洲精品中文字幕在线 | 成年人激情网站 | 久久久噜噜噜www成人网 | 色哟哟免费在线观看 | 亚洲精选av | 亚洲精品视频在线观看免费视频 | 亚洲第一精品在线 | 精品国产91久久久久久 | 精品美女视频 | 欧美xxxbbb | 毛片无码一区二区三区a片视频 | 亚洲乱码国产乱码精品天美传媒 | 在线免费观看黄色小视频 | 日韩欧美国产一区二区 | 亚洲第一黄色网 | 亚洲爱情岛论坛永久 | 欧美日韩高清免费 | 美丽的姑娘在线观看免费 |