我需要每天在特定时间向许多设备发送 SOAP 消息。我将从 web.xml 中的 tomcat 参数获取时间。类似的东西;
<context-param>
<param-name>DailyTime</param-name>
<param-value>04:00</param-value>
</context-param>
我必须创建一个单独的线程来发送消息。时间将采用 24 小时制。
问题是,作为初学者,我不知道从哪里开始或如何开始。你们能否为我指明正确的方向或给我一些提示,这将对我有很大帮助。
谢谢大家:)
最佳答案
您有多种选择。我过去用得最多的两个是:
1) 安排一个 cron 作业在您想要的时间运行,并让它调用一个可执行的 java 类/jar 文件。
2) 使用像 Quartz 这样的调度程序库
关于 #1 - 这假定您使用的是 *nix 系统。如果您使用的是 Windows,则可以通过 Task Scheduler 安排任务.
关于 #2 - 这使您在运行任务/作业的条件上更加灵活。例如,您可以安排一个作业每 1 分钟运行一次,但在任何现有作业完成之前不启动新作业。
来自大约 2006 年 Quartz 版本的轶事评论 - 在 WebSphere 上,我的 quartz 作业似乎是由一些后台线程执行的,这使得作业需要数小时,而本应只需要几秒钟。但那是将近十年前的事了,当然 quartz(希望是 websphere)已经有了很大的改进。
关于java - 每天在一天中的特定时间运行 Web 服务(从 Tomcat 参数获取时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29491569/