首頁  >  問答  >  主體

linux定时任务如何每隔0.5秒执行一次呢?

求一个例子!!!linux定时任务如何每隔0.5秒执行一次呢?

天蓬老师天蓬老师2743 天前922

全部回覆(8)我來回復

  • PHP中文网

    PHP中文网2017-04-17 12:08:47

    * * * * * for i in `seq 120`; do awesome_scripts& sleep 0.5; done
    

    由crontab每分鐘調度,每次喚起,循環執行120次,間隔0.5秒

    回覆
    0
  • 黄舟

    黄舟2017-04-17 12:08:47

    由於 crontab 最小單位是分鐘,只能自己寫程式執行了。給個 shell + python 的範例:

    while true ; do ./your-script & ; python -c "import time;time.sleep(0.5)"; done
    

    或 python + shell:

    import time
    from subprocess import call
    while(True):
        call(["./your-script"])
        time.sleep(0.5)
    

    沒有 linux 所以沒有親測,大概就是這麼個思路

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 12:08:47

    watch
    watch -n 0.5 date試試看

    回覆
    0
  • 迷茫

    迷茫2017-04-17 12:08:47

    windows機器不方便試,大概這樣的

    #!/bin/bash
    for i in {1..120}
    do
      usleep 500
      RUN_YOUR_TASK&
    done
    

    用usleep睡半秒,持續一分鐘,結合cron就行了

    回覆
    0
  • 阿神

    阿神2017-04-17 12:08:47

    沒找到啊。只能到分鐘級別,秒都到不了。

    回覆
    0
  • 阿神

    阿神2017-04-17 12:08:47

    還是說說你的使用場景

    回覆
    0
  • 黄舟

    黄舟2017-04-17 12:08:47

    crontab 最短定義只能到分鐘,只能用腳本sleep 來完成

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 12:08:47

    以上所有方法,放在linux上執行時,會出一個坑,出現多個進程.
    因為若遇到延時,超出60秒後,第二個定時任務啟動.就會出現多個進程.
    解決方法,加上檔案鎖定/usr/bin/flock

    回覆
    0
  • 取消回覆