Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

need a workaround for Email

Temporal Mitra
Registered User
Join date: 13 Jul 2006
Posts: 142
02-26-2007 09:17
I am working on a system that sends data back and forth from a server to multiple objects, utilizing llHTTPRequest to circumvent the 20 second delay that is inherant with llEmail in the lsl scripting language. And it works, to a point...the multiple objects report to the server upon rezzing, register with the server, which then sends data back out to the multiple objects. both sending data to my web based set of scripts, and the webside scripts sends the data back and forth...sending every three seconds or so...I have created a series of webside scripts 0-9 and a-f to handle traffic based on the first letter of the objects key, so no one script is slammed with data. Additionally, the multiple objects will do an automatic contact back to the server, several times an hour, to maintain connectivity. Since the multiple objects are subject to deletion from the system during land sales, if they miss sequential contacts to the server, the server removes them from the network. So there is a bit of traffic, even with just two systems running. But I want to sell this system and eventually have 20-30 thousand of the multiple objects exchanging traffic with a thousand (or more) servers

Now for my problem...the system crashes after a couple of hours or so...when I have created a couple hundred of the multiple objects. After much trial and error, and asking of questions, both in world and out...I have traced it to a process called "tarpitting" on my webhosts end. They are limiting the number of sendmail processes to 25 per minute, to keep folks from using their sendmail binary to send spam. While I understand their reasoning, my object to server traffic is patently not spam. Regardless, they are limiting me to 25/ minute, and when my system is sold and in use, the traffic will be much greater than that. My hosting site allows almost unlimited data transfer, a couple hundred gigs a month, they just throttle the sendmail binary.

So...is there a way to use llHTTPRequest to a MySQL database, with a POST/GET/DELETE schema, to avoid the use of their sendmail binary?...or an open source method of using cascading llEmail scripts, perhaps with a controller, or "traffic cop" type of script that will allow each llEmail based script to be used in turn?..to overcome the 20 second delay?

Any help on this would be greatly appreciated...even a pointer to discussions or if you have done this yourself, code snippets would be helpful.

Thanks in advance.

Temporal Mitra
Talarus Luan
Ancient Archaean Dragon
Join date: 18 Mar 2006
Posts: 4,831
02-26-2007 11:16
It sounds like you are dealing with multiple issues here.

First of all, yes, there is a well-known method for getting around the 20-second llEmail cooldown; it involves just what you said, a main script which does some kind of traffic management for outgoing sends (usually a round-robin queue), and uses llMessageLinked to send email data to a set of slave scripts which actually perform the llEmail themselves. Usually, there are 10-20 of the slave scripts, reducing the delay to about 1-2 seconds per email. More slave scripts will allow less for less delay accordingly.

If you are sending emails back in-world from an external server, know that email delivery from "outside" can often take up to the better part of an hour when the inbound email server is busy.

If your current host throttles emails, see about getting another host which doesn't have that kind of restriction.

I'm not sure what you are using on your webserver as far as scripts go, but partitioning requests off to multiple copies of the same script won't generally net you any savings. As far as php goes, calling process-a.php and process-b.php doesn't save anything over calling process-a.php twice.