php用redis做消息队列发邮件

@  January 1, 1970

邮件的发送过程需要服务器请求smtp服务器,而且同时只能创建一个phpmailer对象。

所以在高并发的网站下一旦有请求创建了phpmailer对象服务器的某个端口就会被占用,其他请求在请求创建phpmailer对象时就会报错,连不上smtp服务器。这种问题可以用消息队列来解决,

消息队列可以有多种实现,选用redis作为我这次项目的消息队列是因为足够简单,而且性能还可以,因为我的数据不需要持久化存储,请求创建push数据和pop数据会一直在运行,用户请求发送邮件,先把消息存到消息队列,其他的用户的请求同样会把消息存到消息队列,同时会守护一个进程不断从队列中取数据并创建phpmailer发送邮件。

 

 


评论已关闭