gpt4 book ai didi

ruby - 当超过 20000 个时间表时,注册时间表会变慢

转载 作者:太空宇宙 更新时间:2023-11-03 16:45:14 25 4
gpt4 key购买 nike

我使用 rufus 调度程序构建了一个动态 Web 接口(interface)调度程序。大约有 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

我尝试了几种修改。但对总时间没有太大影响。

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

最佳答案

Rufus-scheduler 旨在在使用线程的环境中运行。为了防止两个线程同时调度时发生冲突,有一个互斥量“覆盖”调度。

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 https://github.com/jmettraux/rufus-scheduler/blob/f859e31339bd78330d88f7cee7854d896ada381e/lib/rufus/scheduler/job_array.rb#L44

如您所见,还有一个检查以查看是否已经以某种方式安排了作业。

Is there any way to accelerate this?

https://github.com/jmettraux/rufus-scheduler/issues 提交问题返回此 StackOverflow 问题的链接,您将获得帮助。不要忘记在上面的评论中包含我要求的信息。

最好的问候。

更新

我在我的 MacBook 上进行了测试,结果如下:https://gist.github.com/jmettraux/b3f2bacb2a59627aea00

我得到 13s (Ruby 2.1) 和 37s (Ruby 1.9) 之间。 JRuby 时钟为 16 秒。

Rufus-scheduler 3.2.0 pre.

关于ruby - 当超过 20000 个时间表时,注册时间表会变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34446354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com