2017-10-05 525 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,), 
# ... 
相关问题