web-dev-qa-db-ja.com

メッセージの処理を遅らせ、処理する前に削除する

モバイルアプリのアクションのプッシュ通知を送信するこの機能が必要ですが、ユーザーがアクションを元に戻すのを、たとえば10秒まで待ちます。

トピックで公開されたメッセージの処理を10秒遅らせることは可能ですか?そして(場合によっては、ユーザーが元に戻す場合)メッセージを処理する必要がない場合は、10秒前にメッセージを削除しますか?

14
iPhoney

サブスクライバーも作成するかどうかによって異なります。

サブスクライバーコードを制御できます。

  1. Pubsubメッセージに、そのメッセージを処理するタイミングのタイムスタンプを追加します。
  2. クライアント(サブスクライバー)には、メッセージを処理するためのタイムスタンプに達した場合にのみメッセージを確認するロジックがあります。
  3. Pubsub自体は、確認されるまで(または10日)メッセージの配信を再試行します。

サブスクライバーを制御できない場合は、my-topicとmy-delayed-topicを使用できます。人々は前のトピックに公開することができ、そのトピックには、実装するサブスクライバーが1つだけあります。

  1. My-topicへの以前と同じ公開メッセージ。
  2. Yoは、上記と同じスロットルを実行できるそのトピックのサブスクライバーを持ちます。
  3. そのメッセージの時間が到達した場合、ハンドラーはそのメッセージをmy-delayed-topicに公開/中継します。

上記のロジックは、pubsub-topic + pubsub-topicの代わりにtask-queue + pubsub-topicを使用して実装することもできます。

17
Gabriel Kohen