Enlaces relacionados

Enlaces relacionados

¿Existe alguna manera de implementar lapatrón de publicación/suscripción¿Desde la línea de comando sin utilizar un proceso de servidor? Esto sólo necesita funcionar en una máquina.

Lo principal que quiero evitar al no tener un proceso de servidor es configurar una máquina para usar estas herramientas. También estoy muy interesado en no tener que lidiar con la posibilidad de que el proceso de mi servidor muera.|

Esto podría verse así:

# client 1
subscribe name | while read line; do echo $line; done

# client 2
subscribe name | while read line; do echo $line; done

# server
echo message | publish name

Enlaces relacionados

Respuesta1

Todos los suscriptores deben ser notificados de los nuevos datos de una manera que no afecte a otros suscriptores y el servidor no debe tener que realizar un seguimiento de los datos que los suscriptores han recibido. Esto hace que FIFO sea inútil para este propósito. Irónicamente, un archivo normal hará exactamente lo que usted desea porque los descriptores de archivos en archivos normales realizan un seguimiento de los cambios del archivo. Puede combinar esto con sobrescritura, lo que garantiza que todos los cambios se publiquen antes de que se produzca una nueva sobrescritura, lo que significa que solo almacenará un mensaje.

touch pubsub

tail -f pubsub | while read line; do echo $line; done
tail -f pubsub | while read line; do echo $line; done

echo "message" | cat > pubsub

Obtendrá un "archivo truncado" en el error estándar, que es el comportamiento esperado, pero si no desea verlo, agregue 2> /dev/null

tail en realidad hace todo lo que lee y hace eco, pero está escrito así porque supongo que quieres incorporarlo en un script.

información relacionada