def test_push_online(): dbc.createKey("online") pub = Publisher(config.REDIS_MQ_HOST, config.REDIS_MQ_PORT, config.REDIS_MQ_DB) import random while True: add = random.randint(-100,100); dbc.incKey("online","2003", add) pub.publish('online', {'server':'2003', "op":"inc", "value":add, "time": datasets.current_ms()}) time.sleep(1)
class TrueFilter(Filter): def _check(self, k, v, msg): return True r = Reader(config.crypto.slack) r.start() cmd_filter = RegexFilter(text='^![a-z]+', id='CMD_FILTER', topic='cmd', user=True) ch_filter = ChannelFilter(type='message', id="CH_FILTER", topic="ch_", user=True) msg_filter = Filter(type='message', id='MSG_FILTER', topic='msg', user=True) at_filter = AtFilter(text='^<@(?P<user>\w+)>', id='AT_FILTER', topic='cmd', user=True, bot=r._id) s = Stream(cmd_filter, ch_filter, msg_filter, at_filter) p = Publisher('tcp://*:4930') p.open() for event, topics in s(r.events): if topics: p.publish('firehose', event) for topic in topics: p.publish(topic, event)
from pubsub import Broker, Publisher, Subscriber br = Broker('./store/') p1 = Publisher('p1', br) p1.addTopic('t1') p2 = Publisher('p2', br) p2.addTopic('t2') c1 = Subscriber('c1', br) c1.addTopic('t1') c2 = Subscriber('c2', br) c2.addTopic('t2') p2.publish('t2', 'hello t2') p1.publish('t1', 'hello t1')
#!/usr/bin/python from message_bus import MessageBus from pubsub import Publisher, Subscriber from flask import Flask import time bus = MessageBus() bus.add_topic('saleem') publisher = Publisher('Pub1') bus.bind('saleem', publisher) sub1 = Subscriber('Sub1') sub2 = Subscriber('Sub2') bus.bind('saleem', sub1) bus.bind('saleem', sub2) publisher.publish('Hello Saleem') for x in xrange(20): publisher.publish('Pub1 : %s: Counter ' % (x)) time.sleep(1) sub3 = Subscriber('Sub3') bus.bind('saleem', sub3)