php – 通知系统(电子邮件,社交媒体)

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 通知系统(电子邮件,社交媒体)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为我正在合作的公司一个小型的内部社交媒体平台,没什么大不了的. 40,000名用户.它基本上类似于FaceBookGOOGLE,但功能较少.

该平台还具有邮件通知系统(除了针对在线用户的Ajax通知).

在这是我的问题 – 它根本就没有扩展.

我有一个MysqL表,其中包含要发送的所有电子邮件通知.因此,只要有人在一个组中编写故事,系统就会自动在该表中插入一行,而email_send函数(cronjob)会将这些邮件发送给用户(用户可以在即时,每日或每周通知邮件之间进行选择)

到目前为止,如此好 – 如果这些团体的成员数量很少.

但现在想象一个拥有5k成员的小组 – 一旦用户将故事发布到该组中,它就会触发5,000个sql插入到通知表中.

你怎么解决这个问题?我想到了服务器上的后台工作人员扫描新故事/@L_777_28@/东西并在后台触发email_send功能.这会扩大规模吗?或者只是一种标准的方式,我只是在想错误方向

任何正确方向的点都会非常感激,
谢谢你,快乐的圣诞节:)

//马库斯

解决方法

您不应该通过发送电子邮件来减慢正常的Web请求/响应流 – 只需将数据转储到队列中并让后台工作接收该工作 – 听起来您已经在使用cron这样做了吗?

那么插入是导致缓慢的原因吗?
然后只需标准化您的数据,只需在您的电子邮件队列表中插入一个groupID即可.该groupID与包含X用户及其电子邮件地址的组相关联.那么你将插入1条记录而不是5000条记录.
很快就可能是这样的……

notificationTable
rowID | emailID | groupID | status

groupTable
groupID | groupName 

userTable
userID | userName | emailAddress | groupID

如果您想更进一步,那么您可以引入一个消息传递系统,以便您可以发出简单(和快速)消息,并让一个或多个侦听器(在一个或多个单独的服务器上)等待一个或多个通道上的消息.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 通知系统(电子邮件,社交媒体)全部内容,希望文章能够帮你解决php – 通知系统(电子邮件,社交媒体)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。