由于我们需要在可扩展的 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 做同样的事情呢?
通常,在应用程序中,您始终确定需要立即完成的操作,以及可以(必须)离线完成的操作(队列)。
安全的东西在哪里?;-)
谢谢再见。
本杰明。