首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创造cron就业

创造cron就业
EN

Stack Overflow用户
提问于 2013-07-31 00:30:22
回答 2查看 101关注 0票数 0

我试图安排一个进程,我将它保存在一个包含运行所需日期时间的表中。

我只是不知道该如何处理,是为每个用户创建的进程创建一个条目,还是只创建一个条目,每X分钟运行一个脚本,检查数据库中应该运行的进程,并运行它们?

编辑:,我正在寻找每种方法的优缺点,并从任何处理过任务调度的人那里寻找指导。我也想让它独立于平台,但这不是一个要求。我目前正在开发一台linux机器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-31 00:44:50

您可能希望首先定义几个属性的需求(或不需要):

  • 抗毁脚本能力
  • 锁(如果需要的话)(单实例脚本)
  • 易于管理
  • 跟随依赖项的可能性(A必须在B之前运行)
  • 能够在没有手动干预的情况下启动
  • 不需要后台进程的交互性能

考虑到这些,我通常使用以下方案:

  • 创建一个操作系统级别的调度器滴答,它每n秒钟运行一个工作脚本(Cron,Windows调度器,什么的)。这将是您唯一特定于平台的部分。
  • 如果OS级调度程序太粗糙,请安排一个包装脚本,该脚本会启动usleep()安排的工作脚本几次,直到达到OS级别的粒度为止。
  • 在worker脚本中,首先要做簿记:编写一个标记文件,或者,如果它存在,就检查它是否为陷入停滞的工人死锁,可能会在出错时发出警报。
  • 在此之后,开始一个循环:
    • 排齐一个工作项(依赖项和序列放在这里),将其标记为已启动

    • 运行此工作项,将其标记为完整。

    • 更新您的标记文件以显示您的进度

  • 当完成时,杀死您的标记文件并结束

对于一些只进行民意测验的工作负载,这种方法我已经取得了很好的效果。

编辑

忘记一个:如果您想要并行,只需同时启动可并行的工作项即可。

票数 1
EN

Stack Overflow用户

发布于 2013-07-31 00:34:54

我认为您应该为每个用户创建的进程创建一个条目,因此它们“繁重”的工作是由cron完成的,而cron就是为此创建的。此外,另一种方法需要您运行脚本,在足够小的时间内检查DB,以便任何用户创建的进程都能按计划运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17959697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档