CELERY 定时任务

CELERY 定时任务,第1张

Celery是一个强大的分布式任务队列,他可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行。通常用来实现异步任务和定时任务。异步任务比如发送邮件,文件上传图像处理等;定时任务就是需要在特定时间执行的任务。

a. 创建Celery实例

b. 启动Celery Worker,通过delay()或者apply_async()将任务发布到broker

c. 应用程序调用异步任务

d. 存储结果

Celery Beat: 任务调度器,Beat进程会读取配置文件的内容,周期性的将配置中到期需要执行的任务发送给任务队列

a. 创建Celery实例

b. 配置文件中配置任务,发送任务 celery -A xxx beat

c. 启动Celery Worker celery -A xxx worker -l info -P eventlet

d. 存储结果

如果大写的话,需要写成:

在celery_task同级目录下,执行命令:

celery -A celery_task beat

在celery_task同级目录下,执行命令:

celery -A celery_task worker -l info -P eventlet

可以看到输出:

如果同时在<b>两个虚拟环境(服务器)</b>中都执行定时任务,都可以看到有以上LOG打印。

发布任务

celery -A celery_task beat

执行任务

celery -A celery_task worker -l info -P eventlet

将以上两条合并

celery -B -A celery_task worker

后台启动celery worker进程

celery multi start work_1 -A appcelery

停止worker进程,如果无法停止,加上-A

celery multi stop WORKNAME

重启worker进程

celery multi restart WORKNAME

查看进程数

celery status -A celery_task

优先级 实时:占用全部可用资源,可用资源不足时,优先使用高、较高(高于标准,后同)、一般、较低、自由等级的程序占用的资源 高:占用可用资源,可用资源不足时,占用较高一般较低自由的资源,且会让步自身占用资源给实时级别的程序。 较高:……(同上,省去不打了),占用一般较低自由的资源,…… 一般:……,占用较低自由级别的程序占用的资源,…… 较低:……,占用自由级别程序占用的资源,…… 自由:仅在其他程序资源全部充足情况下可以自由获取资源占用,否则将让步自身占用的资源给其他程序

运行 worker

celery -A proj worker -l info

运行 app

python manage.py runserver 0.0.0.0:8000

然后你打开浏览器的地址

输入刚才的账号密码就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11728381.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存