--rails
フラグをつけて worker を起動したら、ついに処理されるようになった。
bundle exec shoryuken --config config/shoryuken.yml --rails
Help
shoryuken --help
shoryuken [options]
-c, --concurrency INT Processor threads to use
-d, --daemon Daemonize process
-q, --queue QUEUE[,WEIGHT]... Queues to process with optional weights
-r, --require [PATH|DIR] Location of the worker
-C, --config PATH Path to YAML config file
-R, --rails Attempts to load the containing Rails project
-L, --logfile PATH Path to writable logfile
-P, --pidfile PATH Path to pidfile
-v, --verbose Print more verbose output
-V, --version Print version and exit
-h, --help Show help
shoryuken.yml
aws:
access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
region: us-east-1
concurrency: 1
queues:
- example1
- example2
- example3
shoryuken_worker.rb
class ShoryukenWorker
include Shoryuken::Worker
shoryuken_options queue: 'example1', auto_delete: true
shoryuken_options queue: 'example2', auto_delete: true
shoryuken_options queue: 'example3', auto_delete: true
def perform(sqs_msg, name)
puts "Hello, #{name}"
end
end
initializers/shoryuken.rb
Shoryuken.configure_server do |config|
# Replace Rails logger so messages are logged wherever Shoryuken is logging
# Note: this entire block is only run by the processor, so we don't overwrite
# the logger when the app is running as usual.
Rails.logger = Shoryuken::Logging.logger
Rails.logger.level = :info
# config.server_middleware do |chain|
# chain.add Shoryuken::MyMiddleware
# end
# For dynamically adding queues prefixed by Rails.env
# Shoryuken.add_group('default', 25)
# %w(queue1 queue2).each do |name|
# Shoryuken.add_queue("#{Rails.env}_#{name}", 1, 'default')
# end
end
# config/initializers/shoryuken.rb
Shoryuken.active_job_queue_name_prefixing = true
config/application.rb
require_relative 'boot'
require 'rails/all'
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module RailsActiveJobExample
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
config.load_defaults 6.0
config.active_job.queue_adapter = ENV['QUEUE_ADAPTER'].present? ? ENV['QUEUE_ADAPTER'].to_sym : :sidekiq
# config.active_job.queue_adapter = :shoryuken
# Settings in config/environments/* take precedence over those specified here.
# Application configuration can go into files in config/initializers
# -- all .rb files in that directory are automatically loaded after loading
# the framework and any gems in your application.
end
end
make job
QUEUE_ADAPTER=shoryuken bundle exec rails runner 'ShoryukenJob.perform_later("ABC")'
Original by Github issue
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。