【问题标题】:Making scheduled jobs in rails using sidekiq vs other background process gems?使用 sidekiq 与其他后台进程 gem 在 Rails 中进行计划作业?
【发布时间】:2016-05-02 04:51:18
【问题描述】:

目前我正在开发一个竞价网络应用程序。我们使用状态机来处理拍卖的各种状态。当拍卖开始时间等于当前时间时,我们需要触发特定的方法。为此,我们使用了 sidekiq gem。

请给一些使用sidekiq gem的建议,我们是否可以同时处理更多的拍卖。 sidekiq 将如何管理这些类型的计划任务?

此外,我们还可以尝试哪些其他选项来实现这些目标?就像我们可以尝试的其他宝石/库一样?

请在其中分享一些想法。谢谢。

【问题讨论】:

  • 快速 google 搜索会找到关于 Rails 中作业处理的大量信息。看看 Rails 4.2 中的 ActiveJob 以及它支持的 gem(sidekiq、resque 等)
  • 请阅读“How to Ask”。你的问题太笼统了。我们不是在这里提供使用 SideKiq 的示例,而是您可以研究和阅读他们的示例和其他人的代码,以了解他们是如何使用它的。询问我们做类似事情的其他选择也是题外话。

标签: ruby-on-rails ruby backgroundworker background-process sidekiq


【解决方案1】:

如果您不习惯在 Sidekiq 中使用线程,您可以在 sidekiq.yml 中进行设置。然后你可以运行 2 个 sidekiq 进程。但它会使用更多的内存

---
:concurrency: 1

【讨论】:

    【解决方案2】:

    sidekiq 是最好的,因为它使用线程(内存使用量少得多)并将作业信息存储在 redis 中 - 速度如此之快且不占用主数据库资源

    其他解决方案 -

    1. delayed_job - 在 sql db 中存储作业信息
    2. resque - 在 redis 中存储作业信息,但在 sidekiq 中使用进程而不是线程

    【讨论】:

    • 当你试图提供帮助时,这个问题问得不好,因为它太宽泛了,并且正在为非现场图书馆征求建议。您应该帮助 OP 缩小问题范围,并鼓励他们在提问之前自行搜索,而不是回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 2014-08-02
    • 2021-01-21
    • 2020-09-24
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多