我想在我们的webproject中实现某种消息队列系统。我只是想知道最好的方法是什么。它是用PHP(Yii Framework)编写的,MySQL是数据库系统。
这个想法:
我想到了两种方法:
将来自用户1的消息插入“消息”表中,其中包含消息应发送给用户2的日期和时间。用户2只能在此日期和时间小于当前日期时读取它时间(WHERE addTime <= NOW()
)。
将来自用户1的消息插入“messageQueue”表中。这是一个包含将来需要放置的所有消息的表。 cronjob(将每分钟运行一次)将所有日期和时间都小于当前时间的消息放入“消息”表中,并将其从“messageQueue”表中删除。电子邮件可以直接发送给用户2。
缺点:
有没有人有任何想法这样做?我实际上正在从服务器/数据库中寻找一些推送功能,它告诉我的脚本新的消息被传递给用户2,并且需要将电子邮件发送给用户2。
答案 0 :(得分:0)
您可以使用CURL代替CRON,它将自行请求您的“CRON JOB SCRIPT”。 它将在之前完成后调用。如果脚本在1分钟左右的时间内运行,您可能想要延迟CURL请求。
答案 1 :(得分:0)
请考虑使用RabbitMQ实施AMQP模型(http://www.rabbitmq.com/)。根据应用程序的上下文,您可能已经暴露了一些“过度杀伤”。
但是,如果您已经确定此消息传递系统必然需要快速增长,那么您可能需要查看php-amqplib的文档