微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何分叉Perl CGI程序以解决长时间运行的任务?

我正在编写一个由Perl / CGI应用程序控制的Bulk Mail调度程序,并希望学习“好”的方法来分叉CGI程序来运行单独的任务?一个人应该这样做吗?或者更好地承受像 suggested recently那样运行像 GearmanTheSchwartz这样的单独作业队列引擎的开销.当使用像CGI :: Application这样的近MVC框架而不是vanilla CGI.pm时,答案/透视是否会改变?最后一个来自我想到的CGI :: Application Plugin的可能项目 – 这将使“分叉”过程相对简单.

解决方法

看看Proc :: Daemon – 它是最简单的东西.从您的CGI脚本,执行CGI业务(获取输入,返回对浏览器的响应),然后调用Proc :: Daemon :: init()执行fork,守护您的进程并使父进程退出.然后你的脚本(现在是一个守护进程)执行其长时间运行的任务,并在完成后退出. 您希望在作为守护程序运行时更新某些内容(文件,数据库记录),因此后续的CGI调用可以检查它的作用(或它的进展情况).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