TimerTask的问题

时间:2011-04-18 19:30:33

标签: java websphere ilog jrules

嘿所有,我使用RuleStudio(修改过的Eclipse)在IBM Websphere ILOG JRules 7.0中工作,并且在尝试实现TimerTask时遇到了问题。

我根据我所知道的不同规则创建了一个Techincal规则,并尝试添加一些等待5秒然后发送辅助消息的代码。我通过以下代码尝试了这个:

int interval = 5000; // 5 sec
java.util.Date timeToRun = new java.util.Date(System.currentTimeMillis() + interval);
java.util.Timer timer = new java.util.Timer();

timer.schedule(new java.util.TimerTask() {
        public void run() {
            //  Message Sent Here
        }
    }, timeToRun); 

但是,此代码无法编译。它指出的错误位于new java.util.TimerTask()之后的开放式括号中,错误消息为at token "{"

但有些有趣的观察结果:

- 我尝试执行java.util.TimerTask test = new java.util.TimerTask();并在new java.util.TimerTask();处抛出错误Could not find a public constructor (or argument mismatch) for java.util.TimerTask.我发现它是奇怪的,因为它是明确导入的。

- 如果重要的话,我在我的comp上安装了Java版本1.6.0_17。

谢谢!

2 个答案:

答案 0 :(得分:0)

我没有ILOG的经验,但我猜这可能会更好:

java.util.Timer timer = new java.util.Timer();

class MyTask extends java.util.TimerTask {
    public void run() {
        //  Message Sent Here
    }
}

timer.schedule(new MyTask(), timeToRun);

如果仍然无效,请从方法中取出MyTask

答案 1 :(得分:0)

注意到这仍然是开放的,结果发现我们使用的引擎上有一个自定义的java库,它不包含TimerTask ... doh。使用了库实际拥有的线程睡眠命令。