gpt4 book ai didi

PHP - 长时间运行的后台任务

转载 作者:可可西里 更新时间:2023-11-01 12:27:50 25 4
gpt4 key购买 nike

我目前正在尝试根据我可用的内容在 demenad 上生成 epub。不幸的是,当 epub 有很多内容时,http 请求需要一段时间(在某些情况下需要 10 分钟)才能完成——这并不理想

我想遵循类似于 Safari 的方法- 生成 epub 并在文档可用时通过电子邮件发送给用户

我的问题是 - 在 PHP 中运行可能需要很长时间才能完成的后台任务/线程的最佳方式是什么

最佳答案

您要小心处理长时间运行的 PHP 进程,因为 PHP 的内存效率不是很高(例如,PHP 中只有 100 个整数的数组会消耗多达 15KB 的内存)。这对于 99% 的用例来说通常都没有问题,因为大多数人只是在网站上使用 PHP,而这些进程运行的时间只有几分之一秒,因此为了速度而牺牲了内存。但是,对于长时间运行的流程(尤其是如果您有很多流程),这可能不是您的最佳解决方案。

您还需要非常小心地调用 PHP 中的 exec/shell_exec 之类的函数,因为它们在内部实现为流(即它们可能导致父进程阻塞,因为它通常必须等待流返回数据)。

后台任务的一个选项是使用 fork .但是,我强烈建议使用像 gearman 这样的合适的作业管理器。 (另见 php extensions),或队列,如 amqpzmq , 来更干净地处理这些任务。哪一个更适合您的用例,我会让您决定。

关于PHP - 长时间运行的后台任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13802681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com