celery 常用执行命令详解

执行命令

1
celery -A test-1.celery worker -n name-1 --loglevel=info --max-tasks-per-child 500 --autoscale=4,1 -Q q-1

常用参数

参数 说明
-A / –app 要使用的应用程序实例
-n / –hostname 设置自定义主机名
-Q / –queues 指定一个消息队列,该进程只接受此队列的任务
–max-tasks-per-child 配置工作单元子进程在被一个新进程取代之前可以执行的最大任务数量
–max-memory-per-child 设置工作单元子进程被替换之前可以使用的最大内存
-l / –loglevel 定义打印log的等级 DEBUG, INFO, WARNING, ERROR, CRITICAL, FATAL
–autoscale 池的进程的最大数量和最小数量
-c / –concurrency 同时处理任务的工作进程数量,默认值是系统上可用的cpu数量
-B / –beat 定义运行celery打周期任务调度程序
-h / –help help!help!help!

-n / –hostname 参数变量扩展

  • %h: 主机名,包含域名
  • %n: 主机名
  • %d: 域名

如果当前主机名是 test.ubuntu.com,那么会扩展如下

命令 输出值
ttt_%h ttt_test.ubuntu.com
ttt_%n ttt_ubuntu
ttt_%d ttt_ubuntu.com

Celery的生产者和消费者

  • Celery Worker: 执行任务的消费者
  • Producer: 任务生产者. 调用 Celery API , 函数或者装饰器, 而产生任务并交给任务队列处理的都是任务生产者
  • Celery Beat: 任务调度器. Beat 进程会读取配置文件的内容, 周期性的将配置中到期需要执行的任务发送给任务队列