问题标签 [pheanstalk]

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 回答
516 浏览

security - Beanstalkd / Pheanstalk 安全问题

我刚刚开始使用beanstalkdpheanstalk,我很好奇以下情况是否是安全问题(如果不是,为什么不呢?):

在设计一个队列时,该队列将包含最终的工作脚本以获取和执行 SQL 数据库查询的作业,我问一个朋友我可以做些什么来防止在线用户进入我服务器的端口 11300,并将作业插入到自己排队,从而导致作业被恶意代码执行。有人告诉我,我可以在发送的作业中包含密码。

虽然经过一段时间后,我意识到有人可以在终端上执行一些简单的命令并获取队列中的作业,从而找到密码,然后创建包含密码的作业:

可以做些什么来确保不会发生这种情况并且我的队列不会被黑客入侵/控制?

提前致谢!

0 投票
0 回答
99 浏览

php - Beanstalkd 不执行工作,但数据被发送到管

我正在使用带有 armetiz/LeezyPeanstalkBundle 的 symfony3。我想执行一个从给定名称创建表的工作。如果我从控制台 bin/console create:table test_table 运行,我已经创建了带有参数名称的 symfony 命令 create:table 来创建表。现在我想在我的事件启动时使用 phenastalk 来完成这项工作。该事件工作正常,即使数据发送到管,但命令不执行。问题是什么?

这是数据:

我设置了管名

我将有效载荷放入管中:

这是我在试管中看到的数据:

但是没有创建表,但是如果我从控制台运行命令,则会创建表,所以命令是可以的。我认为是 pheanstalk 工人有问题吗?

0 投票
1 回答
753 浏览

php - Pheanstalk queueng list 保留 PHP

大家好,我的 pheanstalk 有问题,对不起,这是我第一次使用它。我的项目涉及一个保存 5000 个条目的 php,当我工作时,由于流量请求而得到 502。所以我对这些的解决方案是在这个过程中使用一个 pheanstalk 这里是我下面的代码,这是可以的。我已经在服务器上安装了 beanstalk。

0 投票
1 回答
442 浏览

php - Beanstalk总是有无限循环php

我的 Beanstalkd 设置有问题。我创建了一个生产者,但它一直在加载,就像一个无限循环。我也将此问题发布到 GitHub

我尝试添加 2 个具有简单数组的管子,但我遇到的另一个问题是,当我使用管子的名称时,它没有我期望的值:它总是在旧管子上获得值。

我做错了什么?

这是我的生产者代码:producer.php

0 投票
1 回答
683 浏览

php - Pheanstalk 保留相同的 beanstalkd 工作两次或更多

我有 3 个 beanstalkd 队列进程在相同的 ip 但不同的端口上运行。我有一个单独的服务器运行主管并行产生 php 工作人员(每个 beanstalkd 端口 20 个)来处理队列。我的问题是,似乎两个进程可以同时在同一台服务器上保留相同的作业 ID。

这是我的日志中的一些示例输出:

似乎两个保留发生在彼此之后,而第二个保留发生在第一个过程完成并删除作业之前。

我在 redis 每个 jobid 中添加了一个计数器,很明显,当它第二次保留时,计数器上升了一次(tr)。TTRR 设置为 3600,因此它不可能在第一个进程完成之前过期。

这是在第二个流程保留之后​​的作业状态:

这种行为是非常随机的,有时只有一个进程能够保留直到作业锁定,有时是 2 个,有时甚至是 4 个或更多(很少)。当然,这会导致正在执行的重复作业数量不一致。

代码的简短版本:

0 投票
2 回答
663 浏览

php - 立即埋葬时多次保留相同工作的Pheanstalk工人

所以我使用 beanstalk_console ( https://github.com/ptrofimov/beanstalk_console ) 来监控我的 beanstalkd 队列,有时,我会得到 1 或 2 个工作卡在掩埋状态。这是由于我如何设置工作人员代码,我会在保留一份工作后立即将其埋葬,如果一切顺利则将其删除(否则它会一直被埋没)。我还使用 supervisord 来管理多个队列工作人员。下面的快速代码示例:

现在我的问题是:我注意到,如果我使用 beanstalk_console 将我埋藏的工作移回他们指定的管道,那么我所有可用的工作人员都会在同一时间保留相同的工作(有趣的是,所有人都有不同的工作) id),导致重复工作。他们也会同时被埋葬,尽管 beanstalk_console 只会显示最新的埋葬工作,所以我不确定发生了什么。如果我在埋葬我的工作之前添加一些东西sleep(1),那么只有 1 名工人保留这份工作,我不会得到重复的工作。这几乎就像在预订后立即埋葬一份工作,将其放回队列中。我的代码有问题吗?或者 beantalk_console 让工作恢复的方式有些奇怪?

0 投票
1 回答
168 浏览

php - php守护进程频繁崩溃

我们正在使用 beanstalkd 运行从客户端接收作业,使用 php 并使用 pheanstalk 作为 php 代理。我们运行一个worker作为php系统守护进程并使用monit进行监控。

但它会一直以每天一次的频率重新启动。观察问题后,确认没有代码端错误。那么有哪些机会呢?

0 投票
1 回答
457 浏览

php - 快速找工作

我在 pheanstalk 中的队列有问题(版本:3.0.2)。队列中有 0-10k 个作业,有时我必须在此队列中搜索数据并添加下一个作业。所以我想添加不存在的工作。

在 Pheanstalk 类中,我看不到在工作中搜索的方法,也没有将这个工作移动到“当前工作保留”。

所以我需要快速的方法,只读取作业中的数据而不保留。

我的例子:

但是 relase() 需要很多时间。我该怎么做?

0 投票
1 回答
399 浏览

laravel - 如何使用 pheanstalk 从 laravel 中的保留作业中获取作业数据?

我正在开发一个需要检查 beanstalkd 队列中的作业状态的功能。我已经尝试了一些事情,但我没有得到为默认队列以外的队列保留的作业

这是我尝试过的。但我仍然得到默认队列的数据。任何人都知道如何获取导入实时队列的数据吗?或者我在系统中运行的任何其他队列。基本上我想获取系统中所有队列的数据。

0 投票
0 回答
80 浏览

supervisord - 为什么作业在 2 分钟后被 beanstalkd 排队两次

我有以下环境,我注意到作业在 2 分钟后随机排队两次:

  • 基于PHP F3框架的Web App
  • Pheanstalk 3.0.2 在应用程序中使用作曲家
  • 豆茎服务器
  • Beanstalkd 控制台应用程序
  • 主管
  • Worker 场景:输入多个作业批量删除客户端
  • 问题:相同的作业(已处理)在 2 分钟后以不同的 ID 排队两次

我使用以下代码:

日志文件:

因此,您可以在 2 分钟后找到由于执行相同作业而导致的重复客户端,例如:

是与 TTR / DEADLINE_SOON / 配置问题相关的问题还是与 supervisord 相关的问题?