ruby-on-rails thread-safety activescaffold

ruby on rails - ActiveScaffold hilo de seguridad



ruby-on-rails thread-safety (1)

Múltiples fuentes afirman que ActiveScaffold no es seguro para subprocesos:

De ellos recojo cambios de configuración a nivel de controlador y la autorización no es segura para subprocesos. ¿Es seguro considerar una aplicación segura para subprocesos si no utiliza esos componentes de ActiveScaffold? ¿Hay alguna otra característica en ActiveScaffold que no sea segura para subprocesos?


Desafortunadamente, no hay mucha documentación oficial sobre este tema, sin embargo, hay dos citas útiles de desarrolladores que pueden ayudarlo aquí. Primero, en 2010, aquí en este hilo un desarrollador declaró:

En el controlador, se utiliza mark_records. Los registros marcados se almacenan en sesión, por lo que solo se puede acceder desde el controlador. Los métodos de modelo fueron un truco para obtener los métodos de modelo del controlador actual, pero estaba usando variables de clase que no son seguras para subprocesos.

ActiveScaffold no es un cajero automático seguro para subprocesos, pero corregiré el código actual que no es seguro para subprocesos más adelante y no quiero agregar más código que no sea seguro para subprocesos. Si se necesitan métodos modelo, los agregaré usando variables de hilo

Esto indicaba que la intención original era que no hubiera seguridad para subprocesos. Sin embargo se estaba desarrollando.

Después de este punto, la discusión sobre el asunto parece haberse calmado y no puedo encontrar más declaraciones oficiales. Sin embargo, las personas que comentan sobre versiones reenviadas han dicho que el único problema de los hilos es que los cambios a active_scaffold_config deben colocarse dentro de algún tipo de bloqueo para que sea seguro y que el resto del sistema ahora debe ser seguro para subprocesos.

Tenga en cuenta que no puedo encontrar documentos oficiales que demuestren esto, solo se basa en los comentarios de los usuarios que han leído el código base, por lo que no garantizo que este sea siempre el caso, pero dados los comentarios de un desarrollador que dice que no hay más. Se agregará el código roscado, es probable que sea una apuesta segura.

Finalmente, tenga en cuenta que este hilo implica que el código base ahora es casi seguro y que los hilos pueden usarse siempre y cuando tome algunas precauciones y utilice soluciones en algunos lugares.

Lo siento, no tengo una respuesta más autorizada aquí, la documentación sobre este tema es escasa y la lectura del código es difícil de asegurar, pero esto es lo más cercano que puedo obtener (parece que la gente ha tenido éxito en usarlo con hilos en producción al menos).