Múltiplos redirecionamentos para o mesmo arquivo por 2 scripts, quebra no meio da frase

1

Eu tenho 2 programas, ambos gravando no mesmo arquivo ( /tmp/outfile ). Iniciado pelo cron ao mesmo tempo.

Basicamente, isso é o que está acontecendo:

echo -n "1111111111" >> /tmp/outfile

E ao mesmo tempo:

echo -n "2222222222" >> /tmp/outfile

O arquivo de saída diz " 11111222222222211111 ". Este é um exemplo, estou falando de centenas de linhas, em que uma linha é "cortada" no meio da frase, mas, simplesmente, a coisa acima está acontecendo.

Como evitar esse comportamento?

    
por Karlo 15.03.2018 / 11:16

1 resposta

2

Existem duas maneiras óbvias de resolver isso:

  1. Serialize as tarefas. Em vez de agendar as duas tarefas ao mesmo tempo, agende um script que execute as tarefas uma após a outra.

  2. Use um esquema de bloqueio consultivo para bloquear a operação de gravação das tarefas de forma que apenas uma tarefa possa gravar por vez. Veja as perguntas marcadas com e .

Esses dois podem ser combinados em um único script que executa as duas tarefas em segundo plano, enquanto as próprias tarefas usam alguma forma de bloqueio para não produzir saída distorcida / misturada.

    
por 16.03.2018 / 08:44