当前位置: 首页 > 知识库问答 >
问题:

Spring石英调度器记住运行间信息

凌轶
2023-03-14

我有一个带spring应用程序的quartz调度器。

每次quartz触发作业时,作业都会创建一个列表(比如狗列表)。下次quartz触发另一个作业时,我需要访问上一个作业创建的列表。我怎样才能做到这一点。

我不能使用该对象的单个实例。因为这个对象可以被创建自己列表的其他进程使用(比如奶牛列表、鸟类列表等)

我要寻找的效果类似于实例变量,并在循环中执行某些操作,每次在循环中更新实例变量时,实例变量的新值都可以被循环的下一次迭代访问。

提前谢谢

共有1个答案

蔺翰音
2023-03-14

你需要一些所有作业都能访问的全局存储。在Spring,你可以将bean注入到作业中,并将该列表保存在其中一个bean中。您还可以利用JobDataMap。不过,它可能会序列化您的集合并将其反序列化回来。

问题实际上更复杂。请记住,Quartz可以在多个节点上运行。在这种情况下,您只剩下JobDataMap作为BLOB存储在数据库中或自己使用数据库(例如,每只狗一行)。

 类似资料:
  • 在使用Quartz Scheduler 1.8.6版的应用程序中,当作业未完成时,我们遇到了一个触发器卡住的问题。 例如,我们有ssh调用或数据库查询的作业。如果这些作业挂起(因为ssh调用没有终止,或者select语句有一个表锁),那么我将无法再触发这些作业。触发器被卡住,直到我强制重新启动调度程序。 我已经试过了。中断(触发器)和调度程序。重新调度触发器()。我试着移除触发器并重新创建它。我已

  • 我有一个2节点的HA服务器。节点1处于活动状态,节点2处于备用状态。 我已经做了一个应用程序,并使用quartz api做集群。我已经把数据库里的所有桌子都做好了。 现在,我是否需要同时在节点或jst节点1中运行该模块,以便当节点1关闭时,应用程序自动在节点2中启动。 在两个节点中运行模块时,触发器和作业名应该相同还是不同? ThreadPool.ThreadCount=10 ThreadPool

  • 乡亲们, 我正在尝试用Quartz调度器实现Spring boot,以便在java中调度作业。我的经理建议根据作业id为所有作业使用具有不同实施服务的单个作业。但我不能说服所有服务实施都使用单个作业。 请指导我使用多个服务类的单个作业或为每个服务编写每个作业。 提前感谢。。

  • 我正在使用和以及集群模式下的oracle db,我正在使用所有quartz api,因为我面临spring支持的quartz api的问题。 我的作业类中有一些依赖项没有初始化,我在调度程序上下文中传递了这些依赖项,然后它就开始工作了。 问题是我的cron表达式是每5分钟运行一次

  • 我正在与石英时间表和一切工作完美根据要求。但有一件事我想实现,即我希望我的下一个作业执行将触发(currentFinishTime+intervalOfScheduler) 间隔为30秒的作业执行示例: 请帮助我解决我的问题。

  • 是否可以添加/删除/修改在Quartz Spring Boot中动态安排的作业(在运行时),由使用我的门户的最终用户。由于计划无法从外部访问,我不知道有什么办法。基本上,我需要将所有的时间表信息存储到数据库中并访问它们。Im构建的门户将被大量用户使用,实现这一目标的正确解决方案是什么? 否则我可以像下面这样使用cron吗 每5 mns扫描一次作业以实现此目的。