2013-06-14 5 views
0

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

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 запущен?

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

Любые идеи?

+0

Я забыл упомянуть, что если я запустил скрипт для своего шлюза, он останется без проблем. Я думал о создании демона для шлюза, а затем общался с ним через druby, но, похоже, он немного переборщил с тем, что мне нужно сделать –

ответ

0

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

Смежные вопросы