This project listen on mysql binlog (as a slave) and send the binlog event to blinker signal. It can remember last binlog position and work as a MySQL slave.
Project description
Features
This package uses mysql-replication to read events from MySQL’s binlog and send to blinker’s signal.
binlog action level
rows level
It will send RowsEvent only.
Whenever a binlog event come, it will be dispatched into some signals:
binlog_position_signal: 1 signal for the binlog current position
binlog_signal: 1 signal for the binlog event.
rows_signal: 1 signal for event’s rows. 1 signal per row.
Signals
There are 5 signals:
binlog_position_signal: sent whenever binlog event come to notify the current position of binlog stream
binlog_signal: sent whenever binlog event come to notify the binlog event
rows_inserted_signal, rows_updated_signal, rows_deleted_signal: sent on the event as their name
Connect to signals
To connect to a signal, you can use the signal instance or a decorator.
Suppose that you need to connect to write signal on table db0.table1:
from mysqlbinlog2blinker import signals @signal.rows_updated.connect def on_rows_updated_signal(table_name, rows, meta): pass @signal.binlog_signal.connect def on_binlog_signal(event, stream): pass
Signal publishing
To start publishing signals
from pymysqlblinker import start_publishing start_publishing( { 'host': 'localohst', 'user': 'root', }, )
Replication
This package support a method to replicate from mysql database. It operates by keep memory at last binlog position. By default, it save to a file.
To make it, call:
from pymysqlblinker import start_replication start_replication( { 'host': 'localohst', 'user': 'root', }, ('/path/to/file/that/remember/binlog/position', 2), )
Change logs
0.1
First version
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.