メールキューが空になるのを待つためのAPIエンドポイント?

こんにちは、

/admin/email/handle_mail API エンドポイントを使用してメールをインジェクトすると、メールは処理のためにスケジュールされます。キューが空になるまで待機するための API エンドポイント、またはキューのサイズを取得するための API エンドポイントはありますか?

よろしくお願いいたします

どのような問題に直面しており、それを解決しようとしていますか?

どのようなご質問でしょうか?上記の問題について、不明確な点がありますか?

解決策を求めていますが、問題が何なのか明確ではありません。これらのメッセージは主に非常に迅速に処理され、問題にはなりません。キューに格納されている場合は、Sidekiqからリストを取得できるかもしれません。

なぜキューに格納されたメッセージのリストが必要なのでしょうか?基本的にキューは存在しません。

それは誤解です。メール処理は非同期でキューイングされるため、キューが空になるのを待つことに意味があります。

現在、そのための API は公開していないと思います。最も近いものとしては、デフォルトキューの Sidekiq Web UI があり、このジョブは /sidekiq/queues/default で待機します。

メールの処理は逐次行われるため、以下の回避策が機能します。

  • /admin/email/handle_mail に、Red Lantern (タイムスタンプ) のような一意の件名/タイトルを持つメールを、categoryname@example.com 宛てに送信します。
  • categoryname@example.com 宛の「受信メール」設定が有効になっているカテゴリの カテゴリ ID を確認します。
  • 以下のパラメータで 検索 を実行します。
    • ‘term’ = Red Lantern (タイムスタンプ)
    • ‘search_context[type]’ = ‘category’
    • ‘search_context[id]’: カテゴリ ID
  • 結果の ‘topics’ をループし、‘title’ の値を Red Lantern (タイムスタンプ) と比較します。
  • 見つかった場合、このメールより前のすべてのメールが処理されたことを意味します。
  • 検索結果から取得した topic['id'] を使用して、Red Lantern (タイムスタンプ) のトピックを 削除 します。