【问题标题】:Sidekiq, Rails4 and Capistrano3. Error during deployment when bundle exec sidekiqctl quietSidekiq、Rails4 和 Capistrano3。 bundle exec sidekiqctl quiet 时部署期间出错
【发布时间】:2014-02-12 17:14:27
【问题描述】:

我正在使用 Rails4、sidekiq 和 capistrano3 (ruby 2.1.0)。

我的部署配置在没有 sidekiq 的情况下工作。当我使用 sidekiq 时,执行此命令时出现错误:

/usr/bin/env bundle exec sidekiqctl quiet /home/deployer/apps/getLead/current/tmp/sidekiq.pid
Tasks: TOP => sidekiq:quiet

我正在尝试在我的 VPS 上运行此命令并看到“进程不存在”

我在我的 Capfile 中包含了 require 'sidekiq/capistrano',并尝试使用 deploy.rb 中的选项:

=begin
set(:sidekiq_cmd) { "#{bundle_cmd} exec sidekiq" }
set(:sidekiqctl_cmd) { "#{bundle_cmd} exec sidekiqctl" }
set(:sidekiq_timeout) { 10 }
set(:sidekiq_role) { :app }
set(:sidekiq_pid) { "#{current_path}/tmp/pids/sidekiq.pid" }
set(:sidekiq_processes) { 1 }
=end
set :sidekiq_cmd,           ->{ "bundle exec sidekiq" }
set :sidekiqctl_cmd,        ->{ "bundle exec sidekiqctl" }

这是我的 sidekiq.yml 配置

:verbose: false
:pidfile: tmp/sidekiq.pid
:concurrency:  25
:queues:
  - [often, 7]
  - [default, 5]
  - [seldom, 3]

我怎样才能让它工作?提前致谢!

【问题讨论】:

    标签: ruby-on-rails ruby capistrano delayed-job sidekiq


    【解决方案1】:

    我遇到了类似的问题,我修复了它在部署日志中查找其他捆绑任务命令(例如 db:migrate):

    sidekiq_cmd_pre = 'cd #{current_path} && ( PATH=/home/deployer/.rvm/bin:$PATH RAILS_ENV=production ~/.rvm/bin/rvm default do'
    set :sidekiq_cmd, -> { "#{sidekiq_cmd_pre} bundle exec sidekiq)" }
    set :sidekiqctl_cmd, -> { "#{sidekiq_cmd_pre} bundle exec sidekiqctl" }
    

    附:不漂亮,但工作)

    P.P.S 需要

    set :sidekiq_pid, -> { "tmp/pids/sidekiq.pid" }
    

    删除#{current_path}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 1970-01-01
      • 2016-05-14
      • 2018-08-10
      • 2011-11-21
      相关资源
      最近更新 更多