Se rendre au contenu
Menu
Cette question a été signalée
1 Répondre
2975 Vues

Odoo 12 Enterprise - performance issues.

Has anyone solved this or ran into this scenario?  

Steps to duplicate this issue:

Sale Order with 500 line items that have an order quantity 12 each line item.  On the delivery ticket you have 500 line items and 12 initial demand and 12 reserved. Edit the delivery ticket and mark the Done = 1 due to only shipping out 1 product at a time. Validate the delivery ticket and get the back order or no back order screen. Of course choose back order. The UI say go get some coffee and generally a timeout will occur under standard configurations.

Issue of performance leaks and or timeouts: the process of 500 line items take over 20 minutes?? Using the conventional UI (Create Back Order Button ) on the server would eventually timeout (memory limit, cpu limits) ect.. unless self hosting one could adjust these limits but not good practice to have a cpu limit of 2400+ right?  It doesn't seem to make much of an impact increasing workers or even better hardware (some increase not much)? Tried also using batch picking did not solve the problem the copy and create of a new move internally in action_done of stock_move takes around 3-5 seconds per record?

Current Workaround:  created a module to process these delivery tickets using a cron job. What is noticed here is a 1 cpu is loaded at between 80-100 percent until this job completes.

Community Suggestions on how to speed this up without completely re-writing stock_move action_done in sql?

Thanks,

Justin Freres

Avatar
Ignorer
Meilleure réponse

Hey Justin,


Performance issues can be pretty frustrating when you're handling large order volumes in Odoo. I've dealt with similar stuffs and picked up a few pointers. The main hassle is the computational load from processing each line separately, especially when each action sets off multiple database calls and server operations.


First up, have you looked at all the config settings in odoo? Adding more workers can help sometimes, but if the server's getting slammed with CPU load, you might need deeper optimization. Batch processing could be the way to go, as long as it doesn’t cause a server freeze. Your cron job workaround is smart, but we know that's just a temporary fix for somethin’ bigger.


Maybe dig into how stock_move's action_done method works. Rewriting the logic to reduce database calls or use database-side ops might give you a break. Even splitting your orders into smaller chunks could help. And don’t forget to use a profiling tool for any bottlenecks in the code flow.


Also, make sure your database performance is in good shape. Beyond hardware, making sure indices are used efficiently can save you time, especially with large orders. Reach out to the odoo community; someone might have cracked this differently. Keep at it! I know this can be tricky and sometimes it takes several tries to smooth things out.


Good luck with it, and just reach back if you got more questions!

Avatar
Ignorer
Publications associées Réponses Vues Activité
2
avr. 21
6698
4
sept. 25
1249
0
juil. 25
1280
1
avr. 25
3931
0
févr. 25
2162