我正在开发一个现有的自定义电子商务PHP应用程序,该程序当前每15分钟运行一个资源密集型CRON。计划任务PHP替代方案
它的要点是:客户可以为他们感兴趣的产品设置复杂的过滤器,并接收基于这些过滤器的电子邮件。 CRON每15分钟运行一次,检查自上次运行以来所列的所有新产品,并将其与每个客户过滤器进行比较。如果产品符合客户过滤条件,他们会通过亚马逊SES发送电子邮件。
到目前为止,这种方法一直正常,但随着活跃客户的数量迅速增加,CRON开始每15分钟就会在应用程序上做出明显的性能下降,这会持续一两分钟的时间它运行。
我一直在尝试其他方法来帮助分散服务器上的负载,例如每次产品列出时执行任务,因此服务器无需一次追赶多个产品。
当接近这样的事情时,通常最好的做法是什么?
我做了类似的事情,除了我有系统设置总是在一定的时间发出一批,所以我的Cron只会每3小时运行一次。 – xlordt
队列(使用例如rabbitmq)并将负载分散到多个服务器上。 – solarc