- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 beanstalkd 的 Perl 客户端。我需要一种简单的方法来避免将相同的工作排入队列两次。
我需要的东西基本上需要等到有K个元素,然后把它们组合在一起。为此,我有制作人:
insert item(s) into DB
insert a queue item into beanstalkd
消费者:
while ( 1 ) {
beanstalkd.retrieve
if ( DB items >= K )
func_to_process_all_items
kill job
}
这与请求/处理的数量成线性关系,但在以下情况下:
insert 1 item
... repeat many times ...
insert 1 item
假设所有这些插入都发生在检索作业之前,这将添加 N 个队列项,并且它会执行以下操作:
check DB, process N items
check DB, no items
... many times ...
check DB, no items
是否有更聪明的方法来执行此操作,以便它不会不必要地插入/处理后面的作业请求?
最佳答案
我有一个相关的要求。我只想在几分钟内处理一次特定的作业,但生产者可以对同一作业的多个实例进行排队。我使用内存缓存来存储作业标识符并将 key 的到期时间设置为几分钟。
当工作人员尝试将作业标识符添加到内存缓存时,只有第一次会成功 - 如果添加作业 ID 失败,工作人员将删除该作业。几分钟后, key 从内存缓存中过期,可以再次处理作业。
不是特别优雅,但它确实有效。
关于perl - beanstalkd 的条件工作队列插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1955082/
有人知道如何更改 beanstalkd 的最大作业大小吗?我的问题是收到消息 JOB_TOO_BIG 并且在 Adding Job to beanstalkd ,它表示默认大小为 65k。有人知道如何
我想知道是否有任何用于 beanstalkd 队列系统的数据库存储 http://kr.github.com/beanstalkd/ 我的主要目的是分析工作状态,完成或放弃或处理中或完成。 最佳答案
我正在使用 Beanstalkd 通过 ffmpeg 处理视频文件。 我正在使用 https://github.com/pda/pheanstalk PHP-客户端 我面临以下问题。 a) 有时工作不
我想监视哪些作业正在流经 beanstalkd 队列。有没有办法通过命令行来做到这一点。在命令行上运行 beanstalkd 时不显示任何输出。本质上,我正在寻找调试或详细选项。 最佳答案 据我所知,
我在 Laravel 项目中使用 beanstalkd 来处理队列上的作业。 Beanstalkd 在本地运行。我想要做的是在队列变大时添加一台或多台远程服务器来处理一些作业。我知道使用 Larave
我创建了一个从 beanstalkd 读取的 PHP 脚本并处理作业。那里没有问题。 我要做的最后一件事就是为它编写一个初始化脚本,这样它就可以作为服务运行。 然而,这又给我提出了另一个问题。尝试停止
我正在使用 beanstalkd 的 Perl 客户端。我需要一种简单的方法来避免将相同的工作排入队列两次。 我需要的东西基本上需要等到有K个元素,然后把它们组合在一起。为此,我有制作人: inser
使用 Beanstalkd 作为消息队列服务,然后结合 Python 的装饰器语法实现一个简单的异步任务处理工具. 最终效果 定义任务: ?
我已经使用安装了 beanstalkd sudo apt-get install beanstalkd 安装了 beanstalkd 1.7 版 现在开始我正在使用命令的 beanstalkd 进程
我们有两个队列服务器,都附加到应用程序。到目前为止,服务器 1 接收到所有排队的作业并对其进行处理。我想建立一个集群,以便负载分布在 2 台服务器上。任何人都可以建议如何设置集群。 谢谢。 最佳答案
我的服务器上安装了 beanstalk,并运行以下命令: $ telnet localhost 11300 use my_tube USING my_tube peek-ready FOUND 110
我已将配置设置为使用本地 beanstalkd 服务器: 'beanstalkd' => array( 'driver' => 'beanstalkd', 'host' => 'l
我正在使用此 Dockerfile 构建 Docker 镜像 FROM ubuntu:12.04 ENV DEBIAN_FRONTEND noninteractive ENV PATH /usr/lo
我正在使用 beanstalkd 来管理队列。我刚刚意识到,如果队列中有作业并且 beanstalkd 进程重新启动或崩溃,那么该作业将永远丢失(或者我认为是这样)。 是否有办法在 beanstalk
我对优先级是否在作业级别或队列/管道级别起作用感到有点困惑。我问的原因是我正在 Drupal 中使用 beanstalkd 集成模块。该模块使人们能够定义队列/管,并为创建的每个队列/管分配优先级值。
我无法让 Beanstalkd 绑定(bind)到正确的地址。我正在运行 Debian 8。使用 apt 安装了 beanstalkd。如果我运行 service beanstalkd start,绑
我使用 Beantalkd 和 Yii2 框架。 要添加到队列中,我使用如下内容: Yii::$app->beanstalk ->putInTube('tube2'
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我通过 NodeJS( Fivebeans 客户端)使用 Beanstalkd 。 我不能埋葬工作,甚至不能使用 telnet! client.bury(jobID,priority) 的答案始终是“
有没有一种方法可以同时从 beanstalkd 队列中保留多个作业? 我正在向外部 API 发出请求,每个查询最多可返回 10 个结果。他们限制了我每天可以提出的请求数量,因此我每次请求获得的结果越多
我是一名优秀的程序员,十分优秀!