如何在java中运行scheduleTime?

如何在java中运行scheduleTime?,java,Java,我有一个疑问,当我安排一些时间,它安排得很好。但是,当tomcat服务器打开时,它将处于运行状态。但是当我停止服务器,然后再次运行tomcat服务器时,它不工作,即之前的计划 例如,我在tomcat服务器上运行我的程序,并计划在上午10:30执行一些任务。但是,我在上午10:15停止了tomcat服务器,然后再次重新启动服务器,正如我告诉您的,我计划在上午10:30执行一些任务。但是,我重新启动了服务器。在这种情况下,计划时间为上午10:30,不执行给定的计划任务 你能帮我解决这个案子吗。 谢谢

我有一个疑问,当我安排一些时间,它安排得很好。但是,当tomcat服务器打开时,它将处于运行状态。但是当我停止服务器,然后再次运行tomcat服务器时,它不工作,即之前的计划

例如,我在tomcat服务器上运行我的程序,并计划在上午10:30执行一些任务。但是,我在上午10:15停止了tomcat服务器,然后再次重新启动服务器,正如我告诉您的,我计划在上午10:30执行一些任务。但是,我重新启动了服务器。在这种情况下,计划时间为上午10:30,不执行给定的计划任务

你能帮我解决这个案子吗。
谢谢..

请检查tomcat服务器的时区,如果它没有按照您的时区进行配置,请更新它

由于显式处理时区会使应用程序更复杂(但也更正确、更不令人惊讶、更难测试),因此下一个最好的方法是显式地让tomcat(java)知道服务器时钟设置为什么时区。小心:有一些级别可以设置:将服务器时钟设置为UTC,将服务器操作系统配置为PST,然后让java知道服务器所在的时区,例如在setenv.sh do CATALINA_OPTS=“$CATALINA_OPTS-Duser.timezone=America/Los_Angeles”(或任何时区)中为时区配置java


试试这个,希望它能对你有所帮助。

cronjob是最好的选择,因为它不受Tomcat状态的影响。即使Tomcat停机,cronjob也会在正确的时间运行。您可能需要提取一些应用程序逻辑并将其放入另一个jar中,以便通过cronjob调用它。

看起来不像是时区问题。更像是,停止了Tomcat,计划任务将不会运行。这可能是原因之一,因为当您运行服务器时,如果它不在特定的时区,那么它将在下一个计划周期后运行,并且通常在本地环境上,开发者不会等待下一个周期。