Cancel threads after timeout
rosegun38 at gmail.com
Sun Jan 27 09:27:25 CET 2013
I am not sure which database you're using, but all the mainstream RDBMS is
server-client Architecture, when you're running one DML(including the
SELECT), the RDBMS setting up a server process, the query running in that
process instead of your client process, so I guess your problem can solved
in the database layer more elegant than in your program.
1. Investigate the reason why you're take more time
2. Find your DBA or yourself, setting the related parameters in the
3. If possible, using some embedded language in the database (like PL/SQL
in Oracle), it is more convenient.
2013/1/26 hyperboreean <hyperboreean at nerdshack.com>
> Here's the use case I want to implement - I have to generate a report
> from multiple database servers. This report should be generated every 2
> hours. Sometimes it happens that a query on one of the database servers
> takes longer than expected and impedes the generation of this report
> (that's right, the queries are ran sequential). What I am trying to
> achieve is to parallelize the queries on each database server and to be
> able to cancel one of them if it takes longer than X minutes.
> threading.Thread doesn't support this and seems that in
> general programming languages don't implement a way to cancel threads
> from the outside.
> Now, I've read all the stackoverflow threads about killing a thread,
> canceling a thread after a timeout, but all of them imply that you are
> able to check from within the thread if you should end the computation
> or not - that's not really my case, where the computation is a SQL
> So, what I have in mind is something like: the main loop starts a
> threading.Thread which in turn is responsible for starting another
> thread in which the actual computation happens (could be a
> threading.Thread or a multiprocessing.Process) *and* checks if the
> specified timeout has passed. If the time is up, it exits, letting the
> main loop know.
> Lots of words, no code - let me know if you have any suggestions, ideas
> to this rant.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-list