为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

既然是这种模式肯定任务就不是短时间处理完的;

服务端内部处理既然异步了,那么httpService到客户端也应该异步——如果采取空耗无疑白白浪费大把资源。因此适合的该场景的选择应该用webSocket组件或者自己客户端去轮询任务列表(webSocket当然也有这种封装,还取决于产品设计等因素)。

当然如果你们咸蛋的慌,任务本身执行很短,httpService服务器空耗也能满足负载,那么你选取Controller Waite For TaskFinish 也不是不可以。


查看完整回答
反对 回复 2018-08-22
  • 1 回答
  • 0 关注
  • 869 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信