我用rufus调度器构建了一个动态web接口调度程序。大约有38000个工作在运行。运行作业没问题。然而,向rufus注册工作太慢了。注册38000个作业大约需要6分钟(355秒)。
有什么办法可以加速这一点吗?我的环境如下..。
OS: RHEL 2.6.32-504.16.2.el6.x86_64
Machine: 16 core, 16G
Rufus scheduler: v3.1.0, max thread 100, as singleton
jruby: v1.7.19 (1.9.3p551)
sinatra: v1.4.6 with puma -t 8:8
jruby option: -J-Xmx10240m -J-Xms2048m -J-server我试过几次修改。但对总时间没有太大的影响。
发布于 2015-12-24 03:21:28
Rufus-调度程序是指在使用线程的环境中运行。为了防止两个线程同时调度时的冲突,有一个互斥“覆盖”调度。
https://github.com/jmettraux/rufus-scheduler/blob/f859e31339bd78330d88f7cee7854d896ada381e/lib/rufus/scheduler.rb#L205 https://github.com/jmettraux/rufus-scheduler/blob/f859e31339bd78330d88f7cee7854d896ada381e/lib/rufus/scheduler.rb#L637 array.rb#L44
正如您所看到的,也有一个检查,看看工作是否已经安排好了。
有什么办法可以加速这一点吗?
在https://github.com/jmettraux/rufus-scheduler/issues上提交一个带有StackOverflow问题链接的问题,您将得到帮助。别忘了把我在上面的评论中要求的信息包括进去。
诚挚的问候。
更新
我在我的MacBook上进行了测试,结果如下:https://gist.github.com/jmettraux/b3f2bacb2a59627aea00
我得到13s (Ruby2.1)和37s (Ruby1.9)之间。JRuby的时钟是16秒。
鲁弗斯-调度程序3.2.0前。
https://stackoverflow.com/questions/34446354
复制相似问题