tengo sitio ejecuta la aplicación de los carriles y los trabajadores resque ejecuta en el modo de producción, en Ubuntu 9.10, rieles 2.3.4, rubí-EE 2010.01, PostgreSQL 8.4.2trabajadores rieles Resque fallan con PGError: servidor ha cerrado la conexión de forma inesperada
Trabajadores constantemente levantaron errores: PGError: el servidor cerró la conexión inesperadamente.
Supongo que el proceso maestro resque establece conexión con db (p. Ej. Authlogic cuando usa User.acts_as_authentic), al cargar clases de aplicación de rieles, y esa conexión se daña en fork() proceso de ed (¿al salir?) , así que los próximos hijos con bifurcaciones se rompen globalmente ActiveRecord :: Base.connection
Pude reproducir un comportamiento muy similar con esta sample code imitación de fork/processing en resque worker. (AFAIK, los usuarios de libpq recomiendan volver a crear conexiones en el proceso bifurcado de todos modos, de lo contrario no es seguro)
Pero, lo curioso es que cuando uso pgbouncer o pgpool-II en lugar de conexión pgsql directa, tales errores no aparecen .
Entonces, la pregunta es ¿dónde y cómo debo excavar para descubrir por qué está roto para la conexión normal y está trabajando con pools de conexión? O una solución razonable?
Gracias, así que simplemente agregué el gancho: Resque.after_fork = Proc.new {ActiveRecord :: Base.establecer_conexión} –
Puede que tenga un problema similar. ¿Me puede decir cómo y dónde agregó el "gancho"? –
enlace inferior está roto – botbot