[英]Scheduled task PHP alternatives
我正在使用一个现有的自定义电子商务PHP应用程序,该应用程序当前每15分钟运行一次占用大量资源的CRON。
其要点是:客户可以为其感兴趣的产品设置复杂的过滤器,并根据这些过滤器接收电子邮件。 CRON每15分钟运行一次,检查自上次运行以来已列出的所有新产品,并将它们与每个客户过滤器进行比较。 如果产品与客户过滤器匹配,他们将通过亚马逊SES发送电子邮件。
到目前为止,这种方法一直有效,但是随着活跃客户数量的迅速增加,CRON开始每15分钟对应用程序进行一次明显的性能下降,在运行过程中持续一两分钟。
我一直在尝试其他想法,以帮助分散服务器上的负载,例如在每次列出产品时执行任务,因此服务器不需要一次赶上多个产品。
处理此类问题时通常最好的做法是什么?
我推荐的方法是使用您的cron将在其中发送消息的Rabbitmq队列。 然后设置几个使用者(脚本将在队列的另一端等待),它们将一个接一个地接收消息,撰写电子邮件并将其发送给客户。 这样,您可以扩展使用者数量以匹配需要发送的电子邮件数量。 如果您不熟悉队列,请查看RabbitMQ教程: https : //www.rabbitmq.com/tutorials/tutorial-one-php.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.