[dancer-users] Dancer and forking

Sawyer X xsawyerx at gmail.com
Wed Jul 8 13:56:34 BST 2015


Any chance one of you would like to write a short article about it for the
Advent Calendar of 2016? :)

On Wed, Jul 8, 2015 at 8:15 AM, Andrew Beverley <andy at andybev.com> wrote:

> On 2015-07-08 00:58, Johandry Amador Segui wrote:
>
>> Hi Andy,
>>
>> I tried to use threads and it did not worked for me (maybe because of
>> non safe thread modules I am using) so I use fork in a production
>> application and it works good. I have some issues some times with
>> MySQL that I have not fixed yet but they do not happen very often.
>>
>> This is an example of how I use it:
>>
>> sub execute {
>>
>>         # These 2 lines below were to eliminate the error that I mentioned
>> before. It did not eliminated them just reduce them
>>         my $dbh = database();
>>         $dbh->{InactiveDestroy} = 1;
>>
>>         my $pid = fork();
>>
>>         if ($pid) {
>>                 # This is the parent (Dancer) in case you want to do
>> something here
>>                 debug “Process started with PID $pid\n”;
>>
>>         } elsif ($pid == 0) {
>>                 # This is the child, here is where I do all I need
>>                 $template = ...
>>         } else {
>>                 debug “Could not fork: $!\n”;
>>         }
>>
>>         # I have a variable to know if I’m running this sub from the web
>> or from CLI
>>         if ($cli) {
>>                 my $output = waitpid($pid, 0);
>>                 print “The process finish with output: $output”;
>>         }
>>
>>         return $template;
>> }
>>
>> This is just an example, not the entire code. If someone has a
>> suggestion or improvement, it is welcome.
>>
>
> Surely you need an exit() in there somewhere for the child process,
> otherwise you'll end up with lots of web server threads?
>
>
> Andy
>
> _______________________________________________
> dancer-users mailing list
> dancer-users at dancer.pm
> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.preshweb.co.uk/pipermail/dancer-users/attachments/20150708/93974d1d/attachment.html>


More information about the dancer-users mailing list