私は現在、バックグラウンドで処理する必要があるプロジェクトに取り組んでいますが、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 answer from the job when its done, like with on('complete', ...) but that doesn't work at all
jobs.create('stuff', {lorem: 'ipsum', dolor: ''}).save();
});
}
background.js (ノード background.js でも実行されます。これは app のような同じノード プロセスではありません)
// omiting libraries right now, its simply kue and datasets like in app.'s
jobs.process('stuff', function(job, done){
//processing some background stuff here
// Now here i would like to pass back an array of objects to the app.js process after the job is completed.
});
誰でもこれについてのアイデアを持っていますか?すべての助けに感謝します。
クリスピン