ZeroMQ / ØMQ for MySQL
http://zeromq.org/event:zeromq-for-mysql
# yum install zeromq3-devel
# cmake .
# make && make install
drop function zmq_client;
drop function zmq_publish;
create function zmq_client returns string soname 'libzeromq.so';
create function zmq_publish returns string soname 'libzeromq.so';
mysql> SELECT * FROM `mysql`.`func` LIMIT 1000;
+--------------+-----+--------------+----------+
| name | ret | dl | type |
+--------------+-----+--------------+----------+
| image_crc32 | 0 | image.so | function |
| image_rename | 0 | image.so | function |
| image_move | 0 | image.so | function |
| image_remove | 0 | image.so | function |
| image_check | 0 | image.so | function |
| fifo_write | 0 | fifo.so | function |
| fifo_read | 0 | fifo.so | function |
| fifo_remove | 0 | fifo.so | function |
| fifo_create | 0 | fifo.so | function |
| zmq_publish | 0 | libzeromq.so | function |
| zmq_client | 0 | libzeromq.so | function |
+--------------+-----+--------------+----------+
11 rows in set (0.00 sec)
cd test
cmake .
make
./server
mysql> select zmq_client('tcp://localhost:5555','Hello world!');
+---------------------------------------------------+
| zmq_client('tcp://localhost:5555','Hello world!') |
+---------------------------------------------------+
| Hello world! OK |
+---------------------------------------------------+
1 row in set (0.01 sec)
mysql> select zmq_client('tcp://localhost:5555',mobile) from demo;
+-------------------------------------------+
| zmq_client('tcp://localhost:5555',mobile) |
+-------------------------------------------+
| 13113668891 OK |
| 13113668892 OK |
| 13113668893 OK |
| 13322993040 OK |
| 13588997745 OK |
+-------------------------------------------+
5 rows in set (0.03 sec)
gcc -O3 -g -I/usr/include/mysql -I/usr/include -fPIC -lm -lz -shared -o libzeromq.so zeromq.c
sudo mv libzeromq.so /usr/lib/mysql/plugin/