V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
johnsneakers
V2EX  ›  问与答

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

  •  
  •   johnsneakers · 2014-10-22 00:44:41 +08:00 · 2590 次点击
    这是一个创建于 3687 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1.每天凌晨3点-4点, 会依次跑各种比较耗资源的脚本,平均每个脚本3-5分钟。

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

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

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

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

    使用单个线程来处理队列是个可行的办法。
    我会选择把这些脚本依次写在一个sh中,每日3点调用这个sh就行了
    lecher
        4
    lecher  
       2014-10-22 01:17:40 +08:00
    要看执行的是哪类占用资源的
    磁盘io?内存?cpu?
    肯定是要串行执行的了,既然用php管理,那就用php监控状态,开个mysql存状态和执行队列,crontab定时用调用php检测状态,进程减少了或者负载下去的时候再执行下一个队列。
    这样够保险了吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   901 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:28 · PVG 05:28 · LAX 13:28 · JFK 16:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.