Копирование твиттер-потока в объекты: могу ли я отставать? - PullRequest
2 голосов
/ 16 января 2012

В настоящее время я работаю над приложением, которое читает поток из Twitter API и разбирает его на объекты. В данный момент я читаю поток и использую ReadObject(...) из DataContractJsonSerializer для создания своих объектов и записываю их в буфер в памяти (не волнуйтесь, я читаю их из этого буфера асинхронно и сохраняю максимум 100 объектов до Я начинаю перезаписывать старые).

Это прекрасно работает !! ОДНАКО: есть ли у меня гарантия, что чтение / запись будут идти в ногу с реальным потоком. Если это не так; что я могу с этим поделать?

Ответы [ 2 ]

1 голос
/ 16 января 2012

Вы можете использовать BlockingCollection для буфера, таким образом, вместо перезаписи старых записей, попытка добавить более 100 элементов будет блокирована, пока ваш ридер догонит.

0 голосов
/ 16 января 2012

Насколько я понимаю, у вас не будет такой гарантии.Если у вас есть ограничение в 100 буферизованных объектов, вы можете добраться до точки, где этот буфер заполнен новыми объектами, появляется новый и что-то перезаписывается.На самом деле это компромисс: чем больше вы оставляете в своем буфере, тем выше безопасность, чтобы не отставать от использования большего объема ОЗУ.

Единственная альтернатива, которую я вижу, - это написать собственный планировщик, приоритизирующий обработку буферизованной обработки.объекты над чтением новых из потока.

...