Monday, March 13, 2006

Multi-threading added to core sending process

The JangoMail engine processes mass e-mails in two steps. In the first step, a mass e-mail is pre-processed, where it is determined who the actual recipients are. The original recipient list is filtered for unsubscribes, bounces, duplicates, invalid e-mail addresses, and other measures. In the second step, JangoMail's network of distributed senders around the country actually send the indvidual e-mail messages.

It is the first pre-processing step that is now multi-threaded. Previously, this step operated in a linear fashion, pre-processing one mass e-mail job at a time. Occasionally, this would cause a delay in sending e-mails, when say, a customer sent out one mass e-mail to 2,000,000 recipients. All mass e-mail jobs submitted after the big job would have to wait while the big 2,000,000 recipient job was pre-processed. This wait has now been eliminated, because our new code can pre-process multiple mass e-mail jobs at a time.

This will result in greater overall e-mail sending speed across the entire JangoMail application!