定时器任务要每隔一段时间查询数据库,每次执行定时任务都要连一次数据库吗,在初始化时连了后面就找不到了

xiyuanxy

设置的定时器任务要每隔一段时间查询数据库,
每次执行定时任务都要连一次数据库吗,
下面是代码。在初始化时连了后面就找不到了,说select()是null


```php
use Workerman\Worker;
use Workerman\Timer;
require_once __DIR__ . '/../../vendor/autoload.php';

$task = new Worker();
// 开启多少个进程运行定时任务,注意业务是否在多进程有并发问题
$task->count = 1;
$task->onWorkerStart = function(Worker $task)
{
    global $db1;
    $db1 = new \Workerman\MySQL\Connection('127.0.0.1', '***', '***', '***', '***');
    // $sdfhio=$db1->select('id')->from('***')->query();
    // print_r($sdfhio[0]);
   // global $db;
        // 获取所有数据

    // 每30秒执行一次
    $time_interval = 30;
    Timer::add($time_interval, function()
    {
        echo "task run\n";
        global $db1;
        $db1 = new \Workerman\MySQL\Connection('***', '***', '***', '***', '***');
        $sdfhio=$db1->select('id')->from('***')->query();
        print_r($sdfhio[0]);

    });
};
534 0 0
0个回答

×
🔝