Hot  to activate SQLite WAL when using DAL?

Dne čtvrtek, 26. července 2012 10:04:23 UTC+2 Niphlod napsal(a):
>
> Couchdb support is still experimental in web2py. If auth is not working 
> you'd likely to wait (or help Massimo with) a better implementation of the 
> DAL.
>
> If you need ultra-fast tasks you'd want to use celery (or pyres, or rq). 
> The current scheduler with SQLite can process ~5 tasks per second per 
> single worker (YMMV for complex apps or functions). Multiple workers with 
> SQLite and WAL archiving disabled is not recommended. Anyway, with WAL 
> activated, I tested with no problems 8 concurrent workers with a great deal 
> of tasks (~6000) with a semi-linear scalability.
> With Mysql or postgres it's possible to process tasks with even more 
> concurrent workers (I'd still keep them 50 at most). The only downside of 
> SQLite instead of a "full relational db" is that you can't share the db 
> among different machines.
>
>
>
> On Thursday, July 26, 2012 7:03:44 AM UTC+2, Ted wrote:
>>
>> Hi Niphlod,
>>
>> Since the usecase for a Scheduler often needs concurrent fast write/reads 
>> and updates (from multiple clients) with information that is largely 
>> temporary I think a Nosql DB is a great way to handle scheduler data.
>>
>> In my case I don't want the overhead of installing a full relational db 
>> and I'm sure that the SQLite adapter will not perform well under load with 
>> multiple scheduler tasks.
>>
>> Since I posted I have tried CouchDB as my Auth db and am getting similar 
>> errors (at the same code point as above) about the encoding. I am using 
>> Python 2.6, web2py Version 2.00.0 (2012-07-18 21:46:56) dev and CouchDB 
>> 1.0.1.
>>
>> Ted
>>  
>>
>> On Thursday, July 26, 2012 2:07:17 AM UTC+7, Niphlod wrote:
>>>
>>> Scheduler was meant to run on relational dbs. Actually, I think noone 
>>> ever tested it on Nosql adapters, but if this is a popular requirement I 
>>> could see into it.
>>>
>>> BTW, I posted an app to test the scheduler in trunk for this kind of 
>>> tests.
>>>
>>> https://groups.google.com/d/topic/web2py/E_mASrZIpvw/discussion
>>>
>>>
>>>
>>> On Wednesday, July 25, 2012 1:42:50 PM UTC+2, Ted wrote:
>>>>
>>>> Hi Web2pyers,
>>>>
>>>> Has anyone sucessfully used the new scheduler functionality with *
>>>> CouchDB? *(I'm assuming this is feasible)
>>>>
>>>> I'm currently trying to use the scheduler on *Windows 7* with *CouchDB 
>>>> *as the DAL source.
>>>> My code works fine with sqlite but seems to silently fail using *
>>>> CouchDB*- although the tables are correctly created.
>>>>
>>>> e.g.
>>>>
>>>> scheduler_db = DAL('couchdb://127.0.0.1:5984')
>>>> scheduler = 
>>>> Scheduler(scheduler_db,dict(demo1=demo1,demo2=demo2),heartbeat=1) 
>>>>
>>>>
>>>> (The *CouchDB* scheduler_worker table seems to mysteriously keep 
>>>> growing.)
>>>>
>>>> When I try to manually add a task through the Admin (
>>>> http://127.0.0.1:8000/init/appadmin/insert/scheduler_db/scheduler_task)
>>>>
>>>> I get the following error:
>>>>
>>>> Traceback (most recent call last):
>>>>   File "C:\Users\ted\dev\web2py\gluon\restricted.py", line 205, in 
>>>> restricted
>>>>     exec ccode in environment
>>>>   File "C:/Users/ted/dev/Px/applications/init/controllers/appadmin.py" 
>>>> <http://127.0.0.1:8000/admin/default/edit/init/controllers/appadmin.py>, 
>>>> line 270, in <module>
>>>>   File "C:\Users\ted\dev\web2py\gluon\globals.py", line 182, in <lambda>
>>>>     self._caller = lambda f: f()
>>>>   File "C:/Users/ted/dev/Px/applications/init/controllers/appadmin.py" 
>>>> <http://127.0.0.1:8000/admin/default/edit/init/controllers/appadmin.py>, 
>>>> line 103, in insert
>>>>     if form.accepts(request.vars, session):
>>>>   File "C:\Users\ted\dev\web2py\gluon\sqlhtml.py", line 1307, in accepts
>>>>     self.vars.id = self.table.insert(**fields)
>>>>   File "C:\Users\ted\dev\web2py\gluon\dal.py", line 7422, in insert
>>>>     ret =  self._db._adapter.insert(self,self._listify(fields))
>>>>   File "C:\Users\ted\dev\web2py\gluon\dal.py", line 4432, in insert
>>>>     values = dict((k.name,self.represent(v,k.type)) for k,v in fields)
>>>>   File "C:\Users\ted\dev\web2py\gluon\dal.py", line 4432, in <genexpr>
>>>>     values = dict((k.name,self.represent(v,k.type)) for k,v in fields)
>>>>   File "C:\Users\ted\dev\web2py\gluon\dal.py", line 4402, in represent
>>>>     return repr(not isinstance(value,unicode) and value or 
>>>> value.encode('utf8'))
>>>> AttributeError: 'long' object has no attribute 'encode'
>>>>
>>>> Any suggestions on what is going wrong?
>>>>
>>>> Thanks,
>>>> Ted
>>>>
>>>>
>>>>

-- 



Reply via email to