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
2 лайка
Zeta
11
Будем тестировать, спасибо!
Zeta
12
Протестировали. На 2.6.1 работает.
2 лайка