월간 트리거 반복 자동화가 예상대로 실행되지 않음

안녕하세요!

월 초에 트리거가 발동되어야 하는 자동화 기능에서 문제가 발생하고 있습니다. 자동화가 활성화되어 있음에도 불구하고 자동으로 트리거가 발동되지 않습니다. 예상대로 자동으로 실행되지 않는 이유를 디버깅할 수 있는 로그나 방법을 찾을 수 없습니다. 이 문제를 해결하는 방법을 아시는 분이 계신가요?

아래에서 보실 수 있듯이, 이 자동화는 매월 자동으로 '데이터 탐색기 결과를 포함하여 PM 일정 잡기’를 수행해야 합니다. '지금 트리거’를 클릭하면 예상대로 작동합니다: 목록에 추가된 사용자는 데이터 탐색기 결과와 CSV 파일을 모두 받게 됩니다. 그러나 자동 트리거는 실행되지 않습니다.

이 문제를 해결하는 데 도움이 될 피드백이나 제안을 주시면 감사하겠습니다. 감사합니다!

1개의 좋아요

정확한 예약 날짜와 시간대 설정을 확인했으며, 사용 가능한 경우 누락된 작업 실행(Run Missed Jobs) 버튼을 켜셨나요?

1개의 좋아요

지금 실행(trigger now) 기능을 제외하고, 모든 기준이 자연스럽게 충족되는지 확인하기 위해 테스트를 해보셨나요? 예를 들어, 일일 실행으로 시간을 설정하고 더미 그룹으로 이동하여 테스트해 보세요. 올바르게 작동한다면, 실제 그룹으로 변경하여 월간 실행으로 전환해 보세요.

또한, 생각컨대 대상 청중에게 데이터 탐색기 쿼리를 공유해야 합니다:

1개의 좋아요

안녕하세요

도움 주셔서 감사합니다. @kairo162 @putty

확인했습니다. 다만 문제는 예약된 날짜/시간에 실행되지 않는 것이 아니라, 아예 실행되지 않는 것입니다.

이 버튼을 어디서 찾을 수 있는지 알려 주실 수 있나요?

두 사용자에게 직접 개인 메시지(DM)를 보내야 합니다. 해당 사용자에게 쿼리가 공유되어 있습니다. 다른 타이밍으로 테스트해 보라는 제안에 감사드립니다. 더미 그룹을 사용하여 실험해 보겠습니다.

2개의 좋아요

내가 주목하는 가장 큰 차이는 자동화가 다음에 언제 트리거될지 표시가 없다는 점입니다.

동일한 설정으로 새 자동화를 설정해 보시고, 활성화한 후 '다음 트리거 날짜’가 표시되는지 확인해 보시는 것을 추천합니다.

1개의 좋아요

저는 이 자동화 스크립트를 여러 곳에서 문제없이 사용하고 있습니다. 그중 한 곳의 설정은 다음과 같습니다 - 이 테스트를 위해 반복 주기를 1주로 대신 5분으로 변경했지만, 1주로 설정해 두면 예상대로 매주 실행됩니다):

PM (tech-admin은 그룹입니다)

자동화를 트리거한 후 yoursite/logs의 로그를 확인해 보세요

1개의 좋아요

이것을 확인했습니다:

스크립트 이름과 데이터 탐색기 쿼리 제목에서 컨트롤 노브 이모지를 제거해 보세요. 페이로드를 깨뜨리는 원인이 될 수 있습니다(다만, 문제없을 것이라고 생각은 합니다).

1개의 좋아요

Moin, Lilly 님 안녕하세요.

도와주셔서 감사합니다! 하지만 아직 미스터리가 해결되지 않은 것 같습니다… 그 이유는 다음과 같습니다:

‘트리거 날짜’ 이전에는 '다음 자동화 트리거 시각: [날짜/시간]'이라는 메시지와 함께 정확히 그렇게 보였습니다. 하지만 해당 날짜/시간이 성공적으로 실행되지 않고 지나가면 메시지가 표시되지 않습니다. 테스트 중에 타이밍을 1분으로 변경했는데, 트리거 메시지가 다시 나타났습니다. 트리거가 작동하지 않았던 이전 달의 경우, 타이머를 업데이트했는데 다가오는 달의 첫 번째 시점에 트리거가 될 것이라는 메시지가 표시되었습니다(하지만 실제로는 작동하지 않았습니다).

