Задание Django Celery несколько раз истекало без каких-либо вызовов, как только начинался сельдерей - PullRequest
0 голосов
/ 27 мая 2018

Я использовал сельдерей в Джанго.Запланированное задание сельдерея непрерывно истекло, как только начался сельдерей.На самом деле я ожидал, что эта задача будет выполнена вручную.Я не вижу причин, по которым та же самая задача истекла бесконечно без каких-либо опций после запуска "celery -A proj worker -l info -BE".Я произвел чистку, но это случилось снова.

[2018-05-27 18:37:22,466: INFO/Beat] beat: Starting...
[2018-05-27 18:37:22,479: INFO/Beat] Writing entries...
[2018-05-27 18:37:22,543: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2018-05-27 18:37:22,595: INFO/MainProcess] mingle: searching for neighbors
[2018-05-27 18:37:22,679: INFO/Beat] DatabaseScheduler: Schedule changed.
[2018-05-27 18:37:22,679: INFO/Beat] Writing entries...
[2018-05-27 18:37:22,727: INFO/Beat] Scheduler: Sending due task ex_rate_update_task (celery_task.tasks.updateInfo)
[2018-05-27 18:37:22,731: WARNING/Beat] scehduled >
[2018-05-27 18:37:22,732: WARNING/Beat] => update_task :
[2018-05-27 18:37:22,732: WARNING/Beat] 2018-05-27 18:37:22.730208
[2018-05-27 18:37:22,733: INFO/Beat] Task celery_task.updateInfo[54b6ab8d-d8ce-4806-a5d6-70860d75eb02] succeeded in 0.0034391450171824545s: None
[2018-05-27 18:37:22,734: INFO/Beat] Writing entries...
[2018-05-27 18:37:22,754: INFO/Beat] Scheduler: Sending due task ex_rate_update_task (celery_task.tasks.updateInfo)
[2018-05-27 18:37:22,757: WARNING/Beat] scehduled >
[2018-05-27 18:37:22,757: WARNING/Beat] => update_task :
[2018-05-27 18:37:22,757: WARNING/Beat] 2018-05-27 18:37:22.756909
[2018-05-27 18:37:22,757: INFO/Beat] Task celery_task.updateInfo[4acdf40b-c4a4-4551-ab57-f1f9671abc82] succeeded in 0.0010353299730923027s: None
[2018-05-27 18:37:22,759: INFO/Beat] Scheduler: Sending due task ex_rate_update_task (celery_task.tasks.updateInfo)
[2018-05-27 18:37:22,760: WARNING/Beat] scehduled >
[2018-05-27 18:37:22,760: WARNING/Beat] => update_task :
[2018-05-27 18:37:22,764: WARNING/Beat] 2018-05-27 18:37:22.760353
[2018-05-27 18:37:22,764: INFO/Beat] Task celery_task.updateInfo[ba6ddfa9-b1f7-4d4f-972e-6bef96ddb0d3] succeeded in 0.004193355998722836s: None
[2018-05-27 18:37:22,766: INFO/Beat] Scheduler: Sending due task celery_task.updateInfo (celery_task.tasks.updateInfo)
[2018-05-27 18:37:22,767: WARNING/Beat] scehduled >
[2018-05-27 18:37:22,768: WARNING/Beat] => update_task :
[2018-05-27 18:37:22,768: WARNING/Beat] 2018-05-27 18:37:22.767552
[2018-05-27 18:37:22,769: INFO/Beat] Task celery_task.updateInfo[7f36b3f8-250e-4ed1-8490-9aeb8bdc8b58] succeeded in 0.001550107990624383s: None
[2018-05-27 18:37:22,771: INFO/Beat] Scheduler: Sending due task celery_task.updateInfo (celery_task.tasks.updateInfo)
[2018-05-27 18:37:22,772: WARNING/Beat] scehduled >
[2018-05-27 18:37:22,773: WARNING/Beat] => update_task :
[2018-05-27 18:37:22,773: WARNING/Beat] 2018-05-27 18:37:22.772135
[2018-05-27 18:37:22,774: INFO/Beat] Task celery_task.updateInfo[128f4b24-abd5-4356-8e49-abe452862b03] succeeded in 0.0021281989756971598s: None
[2018-05-27 18:37:22,776: INFO/Beat] Scheduler: Sending due task celery_task.updateInfo (celery_task.tasks.updateInfo)
[2018-05-27 18:37:22,782: WARNING/Beat] scehduled >
[2018-05-27 18:37:22,783: WARNING/Beat] => update_task :
[2018-05-27 18:37:22,783: WARNING/Beat] 2018-05-27 18:37:22.782599
[2018-05-27 18:37:22,783: INFO/Beat] Task celery_task.updateInfo[a111ebac-1789-4146-bb2f-456c11523e5b] succeeded in 0.0013831660035066307s: None
[2018-05-27 18:37:22,785: INFO/Beat] Scheduler: Sending due task celery_task.updateInfo (celery_task.tasks.updateInfo)
[2018-05-27 18:37:22,786: WARNING/Beat] scehduled >
[2018-05-27 18:37:22,786: WARNING/Beat] => update_task :
[2018-05-27 18:37:22,787: WARNING/Beat] 2018-05-27 18:37:22.786397
[2018-05-27 18:37:22,787: INFO/Beat] Task celery_task.updateInfo[8e4968ef-63e6-4c89-840d-7b6896e2527a] succeeded in 0.0011660069867502898s: None
[2018-05-27 18:37:22,793: INFO/Beat] Scheduler: Sending due task celery_task.updateInfo (celery_task.tasks.updateInfo)
[2018-05-27 18:37:22,795: WARNING/Beat] scehduled >
[2018-05-27 18:37:22,796: WARNING/Beat] => update_task :
[2018-05-27 18:37:22,796: WARNING/Beat] 2018-05-27 18:37:22.794904
[2018-05-27 18:37:22,796: INFO/Beat] Task celery_task.updateInfo[32bfea36-1c43-42db-852b-86ebd3415f68] succeeded in 0.002016467013163492s: None
[2018-05-27 18:37:22,798: INFO/Beat] Scheduler: Sending due task celery_task.updateInfo (celery_task.tasks.updateInfo)
[2018-05-27 18:37:22,798: WARNING/Beat] scehduled >
[2018-05-27 18:37:22,798: WARNING/Beat] => update_task :
[2018-05-27 18:37:22,799: WARNING/Beat] 2018-05-27 18:37:22.798665
[2018-05-27 18:37:22,799: INFO/Beat] Task celery_task.updateInfo[24b58f54-7f50-4e1a-ab31-1e61514c7b87] succeeded in 0.0008888209995348006s: None
[2018-05-27 18:37:22,800: INFO/Beat] Scheduler: Sending due task celery_task.updateInfo (celery_task.tasks.updateInfo)
[2018-05-27 18:37:22,801: WARNING/Beat] scehduled >
[2018-05-27 18:37:22,801: WARNING/Beat] => update_task :
[2018-05-27 18:37:22,801: WARNING/Beat] 2018-05-27 18:37:22.801377
.
.
.

