- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的应用使用 Kue排队请求,这些请求由 worker.js
处理,因为我需要通过 Proximo 发送作业发出的请求 - 这有点令人困惑。但正因为如此,作业的结果无法发送回用户。以前,作业会res.send(results)
,然后用户会得到数据。
让 Kue'ed 作业将结果发送回用户的最佳方法是什么?目前我能想到的唯一方法是使用网络 Hook ,但这不是最有效的方法,而且它在用户和他们的数据之间建立了一堵墙。
最佳答案
这是我必须执行我认为您正在执行的操作的代码。
简单地说,这只是在 url/job 被命中时添加一个工作,一个工作工作被创建,运行的工作人员选择,等待半秒并生成一个随机数。这是非 socket.io 版本。你可能不应该这样做,但它确实有效。
网络服务器 (web.js):
var port = 1337;
var app = require('express')()
, server = require('http').createServer(app);
server.listen(port);
var fs = require('fs');
var kue = require('kue')
, jobs = kue.createQueue();
app.get('/',function(req,res) {
fs.readFile(__dirname+'/index.html',function(err,data) {
res.send(data.toString());
});
});
var responses = {};
app.get('/job', function(req, res){
var id = ''+Math.random();
jobs.create('worker-job', {
title: 'worker job'
, res_id: id
, template: 'Some string to look up'
}).save();
responses[id] = res;
});
jobs.process('results',function(job,done) {
responses[job.data.res_id].send(job.data);
delete responses[job.data.res_id];
done();
});
worker (worker.js):
var kue = require('kue')
, jobs = kue.createQueue();
jobs.process('worker-job',function(job,done) {
setTimeout(function() {
jobs.create('results',{
title:'results job',
status:'complete',
res_id:job.data.res_id,
random:Math.ceil(Math.random()*10000)
}).save();
done();
},400);
});
关于Node.js Kue worker 发送结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15338820/
我正在使用 kue 对一些使用 node express 的 python 作业进行排队和处理。我使用的 redis 服务器不是 localhost 上的默认服务器,而是 AWS Redis。问题陈述
我希望我的 queue.process 函数在一个单独的文件中,但是 module.exports 不起作用。 kue.js: var kue = require('kue'); module.exp
我正在使用 kue在我的一个项目中,从数据库中删除陈旧的锁。我能够处理单个作业,例如更新 mongoDB 中的单个文档。 var kue = require('kue') , queue = kue
当在具有多个实例(例如 docker 中的多个容器)的应用程序中使用 kue 时,所有实例都使用相同的 redis 数据库,如果您暂停一个工作程序,您是否需要在所有实例上暂停该工作程序,或者是在 re
我有一个用 Heroku 部署的解析服务器(来 self 的 GitHub 存储库)并由 mongoLab 托管。我正在尝试在我的应用程序中发送预定的推送通知,kue 似乎是最可行的选择。然而,由于我
是否有已知的 API 可以获取 Kue 中的工作数量?例如,我想获取非事件作业的数量。 现在我有这部分获取工作的代码。 var kue = require('kue'), jobs = kue.cre
我正在尝试按不同的时间表运行两个不同的作业(请参阅下面的代码示例)。由于某种原因,本应每天晚上 11 点运行一次的作业每次运行时都会运行其他作业。当我期望它们运行时,如何让它们运行?感谢您的帮助。 c
我的主 Node 实例派生了一个工作进程,该进程通过 IPC 接受消息(使用内置 Node process.send() 和 process.on('message'... ),这些对象包含有关要添加
我不太确定如何解决这个问题,但这对我来说很烦人,而且在生产中把事情搞砸了。我正在使用 kue.js 在用户完成某事后完成任务。我网站上最典型的案例是上传图片和发送电子邮件。 它大部分时间都有效,但其他
我正在运行一个 heroku 应用程序,后台工作人员使用 Kue 处理作业。因为 heroku 终止并重新启动任何需要超过 30 秒的请求,所以我最终在 jobs.create() 上(在完成之前)将
我有一个 API 端点,它提供来自 MongoDB 的一些 JSON。就像这样: router.get('/api/links', function (req, res) { // Find ex
持续处理添加到队列中的项目的最佳方法是什么?我看到下面的方法 queue.process https://github.com/Automattic/kue#processing-jobs 但这将处理
根据 kue 文档,创建队列和添加作业很容易,但我无法了解作业的存储方式 var kue = require('kue') jobs = kue.createQueue(); 添加工作 jobs.
我的应用使用 Kue排队请求,这些请求由 worker.js 处理,因为我需要通过 Proximo 发送作业发出的请求 - 这有点令人困惑。但正因为如此,作业的结果无法发送回用户。以前,作业会res.
如果系统中已有相同的作业,我希望 jobs.create 失败。有什么办法可以做到这一点? 我需要每 24 小时运行一次相同的作业,但有些作业可能需要超过 24 小时,因此在添加之前我需要确保该作业不
使用 Kue ,如何安排每周四执行一次的工作? Kue readme 提到我可以延迟一个 Job,但是在特定时间重复执行 Job 呢? 我可以通过 cron 作业做我想做的事,但我喜欢 Kue 的功能
我正在使用 kue在一个网络爬虫应用程序中。如果错误符合特定条件,我想为某些失败的作业设置 attempts。例如,如果错误是由套接字挂起引起的,则作业将以 1 分钟的间隔重试 3 次。 我的代码如下
我正在使用 kue对于我的作业队列,我想在不使用 GUI 的情况下知道还剩下多少作业,有多少作业失败等。如何检索此类信息? 例如,在开始处理作业队列几分钟后,我想将迄今为止失败的所有作业的状态更新为“
我正在使用 kue对于我的 node.js 应用程序中的延迟作业。 我有一些问题要弄清楚如何使用 kue 的 API 重新启 Action 业,而无需使用 redis 命令手动将作业的 id 从失败作
我创建了一个工作: var kue = require('kue'); var queue = kue.createQueue(); //name of the queue is myQueue va
我是一名优秀的程序员,十分优秀!