問題タブ [spring-cloud-gcp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asynchronous - GCP のステートレス スプリング ブート サービスから非同期の長時間実行プロセスのステータスを追跡するにはどうすればよいですか?
GCP Kubernetes Engine
HTTP (gRpc 経由) API をクライアントに公開する、いくつかの Spring Boot サービスが実行されています。1 つのタスクは、非常に大きなデータ ファイルをインポートすることです。提案された方法は、ファイルを Google ストレージにアップロードasynchronous import
し、インポート場所へのファイルパスを提供してトリガーし、リクエストが有効な場合は HTTP 202 を返すことです。
次に、永続化レイヤー (スパナ) 内でインポートのステータスを保留に設定し、非同期解析とバッチ取り込みプロセスをトリガーします。インポートが成功した場合、ステータスを完了に設定します。インポートが成功したかどうかをクライアントが知る唯一の方法は、戻ってきて、poll our API for the current status.
そして、そこで疑問が生じます。load-balanced pods
同じ種類がいくつかあります。インポート サービスがクラッシュした場合 (例外処理ではなくクラッシュを意味します)、最終的にステータスを中止に設定する簡単な方法はありません。ステータスは永久に保留されたままになります。
可能であれば、hazelcast のような追加レイヤーの使用を回避したいと考えています。また、1 つまたは他の Pod と直接通信し、状態を監視し、高度なコールバック処理を実行する別のサービスを使用することは避けたいと考えています。
ベストプラクティスの方法でその問題に取り組む方法のヒントを誰かに与えることができますか?
どうもありがとう。