У меня возникла проблема с автоматизацией, которая должна запускаться в начале месяца. Несмотря на то, что она включена, она не запускается автоматически. Я не могу найти никаких логов или способа отладить, почему она не работает сама по себе, хотя должна. Кто-нибудь знает, как можно решить эту проблему?
Как видно ниже, автоматизация должна автоматически «Запланировать встречу с результатами Data Explorer» каждый месяц. Если я нажму «Запустить сейчас», всё работает как положено: пользователи, добавленные в список, получат результаты Data Explorer, а также CSV-файл. Однако автоматический запуск не работает.
Проводили ли вы какие-либо тесты, чтобы убедиться, что все критерии выполняются естественным образом (кроме trigger now)?
То есть, установите время выполнения ежедневно и направьте результат в тестовую группу. Если всё работает корректно, перейдите к ежемесячному выполнению для вашей реальной группы.
Также я полагаю, что ваша целевая аудитория должна иметь доступ к запросу в Data Explorer.
Да.. но проблема не в том, что задача не выполняется в запланированную дату/время, а в том, что она вообще не выполняется.
Где я могу найти эту кнопку, пожалуйста?
Ожидается, что система отправит прямое личное сообщение двум пользователям. Пользователям передан общий запрос. Спасибо за предложение протестировать, изменив расписание. Я также попробую поэкспериментировать с тестовой группой.
Главное отличие, которое я заметил, заключается в том, что в вашем интерфейсе не отображается, когда должно сработать следующее автоматическое действие.
Я использую этот самый сценарий автоматизации в нескольких местах без проблем. Вот как выглядит моя конфигурация в одном из них — для этого теста я изменил периодичность на 5 минут вместо недели, но при установке недельного интервала она срабатывает еженедельно, как и ожидалось:
Попробуйте, возможно, убрать эмодзи «ручки управления» из имени скрипта и заголовка запроса в Data Explorer. Это может нарушать структуру полезной нагрузки (хотя, кажется, они должны быть допустимы).
Спасибо за помощь! Боюсь, что загадка всё ещё не разгадана… вот почему:
До «даты запуска» всё выглядело именно так, с сообщением «Следующий запуск автоматизации будет в: [дата/время]»; однако после того, как это дата/время прошло без успешного выполнения, сообщение исчезло. Во время тестирования я изменил интервал на 1 минуту, и сообщение о запуске снова появилось. В прошлом месяце, когда автоматизация не сработала, я обновил таймер, и появилось сообщение о том, что запуск произойдёт в первый час следующего месяца (но этого не случилось).
На самом деле она работала и срабатывала в некоторые месяцы, но не в другие, поэтому причина неясна, но теперь, похоже, она больше никогда не активируется автоматически. Какая у вас версия Discourse? У меня 2026.5.0-latest…
К сожалению, даже при ручном запуске в /logs ничего не появляется. (У меня выбраны все опции).
Я не думаю, что это проблема, потому что я изменил триггер на 1 минуту, и сообщение было отправлено:
Хорошо, я установил период в один месяц, запустил тест, и всё сработало. Но ждать целый месяц ради проверки здесь не очень практично. Я попробую изменить дату запуска через пару минут.
редактирование: ежемесячный запуск, похоже, работает у меня.
Привет! Сегодня мы с Мойн обсуждали этот случай, и она предположила, что, возможно, есть ошибка при использовании параметра «ежемесячно», так как длительность месяца варьируется? Конечно, она была права — отчасти…
В любом случае, я провёл небольшое расследование
Мне не удалось найти скрипт автоматизации для schedule pm with data-explorer results в основной папке plugins/automation/lib/discourse_automation/scripts, значит, он скрыт где-то ещё.
Однако я изучил логику здесь для повторяющихся событий (предположительно, этот скрипт использует её) в файле plugins/automation/lib/discourse_automation/triggers/recurring.rb:
Похоже, что базовый код для ежемесячных повторяющихся автоматизаций вычисляет N-й день недели вместо фактической календарной даты, и возникает несоответствие логики с параметром Calendar day — при внедрении BYDAY=#{count}#{byday} в RRule автоматизация принудительно привязывает событие к дню недели, тогда как следовало бы использовать BYMONTHDAY вместо BYDAY.
Таким образом, если вы настроите автоматизацию на запуск 15 апреля (который, кстати, является третьей средой апреля), система интерпретирует правило как: запускать в третью среду каждого месяца.
Когда наступает май, третья среда выпадает на 20 мая, из-за чего расписание смещается на 5 дней.
Более того, если вы установите автоматизацию на 30-е или 31-е число месяца (например, «пятый вторник»), система будет искать пятый вторник в следующем месяце. Если в этом месяце всего 4 вторника, автоматизация полностью не найдёт подходящую дату и тихо пропустит весь месяц.
У меня есть протестированное исправление, и я создаю PR, если команда захочет его проверить. Оно меняет логику с N-го дня недели на точную календарную дату.
Вот несколько скриншотов из моих тестов и отладки:
Два экземпляра: один без исправления, другой с моей логической правкой.
Создайте одну и ту же автоматизацию в обоих случаях (исправленная версия справа):
Обратите внимание на различия в баннерах с сообщением «Следующая автоматизация сработает в:» — наблюдается смещение на 5 дней: неотредактированная версия смещается к третьей среде (20 мая) вместо 15 мая.
Например, месяцы могут полностью пропускаться, если система ищет четвёртый четверг вместо фактической даты.