Tag: 铁工

Ironworker有效载荷variables节点

我可能在这里错过了一些非常明显的东西,但是使用NodeWork with Iron Worker的文档仍然非常有限。 所以我创build了我的工作人员,但我无法弄清楚一旦传递给任务的负载会发生什么。 是否有一个variables或函数传递给exec文件,它允许我到达有效载荷对象? 希望有人能帮忙。

在IronWorker上node.js应用程序和worker之间的通信。 如何正确轮询任务状态并接收任务响应?

申请如下: 首先,我使用一个node.js应用程序和express.js框架作为Web服务器。 在前端,当用户通过POST表单发送付款时,express.js通过“app.post”路由此任务并调用外部API进行支付。 这个API请求理想情况下应该返回用户应该redirect付款的URL。 然后,express.js应该通过'app.post'响应variables(res)redirect用户: res.redirect(307, url); 由于这个支付API请求需要一些时间,并且自从我使用Heroku以来,API请求超时并返回一个错误。 为了解决这个问题,我知道我需要在一个工人Heroku插件(根据https://stackoverflow.com/a/11438381/2859410 )上设置一个worker,比如IronWorker。 但是,我很难理解什么是正确的机制,将工作人员所做的外部API请求返回的URL传递回node.js应用程序。 为了使事情更清楚: – 用户提交付款表格。 – node.js应用程序处理POST数据并调用一个worker(“在一个worker上排队”一个任务)。 – 工作人员请求一个外部支付API,它返回一个URL。 – 工作人员应该将这个URL传回给node.js应用程序。 – node.js应用程序应该收到这个URL并redirect用户。 但是,这些操作必须是非阻塞的。 我可以想到通讯的两种select: 备选scheme1 – 当前端用户通过POST请求付款时,node.js应用程序将(通过POST)调用特定的工作人员,付款数据作为有效负载。 工作人员处理数据,请求付款API并获取付款URL。 同时,node.js执行对工作人员状态的轮询,并在接收到“完成”状态时redirect用户。 谬误:这里的困难是以asynchronous的方式进行不间断的轮询。 因为我需要将用户redirect到付款url,所以我需要在“app.post('/ form',function(req,res){”方法,这样我可以将响应(“res “)来redirect用户,为此,我看了一下async.whilst(test,fn,callback),但是我不知道如何使用同步的testing函数,我的直接想法是testing函数发出状态请求和redirect用户的callback函数,但是这个testing函数是一个asynchronous操作(例如使用'request'模块)。 scheme2 – 工作人员还接收付款数据作为有效负载,处理数据,请求付款API并获取付款URL。 完成后,它通过HTTP请求将URL传回给node.js应用程序。 谬论:我如何将传递回node.js应用程序的URL绑定到请求付款的用户? 在我的理解中,具有付款URL的HTTP请求将具有比POST路由forms更独立的路由。 换句话说,这样我就不能在“app.post('/ orderform',function(req,res){”方法,因此将不能使用响应variables(“res”)redirect用户。 Tha node.js应用程序的结构如下: app.post('/order', function(req, res) { // user data on req.body // process data […]