The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Отчёт о развитии FreeBSD за первый квартал 2020 года"
Отправлено Аноним, 15-Апр-20 21:33 
Так ведь задача была добавить в жсон, потому что это "бд" на диске -- жсон. Всё может быть интересней, когда этот файл модифицируется в несколько потоков, т.е. его надо перечитывать при каждом добавлении (в практическом коде такой вариант есть, воркеры независимы -- нужна только блокировка в момент записи, чтобы избежать гонки в паре мест, а данные кто успел того и тапки, они в случае невероятного совпадения обновятся последним вошедшим). Да и я тут уже нарвался пару раз на ограничения передаваемых по трубе данных… Ну, можно вроде такого, сразу добавить все новые данные на диск

jq>"j2.json"<<<$(jq --sort-keys -c '. += {"key1": {"item1":["value1"],"item2":["value2"]},"key2": {"item1":["value1"]}}'<j.json)

Только тут ведь как, jq же их все генерирует, эти элементы, и обновляет при необходимости. Ну, чтобы там не было дубликатов, перезаписывает значения, и всё остальное. Я же не буду это в баше делать... Это придётся костылить массивы и прочее, потом каждый элемент хэштейбла будет хэштейблом. который будет содержать ареи и так далее… Хотя… Не, чёт я прогнал, в баше так будет сделать нельзя. Ну, арей хештейблу не присвоишь, только строку. Это городить eval с овер 100500 (буквально) переменных, этот способ ой ой ой какой костыльный, переменные будут называться key1item1=(value1 value2), нам надо вести учёт этих переменных, потом как-то проверять есть ли они вообще, перебирать через eval это всё по 5 раз, посимвольно сравнивать строки миллиарды раз, и вообще это всё очень неприятно. Тут и баш начнёт тормозить. Средствами баша это нормально не решается, скорее всего.

А зачем в несколько потоков? Это разные процессы, и они добавляют данные параллельно… Есть логика сравнения времени изменения и синхронизации. Конечно, вариант висеть демоном в питоне, но тогда я опять же ограничен синхронизацией, трубой, 1 потоком, и постоянной сериализацией/десериализацией. Наверное, и не скалируется вообще, и этот многогигабайтный питон висящий фоном… Немного быстрее будет конечно, хотя бы потому что питон может в сложные структуры вроде вложенных хэштейблов, но.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру