Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每次从Springs应用程序上下文加载Quartz cron作业_Java_Spring_Applicationcontext - Fatal编程技术网

Java 每次从Springs应用程序上下文加载Quartz cron作业

Java 每次从Springs应用程序上下文加载Quartz cron作业,java,spring,applicationcontext,Java,Spring,Applicationcontext,我计划每晚使用spring应用程序上下文运行quartz作业。现在,我想为已经运行的应用程序更改cron作业,使其在一小时后运行。我们希望在应用程序上下文中更改cron作业,然后重新启动应用程序以使更改生效。出于安全原因,我们没有访问数据库的权限 我使用CronTriggerBean来运行jobDetail,并提供一个cron表达式。现在,如果我更改cron表达式并重新启动应用程序,它不会更新实际的cron表达式,因为它存储在数据库中 如何确保每次重新启动应用程序时都更新cron表达式 编辑:

我计划每晚使用spring应用程序上下文运行quartz作业。现在,我想为已经运行的应用程序更改cron作业,使其在一小时后运行。我们希望在应用程序上下文中更改cron作业,然后重新启动应用程序以使更改生效。出于安全原因,我们没有访问数据库的权限

我使用
CronTriggerBean
来运行jobDetail,并提供一个cron表达式。现在,如果我更改cron表达式并重新启动应用程序,它不会更新实际的cron表达式,因为它存储在数据库中

如何确保每次重新启动应用程序时都更新cron表达式

编辑:
Quartz从应用程序上下文中获取cron表达式,并将其内部存储在数据库中。在使用新的cron表达式重新启动应用程序时,它不会更新数据库中的值,并继续使用旧的表达式。

您能否发布一个Quartz Scheduler的JMX服务,以便在运行时更轻松地进行更改:

您可以使用此属性(在quartz.properties中)启用此功能:

然后可以打开jmxconsole以查看quartz jmx服务


希望有帮助。

我从您的问题中了解到,您可能在应用程序上下文中有以下配置

<property name="cronExpression" value="${cron expression}" />


i、 e您在案例数据库中具体化了cron表达式。因此,您需要在数据库中进行更改以获得有效性,否则在哪里配置了cron表达式?

我们从JNDI加载cron表达式,我们制作了一个bean,我们在CronTriggerBean防御中引用了该bean。(编辑按enter键提前)然后我不理解你的问题,你从jndi获得cron表达式,那么你的意思是“它不更新实际的cron表达式,因为它存储在数据库中”。如果更改cron的jdni值并重新启动服务器,在重新启动时,应用程序上下文将被刷新。这正是我的意思。Quartz从应用程序上下文读取cron表达式,并将其存储在数据库中。重新启动时,它不会使用应用程序上下文中的新值更新数据库中的值。将编辑我的原始帖子以更好地反映这一点
<property name="cronExpression" value="${cron expression}" />