With isolated=true WSAPI will run your scripts in a pool of Rings, and will
collect and respawn the Rings periodically, so isolated=false is the
behavior you want, as you are only running a single script anyway.

--
Fabio Mascarenhas

On Wed, Dec 29, 2010 at 2:48 PM, Tiago Katcipis <katci...@inf.ufsc.br>wrote:

>
>
> On Wed, Dec 29, 2010 at 11:31 AM, Tiago Katcipis <katci...@inf.ufsc.br>wrote:
>
>> Hi all,
>>
>> I'm having some problem using wsapi-fastcgi with lighthttpd. I got
>> everything working fine, but every time an error occurs (any 4xx) or someone
>> send a DELETE method request my script is reloaded. I don't want the script
>> to reload because every time this happens i reconnect to the db and the
>> older connections get lost and the db continues to consume resources (on
>> this case is mongo db, a thread gets locked forever each time my script is
>> reloaded).
>>
>> When there is no error 4XX or DELETE everything works as expected, the
>> script is not reloaded on each request and the connection is reused (i run
>> an init function when the script is loaded, but it is supposed to run only
>> once and them handle the requests without reloading).
>>
>> Here is the configuration that i run the fastcgi:
>>
>> #!/usr/bin/lua
>> local common = require "wsapi.common"
>> local fastcgi = require "wsapi.fastcgi"
>>
>> local ONE_HOUR = 60 * 60
>> local ONE_DAY = 24 * ONE_HOUR
>>
>> local wsapi_loader = common.make_loader{
>>   isolated = true,             -- isolate each script in its own Lua state
>>
>
> Taking a good look at the code i just changed the isolated = true to false,
> so it would call the make_persistent_loader instead of the isolated. It
> worked fine just as i expected, still don't know why with isolated = true it
> reloads the script when returning a 4XX or receiving a DELETE.
>
> I'm working with only one script, so the problem seems resolved to me.
>
> Sorry for the noise.
>
> Best regards,
> Katcipis
>
>
>>   filename = nil,  -- if you want to force the launch of a single script
>>   launcher = "idlocutor.fcgi", -- the name of this script
>>   reload = false,              -- if you want to reload the application on
>> every request
>>   period = ONE_HOUR,           -- frequency of Lua state staleness checks
>>   ttl = ONE_DAY,               -- time-to-live for Lua states
>>   vars =                       -- order of checking for the path of the
>> script
>>    { "SCRIPT_FILENAME",
>>      "PATH_TRANSLATED" }
>> }
>>
>> fastcgi.run(wsapi_loader)
>>
>>
>> i tried to take a look on wsapi.fastcgi and them on wsapi.commom to
>> understand why it could be reloading my script, i understood that when the
>> file is modified or reload is true it will reload the script on a new
>> lua_State, but i was unable to find another moment when this is
>> done..related to the errors (the rings logic is not too much easy to
>> understand, specially to me, never used rings).
>>
>> this reload problem (or maybe expected behaviour....i don't know) is
>> caused by wsapi? wsapi-fastcgi? or is something related to lighthttpd? (i
>> doubt of that because the pid of the fastcgi process remains the same...it
>> seems that wsapi is reloading the script internally)  I'm kinda new to web
>> development, sorry I'm asking something stupid.
>>
>>
>> best regards,
>> Katcipis
>>
>
>
>
> --
> http://www.getgnulinux.org/windows
>
> _______________________________________________
> Kepler-Project mailing list
> Kepler-Project@lists.luaforge.net
> http://lists.luaforge.net/cgi-bin/mailman/listinfo/kepler-project
> http://www.keplerproject.org/
>
_______________________________________________
Kepler-Project mailing list
Kepler-Project@lists.luaforge.net
http://lists.luaforge.net/cgi-bin/mailman/listinfo/kepler-project
http://www.keplerproject.org/

Reply via email to