[twsocket] Using lots of TSmtpCli in a single application
Hi I've used ICS components for a while now and had great results. I have something new to do and wanted some advice before starting a new project. Previously my app used a single TSmtpCli and this all worked fine. Now however I have to send mail on behalf of lots of accounts and the number of TsmtpCli components in use simultaneously, used in a multi threaded application, could be in excess of 100. Assuming that the machine has enough memory and processor power, am I likely to run into any problems? I don't evisage the email volumes being massive - say 20 per hour per account, meaning something like 200 per hour outgoing per application. My reason for asking is simple - I'm doing something unusual. If it is likely to be a problem I can try concentrating all emails through a single Tsmtpcli but because of the code base I am working with this will be much harder to do. Any comments welcome. Thanks in advance! _ Upgrade to Internet Explorer 8 Optimised for MSN. http://extras.uk.msn.com/internet-explorer-8/?ocid=T010MSN07A0716U -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] Using lots of TSmtpCli in a single application
Hello Pete, 200 mails per hour is really not much, a single thread can do much more. But you may be slowed by the other side smtp server if it is slow or timeout. So doing multi-thread is a good way to maintain a good average speed. You can create 20 threads with a common queue that each thread can take mails from, so if a thread is slowed because of slow or timed-out smtp server, then the other threads continue to empty the queue and send e-mails to other smtp servers. In case you send multiple mails so same MX domain, then make some function that will re-arrange the queue to move slow or timed-out domains to the end of the queue so you'll retry them later. Also if a MX refuse you because of some blacklist then remove thoses mails from the queue and send you a mail alert so you can investigate why destination refused your mail. regards. PW Hi PW I've used ICS components for a while now and had great results. PW I have something new to do and wanted some advice before starting a new project. PW Previously my app used a single TSmtpCli and this all worked fine. Now however I have to send mail on behalf of lots of accounts and the number of TsmtpCli components in use simultaneously, used PW in a multi threaded application, could be in excess of 100. PW Assuming that the machine has enough memory and processor power, am I likely to run into any problems? PW I don't evisage the email volumes being massive - say 20 per hour per account, meaning something like 200 per hour outgoing per application. PW My reason for asking is simple - I'm doing something unusual. If it is likely to be a problem I can try concentrating all emails through a single Tsmtpcli but because of the code base I am PW working with this will be much harder to do. PW Any comments welcome. Thanks in advance! PW _ PW Upgrade to Internet Explorer 8 Optimised for MSN. PW http://extras.uk.msn.com/internet-explorer-8/?ocid=T010MSN07A0716U PW -- PW To unsubscribe or change your settings for TWSocket mailing list PW please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket PW Visit our website at http://www.overbyte.be -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be
Re: [twsocket] Using lots of TSmtpCli in a single application
Pete Williams wrote: Hi I've used ICS components for a while now and had great results. I have something new to do and wanted some advice before starting a new project. Previously my app used a single TSmtpCli and this all worked fine. Now however I have to send mail on behalf of lots of accounts and the number of TsmtpCli components in use simultaneously, used in a multi threaded application, could be in excess of 100. 100 connections and more in one single thread is no problem. Anyway don't use one thread per connection, that was wasted resource! Since ICS works asynchronous there _basically is no need for multiple threads. However if you want your application scale well with multiple processors and keep your GUI responsive create as many additional threads as CPUs/cores are available and divide work/number of connections accordingly. -- Arno Garrels -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be