我有一项任务是在HTTP Post Request之后在后台执行此操作, 所以我可以这样在Java7 EE中这样做。 (他们说Java7 EE可以使用JSE concurrencies)。所以这是我的代码:
@POST public String contactMe( @FormParam("name") String name, @FormParam("email") String email, @FormParam("website") String website, @FormParam("message") String message) {
System.out.println("you have sent name " + name + " email " + email + " website " + website + " message " + message);
/*methode Timer*/
Timer timer = new Timer();
MyTimerTask myTimerTask=new MyTimerTask();
timer.schedule(myTimerTask,10000);
//I have to do something n back ground that take 10 seconds at least
return "<h1>DONE</h1>";
}
我很困惑可能有更好的方法来处理企业世界中的这类问题,因为内存管理与桌面应用程序不同。 提前致谢。
答案 0 :(得分:1)
最后,我得到了答案,我对JEE7多线程工具感到满意:
@Stateless
public class ReportBean {
@Resource
private ManagedThreadFactory threadFactory;
public void runReports() {
Thread thread = threadFactory.newThread(new Runnable());
thread.start();
}
我在工作中使用过这种豆子...... Java EE7提供了一种使用JAVA SE的新方法,该方法由Web容器管理,而不是由JVM管理。
答案 1 :(得分:0)
计时器的用途是什么?
您的代码会收到一些GET信息,然后等待10秒钟,然后开始执行myTimerTask。
编辑:
稍微检查一下你的帖子:看起来你想要同步执行任务;如果确实如此,那就执行timertask。
但是你的评论表明你希望在后台执行任务,但后来我不明白为什么你似乎暗示你要等待10秒。