Hi Niphold, you are right: I have an extra database select in order to get the list of dead workers.
Usually I have four workers for example. They are static and shouldn't terminate often. In this case, I call only once the database in order to get the list of dead workers and I assume this list is always empty. In this case nothing is to do. The inner part of my condition will be important very rare and because of that I can ignore this within my runtime complexity calculation. In our original code we call always twice the question how many dead workers there are (update and delete). My suggestion reflects a runtime rate of 1 for 2. Anyway, if I run the worker with my suggested extra condition I could eliminate the deadlock cases. This works very well because the extra condition. I am happy :) Thx a lot. Erwn On Monday, October 31, 2016 at 3:02:42 PM UTC+1, Niphlod wrote: > > sorry, but it doesn't really make sense. > You're executing twice the same command (the call enclosed in len() and > the actual .delete() call), which is the counter-arg for relaxing a > pressured database environment. > > On Monday, October 31, 2016 at 2:04:24 PM UTC+1, Erwn Ltmann wrote: >> >> Hi, >> >> thank you for your reply. >> >> @Pierre: MariaDB (in my case) handled deadlocks automaticly too. Good to >> known, I don't have to be worry about that. >> >> @Niphlod: I tried to beef up my database host. No effects. Another >> suggestion is to prevent the cases for such situation. I did it by an >> another extra code line in your worker function send_heartbeat: >> >> *if len(db.executesql(dead_workers_name)) > 0:* >>> db( >>> (st.assigned_worker_name.belongs(dead_workers_name)) & >>> (st.status == RUNNING) >>> ).update(assigned_worker_name='', status=QUEUED) >>> dead_workers.delete() >>> >> >> >> >> Erwn >> > -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.

