Tag: kue

工作完成后的Kuecallback

我的主节点实例派生一个工作进程,它通过IPC接受消息(使用内置的Node process.send()和process.on('message'… ),这些对象包含有关要添加到Kue中的新作业的信息然后处理这些工作。 我的主要Node实例调用如下所示: worker.send({jobType:'filesystem', operation: 'delete', path: fileDir}); 和工人实例做这样的事情: jobs.create(message.jobType, message).save(); jobs.process('filesystem', function(job, done) { fs.delete(job.data.path, function(err) { done(err); }); }); 并且工作成功完成。 在作业完成后,如何在主节点实例中获得类似callback的function? 我怎样才能从工人实例返回一些结果到主节点实例?

在节点中运行后台任务需要多less时间?

如果我的理解是正确的,处理后台任务是一个很好的方法来释放主线程的CPU绑定任务。 我得不到的是bull或kue这样的系统用来运行主线程的任务。 他们使用线程吗? 他们是否需要整个节点进程分叉? 他们是否会产生subprocess?

如何使用kue在parse-server上安排工作?

我有一个用Heroku部署的分析服务器(从我的GitHub回购),并由mongoLab托pipe。 我试图在我的应用程序内发送预定的推送通知,而kue似乎是最可行的select。 但是,由于我对此很不熟悉,我不确定如何处理。 我相信我已经在我的服务器上正确安装了kue(通过GitHub)。 现在,我想安排这个代码在未来的某个date执行: Parse.Cloud.define("sendPush", function(request, response) { var pushQuery = new Parse.Query(Parse.Installation); pushQuery.equalTo('username', request.params.targetUsername); Parse.Push.send({ where: pushQuery, // Set our Installation query data: { alert: 'Hello!', badge: 'Increment', sound: 'PopDing.caf' }, }, { success: function() { console.log("#### PUSH OK"); }, error: function(error) { console.log("#### PUSH ERROR" + error.message); }, useMasterKey: true}); }); 如果我以正确的方式来处理这个问题,那么我需要代码来简单地安排一个工作(上面的代码)在将来的特定时间执行。 […]

kue的工作id限制是什么?

我的平台是nodejs,并开始使用kue作为队列引擎。 它迄今为止工作完美,我只是好奇它允许的最大工作id,因为我每天有数十亿个工作开始。

Nodejs:跨meteor共享会话,并将应用程序作为单独的实例运行

基本上,用户使用accounts-ui软件包login在localhost:30000上运行的meteor应用程序。 Express应用程序在本地主机上运行:34444。 在某些时候,用户需要使用快速应用程序(实际上是Kue),我想避免用户login两次。 两个实例都在同一个域上运行,只是不同的端口。 我的最终目标是有一个作业队列pipe理),从另一个web服务器实例(本例中为meteor)login的用户可以访问,全部在同一个域中。

使用Express.js和Kue.js的群集

我目前正在为自己开发一个需要在后台处理东西的项目,但是,我需要在Express和Kue之间进行通信。 但更多关于当前的设置:我的Express.js叉自己超过主机内的一半CPU。 这按预期工作。 现在我运行另一个运行kue.js进程的节点进程。 由于kue通过redis调度它的工作,我现在的主要问题是如何能够从处理后台作业发送数据回到我的主要node.js应用程序。 我的设置简短的轮廓: app.js(与节点app.js一起运行) var cluster = require('cluster'), Datasets = require('./models/datasets'), kue = require('kue'), jobs = cue.createQueue(); if(cluster.isMaster) { // Forking going on here } else { // Express.js app runs here app.get('/', function(req, res) { // Now here is where i schedule the job and i would like to retrieve an […]

Kue worker with createClientFactory:只能使用订阅者命令

我正在努力让我的工人build立起来,发现了一些奇怪的东西。 如果我使用默认的kue redis连接创build我的队列,那么一切都很完美: var kue = require('kue') , redis = require('redis'); var q = kue.createQueue(); q.process('cypher', function(job, done){}); 工人完美地启动。 但是,如果我尝试覆盖默认的redis连接与我自己的我得到一个 错误:在用户模式下连接,只能使用用户命令 当执行命中下面的q.process函数时: var kue = require('kue') , redis = require('redis'); var redisClient = redis.createClient(); var q = kue.createQueue({ redis: { createClientFactory: function(){ return redisClient; } } }); q.process('cypher', function(job, done){}); 这似乎没有任何意义。 我想也许我犯了一个经典的asynchronous错误,但即使是以下是我得到同样的错误。 任何见解? redisClient.on('connect', function […]

我可以用kue / node.js保存数据吗?

我目前正在使用kue / node.js https://github.com/Automattic/kue 我创build并保存作业后,数据将在我的本地Redis服务器中。 var job = queue.create('new_job', { title: 'welcome email for tj' , to: 'tj@learnboost.com' , template: 'welcome-email' }).save( function(err){ if( !err ) console.log( job.id ); }); Redis Cli 127.0.0.1:6379> keys * 1) "q:job:12" 2) "q:jobs:inactive" 3) "q:stats:work-time" 4) "q:ids" 5) "q:job:11" 6) "q:job:7" 7) "q:search:object:13" 8) "q:search:word:TTL" 9) "q:search:object:2" 10) "q:jobs:new_job:inactive" […]

在使用作业队列(kue / node / express)时将响应发送回请求者

js / express。 我正在做的是发送一个请求来表示服务器从一个不同的服务器与一些用户的详细信息。 将请求详细信息添加到作业队列(kue),然后使用工作人员(集群)处理作业并向用户发送电子邮件。 我想发送一个响应回发送请求到我的快递服务器的服务器。 正常的res.send()在这里不起作用,因为在将请求参数添加到队列和进程之后,请求和响应之间没有链接。 这里是我的代码的示例。 app.js app.get('/my_request/:param1/:param2/:param3', function( req, res ) { req.params.type = "ORDER_COMPLETE"; var params = req.params; jobs.create('jobQueue', { 'title': "order_receipt", 'params' : params } ) .ttl( 30 * 1000 ) //value in ms // 30 min .removeOnComplete( true ) .save(function(err) { if (err) { console.log('jobs.create.err', err); } }); //res.send( […]

Kue作业完成后执行callback

我已经看到这样的问题,但他们不回答我的问题。 我有一个function var kue = require('kue'); var jobs = kue.createQueue(); var create_job = function(data, callback){ jobs.create('job', { stuff: data }).save(); } 如何在jobs.process('job', function(job, done){ … )完成时callback jobs.process('job', function(job, done){ … ?