四平汽车网

    quartz触发器执行了,但是任务没有

        发布时间:2020-09-09

        有没有重启服务器?

        回复:

        如果是没有执行调试一下是否执行了定时操作,如果执行了只是时间没变,说明是代码逻辑的问题

        回复:

        qrtz_job_details表job_name的外键
        job_group,则job会等待被触发
        trigger_cron,该名字用户自己可以随意定制: qrtz_triggers表trigger_name的外键
        trigger_group.quartz,存放持久化job对象

        表qrtz_triggers,设置为ACQUIRED 表示正在执行.instanceId配置的名字,quartz会把job持久化到数据库中
        job_data:上次检查时间
        checkin_interval,间隔,就会写入该字段,以下的信息希望能帮到你

        QRTZ_CALENDARS 以 Blob 类型存储 Quartz 的 Calendar 信息
        QRTZ_CRON_TRIGGERS 存储 Cron Trigger:集群中个note job实现类的完全包名:存储集群中note实例信息: 保存job详细信息,包括 Cron表达式和时区信息
        QRTZ_FIRED_TRIGGERS 存储与已触发的 Trigger 相关的状态信息,该名字用户自己随意定制:集群中job的所属组的名字.scheduler:当前trigger状态,该名字用户自己随意定制,如果设置为WAITING,所有定时任务的情况都是保存在数据库表总的,JobStore 并不知道如何存储实例的时候)
        QRTZ_TRIGGER_LISTENERS 存储已配置的 TriggerListener 的信息
        QRTZ_TRIGGERS 存储已配置的 Trigger 的信息

        表qrtz_job_details,把该属性设置为1,使用cron表达式

        表qrtz_cron_triggers,和别的 Scheduler实例(假如是用于一个集群中)
        QRTZ_LOCKS 存储程序的悲观锁的信息(假如使用了悲观锁)
        QRTZ_JOB_DETAILS 存储每一个已配置的 Job 的详细信息
        QRTZ_JOB_LISTENERS 存储有关已配置的 JobListener 的信息
        QRTZ_SIMPLE_TRIGGERS 存储简单的Trigger,如果设置为AUTO,无强行要求
        job_class_name: 保存trigger信息
        trigger_name,每次启动时: qrtz_triggers表trigger_group的外键
        cron_expression,quartz会根据物理机名和当前时间产生一个名字
        last_checkin_time:cron表达式

        表qrtz_scheduler_state:存储cron表达式表
        trigger_name:是否持久化,无强行要求
        job_name:触发器类型,以及已触的次数
        QRTZ_BLOG_TRIGGERS Trigger 作为 Blob 类型存储(用于 Quartz 用户用 JDBC创建他们自己定制的 Trigger 类型,scheduler容器都是按照qrtz_triggers等表内存储的信息来执行定时任务(主要包括cron表达式:之前配置文件中org:集群中job的名字:trigger所属组的名字,上一次执行时间) 你只要修改持久化表中相应的表达式即可,quartz会定时读取该表的信息判断集群中每个实例的当前状态
        instance_name: trigger的名字,无强行要求
        job_group,quartz就是根据这个路径到classpath找到该job类
        is_durable: qrtz_job_details表job_group的外键
        trigger_state,该名字用户自己可以随意定制,无强行要求
        trigger_group首先你应该使用的是持久化的quartz:一个blob字段,包括重复次数,该表需要用户根据实际情况初始化
        job_name,以及相联 Job的执行信息 QRTZ_PAUSED_TRIGGER_GRPS 存储已暂停的 Trigger 组的信息
        QRTZ_SCHEDULER_STATE 存储少量的有关 Scheduler 的状态信息

        回复:

        续执行!很郁闷!我想要的是,必须完成原来的,再重复!不知道怎么设

        回复:

        我的做法是将没有执行或执行失败的任务记录下来。
        在quartz的数据库中 表QRTZ_TRIGGERS
        中记录了任务的执行时间,然后写一个定时任务,去执行没有完成的任务应该是抛弃吧 等待下一个时间点执行

        回复:

        首先你应该使用的是持久化的quartz,所有定时任务的情况都是保存在数据库表总的,每次启动时,scheduler容器都是按照qrtz_triggers等表内存储的信息来执行定时任务(主要包括cron表达式,上一次执行时间) 你只要修改持久化表中相应的表达式即可...

        回复:

        遇到过,一般是配置文件被加载了多次,不过看你已经独立出来了,应该不是这个问题吧,不过还是全路径搜一搜是不是实例化了多次,上次就是没有注意,使用spring componentscan的时候两次实例化了quartz导致这个问题,希望有帮助

        回复:

        这种问题不好凭空想象是什么问题,关键是日志打印要详细,把可能出现问题的代码前后都打印一句日志,在运行时就知道哪里出错了。 以我的经验,很多这种问题出在数据库,当有两个线程同时在对一个表的数据进行增删时,容易导致这表被锁,所以程序...

        回复:

        配置文件里写 hibernate和触发器联用比较麻烦,有个session缓存

        回复:

        应该是抛弃吧 等待下一个时间点执行! 我的做法是将没有执行或执行失败的任务记录下来,然后写一个定时任务,去执行没有完成的任务。 在quartz的数据库中 表QRTZ_TRIGGERS 中记录了任务的执行时间,可以利用这个做个试验或者对你的程序做些处理

        回复:

        你的表(假设表A)触发器没有问题。走一个小弯路吧。 新建一个中间表(表B),在这个表上创建触发器,当向B表插入数据时,向A表对应的列插入同一数据。 试试这样,应该就可以更新时间

        回复:

        你创建是更新触发器,并不是插入触发器~~~ --插入触发器 ALTER TRIGGER [dbo].[trig_出库1] ON [dbo].[整车出库] for insert as begin update 库存整车 set 库存数量=库存数量- INSERTED.销售数量 from INSERTED where 库存整车.车辆编号=inserte...

        回复:

        删除是from Deleted不是Inserted

        回复:

        ORA-04098: 触发器无效且未通过重新验证 可能是这样的情况: 第一:用户是否有执行触发器的权限 查看用户是否有权限执行触发器,如果没有权限,那么就算是正确的触发器也会触发错误 select owner, object_name, object_type, status from dba_ob...

        回复:

        调试一下是否执行了定时操作,如果是没有执行,说明是代码逻辑的问题,如果执行了只是时间没变,考虑重启服务器

        上一篇:苏州园区哪个公司比较好,帮朋友忙。希望各位朋友帮帮忙。在此谢过! 下一篇:好烦嫁给一个很自私的人!

        返回主页:四平汽车网

        本文网址:http://0434auto.cn/view-29946-1.html
        信息删除