我主要是作为Web开发人员的编程经验,现在我的任务是构建两个休息服务之间的集成。应用程序假设每5分钟从一个REST服务读取一次,并将数据发送到另一个服务。我需要以某种方式存储单个checkSUM值以便在下次调用时使用。
目前我正考虑在Node和Express中构建它,在heroku上使用“自定义时钟进程”进行托管。但我不确定构建这样一个应用程序的最佳方法是什么。在没有视图的情况下处理应用程序对我来说很陌生。 MVC在这样的应用程序中是否有意义?
有人能指出资源解释一个接近这样的应用程序的好方法吗?
即使没有视图层,表达也有意义吗?
存储单个值(例如checkSUM或SyncKey)的好方法是什么? DB过度杀伤吗?
像这样的应用程序的文件夹结构是什么样的。
我知道这是一个非常广泛的问题。我主要是在寻找建议和资源,以及其他人如何处理这个问题的想法。你会用什么技术?
答案 0 :(得分:1)
您可以使用request包向您的服务发送请求。并cron打包以每5分钟安排一次任务。
以下是此方案的简单代码
var request = require('request');
var CronJob = require('cron').CronJob;
var SOURCE_SERVICE_URL = "http://your.source.service/endpoint";
var DESTINATION_SERVICE_URL = "http://your.destination.service/endpoint";
//initialize this value when you get checkSUM from request and use to compare next checkSUM
var lastCheckSUM = "";
var everyMinuteJob = new CronJob({
cronTime: '*/5 * * * *',
onTick: function () {
console.log("Task started");
task_1();
//you can create and add tasks for other endpoints
},
start: true
});
var task_1 = function () {
request(SOURCE_SERVICE_URL, function (error, response, body) {
if (error) {
console.log("Can not read data from source service.")
return console.log(error);
}
console.log("Data read : " + body);
//TODO - check the checkSUM value of response. Then set it to lastCheckSUM
request
.post(DESTINATION_SERVICE_URL, body, function (error, response, body) {
if (error) {
console.log("Can not send data to destination service.")
return console.log(error);
}
})
});
}