无法让 Beanstalkd 队列为 PHP 工作

2023-12-05

我有运行 XAMPP 的 Ubuntu(灯栈:Linux、Apache、MySQL、PHP、Pear)。我想一起使用 PHP 和 Beanstalkd 来制作一个简单的队列,当用户继续时page1.php, a JOB被发送到QUEUE for a WORKER捕捉。这JOB将是一个 SQL 语句WORKER然后会执行:

到目前为止我所做的是:

  1. 安装的 Beanstalkd:sudo apt-get install beanstalkd

  2. 开发的 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
}

?>
  1. 制定了必须由WORKER.

WORKER:

<?php

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

?>

问题/问题:

问题是我不知道要调用什么函数来创建工作人员,要调用什么函数来发送队列。我在网上搜索了各种例子, 但没有完整的,而且解释也很模糊。我看到有一个叫做 pheanstalkd 的东西存在,我读到它是一个包装器 对于 beanstalkd,很多人都在网上使用它,但我不确定这是否是一个要求。谁能指导我走向正确的方向,需要调用哪些函数或需要在 Linux 终端中执行哪些代码才能使这个示例正常工作?非常感谢所有反馈,这将帮助我本周不再掉头发。


找到解决方案:

经过更多研究后,我成功地让它发挥作用!为了达到这一点,还缺少相当多的东西。过程如下:

  1. Execute sudo apt-get install beanstalkd在linux终端中安装beanstalkd。
  2. Execute sudo apt install composer安装composer,这是推荐用于安装pheanstalk的程序。
  3. 创建一个composer.json文件,让作曲家知道要下载什么库以及该库的版本。例如:

    {
      "require": {
        "pda\pheanstalk": "2.1.1"
      }
    }
    
  4. Execute composer install在Linux终端中。这必须在与composer.json 文件相同的文件夹中完成。

  5. 包括启动所需的代码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(使用前将#替换为@)

无法让 Beanstalkd 队列为 PHP 工作 的相关文章

随机推荐

  • Android - 启动新活动时保存活动状态

    我目前正在开发一个应用程序 该应用程序应具有以下行为 在其中一项活动中 用户可以选择不同的项目到列表中 在执行此操作时 他应该能够拍照 保存并返回到之前的活动 我遇到以下问题 当用户在拍照后返回到活动时 进度 基本上是所选的项目 丢失 我尝
  • 在“foreach”循环中修改列表的最佳方法是什么?

    C NET 4 0 中的一个新功能是您可以在foreach没有得到例外 请参阅保罗 杰克逊的博客文章并发的一个有趣的副作用 在枚举时从集合中删除项目有关此更改的信息 执行以下操作的最佳方法是什么 foreach var item in En
  • 如何为数组中的多个对象设置一个属性,但在 vue js 中保留单独的反应性

    就我而言 我有data包含多个对象的数组 data return selected 0 presetData true true true data name name 1 name name 2 然后我想将每个对象推入data像下面这样
  • 在 URL 中发送会话令牌到底有哪些安全问题?

    我正在针对 Struts 后端构建 Flex 客户端 并且我必须找到一种不依赖 cookie 来传输会话令牌的方法 因为我无法使用 cookie在 Flash 电影中 我正在考虑将令牌放入消息正文或 URL 中 从安全角度来看 将其放在 U
  • Google Drive Android API 共享问题

    是否可以使用 Android Drive API 与特定 Google 用户共享在 Google Drive 创建的文件 据说 http googledevelopers blogspot ru 2014 01 introducing go
  • 帮助理解 SVN 外部

    我正在为我的公司研究 svn externals 看起来这对我们来说是一个很好的功能 我们有几种产品经常引用共享组件 但有一个坏习惯 即落后于旧版本 有时甚至落后于不同分支的代码库 我已经阅读了有关它们现在如何工作的相当多的内容 并且我想我
  • 查看 gitlab 中子模块提交的差异

    我有一个 gitlab 版本 7 3 当我使用普通存储库时 它工作得很好 不过 我在 gitlab 项目中添加了一个 github 子模块 在我的仓库中 我在提交和推送 git push recurse submodules check 之
  • 编组 C 结构及其中的结构数组

    我在这个论坛中提到了类似的问题 但没有得到我的问题的解决方案 我已经在编组问题上苦苦挣扎了一段时间 我有一个结构 其中包含另一个结构的数组 该平台是Win CE 我使用的是 Visual Studio 2008 和 NET CF 3 5 代
  • 在 Tensorflow 中转换图像时,为什么会出现 ValueError('\'image\'必须完全定义。') ?

    我想通过在张量流中链接不同的图像转换运算符来进行实时数据增强 我的代码从图像解码开始 然后运行不同的转换 但它抛出了一个ValueError image must be fully defined 这是重现此错误的示例 def decode
  • Android 获取表列表

    有谁知道在Android中通过代码获取表名列表的SQL吗 我知道 tables通过命令 shell 执行此操作 但这不适用于代码 与元数据等有什么关系吗 只是不得不做同样的事情 这似乎有效 public ArrayList listTabl
  • ClassLoader.getSystemClassLoader().getResource()在servlet容器和测试环境中的不同行为

    我有一个网络应用程序 我的要求是读取一些文件并处理它 并在应用程序启动时将文件内容保留在数据库中 class MyUtil Read the files public static void readFiles File file new
  • 将指针 char 参数传递给线程中的函数

    当我执行此代码时 我收到 分段错误 核心转储 include
  • 基于多列创建滞后特征

    我有一个时间序列数据集 我需要提取滞后特征 我正在使用下面的代码 但得到了所有 NAN df groupby week id1 id2 id3 as index False value shift 1 input week id1 id2
  • 使用嵌套 foreach 循环从数组中获取值

    我有一个很长的数组 我希望从中获取所有值并将其存储在一个单独的变量中 并将每个值存储在数据库中 我拥有的数组是 Array success gt 1 categories gt Array 0 gt Array category id gt
  • Tomcat 的 Catalina 实用程序线程定期使用高 CPU 和内存

    We have a webapp that uses on average 20 CPU when idle with no network traffic or any kind of requests It is running on
  • PHP 中的 IP 到国家/地区 [重复]

    这个问题在这里已经有答案了 可能的重复 IP 到国家 地区 在 PHP 中从给定 IP 获取国家 地区的最佳方法是什么 看一眼 知识产权国家手册 您可以免费下载这个数据库 导入数据库后 您需要运行以下查询以从 IP 获取国家 地区 coun
  • 使用 coredata 时出现完全不相关的错误

    桥接标头 Users bobby Desktop Project Project Name Project Name Bridging Header h 不存在 我在尝试使用核心数据在我的 iPhone 应用程序中保存数据时遇到此错误 即使
  • Chrome 和 --allow-file-access-from-files

    我有一个 jquery AJAX 登录页面 可以在除 Chrome 之外的所有浏览器中完美运行 我似乎在 Chrome 中遇到了一个问题 该问题在Chrome 中使用本地文件的 jQuery getJSON 问题 有人说这是一个错误 有人说
  • 使用 iText 将 tiff 文件转换为 pdf 文件时出现异常

    当我尝试转换tiff文件至pdf文件通过使用itextpdf 5 5 5 出现以下异常 java lang RuntimeException 扫描线必须以 EOL 代码字开头 在 com itextpdf text pdf codec TI
  • 无法让 Beanstalkd 队列为 PHP 工作

    我有运行 XAMPP 的 Ubuntu 灯栈 Linux Apache MySQL PHP Pear 我想一起使用 PHP 和 Beanstalkd 来制作一个简单的队列 当用户继续时page1 php a JOB被发送到QUEUE for