【问题标题】:Send the response back to the requester when using a job queue (kue/node/express)使用作业队列(kue/node/express)时将响应发送回请求者
【发布时间】:2016-04-23 05:54:10
【问题描述】:

js/快递。我正在做的是从不同的服务器向快递服务器发送一个请求,其中包含一些用户详细信息。

将请求详细信息添加到作业队列 (kue),然后使用工作人员(集群)处理作业并向用户发送电子邮件。我想将响应发送回服务器,该服务器将请求发送到我的快递服务器。

普通的res.send()在这里不起作用,因为在我们将请求参数添加到队列并处理之后,请求和响应之间没有链接。这是我的代码示例。

app.js

app.get('/my_request/:param1/:param2/:param3',
    function( req, res ) {

        req.params.type = "ORDER_COMPLETE";
        var params = req.params;

        jobs.create('jobQueue', { 'title': "order_receipt", 'params' : params } )
            .ttl( 30 * 1000 ) //value in ms // 30 min
            .removeOnComplete( true )
            .save(function(err) {
                if (err) {
                    console.log('jobs.create.err', err);
                } 
        });

        //res.send( JSON.stringify( {"success" : true} ) ).end();

    }

);

有一个新要求:现在我需要创建电子邮件 html 并将其发送回请求者,而不是发送电子邮件。

如果我没有使用作业队列,我可以使用 res.send() 。但现在我不能。

我考虑将我的 res 对象保存到作业队列,然后最近尝试使用该响应对象将响应发送回同一用户。

在这种情况下我可以使用任何解决方案吗?

非常感谢任何帮助:)

【问题讨论】:

    标签: javascript node.js email express kue


    【解决方案1】:

    你可以使用job-specific events:

    app.get('/my_request/:param1/:param2/:param3',
    function( req, res ) {
    
        req.params.type = "ORDER_COMPLETE";
        var params = req.params;
    
        var job = jobs.create('jobQueue', { 'title': "order_receipt", 'params' : params } )
            .ttl( 30 * 1000 ) //value in ms // 30 s
            .removeOnComplete( true )
            .save(function(err) {
                if (err) {
                    console.log('jobs.create.err', err);
                } 
            });
    
        //res.send( JSON.stringify( {"success" : true} ) ).end();
       job.on('complete', function(result){
         res.send(result); // This is just an example. You can use JSON here as well.
       });
    
    });
    

    【讨论】:

      猜你喜欢
      • 2021-06-13
      • 1970-01-01
      • 2017-09-16
      • 2012-09-19
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多