Проблемы с TimerTask - PullRequest
       84

Проблемы с TimerTask

0 голосов
/ 18 апреля 2011

Привет всем, я работаю в 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 ]

0 голосов
/ 01 июля 2011

Заметил, что это все еще открыто, оказалось, что на используемом нами движке есть настроенная библиотека java, которая не включает TimerTask ... doh.Отправился с командой sleep thread, которую фактически имела библиотека.

0 голосов
/ 19 апреля 2011

У меня нет опыта работы с 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 из метода.*

...