0

そのため、遅延ジョブプロセスが 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 スレッドと通信できません。キュー。

何か案は?

4

1 に答える 1