Should we change the settings in the Adapter?

On Monday, 13 August 2012 17:21:09 UTC-5, Niphlod wrote:
>
> The most probable cause is the transaction isolation "problem" with mysql 
> as explained in 
> https://groups.google.com/d/msg/web2py/qLHP3iYz8Lo/Ly2wqK4qZZgJ
>
> I'm starting to think that it's the only adapter behaving differently.
>
> On Monday, August 13, 2012 11:46:11 PM UTC+2, Florian Letsch wrote:
>>
>> Yes, I am using mysql.
>>
>> I've accidentally posted this twice [0] on the group (sorry for that). 
>> Anthony asked:
>> > How are emails added to the database -- does that happen within the 
>> application, or also in a script?
>>
>> Emails are added to the database from within the application (a 
>> controller function adds a confirmation email to the queue)
>>
>> [0] https://groups.google.com/forum/?fromgroups#!topic/web2py/YT2jDMea6lU
>>
>> On Sunday, 12 August 2012 07:17:39 UTC+12, Massimo Di Pierro wrote:
>>>
>>> Are you using mysql?
>>>
>>> On Friday, 10 August 2012 23:11:03 UTC-5, Florian Letsch wrote:
>>>>
>>>> I want to send emails using a background queue as described in the 
>>>> web2py book: 
>>>> http://web2py.com/books/default/chapter/29/8#Sending-messages-using-a-background-task
>>>>
>>>> However, the queue only sends emails that have been in the database 
>>>> when I start the script. Database entries added lateron don't get picked 
>>>> up 
>>>> by the script. The only way I can achieve that is to add another 
>>>> db.commit() before the select(). I am sure this is not supposed to be 
>>>> necessary. Does anyone know why this is happening?
>>>>
>>>> import time
>>>> while True:
>>>>     db.commit() # Only works if I add this line
>>>>     rows = db(db.queue.status=='pending').select()
>>>>     for row in rows:
>>>>         if mail.send(to=row.email,
>>>>             subject=row.subject,
>>>>             message=row.message):
>>>>             row.update_record(status='sent')
>>>>         else:
>>>>             row.update_record(status='failed')
>>>>         db.commit()
>>>>     time.sleep(60) # check every minute
>>>>
>>>>

-- 



Reply via email to