将MySQLi链接传递给ReactPHP

时间:2019-06-06 15:21:58

标签: php reactphp

我正在制作一个多线程应用程序,该应用程序必须仅使用1个MySQL连接(并非每个线程都使用一个MySQL连接),并且在使用IPC的线程通信之间使用ReactZMQ

我正在尝试将MySQLi链接传递给消息事件,但似乎在另一个范围内。

$GLOBALS['mysqli'] = null;
class Updating extends Thread
{
    private $thread_id;
    private $increment_updated = 0;
    private $increment_good = 0;
    private $increment_bad = 0;

    private $increment_empty_buffer = 0;

    public function __construct(int $thread_id)
    {
        $this->thread_id = $thread_id;
    }

    public function run()
    {

        $GLOBALS['mysqli'] = mysqli_connect(SQLHOST,SQLUSER,SQLPASS,SQLDB);

        require 'vendor/autoload.php';

        $loop = React\EventLoop\Factory::create();

        $context = new React\ZMQ\Context($loop);

        $pull = $context->getSocket(ZMQ::SOCKET_PULL);
        $pull->bind('ipc://127.0.0.1:5577');

        $pull->on('error', function ($e) {
            var_dump($e->getMessage());
        });

        $pull->on('message', function ($data) {
            echo "Received: $data\n";

            var_dump($GLOBALS['mysqli']); // return null


        ....

        $loop->run();
    }
}

我得到null的结果,这意味着$GLOBALS['mysqli']在另一个范围内。我需要获取链接并执行查询。

0 个答案:

没有答案