作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个由 Perl/CGI 应用程序控制的批量邮件调度程序,并且想学习 fork CGI 程序以运行单独任务的“好”方法?应该做吗?或者最好承担运行独立作业队列引擎的开销,例如 Gearman或 TheSchwartz一如既往suggested recently .当使用像 CGI::Application 这样的接近 MVC 的框架而不是 vanilla CGI.pm 时,答案/观点是否会发生变化?最后一个来自我想到的一个 CGI::Application Plugin 的可能项目 - 这将使“ fork ”过程调用起来相对简单。
最佳答案
看看 Proc::Daemon - 这是最简单的工作。从您的 CGI 脚本中,执行 CGI 业务(获取输入,向浏览器返回响应),然后调用 Proc::Daemon::init() 执行 fork 、守护进程并使父进程退出。然后您的脚本(现在是一个守护进程)执行其长时间运行的任务并在完成后退出。
在作为守护进程运行时,您需要更新某些内容(文件、数据库记录),以便后续的 CGI 调用可以检查它做了什么(或它是如何进行的)。
关于perl - 如何 fork Perl CGI 程序来分拆长时间运行的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/952132/
我是一名优秀的程序员,十分优秀!