QuartzとServiceクラス内でのスレッドの実行について質問があります。
以前の質問に答えてもらいました:Grailsのバックグラウンドプロセスですが、別の問題があります。
セットアップ:サービスを実行するようにセットアップされたジョブがあり、完全に機能します。ただし、Serviceクラス内には、並行して実行できるアルゴリズムがあります。
問題:通常、次の非常に簡単な方法で並列実行するようにコードを設定します。
Item.each {
Thread.start {
do some calculations here
write to DB
}
}
ただし、コードをDBに書き込む必要があり、ドメインクラスを活用する必要があるため、その時点でコードが機能しなくなります。Hibernateは、スレッドが何かにアクセスできないと不平を言います。
Serviceクラス内でスレッドを使用できず、ドメインクラスを活用できない理由がわかりません。誰かがこのジレンマを手伝ってくれる?特別な方法でスレッドを作成する必要がありますか?Serviceクラスでスレッドを作成するべきではないかもしれません(Serviceクラスはスレッド内で実行されているように見えるため)?コードをJobクラスに移動する必要がありますか?
助けてください。
ありがとうございました。