当前在线人数13967
首页 - 分类讨论区 - 电脑网络 - 葵花宝典版 - 同主题阅读文章

此篇文章共收到打赏
0

  • 10
  • 20
  • 50
  • 100
您目前伪币余额:0
未名交友
[更多]
[更多]
请教一个系统设计的问题
[版面:葵花宝典][首篇作者:klabe] , 2019年10月21日10:58:46 ,770次阅读,8次回复
来APP回复,赚取更多伪币 关注本站公众号:
[分页:1 ]
klabe
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 1 ]

发信人: klabe (klabe), 信区: Programming
标  题: 请教一个系统设计的问题
发信站: BBS 未名空间站 (Mon Oct 21 10:58:46 2019, 美东)

我们有一个web application是帮助志愿者和医学研究人员互相匹配的,根据志愿者的
profile会自动提供合适的医学研究,根据医学研究的eligibility criteria会自动推
荐志愿者
每次志愿者修改profile或者研究修改eligibility criteria都会触发匹配,UI会block
直到匹配结束,这个过程通常要很久,所以用户体验不是很好

现在希望可以每次修改后就自动返回页面,然后让匹配在后台自己执行,执行完以后给
用户一个提示,但是有这样一些问题
1. 用户返回以后,当匹配还在执行的时候,是否给用户提供最新的推荐,还是等匹配
完成后再给推荐?如何实现这两种情况呢?
2. 用户可以多次提交修改,但是只想匹配一次,因为匹配会读取最新修改的数据进行
匹配

我们现在是一个monolithic的app,apache+tomcat,用的是spring+hibernate+redis+
oracle,没有用任何reactive的功能,是否应该考虑用spring webflux呢或者kafka?

谢谢了
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 141.]

 
magliner
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 2 ]

发信人: magliner (magliner), 信区: Programming
标  题: Re: 请教一个系统设计的问题
发信站: BBS 未名空间站 (Mon Oct 21 11:14:53 2019, 美东)

我不懂啊, 为啥做个匹配会这么难 ? 临床方面的数据量按说应该很小啊,几千人了
不得了。怎么听起来这么难,那交友网站,婚介网站岂不是难上天了。
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 205.]

 
klabe
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 3 ]

发信人: klabe (klabe), 信区: Programming
标  题: Re: 请教一个系统设计的问题
发信站: BBS 未名空间站 (Mon Oct 21 11:18:15 2019, 美东)

不是几千人,目前我们的系统有3万人,2000个研究
有一个大城市的机构要adopt,他们的目标是100万人和1万的研究
目前我们的匹配是用的fork join pool
【 在 magliner (magliner) 的大作中提到: 】
: 我不懂啊, 为啥做个匹配会这么难 ? 临床方面的数据量按说应该很小啊,几千人了
: 不得了。怎么听起来这么难,那交友网站,婚介网站岂不是难上天了。



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 141.]

 
hamsterdam4
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 4 ]

发信人: hamsterdam4 (蜜桃BB霜), 信区: Programming
标  题: Re: 请教一个系统设计的问题
发信站: BBS 未名空间站 (Mon Oct 21 11:22:17 2019, 美东)

spring @async controller?


【 在 klabe (klabe) 的大作中提到: 】
: 我们有一个web application是帮助志愿者和医学研究人员互相匹配的,根据志愿者的
: profile会自动提供合适的医学研究,根据医学研究的eligibility criteria会自动推
: 荐志愿者
: 每次志愿者修改profile或者研究修改eligibility criteria都会触发匹配,UI会
block
: 直到匹配结束,这个过程通常要很久,所以用户体验不是很好
: 现在希望可以每次修改后就自动返回页面,然后让匹配在后台自己执行,执行完以后给
: 用户一个提示,但是有这样一些问题
: 1. 用户返回以后,当匹配还在执行的时候,是否给用户提供最新的推荐,还是等匹配
: 完成后再给推荐?如何实现这两种情况呢?
: 2. 用户可以多次提交修改,但是只想匹配一次,因为匹配会读取最新修改的数据进行
: ...................



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 74.]

 
klabe
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 5 ]

