swoole 多进程处理数据
在业务不断变化开发中,难免会碰到需要做数据处理,当数据超过10万+耗时就会变长,这时候需要开多任务处理。
swoole文档:
环境:
php 7.4
swoole 4.5
mysql 5.7
laravel框架或者基于PDO 需要修改options,config配置需要修改
[
//\PDO::ATTR_PERSISTENT => true, // 关闭持久连接
\PDO::ATTR_EMULATE_PREPARES => true //开启预模拟预处理语句
];
用的是laravel框架不能使用协程,所以只能使用多进程处理数据。
namespace App\Console\Commands\Common;
use App\Models\Question;
use Illuminate\Console\Command;
use Illuminate\Database\Eloquent\Builder;
use Swoole\Process\Pool;
use Swoole\Table;
class DataTreating extends Command
{
private $workerNum;//worker进程数
private $limit;//每一次处理数据条数
public function handle()
{
$starttime = explode(' ', microtime());
ini_set('mem