2016-07-12 1 views
0

나는 영어가 능숙하지 않아 내 문장을 이해할 수 없다면 나에게 의견을 나눠주세요.셀리 정기적 인 작업으로 장고에 asnyc

나는 정기적 인 작업을 위해 장고를 사용한다.

CELERYBEAT_SCHEDULE = { 
    'send_sms_one_pm': { 
     'task': 'tasks.send_one_pm', 
     'schedule': crontab(minute=0, hour=13), 
    }, 
    'send_sms_ten_am': { 
     'task': 'tasks.send_ten_am', 
     'schedule': crontab(minute=0, hour=10), 
    }, 
    'night_proposal_noti': { 
     'task': 'tasks.night_proposal_noti', 
     'schedule': crontab(minute=0, hour=10) 
    }, 
} 

이 내 셀러리 일정 내가 셀러리 큐 레디 스를 사용합니다.

문제는 가장 큰 작업이 시작될 때 다른 작업이 보류 중입니다. 최대 작업은 10 시간 동안 처리되고 다른 작업은 10 시간 후에 시작됩니다.

나의 작업은 내가 찾은

@app.task(name='tasks.send_one_pm') 
def send_one_pm(): 

처럼, 셀러리가) (나 task.apply_asnyc 제공하지만,주기적인 작업 asnyc 작업을 할 수 있습니다 찾을 수 없습니다 보인다.

그래서 셀러리의주기적인 작업이 asnyc 작업으로 작동 할 수 있음을 알고 싶습니다. 제 샐러리 작업자는 8 명입니다.

답변

0

설정에 CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'을 할당 했습니까? 하나의 작업이 다른 한 후 실행할 시작 당신이 원하는 경우, 링크 kwargs으로 apply_asnyc()를 사용해야합니다, 그것은 다음과 같습니다

res=[signature(your_task.name, args=(...), options=kwargs, immutable=True),..] 
task.apply_async((args), link=res) 
관련 문제