Thank you. Please upload the patch in a google code issue. Less changes of
me forgetting or doing a mistake. ;-)
On Monday, 4 June 2012 04:00:05 UTC-5, szimszon wrote:
>
> Prev. patch wasn't good, here it is:
>
> --- scheduler.py.old 2012-06-02 14:44:26.000000000 +0200
> +++ scheduler.py 2012-06-04 10:53:59.013899780 +0200
> @@ -417,13 +417,13 @@
> return None
> grabbed = db(ts.assigned_worker_name==self.worker_name)\
> (ts.status==ASSIGNED)
> - task_id = grabbed._select(ts.id, limitby=(0,1), orderby=ts.
> next_run_time)
> - updated = db(
> - ts.id.belongs(task_id)
> - ).update(status=RUNNING,last_run_time=now) #reduces
> collisions?
> - #noone will touch my task!
> - db.commit()
> - if updated:
> + task_row = grabbed.select(ts.id, limitby=(0,1), orderby=ts.
> next_run_time).first()
> + if task_row:
> + updated = db(
> + ts.id==task_row.id
> + ).update(status=RUNNING,last_run_time=now) #reduces
> collisions?
> + #noone will touch my task!
> + db.commit()
> logging.debug(' work to do %s' % updated)
> task = db(ts.assigned_worker_name==self.worker_name)\
> (ts.status==RUNNING).select().first()
>
>
>
>
>
> 2012. június 4., hétfő 9:47:29 UTC+2 időpontban szimszon a következőt írta:
>>
>> http://code.google.com/p/web2py/issues/detail?id=833
>>
>> After upgrading to Version 2.0.0 (2012-06-02 16:44:25) dev I got this if I
>> start scheduler:
>>
>> Currently running 1 scheduler processes
>> Processes started
>> 2012-06-04 09:40:47,874 - root - DEBUG - defining tables (migrate=True)
>> 2012-06-04 09:40:47,880 - root - DEBUG - thread building own DAL object
>> 2012-06-04 09:40:47,880 - root - DEBUG - looping...
>> 2012-06-04 09:40:47,883 - root - DEBUG - defining tables (migrate=False)
>> 2012-06-04 09:40:47,886 - root - DEBUG - ........recording heartbeat
>> 2012-06-04 09:40:47,887 - root - DEBUG - freeing workers that have not
>> sent heartbeat
>> 2012-06-04 09:40:47,889 - root - INFO - TICKER: I'm a ticker
>> (info-szimszon#709cdf44-805a-41a5-b197-8aa124acf311)
>> Traceback (most recent call last):
>> File "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/shell.py",
>> line 219, in run
>> exec(python_code, _env)
>> File "<string>", line 1, in <module>
>> File
>> "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/scheduler.py", line
>> 398, in loop
>> MetaScheduler.loop(self)
>> File
>> "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/scheduler.py", line
>> 279, in loop
>> task = self.pop_task()
>> File
>> "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/scheduler.py", line
>> 423, in pop_task
>> ).update(status=RUNNING,last_run_time=now) #reduces collisions?
>> File "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/dal.py", line
>> 8147, in update
>> if any(f(self,update_fields) for f in table._before_update): return 0
>> File "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/dal.py", line
>> 8147, in <genexpr>
>> if any(f(self,update_fields) for f in table._before_update): return 0
>> File "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/dal.py", line
>> 7051, in <lambda>
>> archive_record(qset,fs,at,cn))
>> File "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/dal.py", line
>> 7450, in archive_record
>> for row in qset.select():
>> File "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/dal.py", line
>> 8130, in select
>> return adapter.select(self.query,fields,attributes)
>> File "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/dal.py", line
>> 1400, in select
>> rows = response(sql)
>> File "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/dal.py", line
>> 1390, in response
>> self.execute(sql)
>> File "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/dal.py", line
>> 1479, in execute
>> return self.log_execute(*a, **b)
>> File "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/dal.py", line
>> 1473, in log_execute
>> ret = self.cursor.execute(*a, **b)
>> File
>> "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/contrib/pymysql/cursors.py",
>> line 108, in execute
>> self.errorhandler(self, exc, value)
>> File
>> "/home/PRIMERATE.LAN/gyszabolcs/fejlesztes/web2py/gluon/contrib/pymysql/connections.py",
>> line 184, in defaulterrorhandler
>> raise errorclass, errorvalue
>> NotSupportedError: (1235, u"This version of MySQL doesn't yet support 'LIMIT
>> & IN/ALL/ANY/SOME subquery'")
>>
>>
>>