2013-08-23 8 views
24

Mehrere Quellen behaupten ActiveScaffold nicht sicher ist, fädeln:ActiveScaffold Thread-Sicherheit

Von denen, die ich Controller-Ebene Konfigurationsänderungen und Autorisierung zu sammeln sind nicht Thread-sicher . Ist es sicher, eine threadsichere Anwendung zu betrachten, wenn diese Komponenten von ActiveScaffold nicht verwendet werden? Gibt es in ActiveScaffold weitere Funktionen, die nicht threadsicher sind?

Antwort

10

Leider gibt es zu dieser Angelegenheit nicht viel offizielles Dokument, jedoch gibt es zwei nützliche Zitate von Entwicklern, die Ihnen hier helfen können. Zuerst in 2010, here on this thread ein Entwickler angegeben:

In der Steuerung, mit marked_records. Markierte Datensätze werden in der Sitzung gespeichert, sodass sie nur vom Controller aus zugänglich sind. Modell-Methoden waren ein Hack zu Holen Sie sich die Modell-Methoden von aktuellen Controller, aber es war mit Klasse Variablen, die nicht Thread sicher ist.

ActiveScaffold ist nicht Thread Safe ATM, aber ich werde aktuellen nicht Thread sicher Code später und ich möchte nicht mehr nicht Thread sicher Code hinzufügen. Wenn das Modell Methoden benötigt werden Ich will hinzufügen, sie Thread-Variablen mit

Dies zeigte die ursprüngliche Absicht war, dass es nicht Thread-Sicherheit sein würde. Es wurde jedoch entwickelt.

Nach diesem Punkt scheint die Diskussion über die Angelegenheit ruhig geworden zu sein und ich kann keine weiteren offiziellen Aussagen finden. Leute, die sich zu neueren Versionen äußern, haben jedoch gesagt, dass das einzige Threading-Problem darin besteht, dass Änderungen an active_scaffold_config in eine Art von Lock gesetzt werden müssen, um sicher zu sein, und dass der Rest des Systems nun threadsicher sein sollte.

Vorsicht, ich kann keine offiziellen Dokumente finden, um dies zu beweisen, es basiert nur auf den Kommentaren der Benutzer, die die Codebasis gelesen haben, so würde ich nicht garantieren, dass dies immer der Fall ist, aber die Kommentare eines Dev gegeben Wenn man sagt, dass kein Code mehr ohne Threaded hinzugefügt wird, ist dies wahrscheinlich eine sichere Sache.

Schließlich notieren Sie this thread es bedeutet, dass die Code-Basis jetzt fast Thread-sicher ist und Threads verwendet werden können, solange Sie ein paar Vorsichtsmaßnahmen treffen und an einigen Stellen Problemumgehungen verwenden.

Es tut mir leid, ich habe keine autoritativere Antwort hier, die Dokumentation darüber ist spärlich und das Lesen des Codes ist schwer sicher in beide Richtungen, aber das ist am nächsten sicher, dass ich bekommen kann (es scheint, die Leute hatten Erfolg mit mindestens Gewinde in der Produktion).

+1

Vielen Dank für Ihre Antwort, und herzlichen Glückwunsch zum Erhalt der Prämie :) –

Verwandte Themen