1

私の SaaS 製品は、イベント通知を Webhook としてポストします。この質問は、webhook の URL に投稿するときに失敗した場合の処理​​に関するものです。

イベント データを投稿した URL から 200 OK 応答コードを受信しなかった場合、そのイベント通知を失敗としてマークし、リトライ プロセスを開始します。現在、イベント データの一部として送信する必要があるデータの ID を保存し、再試行のたびに DB からフェッチします。

他の人がこれをどのように処理するかを見たかっただけですか?もう 1 つ考えられるのは、実際のペイロード (JSON または XML 形式) を DB に格納し、再試行のたびに送信することです。しかし、これが原因で発生する可能性のあるデータ同期の問題をイベント レシーバーがどのように処理すると予想されるでしょうか?

4

1 に答える 1

2

Webhookレシーバーに、エンドポイントをサービスに登録するときにデータを再POSTするかどうかを選択するオプションを提供する必要があるようです。また、サービスがさまざまな応答コードを処理する方法を明確に文書化することを強くお勧めします。

同期の問題を電子メールでエンドポイント管理者に通知する価値があるかもしれません。自分のサービスやPOSTテストデータを定期的にpingできるので、これはもっと便利です。

また、次のことも考慮してください。サービスが失敗するとどうなりますか。同期が重要な場合、サービスとエンドポイントはその問題をどのように解決しますか?

投稿するデータの種類と、恐れている正確な同期の問題について、あまり多くのコンテキストを提供していませんでした。もっと共有できますか?

編集済み:MailChimpがこの問題を処理する方法は次のとおりです。彼らは明らかにあなたと同じ船に乗っています。

オンにしたイベントが発生すると、指定したURLにHTTPPOSTリクエストが送信されます。そのURLが利用できない場合、または応答に時間がかかりすぎる場合(15秒以上)、リクエストをキャンセルして、後で再試行します。再試行は、1時間15分の間に増加する間隔で実行されます。ユーザーからのフィードバックを受け取り始めると、これらの時間枠は微調整される可能性があります。

イベントごとに、イベントに基づいてさまざまなデータを返します。以下は、各イベントのサンプルデータです。上記のPostBinツールを使用してこれを簡単に確認することもできます。一般的に、各イベントにはタイプとfired_atフィールドがあり、イベントのタイプを追跡し、イベントのタイムスタンプ(GMTで!)を取得するのに役立ちます。

于 2012-02-08T21:28:48.257 に答える