设置 5 分钟跑一次数据采集入库,
如果采集数据太多,5 分钟还没跑完,
该怎禁止触发下一次 5 分钟执行呢?
如果采集数据太多,5 分钟还没跑完,
该怎禁止触发下一次 5 分钟执行呢?

1 jfcherng Jun 3, 2016 外建立一文件例如 working.lock ,集前判此文件不存在,集後除? |
2 msg7086 Jun 3, 2016 |
3 lincanbin Jun 3, 2016 拿 Memcached 设置个 Flag 不就好了? |
9 dapang1221 Jun 3, 2016 你用什么来触发 php ?可以检测一下 php 的返回来判断是否下次继续触发,或者把 5 分钟改小,增加 php 的采集线程数,减少单线程的工作时间。用 memcached 设 flag 也不错,但是感觉为了这一个功能就上 memcached 有些大材小用,除非你们业务本身用到这玩意。。 |
10 pubby Jun 3, 2016 也可以使用外部工具,比如 flock flock -x -w 300 /tmp/task.lock php task.php |
11 z5864703 Jun 3, 2016 为什么每五分钟跑,一直跑会有问题么? 持久化处理+队列。应该就完全可以解决楼主的问题了,而且效率和可靠性更好 |
12 wxg4net Jun 5, 2016 如果是 cron 定时执行的 请选择 dcron 类似的服务 |
13 lslqtz Jun 7, 2016 via iPhone 放个文件 lock ,这个文件在就不执行,只要 php 不超时,入库完让其删掉文件,下次触发照样可以继续执行。 |