Resque:从另一个作业中调用#perform_later不会触发其他作业

我有一个问题,很可能是我做了一些奇怪的事情,但我不能为我的生活弄清楚:

我有一份父母工作,应该开始一堆子工作,但那些子工作永远不会执行。

这是父工作:

class TriggerJob < ApplicationJob def perform start_events end around_perform do |_, block| p 'TriggerJob before_perform' block.call p 'TriggerJob after_perform' end private def start_events events = Events.all events.each do |event| event.connectors.each do |connector| p "Stopping connector #{connector.id} for event #{event.id}" StopConnectorJob.perform_later(connector.id) end end end end 

这是孩子的工作:

 class StopConnectorJob < ApplicationJob @queue = :default class StopConnectorFailed < StandardError; end rescue_from(StandardError) do |exception| p "ERROR! #{exception.message}" raise(StopConnectorFailed, exception.message) end def perform(connector_id) p 'STOPPING CHARGE' connector = Connector.find(connector_id) do_stuff_with_the_connector(connector) end around_enqueue do |job, block| p "StopConnectorJob before_enqueue: #{Resque.count_all_scheduled_jobs}" p job.arguments block.call p "StopConnectorJob after_enqueue: #{Resque.count_all_scheduled_jobs}" end around_perform do |job, block| p 'StopConnectorJob before_perform' p job.arguments block.call p 'StopConnectorJob after_perform' end private def do_stuff_with_the_connector(connector) # ... end end 

当我运行基本作业时,这是输出的内容:

 "TriggerJob before_perform" "Stopping connector 4 for event 8" "StopConnectorJob before_enqueue: 0" [3] "StopConnectorJob after_enqueue: 0" "TriggerJob after_perform" 

没什么。 当我查看作业Web界面时,没有任何作业排队。 使用redis-cli监视器监视时,没有redis记录。

如果我从#perform_later更改为#perform_now它可以工作。 但我希望这不会被阻止。

知道为什么我的工作没有被运行,即使看起来他们应该已经入队,但我看不出他们是谁?