2012-02-08 37 views
2

假设我的网络应用程序有两个春季克朗作业计划运行每分钟/小时。在我重新部署我的应用之前,我不能关闭它,我必须等待工作正确完成。我可以在数据库或其他地方提供一些标志,这样作业将停止迭代运行 - 每分钟或每小时 - 在作业函数中放入一些检查,以便在检查到此标志时在下一次触发调用中返回/不执行任何操作。如何等待春季克隆作业完成从蚂蚁生成脚本

但是,如何等待当前的工作呼叫完成?以及如何从蚂蚁或其他外部脚本中查看它 - 选择适合服务器关闭的好时机。

可能有解决方案把一些标志放在数据库或文件中,并阅读它。但也许有一些更准确的方式 - jms或类似的东西?

回答

0

不使用数据库,您可以使用JMX。 - 但在我看来:如果你已经使用了一个数据库,但没有JMX,那么使用一个DB标志或一个简单的文件来指示定时器“停止”。

比使用国旗更好看,并检查每个调用是否设置标志将被shutdown()击倒ThreadPoolTaskScheduleThreadPoolTaskExecutor。 但是这需要第二个任务(每分钟或更短时间运行)来检查标志,然后关闭到调度程序。

为了使ant任务等待一个时间范围,在设置标志后,为了确保完成最后的任务,可以使用WaitFor任务。

0

如果您使用TaskExecutor来运行“cron”作业,那么您可以使用skaffman在this answer中描述的方法来获取任务执行结果。如果你需要从蚂蚁那里获得这个信息,你可以使用JMS supportant-jms