Recentemente, escrevi uma extensão php com meu colega (chamada 商 源 纯). Você pode usá-lo para se conectar a um servidor MYSQL que produz BINLOG e obter eventos BINLOG em tempo real, assim como um Async-Trigger .
Você sabe, sempre precisamos usar componentes diferentes para fazer um bom trabalho, servir um bom serviço. Assim como usamos MYSQL para armazenar todos os nossos dados, usamos REDIS como servidor de cache e LUCENE como mecanismo de busca. As diferenças entre MYSQL e outros componentes afetarão o resultado da classificação e, portanto, afetarão a experiência do usuário, especialmente para serviço urgente.
Nosso grupo usa PHP para desenvolver projetos web. Portanto, se tivermos uma extensão PHP para fazer o trabalho de gatilho de dados entre diferentes componentes, tudo será fácil. Isso é o que fazemos e por que fazemos.
Você pode visualizá-lo no GitHub e bem-vindo ao fork e emitir. Obrigado.
https://github.com/BullSoft/php-binlog
Um exemplo ( BINLOG baseado em linha ):
$link = binlog_connect("mysql://root@127.0.0.1:3306");
// binlog_set_position($link, 4);
while($event=binlog_wait_for_next_event($link)) {
// it will block here
switch($event['type_code']) {
case BINLOG_DELETE_ROWS_EVENT:
var_dump($event);
// do what u want ...
break;
case BINLOG_WRITE_ROWS_EVENT:
var_dump($event);
// do what u want ...
break;
case BINLOG_UPDATE_ROWS_EVENT:
var_dump($event);
// do what u want ...
break;
default:
// var_dump($event);
break;
}
}