TGViewer
Python Заметки Python Заметки @pythonotes · 2.2K subscribers
Post #271 1.93K
Самый большой минус синхронизации из прошлого поста - нестабильность. Не знаю как у вас а у меня эта штука падала несколько раз)
По моему не очень 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
Wikipedia Документоориентированная СУБД Документоориентированная СУБД (англ. document-oriented database) — система управления базами данных (СУБД), специально предназначенная для хранения иерархических структур данных (документов) и обычно реализуемая с помощью подхода NoSQL. В основе документ…
More from @pythonotes
  1. Sep 21, 2026­ WebAssembly это мощная технология позволяющая загружать практически любое приложение в б…
  2. Aug 17, 2026Не так давно столкнулся с API который в ответе с ошибкой присылал только статус-код. Без п…
  3. Jul 20, 2026У меня основная ОС это Linux. Но нередко требуется делать сборку клиента под Windows. Соби…
  4. Jul 13, 2026В прошлый раз был пример с понижением привелегий процесса. Проблема в том, что обратно под…
  5. Jul 6, 2026Модуль pwd может использоваться для считывания информации о пользователях из базы данных п…
  6. Jun 22, 2026Недавно я реализовал Multi Tenancy систему на FastAPI + SQLAlchemy и пересобрал её в небол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →