2011-12-15 54 views
4

我有以下的作业类(我已经删除了实际的职位代码):PlayFramework作业多次执行?

@On("0 0 1 * * ?") 
public class DailyJob extends Job 
{ 
    @Override 
    public void doJob() throws Exception 
    { 
// I log from here   
    } 
} 

我的日志告诉我,这份工作每天都在执行多次,而只应每天一次执行(在01:00)。今天它执行了4次。代码在客户服务器上的一个tomcat实例上运行。我认为这个网站可能在多台服务器上运行,但我问过这个问题,他们只说了一个。所以我会认为4是不可能的。但是,我已经锁定了函数(在一个静态对象上),并且在锁定/同步内部检查并设置了上一个执行日期(statc - System.currentTimeMillis())。如果它不到10秒钟,应该记录下来。但是,即使作业在同一秒内执行了4次,也不会发生这种情况。所以我认为它可能会在4种不同的环境下执行。

我认为它可能在游戏中运行1.2.2

任何想法?

+0

也许一个愚蠢的问题,但你检查了日志不写4次? – emt14 2011-12-15 06:47:29

+1

:)我已经在与生产服务器相同的环境中运行的本地计算机上设置了此站点,并且仅记录一次。我也得到了休眠锁定/持久性异常,这表明更多的线程处理相同的东西。 (据我所知)(呃,显然它不可能与prod系统100%相同,但或多或​​少) – bendahmon 2011-12-15 06:52:29

回答

0

我记得在最近的播放版本中修复了类似的错误。你有没有试过使用游戏1.2.4?