多租户 Rail 应用程序中状态机 gems 的线程安全

Thread safe of state machine gems in multi-tenant Rail app

有一些流行的 Ruby 状态机 gem,例如 geekq/workflow and aasm。它们在多租户 Rails 4.2 应用程序中是线程安全的吗?

我正在使用 geekq/workflow,它将 model class 上的 process definition 定义为 class method。这让我想知道其他迟到的用户是否会覆盖以前的用户工作流定义。

有开发者可以评论一下状态机的线程安全问题吗?或者推荐一个在多租户 Rails 应用程序中线程安全的状态机 gem?

这些 gem 旨在让开发人员定义工作流或状态机,其中可能的状态及其转换方式对每个人都是相同的。如果这就是您正在做的,那么无论租户如何,工作流都是在一开始就设置好并且永远不会改变的,它们适用于多线程、多租户应用程序。

如果您要让用户定义工作流程,我认为它们根本不是正确的工具。