目录
一、创建django项目
二、安装依赖包
APScheduler
uWSGI
三、编写job函数
from apscheduler.schedulers.background import BackgroundScheduler
import time
scheduler = BackgroundScheduler()
# 定时任务,打印当前的时间
@scheduler.scheduled_job(trigger='interval', seconds=5, id='test')
def test_job():
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
scheduler.start()
1、添加scheduled_job方法
方法一:使用方法
scheduler.add_job(test_job, trigger='interval', seconds=5, id='test')
方法二:使用修饰器
@scheduler.scheduled_job(trigger='interval', seconds=5,id='test')
2、apsheduler内置的触发器
(1)date 日期:触发任务运行的具体日期(只运行一次)
eg:@scheduler.scheduled_job(trigger='date', run_date=datetime.datetime.now(), timezone='UTC', id='test')
(2)interval 间隔:触发任务运行的时间间隔
seconds #间隔几秒
minutes #间隔几分钟
hours #间隔几小时
days #间隔几天
weeks #间隔几周
start_date #开始时间
end_date #结束时间
timezone #时区
eg:@scheduler.scheduled_job(trigger='interval', seconds=5, start_date='2021-05-01 00:00:00', end_date='2021-05-05 23:59:59', timezone='UTC', id='test')
(3)cron 周期:触发任务运行的周期(周期性运行)
year #年
month #月
day #日
week #周
day_of_week #周内 (0-6/mon,tue,wed,thu,fri,sat,sun)
hour #时
minute #分
second #秒
start_date #开始时间
end_date #结束时间
timezone #时区
参数说明:
* 取值范围内的所有数字
/ 每过多少个数字
- 从X到Z
,散列值
eg:每年1-12月第1,2,3,4天,每5秒执行一次
@scheduler.scheduled_job(trigger='cron', year='*',month='1-12',day='1,2,3,4',second='*/5', id='test')
四、配置项目启动自动运行
编辑wsgi.py,末尾处添加 from test_job import job
五、启动项目验证
1、使用pycharm启动验证
2、使用uwsgi启动验证
uwsgi --chdir=./ --wsgi-file=./test_job/wsgi.py --http=127.0.0.1:8000 --master -T