【celery】执行celery定时任务

场景:在虚拟机上执行 python + django +celery + redis 的定时任务

启动redis服务后,打开两个终端,都进入到项目根目录下,各自执行指令:celery -A celery_app worker -l info -n worker 和 celery -A celery_app beat -l info
(也可只开启一个终端,将两条指令合并执行:celery -A celery_app worker -B -l info)

  • celery -A celery_app worker -l info -n worker
    #表示启动一个celery worker,即执行任务的消费者,执行celery beat发起的任务,-A 设置应用名称 -n 设置worker名字,-l info 表示日志级别为“info”,也可 表示为–loglevel=info

  • celery -A celery_app beat -l info
    #启动任务调度器celery beat,周期性地执行任务
    当出现如下界面表示执行成功
    在这里插入图片描述

可能遇到的问题:如果在执行过程中,定时任务突然退出,并报以下错误,错误显示,没有权限访问一些目录文件
在这里插入图片描述

解决方案:
1)关闭当前redis服务(在step 3中有描述如何关闭)
2)以root用户执行启动redis命令,或者在当前用户下在启动命令前加sudo
sudo redis-server redis.conf

PS:关于redis的启动与关闭,可参考https://editor.csdn.net/md/?articleId=108266758