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

Spring调度石英和数以千计的工作

夏侯昊明
2023-03-14

现在我正在考虑一种方法,每个用户将为每个推迟的作业创建一个专用的jobdetail,如下所示:

schedulerFactoryBean.getScheduler().addJob(jobDetail(), true, true);

我可以在这里看到一个潜在的问题,即使用这种方法,我可以在Quartz Scheduler中快速创建数千个工作。以前我从来没有在Spring Scheduling中用Quartz调度过这么多的工作,不知道系统会如何处理。以这种方式实施系统是一个好主意吗?Spring Scheduling Quartz会不会处理这么多的工作而没有问题呢?

共有1个答案

罗安宁
2023-03-14

是的,Quartz本身可以毫无问题地处理数千个作业和触发器。

如果要同时执行多个作业,只需确保使用足够数量的工作线程配置Quartz即可。工作线程的数量通常应该等于可以并发运行的最大作业数+一些小缓冲区(10%左右)以防万一。

根据你写的内容,我假设你的作业将是一次性作业,即每个作业只执行一次。如果是这种情况,Quartz可以自动丢弃您的作业,只要它们完成执行,除非您的作业被标记为持久。如果非持久作业没有排定在将来运行,Quartz会自动删除这些作业。此功能可能会帮助您减少已注册作业的总数。

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

  • 按需重新处理大量数据。 在这两种情况下,大约有10,000个石英工作岗位产生并运行。在nightly中,我们有一个quartz作业,该作业产生10,000个作业,每个作业单独处理数据。 我们的问题是,我们正在运行大约30个线程,所以quartz作业自然会失效,并继续失效,直到所有的事情都处理完毕。加工过程可能需要6个小时。这10,000个作业中的每一个都涉及一个特定的域对象,可以并行处理并且完全独

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

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

  • 我是Spring boot(1.3.6版)和Quartz的新手,我想知道使用Spring调度程序生成任务有什么区别: 而石英方式: 在代码中: 和牧羊人: Quartz是否提供了更灵活的方法来定义作业、触发器和调度器,或者Spring Scheduler还有更好的方法?

  • 另外,如果我使用下面的语句而不是自动调用Spring Quartz调度器,那么作业将成功激发 请让我知道我做错了什么...