suchen

Heim  >  Fragen und Antworten  >  Hauptteil

python - 我有个秒级任务 怎么处理 linux 的crond服务 最少是1分钟 php

我需要实时接收一个数据去处理,必须是秒级,怎么处理呢

習慣沉默習慣沉默2794 Tage vor625

Antworte allen(4)Ich werde antworten

  • 習慣沉默

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

    如果系统使用systemd的话可以利用systemd.timer设置秒甚至毫秒级定时任务。
    具体参考:这里

    Antwort
    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  

    Antwort
    0
  • 我想大声告诉你

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

    crontab处理不了秒级的, 你只能用常驻进程去解决了

    Antwort
    0
  • 天蓬老师

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

    crontab最小执行时间粒度为一分钟,秒级的可以使用开启一个死循环来不停获取数据。
    while(true){
    file_get_contents('get_data_controller');
    sleep(1);
    }

    Antwort
    0
  • StornierenAntwort