4

我正在编写一个从 Perl/CGI 应用程序控制的批量邮件调度程序,并且想学习派生 CGI 程序以运行单独任务的“好”方法?一个人应该这样做吗?或者像最近建议的那样,忍受运行像GearmanTheSchwartz这样的单独作业队列引擎的开销会更好。在 vanilla CGI.pm 上使用像 CGI::Application 这样的近 MVC 框架时,答案/观点是否会改变?最后一个来自我为 CGI::Application Plugin 考虑的一个可能的项目——这将使“分叉”一个过程相对容易调用。

4

2 回答 2

9

看看 Proc::Daemon - 这是最简单的工作。从您的 CGI 脚本中,执行 CGI 业务(获取输入,向浏览器返回响应),然后调用 Proc::Daemon::init() 来执行 fork、守护进程并使父进程退出。然后您的脚本(现在是一个守护进程)执行其长时间运行的任务并在完成后退出。您需要在作为守护进程运行时更新某些内容(文件、数据库记录),因此后续的 CGI 调用可以检查它做了什么(或者它是如何进行的)。

于 2009-06-05T10:13:26.780 回答
0

POE之类的东西有用吗?它比分叉更受事件驱动,但它可能满足您的需求。

于 2009-06-04T23:11:29.443 回答