Zde je jednoduchý bash skript, který jsem napsal a který lze použít s crontabem, aby se spouštěl častěji než 1 minuta.
můžete jej uložit jako ~/bin/runEvery.shand, pak do crontab napište něco takového, abyste spouštěli otherScript.sh každých 5 sekund:
*/1 * * * * ~/bin/runEvery.sh 5 otherScript.sh
Toto je skript:
#!/bin/bash
inputPeriod=$1
runCommand=$2
RUN_TIME=60
error="no"
if [ 'x'"$runCommand" != 'x' ]
then
if [ 'x'$inputPeriod != 'x' ]
then
loops=$(( $RUN_TIME / $inputPeriod ))
if [ $loops -eq 0 ]
then
loops=1
fi
for i in $(eval echo {1..$loops})
do
$runCommand
sleep $inputPeriod
done
else
error="yes"
fi
else
error="yes"
fi
if [ $error = "yes" ]
then
echo "runEvery - runs a command every X seconds for a minute"
echo "Usage: runEvery.sh <# in seconds < 60> <command to run>"
fi
To musí být provedeno na úrovni skriptu.
// cron.php running every 10 seconds
<?php
$expireTime = time() + 60;
while (time() < $expireTime) {
// my php logic here
sleep(10);
// sleep for 10 seconds
// you may change the sleep time to change frequency
}