2016-03-24 5 views
0

Es gibt ein paar beliebte Ruby State Machine Edelsteine ​​wie geekq/workflow und aasm. Sind sie Thread-sicher in Multi-Tenant Rails 4.2-Anwendung?Thread-Safe von Automaten Edelsteine ​​in Multiil Mieter Rail App

Ich verwende geekq/workflow, die process definition auf model class als class method definiert. Das lässt mich fragen, ob andere Benutzer, die sich spät anmelden, die Workflowdefinition der vorherigen Benutzer überschreiben. Kann ein Entwickler das threadsichere Problem der Zustandsmaschine kommentieren? Oder empfehle ein State Machine-Juwel, das in der Multi-Tenant-Rails-App Thread-sicher ist. Danke vielmals.

Antwort

1

Diese Edelsteine ​​sind so konzipiert, dass Sie-der-Entwickler einen Workflow oder eine Zustandsmaschine definieren können, wo die möglichen Zustände und die Art und Weise, wie sie wechseln, für alle gleich ist. Wenn Sie das tun, wird der Workflow unabhängig vom Mandant am Anfang eingerichtet und ändert sich nie. Sie eignen sich für Multithread-Anwendungen mit mehreren Mandanten.

Wenn Sie Ihre Benutzer Workflows definieren lassen, sind sie meines Erachtens nicht das richtige Werkzeug.

+0

Wir definieren den Workflow, nicht die Benutzer. – user938363

+1

Dann sollte es dir gut gehen. Das Juwel "workflow" führt seine Konfiguration durch, wenn die ActiveRecord-Klasse zum ersten Mal geladen wird. Daher sollten Mandanten/Threads kein Problem darstellen. –

+0

Meinten Sie, 'workflow' ist nur einmal in einem Modell für einen Benutzer definiert und wird nie während der Benutzersitzung zu spät geändert? – user938363