首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当超过20000个时间表时,注册时间就会变慢。

当超过20000个时间表时,注册时间就会变慢。
EN

Stack Overflow用户
提问于 2015-12-24 02:06:22
回答 1查看 70关注 0票数 2

我用rufus调度器构建了一个动态web接口调度程序。大约有38000个工作在运行。运行作业没问题。然而,向rufus注册工作太慢了。注册38000个作业大约需要6分钟(355秒)。

有什么办法可以加速这一点吗?我的环境如下..。

代码语言:javascript
运行
复制
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

我试过几次修改。但对总时间没有太大的影响。

  1. 注册一个作业,并立即暂停它,并在注册完成后继续。(373秒)
  2. 每10000个作业(341秒)实例化新的rufus调度程序-禁用单例
  3. 实例化4个rufus调度程序并将作业分发给它们。( 311秒)-禁用单例
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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前。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34446354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档