我什么时候会使用像ironMQ这样的消息队列?何时我会使用像ironWorker这样的工作处理工作者?
我刚刚开始研究这两个主题,我发现很难区分这两个用途.我理解一个worker或多或少是一个沙盒,它将在app服务器之外的不同环境中运行程序,以增加用户体验.我也理解消息队列很像它的数据库替代方案,其中任务被添加到队列,然后另一个服务器/编程侦听该任务,然后将处理它.然而,虽然我认为我明白他们是什么,但我无法区分何时使用每一个以及为什么.
如果我理解正确,我会使用工作人员完成图像处理等任务.但是为什么我不能为此使用消息队列,更重要的是为什么不呢?当然,我可以在ironMQ中排队一个图像URL,然后再检索并处理它.在我看来,这似乎是一个额外的步骤,所以我会避免这一点.
当工作人员可用时,对于常见任务,消息队列对我来说似乎毫无意义.当然,对于发布评论这样的非密集型任务,我可以让工人这样做吗?
我可能误解了每个工具之间的差异,如果是这样,请让我直截了当.否则,请帮忙.
web-services message-queue background-process ironmq ironworker
我有一个使用IronWorker的Rails应用程序,我需要从worker连接到我的数据库.我怎么做?
.worker文件
runtime "ruby"
name "UserMailer"
merge_gem "activerecord", "=3.2.8"
merge_gem 'actionmailer', '=3.2.8'
merge_gem 'devise', '=2.1.2'
merge_gem 'pg', "=0.14.0"
merge_file "../app/views/user_mailer/new_user.html.erb" , "user_mailer"
merge_file "../app/mailers/user_mailer.rb"
merge_dir "../app/models"
merge_exec "user_mailer_worker.rb"
Run Code Online (Sandbox Code Playgroud)
.rb文件
require 'action_mailer'
require 'active_record'
require 'pg'
require 'bcrypt'
require 'devise'
require 'user_mailer.rb'
require 'models/user.rb'
def init_mailer
#Need to convert to proper hashes
mailer_config = params['mailer'].inject({}) { |memo, (k, v)| memo[k.to_sym] = v; memo }
# set default views dir to current dir
ActionMailer::Base.prepend_view_path('.')
ActionMailer::Base.smtp_settings = mailer_config
ActionMailer::Base.delivery_method = :smtp
end
def setup_database …Run Code Online (Sandbox Code Playgroud) 我有一个正常运行的工人,没有错误.我想使用CLI安排每天早上9:30运行的任务.在使用CLI调度常规任务时,文档有点令人困惑.我会尝试以某种方式加入iron_worker schedule worker --start-at "2014-07-22T09:30:00-04:00"和iron_worker schedule worker --run-every 1440命令.顺便说什么是4:00在第一个命令的到底意味着什么?谢谢.