서버가 시작될 때 레일즈 앱에서 mqtt 주제를 구독하고 구독을 항상 활성화되어 실행하고 싶습니다.레일 및 MQTT : 서버 시작시 백그라운드에서 주제를 등록 하시겠습니까?
내가 MQTT 통신이 MQTT 보석 사용하고 있습니다 :
config.after_initialize do
mqttSub = BackgroundMQTT.new
mqttSub.run
end
BackgroundMQTT 클래스 : application.rb에
: 여기 https://github.com/njh/ruby-mqtt
것은 내가 지금 무엇을 가지고
class MQTTSubscriber
def run
Thread.new do
MQTT::Client.connect(:host => 'localhost', :port => 1883,) do |c|
c.get('#') do |topic,message|
puts "#{topic}: #{message}"
#Do things, access activerecord etc.
end
end
end
end
end
기본적으로 mqtt subscr iption은 after_initialize
방법으로 시작되며 내가 아는 한 자동으로 중지되지 않습니까?
또한 알겠지만 스레드에서 구독을 실행하고 있습니다. 그렇지 않으면 내 레일 응용 프로그램이 mqtt 구독을 청취하는 것 외에 다른 작업을 중단하게됩니다.
이것은 처음 몇 분 동안은 효과가있는 것으로 보입니다.
이것이 내가하고 싶은 일을하는 데 권장되는 방법인지 확실하지 않습니다. 이로 인해 내가 고려하지 않은 문제가 발생할 수 있습니까? 이 작업을 수행하는 데 권장되는 방법은 무엇입니까?
진전이 있습니까? – RonLugge
하나의 문제는 두 명 이상의 직원이있는 경우 두 번 가입하게됩니다 – GorillaApe