Как я должен делиться и хранить данные в небольшом многопоточном приложении на Python?
Я пишу небольшое многопоточное клиентское Python-приложение, которое содержит небольшой веб-сервер (обслуживает только страницу на локальном хосте) и демон. Веб-сервер загружает и помещает данные в постоянное "хранилище данных", а демон обрабатывает эти данные, модифицирует их и добавляет еще несколько. Следует также позаботиться о синхронизации с диском.
Я бы хотел как можно больше избегать сложных внешних вещей, таких как SQL или другие базы данных.
Каковы хорошие и простые способы проектирования хранилища данных? Бонусные баллы, если ваше решение использует только стандартный Python.
1 ответ
То, что вы ищете, не слишком специфично для Python, потому что AFAIU вы хотите общаться между двумя разными процессами, которые только случайно написаны на Python. Если это действительно ваша проблема, вы должны искать общее решение, а не специфичное для Python.
Я думаю, что простое хранилище данных со значением ключа No-SQL, такое как, например, Redis, может быть очень хорошим решением для вашей ситуации. В отличие от "сложного" использования инструмента, разработанного специально для этой цели, ваш код станет проще.
Если вы настаиваете на решении только для Python, рассмотрите возможность использования привязок Python для SQLite, которые уже предустановлены с Python. БД SQLite может одновременно безопасно использоваться двумя процессами, если ваша семантика доступа к данным хорошо определена (т. Е. Проблемы, которые вам все равно придется решать, несмотря на инструмент).