【django_apscheduler】使用教程

【django_apscheduler】使用教程

安装

1 安装命令

// 使用pip命令
pip install django-apscheduler

2 注册app

在settings.py文件中新增django-apscheduler
在这里插入图片描述

3 创建数据库表

// 注意:不可先引用django_apscheduler中的api方法然后在创建数据表
// 否则执行下述语句的时候会报错表不存在
python manage.py migrate

创建成功后,查看数据库新增2个表

django_apscheduler_djangojob表:定时任务表
django_apscheduler_djangojobexecution表:定时任务执行记录表

项目案例

1注册scheduler实例并启动

// from apscheduler.schedulers.background import BackgroundScheduler
// from django_apscheduler.jobstores import DjangoJobStore, register_events, register_job
scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), 'default')
scheduler.start()

2常用api方法

2.1新建任务

参数说明:
func:job需要执行的方法名称
hour/minute/second:执行时间(时分秒)
name:定时任务的名称
args:定时任务的参数(传递到被调用方法中的)

// An highlighted block
time=13:00:01
time = time.split(':')
hour = int(time[0])
minute = int(time[1])
second = int(time[2])
scheduler.add_job(func, 'cron', hour=hour, minute=minute, second=second, name=name, args=[param1])

func中的参数s即是定时任务重的args参数
在这里插入图片描述

2.2获取所有任务

获取到的定时任务都是job类,需要获取job类中属性值,如:
id:定时任务的ID(唯一性)
next_run_time:该任务下次执行时间(当定时任务被暂停时,此值为空)
name:定时任务的名称
param:创建定时任务时输入的自定义参数

// An highlighted block
list1=[]  
data = scheduler.get_jobs()
for i in data:  # i:获取到的对象
                print(i,type(i)) //打印获取到的定时任务的数据类型,具体格式如下图
                try:
                    next_run_time = datetime.datetime.strftime(i.next_run_time, '%Y-%m-%d %H:%M:%S')  # 将datetime转换成str
                    status = 1
                except:
                    next_run_time = '已暂停'
                    status = 0
                job = {
                    'id': i.id,
                    'name': i.name,
                    'next_run_time': next_run_time,
                    'status': status,
                    'param': i.args
                }
                list1.append(job)       

job格式及数据类型如下:在这里插入图片描述
list1中的数据类型如下:

// id即是定时任务的唯一id
list1->[{'id': '8d68764a12b84e8582ab495cc2fd35a7', 'name': '定时任务名称', 'next_run_time': '2024-03-22 16:30:00', 'status': 1, 'param': ''}]

2.3暂停/恢复任务

//暂停任务,参数为定时任务的唯一id
 scheduler.resume_job(job_id=id)
//恢复暂停的任务
 scheduler.pause_job(job_id=id)

2.4删除任务

//删除任务
 scheduler.remove_job(job_id=id)

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值