回环处理连接问题(和启动崩溃)

我学习了很多相关技术的回路。 这种技术之一还包括docker工人,虽然这个问题只是有点相关。

基本上,发生的事情是我正在旋转一个loopback和一个mysql实例。 当然,回环依赖于mysql,所以它们以正确的顺序启动,但是这可能意味着回环会在准备好接受连接之前尝试访问mysql数据库。

这是可以的,理论上它是回送,应该处理数据库连接的弹性。 问题是,这不会发生:在启动时,回送得到一个“ECONNREFUSED”,它崩溃。

我试图挂钩到启动脚本或数据源脚本,以保持在启动,直到连接准备好(或者至less尝试连接,如果没有准备好以后),但我不知道该怎么做。

在我的服务器脚本中,我有这样的:

boot(app, __dirname, function (err) { if (err) throw err // start the server if `$ node server.js` if (require.main === module) { app.start() } }) app.start = function () { // start the web server return app.listen(function () { app.emit('started') var baseUrl = app.get('url').replace(/\/$/, '') console.log('Web server listening at: %s', baseUrl) if (app.get('loopback-component-explorer')) { var explorerPath = app.get('loopback-component-explorer').mountPath console.log('Browse your REST API at %s%s', baseUrl, explorerPath) } }) } 

该错误是在应用程序startfunction中引发的。 在回应github上的pull request之后,我已经把这个添加到了app.start中:

 process.on('uncaughtException', function (error) { console.error((new Date()).toUTCString() + ': There is unclasified problem: ', error.message) }) 

这超过了启动问题,但在我看来,并不是一个干净的解决scheme。 也因为它不会处理数据库断开连接。

任何想法如何妥善让我的回送服务器适应networking问题?