[web2py] Action commit and scheduled task commit racing?
It absolutely can't happen. But the logic in the code is quite prone to inconveniences: every time a task runs, it only processes the last record of the table...what happens if you have called the webhook function several times before the task has the chance to be executed? You end up having holes of processed webhooks -- 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.
[web2py] Action commit and scheduled task commit racing?
It absolutely can't happen. But the logic in the code is quite prone to inconveniences: every time a task runs, it only processes the last record of the table...what happens if you have called the webhook function several times before the task has the chance to be executed? You end up having holes of processed webhooks -- 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.
[web2py] Action commit and scheduled task commit racing?
It absolutely can't happen. But the logic in the code is quite prone to inconveniences: every time a task runs, it only processes the last record of the table...what happens if you have called the webhook function several times before the task has the chance to be executed? You end up having holes of processed webhooks -- 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.
[web2py] Action commit and scheduled task commit racing?
My code has roughly the following form, and I am wondering if this can generate a race condition or if the first insert happens right away: def receive_webhook(): def POST(*args, **vars): db.webhook_table.insert(webhook_data=data, status=0) scheduler.queue_task(process_update) #some other code happens after this The code in my Scheduler.py: def process_update(): import json record = db(db.webhook_table.status == 0).select(limitby=(0, 1), orderby=~db.webhook_table.create_date).as_list() # CAN THIS SELECT FINISH BEFORE THE INSERT FROM receive_webhook IS RECORDED IN THE DB OR IS THE INSERT FINISHED IMMEDIATEDLY state = json.loads(record[0]['webhook_data'])['status'] if not state == 'Updated': db(db.webhook_table.id == record[0]['id']).update(status=2) db.commit() from gluon.scheduler import Scheduler scheduler = Scheduler(db) Can this create a race condition? If so what is the best way to fix it so that it can't? The status update(status=2) from the second code block appears to be executing sometimes but not all the time. -- 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.