Author |
|
JFRanger Newbie
Joined: 03 December 2007 Location: Canada
Online Status: Offline Posts: 4
|
Posted: 03 April 2008 at 2:06pm | IP Logged
|
|
|
Hello world!!
When I send to queue a batch of 6000 emails, it takes 2.5 minutes to generate the 6000 eml files (55k each / 300MB total).
At the same time for 2.5 minutes, my 100 websites on the server are are down...
My list is upgrading 1k per month... can you imagine in 1 year, I will have 15k emails, all 100 sites will be down for 5 minutes?
For your info, CPU is working only at 30/50%.
What are my options?
Thanks,
//JF//
|
Back to Top |
|
|
Andrew AfterLogic Support
Joined: 28 April 2006 Location: United States
Online Status: Offline Posts: 1189
|
Posted: 04 April 2008 at 3:20am | IP Logged
|
|
|
Which of our products do you use to generate those messages? Whether it's MailBee.NET Objects (.NET assembly) or MailBee Objects (ActiveX component)?
Could you please provide us with a part of the source code of your application which generates the messages? Please use Request Support form for this purpose.
Best regards,
Andrew
|
Back to Top |
|
|
JFRanger Newbie
Joined: 03 December 2007 Location: Canada
Online Status: Offline Posts: 4
|
Posted: 04 April 2008 at 9:59pm | IP Logged
|
|
|
I'm using the ActiveX component with a regular loop!
Set objSMTP = Server.CreateObject("MailBee.SMTP")
objSMTP.LicenseKey = mailBee_smtp_Key
objSMTP.ServerName = MailServer
objSMTP.FromAddr = " My Business <support@myob.com>"
objSMTP.BodyFormat = 1
objSMTP.Message.MakeAltBody
do while not RS_EMAIL.eof
objSMTP.ToAddr = trim(RS_EMAIL("EMAIL"))
objSMTP.Subject = "Hello world"
objSMTP.BodyText = strHTML
objSMTP.SendToQueue(theQueueFo lder)
RS_EMAIL.movenext
loop
|
Back to Top |
|
|
Alex AfterLogic Support
Joined: 19 November 2003
Online Status: Offline Posts: 2206
|
Posted: 05 April 2008 at 5:27am | IP Logged
|
|
|
You can split the entire job into multiple page runs. On each run, you generate 100 e-mails only. In the end of ASP file, you can add the code to print some javascript which will reload the page and make it run again. Thus, each time the page completes execution, it starts again. In the page reloading code, you can also add a parameter like from=<%=I%> where I is the row number to proceed from (initially I=0, then it's incremented by 100 on each run). You can use this I in your SQL logic to skip the first I records.
This is universal approach for distributing load (of any kind) over time in server applications.
Regards,
Alex
|
Back to Top |
|
|
JFRanger Newbie
Joined: 03 December 2007 Location: Canada
Online Status: Offline Posts: 4
|
Posted: 07 April 2008 at 8:45am | IP Logged
|
|
|
Thanks Alex, good idea... I will try it asap with an ajax aproach in a hidden frame instead. I will also add a nice "please wait" animation, the users will have a better experience than a 10 seconds "auto-refresh"
Thanks again,
//JF//
|
Back to Top |
|
|