これが私があなたがしていると思うことをするために得たコードです。
これは、URL / jobがヒットしたときにジョブを追加するだけで、実行中のワーカーが取得し、0.5秒待機して、乱数を生成するワーカージョブが作成されます。これは非socket.ioバージョンです。あなたはおそらくこのようにそれをするべきではありませんが、それは機能します。
Webサーバー(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.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);
});