[英]Celery beat args: list vs. tuple
Celery文檔描述了如何將位置參數作為列表或元組傳遞給節拍計划的任務。
我有一個任務,需要一個參數,一個整數列表:
@shared_task
def schedule_by_ids(ids):
...
我的celerybeat時間表如下所示:
CELERYBEAT_SCHEDULE = {
'schedule_by_ids': {
'task': 'myproj.app.tasks.schedule_by_ids',
'schedule': crontab(minute='*/10', hour='8-21'),
'args': ([1,]),
},
}
我的任務失敗,並顯示“ int不可迭代” TypeError
。 根據我的監視器(芹菜花),args作為[1]
通過。
當我將args設為列表時,例如[[1]]
,arg在監視器中顯示為[[1]]
,並且工作正常。
我的問題是:當它是一個元組時,如何傳遞args? 為什么?
([1,])
那不是元組。 在分組括號中僅是[1,]
。 如果要使用1元素元組,則需要像這樣在其中放入逗號,以將其與帶括號的表達式區分開:
([1,],)
我懷疑您可能放錯了逗號,並且您打算這樣做:
([1],)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.