2017-10-05 524 views
0

即時通過celerybeat時間表傳遞參數給我的函數有問題。搜索後,看起來好像我應該能夠通過它們與args命令,但即時通過下面的錯誤。任何人都可以將我指向正確的方向嗎?celerybeat如何通過調度器將參數傳遞給函數?

CELERYBEAT_SCHEDULE = { 
    'maintenance_mail_1_day': { 
     'task': 'home.tasks.maintenance_mail', 
     'schedule': crontab(hour='15'), 
     'args' : (1), 
    }, 
    'maintenance_mail_3_day': { 
     'task': 'home.tasks.maintenance_mail', 
     'schedule': crontab(hour='15'), 
     'args' : (3), 
    },  
    'maintenance_mail_5_day': { 
     'task': 'home.tasks.maintenance_mail', 
     'schedule': crontab(hour='15'), 
     'args' : (5), 
    }, 
    'maintenance_mail_7_day': { 
     'task': 'home.tasks.maintenance_mail', 
     'schedule': crontab(hour='15'), 
     'args' : (7), 
    } 

任務,PY

@app.task 
def maintenance_mail(days): 
    return send_maintnance_emails(days) 
+0

你會得到什麼錯誤? –

+0

參數必須是一個元組:做'args':(1,)'(注意額外的逗號) – schwobaseggl

回答

1

下在Python成立:(1) == 1

爲了讓單身tuple,添加一個額外的逗號:(1,)並相應地在您的設置:

# ... 
'args' : (1,), 
# ... 
相關問題