Tarda de trabalho atrasado falha na tarefa
-
23-09-2019 - |
Pergunta
Estou tentando conseguir um emprego atrasado para trabalhar como uma tarefa de rake, mas para a minha vida, não consigo descobrir o que estou fazendo de errado. Dada a seguinte configuração:
#config/environment.rb
Rails::Initializer.run do |config|
config.gem 'delayed_job'
end
#Rakefile
begin
require 'delayed/tasks'
rescue LoadError
STDERR.puts "Run `rake gems:install` to install delayed_job"
end
#Observer
class SomeObserver < ActiveRecord::Observer
def foo(bar)
end
handle_asynchronously :foo
end
Sempre que executo trabalhos de ancinho: limpe eu recebo o seguinte erro:
undefined method `handle_asynchronously' for SomeObserver:Class
Mesmo que eu não receba esse erro quando estou executando os casos de teste ou diretamente. Alguma ideia?
Solução
Define o atraso handle_asynchronously
dentro Delayed::MessageSending::ClassMethods
. Touchedjob automaticamente deplações de macaco esse módulo em Module
em seu lib/delayed_job.rb
. Você provavelmente terá mais sorte exigindo isso em sua tarefa de ancinho:
#Rakefile
begin
require 'delayed_job'
require 'delayed/tasks'
rescue LoadError
STDERR.puts "Run `rake gems:install` to install delayed_job"
end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow