У меня есть простой Django сельдерей задачи, как:Почему график Django-Celery длится ETA?
@task(name="upload_file_to_cdn", max_retries=10)
def upload_file_to_cdn(file_id):
stuff
Когда я запускаю это через оболочку Джанго:
./manage shell
from myapp.tasks import upload_file_to_cdn
upload_file_to_cdn.apply_async(args=(123,))
отчеты Сельдерей он работает сразу:
tail -f /var/log/celeryd.log
[2014-01-02 22:54:18,694: INFO/MainProcess] Received task: tasks.upload_file_to_cdn[6e58b72b-8832-427d-a6b8-574f71ac9baa]
[2014-01-02 22:54:18,698: DEBUG/MainProcess] Task accepted: tasks.upload_file_to_cdn[6e58b72b-8832-427d-a6b8-574f71ac9baa] pid:5007
[2014-01-02 22:54:18,714: WARNING/Worker-1] Uploading file 123...
Однако, когда Я запускаю ту же самую строку upload_file_to_cdn.apply_async(args=(123,))
из вида Django, все, что я вижу в celeryd.log:
[2014-01-02 22:47:04,006: INFO/MainProcess] Received task: tasks.upload_file_to_cdn[cb8be827-4604-4aa8-81b0-879657827e63] eta:[2014-01-03 03:47:19.004160-05:00]
Как вы можете видеть, он не только сразу же запускает задачу, но и устанавливает ETA примерно через 6 часов! Почему это?
Я не знаю, но предположим, что вы каким-то образом настроили его, так как нет обратного отсчета по умолчанию, используемого djcelery. – asksol