我正在使用 GrandNode 2.0.0 进行电子商务项目。该设置由两个独立的项目组成:
Grand.Web(前端),在一个端口上运行。 Grand.Admin(管理后端),在不同的端口上运行。 问题是,当我在 Grand.Admin 中执行编辑、删除或插入实体(例如产品或类别)等操作时,所做的更改不会立即反映在 Grand.Web 前端上。
我已经在插件中实现了一些自定义代码的缓存。但是,即使使用此插件修改实体时,我也会遇到同样的问题,前端不会立即更新。
问题: 如何确保 Grand.Admin 中所做的更改立即反映在 Grand.Web 前端?是否有最佳实践或推荐的解决方案来管理 GrandNode 中各个应用程序的缓存和失效?
任何帮助将不胜感激!
这是我迄今为止尝试过的:
使我的自定义代码中的缓存无效。 确保正确的事件发布/订阅机制。 两个应用程序之间的缓存似乎没有被清除或同步。
问题可能与前端的缓存有关,因为当您在管理面板中进行更改时,前端的缓存不会自动更新(在我的情况下)。我使用以下方法解决了这个问题,你也可以尝试一下:
对
Grand.Admin
和Grand.Web
使用共享分布式现金:https://learn.microsoft.com/en-us/aspnet/core/performance/caching/distributed?view=aspnetcore-9.0
基于事件的缓存失效(前端与此事件关联并相应地清除或更新其缓存):https://redis.io/glossary/cache-invalidation/#:~:text=Event%2Dbased%20cache%20invalidation %20 发生了,并且 %20 必须%20 正确地%20 更新了%20。
我希望这有帮助!