Is your app written to be non-blocking? You mentioned converting an
existing app; is that app written to use an event loop and asynchronous
event execution?

On 17 November 2015 at 15:48, David H <[email protected]> wrote:

> Thanks for the response, I think my original email basically outlined my
> issue, but I will break it down.
>
> If 10 people visit my page at the moment, and the page has to retrieve
> database/memcached info for the 10 people, and it takes 1 second to do all
> the pre-work to load the page, then each of those requests for each person,
> is done separately, taking a total of 10 seconds for the last person to
> retrieve their data, since it has to wait for each other process to finish
> before attending to the next person.
>
> At a basic level in nodejs, you do this (as an example):
>
> router.get('/', function (req, res, next) {
>    Post.find(function(err, Patients) {
>     if (err) { return next(err) }
>     res.json(People)
>    },'Firstname Surname')
> })
>
> And although this is per session blocker in node, it still allows other
> sessions to continue.
> I want to know how to achieve this or a similar effect in Dancer2. Or, do
> I just look at it as an issue with Perl and solve it through something like
> AnyEvent::Util::fork_call
>
>
> David
>
>
>
> On Wed, Nov 18, 2015 at 12:32 AM, Rick Leir <[email protected]>
> wrote:
>
>>
>> On Tue, Nov 17, 2015 at 7:00 AM, <[email protected]> wrote:
>>
>>>
>>>     delayed {
>>>       my $TextToWrite = ReturnText();
>>>       sleep(10); # Do something that takes a few seconds
>>>       content "$TextToWrite";
>>>       done;
>>>    };
>>
>> The sleep call will always cause blocking, even a sleep(0). Likewise a
>> flush. In the sense that there is a context switch to some other thread or
>> process.
>>
>> How are you testing whether it is blocking? Sorry, I do not know what you
>> are trying to do.
>>
>> Linux will not schedule a cpu intensive task to the exclusion of I/O. You
>> can affect its scheduling using nice:
>>
>> http://stackoverflow.com/questions/2012852/control-a-perl-scripts-cpu-utilization
>>
>> If you really want nonblocking then you can look at nice for io
>> http://linux.die.net/man/1/ionice
>> or spawn a C program with pthreads and freeze your screen!
>> cheers -- Rick
>>
>>
>> _______________________________________________
>> dancer-users mailing list
>> [email protected]
>> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
>>
>>
>
> _______________________________________________
> dancer-users mailing list
> [email protected]
> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
>
>
_______________________________________________
dancer-users mailing list
[email protected]
http://lists.preshweb.co.uk/mailman/listinfo/dancer-users

Reply via email to