Community mailing list archives

community@mail.odoo.com

Re: Odoo Connector VS Celery (Rabbit MQ or Redis)

by
Ecosoft Co. LTD, Kitti Upariphutthiphong
- 02/05/2016 08:44:29
Hello Guewen,

Thank you for your answer. From your comment, I am not sure I understand correctly.

One of the most important difference between the 2 approaches is that the OCA connector jobs are created in the current Postgres transaction, so if your transaction fails and is rollbacked, the new jobs will never be executed because they are rollbacked too

You means, if a job (i.e., create a new record for a model) failed and roll back, that job will never be executed again? Is it possible that we program it so that it keep trying for N attempt?

And as you used to try Celery before, but then, why you come to create your own MQ system? Celery is not suitable for the work?

And lastly, can you shed some light how to start coding with Connector. I read the code in Magento-Connect, and frankly quite confused.

Appreciate your advice,
Kitti


On Fri, Feb 5, 2016 at 7:11 PM, Guewen Baconnier <guewen.baconnier@camptocamp.com> wrote:
Hello,

Disclaimer: I am the one of the author of the OCA's Odoo Connector.

I experienced a bit using Celery [0] before to start the connector addon.

One of the most important difference between the 2 approaches is that the OCA connector jobs are created in the current Postgres transaction, so if your transaction fails and is rollbacked, the new jobs will never be executed because they are rollbacked too. Then, as jobs are usual Odoo models, their integration  and the views/wizards that can be build upon them is easier. Lastly, using Postgres as backend for the jobs means that you don't need an additional tool to maintain.

We use the OCA Connector for syncing data between systems and the synchronizations are almost real time [1] thanks to postgres NOTIFY [2].

I don't have any metrics regarding the number of jobs you can execute during a day (which would largely depends of what you do in a job). If you plan to have hundreds of thousands of messages per day, you would maybe be more safe with a true message queue like RabbitMQ/Redis using Celery which are designed for that.
[1] as far as you run enough channels to execute jobs, otherwise jobs will be waiting on the others
[2] http://www.postgresql.org/docs/9.0/static/sql-notify.html

--
Guewen Baconnier
Business Solutions Software Developer

Camptocamp SA
PSE A, CH-1015 Lausanne
Phone: +41 21 619 10 39
Office: +41 21 619 10 10
http://www.camptocamp.com/

On Fri, Feb 5, 2016 at 11:21 AM, Kitti U. <kittiu@ecosoft.co.th> wrote:
Hello,

We are choosing between OCA's Odoo Connector and Celery. Both are Message Queue system.

> The main application is to sync master data between different systems and Odoo in almost real time.

> The second application is to improve user experiences on performance, on where problem is, i..e, import bit data files, etc.

Anyone has experience using Celery with Odoo?

In your opinion, which one is better. What about Performance and Maintainability?

Thanks,
--
Mobile: +66-(0)8-1841-7480
Your ERP Partner => www.ecosoft.co.th

_______________________________________________
Mailing-List: https://www.odoo.com/groups/community-59
Post to: mailto:community@mail.odoo.com
Unsubscribe: https://www.odoo.com/groups?unsubscribe


_______________________________________________
Mailing-List: https://www.odoo.com/groups/community-59
Post to: mailto:community@mail.odoo.com
Unsubscribe: https://www.odoo.com/groups?unsubscribe




--
Mobile: +66-(0)8-1841-7480
Your ERP Partner => www.ecosoft.co.th