Проблемы с 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 вне метода.

Другие вопросы по тегам