def main(): print 'Replicator Started' io = Emitter( dict(host=settings.SOCKETIO_SETTINGS['host'], port=settings.SOCKETIO_SETTINGS['port'])).Of( settings.SOCKETIO_SETTINGS['namespace']) stream = BinLogStreamReader( connection_settings=settings.MYSQL_SETTINGS, server_id=3, blocking=True, resume_stream=True, only_events=[UpdateRowsEvent], only_tables=[settings.DB_SETTINGS['source_table']]) for binlogevent in stream: for row in binlogevent.rows: vals = row["after_values"] print 'Updated rows for ' + json.dumps(vals) io.Emit('update', json.dumps(vals)) stream.close()
def test_Emit(self): io = Emitter(self.opts) redis_cli = subprocess.Popen("redis-cli monitor", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) output = "" while True: chunk = redis_cli.stdout.read(1) if chunk == '' and redis_cli.poll() != None: break if chunk == '\n': io.Emit('broadcast event', 'Hello from socket.io-emitter') if chunk != '' and 'PUBLISH' not in output: output += chunk else: redis_cli.kill() break self.assertTrue('PUBLISH' in output)
def start(self): io = Emitter(dict(host='localhost', port=6379, key='sio-key')) io.Emit('broadcast event', 'Hello from socket.io-emitter') threading.Timer(self.interval, self.start).start()