Pergunta

Estou tentando descobrir se sou capaz de usar delayed_job. Eu precisaria da capacidade de adicionar empregos à fila dentro de um delayed_job perform método. Isso é possível?

Foi útil?

Solução

De acordo com o meu teste, eles podem:

modelo Machine:

class Machine < ActiveRecord::Base
  def perform
    Delayed::Job.enqueue Secondary.create!
  end
end

modelo Secondary:

class Secondary < ActiveRecord::Base
  def perform
    logger.info("Inside secondary's perform method (WIN)")
    Proof.create!
  end
end

Do console:

Atrasado :: job.enqueue Machine.create!

Isso acaba criando uma instância de Proof e logs "dentro do secundário ...".

Outras dicas

Minha chamada de teste simples send_later em um método invocado por send_later indica que NÃO, isso não vai funcionar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top