ホームページ >バックエンド開発 >PHPチュートリアル >非同期キューのエラーを処理するにはどうすればよいですか?

非同期キューのエラーを処理するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-08-25 10:37:272060ブラウズ

これで、パブリック アカウント ツールが作成されました。ユーザー グループ A はグループでテンプレート メッセージを送信でき、ユーザー グループ B はテンプレート メッセージを受信できます。

ユーザー A がページにコンテンツを入力して送信した後、一括送信されるため非常に時間がかかる可能性があるため、非同期処理を実装し、プッシュが成功した場合はすべてのユーザーのメッセージをキューにプッシュします。 、成功したことがユーザー A に返されます。ユーザー A のフロントエンド操作が終了しました。

その後、一定期間ごとにバックグラウンドでキューをスキャンし、キューにデータがある場合は一括プッシュが実行されます。

現在、公式アカウントに不確実な要因が現れ始めており (API が変更されることもあれば、サーバーの 50X エラーが発生することもあります)、それにより私の側でキューのプッシュが失敗し始めます。幸いなことに、ネットワークのタイムアウトや一時的なエラーは、スケジュールされた再試行によって解決できます。

しかし、サーバー API がこのように置き換えられた場合、プッシュは 100% 失敗し、ユーザー グループ B はメッセージを受信しません。ただし、このエラーはユーザー A には表示されず、メッセージは正常に送信されたと認識されます。 (非同期に変更したため、キューに入れられた時点でプッシュが終了し、この大きなプッシュリストを見つめ続けることはできません。非常に長い時間がかかる場合があります)

そこで、公式アカウントAPIサーバーに問題が発生した場合に、ユーザーAに公式アカウントサーバーに問題があることを認識させることができる設計ソリューションがあるかどうかを尋ねたいと思います。

プッシュリストのステータスをユーザーAに公開することを検討しました。ユーザーAは自分でプッシュのステータスを確認できます。ただし、直感的ではないため、ユーザー A はこのリストを見ない可能性があります。

返信内容:

これで、パブリック アカウント ツールが作成されました。ユーザー グループ A はグループでテンプレート メッセージを送信でき、ユーザー グループ B はテンプレート メッセージを受信できます。

ユーザー A がページにコンテンツを入力して送信した後、一括送信されるため非常に時間がかかる可能性があるため、非同期処理を実装し、プッシュが成功した場合はすべてのユーザーのメッセージをキューにプッシュします。 、成功したことがユーザー A に返されます。ユーザー A のフロントエンド操作が終了しました。

その後、バックグラウンドは一定時間ごとにキューをスキャンし、キューにデータがある場合は一括プッシュが実行されます。

現在、公式アカウントに不確実な要因が現れ始めており (API が変更されることもあれば、サーバーの 50X エラーが発生することもあります)、それにより私の側でキューのプッシュが失敗し始めます。幸いなことに、ネットワークのタイムアウトや一時的なエラーは、スケジュールされた再試行によって解決できます。

しかし、サーバー API がこのように置き換えられた場合、プッシュは 100% 失敗し、ユーザー グループ B はメッセージを受信しません。ただし、このエラーはユーザー A には表示されず、メッセージは正常に送信されたと認識されます。 (非同期に変更したため、キューに入れられた時点でプッシュが終了し、この大きなプッシュリストを見つめ続けることはできません。非常に長い時間がかかる場合があります)

そこで、公式アカウントAPIサーバーに問題が発生した場合に、ユーザーAに公式アカウントサーバーに問題があることを認識させることができる設計ソリューションがあるかどうかを尋ねたいと思います。

プッシュリストのステータスをユーザーAに公開することを検討しました。ユーザーAは自分でプッシュのステータスを確認できます。ただし、直感的ではないため、ユーザー A はこのリストを見ない可能性があります。

この解決策は不合理ではありませんか? たとえユーザー A が例外情報を取得したとしても、問題を処理するのはあなたです。なぜ最初にサーバー API の問題を解決する必要があると思いますか?鍵は

エラーログを書き込みます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。