Jobs::DeleteReplies Job의 Sidekiq 오류

안녕하세요,
Jobs::DeleteReplies 작업에서 실패한 작업이 많이 발생하고 있습니다. 제 플러그인과는 무관할 것 같습니다. 업그레이드 간의 호환성 문제일까요?

Jobs::HandledExceptionWrapper: Wrapped NoMethodError: undefined method minutes’ for nil:NilClass`

Sidekiq의 “retries” 탭에 동일한 작업이 여러 개 쌓이고 있습니다..

image

조언을 주시면 감사하겠습니다..

업데이트: 관련 topic_id를 찾아 해당 특정 토픽 타이머를 삭제했습니다. 도움이 되길 바랍니다..
버그의 결과일 수 있으므로 이 내용을 여기에 남겨 둡니다..

최근 매우 최근에 적용한 변경 사항으로 인한 버그입니다. 다음 주까지 수정될 예정입니다.

확인해 주셔서 감사합니다. 다른 topic_timers에서도 더 문제가 발생할까요? 어떤 유형의 타이머에 영향이 있나요? "x시간 후 게시글 삭제"만 해당되나요? 실제로 큐에 정말 많이 쌓였습니다(몇 시간 만에 수천 개).. (다행히 prometheus가 있네요… :slight_smile: )

수정 사항은 다음과 같습니다:

이 마이그레이션은 예상대로 작동하지 않았습니다:

DB.exec("UPDATE topic_timers SET duration_minutes = (duration * 60 * 24) WHERE duration_minutes != duration AND status_type = 7 AND duration IS NOT NULL")
DB.exec("UPDATE topic_timers SET duration_minutes = (duration * 60) WHERE duration_minutes != duration AND status_type != 7 AND duration IS NOT NULL")

WHERE duration_minutes != duration 조건은 duration_minutes가 NULL인 경우 작동하지 않습니다. 모든 레코드는이 NULL이었기 때문입니다.

네, Jobs::DeleteReplies 작업만 새로운 duration_minutes 필드를 직접 참조하고 있었기 때문에, 다른 타이머는 영향을 받지 않았을 것입니다(제가 파악한 바로는).