Хорошая постоянная синхронная очередь в python - PullRequest
5 голосов
/ 30 декабря 2011

Меня не волнуют варианты fifo или filo, но в будущем это может быть хорошо ..

То, что я ищу, - это хороший, быстрый и простой способ хранения (не более одного гигабайта данных или десятков миллионов записей) на диске, который может быть получен и помещен несколькими процессами. Записи - это просто 40-байтовые строки, а не объекты Python. На самом деле не нужны все функции полки .

Я видел это http://code.activestate.com/lists/python-list/310105/ Это выглядит просто. Его необходимо обновить до новой версии очереди.

Хотите знать, есть ли что-то лучше? Меня беспокоит, что в случае сбоя питания весь засоленный файл будет поврежден, а не только одна запись.

Ответы [ 3 ]

3 голосов
/ 30 декабря 2011

Попробуйте использовать Сельдерей .Это не чистый Python, так как он использует RabbitMQ в качестве бэкэнда, но он надежен, постоянен и распределен, и, в целом, гораздо лучше, чем использование файлов или базы данных в долгосрочной перспективе.

2 голосов
/ 18 февраля 2012

Я думаю, что PyBSDDB - это то, что вы хотите. Вы можете выбрать очередь в качестве типа доступа. PyBSDDB - это модуль Python, основанный на Oracle Berkeley DB . Он имеет синхронный доступ и может быть доступен из разных процессов, хотя я не знаю, возможно ли это из привязок Python. О нескольких процессах записи в БД я обнаружил эту ветку .

0 голосов
/ 30 декабря 2011

Использование файлов не работает? ...

Использовать файловую систему журналирования для восстановления после сбоя питания.Это их цель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...