我正在制作一项服务,其中从用户端请求 URL,该服务在 Linux 服务器中运行 PHP 脚本,PHP 脚本下载文件,处理它并将其邮寄到用户的电子邮件地址(它是 RSS FEED 到邮件服务)当一次只发送一个请求时一切都很好,但我尝试发送多个请求,它挂起了我的服务器,我不得不重新启动,我再次尝试,这次将其留了一夜,我发现文件已发送给所有请求,但在提出请求后 2 小时内发送。单个请求需要2分钟,2个请求应该需要4到5分钟,为什么需要2个小时。请帮助我了解发生了什么以及如何解决它?我正在使用 Calibre,并随时随地创建食谱,通过 url 提供信息,include prorssemail.php 是包含 PHPMailer 脚本的脚本,用于邮寄生成的文件!谢谢<?php$email = $_GET['email'];$url = $_GET['url'];$title = $_GET['title'];exec("mkdir /var/www/prorss/$email;cat > /var/www/prorss/$email/file.recipe << EOF#!/usr/bin/env python2# vim:fileencoding=utf-8from __future__ import unicode_literals, division, absolute_import, print_functionfrom calibre.web.feeds.news import AutomaticNewsRecipeclass BasicUserRecipe1597373876(AutomaticNewsRecipe): title = '$title' oldest_article = 1 max_articles_per_feed = 100 auto_cleanup = True feeds = [ ('$url') ]EOF");exec("ebook-convert /var/www/prorss/$email/file.recipe /var/www/prorss/$email/file.pdf &");include 'prorssemail.php';exec("rm -r /var/www/prorss/$email");?>
1 回答
凤凰求蛊
TA贡献1825条经验 获得超4个赞
最后我得到了解决方案,那就是添加
> /dev/null 2>&1 &
在电子书转换行的末尾。它的作用是将输出重定向到 null 并释放 php 文件,以便它可以排除另一个请求!
- 1 回答
- 0 关注
- 88 浏览
添加回答
举报
0/150
提交
取消