使用cronTriggerBean子类,动态设置cronExpression

Quartz的使用前准备:

1.引入必要的jar包:

  • quartz_all_xxx.jar 或者quartz_xxx.jar
  • slf4j_api_xx.jar quartz所需要的日志工具

quartz知识简单了解: 2.quartz的两种作业存储方式:

  • RAMJobStore,利用内存来持久化调度程序信息
  • JDBC作业存储,利用JDBC驱动和后台库中保存的调度程序信息

3.Quartz两种触发器

  • simpleTrigger 适合执行简单的调度任务
  • cronTrigger 使用cron表达式,调度相对复杂的任务

4.quartz调度器—将任务和触发器关联起来。 由scheduler接口体现,该接口主要定义了三个方法:

  • void addJob(JobDetail jobDetail, Boolean replace)
  • Date scheduleJob(JobDetail jobDetail, Trigger trigger) //使用trigger类控制该job
  • Date scheduleJob(Trigger trigger) //添加触发器调度作业

在spring中使用quartz,创建quartz作业bean的两种方法: 1.使用JobDetailBean包装QuartzBean子类的实例

  • 创建一个Quartz的作业bean,但是这个bean必须要继承QuartzJobBean抽象类,其中要实现一个executeInternal(JobExecutionContext ctx)方法。

2.使用MethodInvokingJobDetailFactoryBean配置方法(如下例Spring-action.xml 配置)

3.Spring-action.xml 配置内容:

 

QuarzDemo类

 

注意:

1.lazy-init如果设置为true,这任务工程在服务器启动时不会加载。所以这里必须设置为false。

2.由于在上边的配置中定义的了default-autowire=”byName”, Spring会自动注入quartz中的datasource bean,所以会报异常。

解决方法:在bean中关掉autowired

打赏 赞(0)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

发表评论