Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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 从属性文件更新Spring@Scheduled Cron_Java_Spring_Tomcat_Cron_War - Fatal编程技术网

Java 从属性文件更新Spring@Scheduled Cron

Java 从属性文件更新Spring@Scheduled Cron,java,spring,tomcat,cron,war,Java,Spring,Tomcat,Cron,War,我使用Spring的@scheduled注释和从属性文件加载的cron表达式调度了一个方法,如本文所述。包含此计划方法的应用程序作为.war文件部署在Tomcat应用程序服务器上 这可以正常工作,并且调度的方法按照预期运行,与属性文件中给出的cron表达式相对应 我的问题是,如果我想在方法执行时进行更改,并且我修改了属性文件中的cron表达式,我是否需要重新部署应用程序以使更改生效?因为war文件是以分解格式部署的,所以可以直接更新属性文件,而无需生成新的war和/或重新部署。要使更改的属性在@

我使用Spring的
@scheduled
注释和从属性文件加载的cron表达式调度了一个方法,如本文所述。包含此计划方法的应用程序作为.war文件部署在Tomcat应用程序服务器上

这可以正常工作,并且调度的方法按照预期运行,与属性文件中给出的cron表达式相对应


我的问题是,如果我想在方法执行时进行更改,并且我修改了属性文件中的cron表达式,我是否需要重新部署应用程序以使更改生效?

因为war文件是以分解格式部署的,所以可以直接更新属性文件,而无需生成新的war和/或重新部署。要使更改的属性在@Scheduled批注中生效,请执行以下任一操作:

  • Tomcat应用服务器可以重新启动(感谢@Mithun,出于某种原因没有想到这一点)

  • 可以使用Tomcat的manager应用程序重新加载one war(请参阅)

无需重新部署应用程序。您只需更新属性文件中的cron表达式,然后重新启动应用程序。在下一次运行中,将使用新的cron表达式来调度。您说的“重新启动”应用程序是什么意思?它是一个不包含主方法的war文件,并且用@Scheduled注释的方法仅通过Spring调度器运行。你是说重新启动Tomcat应用服务器吗?对不起,我应该告诉你重新启动服务器(Tomcat web服务器)。最佳做法是始终将属性文件保留在war文件之外,以便更容易更新属性。如果您有义务将属性文件保存在war文件中,则以分解格式部署war文件。因此,您仍然可以直接更新属性,而无需生成新的war。