[dancer-users] Dancer calling database connection

David Precious davidp at preshweb.co.uk
Thu Sep 24 15:51:38 BST 2015

On Mon, 21 Sep 2015 08:43:09 +0000 (UTC)
Mike Cu <mike_cu80 at yahoo.com> wrote:

> the Dancer advent calendar says that:  Use Starman's --preload-app
> option to enable this (but be aware that this can cause Bad Things to
> happen if resources like database connections or other sockets are
> opened by your app at compile time, as they will be unintentionally
> shared amongst child processes. what is actually meant by that? when
> a url is requested my route is calling the model which opens a
> database connection, does sql and closes the connection. 
> So this is done at runtime. when would calling database connection at
> compile time then ?also calling connect_cached would cause any
> problems under a preforked server like starman? 

Belatedly - I would only expect you to see any issues if you grab a
database connection in a BEGIN block or similar.  If you're using
Dancer::Plugin::Database, though, you don't need to worry as it's
designed to be fork and thread-safe for you.

Either way, connections established at run-time should be fine even if
you use Starman's --preload-app option.

More information about the dancer-users mailing list