2017-03-01 16 views
0

モバイルデバイス上のユーザーからのイメージとそれに付随するデータがあるシナリオがあります。私はAmazon Web Servicesを使用しています。その考え方はS3のイメージとデータをデータベーステーブルに格納することでした。ベストプラクティス - ノードJSエラー処理+フォールバック

ノードJSを使用してこのデータを処理しています。

イメージをS3に保存するには、AWS SDKを使用しています。 レコードをMySQLに保存するには、「mysql」NPMパッケージを使用しています。何も起こらないことを確認し、両方のイベントがスムーズに実行し、そうでない場合確保するためのベストプラクティスの方法は何

問題

。ですから、S3 putObjectが完了してエラーがなくなったとしますが、MySQLの挿入がタイムアウトしたとしましょう。

ソリューション

私は多くを考え出すことができる - と、過去に行ってきました。実際の問題はベストプラクティスと考えることであり、スタックオーバーフローを調べた後、良いシナリオやベストプラクティスの質問に対する答えを見つけることができません:

" 1つの関数が2つ以上の(潜在的にエラーを起こしやすい)リモート依存関係を含む場合にエラーを処理しますか? "

私はちょうど誰かがこれに対する答えを持っていたのだろうか?

ありがとうございました

+0

"ベストウェイ"は、スタックオーバーフローに関する問題のあるフレーズです。それはあなたの質問のような無限の時、特に意見を招待します。また、あなたが過去に行ったことを示していないので、あなたがすでに知っている答えをあなたに伝えているかどうかはわかりません。 http://stackoverflow.com/q/7310521/215552も参照してください。 –

答えて

0

良い質問ですが、非同期トリガを使用することをお勧めします。これは単にこれを行うことを意味しません。イベントがトリガーされるまで、そのようなアクションを許可することはできません。イベントパッケージを使用するノードカスタムイベントストリームの領域では、1つの方法があります。手動でイベントを作成し、特定のレスポンスを聞いてからそれに応じて起動します。これにより、実行したいものだけが実行されます。プロミスのコンセプトを使用することが最善の方法です。プロミスは、実行、従来のコールバックベースのアプローチと比べて非同期操作を管理することができます。また、同期try/catchと同様の手法を使用して非同期エラーを処理することもできます。 ノードにブルーバードを使用してみてください。 https://alexperry.io/node/2015/03/25/promises-in-node.html

関連する問題