Switch from wp-cron to a server cron job

First, you’ll have to determine an average time to execute your job. Run it once every minute, five times. Use error_log('Start');, and error_log('End'); to mark the start time, and the end time. Take an average of all five results and round it up to full seconds. Prepare your job to execute its logic 6 times in a loop:

$avgExecTime = 3; //replace this with the average execution time from your tests
$sleepTime = 10 - $avgExecTime;
for($i = 0; $i = 5; $i++) {
    //
    // your logic goes here
    //
    if($i < 5)
        sleep($sleepTime);
}

Now, you can set your system cron to run this job every minute, forever.

Note: make sure that your job’s average execution time is less than 10 seconds. If it is not, increase the frequency to 15 seconds, and modify your job accordingly.