關於crontab 定時任務命令的詳細解釋,可以看這邊文章,http://www.cnblogs.com/longjshz/p/5779215.html。
我在實際工作中碰到一個問題,為了提高用戶體驗,需要每隔10秒鍾去執行一個php任務。
正常的crontab定時任務,只有分鍾,小時,天,月,周,沒有到秒,以下提供兩個解決方案,一個是我實際中使用的,一個是我后來優化過好的。
方案一,簡單粗暴,在crontab中直接利用sleep命令,間隔時間為10秒,直接跑
* * * * * /usr/bin/curl "your url" >> /home/wwwroot/default/test.txt
* * * * * sleep 10; /usr/bin/curl "your url">> /home/wwwroot/default/test.txt
* * * * * sleep 20; /usr/bin/curl "your url" >> /home/wwwroot/default/test.txt
* * * * * sleep 30; /usr/bin/curl "your url" >> /home/wwwroot/default/test.txt
* * * * * sleep 40; /usr/bin/curl "your url">> /home/wwwroot/default/test.txt
* * * * * sleep 50; /usr/bin/curl "your url" >> /home/wwwroot/default/test.txt
方案二,另寫一個腳本,在crontba中,每分鍾去跑一次,這個腳本中寫一個循環,讓它跑
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/local/bin:/usr/sbin
step=10 #間隔的秒數,不能大於60
for (( i = 0; i < 60; i=(i+step) )); do
/alidata/server/php/bin/php -f /data/public_html/sms/cron/tasks_second.php
sleep $step
done
exit 0
~