南宁公司和几个分公司之间都使用了呼叫系统,然后现在需要做一个呼叫通话数据分析,由于分公司的呼叫服务器是在内网,通过技术手段映射出来,分公司到南宁之间的网络不稳定,所以需要把分公司的通话数据同步到南宁。 本身最简单的方法就是直接配置 MySQL 的主从同步就可以同步数据到南宁来了。但是销售呼叫系统那边的公司不给 MySQL 权限我们。 所以这个方法只能放弃了。 于是我们干脆的想,使用PHP来实现定时一个简易的PHP定时同步工具,然后 PHP 进程常驻后台运行,所以首先就先到了一个 PHP 组件:SWOOLE ,经过讨论,分公司的每天半天生成的数据量最大在5000条左右,所以这个方案是可行,就这样干。 我们使用 PHP SWOOLE 做一个异步的定时任务系统。 本身 MySQL 数据库的主从同步是通过解析Master库中的 binary-log 来进行同步数据到从库的。然而我们使用PHP来同步数据的时候,那么只能从master库分批查询数据,然后插入到南宁的slave库来了。 这里我们使用的框架是 ThinkPHP 3.2. 首先安装PHP扩展: SWOOLE,因为没有使用到特别的功能,所以这里我们使用pecl来快速安装: pecl install swoole 安装完成后在 php.ini 里面加入 extension="swoole.so" 安装完成后,我们使用 phpinfo() 来检查是否成功了.

安装成功了,我们就来写业务. 服务端 1、首先启动一个后台的服务端,监听端口9501 public function index() { $serv = new \swoole_server("0.0.0.0", 9501); $serv->set([ 'worker_num' => 1,//一般设置为服务器CPU数的1-4倍 ...

[阅读更多 →]