Всем привет! Мне необходимо что-то типа пайпа с кешированием данных на диске. То есть, нужен интерфейс пайпа - чтение, запись, однако, помимо этого, необходимо иметь возможность хранения непрочитанных данных на диске с возможностью последующей отложенной обработки. Существует ли что-нибудь такое в природе или нужно 'изобретать велосипед'?.. Спасибо
если постоянно будешь общаться с диском - будет накладно. тогда проще взять и заюзать обычные файлы. будет тебе и чтение, и запись, и интерфейс и хранение данных на диске (ну или в кеше ФС).
в любом случае, что-то, связанное с файлами, тебе потребуется. идеальным вариантом будет, имхо, файловая секция. создаешь временный файл, проецируешь его себе, дальше орудуешь в памяти то-сё, так же её себе проецирует и твой клиент (или сервер, в зависимости от твоей роли), и вы храните поочередно там последние, допустим, 5 сообщений. обрабатываете - стираете. если что-то грохнется, процесс вылетит или нужно будет просто отложиьт на потом - не вопрос, грохаете секцию, содержимое остаётся в кэше ФС, потом переходит в файл и остается на диске. когда нужно - открываете, проецируете, обрабатываете снова. чем не вариант?
Нет, не постоянно... Хотя, постоянное обращение к диску можно побороть буферизацией. Пайп бы был очень удобен, тут же придётся отслеживать чтение данных из начала файла (PipeFileRead) с целью осуществления некой уборки мусора - прочитанных и обработанных данных.
Вариант. Что-то похожее и получается. Только есть одно но... В файле должен быть заголовок с указанием места записи, места чтения. И к данному файлу время от времени должна применяться "чистка", чтобы он не разрастался за счёт находящихся в начале считанных и обработанных данных. Собственно вопрос был в том, а нет ли чего такого системного или ещё какого, чтобы не делать пустой работы
7mm по идее вообще нужно не пайп и буффер а Вот это http://activemq.apache.org/ промышленная система работы с сообщениями, но это твоё дело..