사실 일부 달에는 작동하고 트리거가 발생했지만 다른 달에는 그렇지 않아서 왜 그런지 명확하지 않습니다. 하지만 이제는 더 이상 자동으로 활성화되지 않는 것 같습니다. 사용 중인 Discourse 버전은 무엇인가요? 제 버전은 2026.5.0-latest입니다…

불행히도 트리거를 실행해도 /logs에 아무것도 표시되지 않습니다. (모든 옵션이 선택되어 있습니다.)

트리거를 1분으로 변경했는데 전송되었기 때문에 그게 문제가 아니라고 생각합니다:

저도 같은 버전을 사용하며, 최소한 주 1회 업데이트를 하고 있습니다.

2개의 좋아요

네, 감사합니다! 월간 트리거를 설정하는 테스트 자동화를 만들어 볼 수 있을까요?

문제가 ‘월간’ 트리거에 있는 것 같습니다. 트리거를 1분 단위로 변경하면 정상 작동하거든요.

1개의 좋아요

네, 월간으로 설정하고 트리거를 걸어봤는데 작동했습니다. 하지만 한 달을 기다려서 테스트하는 건 여기서는 실용적이지 않아요. 몇 분 후 시작 날짜를 설정해볼게요.

수정: 제 환경에서는 월간 설정이 정상적으로 작동하는 것 같습니다.

만약 귀하에게는 정상적으로 작동한다면, 오류가 일부 사용자에게만 발생하는 것일 수 있습니다.

oke, Moin과 오늘 이 케이스에 대해 이야기를 나눴는데, 그녀가 월간 반복 설정을 사용할 때 버그가 있을 수 있다고 언급했어요. 월의 길이가 달라지니까요? 물론 그녀가 맞긴 했는데… 일부러 말이에요. :stuck_out_tongue:

어쨌든, 조금 더 파고들었어요. :detective:

schedule pm with data-explorer results 자동화 스크립트를 코어 plugins/automation/lib/discourse_automation/scripts 폴더에서 실제로 찾을 수 없었으니, 다른 곳에 숨겨져 있는 것 같습니다.

하지만 plugins/automation/lib/discourse_automation/triggers/recurring.rb의 반복(recurring) 로직을 살펴보고 있었는데(아마 해당 스크립트가 이 로직을 사용 중일 겁니다):

월간 반복 자동화의 기본 코드가 실제 달력 날짜 대신 N번째 요일을 계산하고 있으며, Calendar day와 로직이 일치하지 않는다고 생각합니다. RRule에 BYDAY=#{count}#{byday}를 주입함으로써 자동화가 요일 정렬을 강제하고, 대신 BYMONTHDAY를 사용해야 합니다.

즉, 자동화를 4월 15일(4월의 3번째 수요일)에 시작하도록 설정하면 시스템은 규칙을 매월 3번째 수요일에 실행한다고 해석합니다.

5월이 되면 3번째 수요일은 5월 20일이므로, 스케줄이 5일만큼 어긋나게 됩니다.

더 나아가, 자동화를 매월 30일이나 31일(예: “5번째 화요일”)에 설정하면 시스템은 다음 달의 5번째 화요일을 찾게 됩니다. 만약 해당 달에 화요일이 4번밖에 없다면, 자동화는 유효한 날짜를 찾지 못해 해당 월 전체를 조용히 건너뜁니다.

테스트한 수정안이 있으며, 팀이 검토하기를 원한다면 PR을 만들 예정입니다. 이 수정안은 로직을 N번째 요일에서 정확한 달력 날짜로 변경합니다.


테스트 및 디버깅 과정에서 캡처한 몇 가지 스크린샷입니다:

두 개의 인스턴스, 하나는 수정 전이고 다른 하나는 제 로직 수정이 적용된 것입니다.

양쪽에 동일한 자동화를 생성합니다(수정된 버전은 오른쪽):

