首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果回送3上没有数据源,如何保持api的活力?

如果回送3上没有数据源,如何保持api的活力?
EN

Stack Overflow用户
提问于 2019-02-05 19:57:10
回答 1查看 235关注 0票数 1

我对数据源有一个疑问:上下文:目前我正在开发一个项目,我的API使用两个数据源:A、B

有时数据源B有问题,不可用,而A总是可用的。当B不可用时,整个web服务就会崩溃。

我的问题是:当数据源B无法访问时,是否有任何方法来编写api以使其与只进化数据源A的部分一起工作?

注意:我正在使用Loopback 3

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-06 16:43:58

lazyConnect:true将推迟连接,直到您查询附加到它的模型,如果连接失败,则向客户端发送一个错误,而不会使服务器崩溃。

代码语言:javascript
复制
  "myDatasource": {
    "name": "myDatasource",
    "host": "ds.com",
    "database": "db",
    "username": "root",
    "password": "",
    "connector": "postgres",
    "lazyConnect": true
  },

我的问题是:当数据源B无法访问时,是否有任何方法来编写api以使其与只进化数据源A的部分一起工作?

您可以使用数据源的事件来知道何时交换模型。下面是一些我简单测试过的东西。

server/boot/swap.js

代码语言:javascript
复制
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));
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54542088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档