定时任务在开发中应用广泛,几乎所有开发人员都会接触到。实现定时任务的方法有很多,其中celery的定时任务功能强大且使用简便,只需安装celery即可。以下是使用celery实现定时任务的详细步骤。
一. 搭建Celery定时任务架构
在项目中合适的位置新建一个定时任务目录
,在该目录下创建、和三个文件,分别用于编写配置代码、定时任务实现代码和任务函数代码。
二. 编写代码实现定时任务
- 在中编写配置代码
- 在中编写任务函数代码
- 在中调用任务,并实现定时任务功能
}
实现定时任务的另一种方式
@app.on_after_configure.connect def setup_periodic_tasks(sender, **kwargs):
sender.add_periodic_task(间隔时间秒, 任务名.s(参数), name=’自定义任务名’)
work为执行任务的进程名字 -A main 指定定时任务的启动函数main -l info 指定日志等级为info -B 将celery定时任务设置为后台守护进程,不占用终端 –logfile=celerylog.log 指定日志保存的文件名,也可指定路径加文件名”’ celery multi start work -A main -l info -B –logfile=celerylog.log
停止定时任务时,将start换成stop
celery multi stop work -A main -l info -B –logfile=celerylog.log
重启定时任务,将start换成restart
celery multi restart work -A main -l info -B –logfile=celerylog.log
在Celery的使用场景中,无论是实现异步任务还是定时任务,基本都会依赖命令来启动和停止任务,因此Celery的命令非常多。了解更多Celery的命令可以到文档中查看。Celery documentation:
https://www.php.cn/link/f82eedc57df33f85b6938f71ed72032f
也可以在终端输入
查看帮助信息。
Windows Bug:
。在中尝试导入模块“resource”时失败,这个模块不支持Windows,因此定时任务应该部署在Linux系统上。