java - 我可以在 Quartz 作业中创建 Spring 上下文吗?或者这是一个糟糕的主意?

标签 java spring quartz-scheduler

我是 Quartz 的新手,我将编写需要大量服务/依赖项的作业。

在作业执行方法中创建一个 Spring 上下文是否有意义(因此对于任何新作业都会有一个新的 Spring 上下文)还是在作业创建之前创建一个唯一的 Spark 上下文并为任何注入(inject)服务更好新工作?

谢谢。

最佳答案

这取决于您的要求和偏好。

如果您的工作只在一天中的特定时间开始,比如每天凌晨 3:00。那么您的 spring 上下文启动几分钟并不重要。在这种情况下或上下文启动并运行之前的时间并不重要的任何其他情况下,我建议您在每次启 Action 业时启动上下文。如果您只使用它的一小部分,那么在空洞日保持上下文正常运行是没有意义的。

但是,您可以有很多工作。他们启动和运行所需的时间可能并不重要。但如果它们很多,它将使用大量内存为每个作业启动一个新的上下文。因此,在这种情况下,我建议您初始化一个独特的 spring 上下文。因此,您可以优化服务器的内存。

其他情况,启动时间很重要。在这种情况下,最好启动并运行 spring 上下文,这样您就可以在每次需要时几乎立即使用它。

关于java - 我可以在 Quartz 作业中创建 Spring 上下文吗?或者这是一个糟糕的主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42768716/

相关文章:

java - 有没有办法在eclipse中运行netbeans开发的java程序?

java - 构建maven时警告

spring - 在 docker 容器中运行可运行 jar 时,Grails Spring Security Active Directory 登录失败

c# - Quartz.net 使用不同的 JobKey 和 JobData 运行 1 个作业实例

quartz-scheduler - Quartz.Net Trigger Scheduled Job On Demand

quartz-scheduler - 通过配置文件和构造函数的混合来配置 Quartz.NET

java - 如何在android中提取hashmap的arraylist列表并循环遍历它?

java - Spring boot - 存储图像的最佳方式(SQL后端)

java - Spring 安全5 : There is no PasswordEncoder mapped for the id "null"

java - logback 不生成文件