What MPM is used shouldn't matter.

The problem sounds like you are missing WSGIProcessGroup directive and
not actually telling mod_wsgi to run the application in the daemon
process group.

Review the configuration given in:

  
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide#Delegation_To_Daemon_Process

and check it using:

  
http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Embedded_Or_Daemon_Mode

Graham

On 13 September 2011 19:49, Emyr James <[email protected]> wrote:
>
>
> On 13 September 2011 10:39, Emyr James <[email protected]> wrote:
>>
>> Hi Graham,
>> Thanks for the reply.
>> Just having threads=n with no process value (i.e. all in same process)
>> seems to be the thing I'm after. So my minimal app with some thread locking
>> around the increment should be robust.
>> I'm still flummoxed by the counter reset after processing 50 requests
>> though. I put the value 75 in to see if resetting at 50 was some kind of
>> default. Even with the maximum-requests set to 75, it still resets after 50
>> requests. This must be something from apache itself rather than mod_wsgi ?
>
> Yes it's apache. I thought I had it set up for threads but it's prefork.
> Time to recompile..... :-)
>
>>
>> Regards,
>> Emyr
>>
>> On 13 September 2011 02:25, Graham Dumpleton <[email protected]>
>> wrote:
>>>
>>> Start by reading:
>>>
>>>  http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading
>>>
>>> It talks about global data sharing.
>>>
>>> Don't use maximum-requests option it is generally a bad idea and
>>> should only be used in certain circumstances. What makes you think you
>>> should be using it?
>>>
>>> Overall, if you are new to web programming, unless you have a good
>>> reason, trying starting with an existing framework such as Flask or
>>> Django.
>>>
>>> Graham
>>>
>>> On 12 September 2011 09:13, Emyr James <[email protected]> wrote:
>>> > Hi,
>>> > I'm thinking of using wsgi to do a simple framework for some webapps I
>>> > have
>>> > in mind. I'm trying to understand how mod_wsgi handles global data and
>>> > what
>>> > kind of thread synchronisation I need to contorl access to the global
>>> > data.
>>> >
>>> > I wrote this very simple app to test global variables...
>>> >
>>> > counter=0
>>> > def application(environ, start_response) :
>>> >    global counter
>>> >    status='200 OK'
>>> >    response_headers=[('Content-type', 'text/plain')]
>>> >    start_response(status, response_headers)
>>> >    counter+=1
>>> >    return ['counter is '+str(counter)+'\n']
>>> >
>>> > I had the following in my apache conf...
>>> >
>>> > WSGIDaemonProcess myserver threads=2 maximum-requests=75
>>> >
>>> > So I should have 1 process with 2 threads in it.
>>> >
>>> > When I repeatedly hit the browser, I see the counter go up as expected
>>> > but
>>> > then it goes back to 1 after 50 hits.
>>> > I'm curious how excactly the threads & processes work regarding global
>>> > variables.
>>> >
>>> > Why does it reset after 50 hits ?
>>> > Is it possible to write some kind of thread-id in my output so I know
>>> > which
>>> > of the 2 threads it hits?
>>> > If i have threads recycling after the 75 requests, will that also reset
>>> > the
>>> > global variable each time one of the threads hits maximum-request
>>> > ?...although the global variable seems to be resetting now ...why ? )
>>> > I'm guessing that to avoid race conditions I'd need to use the
>>> > threading
>>> > module and put a lock around the counter increment...or do the mod_wsgi
>>> > threads not work like that ? i.e. each daemon thread has it's own self
>>> > contained python interpreter so no data is shared between the mod_wsgi
>>> > threads ?
>>> >
>>> > Any answers on the above greatly appreciated.
>>> > Regards,
>>> > Emyr
>>> >
>>> >
>>> > --
>>> > You received this message because you are subscribed to the Google
>>> > Groups
>>> > "modwsgi" group.
>>> > To post to this group, send email to [email protected].
>>> > To unsubscribe from this group, send email to
>>> > [email protected].
>>> > For more options, visit this group at
>>> > http://groups.google.com/group/modwsgi?hl=en.
>>> >
>>> >
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "modwsgi" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/modwsgi?hl=en.
>>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "modwsgi" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/modwsgi?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"modwsgi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/modwsgi?hl=en.

Reply via email to