По моему не очень production-ready.
Что же делать? Отправлять disckcache на сетевой диск? Не, я бы не стал. Ведь есть отличная альтернатива! Это Redis.
Redis это жутко быстрая in-memory база данных. Запись в неё похожа на документоориентированные NoSQL базы данных. То есть без схемы, без таблиц. Просто
ключ=значение.Redis используется для кэширования и как брокер для передачи сообщений. Имеется подписка на изменения и время жизни записей.
Вот пример кода:
import redis
R = redis.Redis()
R.set('key', 'value')
R.get('key')
# b'value'
Имея такой функционал, давайте реализуем что-то очень удобное для обмена данными по сети... Хотя подождите ка, всё уже придумано до нас! И это проект PyRSMQ
Что он делает?
Создаёт очередь сообщений которые может забирать другой клиент.
Как это организовать?
Для начала поднимаем cервер Redis.
Потом на одном хосте создаём очередь для отправки.
queue = RedisSMQ(На другом хосте содаём клиента для прослушивания очереди
host=host,
port=port,
qname='example'
)
queue.exceptions(False).\
createQueue(delay=0).\
vt(message_live_time).\
execute()
on_receive = lambda msg: print(msg)Начинаем прослушивание очереди
consumer = RedisSMQConsumer(
'example', on_receive
host=host, port=port)
consumer.run()Теперь можем отправлять сообщения
queue.sendMessage(delay=0).message(msg).execute()Теперь все сообщения, отправленные в очередь, будут попадать в наш колбек
on_receive.
▫️Обязательное условие — наличие поднятого Redis-сервера.
▫️Единственное ограничение, обусловленное спецификой инструментов, данные должны быть JSON serializable.
#libs