You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
971 B
Python

#!/usr/bin/env python2
import zmq, msgpack, yaml, zmqtimer
ctx = zmq.Context()
poller = zmq.Poller()
def test():
print "TEST"
def test10():
print "TEST 10"
# Perhaps connect back to configured nodes...? Nodes could send pubkey-encrypted data...
# process manager, like port manager
with open("config.yaml", "r") as cfile:
config = yaml.safe_load(cfile)
nodes = config["nodes"]
socket_map = {}
timers = zmqtimer.ZmqTimerManager()
timers.add_timer(zmqtimer.ZmqTimer(1, test))
timers.add_timer(zmqtimer.ZmqTimer(10.2, test10))
for hostname, node in config["nodes"].iteritems():
grabber = ctx.socket(zmq.PULL)
grabber.connect(node["endpoint"])
socket_map[grabber] = hostname
poller.register(grabber, zmq.POLLIN)
while True:
timers.check()
socks = dict(poller.poll(timers.get_next_interval()))
for sock in socks:
if socks[sock] == zmq.POLLIN:
host = socket_map[sock]
message = msgpack.unpackb(sock.recv())
print "%s: %s" % (host, message)