Я вообще не запускал никаких задач.Но когда я начинаю сельдерея, задачи истекают бесконечно автоматически.Я не знаю, почему это радует.Я изменил Часовой пояс, UTC, но он не работал.

Ниже приведены параметры celery_settings

app.conf.update(
    CELERY_IMPORTS=(
        'celery_task.crawl.tasks',
    ),
    CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672//',
    CELERY_ACCEPT_CONTENT = ['json'],
    CELERY_RESULT_BACKEND = 'db+sqlite:///results.sqlite',
    CELERYBEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler',
    CELERY_TASK_SERIALIZER = 'json',
    CELERY_RESULT_SERIALIZER = 'json',
    USE_TZ = True,
    CELERY_ENABLE_UTC = False,
    CELERY_TIMEZONE = 'Asia/Seoul',
    CELERY_ALWAYS_EAGER = True,
)

Ниже приведен код задачи

from celery import current_app
from celery import Celery
from celery.schedules import crontab
from project.celery_settings import app
from celery import shared_task, task

import datetime

app = current_app._get_current_object()

@app.on_after_finalize.connect
def setup_periodic_tasks(sender=app, **kwargs):
    print('>> setup_periodic_task - started ', app)
    #from celery_task.crawl.tasks import updateExRates
    task_id = sender.add_periodic_task(
        crontab(minute='*/3'),
        updateInfo.s('=> update_task : '),
        name='ex_rate_update_task',
    )
    print('>> setup_periodic_task : ', task_id, ' time: ', datetime.datetime.now())

@app.task
def updateInfo(arg):
    print('scehduled > ', arg, datetime.datetime.now()

)

Информация о версии следующая.

django 2.0.5
celery 4.1.1
django_celery_beat 1.1.1
python 3.6

Если есть кто-нибудь, кто решил эту проблему, пожалуйста, скажите мне, как ее решить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...