Hi,
I'm used to create a new task for example:
scheduler.queue_task(
"a_task",
pvars = dict(csid=
row.id, csname=
row.name, action=row.action),
...
)
In the past (version 2.10.1), everything was fine. Within the current version (2.14.6) I have some trouble. See this code for example:
for row in db(db.scheduler_task.group_name == "agents").select(
db.scheduler_task.ALL):
...
pvars = json.loads(row.vars)
... will raise this exception:
...
File "/usr/local/lib/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
The reason is a quoted string in column 'VARS' in table 'SCHEDULER_TASK' (no quotes in web2py's old version 2.10.1).
A new value for 'VARS' with quotes for example:
'{"action": "script", "csname": "list", "csid": 121}'
I can skip the quotes with a trick:
pvars = json.loads(row.vars[1:-1])
But, it is not a general solution. The same problem appears for column 'ARGS' in scheduler.py when I process the tasks:
File "/export/home/armadm/dev01/release/web2py/gluon/scheduler.py", line 311, in executor
args = _decode_list(loads(task.args))
File "/usr/local/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/lib/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
I use Oracle as database:
SQL> desc scheduler_task
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NOT NULL NUMBER
...
ARGS VARCHAR2(512)
VARS VARCHAR2(512)
Any ideas?
Thx, Erwn