【已解决】定时任务触发不了

KOCA版本 :3.x
KOCA模块 :定时任务
模块版本 :3.x
场景 :
问题 :



数据库配置了定时任务类,每五秒执行一次,启动koca,任务无法触发

报错细节 :
尝试解决方案:

版本能不能详细说明一下,其次照着文档做了哪些尝试方案?

  • 已在企微解答。

1、上述cron表达式:

*/5 * * * * * ?
  • 每 5s 触发一次应该这样写:
*/5 * * * * ? *
  • 日、月和周三者不能都为(*),必须有一个为(?),否则就无法确定到底是哪个时间点需要运行任务
  • 特别注意:表达式中位数所代表的含义

2、直接在任务表中insert数据来触发是不行的,这样写入任务到数据库中,触发器就无法写入数据到如下两张表中:

qrtz_triggers:用来存储触发器的基本信息
qrtz_cron_triggers:用来存储触发器 cron 表达式和时区信息
  • qrtz_triggers表和qrtz_cron_triggers表都是在创建Trigger时写入数据的
  • 当创建一个Trigger时,Quartz会将Trigger的相关信息保存到qrtz_triggers表中,如:Trigger的名称、所属的Job、执行时间、Trigger状态等
  • 如果创建的Trigger是CronTrigger类型,Quartz会同时将其Cron表达式保存到qrtz_cron_triggers表中,以便后续解析该Trigger的执行时间
  • 需要注意的是,当修改Trigger的相关信息时,qrtz_triggers和qrtz_cron_triggers表中对应的记录也会被更新。同时,如果删除Trigger,对应的记录也会从这两个表中删除
  • 在Quartz中,Trigger是用来触发Job执行的,因此Trigger的相关信息对于任务调度至关重要。通过将Trigger的相关信息保存到数据库中,可以保证Trigger的信息不会丢失,并且可以在应用程序重启后重新加载
  • 如果想要测试相关触发任务,可以请求 add 添加任务接口,就会把相关任务信息和触发器信息添加到对应的数据库表中,根据指定的任务触发时间来进行触发
1 个赞