Ho due basi di codice, una in python, una in C++. Voglio condividere i dati in tempo reale tra di loro. Sto cercando di valutare quale opzione funziona meglio per il mio specifico caso d'uso:Condivisione di informazioni tra un codice python e un codice C++ (IPC)
- molti aggiornamenti dei dati di piccole dimensioni dal programma C++ al programma pitone
- entrambi corsa sulla stessa macchina
- l'affidabilità è importante
- bassa latenza è bello avere
posso vedere alcune opzioni:
- Un processo scrive su un file flat, l'altro processo lo legge. Non è scalabile, lento e soggetto a errori di I/O.
- Un processo scrive su un database, l'altro processo lo legge. Ciò lo rende più scalabile, leggermente meno incline agli errori, ma comunque molto lento.
- Incorpora il mio programma python in C++ o viceversa. Ho respinto questa soluzione perché entrambe le basi di codice sono ragionevolmente complesse e ho preferito mantenerle separate per motivi di manutenibilità.
- Io uso alcuni socket in entrambi i programmi e invio messaggi direttamente. Questo sembra essere un approccio ragionevole, ma non fa leva sul fatto che si trovano sulla stessa macchina (sarà leggermente ottimizzato usando l'host locale come destinazione, ma si sente ancora ingombrante).
- Utilizzare la memoria condivisa. Finora penso che questa sia la soluzione più soddisfacente che ho trovato, ma ha lo svantaggio di essere leggermente più complessa da implementare.
Ci sono altre soluzioni che dovrei considerare?
Utilizzare direttamente codice Python/C++ da C++/Python? –
L'API RESTful dovrebbe aiutarti di più, una perfetta lingua indipendente api – AlokThakur
@Revolver_Ocelot, possiedo le 2 basi di codice, quindi sì, posso usare il codice direttamente in ciascuna. – DevShark