go ahead... be a heretic | |
PerlMonks |
Re^2: how to timeout an operation under mod_perl (fork?!)by tye (Sage) |
on Sep 07, 2008 at 03:29 UTC ( [id://709594]=note: print w/replies, xml ) | Need Help?? |
Wow. Spawning a new child process for every time you want to run a max-10-second interaction with your database? That sounds like the type of thing that motivated the creation of mod_perl and thus probably not something you want to do much from mod_perl. That module's documentation does link to an alternative, DBI's docs on Canceling Operations. But it is also correct to note that doing this will likely cause stability problems. We do it but we have to implement seppuku code whereby the process can usually recognize when it has lost its mind (because all DBI calls fail after that point -- which requires the processes in the layer above to know how to retry requests) and to kill itself when that happens. We also ask the database to timeout requests and that doesn't appear to introduce instability but it also appears to not always work (queries certainly sometimes run quite a bit longer than the specified maximum time-out). This, of course, varies based on how well such time-outs are supported by your particular database. So, yeah, it is a mess. - tye
In Section
Seekers of Perl Wisdom
|
|