celery 常用执行命令详解
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 进程会读取配置文件的内容, 周期性的将配置中到期需要执行的任务发送给任务队列