【问题标题】:How do I schedule one-time tasks from a Perl CGI application?如何从 Perl CGI 应用程序安排一次性任务?
【发布时间】:2009-06-03 01:59:58
【问题描述】:

我正在编写一个应用程序,允许用户从 Web 应用程序(Linux/Apache/CGI::Application)安排一次性长时间运行的任务。为此,我使用Schedule::At 模块,它是“at”命令的Perl 接口。由于计划任务不重复,我不考虑“cron”。我对“at”有两个问题:

  1. 当我的 CGI 应用程序在 suexec 包装器下运行时,调度工作正常,但在由 Apache 进程的所有者调度时却不行。如何让调度在两种环境(suexec 和 no-suexec)中工作?
  2. “at”或Schedule::At 调度的进程似乎没有失败报告,我有时会发现调度的任务会静默失败。有没有办法记录计划任务(而不是计划程序本身)未能运行的事实?

我不拘泥于“at”,并且愿意使用其他更强大的调度方法(如果有的话)。

感谢您的关注。

【问题讨论】:

    标签: perl cgi scheduling at-job


    【解决方案1】:

    我听说过关于 The Schwartz 的好消息。它没有延迟——直到;您可以通过 at 提交作业,但这应该可以解决您上面列出的两个问题,只要您的 submit_job 脚本很简单。

    (需要注意的是,我只使用了Gearman,我认为您需要一个可靠的作业队列,一种“即发即弃”机制,这样您就可以让您的 submit_job 保持沉默。)

    【讨论】:

    • 感谢 Gearman 的提示。乍一看,这似乎正是我所需要的。
    • 在仔细研究了 Gearman 和 Schwartz 之后,我发现 Beanstalk 是解决我的问题的最合适的方法。感谢您的提示。
    猜你喜欢
    • 2017-01-01
    • 2010-09-30
    • 2011-01-30
    • 2018-05-02
    • 1970-01-01
    • 2017-02-17
    • 2015-07-27
    • 2020-03-02
    • 2013-02-12
    相关资源
    最近更新 更多