我有一个 Multi-Tenancy 应用程序。租户数据基于模式隔离。
我想实现一个事务性发件箱模式,我想将事件存储在一个表中(在同一事务中),然后稍后通过作业发送事件。
我计划在每个租户模式中保留事件表,以便它可以在同一个事务中更新。我无法将事件表保留在公共(public)(应用程序)模式中,因为这样我就无法在同一事务中更新表...
现在我的问题是作业(基于 quartz/spring)如何知道需要检查哪些所有模式的事件?可以有多个租户架构,其中没有要处理的事件。
最佳答案
一种方法是用 CDC(MySQL 的 bin 日志)替换 cron 作业。您可以在 CDC 处理程序中进行整个处理,也可以使用它来更新一些中央表,以跟踪哪个租户有新消息。
关于transactions - 在模式隔离的 Multi-Tenancy 应用程序中设计/实现事务性发件箱模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72027963/