/ / Comunicação entre processos usando arquivos de texto físicos - python, c ++, pipe, comunicação entre processos

Comunicação entre processos usando arquivos de texto físico - python, c ++, pipe, inter-process-communicat

Estou lendo dados financeiros do meu corretor emem tempo real através de uma API Websocket. O cliente é escrito em Python. Eu tenho outro programa C ++ que lê esses dados, mas a maneira como estou me comunicando com o script python é através de um arquivo de texto físico.

Minhas perguntas são ...

1) Reescrever constantemente o arquivo de texto, abrindo, lendo e fechando sempre que afeta o desempenho? Em caso afirmativo, qual é a melhor maneira de fazer isso? O desempenho no meu aplicativo é crucial.

2) Usar pipes nomeados seria uma opção melhor? Ou isso é praticamente o mesmo que escrever e ler em um arquivo de texto?

Respostas:

3 para resposta № 1

OS modernos suportam muitos IPC. Canos, pipes nomeados, soquetes, memória mapeadaarquivos, ... A escolha de uma solução ou de outra depende muito do seu aplicativo. Mas, em termos gerais, todos eles devem ser "melhores" do que usar um arquivo antigo simples.

Como o IPC são objetos gerenciados pelo sistema operacional, eles são não depende do idioma usado para escrever ovários processos. Alguns IPC têm um arquivo semântico (pipes, pipes nomeados). Outros requerem o uso de alguma primitiva de sistema dedicada (mmap). Mas C ++ e Python (e muitas outras linguagens) suportam a chamada de sistema necessária. De fato, os IPC são ótimo para ajudar softwares escritos em diferentes idiomas a falarem juntos.