V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
domino
V2EX  ›  PHP

PHP 数据采集超时怎处理?

  •  
  •   domino · 2016-06-03 02:02:26 +08:00 · 3347 次点击
    这是一个创建于 3089 天前的主题,其中的信息可能已经有所发展或是发生改变。
    设置 5 分钟跑一次数据采集入库,
    如果采集数据太多,5 分钟还没跑完,
    该怎禁止触发下一次 5 分钟执行呢?
    13 条回复    2016-06-07 04:57:12 +08:00
    jfcherng
        1
    jfcherng  
       2016-06-03 02:17:30 +08:00
    額外建立一個文件例如 working.lock ,採集前判斷此文件不存在,採集後刪除?
    msg7086
        2
    msg7086  
       2016-06-03 04:35:26 +08:00
    lincanbin
        3
    lincanbin  
       2016-06-03 09:31:24 +08:00
    拿 Memcached 设置个 Flag 不就好了?
    rekulas
        4
    rekulas  
       2016-06-03 09:35:23 +08:00
    @lincanbin 为什么我上各种网站都有你
    audi
        5
    audi  
       2016-06-03 09:37:33 +08:00
    @rekulas 其实这里都是我的马甲,不信我拿其他帐号回复给你看。
    jugelizi
        6
    jugelizi  
       2016-06-03 09:38:49 +08:00
    @rekulas 哈哈推特 乌云 V2EX 都能看见熟人
    lincanbin
        7
    lincanbin  
       2016-06-03 09:39:11 +08:00
    @rekulas 因为我无处不在啊。
    peter999
        8
    peter999  
       2016-06-03 09:52:26 +08:00
    @rekulas 我小号特多
    dapang1221
        9
    dapang1221  
       2016-06-03 10:21:50 +08:00
    你用什么来触发 php ?可以检测一下 php 的返回来判断是否下次继续触发,或者把 5 分钟改小,增加 php 的采集线程数,减少单线程的工作时间。用 memcached 设 flag 也不错,但是感觉为了这一个功能就上 memcached 有些大材小用,除非你们业务本身用到这玩意。。
    pubby
        10
    pubby  
       2016-06-03 10:27:32 +08:00
    也可以使用外部工具,比如 flock

    flock -x -w 300 /tmp/task.lock php task.php
    z5864703
        11
    z5864703  
       2016-06-03 18:12:15 +08:00
    为什么每五分钟跑,一直跑会有问题么?
    持久化处理+队列。应该就完全可以解决楼主的问题了,而且效率和可靠性更好
    wxg4net
        12
    wxg4net  
       2016-06-05 10:50:48 +08:00
    如果是 cron 定时执行的 请选择 dcron 类似的服务
    lslqtz
        13
    lslqtz  
       2016-06-07 04:57:12 +08:00 via iPhone
    放个文件 lock ,这个文件在就不执行,只要 php 不超时,入库完让其删掉文件,下次触发照样可以继续执行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2305 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:48 · PVG 09:48 · LAX 17:48 · JFK 20:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.