Хорошо, наконец, я отвечаю себе:
Я обнаружил, что проблема в том, что, когда запущенный процесс вызывает Juggernaut.subscribe, он останавливается до тех пор, пока не будет запущено событие Juggernaut. Поэтому вы не можете вызывать Juggernaut из серверного процесса, вам нужен новый процесс для запуска этого кода.
Мой код теперь выглядит так:
Модель:
class MyModel < ActiveRecord::Base
class << self
def subscribe
Juggernaut.subscribe do |event, data|
case event
when :subscribe
# do something
when :unsubscribe
# do something else
end
end
end
end
end
А потом у меня есть скрипт ruby myapp / scripts / juggernaut_listener:
#!/usr/bin/env ruby
require File.expand_path('../../config/environment', __FILE__)
puts "Starting juggernaut listener"
MyModel.subscribe
Итак, после того, как я запустил сервер, мне нужно было запрограммировать слушателя Джаггернаута следующим образом:
./script/participations_listener
(обратите внимание, что вы должны дать + x сценарию).
Надеюсь, это кому-нибудь пригодится!