多租户 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 旨在让开发人员定义工作流或状态机,其中可能的状态及其转换方式对每个人都是相同的。如果这就是您正在做的,那么无论租户如何,工作流都是在一开始就设置好并且永远不会改变的,它们适用于多线程、多租户应用程序。
如果您要让用户定义工作流程,我认为它们根本不是正确的工具。
有一些流行的 Ruby 状态机 gem,例如 geekq/workflow and aasm。它们在多租户 Rails 4.2 应用程序中是线程安全的吗?
我正在使用 geekq/workflow
,它将 model class
上的 process definition
定义为 class method
。这让我想知道其他迟到的用户是否会覆盖以前的用户工作流定义。
有开发者可以评论一下状态机的线程安全问题吗?或者推荐一个在多租户 Rails 应用程序中线程安全的状态机 gem?
这些 gem 旨在让开发人员定义工作流或状态机,其中可能的状态及其转换方式对每个人都是相同的。如果这就是您正在做的,那么无论租户如何,工作流都是在一开始就设置好并且永远不会改变的,它们适用于多线程、多租户应用程序。
如果您要让用户定义工作流程,我认为它们根本不是正确的工具。