【发布时间】:2016-02-04 21:23:14
【问题描述】:
我正在我的nodejs 应用程序中使用Kue 实现redis 队列。我有一个 API,它将电子邮件 jobs 添加到 email queue。让 cron 作业监听 redis email queue 的新作业是一个好习惯,还是有一种方法可以在输入并捕获新电子邮件 job 时从 node.js 应用程序触发事件从一个单独的node.js 应用程序来处理它。我对正确的方法有点困惑。
【问题讨论】:
我正在我的nodejs 应用程序中使用Kue 实现redis 队列。我有一个 API,它将电子邮件 jobs 添加到 email queue。让 cron 作业监听 redis email queue 的新作业是一个好习惯,还是有一种方法可以在输入并捕获新电子邮件 job 时从 node.js 应用程序触发事件从一个单独的node.js 应用程序来处理它。我对正确的方法有点困惑。
【问题讨论】:
首先,Kue 提供了一些好的事件:
https://github.com/Automattic/kue#queue-events
queue.on('job enqueue', function(id, type){
console.log( 'Job %s got queued of type %s', id, type );
});
但是,从您的问题看来,您不仅希望收到队列中作业的通知,还希望在这些作业入队时处理这些作业。
https://github.com/Automattic/kue#processing-jobs
queue.process('email', function(job, done){
// do something with job.data
// callback to done
email(job.data.to, done);
});
【讨论】: