MQ通信任务管理下发通知如何同步给Control层

项目中需要优化任务管理系统,项目由SSM框架搭建,Control层接受到前台请求消息后,由任务管理Service 发送消息到子系统处理,子系统处理完毕后回执消息到任务管理层,任务管理层需要同步信息给Control,反馈到界面。比如浏览查询下载,项目使用了RabbitMQ,集成了Spring上,监听器实现了MessageListener接口,因为Control层调用任务管理发送消息后,需要等待子系统处理返回信息,所以Control层给任务管理Service提供了一个对象,对象中有Flag = false,当任务管理Service监听到消息MessageListener ----void OnMessage函数反应后,Flag 置 为TRUE ,任务管理调用TaskService后发送消息,做了一个死循环校验传递给Service的对象Flag,现在项目提出优化这一部分不用死循环,比如完成后触发操作反馈给页面,请问有什么好的方法。


一只斗牛犬
浏览 870回答 1
1回答

四季花海

既然是这种模式肯定任务就不是短时间处理完的;服务端内部处理既然异步了,那么httpService到客户端也应该异步——如果采取空耗无疑白白浪费大把资源。因此适合的该场景的选择应该用webSocket组件或者自己客户端去轮询任务列表(webSocket当然也有这种封装,还取决于产品设计等因素)。当然如果你们咸蛋的慌,任务本身执行很短,httpService服务器空耗也能满足负载,那么你选取Controller Waite For TaskFinish 也不是不可以。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server