메일 큐가 비울 때까지 기다리는 API 엔드포인트가 있나요?

안녕하세요,

/admin/email/handle_mail API 엔드포인트를 사용하여 메일을 주입하면, 해당 메일들은 처리를 위해 예약됩니다. 큐가 비어질 때까지 대기하는 API 엔드포인트가 있나요? 아니면 큐의 크기를 가져오는 방법은 없나요?

감사합니다

해결하려고 하는 문제는 무엇인가요?

무엇을 물어보시는지 잘 모르겠습니다. 위에서 표현된 문제에 모호한 부분이 있나요?

해결책을 요청하셨는데, 문제가 무엇인지 명확하지 않습니다. 대부분의 메시지는 상당히 빠르게 처리되며 문제가 되지 않습니다. 메시지가 큐에 쌓여 있다면 sidekiq에서 목록을 가져올 수 있을 것 같습니다.

큐에 쌓인 메시지 목록이 왜 필요한가요? 대부분 큐 자체가 존재하지 않습니다.

잘못 알고 계십니다: 메일 처리는 비동기적이며 큐에 쌓이는 방식입니다. 그래서 큐가 비어질 때까지 기다리는 것이 의미가 있습니다.

현재 해당 기능을 위한 API를 노출하지 않는 것으로 보입니다. 가장 가까운 기능은 이 작업이 대기할 기본 큐의 Sidekiq Web UI이며, /sidekiq/queues/default 경로에서 접근할 수 있습니다.

이메일 처리가 순차적으로 이루어지기 때문에, 다음 우회 방법이 작동합니다:

  • /admin/email/handle_mail을 통해 categoryname@example.com으로 **Red Lantern (timestamp)**와 같이 고유한 제목/제목을 가진 메일을 제출합니다.
  • email in 설정이 categoryname@example.com인 카테고리의 category id를 찾습니다.
  • 다음 매개변수를 사용하여 검색합니다:
    • ‘term’ = Red Lantern (timestamp)
    • ‘search_context[type]’ = ‘category’
    • ‘search_context[id]’: category id
  • 결과의 'topics’를 순회하며 ‘title’ 값을 **Red Lantern (timestamp)**와 비교합니다.
  • 찾은 경우, 이 메일 이전의 모든 메일이 처리되었음을 의미합니다.
  • 검색 결과의 topic['id']를 사용하여 Red Lantern (timestamp) 토픽을 삭제합니다