class f2bPublisherDaemon(daemon): def __sigTERMhandler(self,signum,frame): syslog.syslog("fail2ban-zmq-tools Publisher: Caught signal %d. Initiating shutdown..." % signum) self.quit() def run(self): syslog.syslog("fail2ban-zmq-tools Publisher starting") signal.signal(signal.SIGTERM,self.__sigTERMhandler) signal.signal(signal.SIGINT,self.__sigTERMhandler) self.publisher = Publisher(publisherconfig=publisherconfig) self.publisher.start() syslog.syslog("fail2ban-zmq-tools Publisher running. Main process waiting for termination signal. Threads working.") signal.pause() syslog.syslog("fail2ban-zmq-tools Publisher exiting.") def quit(self): signal.signal(signal.SIGTERM,signal.SIG_IGN) syslog.syslog("fail2ban-zmq-tools Publisher: Stopping threads...") self.publisher.join() syslog.syslog("fail2ban-zmq-tools Publisher says Bye")
SOURCE = 1 PORT = "5555" TOPIC = "obstacle_detector" FRAME_SIZE = (960, 640) streamer = Streamer(SOURCE) streamer.start() visualizer = Visualizer(streamer.frame) visualizer.start() detector = Detector(streamer.frame) detector.start() publisher = Publisher(port=PORT, topic=TOPIC) publisher.start() while True: if streamer.is_stopped or visualizer.is_stopped: streamer.stop() visualizer.stop() detector.stop() publisher.stop() break # get frame from streamer frame, frame_timestamp = streamer.get_frame_and_timestamp # resize frame to yolov3.cfg input size resized = cv2.resize(frame, FRAME_SIZE) # update frame and frame timestamp in detector
# -*- coding: utf-8 -*- from publisher import Publisher import sys,signal import time import os import random def sigint_handler(signum,frame): print("main-thread exit") global publish publish.stop() sys.exit() if __name__ == '__main__': signal.signal(signal.SIGINT, sigint_handler) publish = Publisher("tcp://127.0.0.1:12347") publish.start() path_exp = os.path.expanduser('../samples') classes = [path for path in os.listdir(path_exp) \ if os.path.isdir(os.path.join(path_exp, path))] classes.sort() nrof_classes = len(classes) while True: i = random.randint(0,nrof_classes-1) class_name = classes[i] facedir = os.path.join(path_exp, class_name) publish.yolomsg.InsertYoloMsg(facedir) time.sleep(1)
import time from broker_connection import Config from publisher import Publisher def publish_loop(publisher): publish_val = 0 while True: try: publisher.publish(publish_val) publish_val += 1 except IOError: return time.sleep(1) uuid = 'publisheruuid1' config = Config('127.0.0.1', 4444, '127.0.0.1', 5505) simple_publisher = Publisher(uuid, publish_loop, config) simple_publisher.add_metadata({'Room': '410'}) simple_publisher.start() time.sleep(60)
from eventChannel import EventChannel from publisher import Publisher from subscriber import Subscriber if __name__ == '__main__': eventChannel = EventChannel() producer = Publisher(eventChannel) subscriber = Subscriber() eventChannel.subscribe(subscriber) producer.start() subscriber.start() eventChannel.start()