大家好,我使用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,如果需要的话。
谢谢!
我没有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
从方法中取出
注意到这仍然是打开的,原来我们使用的引擎上有一个定制的java库,不包括TimerTask…哎。使用了一个线程睡眠命令,这个命令库实际上有。