【问题标题】:Disadvantage to running scheduled jobs directly in clock process?直接在时钟进程中运行计划作业的缺点?
【发布时间】:2019-08-10 02:53:23
【问题描述】:

我正在开发一个网络应用程序,其主要功能包括每周一的每周一运行预定的作业。为此,我使用了 APscheduler 和每周运行的时钟进程。 Heroku recommends 您只使用时钟进程来安排作业并使用单独的工作人员测功机来实际执行作业:

...重要的是要注意,由于时钟进程文章中已经介绍的原因,不应在时钟进程本身中完成任何工作。而是安排一个后台作业,该作业将执行从时钟进程调用的实际工作。

但是,我也只使用免费套餐,这意味着除了我的网络测功机之外,我只能拥有一个测功机。那么在时钟进程中执行实际工作是否真的有缺点呢?

其他答案说该建议仅用于“最佳实践”,因为长时间运行的作业可能会推迟调度程序并阻止其他作业被调度。但是,我只有一份工作,预计最多需要五分钟左右,并且每周只执行一次。

感谢任何建议!

【问题讨论】:

    标签: heroku


    【解决方案1】:

    我向 Heroku 支持人员提出了这个问题,这是他们给我的答案:

    你是对的,这被认为是最佳实践。但是,对于运行您正在做的小型应用程序来说会很好。请注意,这样做是不可扩展的。最终,一旦您有许多作业必须运行调度程序,它将花费更多时间来完成工作,而不是保持计划。一旦发生这种情况,工作就会开始被错过或推迟。这就是为什么最好让调度程序/时钟进程独立于执行实际工作的进程。

    TL;DR : 如果工作不会阻止时钟进程实际调度作业,那么在时钟进程中进行工作是可以的。但这是不可扩展的,应该避免大型项目。

    【讨论】:

      猜你喜欢
      • 2019-08-05
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      相关资源
      最近更新 更多