celery

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']
原文地址:https://www.cnblogs.com/Jupiter1994/p/9541831.html