domino
V2EX  ›  PHP

PHP 数据采集超时怎处理?

  •  
  •   domino · Jun 3, 2016 · 4292 views
    This topic created in 3809 days ago, the information mentioned may be changed or developed.
    设置 5 分钟跑一次数据采集入库,
    如果采集数据太多,5 分钟还没跑完,
    该怎禁止触发下一次 5 分钟执行呢?
    13 replies  •  2016-06-07 04:57:12 +08:00
    jfcherng
    jfcherng
    Jun 3, 2016
    1
    額外建立一個文件例如 working.lock ,採集前判斷此文件不存在,採集後刪除?
    lincanbin
    lincanbin
    Jun 3, 2016
    3
    拿 Memcached 设置个 Flag 不就好了?
    rekulas
    rekulas
    Jun 3, 2016
    4
    @lincanbin 为什么我上各种网站都有你
    audi
    audi
    Jun 3, 2016
    5
    @rekulas 其实这里都是我的马甲,不信我拿其他帐号回复给你看。
    jugelizi
    jugelizi
    Jun 3, 2016
    6
    @rekulas 哈哈推特 乌云 V2EX 都能看见熟人
    lincanbin
    lincanbin
    Jun 3, 2016
    7
    @rekulas 因为我无处不在啊。
    peter999
    peter999
    Jun 3, 2016
    8
    @rekulas 我小号特多
    dapang1221
    dapang1221
    Jun 3, 2016
    9
    你用什么来触发 php ?可以检测一下 php 的返回来判断是否下次继续触发,或者把 5 分钟改小,增加 php 的采集线程数,减少单线程的工作时间。用 memcached 设 flag 也不错,但是感觉为了这一个功能就上 memcached 有些大材小用,除非你们业务本身用到这玩意。。
    pubby
    pubby
    Jun 3, 2016
    10
    也可以使用外部工具,比如 flock

    flock -x -w 300 /tmp/task.lock php task.php
    z5864703
    z5864703
    Jun 3, 2016
    11
    为什么每五分钟跑,一直跑会有问题么?
    持久化处理+队列。应该就完全可以解决楼主的问题了,而且效率和可靠性更好
    wxg4net
    wxg4net
    Jun 5, 2016
    12
    如果是 cron 定时执行的 请选择 dcron 类似的服务
    lslqtz
    lslqtz
    Jun 7, 2016 via iPhone
    13
    放个文件 lock ,这个文件在就不执行,只要 php 不超时,入库完让其删掉文件,下次触发照样可以继续执行。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1657 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 11:37 · PVG 19:37 · LAX 03:37 · JFK 06:37
    ♥ Do have faith in what you're doing.