【问题标题】:whether to use job scheduler or sleep() function是否使用作业调度程序或 sleep() 函数
【发布时间】:2012-06-04 02:29:26
【问题描述】:

我很困惑是在程序本身中使用 cron 作业调度程序还是使用睡眠功能。以前对此有疑问,但我似乎对它们有一些不同的要求。

我需要一些来自上次运行程序的信息,所以如果我使用 cron 来安排 工作我将不得不将该信息存储在某个地方并下次重新读取(如果此信息的大小增加,这可能会使程序的可扩展性降低)。 我也可以使用 sleep() 但这将使用资源。

我需要每 10 分钟左右重新运行一次程序。哪个更好用。 还有其他我可能会错过的好方法吗?

【问题讨论】:

    标签: cron sleep


    【解决方案1】:

    一般来说,你应该尽可能地使用 cron 来完成这样的事情。

    我能预见的唯一问题是,如果您的程序运行时间超过 10 分钟,cron 无论如何都会在 10 分钟后调用下一次执行。这基本上会产生一个非常长的竞争条件,如果您确实睡眠,它只会在上一次执行结束后开始睡眠。

    但假设你的程序运行时间会更短,我建议你使用 cron。

    【讨论】:

    • 我们可以给corn添加条件,只在前一个完成时才执行一个计划。
    • true,所以实际上它只取决于您要加载到 RAM 中并保留在那里的信息量。您的主要关注点似乎在于性能,因此我们需要有关系统的更多详细信息(规格、正在运行的其他设备、您计划运行多长时间)才能为您提供良好的性能估计
    • 我处于类似情况,cron 解决方案对我来说似乎更有弹性。我错了吗?
    猜你喜欢
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多