大家有没有 随机时间执行 PHP 脚本的好办法啊

2018-08-06 09:56:54 +08:00
 astome
2981 次点击
所在节点    PHP
8 条回复
alp
2018-08-06 09:58:30 +08:00
脚本定期执行。然后脚本里面随机 exit
ShuangFan
2018-08-06 10:07:03 +08:00
脚本 1 第一次启动随机一个未来时间存储下来,脚本 2 单独定期执行检测所存储的未来时间,直到到达定期时间执行需要的操作,然后 1 重新获取一个未来时间存储。
ps:我不懂 php 啦,只是提供一个想法
tianyou666shen
2018-08-06 10:26:25 +08:00
仅供参考 timedTask.php

1 .当前时间往后生成随机时间 存入 mysql 脚本类似于

while( true ){

timedTask();

}

function timedTask(){

if( startTime <= time() ){

//your code



//生成下个随机时间

nextTime = time() + rand(xx,xxx);

//写入 mysql 一条记录

}else{

sleep(30); //一定误差 时间越短越随机 消耗越大

}


}

2.linux 执行脚本

# nohup php timedTask.php & //脚本设为后台进程 忽略登出讯号
twor
2018-08-06 10:26:45 +08:00
1L 靠谱
linpf
2018-08-06 15:41:08 +08:00
真正的随机就是 3L 的常驻进程

但是 1L 的伪随机也是一个不错的办法。
chq3272991
2018-08-08 09:47:54 +08:00
赞同一楼,crontab 定期进入 php 脚本,然后脚本内等待一定时间(随机)再执行
jason56
2018-08-09 17:09:48 +08:00
如果你用在一个需要特别稳定的场景,建议用 swoole task
ksharp8
2018-08-24 09:40:10 +08:00
用 rand+crontab

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/477159

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX