關於crontab 定時任務命令的詳細解釋,能夠看這邊文章,http://www.cnblogs.com/longjshz/p/5779215.html。php
我在實際工做中碰到一個問題,爲了提升用戶體驗,須要每隔10秒鐘去執行一個php任務。html
正常的crontab定時任務,只有分鐘,小時,天,月,周,沒有到秒,如下提供兩個解決方案,一個是我實際中使用的,一個是我後來優化過好的。bash
方案一,簡單粗暴,在crontab中直接利用sleep命令,間隔時間爲10秒,直接跑curl
* * * * * /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
~