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@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@dancer.pm
http://lists.preshweb.co.uk/mailman/listinfo/dancer-users