1

这是回购:https ://github.com/webostin/sf-case-study/tree/master/movie-invalidator

简短的应用说明

平台 Symfony。我们有电影实体。我们有用于缓存电影分页和电影本身的复杂缓存系统。我们有前端面板和后端面板。我们将用户实体附加到电影。我们也有管理实体。

问题

我们需要软删除电影,同时重置缓存和发送电子邮件。我们必须在三个(或将来更多)上下文中实现它:

  1. 前端用户删除附加到他的电影。操作:软删除、重置缓存、向管理员发送电子邮件;
  2. 管理员删除电影。操作:软删除、缓存重启、向用户发送电子邮件。
  3. 检查电影数据时的 Cron 会禁用电影。操作:软删除、重置缓存、向管理员和用户发送电子邮件

问题

这个特定示例中的最佳实践是什么。我找到了 3 个解决方案:分别实现所有内容(不好)、编写事件订阅者并在我想禁用电影时触发事件、编写服务并使用服务来禁用电影。这是最好的可读性和正确解决方案的问题。如果您有任何解决方案,请提供您的解决方案

4

1 回答 1

0

在第一步中标记以删除电影。在这种情况下,您不需要卸载缓存(您将在界面中看到警告消息)。第二步,管理员确认删除,并被添加到 cron 队列中。第三步,删除cron,发送邮件,清除缓存。通过这种方式,整个负载都在 cron 上。

于 2017-09-28T22:31:07.130 回答