def __init__(self): # Check is class name is properly constructed # like SomethingHandler if (self.__class__.__name__[-7:] != 'Handler'): raise ValueError( "Wrong handler class name : must be [something]Handler") self._handler_name = (self.__class__.__name__)[0:-7].lower() self._config = Config(self._handler_name) logging.debug("Initializing Handler's base for %s" % self._handler_name) setproctitle("griotte-%s" % self._handler_name) self._ws = WebSocket() self._ws.add_listener("%s.command.ping" % self._handler_name, self.ping) logging.debug("Added ping listener for %s" % self._handler_name) # Install signal handlers that child class can override signal.signal(signal.SIGINT, self._signal) signal.signal(signal.SIGTERM, self._signal) signal.signal(signal.SIGUSR1, self._signal) signal.signal(signal.SIGHUP, self._signal)
import json import sys import logging from tornado.options import define, options from griotte.websocket import WebSocket from griotte.config import Config import tornado.ioloop Config("DEFAULT") define("watchdog", default=0.1, help="Watchdog interval") if __name__ == "__main__": def on_message(channel, message): logging.info(" >>> On channel \"%s\" : %s" % (channel, message)) channels = () channels = options.parse_command_line() if not channels: logging.warning("No channel specified, watching meta.presence") channels.append("meta.presence") ws = WebSocket() for chan in channels: ws.add_listener(chan, on_message) ws.start(detach=False, watchdog_interval=options.watchdog)
def __init__(self, uri=None): self._ws = WebSocket(uri=uri) self._ws.start(watchdog_interval=2) self._subscriptions = {}