搜尋

首頁  >  問答  >  主體

python - 我有個秒任務 怎麼處理 linux 的crond服務 最少是1分鐘 php

我需要即時接收一個資料去處理,必須是秒級,要怎麼處理呢

習慣沉默習慣沉默2795 天前630

全部回覆(4)我來回復

  • 習慣沉默

    習慣沉默2017-05-16 13:03:44

    如果系統使用systemd的話可以利用systemd.timer設定秒甚至毫秒定時任務。
    具體參考:這裡

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:03:44

    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  

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:03:44

    crontab處理不了秒級的, 你只能用常駐進程去解決了

    回覆
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:03:44

    crontab最小執行時間粒度為一分鐘,秒級的可以使用開啟一個死循環來不停獲取資料。
    while(true){
    file_get_contents('get_data_controller');
    sleep(1);
    }

    回覆
    0
  • 取消回覆