当前位置: 首页 > 面试题库 >

cron如何在内部安排工作?

贾骏喆
2023-03-14
问题内容

“现代” cron守护程序如何在 内部
安排作业?有些人crond经常通过来安排一次跑步at。因此,在写出crontab之后,会执行以下操作crond

  1. 解析crontab以了解所有将来的事件,并hibernate间隔时间?
  2. 每分钟轮询一次汇总的crontab数据库,以确定当前时间是否与计划模式匹配?
  3. 其他?

谢谢,


问题答案:

在这个问题上听到了几声。不错的RTFC,其中包含一些离散事件模拟论文和Wikipedia:

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

此cron使用的算法如下:

  1. 启动时,在所有帐户持有者的主目录中查找名为.crontab的文件。
  2. 对于找到的每个crontab文件,确定将来要运行每个命令的下一次时间。
  3. 将这些命令及其相应的时间和“五个字段”时间说明符放在Franta-Maly事件列表中。
  4. 输入主循环:
    1. 检查队列开头的任务条目,计算将来要运行多长时间。
    2. 睡眠一段时间。
    3. 唤醒时以及验证正确的时间后,请使用创建队列的用户的权限在队列的开头(在后台)执行任务。
    4. 确定将来要运行此命令的下一次,并将其放回事件列表中



 类似资料:
  • 问题内容: 我正在阅读有关Java中并发性的Oracle官方文档,但我想知道返回的返回值之间可能有什么区别? 并使用例如 。我假设我用一个。我知道,一般而言,同步集合对于我来说只是一个装饰器,因此很明显a 的内部结构有所不同。您是否有关于这些实施细节的信息? 编辑:我意识到源代码是公开可用的: ConcurrentHashMap.java 问题答案: 我会阅读ConcurrentHashMap的源

  • 问题内容: 我正在使用Eclipse服务器功能进行热代码部署。使用tomcat作为Web服务器。但是我不确定它是如何工作的。我有自己的理解,它必须如何在内部工作。 我的理解:- 当开发人员更改代码(例如,类Employee)时,Eclipse将在正确的位置(必须是特定的Web /应用服务器,将其称为热部署目录(HDD))放置/发布修改后的已编译类。 。现在将显示Web服务器特定的类加载器。它在HD

  • 我希望为每个月的特定日期集安排气流作业,例如每月的第11天和最后一天,并使用以下调度程序表达式 当我在https://crontab.guru/和http://cron.schlitt.info/验证上述内容时,我被告知该表达式无效。 有没有可能在每个月的已知和未知(这里是最后一天)一起安排?如果没有,有没有其他方法来实现这一点?

  • 问题内容: 该功能在内部如何工作?考虑到内核确实具有访问用户内存空间的特权,它是否使用任何缓冲区还是完成了任何内存映射? 问题答案: 的实现高度依赖于体系结构。 在x86和x86-64上,它只是直接从用户空间地址进行读取并写入内核空间地址,同时如果已配置,则暂时禁用SMAP(超级用户模式访问阻止)。它的棘手部分是将代码放置在特殊区域中,以便页面错误处理程序可以识别其中何时发生错误。发生的内存保护错

  • 考虑这样一种情况:将原型范围的bean注入到单例范围的bean中, 当我们尝试使用单例范围的bean访问原型范围的bean时,每次返回的都是相同的bean,即在单例初始化时注入的bean。 如果我们希望每次使用作用域代理时获得不同的实例。 我不知道这个作用域代理是如何在stage后面工作的,以及它是如何神奇地给我们提供一个新实例的,即使bean存在于单例中。

  • 问题内容: “类(及其子类)的每个实例都具有一个锁,该锁在方法进入时获得,并在退出时自动释放” 这是否意味着我们创建的任何对象实例默认情况下内部都具有“锁”(实现为字段)? 我对这个“锁”概念感到困惑,我想知道它实际上在内部做什么。 有人可以将我引导到一些我可以找到更多信息的地方吗? 问题答案: 与往常一样,JLS提供了答案(17.1): 这些方法中最基本的是同步,它是使用监视器实现的。Java中