我有兴趣听听关于这种情况下 Apache Web 服务器最佳配置的意见。
我有许多脚本(PHP),它们以固定的时间间隔运行,大多数脚本都同时运行,或者通过 cron 作业以相同的时间间隔运行。
当我放入越来越多的这些脚本(称为网页并以 PHP 编写)时,我有点担心我可能会开始“丢失”其中的一些,因为它们都是一起触发的。
由于“没有人”实际上看到它们,也没有等待这些页面加载(几秒钟的延迟不是问题),我想知道 apache2.conf 上的哪些设置可以确保所有这些页面调用都得到实际处理(即使有几秒钟的延迟)而不是 Apache 在无法在一定时间段内处理它们时将它们丢弃(与浏览 Web 服务器的人正在查看的标准 html/php 页面相反,这些只是执行没有人真正等待的脚本的页面)。
我的理想解决方案是,它们(通过 cron 调用的页面)只是堆叠并逐个处理,直到下一批被调用或在更安静的时期,而不是 apache 因为它们在特定时间范围内没有执行而杀死它们。
当然,我明白,如果他们排队的时间比下一批货物运行的时间还要长,那么我就会遇到问题。
同样,我如何查看 apache 已排队的内容或正在处理的页面?
先感谢您。
答案1
如果您可以访问 cron,我认为在这种情况下没有必要使用 Apache。您不需要提供页面,显然您只需要执行代码。
为什么不简单地尝试一下这样的事情呢?
#!/usr/bin/env php
<?php
[Your code here.
Perhaps even send e-mail updates
including with the status of your script,
or update a lightweight database each time
the script has run.]
只需将此脚本保存为 /path/to/script.php,然后在 crontab 中调用php /path/to/script.php
(或者简单地./path/to/script.php
使用 为文件添加执行权限chmod +x
),就可以完成这项工作并节省大量 Apache 开销。