PHP 数据采集超时怎处理?

2016 年 6 月 3 日
 domino
设置 5 分钟跑一次数据采集入库,
如果采集数据太多,5 分钟还没跑完,
该怎禁止触发下一次 5 分钟执行呢?
3820 次点击
所在节点    PHP
13 条回复
jfcherng
2016 年 6 月 3 日
額外建立一個文件例如 working.lock ,採集前判斷此文件不存在,採集後刪除?
msg7086
2016 年 6 月 3 日
lincanbin
2016 年 6 月 3 日
拿 Memcached 设置个 Flag 不就好了?
rekulas
2016 年 6 月 3 日
@lincanbin 为什么我上各种网站都有你
audi
2016 年 6 月 3 日
@rekulas 其实这里都是我的马甲,不信我拿其他帐号回复给你看。
jugelizi
2016 年 6 月 3 日
@rekulas 哈哈推特 乌云 V2EX 都能看见熟人
lincanbin
2016 年 6 月 3 日
@rekulas 因为我无处不在啊。
peter999
2016 年 6 月 3 日
@rekulas 我小号特多
dapang1221
2016 年 6 月 3 日
你用什么来触发 php ?可以检测一下 php 的返回来判断是否下次继续触发,或者把 5 分钟改小,增加 php 的采集线程数,减少单线程的工作时间。用 memcached 设 flag 也不错,但是感觉为了这一个功能就上 memcached 有些大材小用,除非你们业务本身用到这玩意。。
pubby
2016 年 6 月 3 日
也可以使用外部工具,比如 flock

flock -x -w 300 /tmp/task.lock php task.php
z5864703
2016 年 6 月 3 日
为什么每五分钟跑,一直跑会有问题么?
持久化处理+队列。应该就完全可以解决楼主的问题了,而且效率和可靠性更好
wxg4net
2016 年 6 月 5 日
如果是 cron 定时执行的 请选择 dcron 类似的服务
lslqtz
2016 年 6 月 7 日
放个文件 lock ,这个文件在就不执行,只要 php 不超时,入库完让其删掉文件,下次触发照样可以继续执行。

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

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

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

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

© 2021 V2EX