"다음 자동화 트리거 시점:"이라는 배너의 차이를 확인해 보세요. 5일 어긋남이 보입니다 - 패치되지 않은 버전은 5월 15일이 아닌 3번째 수요일(5월 20일)로 어긋나고 있습니다.

예를 들어, 실제 날짜 대신 4번째 목요일을 찾고 있다면 월 전체가 완전히 건너뛸 수 있습니다.

rails 콘솔에서도 동일한 결과를 테스트할 수 있습니다.

패치 전:

수정 후:

PR은 여기 있습니다:

수정: 버그는 recurring 트리거가 매월 실행되도록 설정된 모든 자동화 스크립트에 영향을 미치는 것으로 보입니다. :grimacing:

때로는 빈 배너도 재현할 수 있습니다. 예를 들어 시작 날짜를 2026년 4월 29일로 설정하면, 5월에는 존재하지 않는 5번째 수요일을 찾을 수 없기 때문에 자동화가 여기서 트리거되지 않습니다: (왼쪽은 수정 전, 오른쪽은 수정 후)

위와 같이 주어진 주(Nth day in week)를 찾을 수 없을 때 버그가 rails에서 NoMethodError를 던지는 것으로 보입니다. 그래서 다음 트리거 배너가 비어 있고 실행이 실패합니다:

3개의 좋아요

@j.jaffeux 이거 간단히 한번 봐주실 수 있을까요? :eyes:

1개의 좋아요

디버깅 중 한 시점에서 기존 동작이 의도된 것일 수 있다는 생각이 들었습니다 (스펙 테스트가 날짜가 밀리는 방식으로 설정되어 있었기 때문이죠). 하지만 이 자동화를 설정하는 관리자들은 날짜를 달력 기준의 월(N월)로, N번째 날짜로 해석하는 것이 아닌 것으로 기대할 가능성이 높다고 생각합니다. 그리고 N번째 날짜를 찾지 못할 때 해당 월을 건너뛰는 동작은 문제가 됩니다.

수정: 다음 달에 정확한 날짜 매칭을 찾을 수 없는 경우, 해당 월의 마지막 날짜로 이동하도록 하는 엣지 케이스 수정과 스펙 테스트를 추가했습니다 (예: 1월 31일 → 2월 28일). 또한 윤년을 고려하도록 했습니다.

2개의 좋아요

Lilly님, 안녕하세요.

이 문제를 조사해 주셔서 정말 감사합니다. 수정 사항이 병합되었는지, 그리고 월별 날짜 문제를 해결할 수 있을지는 잘 모르겠습니다. 하지만 매월 트리거를 업데이트하면 작동할 거라고 생각하는데, 맞나요?

즉, 매월 해당 특정 날짜로 트리거를 명시적으로 업데이트해야 트리거가 실행된다는 뜻이죠. 제 이해가 맞다면, 문제는 시스템이 날짜를 자동으로 선택하려 할 때 발생했던 것 같습니다. 님의 수정 사항이 그 문제를 해결해 주길 바랍니다… 배치 봇이 님에게 좀 도전적인 상황을 주었던 것 같지만, 모든 일이 잘 풀리기를 바랍니다. 다시 한번 도움 주셔서 감사합니다!

모두 감사합니다! <3

죄송합니다. 제 PR은 아직 병합되지 않았으며 팀원의 최종 검토를 기다리고 있습니다. 당분간은 다른 날짜로 트리거를 업데이트해 보실 수 있습니다. 구성할 때 팝업으로 표시되는 “다음 트리거” 메시지가 올바른 다음 월별 실행 날짜를 표시하는지 꼭 확인해 주세요.

1개의 좋아요

수정 사항이 얼마 전에 병합되었습니다.

지금은 정상적으로 작동하나요?

2개의 좋아요

@Moin 님, 안녕하세요

팔로우업해 주셔서 감사합니다. 다음 달에 트리거를 설정하여 예상대로 작동하는지 확인해 보았습니다. 저는 →

이 내용을 따랐기 때문에 실행이 보장되도록 날짜를 수동으로 업데이트해 왔습니다. 하지만 다음 달에는 자동으로 트리거가 발동되는지 확인해 보겠습니다.