[Zope] sending thousands of emails in the background (returning the webpage immediately) ?

chas panda@skinnyhippo.com
Fri, 24 Nov 2000 01:17:20 +0800


Thanks Stefan,

Nice analysis - esp. of the locking problems which explains
why I wasn't managing to scale with multiple threads, even 
from a straight python script (no Zope).  Pretty certain I'm
going to botch up qmail if I start writing directly to the 
maildrop, but will investigate.

As for my initial question (detaching the sending thread from 
the interactive part of Zope), I'm relieved to see that the 
'threading' module is taking care of everything for you ... 
I must have screwed up in my earlier attempts (using 'thread').
Will give it another shot now that I know this is the way to
go forward. 

Cheers,

chas




>You might want to take a look at my bulk mailing how-to
>http://www.zope.org/Members/shh/BulkMailHack/
>
>Regards,
>Stefan
>
>> Goal: an end-user fills in a form on a webpage and clicks
>>       the 'submit' button.  As a result, thousands of 
>>       customized e-mail messages are sent.
>> 
>> Problems: 
>> (i)   The msgs are customized so Mailman is not appropriate.
>>       also, there is substantial workflow so Zope is preferred.
>> (ii)  The end user only uses a web browser - s/he will not be
>>       expected to log in and use ZClient, so the previous solution
>>       suggested below is not viable.
>> (iii) The confirmation webpage must return immediately... 
>>       ie. we do not want to wait for all the emails to be 
>>       sent before the page is returned to the user.
>>       This has to be processed in the background (perhaps
>>       for the next hour or so, even if the user logs off).
>> 
>>       Possible scenario : user logs on, fills in form, hits 'submit', 
>>       confirmation webpage is returned to the user saying it's ok,
>>       emails start to get sent out, user logs off, emails
>>       continue to get sent out, user logs back on 2 hrs later
>>       and its still processing.
>> 
>> 
>> Anyone any ideas on this one ? Thanks a lot,