Cron Job-php脚本-多个用户


Cron Job - php script - multiple users?

为多个用户执行cron作业自动化的最佳方式是什么?

示例

cron-job需要每10分钟运行一次PHP脚本调用,该脚本连接到外部API(通过curl)并收集用户在外部web属性上收到的数据(网站访问者和其他数据)。我们需要通过API每隔10分钟定期检查一次该用户是否有任何新数据可用,并获取该数据——以及web-app中每个用户的

这种对API的cron-job PHP脚本调用通常每个用户需要1-3秒,但有时一个用户可能需要30秒或更长时间才能完成(在特殊情况下)。

问题。。。

对于多个用户来说,执行此过程和收集外部数据的最佳方式是什么成百上千的用户

对于每个用户,我们需要每10分钟检查一次数据。

最初我想用一个cron作业调用在一个循环中连续调用10个用户,但由于每个用户集合可能需要30秒。。。对于10个用户来说,一个循环可能需要几分钟,而且。。。脚本可能超时?对的

关于如何最有效地为许多用户执行此过程,您有一些提示和建议吗?应该为每个用户使用单独的cron作业吗?而不是循环?

谢谢!

===编辑===

假设一个PHP脚本可以在1分钟内为10个用户调用API。。。我可以创建10个cron作业吗?这些作业基本上同时调用同一个PHP脚本,但每个作业都收集不同批次的10个用户?这样我就有可能在一分钟内获得100个用户的数据?不

它可能看起来像这样:

/usr/local/bin/php-q get_data.php?users_group=1

/usr/local/bin/php-q get_data.php?users_group=2

/usr/local/bin/php-q get_data.php?users_group=3

等等…

这行得通吗?

===注意===

每个用户都有一个外部API服务的唯一访问密钥,因此一次只能为一个用户调用一个API。但API可以同时接收多个针对不同用户的同时调用。

如果一个用户需要30秒,而您有20多个用户,那么在需要重新开始之前,您将无法完成。我会考虑使用GearMan或其他作业服务器以异步方式处理这些请求中的每一个。GearMan还可以等待作业完成,因此您应该能够循环处理所有需要发出的请求,然后等待它们完成。您可能可以用PHP的pthread实现来完成同样的事情,但是,这将非常困难。