一、背景
在 Python 的众多优秀库中,Celery 是一个强大的分布式任务队列框架,它能帮助我们轻松地在后台异步执行任务,特别适用于那些需要在特定时间或间隔内运行的任务,比如定时发送邮件、定期数据处理等。
在目前流行的自动化测试平台中,Celery也是必不可少的一环,通常用于开发实现定时运行自动化测试任务。本文将向你展示新手如何一步步创建一个简单的 Celery Demo,帮助理解如何在测试平台中使用 Celery 来完成定时任务的调度。
二、环境准备
2.1 新建Pycharm工程
新建一个项目名称为:celery_test
2.2 安装依赖
Pycharm的Terminal终端下,安装 Celery 和 Redis
pip install celery redis
2.3 启动Redis
Pycharm的Terminal终端下,输入下面的命令启动Redis:
redis-server
- 三、创建 Celery 项目3.1 创建
- 顺带说一下crontab表达式接受的入参格式,方便大家可以自由进行各类设置:minute 表示分钟,接收整数或者整数列表,范围在0-59,或者字符串表示配置的时间模式hour 表示小时,接收整数或者整数列表,范围在0-23,或者接收字符串表示配置的时间模式day_of_week 表示周几,接收整数或者整数列表,范围在0-6,其中周日是0,周六是6,或者接收字符串表示配置的时间模式day_of_month 表示一个月的第几天,接收整数或者整数列表,范围在1-31,或者接收字符串表示配置的时间模式month_of_year 表示一年的第几个月,接收整数或者整数列表,范围在1-12,或者接收字符串表示配置的时间模式常用示例:指定某一些分钟,比如分别在 14点15分,14点30分,14点45分钟分别执行一次,可以如下操作:crontab(minute="15,30,45", hour=14)14点之内,每隔5分钟执行一次函数,可以如下操作:crontab(minute="/5", hour=14)指定0点,8点,12点,18点的零分执行一次:crontab(minute=0, hour="0,8,12,18")每个小时执行一次:crontab(minute=0, hour="/1")每2个小时执行一次:crontab(minute=0, hour="*/2")周一,周三,周五三天的零点执行一次:crontab(minute=0, hour=0, day_of_week="1,3,5")每个月的1号,5号,10号的零点执行一次:crontab(minute=0, hour=0, day_of_month="1,5,10")九、总结总结一下,本篇文章主要讲解了如何使用从零到一,使用Python Celery库,实现按指定时间间隔(每隔10秒钟)调用某一个方法,以及按指定时间(每天的14:30)调用某一个方法。主要内容包括:环境准备创建项目运行 Celery Worker运行主程序主程序报错解决创建按时间间隔调度的定时任务创建按每天指定时间调度的定时任务按指定时间调度的定时任务不生效问题解决crontab表达式常用说明