Django Apscheduler CRUD

先导入需要的这些库,并且声明一个DjangoJobStore对象

from django_apscheduler.jobstores import DjangoJobStore
from apscheduler.triggers.cron import CronTrigger
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.job import Job as AppSchedulerJob

django_job_store = DjangoJobStore()

查看数据库中存储的所有Job

django_job_store.get_all_jobs()

查看数据库中的单个job

django_job_store.lookup_job(job_id)

删除数据库中的单个job

django_job_store.remove_job(job_id)

删除数据库中所有的Job

django_job_store.remove_all_jobs()

更改Job的调度周期

def modify_job(job_id: str, crontab_exp: str):
    """修改定时任务的调度周期"""
    job: AppSchedulerJob = django_job_store.lookup_job(job_id)
    job.trigger = CronTrigger.from_crontab(crontab_exp)
    django_job_store.update_job(job)

暂停Job

def pause_job(job_id: str):
    """暂停定时任务"""
    job: AppSchedulerJob = django_job_store.lookup_job(job_id)
    job.next_run_time = None
    django_job_store.update_job(job)

激活Job

def resume_job(job_id: str):
    """激活定时任务"""
    job: AppSchedulerJob = django_job_store.lookup_job(job_id)
    # 序列化Job对象为字典类型
    job_state = job.__getstate__()
    del job_state['next_run_time']
    scheduler = BackgroundScheduler()
    scheduler.add_jobstore(django_job_store)
    scheduler.add_job(replace_existing=True, **job_state)
    scheduler.start()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值