Сохраняющийся поток в 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 ответ
Сортировав, решил разделить все на свои собственные демоны, и каждый из них будет взаимодействовать с базой данных независимо, а не пытаться работать с каналами и сигналами.