[Catalyst] Connect DBIx::Class model on startup?
Daniel J. Luke
dluke at geeklair.net
Fri Mar 2 20:44:00 GMT 2012
On Feb 25, 2012, at 10:00 AM, Daniel J. Luke wrote:
> On Feb 25, 2012, at 3:39 AM, Tomas Doran wrote:
>>>> Or maybe there's a reason why there's not an obvious hook and someone can point me to the pitfalls I'm not seeing.
>>
>> It's not totally obvious as you can't do this at process startup (as you then fork!),
>
> Yeah, I just realized that that was going to be an issue when I went to attempt this (late yesterday).
>
>> so it has to be done in the FCGI process manager really (which does the forking)…
>>
>> You can subclass FCGI::ProcManager and implement:
>>
>> sub handling_init {
>> my $self = shift;
>> $self->next::method(@_);
>> MyApp->model('DB')->schema->dbh->ping; # Check we have a DB connection that's working straight after forking but before starting to handle requests.
Maybe I'm being thick, but where does that instance of MyApp come from? I don't see it being passed into FCGI::ProcManager
>> }
>>
>> You can then pass your fastcgi.pl script the option to use your custom process manager, and you're sorted.
>
> Perfect, thanks!
--
Daniel J. Luke
+========================================================+
| *---------------- dluke at geeklair.net ----------------* |
| *-------------- http://www.geeklair.net -------------* |
+========================================================+
| Opinions expressed are mine and do not necessarily |
| reflect the opinions of my employer. |
+========================================================+
More information about the Catalyst
mailing list