所以我有一个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是一个单独的进程,我无法与rails应用程序中的smpp线程进行通信我的工作人员在delayed_job排队。
有什么想法吗?
答案 0 :(得分:0)
排序,决定将所有内容分离到自己的守护进程中,每个守护进程都独立地与数据库进行通信,而不是尝试使用管道和信号。