Я создаю приложение (приложение A) на Python, которое прослушивает порт, получает записи NetFlow, инкапсулирует их и безопасно отправляет их в другое приложение (приложение B).Приложение А также проверяет, была ли запись успешно отправлена.Если нет, его нужно сохранить.Приложение A ждет несколько секунд, а затем пытается отправить его снова и т. Д. Это важная часть.Если отправка была неудачной, записи должны быть сохранены, но в то же время может поступить гораздо больше записей, и их тоже нужно сохранить.Идеальный способ сделать это - очередь.Однако мне нужно, чтобы эта очередь была в файле (на диске).Я нашел, например, этот код http://code.activestate.com/recipes/576642/, но он «При открытии загружает полный файл в память», и это именно то, чего я хочу избежать.Я должен предположить, что этот файл с записями будет иметь до пары ГБ.
Итак, мой вопрос, что бы вы рекомендовали хранить эти записи?Он должен обрабатывать много данных, с другой стороны, было бы замечательно, если бы он не был слишком медленным, потому что во время нормальной работы одновременно сохраняется только одна запись, и она сразу же читается и удаляется.Таким образом, основное состояние - пустая очередь.И это должно быть поточно-ориентированным.
Должен ли я использовать базу данных (dbm, sqlite3 ..) или что-то вроде pickle, shelve или что-то еще?
Я немного запутался в этом ..Спасибо.