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.