idle connection are one thing and they can be fine.
idle in transaction, usually happens when there is a missing commit and the
transaction stays open, delivering all sorts of locking over the long term
usually a commit or rollback before the fork should solve the problem.

2015-02-18 23:09 GMT+01:00 Niphlod <niph...@gmail.com>:

> uhm^3. The code is quite unfixable as it is (launching scheduler with
> web2py.py -K appname). Remember that the only thing I'm trying to fix is
> the main process using idle connections to all databases defined in the
> models of you app.
>
> However, there's a small unknown trick: the scheduler can be started on
> its own, and process happily tasks defined in applications, as long as
> they are reachable from within the path you're launching it.
> The former translates to: if you are on the same path web2py is in, you
> can use another commandline to launch the scheduler, whose main process
> will only be aware of the "db_sched" connection.
> Small fixes are needed to make the "unknown trick" work again (up until
> now the "trick" hasn't been tested much) but the working file is here
> <https://www.dropbox.com/s/3lumrofqcp1bxyq/scheduler.py?dl=0> .
>
> You should start as
>
> cd web2py # <<-- path where web2py.py is
> python gluon/scheduler.py -u *uri_of_the_db* -f *folder* -L 0 -b 2
>
>
> where:
> - *uri_of_the_db* is the database uri (i.e. *postgresql://.....*, mind
> that for sqlite, you should pass the entire relative path, as in
> *sqlite:///applications/appname/databases/storage.sqlite*)
> - *folder* is the relative folder where the database tables are (i.e.
> *applications/appname/databases/* )
> - the number after -L is the logging level (0 all, 100 nothing)
> - the number after -b is the heartbeat in seconds
>
> Please try it and see if the idle connections are still there or not.
>
>
>
>
> On Wednesday, February 18, 2015 at 10:04:45 PM UTC+1, Niphlod wrote:
>>
>> uhm, the problem is more subtle.........
>>
>> The main process of the scheduler is like a shell opened on that
>> application....... it needs to reads models to see the scheduler
>> definition. I guess that this means that it will also connect to all the
>> databases defined in models, even if it will effectively send/receive
>> commands only on the scheduler_db.
>> Those "additional" connections are not needed as a matter of fact, but
>> shouldn't block anything too: they're idle and never used.
>>
>> Every spawned process (the one that will process the task) needs to
>> execute models, else your task won't be able to access, e.g. "db", and, to
>> be fair, they won't be able to "see" the tasks definitions in the first
>> place. Those connections are used, but the connections are kept open just
>> for the time the task gets processed (the spawned process dies as soon as
>> the task finishes).
>>
>> Let me check if there is a workaround for the  connections on the main
>> process. I'll get back to you (at most in a few days)
>>
>>  --
> Resources:
> - http://web2py.com
> - http://web2py.com/book (Documentation)
> - http://github.com/web2py/web2py (Source code)
> - https://code.google.com/p/web2py/issues/list (Report Issues)
> ---
> You received this message because you are subscribed to the Google Groups
> "web2py-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to web2py+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to