I am trying to get active_job to work with delayed_job. Everything works fine ... as the code executes, as expected, but the delayed_job entry reports that an error has occurred. The error I am getting is below.
uninitialized constant ProcessEventJob /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/activesupport-4.2.1/lib/active_support/inflector/methods.rb:261:in `const_get' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/activesupport-4.2.1/lib/active_support/inflector/methods.rb:261:in `block in constantize' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/activesupport-4.2.1/lib/active_support/inflector/methods.rb:259:in `each' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/activesupport-4.2.1/lib/active_support/inflector/methods.rb:259:in `inject' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/activesupport-4.2.1/lib/active_support/inflector/methods.rb:259:in `constantize' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/activesupport-4.2.1/lib/active_support/core_ext/string/inflections.rb:66:in `constantize' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/activejob-4.2.1/lib/active_job/core.rb:25:in `deserialize' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/activejob-4.2.1/lib/active_job/execution.rb:20:in `execute' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/activejob-4.2.1/lib/active_job/queue_adapters/delayed_job_adapter.rb:34:in `perform' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:94:in `block in invoke_job' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:91:in `invoke_job' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:204:in `block (2 levels) in run' /home/getsmart/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/timeout.rb:89:in `block in timeout' /home/getsmart/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/timeout.rb:99:in `call' /home/getsmart/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/timeout.rb:99:in `timeout' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:204:in `block in run' /home/getsmart/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/benchmark.rb:303:in `realtime' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:203:in `run' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `block in reserve_and_run_one_job' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `reserve_and_run_one_job' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:187:in `block in work_off' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `times' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `work_off' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:150:in `block (4 levels) in start' /home/getsmart/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/benchmark.rb:303:in `realtime' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:149:in `block (3 levels) in start' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:148:in `block (2 levels) in start' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `loop' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `block in start' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `block (2 levels) in <class:ClearLocks>' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block (2 levels) in add' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block in add' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/worker.rb:146:in `start' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/command.rb:124:in `run' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/command.rb:112:in `block in run_process' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/daemons-1.2.2/lib/daemons/application.rb:265:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/daemons-1.2.2/lib/daemons/application.rb:265:in `block in start_proc' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/daemons-1.2.2/lib/daemons/daemonize.rb:84:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/daemons-1.2.2/lib/daemons/daemonize.rb:84:in `call_as_daemon' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/daemons-1.2.2/lib/daemons/application.rb:269:in `start_proc' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/daemons-1.2.2/lib/daemons/application.rb:295:in `start' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/daemons-1.2.2/lib/daemons/controller.rb:56:in `run' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/daemons-1.2.2/lib/daemons.rb:193:in `block in run_proc' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/daemons-1.2.2/lib/daemons/cmdline.rb:88:in `call' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/daemons-1.2.2/lib/daemons/cmdline.rb:88:in `catch_exceptions' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/daemons-1.2.2/lib/daemons.rb:192:in `run_proc' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/command.rb:110:in `run_process' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/command.rb:91:in `block in daemonize' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/command.rb:89:in `times' /home/getsmart/.rvm/gems/ruby-2.2.2@phoenix/gems/delayed_job-4.0.6/lib/delayed/command.rb:89:in `daemonize' bin/delayed_job:5:in `<main>'
ProcessEventJob is my work class, which is located in app/jobs/process_event_job.rb .
class ProcessEventJob < ActiveJob::Base queue_as :event_handler_cycle def perform(event) Events::EventHandler.new(raw_data: event).call end end
I call it with
ProcessEventJob.perform_later(params)
I restarted the server and tightened shoes. Make sure that it works under the correct environment variables. Not quite sure what else to do. I can also access ProcessEventJob from the console.
I thought the files in the application folder get automatically.
Any thoughts on how to debug this will be appreciated.
EDIT
Please note that the code below causes a delayed job. This is the open endpoint we use to capture events.
module Api module V1 class SegmentEventsController < ApiController def create begin ProcessEventJob.perform_later(params) render_success rescue StandardError => e render_fail end end private def render_success render status: 200, json: { "success" => "true" } end def render_fail render status: 400, json: { "success" => "false" } end def restrict_access unless ApiKey.exists?(access_token: params[:access_token]) head :unauthorized end end end end end Rails.application.configure do
EDIT
So, I seem to have made some progress, but that still doesn't make sense. In my setup, several applications work at startup. Two of them use delayed_jobs.
I thought maybe there was a conflict between the two conflicts, so I stopped the delayed_jobs that I donβt need, and suddenly everything began to work correctly. I came across a message saying that you can run two instances if you use -i ...
I am not sure if this is what I am looking for.
ruby-on-rails delayed-job rails-activejob
Ryan-neal mes
source share