【问题标题】:resque scheduler unrecognized signal SIGUSR1resque调度程序无法识别的信号SIGUSR1
【发布时间】:2015-12-20 12:50:39
【问题描述】:

我完全不知道如何运行我的 resque 调度程序。当我将单个任务排入队列并手动运行它时,它工作正常,但是当我尝试使用命令 rake resque:scheduler --trace 实现 resque 调度程序时,我得到 ArgumentError:不支持的信号 SIGUSR1。下面是 resque 调度器需要的文件:

config/initializers/resque.rb

require 'resque/failure/multiple'
require 'resque/failure/redis'
Resque::Failure::Multiple.classes = [Resque::Failure::Redis]
Resque::Failure.backend = Resque::Failure::Multiple
Dir[File.join(Rails.root, 'app', 'jobs', '*.rb')].each { |file| require file }
config = YAML.load(File.open("#{Rails.root}/config/resque.yml"))[Rails.env]
Resque.redis = Redis.new(host: config['host'], port: config['port'], db: config['db'])

config/resque.yml

defaults: &defaults
  host: localhost
  port: 6379
  db: 6
development:
  <<: *defaults
test:
  <<: *defaults
staging:
  <<: *defaults
production:
  <<: *defaults

lib/tasks/resque.rake

require 'resque/tasks'
require 'resque/scheduler/tasks'
require 'yaml'

task 'resque:setup' => :environment

namespace :resque do
  task :setup_schedule => :setup do
    require 'resque-scheduler'

    # If you want to be able to dynamically change the schedule,
    # uncomment this line.  A dynamic schedule can be updated via the
    # Resque::Scheduler.set_schedule (and remove_schedule) methods.
    # When dynamic is set to true, the scheduler process looks for
    # schedule changes and applies them on the fly.
    # Note: This feature is only available in >=2.0.0.
    # Resque::Scheduler.dynamic = true

    # The schedule doesn't need to be stored in a YAML, it just needs to
    # be a hash.  YAML is usually the easiest.
    Resque.schedule = YAML.load_file(File.open("#{Rails.root}/config/resque_schedule.yml"))
  end

  task :scheduler => :setup_schedule
end

config/resque_schedule.yml

run_my_job:
  cron: '30 6 * * 1'
  class: 'MyJob'
  queue: myjob
  args:
  description: "Runs MyJob"

以下是 rake resque:scheduler 命令的错误消息: error message

【问题讨论】:

    标签: ruby-on-rails resque resque-scheduler


    【解决方案1】:

    刚刚发现 Windows 不支持 SIGUSR1 信号。这是 Windows 中支持的信号的list。解决方案是使用其他操作系统(例如 Ubuntu)来运行该操作,并且运行没有问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多