关于在play framework 1.x中使用多线程,当时也碰到了不少的问题,比如线程安全,线程锁定所导致的线程运行失败。当时做的项目中,会使用到线程来定时读取某数据库中的数据,所以算是一个定时器队列。在play framework中有一个很好的东西,叫job。
需要定时执行的job类:
public class MyJob extends Job {
public void doJob() {
//业务逻辑
}
}
然后再在程序中进行任务的调用:
@OnApplicationStart
public class MainJob extends Job {
public void doJob() {
new MyJob().now();
}
}
其中,@OnApplicationStart是程序启动时执行,还可以是@on、@every注解,详情参加play framework的job文档。以job的方式来实现定时器异步执行,因为job已经是play framework已经封装好的线程类。