簡體   English   中英

Celery Beat args:列表與元組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM