473,320 Members | 1,820 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,320 software developers and data experts.

Can a thread time out?

Hi,

I'm very new to threading in .NET, so bear with me :-)

I'm planning to build a mail sender application for my client to send out
newsletters to its customers. The application should be built to handle at
least 15,000 customers. Potentially 40,000, but then I would probably
consider using the hosting provider's Mailing List product and send it the
database table to be sent.

I suppose the best way of doing this is to call the sender function within a
separate thread, loop through all email addresses and use Thread.Sleep to
wait for the SMTP server to catch up every now and then during the send
process.

Since the client clicks the send button and then probably exits the site,
will this thread still be running or will it time out/die?

Thanks for any kind of suggestions or help!

Regards,
Jonah Olsson
Nov 17 '05 #1
6 1362
Hi Jonah,

The Thread is yours for as long as you like. :-)

Regards,
fergus
Nov 17 '05 #2
Jonah,

With this potential volume of messages being sent, your best approach by far
is not to send the e-mails from your web application at all. Store the
message details and the recipient list to a database, then use another
application (which can easily be placed on another server or have multiple
instances running on multiple machines if necessary) to send out the actual
e-mails in batches of configurable size. This will allow you to better
control the volume issue and avoid crippling your web server with tasks that
have nothing to do with your web application UI.

HTH,
Nicole
"Jonah Olsson" <jo***@IHateSpam.com> wrote in message
news:OB**************@TK2MSFTNGP12.phx.gbl...
Hi,

I'm very new to threading in .NET, so bear with me :-)

I'm planning to build a mail sender application for my client to send out
newsletters to its customers. The application should be built to handle at
least 15,000 customers. Potentially 40,000, but then I would probably
consider using the hosting provider's Mailing List product and send it the
database table to be sent.

I suppose the best way of doing this is to call the sender function within a separate thread, loop through all email addresses and use Thread.Sleep to
wait for the SMTP server to catch up every now and then during the send
process.

Since the client clicks the send button and then probably exits the site,
will this thread still be running or will it time out/die?

Thanks for any kind of suggestions or help!

Regards,
Jonah Olsson

Nov 17 '05 #3
Hi Nicole and thanks for your reply,

Yes, that's probably what I would do then. At what volumes should I consider
the other dedicated application? Or did you mean the current 15,000?

Jonah
"Nicole Calinoiu" <ni*****@somewhere.net> skrev i meddelandet
news:u0**************@tk2msftngp13.phx.gbl...
Jonah,

With this potential volume of messages being sent, your best approach by far is not to send the e-mails from your web application at all. Store the
message details and the recipient list to a database, then use another
application (which can easily be placed on another server or have multiple
instances running on multiple machines if necessary) to send out the actual e-mails in batches of configurable size. This will allow you to better
control the volume issue and avoid crippling your web server with tasks that have nothing to do with your web application UI.

HTH,
Nicole
"Jonah Olsson" <jo***@IHateSpam.com> wrote in message
news:OB**************@TK2MSFTNGP12.phx.gbl...
Hi,

I'm very new to threading in .NET, so bear with me :-)

I'm planning to build a mail sender application for my client to send out newsletters to its customers. The application should be built to handle at least 15,000 customers. Potentially 40,000, but then I would probably
consider using the hosting provider's Mailing List product and send it the database table to be sent.

I suppose the best way of doing this is to call the sender function within
a
separate thread, loop through all email addresses and use Thread.Sleep

to wait for the SMTP server to catch up every now and then during the send
process.

Since the client clicks the send button and then probably exits the site, will this thread still be running or will it time out/die?

Thanks for any kind of suggestions or help!

Regards,
Jonah Olsson


Nov 17 '05 #4
Perfect! :)

Jonah
"Fergus Cooney" <fi******@tesco.net> skrev i meddelandet
news:ep**************@tk2msftngp13.phx.gbl...
Hi Jonah,

The Thread is yours for as long as you like. :-)

Regards,
fergus

Nov 17 '05 #5
I think 15000 is already plenty, particularly if you could have multiple
users submitting simultaneous/overlapping mailings. If you don't have
another machine handy for running the mailer app, you can always put it on
the web server for now. You'll be able to move it quickly and easily to
another machine when/if the need arises.

