问题标签 [php-resque]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
557 浏览

resque - 多个队列与 resque 中的多个作业

我正在使用 resque 来后台处理两种类型的作业:

虽然这两个作业可以并行处理,但每个作业类型本身只能按串行顺序处理。例如,数据库操作需要以串行顺序发生,但可以与第 3 方 API 请求并行执行。

我正在考虑以下任一方法来执行此操作:

我想知道这两种方法的区别,以及这两种方法中哪种方法更好。

0 投票
1 回答
79 浏览

php - 后台作业太多的 BDD 测试?

我在我的项目中使用 BDD (Behat) 进行功能测试。现在我在测试具有太多后台作业的功能时遇到了问题。例子:

然后我必须等到它完成”包含:

  • 服务器 1 收到上传的文件,将一些元数据插入数据库并将状态标记为“正在导入”,然后将 zip 文件上传到 s3
  • 服务器 2 从 s3 下载文件并处理诸如 PDF、图像之类的资产,然后在处理后压缩所有内容并再次上传到 s3。
  • 服务器 3 从 s3 下载结果 zip 包(由服务器 2 完成),并开始导入问题(导入 pdf、图像、文章...)

我可以看到文章列表已导入”是我调用一个 API 到服务器以获取该问题的文章列表。

如您所见,因为在导入期间,我们有太多后台作业(使用 Resque),所以我必须通过检查问题状态等到它完成:

问题是我不知道要等多久,因为这取决于问题包的大小,大小越大等待的时间越长。那么在这种情况下,我该怎么办呢?

0 投票
1 回答
267 浏览

php - 使用 php-resque 将数据排队到 redis 很慢

我正在使用php-resque对我的工作进行排队。我正在使用 apache ab 工具来对我的性能进行基准测试。

php-resque做得很好,但是每次我连接到redis时它都会很慢,这会影响性能(没有它处理的连接~130 Requests/secResque::enqueue它的连接~30 requests/sec)。

所以我想将数据传递到另一个文件,通过exec该文件将在后台连接redis和queus作业,但发现这exec很慢。

接下来是什么 ?我怎样才能让它更快地处理redis排队。

注意:我使用这个命令来测试性能。

0 投票
1 回答
678 浏览

php - php-reque: worker 因“MySQL 服务器已消失”而失败

我开始使用 php-resque ( https://github.com/chrisboulton/php-resque ) 以及 php 和 mysql 服务器。我看到工作人员的“MySQL 服务器已消失”错误。

作业排队代码:

职位类别:

我看到“MySQL 服务器已消失”错误消息:

请注意,这不会发生,即 mysql 工作正常,当我执行 whitout php-resque 的操作时,例如:

}

0 投票
2 回答
1128 浏览

php - PHP Resque Worker 不工作?

我想在我的 codeigniter 项目中使用 php_resque( https://github.com/chrisboulton/php-resque )。这是创建新工作的“测试”功能。

这是工人库代码

当我调用'test'(localhost/project_folder/controller/test)时,worker(My_Job.php)中的'perform'函数没有加载。工作状态是 1。这里有什么问题?

编辑

当我使用以下代码进行调试时

VERBOSE=1 QUEUE=default php resque.php

它说找不到工作类

0 投票
1 回答
178 浏览

php - PHP - 解析和验证文本文件数据并将其导入 mysql 数据库

我正在使用php-resque解析和验证大文件中的数据,然后将该数据导入 mysql 数据库。

我已经知道 LOAD DATA INFILE 可用于将文本文件中的行读取到表中,但不执行任何验证。

我的数据库结构:

项目文件表:

物品表:

我的 Resque 工作类如下所示:

php-resque fork 一个子进程并实例化 ItemsFileProcessor 类然后

  1. setUp() 被调用
  2. perform() 被调用

我的问题:

  • 处理文件花费的时间太长
  • Mysql 必须一一处理所有的插入请求。LOAD DATA INFILE 要快得多。

我的问题:

有没有办法优化这个或者可能以某种方式引入 LOAD DATA INFILE 。

0 投票
1 回答
213 浏览

php - php-resque:如何杀死特定的工作?

我正在使用php-resque库,可以使用以下代码创建和跟踪作业。

但是给定方法返回的令牌enqueue,如何停止作业呢?

我在项目页面上找到了这个,但它不使用作业令牌来停止作业,而是使用工作人员 ID。

考虑到我可能有不止一名工作人员处于活动状态,我如何才能找到正在执行所请求工作的工作人员 ID?

0 投票
0 回答
33 浏览

jobs - mjphaynes/php-resque Class not found 错误

我正在使用 mjphaynes/php-resque 库(链接)为我的 php 应用程序运行作业。我已经使用 composer 安装了它并与我的应用程序集成。我能够使用语法推送作业Resque::push('MyJob', array('arg1', 'arg2'));(我在我的表和 redis 数据库中看到使用 jobIds/tokens 创建的作业)。工人使用语法运行良好bin/resque worker:start。我面临的问题是,当我运行一个工人来处理作业时,我得到了 Class not found 错误,谁能帮我设置APP_INCLUDE工人可以找到提到的作业类文件的路径。

在此处输入图像描述

注意:php 应用程序是在程序/核心 php 中构建的(没有框架)。因此,我发现运行工人具有挑战性。

任何帮助都非常感谢。谢谢。