Zeta
1
Добрый день!
Столкнулся с проблемой объявления правил с cron.
setTimeout(function() {
defineRule("MY RULE 1", {
when: cron("@every 2s"),
then: function() {
log("MY TEST 1")
}
});
}, 0);
defineRule("MY RULE 2", {
when: cron("@every 2s"),
then: function() {
log("MY TEST 2")
}
});
Код выше печатает только MY TEST 2.
То есть setTimeout c параметром “0” не работает?
Ок, сейчас проверим - найдем причину.
setTimeout отрабатывает, но правило не создается.
Zeta
5
Да, у меня также. Причем не зависит от значения таймаута.
Ага, уже проверил. На 2.5.0 - тоже.
defineRule("MY RULE 2", {
when: cron("@every 4s"),
then: function() {
log("lll=",lll)
}
});
setTimeout(function() {
log("MY TEST 0")
lll=defineRule("MY RULE 1", {
when: cron("@every 4s"),
then: function() {
log("MY TEST 1")
}
});
}, 10);
Идентификатор - присваивается.
По-моему это наш случай: https://github.com/wirenboard/wb-rules#просмотр-и-выполнение-правил
При срабатывании таймеров, запущенных через startTimer() или startTicker(), whenChanged-правила не просматриваются.
Zeta
8
Не совсем понял, что это значит. Но вижу в следующем абзаце, что cron выполняется отдельно от остальных правил.
при рестарте движка сработали кстати. Можно пока так.
кажется починил, попробуйте пожалуйста 2.6.1 из experimental
Zeta
11
Будем тестировать, спасибо!
Zeta
12
Протестировали. На 2.6.1 работает.