Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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 SpringMVC如何在应用程序启动时启动线程_Java_Multithreading_Spring Mvc - Fatal编程技术网

Java SpringMVC如何在应用程序启动时启动线程

Java SpringMVC如何在应用程序启动时启动线程,java,multithreading,spring-mvc,Java,Multithreading,Spring Mvc,在我的springmvc应用程序中,我想为一些迭代工作启动一个线程,在应用程序的生命周期中每隔30秒重复一次。我应该从哪里开始这个线程我应该为它编写一个单独的servlet吗?或者我应该在某个控制器中启动它 用一个ServletContextListener启动它怎么样?然后,它将在web应用程序启动后立即启动 void contextInitialized(ServletContextEvent sce) 接收web应用程序初始化进程正在启动的通知 此外,关于计划任务,您可能需要考虑这样的选

在我的springmvc应用程序中,我想为一些迭代工作启动一个线程,在应用程序的生命周期中每隔30秒重复一次。我应该从哪里开始这个线程我应该为它编写一个单独的servlet吗?或者我应该在某个控制器中启动它

用一个
ServletContextListener
启动它怎么样?然后,它将在web应用程序启动后立即启动

void contextInitialized(ServletContextEvent sce) 接收web应用程序初始化进程正在启动的通知

此外,关于计划任务,您可能需要考虑这样的选项,这样您就不必重新发明轮子:

干杯

使用比线程

fixedRate使Spring定期运行任务,即使最后一次调用可能仍在运行

fixedDelay特别控制最后一次执行完成时的下一次执行时间

cron是源于Unix cron实用程序的一项功能,并根据您的需求提供各种选项

@Scheduled(fixedDelay =30000)
public void demoServiceMethod () {... }

@Scheduled(fixedRate=30000)
public void demoServiceMethod () {... }

@Scheduled(cron="0 0 * * * *")
public void demoServiceMethod () {... }