我有一个关于 Quartz 和在 Service 类中运行线程的问题。
我回答了我之前的问题:Grails background process,但是我还有另一个问题。
设置:我有一个设置为运行服务的作业,它运行良好。但是在服务类中,我有一个可以并行运行的算法。
问题:通常我会以以下非常简单的方式将代码设置为并行运行:
Item.each {
Thread.start {
do some calculations here
write to DB
}
}
但是,由于我的代码需要写入数据库并且我需要利用域类,因此我的代码会刹车。Hibernate 抱怨线程无权访问某些东西。
我不确定为什么我不能在 Service 类中使用线程并利用域类。有人可以帮我解决这个难题吗?我需要以特殊方式创建线程吗?可能我不应该在 Service 类中创建线程(因为 Service 类似乎在线程中运行)?我需要将我的代码移动到 Job 类中吗?
请帮忙。
谢谢你。