私はGrailsアプリを持っており、実行時間は最大5分(おそらくそれ以上)で、計算量の多い最適化が行われています。現在、メインのリクエストスレッドでこれらを行っています。つまり、リクエストが戻るまでに5分かかります。それは機能しますが、もちろん使いやすさの観点からは恐ろしいものです。
では、これを非同期的に実装するための最良の方法は何でしょうか?ThreadPoolExecutorが関与する必要があると思いますが、どのように開始してアクセスするのですか?Grailsサービスとしてモデル化できますか?またはジョブ(ただし、これらは定期的なジョブのみを対象としているようです)?
また、仕事のステータスを処理するための最良の方法は何ですか?フラグを介して、またはおそらくDB内のまったく新しいクラスを介して?ブラウザにスピナーを表示し、ステータスが変わるまでポーリングを続けますか?