Проблемы с TimerTask
Привет всем, я работаю в IBM Websphere ILOG JRules 7.0, используя RuleStudio (модифицированный Eclipse), и у меня возникла проблема при попытке реализовать 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.
Который я нахожу странным, так как он импортирован.
-У меня установлена версия Java 1.6.0_17, если это имеет значение.
Спасибо!
2 ответа
Заметил, что это все еще открыто, оказалось, что движок, который мы использовали, имеет настроенную библиотеку Java, которая не включает TimerTask... doh. Пошёл с командой thread thread, которую на самом деле имела библиотека.
У меня нет опыта работы с 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
вне метода.