我在我的应用程序中使用Redis's Pub/Sub,目前效果很好。我能够从Laravel发送发布到一个不同的后端进程进行订阅,并最终将事件发布回Laravel。
对于用户而言,使用情况如下:
提交表单 -> 等待响应(几分钟)-> 继续交易
在后端方面,表单发布到路由上,然后到控制器,将其发布到第三方订阅频道(频道一),最终第三方会再次发布(频道二)
主要问题:我不知道订阅频道二并处理发布内容的适当位置。
理想情况下,我能以两种方式处理发布请求:
1.让用户知道他们的表单已被处理,并可以进入下一步(可能通过Vue组件属性更新) 2.将发布信息存储到我的数据库中。
在文档中,将其放在一个命令中,如果我在这里尝试使用它,它会像这样:
对于用户而言,使用情况如下:
提交表单 -> 等待响应(几分钟)-> 继续交易
在后端方面,表单发布到路由上,然后到控制器,将其发布到第三方订阅频道(频道一),最终第三方会再次发布(频道二)
主要问题:我不知道订阅频道二并处理发布内容的适当位置。
理想情况下,我能以两种方式处理发布请求:
1.让用户知道他们的表单已被处理,并可以进入下一步(可能通过Vue组件属性更新) 2.将发布信息存储到我的数据库中。
在文档中,将其放在一个命令中,如果我在这里尝试使用它,它会像这样:
public function handle()
{
Redis::subscribe('channel-two', function ($message) {
// update the client so that the user moves on
// send $message contents to the database
});
}
但是这对我来说似乎并不理想,因为我希望这个频道能够24/7订阅,始终保持监听状态。即使它在一个命令中,我也很清楚如何最好地更新客户端。
在我的Laravel项目中,我应该在哪里进行订阅?有没有最佳实践来响应这些事件?