Похоже, у вас есть веб-сайт с внутренним источником данных, которые вы передаете по каналу. Также звучит так, как будто это не будет частью цикла HTTP-запросов / ответов, что может сделать задачу rake хорошим выбором.
Создайте файл в lib / tasks с именем listener.rake
это должно выглядеть так:
desc 'Listens to pipe and does stuff'
task :listen_to_pipe => :environment do
puts "Listen to Pipe starting"
#open pipe
#loop to listen to it
puts "going to do stuff"
#do stuff
#end
end
Затем из командной строки в корневом каталоге вашего проекта вы можете вызвать его следующим образом:
rake listen_to_pipe
и для другой среды сделайте это:
rake listen_to_pipe RAILS_ENV=production
Это задание будет иметь доступ ко всем вашим моделям. Чтобы закончить, нажмите Ctrl + C
Имейте в виду, что вам нужно будет остановить и перезапустить процесс, чтобы загрузить любые изменения, внесенные в модели.