最近在研究多进程,多线程,于是开始使用workman 在使用MySQL的时候总结了一些心得,分享一下,希望能够帮到路过的道友
1.workman项目引入Mysql
composer require workerman/mysql
1
上面命令成功后会生成vendor目录,然后在项目中引入vendor下的autoload.php。
require_once __DIR__ . '/vendor/autoload.php';
1
具体实例
强烈建议在onWorkerStart回调中初始化数据库连接,避免在Worker::runAll();运行前就初始化连接,在Worker::runAll();运行前初始化的连接属于主进程,子进程会继承这个连接,主进程和子进程共用相同的数据库连接会导致错误。
查看官网解释主进程与子进程
use Workerman\Worker;
require_once __DIR__ . '/Workerman/Autoloader.php';
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('websocket://0.0.0.0:8484');
$worker->onWorkerStart = function($worker)
{
// 将db实例存储在全局变量中(也可以存储在某类的静态成员中)
global $db;
$db = new \Workerman\MySQL\Connection('host', 'por