Pin*_*yin 1 ruby ruby-on-rails rails-activejob
很高兴看到Rails 4.2附带Active Job作为后台作业的通用界面.但是我找不到如何在文档中启动一个worker.似乎该文档仍然不成熟(例如,正确版本的Sneakers仅在Rails中提及Gemfile),因此我不确定"正在运行的工作者"部分是否处于"活动作业"中或者仅在文档中未提及.
因此,对于Active Job,我是否仍需要手动启动作业观察程序线程,就像sidekiq在我的情况下一样rake sneakers:run?如果是这样,我应该在哪里放置这些命令以便rails server在开发环境中自动运行这些并行任务?
ActiveJob只是一个常见的界面.您仍然需要后端gem,并且仍然需要从服务器单独启动它(它是一个独立的进程,这是目标).
使用resque的示例:
在Gemfile中:
gem 'resque'
Run Code Online (Sandbox Code Playgroud)
在终端中,启动一名工人:
bin/resque work
Run Code Online (Sandbox Code Playgroud)
在使用sidekick,延迟工作或其他事情时,情况类似.
如果你想在一个命令中启动服务器和worker,你可以为它创建一个简短的bash脚本,但我建议你不要这样做:有两个独立的控制台有助于观察每一方面发生的事情(web app&worker) ).
更好的解决方案是使用foreman gem来管理启动和停止流程.
您可以使用要启动的进程创建一个简单的Procfile:
web: bundle exec rails s
job: bundle exec resque work
Run Code Online (Sandbox Code Playgroud)
然后开始使用工头:
foreman start
Run Code Online (Sandbox Code Playgroud)
默认情况下,foreman将在控制台中交错进程的日志,但这可以配置.
| 归档时间: |
|
| 查看次数: |
1525 次 |
| 最近记录: |