supervisor
아래 셀러리 비트는 샐리 직원에게 장고 앱을 주기적으로 제공합니다. 나는 task1
, task2
, task3
및 task4
의 4 가지 작업을 가지고 있습니다. 최근 나는 다섯 번째 과제를 만들었습니다 : task5
.셀러리가 오래된 (제거 된) 작업을 수행합니다.
내 문제는 내가 내 직원으로부터 task5
을 주석 처리하고 settings.py에서 해당 언급을 삭제하고 셀러리 비트와 셀러리 작업을 다시 시작했다는 것입니다. 그러나 나는 여전히 task5
이 주기적으로 나타나고 있음을 알았다.
왜 이런 일이 발생하며 정기적 인 작업을 어떻게 업데이트 할 수 있습니까? settings.py에서
, 내가 가진 :
command=python manage.py celery beat -l info
directory = /home/myuser/myproject/
environment=PATH="/home/myuser/envs/myenv/bin",VIRTUAL_ENV="/home/myuser/envs/myenv",PYTHONPATH="/home/myuser/envs/myenv/lib/python2.7:/home/myuser/envs/myenv/lib/python2.7/site-packages"
user=mhb11
numprocs=1
stdout_logfile = /etc/supervisor/logs/celerybeat.log
stderr_logfile = /etc/supervisor/logs/celerybeat.log
autostart = true
autorestart = true
startsecs=10
stopwaitsecs = 600
killasgroup=true
priority=999
하는 추가 정보를 원하시면 저에게 질문
import djcelery
djcelery.setup_loader()
# config settings for Celery Daemon
# Redis broker
BROKER_URL = 'redis://localhost:6379/0'
BROKER_TRANSPORT = 'redis'
# List of modules to import when celery starts, in myapp.tasks form.
CELERY_IMPORTS = ('myapp.tasks',)
CELERY_ALWAYS_EAGER = False
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
#The backend is the resource which returns the results of a completed task from Celery. 6379 is the default port to the redis server.
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_IGNORE_RESULT=True
from datetime import timedelta
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
CELERYBEAT_SCHEDULE = {
'tasks.task1': {
'task': 'tasks.task1',
'schedule': timedelta(seconds=45),
},
'tasks.task2': {
'task': 'tasks.task2',
'schedule': timedelta(seconds=60), # execute every 60 seconds
'args':(),
},
'tasks.task3': {
'task': 'tasks.task3',
'schedule': timedelta(seconds=90), # execute every 90 seconds
'args':(),
},
'tasks.task4': {
'task': 'tasks.task4',
'schedule': timedelta(seconds=90), # execute every 90 seconds
'args':(),
},
}
/etc/supervisor/conf.d/celerybeat.conf는 다음과 같은 포함 필요한 경우. 미리 감사드립니다.
작업을 삭제/취소하는 데 사용되는 동등한 Django 프로젝트 명령은 무엇입니까? –
나는 django 셀러리를 사용하지 않으므로 잘 모르겠다.하지만 나는 웹상에서'python manage.py celery amqp queue.purge'유용한 것을 발견했다. 당신이 원한다면 ... –
creativeChips
고마워. , 그것을 체크 아웃합니다. –