首页 > 解决方案 > 在服务器上安排数千个任务 [PHP 脚本]

问题描述

假设一个网站需要每 5 分钟显示一次更新的内容。当然,我们可以使用 cron 作业来安排 PHP 脚本,例如

$weather = file_get_contents("https://weather.com/country/state/city/day/hour/minute.json");
$upload_to_database = send_data_to_db();

假设这个简单的脚本获取数据并将其发送到 MYSQL,然后通过每隔几分钟使用 AJAX 获取数据或在分析数据后发送通知等方式将数据显示在前端......

现在,如果我们有成千上万个城市会怎样。如何自动为这些城市创建 cron 工作?

我希望你明白我的问题。

另一个例子可以是数千个关键字的 SERP 排名跟踪器等等......

标签: phpcronweb-crawler

解决方案


与其创建许多单独的 cron 作业,每个作业都执行一项检索/更新作业,不如创建一个通用的 cron 作业来完成所有检索/更新工作。

如果您希望它们独立并同时运行,您可以从该 cron 作业中生成单独的进程。您可以从 PHP 动态执行此操作,因此您可以使用当前城市列表并为每个城市生成一个单独的进程。

例如,不要运行“php updatecity.php Washington”(作为如何运行更新特定城市的 php 脚本的示例),运行以下命令:

nohup php updatecity.php "$city" > /dev/null 2>&1 &

这将在后台静默启动一个单独的 php 进程,以参数作为参数运行您的updatecity.php脚本。$city

确保您的进程不能停止或继续运行,否则您最终可能会用大量未终止的进程淹没您的服务器。


推荐阅读