编程语言
首页 > 编程语言> > 无法使Beanstalkd队列适用于PHP

无法使Beanstalkd队列适用于PHP

作者:互联网

我有运行XAMPP(灯栈:Linux,Apache,MySQL,PHP,Pear)的Ubuntu.我想一起使用PHP和Beanstalkd来创建一个简单的队列,当用户进入page1.php时,会将JOB发送到QUEUE以供WORKER捕获.该作业将是WORKER随后执行的SQL语句:

到目前为止,我所做的是:

>已安装Beanstalkd:sudo apt-get install beanstalkd
>开发了php代码,并且必须在page1.php中完成“工作”.这项工作是将sql语句$sql发送到队列以供工作人员执行(在以后的版本中
这项工作将变得更加复杂,因此队列系统将变得更加重要.):

page1.php中:
    

if (isset($_SESSION['authenticated']))
{
    //if the user is logged in, send an sql statement to the queue
    $user_id = $_SESSION['id'];
    $sql = "UPDATE user_table SET count = count + 1 WHERE id = {$user_id}";

    //... missing code that would send the statement
}

?>

>制定了工作人员必须执行的操作.

工人:

<?php

    $stmt = $conn->query($sql);//simple update

?>

问题/问题:

问题是我不知道创建工作者的调用函数,发送队列的调用函数.我在网上搜索了各种示例,
但是没有完整的解释,而且解释很模糊.我已经看到存在一种叫做pheanstalkd的东西,我读到它是一个包装纸
对于beantalkd,很多人都在网上使用它,但是我不确定这是否是必需的.任何人都可以引导我朝着正确的方向前进,我需要调用什么功能或者我需要在linux终端中执行什么代码才能使这个示例正常工作?非常感谢所有反馈,这将帮助我在本周不再失去任何头发.

解决方法:

找到的解决方案:

经过更多研究后,我设法使其正常工作!到这一点,缺少了可观的数量.该过程如下:

>在linux终端中执行sudo apt-get install beanstalkd来安装beanstalkd.
>执行sudo apt install composer来安装composer,这是推荐用于安装pheanstalk的程序.
>创建一个composer.json文件,该文件将使作曲家知道要下载的库以及该库的版本.例如:

{
  "require": {
    "pda\pheanstalk": "2.1.1"
  }
}

>在linux终端中执行composer安装.这必须在与composer.json文件相同的文件夹中完成.
>包括将启动Pheanstalk类的必要代码,并按说明使用它.就是这样!示例代码如下:

<?php

require_once('vendor/autoload.php');//require the autoload file provided by
                                    //composer

//Initiate an instance of the Pheanstalk class
$pheanstalk = new Pheanstalk_Pheanstalk('127.0.0.1');

//adding a job to queue/tube testtube:
$pheanstalk->useTube('testtube')->put('message');

//obtaining the job by a worker:
$job = $pheanstalk->watch('testtube')->ignore('default')->reserve();

echo $job->getData;//outputting the message

$pheanstalk->delete($job);//deleting the job from the queue.

?>

标签:php,linux,queue,beanstalkd
来源: https://codeday.me/bug/20191013/1907288.html