2017-10-05 18 views
0

메리 비트를 통해 내 함수에 인수를 전달하는 데 문제가 있습니다. 검색 한 후에 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), 
    } 

작업 평

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

어떤 오류가 발생합니까? –

+0

arg는 튜플이어야합니다 : do args : (1,)'(여분의 쉼표에주의하십시오) – schwobaseggl

답변

1

다음은 파이썬에서 원하는 분야 (1) == 1, 그것은 싱글 tuple 수 있도록 여분의 쉼표를 추가하려면

: (1,)을하고 그에 따라 설정에서 :

# ... 
'args' : (1,), 
# ...