我有运行 XAMPP 的 Ubuntu(灯栈:Linux、Apache、MySQL、PHP、Pear)。我想一起使用 PHP 和 Beanstalkd 来制作一个简单的队列,当用户继续时page1.php, a JOB被发送到QUEUE for a WORKER捕捉。这JOB将是一个 SQL 语句WORKER然后会执行:
到目前为止我所做的是:
安装的 Beanstalkd:sudo apt-get install beanstalkd
开发的 php 代码和必须完成的“工作”page1.php。工作是发送 sql 语句$sql
到工作人员要执行的队列(在未来版本中
这项工作将更加复杂,因此队列系统将更加重要):
第1页.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
}
?>
- 制定了必须由WORKER.
WORKER:
<?php
$stmt = $conn->query($sql);//simple update
?>
问题/问题:
问题是我不知道要调用什么函数来创建工作人员,要调用什么函数来发送队列。我在网上搜索了各种例子,
但没有完整的,而且解释也很模糊。我看到有一个叫做 pheanstalkd 的东西存在,我读到它是一个包装器
对于 beanstalkd,很多人都在网上使用它,但我不确定这是否是一个要求。谁能指导我走向正确的方向,需要调用哪些函数或需要在 Linux 终端中执行哪些代码才能使这个示例正常工作?非常感谢所有反馈,这将帮助我本周不再掉头发。
找到解决方案:
经过更多研究后,我成功地让它发挥作用!为了达到这一点,还缺少相当多的东西。过程如下:
- Execute
sudo apt-get install beanstalkd
在linux终端中安装beanstalkd。
- Execute
sudo apt install composer
安装composer,这是推荐用于安装pheanstalk的程序。
-
创建一个composer.json
文件,让作曲家知道要下载什么库以及该库的版本。例如:
{
"require": {
"pda\pheanstalk": "2.1.1"
}
}
Execute composer install
在Linux终端中。这必须在与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.
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)