我需要這種能力來發送移動應用中的操作的推送通知,但等待用戶撤消操作,直到說出10秒。處理延遲消息並在處理前刪除
是否有可能將發佈在主題中的消息處理延遲10秒?然後(有時候,如果用戶撤消)在10秒之前刪除消息,如果它不需要處理?
我需要這種能力來發送移動應用中的操作的推送通知,但等待用戶撤消操作,直到說出10秒。處理延遲消息並在處理前刪除
是否有可能將發佈在主題中的消息處理延遲10秒?然後(有時候,如果用戶撤消)在10秒之前刪除消息,如果它不需要處理?
取決於如果你寫的用戶以及與否:
你可以控制你的用戶代碼:
如果你沒有在你的用戶控制你可以有我的話題和我的延遲話題。人們可以發佈到前一個主題,該主題將只有一個用戶,你會實現:
您也可以使用task-queue + pubsub-topic而不是pubsub-topic + pubsub-topic來實現上述邏輯。
感謝加百列,認爲我理解儘管模糊不清。我還沒有使用pubsub,如果我延遲確認,重試的頻率如何?另一部分是我可以使用句柄/標識符刪除消息,如果它在閾值時間之前未被清除。 – iPhoney
這將取決於它是一個拉或推的話題。一般來說,它會持續7天。重試的時間間隔爲:「任何以下HTTP狀態代碼都被Pub/Sub系統解釋爲成功:200,201,204或102。如果您的服務返回任何其他代碼,則Google Cloud Pub/Sub會使用指數退避算法(最長爲10秒)重試最多7天。默認情況下,確認期限爲10秒,但您可以在代碼中更改它。請參閱此部分:https://cloud.google.com/pubsub/docs/subscriber#ack_deadline –
再次感謝您分享如何使用pubsub工作。我的2美分隨着平臺的成熟可能對揭露作爲單獨的產品排隊,並具有延遲交付或在PubSub中構建相同功能的功能。 – iPhoney
你的意思是說你想延遲發佈一條消息並且可能根本沒有發佈它,或者你的意思是說,在訂閱接收到消息後,你發送一個通知並且可能想要做一些與消息不同的事情收到的訂閱是基於某人對通知的反應? –
@凱馬爾,我的意思是後者。發佈消息 - >延遲發送訂閱10秒 - >在這10秒內,我希望能夠從隊列中刪除消息(如果用戶按下撤消,通常在10秒內) - >如果我不刪除,消息被傳送給訂戶。我可以通過本地隊列機制手動構建延遲交付,但我想知道是否google-pubsub可以做到這一點。 – iPhoney
結果AWS SQS具有延遲隊列的概念:http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-delay-queues.html – iPhoney