为多个用户执行cron-job自动化的最佳方式是什么?Cron作业 - PHP脚本 - 多个用户?
例:
一个cron作业需要每10分钟运行调用(通过卷曲)连接到外部API并收集数据(网站访问者和其他数据)一个PHP脚本用户已收到外部网络媒体资源。我们需要每隔10分钟通过API定期检查一次,如果该用户有任何新的数据可用并获取它 - 并且在网络应用程序中为每个用户提供。
这样的cron作业PHP脚本调用API通常需要1-3秒每用户,但也有时可能需要长达30秒或更长时间才能完成一个用户(在特殊情况下)。
问题 ...
什么是执行这一程序,收集外部数据一样,为多个用户的最佳方法是什么? 数百甚至数千用户?
对于每个用户,我们需要每10分钟检查一次数据。
本来我打电话连续10个用户在一个时钟守护作业调用一个循环的思维,但由于每个用户采集可需要30秒...... 10个用户环路可能需要几分钟,并......该脚本可能会超时?正确?
您是否对如何最有效地为许多用户执行此过程有一些提示和建议?应该为每个用户使用单独的cron作业吗?而不是循环?
谢谢!
===编辑===
比方说,一个PHP脚本可以调用API 1分钟内10个用户...我可以创造10个时钟守护作业,基本上同时调用同一个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可以同时接收多个同时呼叫不同的用户。
由cli(包括cron)调用的脚本没有时间限制。也就是说,对于数千用户,每10分钟30秒显然不会工作 –
假设我有10个独立的cron作业几乎同时调用同一个php脚本......这是否会起作用?事情是,每个用户每次API调用大多数时间需要1-3秒。只有极少数情况下可能需要10秒钟(我经历过的最多时间),而我只需30秒就可以确保...如果API提供商的服务器被卡住或者如此... ... – user1033406
便宜的多线程 - 我做这但将进程数量限制为内核数量。之后,他们所做的一切都提示并且你没有任何好处 –