我使用 Azure 服务创建了一个实时解决方案。 它基于以下体系结构工作。 NSE(National Stock Exchange( -> AzureFunction -> EventHub ->Azure Stream Analytics -> Power BI. 在 Azure 函数中,我编写了以下代码。
module.exports = async function (context, myTimer) {
var API = require('indian-stock-exchange')
var NSEAPI = API.NSE;
let promise = new Promise((resolve,reject)=>{
NSEAPI.getGainers()
.then(function (response) {
context.log(response['data']); //return the api data
resolve(response['data'])
});
});
let result = await promise;
result = JSON.stringify(result['data'])
return result
};
我在这里使用库并通过 HTTP 请求调用,但对于流式传输,这不是一种正确的方式,你们能否分享对我的代码的任何建议或对架构工作流程的任何更改。
提前谢谢。
正如一些评论中提到的,这里的挑战是,我认为你想要一个持久的"Web 套接字",不断将数据推送到事件中心。 功能就其性质而言或更短暂。 所以这里的代码有效,但做了一点"醒来,工作,睡觉,重复"模式。
对于持久连接,你可能会有更好的运气,考虑使用 Azure Web 作业之类的东西,或者只是在 Azure 应用服务中运行一个 Web 应用,该应用将 24/7 全天候运行,并且可以创建从股票数据到事件中心的持久源。