【300分】问一个异步方面的问题
需求是这样的:
1.用户submit之后,提交一个任务交给webservice异步处理【可以简单理解为往数据库里新插入了一个任务】
2.提交完成后,用户可以在页面上选择查看任务列表
现在的情况是,
但是当用户选择查看任务列表时,没有重新查询数据库获取最新的任务,导致最新提交的任务没有出现在任务列表上,用户只有点击刷新按钮,才能拿到。
简单的说,用户不手动刷新,就只能看到旧的任务列表而不能反应出最新submit的那个任务。
(1) submitJob(); //提交后,异步处理
(2) viewJobs(); //不能看到最新的那个任务
(3) refreshJobs();//能看到最新的那个任务
-----------------
现在是希望用户提交后,选择查看任务列表时,能看到最新的job
考虑过
1,在submitJob()里面call refreshJobs(),
但是由于是异步,submitJob之后直接refreshJobs也未必能直接拿到,比如submitJob过程中数据库插入数据较慢,refreshJobs的时候还没有插入。
2,submitJob之后往session里插入一个flag=true,viewJobs的时候如果是flag=true则自动做一次refreshJobs操作
3,由于是用JSF实现的,甚至考虑了一下有没有PhaseListener可以辅助实现的可能(不熟)
-----------------
需求应该挺常见的,各位有没有好的实现思路?