0

我在一个共享的虚拟主机上有一个 PHP 脚本,它从大约 300 个“提要”中选择过去半小时内未更新的 40 个,发出 cURL 请求,然后将其传递给用户。

SELECT * FROM table WHERE latest_scan < NOW() - INTERVAL 30 MINUTE ORDER BY latest_scan ASC LIMIT 0, 40;
// Make cURL request and process it

我希望能够尽快交付更新但不想让我的服务器或我从中获取的服务器陷入困境(它只是少数)。

我应该多久运行一次 cron 作业,我应该限制每次运行的获取次数吗?给多少?

4

2 回答 2

1

“评估”每个提要实际更改的频率是一件好事,因此如果某项更改的平均时间为 24 小时,那么您只需每 12 小时获取一次。

只需存储#changes 和#try's 并选择您需要检查的那些...您可以每分钟运行一次脚本,然后让一些统计数据完成剩下的工作!

于 2009-01-04T19:18:56.047 回答
0

在共享主机上,您可能还会遇到脚本运行时问题。例如,如果您的脚本运行时间超过 30 秒,服务器可能会终止。如果您的主机属于这种情况,您可能需要进行一些测试/记录处理每个提要所需的时间,并在确定应该同时处理多少提要时考虑到这一点。

为了解决这个问题,我必须做的另一件事是在处理每个单独的请求之前将“上次扫描”标记为已更新,这样问题提要就不会继续失败并在每次 cron 运行时被拾取。如果需要,您可以在失败时再次更新条目并指定失败发生的原因(如果已知)。

于 2009-01-04T19:23:56.660 回答