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