我是 Quartz 的新手,我将编写需要大量服务/依赖项的作业。
在作业执行方法中创建一个 Spring 上下文是否有意义(因此对于任何新作业都会有一个新的 Spring 上下文)还是在作业创建之前创建一个唯一的 Spark 上下文并为任何注入(inject)服务更好新工作?
谢谢。
最佳答案
这取决于您的要求和偏好。
如果您的工作只在一天中的特定时间开始,比如每天凌晨 3:00。那么您的 spring 上下文启动几分钟并不重要。在这种情况下或上下文启动并运行之前的时间并不重要的任何其他情况下,我建议您在每次启 Action 业时启动上下文。如果您只使用它的一小部分,那么在空洞日保持上下文正常运行是没有意义的。
但是,您可以有很多工作。他们启动和运行所需的时间可能并不重要。但如果它们很多,它将使用大量内存为每个作业启动一个新的上下文。因此,在这种情况下,我建议您初始化一个独特的 spring 上下文。因此,您可以优化服务器的内存。
其他情况,启动时间很重要。在这种情况下,最好启动并运行 spring 上下文,这样您就可以在每次需要时几乎立即使用它。
关于java - 我可以在 Quartz 作业中创建 Spring 上下文吗?或者这是一个糟糕的主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42768716/