我可以在 Quartz 作业中创建一个 Spring 上下文吗?或者这是一个糟糕的主意?
Can I create a Spring context within a Quartz job or it is a terrible idea?
我是 Quartz 的新手,我将要编写需要大量 services/dependencies 的作业。
在作业执行方法中创建一个 Spring 上下文是否有意义(因此对于任何新作业都会有一个新的 Spring 上下文)还是创建一个独特的 Spark 上下文更好在创建作业并为任何新作业注入服务之前?
谢谢。
这取决于您的要求和偏好。
如果您的工作只在一天中的特定时间开始,比如每天 3:00 上午。然后,您的 spring 上下文启动几分钟并不重要。在这种情况下或任何其他情况下,上下文启动和 运行 之前的时间并不重要,我建议您在每次启动作业时启动上下文。如果你只使用它的一小部分,那么在空洞日保持上下文和 运行 是没有意义的。
但是,你可以有很多工作。他们起床和 运行 所花费的时间可能并不重要。但如果它们很多,它将使用大量内存为每个作业启动一个新的上下文。因此,在这种情况下,我建议您初始化一个唯一的 spring 上下文。所以你可以优化你的服务器的内存。
其他情况,启动时间很重要。在这种情况下,最好打开 spring 上下文并 运行,这样您就可以在每次需要时几乎立即使用它。
我是 Quartz 的新手,我将要编写需要大量 services/dependencies 的作业。
在作业执行方法中创建一个 Spring 上下文是否有意义(因此对于任何新作业都会有一个新的 Spring 上下文)还是创建一个独特的 Spark 上下文更好在创建作业并为任何新作业注入服务之前?
谢谢。
这取决于您的要求和偏好。
如果您的工作只在一天中的特定时间开始,比如每天 3:00 上午。然后,您的 spring 上下文启动几分钟并不重要。在这种情况下或任何其他情况下,上下文启动和 运行 之前的时间并不重要,我建议您在每次启动作业时启动上下文。如果你只使用它的一小部分,那么在空洞日保持上下文和 运行 是没有意义的。
但是,你可以有很多工作。他们起床和 运行 所花费的时间可能并不重要。但如果它们很多,它将使用大量内存为每个作业启动一个新的上下文。因此,在这种情况下,我建议您初始化一个唯一的 spring 上下文。所以你可以优化你的服务器的内存。
其他情况,启动时间很重要。在这种情况下,最好打开 spring 上下文并 运行,这样您就可以在每次需要时几乎立即使用它。