4

我有一种情况,有数千种产品,每种产品的价格都会不断检查并与其他网站保持同步。为了快速处理,我创建了多个链接。每个链接仅处理 50 条记录。并在 5 个服务器上划分所有链接以进行快速处理。

我为每个链接设置 cron 作业,每 12 小时处理一次。但是单个服务器上的两个链接处理时间之间应该有 15 分钟的间隔。

由于手动生成的链接很少。(大约 230 个链接或更多),手动为每个链接设置 cron 作业对我来说并不容易。

出于这个原因,我想编写动态 php 脚本来生成 230 个 cron 作业链接。

我编写 txt 文件并为约 ​​230 个链接的 cron 作业生成脚本,这里是示例示例。

0 0,12 * * * /usr/local/bin/php -f http://xxx.us/amazon/proc.php?  id=1&size=50
15 0,12 * * * /usr/local/bin/php -f http://xxx.us/amazon/proc.php?id=2&size=50
30 0,12 * * * /usr/local/bin/php -f http://xxx.us/amazon/proc.php?id=3&size=50
45 0,12 * * * /usr/local/bin/php -f http://xxx.us/amazon/proc.php?id=4&size=50
.....
230 crone job links

有什么方法可以在服务器上执行动态生成的脚本以自动安装所有 cron 作业,而不是手动执行,即使在启动时也需要大量时间,如果我将来需要修改。

4

2 回答 2

2

这将淹没 crontab 并且没有任何好处,尤其是如果您将来获得更多工作。我建议只使用一个运行 15 分钟的脚本并检查脚本内的时间。根据 0、15、30 或 45 分钟处理您的链接。

一旦获得更多链接,您可以在每次运行中处理更多链接,或者通过简单地更改 crontab 中的一行和语句切换来缩短调用之间的时间。

于 2012-11-12T14:19:44.610 回答
1

我将只使用一个 cron-job 和一个 shell 脚本来循环您所有的 php 调用。

如果你在 linux 上,它会是这样的(简单的未经测试的例子......):

#!/bin/bash
for ((i = 1; i < 5; i++))
do
   /usr/local/bin/php -f http://xxx.us/amazon/proc.php?id=[$i]&size=50
   echo "Finished batch: $i"
done

并更改5为您想要的任何内容。

于 2012-11-12T14:28:16.097 回答