例如,我必须在数据库中的每个条目10分钟后执行代码。 就像客户端向数据库添加新行一样,10分钟后我必须执行一个方法。
提前致谢.. !!
答案 0 :(得分:1)
使用cron
作业,cron
是一个基于时间的作业调度程序,允许您在特定时间或日期定期运行代码。
http://en.wikipedia.org/wiki/Cron
对于eaxmple,这每10分钟运行一次'dosomething.sh'。
*/10 * * * * /home/me/dosomething.sh
示例:http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/
答案 1 :(得分:1)
这取决于您的申请。
如果您只使用servlet和jsps而不使用EJB,集群等,只需创建java.util.Timer并在每次更新DB时添加任务。计时器将根据调度运行任务。
如果您正在开发更“严肃”的应用程序,可以使用Quartz。
其他可能的方法是使用延迟的JMS消息。有关详细信息,请参阅here。
接下来,最复杂的方法是使用JCA。您可以创建对Application Server的线程轮询和计时器具有“合法”访问权限的JCA组件。
答案 2 :(得分:1)
Timer timer = new Timer();
为每个数据库条目创建一个计时器和任务。
TimerTask task = new TimerTask(){
public void run()
{
//execute the code for every 10 mins
}
}
timer.scheduleAtFixedRate(task, 0, 10 * 60 * 1000); // period is 10 mins
答案 3 :(得分:0)
这取决于用户输入行后“10分钟”的准确程度。关键是将要执行的“任务”绑定到触发器数据。因此,您可能希望为数据添加某种事务ID。然后,您可以为此事务数据添加时间戳,然后定期检查事件(例如每15秒),如果发现任何刚刚超过10分钟标记的事务,则执行下一步。