在一天中的特定时间运行Web服务EveryDay(从Tomcat参数获取时间)

时间:2015-04-07 12:26:30

标签: java web-services tomcat soap java-threads

我需要在特定时间每天向很多设备发送SOAP消息。我将从web.xml中的tomcat参数获取时间。喜欢的东西;

<context-param>
    <param-name>DailyTime</param-name>
    <param-value>04:00</param-value>
</context-param>

我必须创建一个发送消息的单独线程。时间将是24小时格式。

问题是,作为首发,我不知道从哪里开始或如何做到这一点。请你们指点我正确的方向或给我一些提示,这对我有很大帮助。

谢谢大家:)

1 个答案:

答案 0 :(得分:0)

您有几种选择。我过去最常用的两个是:

1)安排一个cron作业在你想要的时间运行,并让它调用一个可执行的java类/ jar文件。

2)使用Quartz

之类的调度程序库

关于#1 - 这假设您正在使用* nix系统。如果您使用的是Windows,则可以通过Task Scheduler安排任务。

关于#2 - 这使您可以更灵活地运行任务/作业。例如,您可以将作业安排为每1分钟运行一次,但不能在任何现有作业完成之前启动新作业。

来自大约2006年的Quartz版本的轶事评论 - 在WebSphere上,似乎我的石英作业被一些后台线程执行,这使得工作需要花费数小时才应该花费几秒钟。但那是差不多十年前的事了,当然石英(希望是websphere)已经大大改善了。