我一直在做一些研究,并试图找出运行我们网站之一的最佳方法。简而言之,将有大约 100 个子域,每个子域有 21 个需要运行的 cron 脚本。我通过使用一些可以使用它的 fopen 函数将它缩短到 11。每个子域使用相同的 API 来提取数据并将其存储在本地 mysql 数据库中。所有子域都有自己的数据库,并且不共享,并且这些数据库之间的信息永远不会重叠,因为它们都是唯一的数据。
我们打算将它托管在 VPS 托管上,我不确定这是否是最好的主意,但它应该可以满足我们的预期。这 11 个脚本的间隔是以下之一:
5分钟、8分钟、10分钟、15分钟、30分钟、45分钟、1小时、3小时、8小时、12小时、24小时
运行间隔小于 10 分钟的通常加载速度非常快(每个脚本不到 20 秒)
我的问题是,在没有...的情况下打开这么多脚本的最佳方法/最佳实践是什么? a.) 使服务器崩溃 b.) 将服务器放慢到荒谬的程度 c.) 不使我们的 cron 脚本超时。
我对方法的看法: 1) 总共创建 11 个 cron 脚本并运行 fopen 函数,每个脚本之间可能有一个 sleep() 函数。问题是每个脚本可能需要打开 100 个文件。 2) 创建 1100 个 cron 作业以在设定的时间运行。 3) 创建大约 110 个 fopen cron 脚本,每个文件将运行 10 个脚本。
如果有人可以提供提示或技巧,将不胜感激!
此外,对于服务器使用,是否需要专用或 VPS?
最佳答案
如果我没理解错的话,您可能想要设置 11 个 cron 脚本,并且这些 cron 脚本中的每一个都会依次调用其他所需的脚本。您可能不需要 sleep() 中间,因为它们会按顺序运行,而不是并行运行。为了减少服务器负载,您还可以使用“nice”命令使脚本以低优先级运行。
专用或 VPS 完全取决于您对服务器施加的负载量。 VPS 的性能也可能因提供商而异。从给出的信息中确实无法衡量。如果你想省钱,那么我会说就在 VPS 上试试吧。您以后可以随时转移到更昂贵的专用服务器。
关于php - 加载一千个 Cron 脚本的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13424600/