我们需要在可扩展的Web架构中,特别是在事件驱动设计(同步和异步作业)中分离所有流程,我想知道插入ACE的最佳位置(也是最佳时间)。
我的第一个“天真”动作是将它们插入到创建相关对象的相同服务方法中。
这将是:
class AlbumManager
{
public function createAlbum(Album $album)
{
$this->albumRepository->save($album);
$this->permissionManager->grantPrivileges($album->getUser(), $album, MaskBuilder::MASK_OWNER);
$event = new AlbumEvent($album);
$this->dispatcher->dispatch(AlbumEvents::CREATE, $event);
}
}
但是,那是对的地方吗?由于其他事件是在事件监听器中处理的,它们同步或异步委托工作(离线队列),为什么不对ACE做同样的事情呢?
通常,在应用程序中,您始终可以识别需要立即执行的操作,以及可以(必须)脱机(队列)完成的操作。
安全的东西在哪里? ; - )
谢谢, 再见。
本杰明。