Symfony2发送推送通知

时间:2016-11-01 12:35:51

标签: php android symfony firebase firebase-cloud-messaging

我正在为Symfony2中的Android应用程序开发REST API。最近我实施了通过FCM发送推送通知。一切正常,问题是我的实现通常在控制器中发送通知,因此客户端必须等待发送所有通知才能从服务器获得响应,当然会导致性能问题。任何人都可以给我一个提示,处理通知发送的最佳方法是什么,即在单独的线程或某些调度程序中?我只是不知道我的可能性是什么。提前谢谢。

1 个答案:

答案 0 :(得分:4)

那么,你正在寻找的是一种异步工作者。 这可以通过不同的方式实现。

最简单的方法可能是将所有需要发送的通知存储在某种类型的队列中,例如数据库中的表,并使用通过crontab定期执行的命令(https://symfony.com/doc/current/console.html)处理这些条目

另一种方法是使用类似RabbitMQ的内容并编写发送通知的自定义使用者。这是非常直接的转发,需要像supervisord这样的东西来妖魔化消费者流程。

也许CronJob-Way对你来说是最好的。我没有得到,这些推送通知是否需要依赖客户发送的请求,但通常你应该尝试将所有逻辑从控制器封装到服务中。

Symfony-Documentation始终是这类问题的一个很好的条目,应该给你一些更详细的例子和提示: https://symfony.com/doc/current/index.html