1
我每秒都在運行任務,似乎芹菜實際上並沒有執行每項任務的任務。我可以在每秒鐘的任務中使用芹菜嗎?
我想芹菜可能是一個很好的調度每1分鐘的任務,但可能不適合每第二個任務。
這裏的,來說明
我使用下列選項
'schedule': 1.0,
'args': [],
'options': {
'expires': 3
}
而且我用芹菜4.0.0
我每秒都在運行任務,似乎芹菜實際上並沒有執行每項任務的任務。我可以在每秒鐘的任務中使用芹菜嗎?
我想芹菜可能是一個很好的調度每1分鐘的任務,但可能不適合每第二個任務。
這裏的,來說明
我使用下列選項
'schedule': 1.0,
'args': [],
'options': {
'expires': 3
}
而且我用芹菜4.0.0
是我的意思圖片,芹菜實際上處理時間低至1秒,並且可能因爲需要浮動而降低。看到文檔http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html週期性任務此項:
from celery import Celery
from celery.schedules import crontab
app = Celery()
@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
# Calls test('hello') every 10 seconds.
sender.add_periodic_task(10.0, test.s('hello'), name='add every 10')
# Calls test('world') every 30 seconds
sender.add_periodic_task(30.0, test.s('world'), expires=10)
# Executes every Monday morning at 7:30 a.m.
sender.add_periodic_task(
crontab(hour=7, minute=30, day_of_week=1),
test.s('Happy Mondays!'),
)
@app.task
def test(arg):
print(arg)
更好的書面例子可以1/3一路下跌https://github.com/celery/celery/issues/3589發現:
# file: tasks.py
from celery import Celery
celery = Celery('tasks', broker='pyamqp://[email protected]//')
@celery.task
def add(x, y):
return x + y
@celery.on_after_configure.connect
def add_periodic(**kwargs):
celery.add_periodic_task(10.0, add.s(2,3), name='add every 10')
所以sender
是實際芹菜經紀人,即app = Celery()