pablo ha scritto:
supponi che hai un modulo che in modo automatico traccia gli articoli che escono da una catena di produzione. Immagina che la fabbrica di cui si sta parlando è una cartiera. Ogni volta che devi aggiornare il software di produzione fai fermare la macchina?
Ti dico solo che per fermare una macchina di cartiera ci vuole un giorno, e un giorno intero per farla ripartire.
Le best pratices sono belle e sono d'accordo pure io che bisognerebbe fare così, ma la situazione reale è ben diversa e molto spesso la teoria non può essere applicata alla lettera per via del fattore "economico", determinante nel settore in cui questo software si vuole porre.
Comunque davvero, nessun problema; Ci limiteremo ad usare odoo solo in certi ambiti, anche perché apparte questo aspetto ( e un'altro "problemino" lega
Pablo ci si prova a darti qualche consiglio, ovviamente se vorrai accettarlo ... perchè se hai gia' deciso non ha senso parlarne.
Il problema è nel modulo che in automatico si interfaccia con la "cartiera", quel modulo non andava assolutamente scritto in quel modo. Come ti ho suggerito qualche post addietro, devi usare qualcosa come activemq (che implementa il pattern del produttore/consumatore ovvero le code). Questo strumento mantiene le informazioni fintanto che qualcuno non le consuma. Se il tuo modulo leggesse da activemq e non direttamente dalla macchina il problema non ci sarebbe e potresti riavviare odoo tutte le volte che vuoi.
Ancora una volta pero' ci sarebbe il problema in caso di riavvio di activemq, si dovrebbe pertanto interfacciare acitivemq (o altra componente a tua scelta) con un software SCADA che gestisca le code a livello di protocollo di comunicazione.
L'errore pertanto risiede nell'aver implementato la logica di comunicazione direttamente in odoo. Certo si puo' fare, forse l'hai fatto, ma devi accettare le conseguenze di un cattivo design del software.