最近使用struts2 action 执行一个大概有2分钟的任务,并把计算结果返回给前台页面。
我想的是在action中创建一个新线程,执行该任务,然后立即返回。
前台页面使用JS定时器,每隔一段时间,查看一下任务的执行情况,若线程计算结束,就返回结果给前台。
不知道在action中创建线程可行吗?线程的计算结果如何返回给前台页面呢?还是定时用JS获取后台执行状态呢?
请教大家!
------解决思路----------------------
在Action中创建线程当然可行,个人觉得要可以在Action执行过程中向application域或者session域等其他域中设置进度值,然后在jsp中不断循环检测这个值,把这个值作为进度条的显示依据,还要设置一个循环结束标记,当Action计算出结果时,就把标记设置为false,结束循环,同时显示结果
另外,楼主的这个问题让我想到了Android的广播事件,Java中也有类似的功能,JMS,即java消息服务,具体怎么实施楼主要自学。
------解决思路----------------------
如果按照LZ说的,完全直接利用ajax做啊,没有必要使用线程
------解决思路----------------------
还是用 DWR 推送吧