1,生成worker并执行任务
celery worker -A s1 -l info -n workerA.%h celery worker -A s1 -l info -n workerB.%h
如果想要执行指定的任务 需要:
celery -A tasks worker -l info -n workerA.%h -Q for_task_A celery -A tasks worker -l info -n workerB.%h -Q for_task_B
经过测试,如果不指定任务,那么将分配随机的worker去执行queue任务队列中的任务
2,celery 架构
Celery Beat:任务调度器,Beat进程会读取配置文件的内容,周期性地将配置中到期需要执行的任务发送给任务队列。
Celery Worker:执行任务的消费者,通常会在多台服务器运行多个消费者来提高执行效率。
Broker:消息代理,或者叫作消息中间件,接受任务生产者发送过来的任务消息,存进队列再按序分发给任务消费方(通常是消息队列或者数据库)。
Producer:调用了Celery提供的API、函数或者装饰器而产生任务并交给任务队列处理的都是任务生产者。
Result Backend:任务处理完后保存状态信息和结果,以供查询。Celery默认已支持Redis、RabbitMQ、MongoDB、Django ORM、SQLAlchemy等方式。
3,celery命令列表
Options(选项):
-A APP, --app=APP app instance to use (e.g. module.attr_name)-本次操作使用的App实例。
-b BROKER, --broker=BROKER -消息代理(服务器),用于传递数据的URL。
url to broker. default is 'amqp://guest@localhost//'
--loader=LOADER name of custom loader class to use. - 自定义载入类的名称。
--config=CONFIG Name of the configuration module-配置模块的名称。
--workdir=WORKING_DIRECTORY- 工作目录。
Optional directory to change to after detaching.
-C, --no-color -非彩色显示。
-q, --quiet -静默执行。
--version show program's version number and exit-显示版本号。
-h, --help show this help message and exit -显示本帮助。
关于一些坑!!!https://www.jianshu.com/p/807efde55d81
cel.conf.imports = ['celery_task.s1']