我需要实时接收一个数据去处理,必须是秒级,怎么处理呢
如果系统使用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);
}