虛擬環境:django,gevent,celery
項目根目錄下celery_porject
import os
from celery import Celeryos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings')
app = Celery('project',
broker=';'.join([
'amqp://rabbit:rabbit@rabbit_01:5672//mq',
'amqp://rabbit:rabbit@rabbit_02:5672//mq']),
backend='amqp://',
include=['app1.tasks1', 'app2.tasks2'])
app.conf.update(
CELERY_TASK_RESULT_EXPIRES=3600,
CELERY_IGNORE_RESULT=True,
CELERYD_MAX_TASKS_PER_CHILD=300,
CELERY_TASK_SERIALIZER='json'
)
if __name__ == '__main__':
app.start()
run command:/usr/local/envs/project/bin/celery --workdir=/usr/local/project -A celery_project worker -l info -P gevent -c 1000 -Ofair
異步任務前添加:
import psycogreen.gevent
psycogreen.gevent.patch_psycopg()