Сохраняющийся поток в delayed_job

Итак, у меня есть приложение rails, где я хочу, чтобы процесс отложенной работы связывался с сервером SMPP. Но проблема возникает, когда я пытаюсь отправить сообщения. Мой поток, который я создал в инициализаторе (delayed_job.rb):

if $0.ends_with?('/delayed_job')

 require_relative '../../lib/gateway'
 config = {
  :host => 'SERVER.COM',
  :port => 2345,
  :system_id => 'USERNAME',
  :password => 'PASSWORD',
  :system_type => '', # default given according to SMPP 3.4 Spec
  :interface_version => 52,
  :source_ton  => 0,
  :source_npi => 1,
  :destination_ton => 1,
  :destination_npi => 1,
  :source_address_range => '',
  :destination_address_range => '',
  :enquire_link_delay_secs => 60
}
Thread.new{
    gw = Gateway.new
    gw.start(config)
}
end

Но, проверяя мой файл журнала для сервера smpp, кажется, что поток умирает сразу после его запуска. Итак, я предполагаю, что мой вопрос заключается в том, как сохранить поток во время работы демона delayed_job?

Если я запускаю свое приложение rails в рабочей среде и пытаюсь отправлять сообщения по отдельности, это работает без проблем, но поскольку delayed_job - это отдельный процесс, я не могу связаться с потоком smpp в приложении rails от моих рабочих в delayed_job очереди.

Есть идеи?

1 ответ

Решение

Сортировав, решил разделить все на свои собственные демоны, и каждый из них будет взаимодействовать с базой данных независимо, а не пытаться работать с каналами и сигналами.

Другие вопросы по тегам