代码之家  ›  专栏  ›  技术社区  ›  Jé Queue

cron如何在内部安排作业?

  •  35
  • Jé Queue  · 技术社区  · 14 年前

    如何“现代” cron 守护进程 内部的 安排他们的工作?一些 crond 过去常常通过 at . 所以在一个crontab被写出来之后, 周期任务 :

    1. 分析crontab中的所有未来事件和睡眠时间间隔?
    2. 每分钟轮询一个聚合的crontab数据库,以确定当前时间是否与计划模式匹配?
    3. 其他?

    谢谢,

    1 回复  |  直到 8 年前
        1
  •  50
  •   Kenan Banks    8 年前

    有几只蟋蟀听到这个问题。很好的“ol rtfc”,有一些离散事件模拟论文和维基百科:

    http://en.wikipedia.org/wiki/Cron#Multi-user_capability

    这个cron使用的算法是 跟随:

    1. 启动时,在的主目录中查找名为.crontab的文件 所有账户持有人。
    2. 对于找到的每个crontab文件,确定下次 每个命令都要运行。
    3. 将这些命令与它们的 对应时间及其“五” 字段“时间说明符。
    4. 输入主循环:
      1. 检查队列头部的任务条目,计算 未来它将运行。
      2. 在这段时间里睡觉。
      3. 在唤醒并验证正确时间后,在以下位置执行任务: 队列的头(在后台) 具有以下用户的权限: 创造了它。
      4. 确定下次运行此命令并放置 当时它又回到了事件列表上