php – 通知系统(电子邮件,社交媒体)
我正在为我正在合作的公司写一个小型的内部社交媒体平台,没什么大不了的. 40,000名用户.它基本上类似于Facebook或Google,但功能较少. 该平台还具有电子邮件通知系统(除了针对在线用户的Ajax通知). 现在这是我的问题 – 它根本就没有扩展. 我有一个MysqL表,其中包含要发送的所有电子邮件通知.因此,只要有人在一个组中编写故事,系统就会自动在该表中插入一行,而email_send函数(cronjob)会将这些邮件发送给用户(用户可以在即时,每日或每周通知邮件之间进行选择) 到目前为止,如此好 – 如果这些团体的成员数量很少. 但现在想象一个拥有5k成员的小组 – 一旦用户将故事发布到该组中,它就会触发5,000个sql插入到通知表中. 你怎么解决这个问题?我想到了服务器上的后台工作人员扫描新故事/评论/东西并在后台触发email_send功能.这会扩大规模吗?或者只是一种标准的方式,我只是在想错误的方向? 任何正确方向的点都会非常感激, //马库斯 解决方法: 您不应该通过发送电子邮件来减慢正常的Web请求/响应流 – 只需将数据转储到队列中并让后台工作接收该工作 – 听起来您已经在使用cron这样做了吗? 那么插入是导致缓慢的原因吗?
如果您想更进一步,那么您可以引入一个消息传递系统,以便您可以发出简单(和快速)消息,并让一个或多个侦听器(在一个或多个单独的服务器上)等待一个或多个通道上的消息. (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |