我的laravel 5.3应用程序在照片被评论或喜欢时为用户创建数据库通知。
如果某些内容经常受欢迎且不受欢迎,则用户会收到大量通知,例如,只有一个新的Like
。
通知功能可能会sleep()
持续5分钟,然后在创建通知之前检查Like
或Comment
是否仍然存在。但是我仍然必须以某种方式锁定'它没有创建太多的通知(?)。
laravel(队列,' lock' -column或table)或其他简单解决方案中是否已包含某些内容?
感谢您的建议。
答案 0 :(得分:1)
我认为更好的解决方案是在代码(某个类)或数据库中的某处设置偏移量。
在发送通知之前,您可以查看:
如果上次通知时间+ 5分钟<当前时间 - 发送新通知。
答案 1 :(得分:1)
您可以延迟Laravel延迟工作():https://laravel.com/docs/5.2/queues#delayed-jobs
为避免发送多个通知,我会使用xpuc7o的方法。为了使事情更快,我将它存储在memcache而不是db中。