【发布时间】:2013-04-05 16:10:48
【问题描述】:
我发送了一个 APNS 通知服务器,理论上它每天会向 100,000 个用户发送大约 50,000 个处理后的通知(基于我们的用户数量)与 iOS 应用程序相关联的网络应用程序)。
通知会在 2 点左右发出,但它必须单独发送给每个用户(使用 Urban Airship),并且由 cron 作业 上的 curl 触发。
它遍历每个用户,并且必须使用 HTML 抓取工具(确切地说是 simple_html_dom),这需要 5-10 秒 每个用户,显然是 非常占用内存。一个简单的 GET 请求不可能是这样做的正确方法,事实上我肯定它会失败。在 cron 作业中处理这种耗时的、内存密集型任务的最佳方法是什么?
【问题讨论】:
-
为什么会占用大量内存?
-
我假设它会是,不是吗?每个处理 50000 个用户 10 秒?还是只需要很长时间?
-
好吧,如果您不是一次加载所有用户,而是一个一个地加载(这更有意义),那么它不会占用大量内存,只需要很长时间。我猜用户存储在数据库中?
-
另外你为什么要处理每个用户10s,你能解释一下为什么需要这么长时间吗?
-
哦,是的,它是一个一个,这只是服务器创建对象和加载 HTML 的速度(从刮板)
标签: php memory-management cron daemon