[Twisted-Python] Using spawnProcess
exarkun at twistedmatrix.com
exarkun at twistedmatrix.com
Mon Sep 1 06:55:39 MDT 2014
On 12:24 pm, grigorescu_ciprian at yahoo.com wrote:
>Hello,
>I have wrote a custom protocol(inherit from SMTPClient) and
>factory(inherit from ClientFactory) in order to send emails from
>multiple ips(multiple connections, factories).
>
>Now I want to run this pice of code multiple times using spawnProcess
>to send emails simultaneous, each process having "n" connections from
>"n" ips.
>
>How can i use spawnProcess? Or is another way to send emails in a
>parallel fashion with twisted? Maybe another approach?
You don't need multiple processes to send email concurrently. If you
were to use `twisted.mail.smtp.sendmail`, then you could do this by just
making multiple calls to `sendmail`. You don't have to wait for one
email to be completely sent before you start trying to send the next
one. For example, to send two emails concurrently:
from sys import stdout
from twisted.mail.smtp import sendmail
from twisted.internet.defer import gatherResults
from twisted.internet.task import react
from twisted.python.log import startLogging
def main():
return gatherResults([
sendmail(...),
sendmail(...),
])
startLogging(stdout)
react(main, [])
You should be able to do something similar with the API you've
constructed (or perhaps you can just use `sendmail` instead).
Jean-Paul
More information about the Twisted-Python
mailing list