ruby-on-rails - 如何加快 Rails 延迟作业的启动时间?

标签 ruby-on-rails performance heroku delayed-job

我正在 Heroku 上使用 Rails/Delayed Jobs,以及 Rails 4.1。我注意到我的工作需要 1 秒到 10 秒才能真正开始。一旦他们开始,他们跑得很快。

如何加快速度?

我正在用 my_thing.delay.run 给他们打电话!

我确实还有其他一些正在进行的工作,但数量并不多,所以这似乎不是原因。它只是检查运行作业的频率似乎存在滞后。

最佳答案

我认为您想要配置延迟作业 README 中暗示的 Delayed::Worker.sleep_delay 。如果延迟的工作找不到工作,那么它会休眠这么多秒,然后再重新寻找。默认 sleep 时间为 5 秒。

因此,您可以在 config/initializers/delayed_job.rb 中将以下内容设置为在待处理作业的查询之间仅休眠 2 秒。

Delayed::Worker.sleep_delay = 2

显然,权衡是在没有任何事情发生时更频繁地轮询工作。

此外,如果您不喜欢延迟工作,那么您可能会发现 resque或者特别是sidekiq可能会比延迟的工作更快地处理您的工作。

关于ruby-on-rails - 如何加快 Rails 延迟作业的启动时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29134177/

相关文章:

c++ - 减少以下代码中的时间

mysql - 具有亚马逊 RDS 安全性的 Heroku

python - 无法从在 heroku 上运行的 flask 应用程序连接到 cleardb

performance - 为什么这个深度学习模型在 CPU 上的推理速度比 GPU 更快?

javascript - Heroku Node 应用推送失败

ruby-on-rails - 从 Rails 的任何地方访问 "session key"cookie 名称

ruby-on-rails - 从 Ruby 文件访问 Pry 的 show-source 方法

ruby-on-rails - 工厂女孩多个has_many通过的

ruby-on-rails - Errno::ENOENT - 没有这样的文件或目录@rb_sysopen

performance - 使用 webpack devtool=eval 显示跨源 React 错误边界错误?