schedule - 轻量级任务调度器/定时器

本文介绍了Python的schedule库,包括安装、简单使用、定时/周期执行配置以及如何取消任务。通过示例展示了如何设置任务、定时执行、添加标签以及取消任务,适用于需要轻量级定时调度的场景。
摘要由CSDN通过智能技术生成

目录

前言

schedule库的安装

schedule库的使用

1.简单使用

2.定时/周期执行配置

3.标签与任务的取消

总结


前言

  如果你想要在某个系统上,定时/周期性执行python脚本的话,可以考虑在python脚本中使用轻量级的 schedule 库。这个库入手简单方便。

schedule库的安装

        因为 schedule 库属于第三方模块,在使用之前需要提前安装,打开终端:

        安装命令:  `  pip install schedule  `

schedule库的使用

1.简单使用

        示例1  使用 schedule 的常见步骤

# 第一步 引入依赖
import schedule

# 第二步 创建需要调度的任务 常常是封装成一个函数/一个python文件
def task():
    # 具体逻辑
    print("我在天上飘")

# 第三步 配置schedule执行的时机
schedule.every(2).seconds.do(task)  # 每2秒执行 task 任务

# 第四步 维持schedule存活状态 - 常常与逻辑死循环结合
while True:
    schedule.run_pending()  # 保持schedule一直在运行

    

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
1. 添加依赖 在pom.xml文件中添加如下依赖: ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> ``` 2. 配置定时器 在application.yml文件中添加如下配置: ``` spring: quartz: job-store-type: jdbc properties: org: quartz: scheduler: instanceName: quartzScheduler instanceId: AUTO jobStore: class: org.quartz.impl.jdbcjobstore.JobStoreTX driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate tablePrefix: QRTZ_ isClustered: true clusterCheckinInterval: 20000 useProperties: false threadPool: class: org.quartz.simpl.SimpleThreadPool threadCount: 10 threadPriority: 5 threadsInheritContextClassLoaderOfInitializingThread: true ``` 3. 编写定时器任务类 在项目中创建一个定时器任务类,例如: ``` @Component public class MyJob implements Job { @Override public void execute(JobExecutionContext context) throws JobExecutionException { // TODO 定时器任务逻辑 } } ``` 4. 配置定时器任务 在项目中创建一个定时器配置类,例如: ``` @Configuration public class QuartzConfig { @Autowired private MyJob myJob; @Bean public JobDetail jobDetail() { return JobBuilder.newJob(myJob.getClass()).withIdentity("myJob").storeDurably().build(); } @Bean public Trigger trigger() { return TriggerBuilder.newTrigger().forJob(jobDetail()).withIdentity("myTrigger") .withSchedule(CronScheduleBuilder.cronSchedule("0 0 0 * * ?")).build(); } @Bean public Scheduler scheduler(Trigger trigger) throws SchedulerException { SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); scheduler.scheduleJob(jobDetail(), trigger); scheduler.start(); return scheduler; } } ``` 其中,jobDetail()方法用于创建一个JobDetail对象,定义了定时器任务的基本信息,如任务名称、任务组等,trigger()方法用于创建一个Trigger对象,定义了定时器任务的触发信息,如触发时间、触发频率等,scheduler()方法用于创建一个Scheduler对象,并将JobDetail对象和Trigger对象绑定到Scheduler对象上,最后启动Scheduler对象。 5. 测试定时器任务 在启动应用程序后,定时器任务将按照配置的时间和频率执行。可以通过查看日志文件或数据库表来验证定时器任务是否执行成功。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一思无量眷红尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值