我需要即時接收一個資料去處理,必須是秒級,要怎麼處理呢
如果系統使用systemd的話可以利用systemd.timer設定秒甚至毫秒定時任務。 具體參考:這裡
systemd.timer
crontab預設最小單位是分,但是也可以用一些取巧的方式實現。例如,每10秒執行一次:
* * * * * 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
每秒的話,也可以上述方式實現,但是就很多了,不建議,因此用個shell腳本是比較好的選擇。
#!/bin/bash step=1 #间隔的秒数,不能大于60 for (( i = 0; i < 60; i=(i+step) )); do $(php '/home/test.php') sleep $step done exit 0
crontab處理不了秒級的, 你只能用常駐進程去解決了
crontab最小執行時間粒度為一分鐘,秒級的可以使用開啟一個死循環來不停獲取資料。 while(true){file_get_contents('get_data_controller');sleep(1);}
如果系統使用systemd的話可以利用
systemd.timer
設定秒甚至毫秒定時任務。具體參考:這裡
crontab預設最小單位是分,但是也可以用一些取巧的方式實現。例如,每10秒執行一次:
每秒的話,也可以上述方式實現,但是就很多了,不建議,因此用個shell腳本是比較好的選擇。
crontab處理不了秒級的, 你只能用常駐進程去解決了
crontab最小執行時間粒度為一分鐘,秒級的可以使用開啟一個死循環來不停獲取資料。
while(true){
file_get_contents('get_data_controller');
sleep(1);
}