- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 delayed_job 中使用命名队列来保持服务器隔离任务:
subdomain = Socket.gethostname.split('.')[0]
MyModel.delay(:queue => (subdomain + "_queue")).get_some_records
当我在每台服务器上启动 delayed_job 时,我需要设置 --queue
标志。可以使用 set :delayed_job_args
将参数传递给 delayed_job CL。据我所知,Capistrano 允许在 run
命令中使用 $CAPISTRANO:HOST$
,但这对我使用 set
没有帮助。
作为解决方法,我已经覆盖了 delayed_jobs 任务,如下所示:
desc "Start the delayed_job process"
task :start, :roles => lambda { roles } do
run "cd #{current_path};#{rails_env} script/delayed_job start --queue=$CAPISTRANO:HOST$_queue #{args}"
end
有没有什么方法可以使用 set
按预期执行此操作?我希望能够做这样的事情:
set :delayed_job_args, "--queue=#{ hostname }_queue"
更新
我发现了另一种笨拙(而且不是很干)的方法来做到这一点,但如果可能的话,我仍然想用 set
来做到这一点:
desc "Start the delayed_job process"
task :start, :roles => lambda { roles } do
parallel do |session|
session.when "server.host =~ /server1/", "cd #{current_path};#{rails_env} script/delayed_job start --queue=server1_queue #{args}"
session.when "server.host =~ /server2/", "cd #{current_path};#{rails_env} script/delayed_job start --queue=server2_queue #{args}"
session.else "cd #{current_path};#{rails_env} script/delayed_job restart #{args}"
end
end
Rails 3.2.8,delayed_job 3.0.3,capistrano 2.13.4。
最佳答案
怎么样……?
set :delayed_job_args, "--queue=#{ $CAPISTRANO:HOST$ }_queue"
我没有在 Cap 中亲自测试过这一点,但这似乎合乎逻辑。
关于ruby-on-rails - 需要访问 delayed_job 命名队列的 Capistrano 配置变量中的当前主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13259746/
遇到这个错误。 pid-file for killed process 8600 found (C:/cyncabc/tmp/pids/delayed_job.pid), deleting.
当我部署到 pre服务器一切正常。但是如果我尝试部署到 staging服务器我收到此错误: bundler: command not found: bin/delayed_job 文件 - confi
我做了 rake db:create 然后 rake db:migrate 遇到了这个错误。 rake aborted! PGError: ERROR: relation "delayed_jobs
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我正在使用 delayed_job 并转移到一个更强大的新服务器。所以现在我想运行并行作业,就像现在一样I have the POWER! ,但对 delayed_job 是否可以运行多个并行队列感到
因此,我正在使用“延迟的作业”,并且试图弄清楚如何使我的所有邮件都被延迟。现在,我已经将handle_asynchronously放在所有的 Action 邮件程序方法中……但是我认为这行不通。 de
我正在寻找调试延迟作业类。首先,我添加了 config/initializers/delayed_job_config 以将我的日志记录移动到我的 log/production.rb 文件中。 Del
我已经有一段时间没有问题地使用 delay_job 了;主要用于排队 ActionMailer 调用(Notifier.send_later ...)。最近,它从同一工作中随机发送多封电子邮件。我将一
我在 site5.com 共享主机上使用 delayed_job(尝试了 tobi 和 collective_idea),乘客作为 rails 环境。我设法完成了工作。但是,该插件似乎在首次运行后忽略
我有 ROR 应用程序和 1 个 delay_job 进程使用 rake job:work 运行。ROR 应用在多个队列中添加 Job。 假设我们有队列 1 和队列 2。 我的问题是队列 1 中的任务
我之前设置了一个邮件程序,可以向我的所有用户帐户发送电子邮件。但现在我正在尝试调试它。所以我把它彻底清除了,它仍然给我发邮件。 我完全没有理由或理解为什么。疯狂! :D 控制者 def org_bla
我在重新启动 delayed_job 时遇到问题。 当我登录并运行 rake delayed_job RAILS_ENV=production 一切正常,所有作业都已处理,但是如果运行 RAILS_E
在安装 delayed_job gem 并在我的本地机器上成功运行后,我无法让它在我的专用服务器上运行。 我在 Gemfile 中包含了 gem“daemons”,生成了事件记录表,并成功安装/迁移了
我有一个带插件的 Rails 应用 https://github.com/tobi/delayed_job 有时作业的执行顺序与创建顺序不同。 我希望作业按照创建时的顺序执行,因为在某些情况下,要执行
我将一个作业添加到延迟的作业中,但是当我运行它时出现 NoMethod 错误 Delayed::Job.last => #Delayed::Backend::MongoMapper::Job _id:
我正在使用 delayed_job Ruby gem 就好了。 它默认为单个 worker,所以我已经完成了: script/delayed_job stop script/delayed_job -
使用 delayed_job gem,我怎样才能只停止一个进程而不停止所有工作进程? 例如: rake jobs:work 启动 worker process1 = SomeClass.enqueue
我希望我有更多信息可以放在这里,但我只是在撒网,希望有人对我可以尝试什么或寻找什么方向有一些想法。基本上我有一个使用延迟作业的 Rails 应用程序。它将需要大约 10 或 15 分钟的进程卸载到后台
我们在项目中使用 delayed_job 的命名队列。有没有办法将每个队列记录到单独的日志文件中? DelayedJob 在这样的部署脚本中启动: run "cd #{current_path};RA
我已经使用 delayed_job 在我的 Rails 应用程序中实现了长时间运行的任务连同 delayed_job_web .我的 delayed_job 配置指示作业尝试一次,并保留失败: con
我是一名优秀的程序员,十分优秀!