Sails.js 在sails js中对特定操作运行后台作业
我正在尝试创建一个在特定事件发生时在后台运行的服务。例如,当用户验证电子邮件时,我希望我的服务能够从数据库中删除可能未经验证的重复电子邮件。我试着用它来拯救我的目的,但我认为这更像是一旦帆升起,服务就会运行 那么,当特定事件发生时,如何运行服务呢?任何帮助都将不胜感激 谢谢,也许我能帮你。例如,我们使用它们来更新统计数据,例如,在用户更新调用后,每种类型的用户数保持不变 此外,我们还使用创建作业,以便在将来的某个特定时间执行一次,或者像cron作业一样执行。可能您希望收集要清除的无效/过期电子邮件地址验证条目,并每小时一次将其删除。可能会对您有所帮助。例如,我们使用它们来更新统计数据,例如,在用户更新调用后,每种类型的用户数保持不变Sails.js 在sails js中对特定操作运行后台作业,sails.js,kue,sails-redis,Sails.js,Kue,Sails Redis,我正在尝试创建一个在特定事件发生时在后台运行的服务。例如,当用户验证电子邮件时,我希望我的服务能够从数据库中删除可能未经验证的重复电子邮件。我试着用它来拯救我的目的,但我认为这更像是一旦帆升起,服务就会运行 那么,当特定事件发生时,如何运行服务呢?任何帮助都将不胜感激 谢谢,也许我能帮你。例如,我们使用它们来更新统计数据,例如,在用户更新调用后,每种类型的用户数保持不变 此外,我们还使用创建作业,以便在将来的某个特定时间执行一次,或者像cron作业一样执行。可能您希望收集要清除的无效/过期电子邮
此外,我们还使用创建作业,以便在将来的某个特定时间执行一次,或者像cron作业一样执行。您可能希望收集要清除的无效/过期电子邮件地址验证条目,并每小时一次将其删除。您确实可以使用
Kue
来实现此目的
kue
var kue = require('kue');
var kue_engine = kue.createQueue({
prefix: 'kue',
redis: {
port: '6379',
host: 'localhost'
}
});
process.once('SIGTERM', function (sig) {
kue_engine.shutdown( 5000, function(err) {
console.log( 'Kue shutdown: ', err||'' );
process.exit( 0 );
});
});
module.exports.kue = kue_engine;
Kue
var kue_engine = sails.config.kue;
kue_engine.create('delete_verified_email', {email: '123@456.com'})
.priority('medium')
.attempts(3)
.save();
worker.js
,以使用kue
作业
var kue = require('kue');
require('sails').load({
hooks: {
blueprints: false,
cors: false,
csrf: false,
grunt: false,
http: false,
i18n: false,
logger: false,
policies: false,
pubsub: false,
request: false,
responses: false,
session: false,
sockets: false,
views: false
}
}, function (err, app) {
sails.log.info('Starting kue');
var kue_engine = sails.config.kue;
//register kue.
kue_engine.on('job complete', function (id) {
sails.log.info('Removing completed job: ' + id);
kue.Job.get(id, function (err, job) {
job.remove();
});
});
kue_engine.process('delete_verified_email', 20, function (job, done) {
// you can access the data passed while creating job at job.data
// all the sails models, services are available here
console.log(job.data.email)
done && done();
});
worker.js
以使用您的sails应用程序创建的kue作业为此,您确实可以使用
Kue
kue
var kue = require('kue');
var kue_engine = kue.createQueue({
prefix: 'kue',
redis: {
port: '6379',
host: 'localhost'
}
});
process.once('SIGTERM', function (sig) {
kue_engine.shutdown( 5000, function(err) {
console.log( 'Kue shutdown: ', err||'' );
process.exit( 0 );
});
});
module.exports.kue = kue_engine;
Kue
var kue_engine = sails.config.kue;
kue_engine.create('delete_verified_email', {email: '123@456.com'})
.priority('medium')
.attempts(3)
.save();
worker.js
,以使用kue
作业
var kue = require('kue');
require('sails').load({
hooks: {
blueprints: false,
cors: false,
csrf: false,
grunt: false,
http: false,
i18n: false,
logger: false,
policies: false,
pubsub: false,
request: false,
responses: false,
session: false,
sockets: false,
views: false
}
}, function (err, app) {
sails.log.info('Starting kue');
var kue_engine = sails.config.kue;
//register kue.
kue_engine.on('job complete', function (id) {
sails.log.info('Removing completed job: ' + id);
kue.Job.get(id, function (err, job) {
job.remove();
});
});
kue_engine.process('delete_verified_email', 20, function (job, done) {
// you can access the data passed while creating job at job.data
// all the sails models, services are available here
console.log(job.data.email)
done && done();
});
worker.js
以使用您的sails应用程序创建的kue作业