そのため、遅延ジョブプロセスが 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 は別のプロセスであるため、delayed_job のワーカーから rails アプリの smpp スレッドと通信できません。キュー。
何か案は?