首页 文章

Spring Scheduling Quartz和数千个工作

提问于
浏览
1

根据我的Spring Boot应用程序的业务逻辑和Quartz Scheduling以及MongoDB作为Job持久存储,系统的每个用户都可以创建必须在某个时间点执行的推迟作业 . 用户选择必须执行的时间 .

现在我正在考虑每个用户都会为每个推迟的工作创建一个专用的 JobDetail 的方法,如下所示:

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

我可以在这里看到的问题,通过这种方法,我可以在Quartz调度程序中快速创建数千个作业 . 以前我从未使用Quartz在Spring Scheduling中安排过如此多的工作,也不知道系统将如何处理它 . 以这种方式实现系统是一个好主意,Spring Scheduling Quartz会毫无问题地处理这么多的工作吗?

1 回答

  • 2

    是的,Quartz本身可以处理数千个作业和触发器而没有任何问题 .

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

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

    我希望这有帮助 . 如果没有,请询问 .

相关问题