HTH,
Nicole
"Jonah Olsson" <jo***@IHateSpam.com> wrote in message
news:%2****************@tk2msftngp13.phx.gbl...
Hi Nicole and thanks for your reply,

Yes, that's probably what I would do then. At what volumes should I consider the other dedicated application? Or did you mean the current 15,000?

Jonah
"Nicole Calinoiu" <ni*****@somewhere.net> skrev i meddelandet
news:u0**************@tk2msftngp13.phx.gbl...
Jonah,

With this potential volume of messages being sent, your best approach by far
is not to send the e-mails from your web application at all. Store the
message details and the recipient list to a database, then use another
application (which can easily be placed on another server or have multiple
instances running on multiple machines if necessary) to send out the

actual
e-mails in batches of configurable size. This will allow you to better
control the volume issue and avoid crippling your web server with tasks

that
have nothing to do with your web application UI.

HTH,
Nicole
"Jonah Olsson" <jo***@IHateSpam.com> wrote in message
news:OB**************@TK2MSFTNGP12.phx.gbl...
Hi,

I'm very new to threading in .NET, so bear with me :-)

I'm planning to build a mail sender application for my client to send

out newsletters to its customers. The application should be built to handle at
least 15,000 customers. Potentially 40,000, but then I would probably
consider using the hosting provider's Mailing List product and send it the database table to be sent.

I suppose the best way of doing this is to call the sender function within
a
separate thread, loop through all email addresses and use Thread.Sleep

to wait for the SMTP server to catch up every now and then during the
send process.

Since the client clicks the send button and then probably exits the

site, will this thread still be running or will it time out/die?

Thanks for any kind of suggestions or help!

Regards,
Jonah Olsson



Nov 17 '05 #6
Perfect! Thanks a lot! :-)

J

"Nicole Calinoiu" <ni*****@somewhere.net> skrev i meddelandet
news:u5**************@TK2MSFTNGP09.phx.gbl...
I think 15000 is already plenty, particularly if you could have multiple
users submitting simultaneous/overlapping mailings. If you don't have
another machine handy for running the mailer app, you can always put it on
the web server for now. You'll be able to move it quickly and easily to
another machine when/if the need arises.

Nov 17 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

38
by: Anthony Baxter | last post by:
On behalf of the Python development team and the Python community, I'm happy to announce the release of Python 2.3.1 (final). Python 2.3.1 is a pure bug fix release of Python 2.3, released in...
4
by: Gilles Leblanc | last post by:
Hi I have started a small project with PyOpenGL. I am wondering what are the options for a GUI. So far I checked PyUI but it has some problems with 3d rendering outside the Windows platform. I...
6
by: Tony Proctor | last post by:
Hi everyone We're experiencing some serious anomalies with the scheduling of ASP threads. I'd be interested to hear if anyone knows what algorithm is used (e.g. simple round-robin, or something...
4
by: Jonathan Burd | last post by:
Greetings everyone, Here is a random string generator I wrote for an application and I'm wondering about the thread-safety of this function. I was told using static and global variables cause...
8
by: Cider123 | last post by:
I ran into a situation where my Window Service had to process 100,000+ files, when I first noticed I needed to tweak various routines. Everything runs fine, but here's what I ran into: In the...
4
by: Matthew Groch | last post by:
Hi all, I've got a server that handles a relatively high number of concurrent transactions (on the magnitude of 1000's per second). Client applications establish socket connections with the...
20
by: Doug Thews | last post by:
I ran into an interesting re-pain delay after calling the Abort() method on a thread, but it only happens the very first time I call it. Every time afterward, there is no delay. I've got a...
0
by: puff | last post by:
When interfacing to a COM object, is it possible to pump messages in a thread? I'm working on an application that automates IE and needs to monitor IE events (yes I know about Pamie). I'm able...
51
by: Hans | last post by:
Hi all, Is there a way that the program that created and started a thread also stops it. (My usage is a time-out). E.g. thread = threading.Thread(target=Loop.testLoop) thread.start() ...
3
by: scriptlearner | last post by:
I am trying to put up a queue (through a logging thread) so that all worker threads can ask it to log messages. However, the problem I am facing is that, well, the logging thread itself is running...
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
0
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.