Не работает cron в wb-rules 2.6.0

Добрый день!
Столкнулся с проблемой объявления правил с 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 отрабатывает, но правило не создается.

Да, у меня также. Причем не зависит от значения таймаута.

Ага, уже проверил. На 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-правила не просматриваются.

Не совсем понял, что это значит. Но вижу в следующем абзаце, что cron выполняется отдельно от остальных правил.

при рестарте движка сработали кстати. Можно пока так.

кажется починил, попробуйте пожалуйста 2.6.1 из experimental

2 Likes

Будем тестировать, спасибо!

Протестировали. На 2.6.1 работает.

2 Likes