通常使用crontab来安排任务。但是,我发现crontab只能按小时,每小时或每天安排任务。如果我想每4小时安排一次任务,我仍然可以通过设置6个日常任务来完成任务。但是,如果我希望有一天不会弥补一天,例如每5小时/ 7小时完成一项任务,该怎么办?有没有办法在crontab或其他工具中按小时设置任务? (如果该工具可以在像Heroku / Openshift这样的PaaS上运行,会更好)
答案 0 :(得分:0)
以下是使用精细crontab设置每5分钟发生一次的任务的示例(https://github.com/openshift-quickstart/openshift-cacti-quickstart/blob/master/.openshift/cron/minutely/cactipoll)
if [ ! -f $OPENSHIFT_DATA_DIR/last_run ]; then
touch $OPENSHIFT_DATA_DIR/last_run
fi
if [[ $(find $OPENSHIFT_DATA_DIR/last_run -mmin +4) ]]; then #run every 5 mins
rm -f $OPENSHIFT_DATA_DIR/last_run
touch $OPENSHIFT_DATA_DIR/last_run
php $OPENSHIFT_REPO_DIR/php/poller.php > $OPENSHIFT_DATA_DIR/cacti.log 2>&1
fi
基本上任务每分钟运行一次,但只在5分钟过后才执行。您可以轻松地将其调整为使用小时而不是分钟。