2017-11-03 4 views
1

셀레 리 4.1을 사용하고 있으며 crontab 작업에서 시간을 설정하는 경우를 제외하고 모든 주기적 작업이 올바르게 작동합니다. 나는 그것이 시간대 설정과 관련이 있다고 생각했지만 문제가있는 곳에서는 해결할 수없는 것 같습니다.샐러리가 시간을 설정할 때 crontab 작업을 보내지 않음

대시 보드/celery.py이 작동

from __future__ import absolute_import, unicode_literals 
from celery import Celery 

app = Celery('dashboard', 
     broker='redis://', 
     backend='redis://localhost', 
     include=['dashboard.tasks']) 

app.conf.update(
    result_expires=3600, 
    enable_utc = False, 
    timezone = 'America/New_York' 
) 


if __name__ == '__main__': 
    app.start() 

는 :

@app.task 
@periodic_task(run_every=(crontab())) 
def shutdown_vms(): 
    inst = C2CManage(['stop','kube']) 
    inst.run() 
    return 

이 작동 :

@app.task 
@periodic_task(run_every=(crontab(minute=30,hour='*'))) 
def shutdown_vms(): 
    inst = C2CManage(['stop','kube']) 
    inst.run() 
    return 

이 작동하지 않습니다

@app.task 
@periodic_task(run_every=(crontab(minute=30,hour=6))) 
def shutdown_vms(): 
    inst = C2CManage(['stop','kube']) 
    inst.run() 
    return 

비트가 잘 작업 집어 :

<ScheduleEntry: dashboard.tasks.shutdown_vms dashboard.tasks.shutdown_vms() <crontab: 30 6 * * * (m/h/d/dM/MY)> 

을하지만 결코 그것을 보내지 않습니다. 프로세스가 주말에 실행되도록하고 작업을 제출하지 않습니다. 내가 뭘 잘못하고 있는지 모르겠다. timedelta 주기성에서 실행되는 다른 작업이 있으며 모두 완벽하게 작동합니다.

도움이 될 것입니다.

EDIT : 호스트는 America/New_York 시간대를 사용하도록 설정됩니다.

EDIT2 : 별도의 프로세스로 비트를 실행 :

celery -A dashboard worker -l info 

celery -A dashboard beat -l debug 

내가 주로 분리를 실행하거나 멀티 사용합니다.

답변

0

이 버그가 원인 인 것 같습니다. UTC를 사용하지 않을 경우 예약이 제대로 계산되지 않은 것을 나타냅니다

https://github.com/celery/celery/issues/4177

그리고 몇몇 다른 사람.

전환 된 셀러리가 표준 시간대로 UTC를 사용하고 utc를 사용할 수 있으며 정상적으로 작동합니다.

1

나는 정말 셀러리의 개발팀은 백엔드 종류 (12), 이국적인를 추가 할 수있는 세상의 모든 시간이 날 irks ... 4.0.1

+0

너무 나를 위해 그것을 고정 사용 셀러리 ==하여이 문제를 해결 xyz 기능을 사용하고 이제 전체 설정 이름 지정 규칙을 '소문자'로 변경하여 마치 샐러리가 주 목적으로 안정적으로 유지되지 않을 때 누군가를 돕는 것처럼 - 시간에 맞춰 작업을 실행합니다. –

+0

나를 위해 셀레 리 4.1에서 시작하여 UTC를 사용하는 것이 좋은 해결책이었습니다. 당신이 일하는 데 도움이되는 것은 무엇이든간에가는 길입니다. 나는 일의 "우선 순위"에 대해 동의하지만, 사람들이 여가 시간에 물건을 지원할 때 불평하기는 어렵다 ... – Drew

+0

셀레 리 4.1을 사용하고 UTC 시간대를 설정하면 시간이 올바르지 않다. UTC 시간 – guangyao

관련 문제