У меня есть сервер Ruby, который читается из плоского файла каждые 1 секунду или около того, и этот плоский файл постоянно обновляется новыми данными каждые 1 секунду или около того другим сервером. Этот плоский файл по существу является файлом JSON. Дело в том, что я не хочу читать весь файл снова и снова. Скорее, я хочу, чтобы рубиновый сервер определил, какой из контента является новым, и читайте только те части. Поэтому я предполагаю, что я ищу анализатор JSON с явным успехом для Ruby. Поскольку я очень новичок в Ruby, я не знаком с такой библиотекой. Может ли кто-нибудь предложить что-то, что может работать в такой ситуации?Stateful JSON Parser for Ruby
ответ
Нет такой вещи, как «анализатор JSON с выраженным состоянием». Stateful (как в «stateful server») означает, что сервер (или парсер) поддерживает некоторое состояние между запросами (разборами). Но вам все равно придется читать и разбирать весь файл, так зачем же усложнять материал?
Если файл невелик, просто разборьте его целиком каждый раз. Если файл является ginormous, используйте базу данных.
«Но вам все равно придется читать и разбирать весь файл». Это моя проблема. Есть ли способ не делать это каждый раз? Может ли запись в синтаксическом анализаторе останавливаться и возобновляться оттуда в следующий раз? Я надеюсь, что есть парсер, который может это сделать? – InfiniteLoop
Итак, другой процесс, это только добавление к файлу? –
И да, файл большой. Он будет содержать несколько тысяч строк JSON, и я стараюсь делать все в режиме реального времени. Вот почему я не хочу постоянно читать весь файл. Я мог бы использовать базу данных, но я подключаю этот модуль к другому большому, и он записывается в плоские файлы. Изменение это довольно сложно, и это не дорога, которую я хочу взять. Вот почему я пытаюсь решить проблему таким образом. Любая помощь приветствуется! Благодаря! – InfiniteLoop
- 1. Адрес Parser for Ruby
- 2. Parser for JSON String
- 3. Ruby JSON parser оправдано, не нравится пробел?
- 4. HTML Parser for C
- 5. Parser for Wikipedia
- 6. Parser for OCaml
- 7. Emmet Parser for PHP
- 8. RSS Parser for Django
- 9. Parser for Expression Filter
- 10. Crawler/parser for Xapian
- 11. RSS Parser for .NET
- 12. Parser tags for OpenNLP
- 13. Parser for C#
- 14. Python parser for Calculator
- 15. Batch 'FOR' Loop Parser
- 16. C# parser for ActiproSyntaxEditor
- 17. PHP JSON Parser v.s. Javascript JSON Parser
- 18. Ruby GPX file parser
- 19. Ruby parser in Java
- 20. Call for Boost JSON parser никогда не возвращает
- 21. AX - Asp Xtreme Evolution - Json parser for classic asp
- 22. my json parser for jsonarry просто получает первый элемент
- 23. JSON CSS parser
- 24. Parser for reading Objective-C
- 25. iphone: xml parser for ajax
- 26. DOM parser for non xml
- 27. Stringify object for qs parser
- 28. YAML Parser for Excel VBA
- 29. C Code Parser for .NET
- 30. Json Parser Данные
Вы хотите иметь возможность анализировать по мере поступления данных? –
@FrederickCheung: «какой из материалов является новым» - я не думаю, что он говорит о файле только append. –
@FrederickCheung: Как упоминал Серджио, я хочу читать только новое содержание. Я хочу иметь возможность следить за тем, где закончилась предыдущая операция чтения в этом файле, и возобновить чтение. Это проблема. Я не могу понять, как это сделать. Кроме того, я пишу демона, который будет периодически очищать файл, удаляя предыдущие строки json после достижения порогового значения. Это добавляет проблемы. Какие-либо предложения? – InfiniteLoop