CronLocking
Uit MoodleDocs
Als je meerdere webservers hebt die dezelfde moodle omgeving aanbieden, dan kan je ervoor zorgen dat er maar 1 cron script tegelijk draait door cron.php aan te roepen vanuit volgend shellscript:
#!/bin/sh
my_lockfile()
{
TEMPFILE="$1.$$"
LOCKFILE="$1"
echo $$ > $TEMPFILE 2>/dev/null || return 1
if ln $TEMPFILE $LOCKFILE 2>/dev/null; then
rm -f $TEMPFILE
return 0
fi
STALE_PID=`< $LOCKFILE`
test "$STALE_PID" -gt "0" >/dev/null || return 1
if kill -0 $STALE_PID 2>/dev/null; then
rm -f $TEMPFILE
return 1
fi
rm $LOCKFILE 2>/dev/null
if ln $TEMPFILE $LOCKFILE 2>/dev/null; then
rm -f $TEMPFILE
return 0
fi
rm -f $TEMPFILE
return 1
}
until my_lockfile pad_naar_uw_lockfile ; do
sleep 1
done
php pad_naar_uw_cron.php
rm -f pad_naar_uw_lockfile