I've accidentally posted this twice. Please have a look at the other 
thread: 
https://groups.google.com/forum/?fromgroups#!topic/web2py/u5R-vGcP580%5B1-25%5D
I answered your question there (emails are added from within the 
application).

On Sunday, 12 August 2012 06:17:15 UTC+12, Anthony wrote:
>
> How are emails added to the database -- does that happen within the 
> application, or also in a script?
>
> On Saturday, August 11, 2012 12:55:40 AM UTC-4, Florian Letsch wrote:
>>
>> *My first post somehow didn't make it to the group, I don't know where 
>> it got lost. Sorry if I submit this twice, I have never participated in a 
>> news group before.*
>>
>> I am trying to set up a background queue for sending email as described 
>> in the web2py book. 
>> http://web2py.com/books/default/chapter/29/8#Sending-messages-using-a-background-task
>>
>> However, emails are only sent when they have been in the database before 
>> starting the script. Emails I add to the database when the queue is running 
>> do not get picked up for some reason. I got it to work by adding an 
>> additional db.commit() before the select() in every loop run. I assume this 
>> should not be needed. Does anyone have an idea why this is not working 
>> without that additional commit?
>>
>> import time
>> while True: 
>>     db.commit() # not working without 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