johnsneakers
V2EX  ›  问与答

crontab 里面大大小小的脚本过多怎么办

  •  
  •   johnsneakers · Oct 22, 2014 · 3054 views
    This topic created in 4314 days ago, the information mentioned may be changed or developed.
    1.每天凌晨3点-4点, 会依次跑各种比较耗资源的脚本,平均每个脚本3-5分钟。

    2.每分钟,都会执行一些低消耗脚本,平均1-4秒。

    目前已实现用PHP管理所有需要跑的脚本(crontab里面只用写我这个crontab管理器:
    * * * * * 我的脚本管理.php)

    现在问题是,如果脚本都在一个时刻执行,负载就上去了。

    我书读得少,所以我打算这样做:
    开两条线程,一条做队列来跑那些消耗大的脚本,另外一条就跑那些正常没有大消耗的脚本。
    (这个想法只是我异想天开想出来的,我是渣渣,有大神帮我指点下吗)
    4 replies    2014-10-22 01:17:40 +08:00
    yangqi
        1
    yangqi  
       Oct 22, 2014
    不太明白你是想解决什么问题。。。
    johnsneakers
        2
    johnsneakers  
    OP
       Oct 22, 2014
    @yangqi 哎,我就知道我这个描述得肯定大多数人是看不明白的,其实就是想解决同一时刻crontab里面脚本执行太多影响机器性能问题
    incompatible
        3
    incompatible  
       Oct 22, 2014   ❤️ 1
    你的目标很简单,就是让占用资源高的脚本串行执行

    使用单个线程来处理队列是个可行的办法。
    我会选择把这些脚本依次写在一个sh中,每日3点调用这个sh就行了
    lecher
        4
    lecher  
       Oct 22, 2014
    要看执行的是哪类占用资源的
    磁盘io?内存?cpu?
    肯定是要串行执行的了,既然用php管理,那就用php监控状态,开个mysql存状态和执行队列,crontab定时用调用php检测状态,进程减少了或者负载下去的时候再执行下一个队列。
    这样够保险了吧。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   969 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:18 · PVG 03:18 · LAX 12:18 · JFK 15:18
    ♥ Do have faith in what you're doing.