如何保持API活着,即使一个数据源不可用的回送3?

问题描述 投票:1回答:1

我有一个疑问关于数据来源:上下文背景:目前,我的工作在我的API使用两个数据源的一个项目:A和B.

有时,数据源B有烦恼和不适,而A是始终可用。当B是不可用整个Web服务崩溃。

我的问题:是否有任何方式的API,使之与只发展了一个数据源时,数据源B是无法访问的部分工作程序?

注:我用回送3个工作

javascript rest loopbackjs
1个回答
2
投票

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));
}
© www.soinside.com 2019 - 2024. All rights reserved.