2017-02-15 12 views
0

Прежде всего, я хотел бы сказать, что я новичок в senecajs.Конфигурация тайм-аута Seneca-web

Я тестирую эту конфигурацию.

Я настроил микросервис Senecjs, работающий на порту 9007, который работает и обрабатывает запрос правильно. Когда я запрашиваю эту услугу напрямую, я получаю ответ после примерно 10 секунд (это запрос на данные оракула db).

Но когда я прошу для тех же данных, но через Hapi + Сенека-сети я получаю эту ошибку: "StatusCode": 504, "ошибка": "Шлюз Тайм-аут"

["client","invalid_origin",{"port":9007,"pin":"mc:bankgtw","pg":"mc:bankgtw","type":"web","id":"pg:mc:bankgtw,pin:mc:bankgtw,port:9007","role":"transport","hook":"client","plugin$":{"name":"client$"},"fatal$":true,"meta$":{"mi":"wbn8u45tb7uh","tx":"o3f8eyia3f4n","id":"wbn8u45tb7uh/o3f8eyia3f4n","pattern":"hook:client,role:transport,type:web","action":"(q1yytemztu3k)","plugin_name":"transport","plugin_tag":"-","prior":{"chain":[],"entry":true,"depth":0},"start":1487199713842,"sync":true},"tx$":"o3f8eyia3f4n","host":"0.0.0.0","path":"/act","protocol":"http","timeout":5555,"max_listen_attempts":11,"attempt_delay":222,"serverOptions":{}},{"kind":"res","res":null,"error":{"isBoom":true,"isServer":true,"output":{"statusCode":504,"payload":{**"statusCode":504,"error":"Gateway Time-out**","message":"Client request timeout"},"headers":{}}},"sync":true,"time":{"client_recv":1487199799177}}] 

за несколько секунд до возврата данных микросервиса.

И это моя конфигурация:

const Hapi = require('hapi'); 
const Seneca = require('seneca'); 
const SenecaWeb = require('seneca-web'); 

const config = { 
    adapter: require('seneca-web-adapter-hapi'), 
    context: (() => { 
    const server = new Hapi.Server(); 
    server.connection({ 
     port: 3001, 
     routes: { 
      cors: true, 
      payload:{timeout:60000}, 
      timeout:{server: 60000, socket:90000} 
     } 
    }); 

    server.route({ 
     path: '/routes', 
     method: 'get', 
     handler: (request, reply) => { 
     const routes = server.table()[0].table.map(route => { 
      return { 
      path: route.path, 
      method: route.method.toUpperCase(), 
      description: route.settings.description, 
      tags: route.settings.tags, 
      vhost: route.settings.vhost, 
      cors: route.settings.cors, 
      jsonp: route.settings.jsonp, 
      server: server.info 
      } 
     }) 
     reply(routes) 
     } 
    }); 

    return server; 
    })() 
}; 

const seneca = Seneca({timeout: 99999}) 
    .use(SenecaWeb, config) 
    .use(require('./hapi_api.js')) 
    .client({ port:9007, pin:'mc:bankgtw' }) 
    .ready(() => { 
    const server = seneca.export('web/context')(); 
    server.start(() => { 
     server.log('server started on: ' + server.info.uri); 
    }); 
    }); 

Что я делаю неправильно или что тайм-аут является причиной этого?

+0

Возможно, где-то обратный вызов не вызывается. –

ответ

0

У меня была такая же проблема, исправлена ​​его, но ее ОЧЕНЬ ПЛОЩАДЬ.

Перейти к 'transport.js' в папке seneca-transport. Вы увидите «таймаут: 5555» Идите и измените это на все, что вам нужно.

Я не уверен, почему это не приводит к по умолчанию USER. Насколько я знаю, это относится к таймауту клиента. убедитесь, что вы все еще используете тайм-аут сервера.