The most exciting of all the new features that came with 3endroid Ultimate 3.0 is the new Advanced Queue Management feature. With this new feature, you can make your 3endroid Ultimate process queued messages up to 1,000 times faster than before with just a few tweaks.
What is this new Advanced Queue Management feature?
As you already know, 3endroid Ultimate uses cron jobs that runs every minute or so to process queued messages. The implication of this is that the number of messages your SMS portal can send in minute depends on how many messages your server is able to process within 60 seconds..
In most cases, this number is just between 30 - 150, even with very good server resources. Forcing the system to process more than that sometimes results in duplicate messages being sent to your gateway, or even slows-down the process in some cases..
The good news is that all these are "things of the past... " thanks to the new queue management system that came with 3endroid Ultimate 3.0.
With the new queue manager, your portal can process thousands of messages in minute by safely running multiple instances of the Minute Cron Job at almost same time.
The trick is simple... start each new cron job a second or two after the previous one by setting a delay in seconds before the cron executes the queue manager, thereby making sure that no two cron jobs executes at exactly same time.
The new queue manager paginates queued messages as they are processed, making sure that messages already being processed by one instance of cron job doesn't get processed by another. This technology speeds up the message processing speeds while also eliminating the possibility of duplicate messages being submitted to your gateway, as no two cron tasks can ever process the same message ID.
How do I use this new feature?
Lets say your portal is only able to process 60 messages in a minute and you want to increase that figure to 1,200 messages per minute, you simply need to run 20 simultaneous instances of your 3endroid Ultimate Minute Cron
First, set the very first Minute Cron the usual way using WGET or GET option (refer this article for help on setting cron jobs: https://ynetinteractive.com/blog/How-To-Setup-a-Cron-Job-on-cPanel-9)
Next, set another Minute Cron job, this time adding a delay parameter with value set to 2 (i.e wget -q -O /dev/null "https://your-sendroid-domain/crons.php?delay=2" > /dev/null 2>&1). The delay parameter (delay=2) will simply make the cron job wait after 2 seconds before executing the queue.
Create the remaining 18 cron jobs, setting delay parameter 2 seconds more than the previous value
It is very important to understand the capacity of your server before setting multiple simultaneous cron tasks to avoid overwhelming or crashing your server.
Are there any limitations?
Every good thing comes at a cost. In this case, your server resources is the cost. Here are a few things to consider while using this new super col feature on your Sendroid ultimate
- Running multiple cron tasks at same time means using more server resources. If these resources are limited, your server may go down
- Pushing more message than your gateway or API can handle may result in lots of backlogs at your provider's end
- Some SMS API have limits to API calls per minute. Exceeding such limits may result in increase message failure rate