ExpressJs(NodeJs)消防和忘记

我目前正在使用express js开发API。 我想写一个函数来将分析保存在数据库中,但我应该能够在火中调用函数并忘记方法。 该函数应该接受参数并完成其工作。 这应该像一个单独的线程一样工作,当前的代码执行不应该等待它的响应。 例如Akka Actors在Java中的工作方式。 有人可以build议一种方法来做到这一点或一些链接引用?

节点默认是asynchronous的。 只需在db查询callback之外发送你的回应:

app.get("/ping", function (req, res) { // fire dbConnection.query("UPDATE analytics SET count = count + 1", function(err, result) { // forget }); res.send("Pong"); }); 

您可以将您的信息添加到某种MessageQueue中,然后启动另一个将侦听MQ并相应处理消息的进程。

这不是演员如何工作,但这通常是在nodejs领域完成的。

例如,您可以使用kue或AWS SQS或Google PubSub或任何其他可用的解决scheme

 // example with kue // http-process.js var kue = require('kue'); var queue = kue.createQueue(); ... app.post('/something-somewhere', (req, res) => { var job = queue.create('event', { data: 'analytics, data', median: 5.3, }).save( function(err){ if( !err ) return next(err); res.send('ok'); }); }); // event-processor.js var kue = require('kue'); var queue = kue.createQueue(); queue.process('event', function(job, done){ someKindOfORM.myEventsTable.insert({ job.data }).notify(done); }); 
Interesting Posts