【发布时间】:2013-09-19 00:58:10
【问题描述】:
我想为我的网站建立一个通知系统,类似于 Facebook。通知不需要是实时的。
这就是我的想法:
用户创建事件(上传新照片、添加新评论,如照片,甚至向所有用户发出管理提醒)
每 5 分钟运行一次 cronjob 以将通知添加到通知表中:
id|id_content|type_of_content_enum|affected_user_id|date|seen_bool-
cronjob,将为每种类型的通知运行几个函数,例如:
add_photos_notification()// 该函数会检查过去 5 分钟内添加的所有照片,并在通知表中为每个关注此人的用户插入一行。该功能会将过去 5 分钟内添加的所有照片分组,因此关注者不会收到很多相同类型内容的通知。导致类似这样的通知:用户 X 在他的个人资料中添加了 Y 张照片。add_admin_notification()// 该函数会检查网站管理在过去 5 分钟内添加的所有新闻,并在通知表中为系统上的每个用户插入一行 ...
这是构建通知系统的正确方法吗?
是否有可能错过一个事件,每 5 分钟运行一次 cron,函数检索过去 5 分钟的事件?
为了安全起见,您是否认为可以检查所有“通知”字段不正确的事件?将获取 'notified' = false 的事件的相同函数,在将该通知添加到通知表后将其更新为 true。
谢谢,
【问题讨论】: