Transactions are processed slowly

If you have a lot of website visits (generating a huge server load), your system might be slow and that is why you are supposed to use cron job for transaction processing. (See your merchant panel Tools> Integration> Cron job integration) The cron job processing works this way:
- 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:
--exclude Pap_Tracking_Visit_Processor
and this code to the duplicate:
--include Pap_Tracking_Visit_Processor
 
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 
and 
inclusion_tasks for tasks which will be included or excluded (comma separated)
 
So previous example as url will look:
 
http://www.example.com/pap/scripts/jobs.php?inclusion_type=exclude&inclusion_tasks=Pap_Tracking_Visit_Processor
 
http://www.example.com/pap/scripts/jobs.php?inclusion_type=include&inclusion_tasks=Pap_Tracking_Visit_Processor
 
 
Cron Time:
 
Cron is executing maximally 50 maximally seconds by default. If you use include/exclude parameter it will take time by configuration in ToolsCron Job Integration > Cron runtime
 
If you want to use exact maximum time you can use parameter 'time=25' 
example of using
http://www.example.com/pap/scripts/jobs.php?time=25
or
http://www.example.com/pap/scripts/jobs.php?inclusion_type=exclude&inclusion_tasks=Pap_Tracking_Visit_Processor&time=25
 
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).