我正在开发一个 API 项目,该项目需要在响应返回给客户端之后(或之前取决于实现)发送电子邮件和存储统计信息。对于这两种情况,我都在考虑 Symfony 的 EventDispatcher 组件(我没有使用 Symfony 作为框架),因此每个控制器操作都会分派一个事件以将电子邮件添加到队列中或将数据插入到统计数据库表中。
所以事情看起来像这样
Controller
=> Send Response to client
=> Dispatch Event email => EmailEventListener => Mail queue
=> Dispatch Event stats => StatsEventLister => Database
我正在考虑这个,因为我希望这个内部操作尽可能地异步。这是适合这种情况的解决方案吗?
编辑:正如Jovan Perovic建议的那样,我正在添加更多信息。API 是一个 REST API,用户通过 Web 或移动应用程序与其通信,我想记录、存储统计信息和发送通知(主要是电子邮件)而不影响 API 的性能,第一个想法是使用返回后运行的东西对客户端的响应,但我不知道是否可以使用 EventDispatcher。即使使用队列来处理统计信息或通知,我也需要一个集中的地方,所有控制器都可以在其中发送信息,以便写入日志并存储统计信息。
我希望我的目标现在更加明确。对不起。