Ayuda con Workers, Queue, jobs implementado sobre DOCKER (Tecnativa/doodba)

811 views
Skip to first unread message

regt...@gmail.com

unread,
Aug 10, 2018, 1:38:27 PM8/10/18
to Usuarios Odoo / OpenERP en España
Buenas tardes, llevo varios meses aprendiendo el funcionamiento de Odoo y intentando hacer las cosas "bien" porque el saber no ocupa lugar.

El desarrollo lo estoy haciendo apoyandome en el proyecto de TECNATIVA doodba(Docker Odoo Base) con su scaffolding para la v10 de ODOO, donde más o menos tengo las cosas claras(entornos, archivos para configuraciones... etc). Mi problema es que estoy intentando hacer funcionar el conector con prestashop, y tengo muchas dudas con workeres, jobs, runners...

Empecemos por el principio, estoy en en entorno de desarrollo (devel.yml): 
- Tengo todos los módulos instalados con sus dependencias. 
- Configuro el conector con prestashop, hago una prueba de conexión y la conexión es correcta. Para esto he creado un proxy con la imagen image: tecnativa/whitelist abriendo la conexión al servidor donde tengo prestashop.
- Hago una sincronización de los metadatos y se me crean los JOBS pero no cambian de estado, están en "Pending". Me pongo a investigar un poco y según he entendido, tengo que activar workers>0 para que haya runners y del lado del servidor queue_job, pero aquí viene mi primera duda. No tengo muy claro si hay diferencias entre queue_job y connector, porque en alguno sitios veo que activan del lado del servidor "connector" y en otros queue_job, aunque creo que ¿"connector" era de la api antigua? (Referencia que intento seguir:http://odoo-connector.com/guides/jobrunner.html#how-to-use-it). Configuro un channel root.prestashop, aunque creo que no haría falta, porque el root lo haría, y no configuro nada mas para esta prueba básica porque creo que no me haría falta y con las configuraciones por defecto me valdría ¿no?

Problemas: 
Al activar los workers (me he documentado de cuantos debo de poner para mi equipo CPU*2+1, configuro limites de memoria, ....) 
- me da un fallo que creo es el Longpolling porque no tengo configurado un proxy, y estoy un poco perdido, porque al usar el proyecto DOODBA tiene ya configurado en proxy pero no se muy bien por donde meterle mano para añadir el puerto del longpollin y otros cambios que he visto se hacen para solucionar el error..., esta parte del proyecto DOODBA es la que no he terminado de entender muy bien como "enruta" usando la imagen tecnativa/whitelist para redirigir al puerto "127.0.0.1:${ODOO_MAJOR}069:8069"

ERROR LOGNPOLLING:
 

odoo_1                    | 2018-08-10 16:15:22,619 45 INFO CadenetDesa werkzeug: 172.18.0.9 - - [10/Aug/2018 16:15:22] "POST /longpolling/poll HTTP/1.1" 200 -

odoo_1                    | 2018-08-10 16:15:42,623 44 ERROR CadenetDesa odoo.http: Exception during JSON request handling.

odoo_1                    | Traceback (most recent call last):

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 642, in _handle_exception

odoo_1                    |     return super(JsonRequest, self)._handle_exception(exception)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 684, in dispatch

odoo_1                    |     result = self._call_function(**self.params)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 334, in _call_function

odoo_1                    |     return checked_call(self.db, *args, **kwargs)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/service/model.py", line 101, in wrapper

odoo_1                    |     return f(dbname, *args, **kwargs)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 327, in checked_call

odoo_1                    |     result = self.endpoint(*a, **kw)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 942, in __call__

odoo_1                    |     return self.method(*args, **kw)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 507, in response_wrap

odoo_1                    |     response = f(*args, **kw)

odoo_1                    |   File "/opt/odoo/auto/addons/bus/controllers/main.py", line 35, in poll

odoo_1                    |     raise Exception("bus.Bus unavailable")

odoo_1                    | Exception: bus.Bus unavailable

 
 -  Me da error wdb (y si no quito la linea --dev=reload,qweb,werkzeug,xml,web de la configuración devel.yml no se puede usar el ERP, porque va lentísimo desconectándose todo el rato, creo que porque se reinician los módulos al haber fallado...). Sobre el error de wbd no he encontrado nada de documentación.

 ERROR wdb:
 odoo_1                    | 2018-08-10 17:35:49,933 wdb You must start/install wdb.server (Retrying on wdb:19840) [Try #1/10] at connect:228

¿Puede ser que por el error del LongPolling no se ejecute ningún job?¿Cual puede ser el problema de que no se ejecuten si no es este?

LOG DE INICIO DE ODOO:

odoo_proxy_1              | INFO:root:Executing: socat tcp-listen:8069,fork,reuseaddr tcp-connect:odoo:8069

odoo_1                    | INFO:docker-odoo-base:Merging 7 configuration files in /opt/odoo/auto/odoo.conf

odoo_1                    | INFO:docker-odoo-base:Executing odoo --log-handler=openerp.addons.connector:DEBUG

odoo_proxy_1              | 2018/08/10 17:29:43 socat[7] E connect(5, AF=2 172.18.0.8:8069, 16): Connection refused

odoo_1                    | 2018-08-10 17:29:45,813 1 INFO ? odoo: Odoo version 10.0

odoo_1                    | 2018-08-10 17:29:45,813 1 INFO ? odoo: Using configuration file at /opt/odoo/auto/odoo.conf

odoo_1                    | 2018-08-10 17:29:45,814 1 INFO ? odoo: addons paths: ['/var/lib/odoo/addons/10.0', u'/opt/odoo/auto/addons', '/opt/odoo/custom/src/odoo/odoo/addons']

odoo_1                    | 2018-08-10 17:29:45,814 1 INFO ? odoo: database: odoo@db:5432

odoo_1                    | 2018-08-10 17:29:46,497 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on 0.0.0.0:8069

odoo_1                    | 2018-08-10 17:29:46,498 1 INFO ? odoo.addons.queue_job.jobrunner: starting jobrunner thread (in prefork server)

odoo_1                    | 2018-08-10 17:29:46,499 1 INFO ? odoo.addons.queue_job.jobrunner.channels: Configured channel: root(C:4,Q:0,R:0,F:0)

odoo_1                    | 2018-08-10 17:29:46,500 1 INFO ? odoo.addons.queue_job.jobrunner.channels: Configured channel: root.prestashop(C:1,Q:0,R:0,F:0)

odoo_1                    | 2018-08-10 17:29:46,520 1 INFO devel odoo.modules.loading: loading 1 modules...

odoo_1                    | 2018-08-10 17:29:47,683 1 INFO devel odoo.modules.loading: 1 modules loaded in 1.16s, 0 queries

odoo_1                    | 2018-08-10 17:29:48,085 1 INFO devel odoo.modules.loading: loading 40 modules...

odoo_1                    | 2018-08-10 17:29:49,942 1 INFO devel odoo.addons.report.models.report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf

odoo_1                    | 2018-08-10 17:29:51,508 1 INFO ? odoo.addons.queue_job.jobrunner.runner: starting

odoo_1                    | 2018-08-10 17:29:51,509 1 INFO ? odoo.addons.queue_job.jobrunner.runner: initializing database connections

odoo_1                    | 2018-08-10 17:29:51,815 1 INFO ? odoo.addons.queue_job.jobrunner.runner: database connections ready

odoo_1                    | 2018-08-10 17:29:52,347 1 INFO devel odoo.modules.loading: 40 modules loaded in 4.26s, 0 queries

odoo_1                    | 2018-08-10 17:29:52,721 1 INFO devel odoo.modules.loading: Modules loaded.

odoo_1                    | 2018-08-10 17:29:52,727 1 INFO devel odoo.sql_db: ConnectionPool(used=0/count=0/max=64): Closed 2 connections 

odoo_1                    | 2018-08-10 17:29:52,730 51 INFO devel odoo.service.server: Worker WorkerHTTP (51) alive

odoo_1                    | 2018-08-10 17:29:52,737 52 INFO devel odoo.service.server: Worker WorkerHTTP (52) alive

odoo_1                    | 2018-08-10 17:29:52,742 53 INFO devel odoo.service.server: Worker WorkerHTTP (53) alive

odoo_1                    | 2018-08-10 17:29:52,750 55 INFO devel odoo.service.server: Worker WorkerCron (55) alive

odoo_1                    | 2018-08-10 17:29:55,807 54 INFO ? odoo: Odoo version 10.0

odoo_1                    | 2018-08-10 17:29:55,808 54 INFO ? odoo: Using configuration file at /opt/odoo/auto/odoo.conf

odoo_1                    | 2018-08-10 17:29:55,809 54 INFO ? odoo: addons paths: ['/var/lib/odoo/addons/10.0', u'/opt/odoo/auto/addons', '/opt/odoo/custom/src/odoo/odoo/addons']

odoo_1                    | 2018-08-10 17:29:55,810 54 INFO ? odoo: database: odoo@db:5432

odoo_1                    | 2018-08-10 17:29:56,614 54 INFO ? odoo.service.server: Evented Service (longpolling) running on 0.0.0.0:8072

odoo_1                    | 2018-08-10 17:30:23,450 52 INFO ? odoo.http: HTTP Configuring static files

odoo_1                    | 2018-08-10 17:30:23,862 52 INFO CadenetDesa odoo.modules.loading: loading 1 modules...

odoo_1                    | 2018-08-10 17:30:23,882 52 INFO CadenetDesa odoo.modules.loading: 1 modules loaded in 0.02s, 0 queries

odoo_1                    | 2018-08-10 17:30:25,207 52 INFO CadenetDesa odoo.modules.loading: loading 113 modules...

odoo_1                    | 2018-08-10 17:30:27,118 52 INFO CadenetDesa odoo.modules.loading: 113 modules loaded in 1.91s, 0 queries

odoo_1                    | 2018-08-10 17:30:27,726 52 INFO CadenetDesa odoo.modules.loading: Modules loaded.

odoo_1                    | 2018-08-10 17:30:29,040 52 INFO CadenetDesa odoo.addons.base.ir.ir_http: Generating routing map

odoo_1                    | 2018-08-10 17:30:29,077 52 ERROR CadenetDesa odoo.http: Exception during JSON request handling.



Espero puedan ayudarme, estoy bastante atascado y no encuentro documentación que me ayude.
Un saludo y gracias de antemano.

 (No se si he conseguido explicarme bien, cualquier cosa que no me entendáis decírmelo e intento ser más claro)




YusufSalahAdDin

unread,
Aug 11, 2018, 7:49:06 AM8/11/18
to openerp-s...@googlegroups.com
Yo tengo ese mismo problema, o lo tuve: esa vez fue porque levanté la instancia con la imagen Oficial de Odoo en lugar de la imagen con la que estaba trabajando siempre. Otro problema que tengo es al asignar la memoria de acuerdo a los trabajadores.

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Jairo Llopis

unread,
Aug 20, 2018, 4:03:18 AM8/20/18
to Usuarios Odoo / OpenERP en España
Hola, me alegro de que estés usando Doodba ¡y espero que te guste!

El viernes, 10 de agosto de 2018, 18:38:27 (UTC+1), regt...@gmail.com escribió:
ERROR LOGNPOLLING:
 

odoo_1                    | 2018-08-10 16:15:22,619 45 INFO CadenetDesa werkzeug: 172.18.0.9 - - [10/Aug/2018 16:15:22] "POST /longpolling/poll HTTP/1.1" 200 -

odoo_1                    | 2018-08-10 16:15:42,623 44 ERROR CadenetDesa odoo.http: Exception during JSON request handling.

odoo_1                    | Traceback (most recent call last):

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 642, in _handle_exception

odoo_1                    |     return super(JsonRequest, self)._handle_exception(exception)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 684, in dispatch

odoo_1                    |     result = self._call_function(**self.params)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 334, in _call_function

odoo_1                    |     return checked_call(self.db, *args, **kwargs)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/service/model.py", line 101, in wrapper

odoo_1                    |     return f(dbname, *args, **kwargs)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 327, in checked_call

odoo_1                    |     result = self.endpoint(*a, **kw)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 942, in __call__

odoo_1                    |     return self.method(*args, **kw)

odoo_1                    |   File "/opt/odoo/custom/src/odoo/odoo/http.py", line 507, in response_wrap

odoo_1                    |     response = f(*args, **kw)

odoo_1                    |   File "/opt/odoo/auto/addons/bus/controllers/main.py", line 35, in poll

odoo_1                    |     raise Exception("bus.Bus unavailable")

odoo_1                    | Exception: bus.Bus unavailable

 

En cuanto al conector no tengo mucha experiencia. Sí te puedo decir que, independientemente de los workers que pongas en la configuración, por defecto en devel.yaml se deshabilitan (aunque creo que esto ya lo has debido de quitar tú por los logs que veo) porque para desarrollo es bastante más complicado con workers que sin ellos.

Es decir, si con el conector puedes programar sin workers, te lo recomiendo.

En caso contrario, los errores de longpolling sencillamente no deberían preocuparte. Es cierto que ahí están, pero en general te impedirán ver las alarmas del calendario, obtener actualizaciones del chatter, etc., pero nada que te impida un entorno de desarrollo para la mayoría de casos. Si realmente lo necesitas, no te queda otra que usar un proxy inverso, en cuyo caso tal vez te interese copiar algunas de las configuraciones de test.yaml, que sí está preparado para trabajar tras un proxy.
Es como que el contenedor wdb no está arrancado, y me hace pensar que no está bien configurado tu devel.yaml. Asegúrate de tener el scaffolding actualizado.
 
Reply all
Reply to author
Forward
0 new messages