草庐IT

php - 如何使用 Redis Pub/Sub 在多个工作人员之间映射工作?

我有一个Redis客户端,它需要在3个工作人员之间拆分/映射一个工作。假设作业包含3个任务。我想以这样的方式映射它们,使它们中的3个并行运行,并且作业只需要(大约)1/3的执行时间。有什么办法可以用Redis本身做到这一点吗?我没找到。 最佳答案 您可以使用redis创建任务队列。例如,您可以让主进程将任务推送到任务队列,然后让工作进程不断轮询任务队列以获取新工作。主伪代码:while(1)ifsome_conditionredis.rpush"tasks","task1"redis.rpush"tasks","task2"redi

ruby-on-rails - Resque 工作人员无法识别 Rails Mongoid 模型

我在延迟作业的应用程序中使用resque,我无法向大量用户异步发送电子邮件和短信。而数据存储在mongodb中,mongoid是连接rails&mongo的ODM。我的mongoid模型是这样的classItemincludeMongoid::DocumentincludeGeo::LocationHelperfield:name,:type=>Stringfield:desc,:type=>String#resquequeuename@queue=:item_notification#resqueperformmethoddefself.perform(item_id)@item=I

python - 我如何在 API 和工作人员中使用具有不同代码库的 celery

目前我有一个Ec2实例用于传入API请求用户订单通过celery任务进入redis队列我有2个Ec2实例处理队列问题是API和celeryworker的代码库是相同的。因为例如我使用cutsomer.process_order(order_id)然后worker完成剩下的工作。有什么方法可以将API与工作代码分开。我想在单独的代码库中制作API,在单独的代码库中制作worker 最佳答案 您的API代码可以在没有任务源代码的情况下调用任何Celery任务。Celery有一个功能叫做signatures:fromceleryimpor

ruby - 知道工作人员已在 Resque 中完成作业/流程的方法

有什么方法可以知道worker是否已经完成了Resque中的特定工作/流程。场景:我有5个worker在做一些特定的过程,我想知道过程是否完成以继续其他部分的代码。如果有任何帮助,我正在使用Ruby1.8.7和Rails3.1.1。 最佳答案 如果你需要知道这个你可以试试gearman 关于ruby-知道工作人员已在Resque中完成作业/流程的方法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

node.js - 无法连接到 redis 以与多个工作人员一起使用

我在使用heroku中的kue连接到redis以处理多个工作进程时遇到问题。我可以与多个工作人员连接到本地主机上的redis,但它似乎在与redis-to-go连接时中断。这似乎只有在我有多个kue工作人员/进程正在运行时才会中断。kue.redis.createClient=function(){varclient;client=redis.createClient(1234,'tetra.redistogo.com');client.auth('xyz');returnclient;};jobs=kue.createQueue();jobs.process("email,2,fun

ruby-on-rails - Sidekiq 工作人员无法写入数据库或日志文件

我正在Herokou和Redis上构建一个应用程序,它为包含手机号码的输入CSV文件中的每一行发送一条SMS消息。该消息是在如下所示的sidekiqworker中使用Twilio发送的。问题是,即使正在为CSV中的所有行发送SMS,数据库写入(TextMessage.create)和日志写入(puts语句)只执行对于CSV中的one行。CSV文件中的每一行都会生成一个Sidekiqworker。似乎只有一个Sidekiq工作人员具有I/O(数据库、文件)访问权限,并且它锁定了其他Sidekiq工作人员。任何帮助将不胜感激。sidekiqworker:require'sidekiq're

python - 我应该如何处理重叠批处理的 RQ 工作人员

我已经开始使用RQ/Redis为我的django站点构建一些异步执行的一些长时间运行的作业。我希望做如下事情:我希望模型的每个实例都有一个队列。你可以把这个模型想象成一个api用户帐户。(这些不会有很多。最多15-20个)我将在队列中平均分配任务批处理(从10到500不等)。在第一个批处理完成之前可以添加多个批处理。对于每个批处理,我想为每个未积极处理的队列启动一个工作人员,我想以批处理模式运行这些工作人员,以便一旦他们用完任务将关闭。我意识到我不能以批处理模式运行它们,然后我会一直处理/监听所有队列上的工作。这样做的问题是我希望能够动态地添加和删除队列,因此最好在每批中启动可用队列。

ruby-on-rails - docker + rails + redis - 救援人员没有运行

我创建了一个docker环境,它创建了3个镜像:rails、postgresql和redis。它一直运行良好,但我发现我的redis镜像似乎没有任何工作程序在运行。Docker信息我的docker-compose.yml如下web:build:.command:bundleexecunicorn-p3000-cconfig/unicorn.rbvolumes:-.:/fitmo-../fitmo-core:/fitmo-coreports:-"3000:3000"links:-db-redisenvironment:-REDIS_URL=redis://redis:6379db:bui

redis - 在 celery 中,如何确保在工作人员崩溃时重试任务

首先请不要将此问题视为thisquestion的重复我设置了一个使用celery和redis作为broker和result_backend的环境。我的问题是如何确保当celeryworker崩溃时,所有计划的任务都会在celeryworker恢复时重新尝试。我看到了关于使用CELERY_ACKS_LATE=True的建议,这样代理将重新驱动任务直到它获得ACK,但在我的情况下它不起作用。每当我安排一项任务时,它会立即转到工作人员,该工作人员将其坚持到预定的执行时间。让我举个例子:我正在安排这样的任务:res=test_task.apply_async(countdown=600),但是

开源 swift 项目的 Swift.org 问题。错误 : xcrun: error: unable to find utility "launch-with-toolchain", 不是开发人员工具或在 PATH 中

我正在尝试使用自定义工具链启动Xcode并启用它以使用Swift的开源版本。步骤取自Swift.org我收到这个错误:xcrun:error:unabletofindutility"launch-with-toolchain",notadevelopertoolorinPATH 最佳答案 来自https://swift.org/download/#apple-platforms的开源Swift工具链需要最新的Xcode7.2(当前:beta4)。xcrun等构建工具使用的developer目录位置必须设置为这个Xcode7.2。这可