2013-06-26 40 views
5

khi tôi chạy lệnh này để đánh bại cần tây.nhịp cần tây không hoạt động đúng cách

[2013/06/27 02: 17: 05.936: INFO/MainProcess] Celerybeat: Bắt đầu từ ...

[2013/06/27 02: 17: 05.937: INFO/MainProcess] Viết mục ...

[2013-06-27 02: 17: 08,711: INFO/MainProcess] Cơ sở dữ liệuScheduler: Đã thay đổi lịch biểu.

[2013/06/27 02: 17: 08.712: INFO/MainProcess] Viết mục ...

nó bị mắc kẹt trên kết quả này. nhưng trong settings.py của tôi, tôi đã cấu hình CELERYBEAT_SCHEDULE.

CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler" 

from datetime import timedelta 

CELERYBEAT_SCHEDULE = { 
    'add-every-30-seconds': { 
    'task': 'celerytest.tasks.add', 
    'schedule': timedelta(seconds=30), 
    'args': (16, 16) 
    }, 

    'add-every-10-seconds': { 
    'task': 'celerytest.tasks.minus', 
    'schedule': timedelta(seconds=10), 
    'args': (20, 16) 
    }, 

} 

Điều gì xảy ra với nhịp cần tây của tôi?

Trả lời

14

Lệnh celery beat bắt đầu celery scheduler. Quá trình này lên lịch các nhiệm vụ và đặt chúng trong một hàng đợi định kỳ. Nó không thực hiện các nhiệm vụ.

Bạn cần bắt đầu celery beatcelery worker (tôi đoán bạn đang sử dụng django-cần tây):

python manage.py celery beat 
python manage.py celery worker 

Hoặc đơn giản là:

python manage.py celery worker --beat 
+0

tại sao nó rằng nhịp cần tây vẫn tiếp tục gửi công việc ngay cả khi nó chỉ được đặt thành '@periodic_task (run_every = crontab (day_of_month = '1'))'? – user2357067

+1

nếu bạn đang sử dụng DatabaseScheduler, bạn cần phải dọn dẹp cơ sở dữ liệu của bạn, nếu không bạn có thể xóa tập tin «celerybeat-schedule' –

+0

cảm ơn! btw, tôi có thể sử dụng nhiệm vụ tuần hoàn cần tây để sao lưu cơ sở dữ liệu của mình không? – user2357067

Các vấn đề liên quan