Search The ForumSearch   RegisterRegister  LoginLogin

MailBee Message Queue

 AfterLogic Forum : MailBee Message Queue
Subject Topic: Generating 6000 eml files kills IIS Post ReplyPost New Topic
Author
Message << Prev Topic | Next Topic >>
JFRanger
Newbie
Newbie
Avatar

Joined: 03 December 2007
Location: Canada
Online Status: Offline
Posts: 4
Posted: 03 April 2008 at 2:06pm | IP Logged Quote JFRanger

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 View JFRanger's Profile Search for other posts by JFRanger
 
Andrew
AfterLogic Support
AfterLogic Support


Joined: 28 April 2006
Location: United States
Online Status: Offline
Posts: 1189
Posted: 04 April 2008 at 3:20am | IP Logged Quote Andrew

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 View Andrew's Profile Search for other posts by Andrew
 
JFRanger
Newbie
Newbie
Avatar

Joined: 03 December 2007
Location: Canada
Online Status: Offline
Posts: 4
Posted: 04 April 2008 at 9:59pm | IP Logged Quote JFRanger

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 View JFRanger's Profile Search for other posts by JFRanger
 
Alex
AfterLogic Support
AfterLogic Support
Avatar

Joined: 19 November 2003
Online Status: Offline
Posts: 2206
Posted: 05 April 2008 at 5:27am | IP Logged Quote Alex

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 View Alex's Profile Search for other posts by Alex
 
JFRanger
Newbie
Newbie
Avatar

Joined: 03 December 2007
Location: Canada
Online Status: Offline
Posts: 4
Posted: 07 April 2008 at 8:45am | IP Logged Quote JFRanger

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 View JFRanger's Profile Search for other posts by JFRanger
 

If you wish to post a reply to this topic you must first login
If you are not already registered you must first register

  Post ReplyPost New Topic
Printable version Printable version

Forum Jump

Powered by Web Wiz Forums version 7.9
Copyright ©2001-2004 Web Wiz Guide