发信人: klabe (klabe), 信区: Programming
标  题: Re: 请教一个系统设计的问题
发信站: BBS 未名空间站 (Mon Oct 21 12:43:47 2019, 美东)

谢谢,但是如何不重复提交匹配请求呢?并且在匹配还在执行的时候或者等待执行的时
候,在ui上提示用户匹配在执行,所以应该需要查询匹配对某一个用户是否在执行?
【 在 hamsterdam4 (蜜桃BB霜) 的大作中提到: 】
: spring @async controller?
: block



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 141.]

 
Reek
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 6 ]

发信人: Reek (社会底层), 信区: Programming
标  题: Re: 请教一个系统设计的问题
发信站: BBS 未名空间站 (Mon Oct 21 13:12:39 2019, 美东)


【 在 klabe (klabe) 的大作中提到: 】
: 谢谢,但是如何不重复提交匹配请求呢?并且在匹配还在执行的时候或者等待执行的时
: 候,在ui上提示用户匹配在执行,所以应该需要查询匹配对某一个用户是否在执行?


不重复提交请求在前端控制一下就行了,比如5分钟之内不能重复提交.
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 161.]

 
wicoo
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 7 ]

发信人: wicoo (wicoo), 信区: Programming
标  题: Re: 请教一个系统设计的问题
发信站: BBS 未名空间站 (Mon Oct 21 18:40:13 2019, 美东)

可以试试这样设计:
1)UI发送的请求服务器立马返回,但是不返回查询结果,这样UI不会卡;
2)服务器跟UI之间维持一个socket连接,方便推送新的结果;
3)服务器为每个用户存储一个上次更新时间,以及上次查询状态位;
4)当收到志愿者请求,首先查询上次更新时间,如果小于设定时间间隔,则返回错误
,UI可以立马得知错误消息;如果大于设定时间间隔,但是上次查询尚未结束,返回错
误,UI可以得知错误消息;如果大于设定时间间隔,并且上次查询已经结束,则启动新
的查询;
5)研究院更新方法可以跟志愿者更新方法类似处理;
6)当服务器收到合理的请求时,启动新的匹配过程;当得到新的匹配结果,写入数据
库,并使用socket往用户界面推送结果,这样用户可以在更新数据之后逐渐收到匹配结
果;
7)匹配结束时通知用户,如果匹配结果为空也通知用户;如果需要跟细节的进度,可
以实时更新用户查询进度条,当前查询了多少家研究院。
希望对你有帮助。

【 在 klabe (klabe) 的大作中提到: 】
: 我们有一个web application是帮助志愿者和医学研究人员互相匹配的,根据志愿者的
: profile会自动提供合适的医学研究,根据医学研究的eligibility criteria会自动推
: 荐志愿者
: 每次志愿者修改profile或者研究修改eligibility criteria都会触发匹配,UI会
block
: 直到匹配结束,这个过程通常要很久,所以用户体验不是很好
: 现在希望可以每次修改后就自动返回页面,然后让匹配在后台自己执行,执行完以后给
: 用户一个提示,但是有这样一些问题
: 1. 用户返回以后,当匹配还在执行的时候,是否给用户提供最新的推荐,还是等匹配
: 完成后再给推荐?如何实现这两种情况呢?
: 2. 用户可以多次提交修改,但是只想匹配一次,因为匹配会读取最新修改的数据进行
: ...................



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 107.]

 
aodeng
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 8 ]

发信人: aodeng (good), 信区: Programming
标  题: Re: 请教一个系统设计的问题
发信站: BBS 未名空间站 (Mon Oct 21 23:58:16 2019, 美东)

不使用队列(如celery,rabbitmq)的话,把匹配的活放到数据库里,单独做个
service或应用,定时检查数据库求并按照顺序运行匹配任务

--
☆ 发自 iPhone 买买提 1.24.11
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 69.]

 
walkrandom
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 9 ]

发信人: walkrandom (walkrandom), 信区: Programming
标  题: Re: 请教一个系统设计的问题
发信站: BBS 未名空间站 (Tue Oct 22 12:11:16 2019, 美东)

spring这一套都是黑箱。
sometimes works, sometime not
没人知道怎么运作的。
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 104.]

[分页:1 ]
[快速返回] [ 进入葵花宝典讨论区] [返回顶部]
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996