我已经设置了一个服务,可以从用户上传的文件中导入大量数据。我希望用户能够在文件处理过程中继续使用网站。我通过创建线程来实现这一点。
Thread.start {
//work done here
}
现在问题出现了,我不想同时运行多个线程。这是我尝试过的方法:
class SomeService {
Thread thread = new Thread()
def serviceMethod() {
if (!thread?.isAlive()) {
thread.start {
//Do work here
}
}
}
}
然而,这并不起作用。thread.isAlive()
总是返回false。你们有什么想法可以让我实现这个吗?
withTransaction
应该可以解决这个问题(至少对于使用 hibernate 的情况,我不能确定 mongo),但是 executor 插件非常轻量级,所以不应该轻易忽略它。 - Ian Roberts