gpt4 book ai didi

ruby-on-rails - Rails Active Job 使用,或使用 Rails 自动运行观察线程

转载 作者:太空宇宙 更新时间:2023-11-03 17:15:33 24 4
gpt4 key购买 nike

很高兴看到 Rails 4.2 附带了 Active Job 作为后台作业的通用接口(interface)。但是我在文档中找不到如何启动一个worker。文档似乎还不成熟(例如 Sneakers 的正确版本仅在 Rails 的 Gemfile 中引用),所以我不确定“正在运行的 worker ”部分是否不在 Active Job或者只是没有在文档中提到。

那么对于 Active Job,我是否仍然需要手动启 Action 业观察器线程,例如 sidekiq 或者在我的情况下,rake sneakers:run?如果是这样,我应该把这些命令放在哪里让 rails server 在开发环境中自动运行这些并行任务?

最佳答案

ActiveJob 只是一个通用接口(interface)。您仍然需要后端 gem,并且仍然需要从您的服务器单独启动它(这是一个单独的过程,这是目标)。

使用 resque 的示例:

在 Gemfile 中:

gem 'resque'

在终端中,启动一个worker:

bin/resque work

使用 sidekick、delayed job 或其他方式时情况类似。

如果你想在一个命令中启动服务器和 worker,你可以为它创建一个简短的 bash 脚本,但我建议不要这样做:有两个独立的控制台有助于观察每一端发生的事情(web应用和 worker )。

更好的解决方案是使用 foreman gem 来管理启动和停止您的进程。

您可以创建一个简单的 Procfile,其中包含要启动的进程:

web: bundle exec rails s
job: bundle exec resque work

然后开始使用工头:

foreman start

默认情况下,工头会在控制台交错处理进程的日志,但这是可以配置的。

关于ruby-on-rails - Rails Active Job 使用,或使用 Rails 自动运行观察线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25517957/

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