python-awips/awips/test/testQpidTimeToLive.py

83 lines
2 KiB
Python
Raw Permalink Normal View History

2015-06-12 11:57:06 -06:00
##
##
#
#
2016-03-16 16:32:17 -05:00
#
#
#
2015-06-12 11:57:06 -06:00
# SOFTWARE HISTORY
2016-03-16 16:32:17 -05:00
#
2015-06-12 11:57:06 -06:00
# Date Ticket# Engineer Description
# ------------ ---------- ----------- --------------------------
# 03/09/11 njensen Initial Creation.
# 08/15/13 2169 bkowal Decompress data read from the queue
2016-03-16 16:32:17 -05:00
#
#
2015-06-12 11:57:06 -06:00
#
import time, sys
import threading
import dynamicserialize
TIME_TO_SLEEP = 300
class ListenThread(threading.Thread):
def __init__(self, hostname, portNumber, topicName):
self.hostname = hostname
self.portNumber = portNumber
self.topicName = topicName
self.nMessagesReceived = 0
self.waitSecond = 0
self.stopped = False
threading.Thread.__init__(self)
2016-03-16 16:32:17 -05:00
2015-06-12 11:57:06 -06:00
def run(self):
2016-03-11 15:05:01 -07:00
from awips import QpidSubscriber
2016-03-16 10:28:37 -05:00
self.qs = QpidSubscriber.QpidSubscriber(self.hostname, self.portNumber, True)
2015-06-12 11:57:06 -06:00
self.qs.topicSubscribe(self.topicName, self.receivedMessage)
2016-03-16 16:32:17 -05:00
2015-06-12 11:57:06 -06:00
def receivedMessage(self, msg):
2016-04-16 17:00:50 -06:00
print("Received message")
2015-06-12 11:57:06 -06:00
self.nMessagesReceived += 1
if self.waitSecond == 0:
fmsg = open('/tmp/rawMessage', 'w')
fmsg.write(msg)
fmsg.close()
2016-03-16 16:32:17 -05:00
2015-06-12 11:57:06 -06:00
while self.waitSecond < TIME_TO_SLEEP and not self.stopped:
if self.waitSecond % 60 == 0:
2016-04-16 17:00:50 -06:00
print(time.strftime('%H:%M:%S'), "Sleeping and stuck in not so infinite while loop")
2015-06-12 11:57:06 -06:00
self.waitSecond += 1
time.sleep(1)
2016-03-16 16:32:17 -05:00
2016-04-16 17:00:50 -06:00
print(time.strftime('%H:%M:%S'), "Received", self.nMessagesReceived, "messages")
2016-03-16 16:32:17 -05:00
2015-06-12 11:57:06 -06:00
def stop(self):
2016-04-16 17:00:50 -06:00
print("Stopping")
2015-06-12 11:57:06 -06:00
self.stopped = True
self.qs.close()
2016-03-16 16:32:17 -05:00
2015-06-12 11:57:06 -06:00
def main():
2016-04-16 17:00:50 -06:00
print("Starting up at", time.strftime('%H:%M:%S'))
2016-03-16 16:32:17 -05:00
2015-06-12 11:57:06 -06:00
topic = 'edex.alerts'
host = 'localhost'
port = 5672
2016-03-16 16:32:17 -05:00
2016-03-16 10:28:37 -05:00
thread = ListenThread(host, port, topic)
2015-06-12 11:57:06 -06:00
try:
thread.start()
while True:
time.sleep(3)
except KeyboardInterrupt:
pass
2016-03-16 10:28:37 -05:00
finally:
2015-06-12 11:57:06 -06:00
thread.stop()
2016-03-16 16:32:17 -05:00
2015-06-12 11:57:06 -06:00
if __name__ == '__main__':
main()