diff --git a/apps/console/commands/AssemblyLineCommand.php b/apps/console/commands/AssemblyLineCommand.php index f909a485..115ac225 100644 --- a/apps/console/commands/AssemblyLineCommand.php +++ b/apps/console/commands/AssemblyLineCommand.php @@ -22,6 +22,11 @@ class AssemblyLineCommand extends BaseCommand */ public $pdo; + /** + * @var \apps\common\models\TableModel + */ + public $model; + // 初始化事件 public function onInitialize() { @@ -104,15 +109,25 @@ public function onCenterMessage(CenterWorker $worker, $data) // 右进程启动事件 public function onRightStart(RightWorker $worker) { - // 可以在这里实例化一些对象,供 onRightMessage 中使用,这样就不需要重复实例化。 + /* 可以在这里实例化一些对象,供 onRightMessage 中使用,这样就不需要重复实例化。 */ + + // 通过配置实例化数据库客户端 $this->pdo = PDOPersistent::newInstanceByConfig('libraries.[persistent.pdo]'); + + // 实例化模型 (与上面的方法二选一) + $this->model = new \apps\common\models\TableModel(); } // 右进程消息事件 public function onRightMessage(RightWorker $worker, $data) { - // 将处理完成的消息存入数据库 + /* 将处理完成的消息存入数据库 */ + + // 直接通过客户端对象操作 $this->pdo->insert('table', $data)->execute(); + + // 当然也可以使用组件的方式,通过模型操作 (与上面的方法二选一) + $this->model->insert($data); } } diff --git a/apps/console/config/main.php b/apps/console/config/main.php index 5499cc5d..201c5593 100644 --- a/apps/console/config/main.php +++ b/apps/console/config/main.php @@ -56,6 +56,37 @@ 'maxFileSize' => 0, ], + // 数据库 + 'pdo' => [ + // 类路径 + 'class' => 'mix\client\PDOPersistent', + // 数据源格式 + 'dsn' => env('DB.DSN'), + // 数据库用户名 + 'username' => env('DB.USERNAME'), + // 数据库密码 + 'password' => env('DB.PASSWORD'), + // 驱动连接选项: http://php.net/manual/zh/pdo.setattribute.php + 'driverOptions' => [ + // 设置默认的提取模式: \PDO::FETCH_OBJ | \PDO::FETCH_ASSOC + \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, + ], + ], + + // redis + 'redis' => [ + // 类路径 + 'class' => 'mix\client\RedisPersistent', + // 主机 + 'host' => env('REDIS.HOST'), + // 端口 + 'port' => env('REDIS.PORT'), + // 数据库 + 'database' => env('REDIS.DATABASE'), + // 密码 + 'password' => env('REDIS.PASSWORD'), + ], + // 连接池 'coroutine.pdo.connectionPool' => [ // 类路径 diff --git a/apps/daemon/commands/AssemblyLineCommand.php b/apps/daemon/commands/AssemblyLineCommand.php index cc33651b..aa641d21 100644 --- a/apps/daemon/commands/AssemblyLineCommand.php +++ b/apps/daemon/commands/AssemblyLineCommand.php @@ -23,6 +23,11 @@ class AssemblyLineCommand extends BaseCommand */ public $pdo; + /** + * @var \apps\common\models\TableModel + */ + public $model; + // 初始化事件 public function onInitialize() { @@ -126,15 +131,25 @@ public function onCenterMessage(CenterWorker $worker, $data) // 右进程启动事件 public function onRightStart(RightWorker $worker) { - // 可以在这里实例化一些对象,供 onRightMessage 中使用,这样就不需要重复实例化。 + /* 可以在这里实例化一些对象,供 onRightMessage 中使用,这样就不需要重复实例化。 */ + + // 通过配置实例化数据库客户端 $this->pdo = PDOPersistent::newInstanceByConfig('libraries.[persistent.pdo]'); + + // 实例化模型 (与上面的方法二选一) + $this->model = new \apps\common\models\TableModel(); } // 右进程启动事件 public function onRightMessage(RightWorker $worker, $data) { - // 将处理完成的消息存入数据库 + /* 将处理完成的消息存入数据库 */ + + // 直接通过客户端对象操作 $this->pdo->insert('table', $data)->execute(); + + // 当然也可以使用组件的方式,通过模型操作 (与上面的方法二选一) + $this->model->insert($data); } } diff --git a/apps/daemon/config/main.php b/apps/daemon/config/main.php index 5836578a..174ec69a 100644 --- a/apps/daemon/config/main.php +++ b/apps/daemon/config/main.php @@ -66,6 +66,37 @@ 'maxFileSize' => 0, ], + // 数据库 + 'pdo' => [ + // 类路径 + 'class' => 'mix\client\PDOPersistent', + // 数据源格式 + 'dsn' => env('DB.DSN'), + // 数据库用户名 + 'username' => env('DB.USERNAME'), + // 数据库密码 + 'password' => env('DB.PASSWORD'), + // 驱动连接选项: http://php.net/manual/zh/pdo.setattribute.php + 'driverOptions' => [ + // 设置默认的提取模式: \PDO::FETCH_OBJ | \PDO::FETCH_ASSOC + \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, + ], + ], + + // redis + 'redis' => [ + // 类路径 + 'class' => 'mix\client\RedisPersistent', + // 主机 + 'host' => env('REDIS.HOST'), + // 端口 + 'port' => env('REDIS.PORT'), + // 数据库 + 'database' => env('REDIS.DATABASE'), + // 密码 + 'password' => env('REDIS.PASSWORD'), + ], + // 连接池 'coroutine.pdo.connectionPool' => [ // 类路径