this.q.create(name, data) .priority(options.priority || 'normal') .removeOnComplete(options.removeOnComplete || false) .attempts(options.attempts) .ttl((options.ttl ? options.ttl + this.ttl_buffer : 10000 + this.ttl_buffer )) // 10s .backoff(options.backoff) .delay(options.delay) .save(function(err){ debug('Add job ' + job.type + '(' + job.id + ') ' + JSON.stringify(data)) fn && fn(err) })
launch (name, params = {}, priority = 'normal', removeOnComplete = false) { logger.debug('Launching %s job with params', name, params) return new Promise((resolve, reject) => { const job = this.queue .create(name, params) .priority(priority) .removeOnComplete(removeOnComplete) .save(err => err ? reject(err) : resolve(job)) }) }
async store (req, res) { const { ad, content } = req.body const purchaseAd = await Ad.findById(ad).populate('author') const user = await User.findById(req.userId) Queue.create(PurchaseMail.key, { ad: purchaseAd, user, content }).save() return res.send() }
queue.create('download', { link: req.body.link, browserId: req.body.browserId }).priority('high').save((err) => { if (!err) { res.status(200).json({ message: 'OK', id: job.id }); } })
function newJob (name){ name = name || 'Default_Name'; var job = jobs.create('new job', { name: name, }); job .on('complete', function (){ console.log('Job', job.id, 'with name', job.data.name, 'is done'); }) .on('failed', function (){ console.log('Job', job.id, 'with name', job.data.name, 'has failed'); }); job.save(); }
queue.create('email', { title: 'test email', to: 'test@test.com', content: 'code 1234', time: new Date() }).save(function (err) { if (!err) console.log(job.id); })
// create a new user router.post('/create', function(req, res) { var user = new db.User(req.body); user.save(function(error, newUser) { if (error) { return res.status(406).send(JSON.stringify({error})); } // remove security attributes newUser = user.toObject(); if (newUser) { delete newUser.hashedPassword; delete newUser.salt; } // send email welcome to user q.create(os.hostname() + 'email', { title: '[Site Admin] Thank You', to: newUser.email, emailContent: { username: newUser.username }, template: 'welcome' }).priority('high').save(); res.send(JSON.stringify(newUser)); }); });
async store (req, res) { const { ad, content } = req.body; const purchaseAd = await Ad.findById(ad).populate('author'); const user = await User.findById(req.userId); const purchase = await Purchase.create({ user, ad: purchaseAd, content }); // Calls the queue Queue.create(PurchaseMail.key, { ad: purchaseAd, user, content }).save(); return res.send(purchase); }