我有一个疑问关于数据来源:上下文背景:目前,我的工作在我的API使用两个数据源的一个项目:A和B.
有时,数据源B有烦恼和不适,而A是始终可用。当B是不可用整个Web服务崩溃。
我的问题:是否有任何方式的API,使之与只发展了一个数据源时,数据源B是无法访问的部分工作程序?
注:我用回送3个工作
lazyConnect:true
将推迟连接,直到您查询连接到它的模型,并且向客户端发送一个错误,而不如果连接失败崩溃的服务器。
"myDatasource": {
"name": "myDatasource",
"host": "ds.com",
"database": "db",
"username": "root",
"password": "",
"connector": "postgres",
"lazyConnect": true
},
我的问题:是否有任何方式的API,使之与只发展了一个数据源时,数据源B是无法访问的部分工作程序?
您可以使用数据源的事件,知道什么时候该换车型。下面是我测试的简要介绍。
server/boot/swap.js
function swapModelDatasource(app, model, ds) {
const name = model.name;
app.deleteModelByName(name);
const m = app.model(ds.createModel(name, model.definition.properties, {
settings: model.settings,
relations: model.settings.relations,
acls: model.settings.acls
}));
}
module.exports = app => {
const ds1 = app.datasources.aws;
const m = app.models.Node;
ds1.on('connected', () => swapModelDatasource(app, m, ds1));
}