根据我的Spring应用程序以Quartz调度和MongoDB作为作业持久存储的业务逻辑,系统的每个用户都可以创建必须在某个时间点执行的延迟作业。用户选择必须执行的时间。
现在,我正在考虑一种方法,即每个用户都将为每个被推迟的作业创建一个专用的JobDetail,如下所示:
schedulerFactoryBean.getScheduler().addJob(jobDetail(), true, true);我在这里可能看到的问题是,使用这种方法,我可以在Quartz调度程序中快速创建数千个作业。以前,我从未用Quartz在Spring调度中安排过这么多的作业,也不知道系统将如何处理。用这种方式实现这个系统是个好主意吗? Spring调度Quartz是否能够毫无问题地处理这么多的作业?
发布于 2018-06-06 12:25:38
是的,石英本身可以处理成千上万的工作和触发没有任何问题。
如果要同时执行许多作业,只需确保配置了足够数量的工作线程。工作线程的数量通常应该等于可以并发运行的最大作业数+一些小缓冲区(10%左右),以防万一。
从你写的东西来看,我假设你的工作是一次性的,也就是说,每个作业只执行一次。如果是这样的话,Quartz可以在作业完成后自动丢弃作业,除非您的作业标记为持久性。石英自动删除非持久作业,如果他们没有计划在未来运行。此功能可帮助您减少注册职务的总数。
我希望这能帮到你。如果没有,请问。
https://stackoverflow.com/questions/50706861
复制相似问题