我正在尝试创建一个每1分钟(或多或少)在服务器上运行的过程。我知道我可以通过cronjob实现它,但是我担心,假设我有大约1000个任务(系统每1分钟需要检查1000个用户),它不会杀死服务器吗?
此系统应用于同步Google adwords API中的数据并对其执行操作。例如,它应该从谷歌阅读一个广告系列,每1000次展示或点击它应该做一些事情。显然,我需要继续运行与adwords api的连接,以便实时查看统计数据。想象一下,这个程序需要与1000个注册用户一起运行。
当我需要每1分钟运行一个重循环时,我应该使用什么技术? 非常感谢, 奥龙
答案 0 :(得分:0)
理想情况下,如果您使用分布式工作流,最好以这种方式为多个用户提供服务。
答案 1 :(得分:0)
虽然您可以使用许多技术,但如果您没有提供足够的信息,很难确定任何特定的技术。
答案 2 :(得分:0)
你要做的事情有两个基本问题,第一个比另一个更严重。
您可以做的是选择要运行报告的时间范围(例如每2小时一次),然后坚持该计划。为了粗略估计,您可以并行运行10个报告,并假设下载和解析报告需要10秒钟(这会为您提供1个报告/秒的吞吐量,但这严格取决于您的Internet连接速度,加载在AdWords API服务器上,您的客户有多大,您要求数据的列和分段以及日期范围等等。对于大客户,每个报表的时间安排可能会很快达到几分钟),您只能刷新1000个帐户20-30分钟的时间。
我的建议是在Adwords API的官方论坛上提出这个问题 - https://groups.google.com/forum/?fromgroups#!forum/adwords-api。您肯定会找到之前处理过类似问题的用户。
答案 3 :(得分:-3)
你可以保护一个包含循环最后一次运行时间戳的变量。 现在,当用户访问您的网页时,请检查您的时间戳是否超过1分钟。 如果他年龄较大,请运行循环并检查所有用户。
所以只有当您的网站上有用户时,您的循环才会运行。这节省了很多服务器性能。