Powered by Jekyll

Timeouts in Orbit and WSAPI

A Xavante or FastCGI instance running an Orbit application can be very long-lived. MySQL has an annoying “feature” that makes it close a connection with a client in case the connection has been idle for a long time, and libmysqlclient has an even more annoying bug where it won’t reopen a dropped connection automatically. Even worse, the error code for a closed connection varies depending on the specific implementation of the server. This used to be a problem for long-lived Orbit applications that kept connections open so they wouldn’t have to be reopened on every request.

Orbit 2.1.0 has a solution to this problem in the form of connections that have timeouts. To create a timed connection you use the orbit.recycle function, passing a connection maker and a timeout in seconds. The function returns a connection proxy that automatically reopens the connection when it becomes stale. For example, if you want a connection that reopens every hour you can do the following, where todo is your Orbit application:

blog comments powered by Disqus