- the time interval set for the cron defines how often the system processes all transactions
- it is divided into two different processing sections
- first time the application processes pending emails
- second time the application processes transactions... this loop continues forever
E.g. if your cron job is set to something like this:
*/2 * * * * /usr/local/bin/php -q /home/public_html/pap/scripts/jobs.php
It means on even minute it processes mails, on odd minute it processes transactions.
In a special cases, when you have a huge server load, you can let the system processes more cron jobs at a time. Here is a guide of how to do it:
The first step is to copy the original line, and paste it below the original, then append this code to the first line:
and this code to the duplicate:
Based on our example the result cron tab should look like this now:
*/2 * * * * /usr/local/bin/php -q /home/public_html/pap/scripts/jobs.php --exclude Pap_Tracking_Visit_Processor
*/2 * * * * /usr/local/bin/php -q /home/public_html/pap/scripts/jobs.php --include Pap_Tracking_Visit_Processor
Next step is to duplicate scripts/jobs.php file in your filesystem and to rename it to e.g. jobs2.php
Finally, create a similar line for jobs2.php only with include tag, like this:
*/2 * * * * /usr/local/bin/php -q /home/public_html/pap/scripts/jobs2.php --include Pap_Tracking_Visit_Processor
In case you need more jobs running, you just have to create a new line per each jobs.php file duplicate:
*/2 * * * * /usr/local/bin/php -q /home/public_html/pap/scripts/jobsX.php --include Pap_Tracking_Visit_Processor
That's it. This way the system will be faster. Make sure your database does not have any problems (space, broken tables, etc...) and also make sure the Cron interval is set to the same amount as your cron - in our example it is set to 2 minutes (*/2 * * * *).
The most convenient cron periods are: 2, 4, 6, 10 minutes.
From what we have tested, the most effective scenario is to use 2 to 4 cron jobs. Using more cron jobs is not so effective as you have to adjust the cron interval to lower the server load caused by cron itself.
If you are executing cron jobs.php file via url, you can use url parameters:
inclusion_type with values include or exclude
inclusion_tasks for tasks which will be included or excluded (comma separated)
So previous example as url will look:
Cron is executing maximally 50 maximally seconds by default. If you use include/exclude parameter it will take time by configuration in Tools > Cron Job Integration > Cron runtime
If you want to use exact maximum time you can use parameter 'time=25'
example of using:
This is useful if you want to execute cron via url in web browser, browser timeout is 30 seconds (30 seconds timeout is on our hosted servers).