「Fire and Forget」の危険を克服する
非同期プログラミングの領域では、多くの場合、タスクを実行せずにタスクを実行することが望ましいです。進行状況を監視したり、発生する可能性のある例外を処理したりできます。 「Fire and Forget」アプローチはこれを達成することを目的としていますが、その実装ではエラーの処理に関する懸念が生じる可能性があります。
例外飲み込みのジレンマ
「Fire and Forget」拡張メソッドは例外を単に無視するため、タスクの実行内のバグが見逃される可能性があり、致命的な事態につながる可能性があります。 結果。この問題に対処するために、この質問では、例外がスローされてエスカレートされるようにして、タスクを待機する代替アプローチを提案しています。
「Fire and Forget」のセマンティクス
ただし、「真の」「Fire and Forget」アプローチは、タスクの結果を完全に無視することを意味することを認識することが重要です。言い換えれば、いつ完了するか、成功するか失敗するかには興味がありません。この哲学は、現実のシナリオではほとんど実用的ではありません。
「ファイア アンド フォーゲット」の例外処理
「ファイア アンド フォーゲット」アプローチを維持したい場合は、まだ特定の例外を処理しているため、質問では、許容可能な例外タイプのリストを受け入れることができる代替の拡張メソッドが提案されています。このメソッドを使用すると、タスクを待機できますが、許容できないエラーが発生した場合にのみ例外をスローできます。
結論
従来の「Fire」を使用するかどうかの決定and Forget」アプローチまたは例外処理を備えた修正バージョンは、必要なセマンティクスによって異なります。例外検出を確実に行うことが最優先である場合は、変更された方法をお勧めします。ただし、例外処理を行わずに真に独立して実行することが望ましい場合は、元のメソッドがより良い選択であることに変わりはありません。
以上が非同期タスクを「起動して忘れる」べきですか、それとも代わりに例外を処理すべきですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。