借助消息队列实现评测的负载均衡 #341
Open
借助消息队列实现评测的负载均衡 #341
Comments
之前是认为不需要这么复杂的状态管理,这样感觉复杂度太高了,而且没有带来太多的好处? |
当前其实挺够用了,只不过我觉得在 web(django) server 这边的 worker 里发评测请求并等待,和评测机的功能有些耦合。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
现在的评测虽然是基于消息队列做的,但是在负载均衡这块只是用 django select 简单加了个锁,找一台比较“空闲”的机器然后用它评测。
我觉得在 OJ 这个场景下,是不是可以把“判断空闲”这个事情让评测机自己来做,往消息队列里塞评测任务之前取消"加锁选机器"这个环节,把这个事情交给 broker 和 worker 来做,毕竟每个评测任务消耗的资源也不是完全一样的,还能省得用 Django 重复实现 worker 的选择?
如果按照我的想法修改以后,OnlineJudge 需要增加几个接口
p.s. 我还没有实际尝试,暂时不能确定这个方案的性能如何,先讨论一下
The text was updated successfully, but these errors were encountered: