多任务指定多队列
1、config配置:添加
from kombu import Queue,Exchange
class CeleryConfig(object):
xxxxxxxxxxxx
······CELERY_QUEUES = (
Queue('default', Exchange('default'), routing_key='default'),
Queue('for_task_one', Exchange('for_task_one'), routing_key='for_task_one'),
Queue('for_task_two', Exchange('for_task_two'), routing_key='for_task_two'),
)
CELERY_ROUTES = {
'api.taskone.tasks.*': {'queue': 'for_task_one',
'routing_key': 'for_task_one'},
'api.tasktwo.tasks.*': {'queue': 'for_task_two',
'routing_key': 'for_task_two'}
}
2、tasks 任务
task_one
tasks.py
BROKER_URL = 'redis://localhost:6379/0'
celery = Celery("tasks", broker=BROKER_URL)
celery.config_from_object(CeleryConfig)
@celery.task()
def one_scan(ip):
print ip
task_two
tasks.py
BROKER_URL = 'redis://localhost:6379/0'
celery = Celery("tasks", broker=BROKER_URL)
celery.config_from_object(CeleryConfig)
@celery.task()
def two_scan(ip):
print ip,'ss'
3、终端开启celery
celery -A tasks worker --concurrency=5 -l INFO -n worker_collect -Q for_task_two
celery -A tasks worker --concurrency=5 -l INFO -n worker_collect -Q for_task_one