我需要即時(shí)接收一個(gè)資料去處理,必須是秒級,要怎麼處理呢
如果系統(tǒng)使用systemd的話可以利用systemd.timer
設(shè)定秒甚至毫秒定時(shí)任務(wù)。
具體參考:這裡
crontab預(yù)設(shè)最小單位是分,但是也可以用一些取巧的方式實(shí)現(xiàn)。例如,每10秒執(zhí)行一次:
* * * * * php /home/test.php
* * * * * sleep 10; php /home/test.php
* * * * * sleep 20; php /home/test.php
* * * * * sleep 30; php /home/test.php
* * * * * sleep 40; php /home/test.php
* * * * * sleep 50; php /home/test.php
每秒的話,也可以上述方式實(shí)現(xiàn),但是就很多了,不建議,因此用個(gè)shell腳本是比較好的選擇。
#!/bin/bash
step=1 #間隔的秒數(shù),不能大于60
for (( i = 0; i < 60; i=(i+step) )); do
$(php '/home/test.php')
sleep $step
done
exit 0
crontab最小執(zhí)行時(shí)間粒度為一分鐘,秒級的可以使用開啟一個(gè)死循環(huán)來不停獲取資料。
while(true){
file_get_contents('get_data_controller');
sleep(1);
}