0

大家好,我正在使用 RuleStudio(修改后的 Eclipse)在 IBM Websphere ILOG JRules 7.0 中工作,并且在尝试实现 TimerTask 时遇到问题。

我根据我知道有效的不同规则创建了一个技术规则,并尝试添加一些等待 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. 觉得很奇怪。

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

谢谢!

4

2 回答 2

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退出该方法。

于 2011-04-18T20:50:56.983 回答
0

注意到这仍然是打开的,原来我们使用的引擎上有一个自定义的 java 库,它不包括 TimerTask... doh。使用图书馆实际拥有的线程睡眠命令。

于 2011-07-01T18:43:56.047 回答