php - 加载一千个 Cron 脚本的最佳方法

标签 php mysql scripting cron hosting

我一直在做一些研究,并试图找出运行我们网站之一的最佳方法。简而言之,将有大约 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/

相关文章:

破折号的 PHP preg_replace 正则表达式

mysql - 在具有频繁写入和全文列的大表上优化 mySQL 数据库?

php - 创建一个循环来检查多个表并根据值对结果进行计数

scripting - 实用程序脚本使用什么脚本语言?

php - "mobile"- 博客 - 任何想法/现有解决方案?

php - 异步连接MySQL服务器

php - DOMDocument XPath 查询以获取类名和标签值

php - php md5() 命令和 Linux md5pass 命令的区别

mysql - 如何匹配两个表之间varchar字段中的字符串

vba - 在调用 .add() 之前添加项目的字典对象