A hint on e-mail speeds
|
|
Treat Rothschild
Registered User
Join date: 27 Apr 2006
Posts: 20
|
02-28-2007 19:57
I've seen it bandied about here on the forums that there is a way to get around the 20 second delay for llEmail. Can anyone point me in the right direction?
|
|
AJ DaSilva
woz ere
Join date: 15 Jun 2005
Posts: 1,993
|
02-28-2007 20:04
Multiple scripts. That enough of a point in the right direction? 
|
|
bucky Barkley
Registered User
Join date: 15 May 2006
Posts: 200
|
02-28-2007 22:51
Have a rezzed prim from inventory send the email and then die? (after first having params passed to it from a one-time listen)
|
|
Osgeld Barmy
Registered User
Join date: 22 Mar 2005
Posts: 3,336
|
02-28-2007 23:48
send data from the server object to a website and have the clients read the website instead of looking for the next email
|
|
AJ DaSilva
woz ere
Join date: 15 Jun 2005
Posts: 1,993
|
03-01-2007 15:11
From: bucky Barkley Have a rezzed prim from inventory send the email and then die? (after first having params passed to it from a one-time listen) Unless you're hitting the per-prim email limit you can just put all the scripts in the same prim and communicate between them with link messages. It's faster and more secure. 
|
|
Stylez Gomez
Union Micro
Join date: 4 Jun 2004
Posts: 146
|
03-01-2007 17:39
From: AJ DaSilva Unless you're hitting the per-prim email limit you can just put all the scripts in the same prim and communicate between them with link messages. It's faster and more secure.  I second this method. This is how I get around the e-mail limit in my projects. I'd be careful with this though because if you're constantly firing off many e-mails in the run of 20 seconds, your object may get flagged by Linden Lab and will no longer send e-mail. I've never experienced this personally but I've heard it's possible.
|
|
Jeff Kelley
Registered User
Join date: 8 Nov 2006
Posts: 223
|
03-01-2007 19:34
I have a bank of 20 mailers and throttle the output to 1 mail/sec in the dispatcher. Works since several weeks ago without noticing any Linden action. However, the average throughput is well under 60 mails/min.
In an attempt to reduce sim load, I stop each mailer after llEmail (llSetScriptState(llGetScriptName(),FALSE)) and have the dispatcher wake them up before sending.
|
|
Treat Rothschild
Registered User
Join date: 27 Apr 2006
Posts: 20
|
03-02-2007 21:01
This was a big help, thanks guys. I'm puzzling out the logic of it now. I'm planning on a bank of 5 mailers. What's your opinion of the optimum number?
|
|
Jeff Kelley
Registered User
Join date: 8 Nov 2006
Posts: 223
|
03-03-2007 10:54
From: Treat Rothschild What's your opinion of the optimum number? It depends on your needs. 5 mailers will give you an average rate of 15 mails/min or peaks to 4 sec/mail (easy math  . You have to throttle throughput to the last number in the upper layer or implement a queue. I would never try to go over 20 mailers, but use HTTP instead. Also, handling wrong keys is a problem in the long term. If you use mail, we assume that objects are owned by others or placed on foreign lands. It is easy to loose track of all your objects, how much they are and where. You don't get mail bounces, so you can't say if you are sending to a non-existent or derezed object. A protocol may help : implement a PING command and, if the object does not answer, disable its key in the database. I've made region name and location part of the message at the transport layer, so each message is flagged with the transmitter's location.
|
|
Treat Rothschild
Registered User
Join date: 27 Apr 2006
Posts: 20
|
03-03-2007 17:50
From: Jeff Kelley It depends on your needs. 5 mailers will give you an average rate of 15 mails/min or peaks to 4 sec/mail (easy math  . You have to throttle throughput to the last number in the upper layer or implement a queue. I would never try to go over 20 mailers, but use HTTP instead. Also, handling wrong keys is a problem in the long term. If you use mail, we assume that objects are owned by others or placed on foreign lands. It is easy to loose track of all your objects, how much they are and where. You don't get mail bounces, so you can't say if you are sending to a non-existent or derezed object. A protocol may help : implement a PING command and, if the object does not answer, disable its key in the database. I've made region name and location part of the message at the transport layer, so each message is flagged with the transmitter's location. Interesting. Thank you, Jeff. *edit* I had independently come to the conclusion that 5 to 10 was going to be optimum for the number of mailers.
|