Профиль пользователя заблокирован сроком с 24 марта 2024 г. и навсегда по причине: систематические нарушения пункта 5.2 правил сервиса
  • Где и как хранить файлы пользователей?

    @My1Name Автор вопроса
    Сергей delphinpro, проблема не в именах файлов. У меня такая структура, что я свободно могу указать лимит количества папок в одном каталоге в соответствии с файловой системой. Это вообще не вопрос. Реальная проблема в том, как проверить, сколько физического места занимает папка пользователей "users"?

    Лично я знаю только один вариант: Обойти все файлы и суммировать их размер. А если файлов много (гигабайты или терабайты), то система подвиснет на время подсчета. И это проблема.
    Написано
  • Где и как хранить файлы пользователей?

    @My1Name Автор вопроса
    Dmitry Roo, проблема в том, что относительный адрес нужно менять в двух случаях: 1. Количество каталогов достигает лимита файловой системы. 2. Мало памяти на накопителе.

    Первый вариант достаточно просто решить. А во втором случае, нужно обойти все файлы в каталогах и суммировать их размер. Это "дорогостоящий процесс", если файлов миллионы и всё это дело измеряется гигабайтами или терабайтами данных. В это время, приложение может подвиснуть на какое-то время...
    Написано
  • Где и как хранить файлы пользователей?

    @My1Name Автор вопроса
    Dmitry Roo, первая ссылка интересная, но всё как-то очень сложно... У меня конфигурация системы (пути к внешним каталогам и файлам) подгружается через класс Tools. В этом же классе реализованы методы, которые читают системные файлы, которые админ (через своеобразную CMS приложения) может менять.
    Написано
  • Где и как хранить файлы пользователей?

    @My1Name Автор вопроса
    Место хранения следует задавать переменной

    Я предусматриваю "alternativeUsersPath" в виде LinkedList, но пока что не реализовал... Есть ссылка на пример организации адресов через переменную?
    Написано
  • Где и как хранить файлы пользователей?

    @My1Name Автор вопроса
    Сергей delphinpro, Что делать, если количество папок в главном каталоге "users" достигнет 1000 и пойдёт дальше (до ограничения файловой системой)? Как решают такие проблемы?
    Написано
  • На сколько популярно и корректно хранить данные в столбце в виде JSON строки?

    @My1Name
    Интересный, содержательный и познавательный ответ. Особенно понравилось начало:
    Все данные должны быть атомарны. И ты - плохой DBA и программист если
    кладешь в ячейку что-то более комплексное чем просто атом

    и конец:
    Если вы очень часто обновляете маленькое поле внутри большого JSON документа и это создает сильные I/O нагрузки то скорее всего вам надо перепроектировать вашу БД как-то по другому и вынести это поле во вне по отношению к документу
    Написано
  • Почему не выполненяется условие?

    @My1Name Автор вопроса
    settings - boolean
    flag - String
    Написано
  • Почему не выполненяется условие?

    @My1Name Автор вопроса
    Kentavr16, я хочу чтоб оно логически работало.
    Написано
  • Почему не выполненяется условие?

    @My1Name Автор вопроса
    Kentavr16,
    Убери проверку на true. что-то вроде if(settings && flag)

    Так и сделал. Теперь только этот участок кода и выполняется... Даже если settings или flag == false
    Написано
  • В каком контексте значение класса String является неизменяемым в отличии от StringBuilder?

    @My1Name
    p.s. если вы работаете с текстовым документом ~2-3Мб (толстенькая книга), нужно изрядно "поизвращаться" при написании программы, чтоб поймать outofmemoryerror на современном ПК, используя простой оператор сложения + или сложения с присваиванием +=
    Написано
  • Есть сервера, которые стоит написать именно на Java, а не на Node?

    @My1Name
    Everything_is_bad,
    уже всё намного сложнее и Node.js умеет много из компилятор про оптимизацию кода

    Сложнее != Лучше. В любом случае JavaScript проходит через интерпретатор и парсеры. А программист Java сам пишет интерпретатор... Код Java в скомпилированном виде - это байт-код. JavaScript проходит через парсер и конвертируется в байт-код в процессе выполнения. То есть Java уже на этой ступени в 2 раза быстрее.

    в неумелых уже с чем-то другим работает?

    Можно построчно работать с файлами как в JavaScript... Особенности Java - это возможность использовать stream практически везде. И эта особенность позволяет использовать железо по максимуму. Рангом ниже - C/C++ и ассемблер (машинный код).

    вот и уехали на 10 лет назад, jQuery уже фактически легаси, pure js в современных браузерах достаточно

    Достаточно - это кто сказал!? О_0 Тот, кто утверждает, что читая построчно кучу строк кода в одном потоке, JavaScript работает быстрее?
    Написано
  • Есть сервера, которые стоит написать именно на Java, а не на Node?

    @My1Name
    MishaXXL, Во-первых на 1000 соединений проблем с нехваткой памяти быть не должно. А во-вторых в Java проблемы с памятью решаемы.
    https://javaupdate.ru/help/kak-uvelichit-pamyat

    https://habr.com/ru/articles/549176/

    Я когда-то писал "web-spider", который коннектился каждую секунду к 50 разным доменам (это Max. на моём старом ПК на win7), через мин. ~2-3 возникала проблема с нехваткой сокетов, но не с памятью.

    https://habr.com/ru/articles/661169/
    Написано
  • Можно ли использовать Elasticsearch для поиска в файлах?

    @My1Name Автор вопроса
    Иерокопус Таманский, по ссылке в комментариях есть кусок кода, который можно "поюзать":

    Почему поиск FuzzyQuery (Apache Lucene) ничего не возвращает?
    Написано
  • Можно ли использовать Elasticsearch для поиска в файлах?

    @My1Name Автор вопроса
    Иерокопус Таманский, Да, получилось. Ещё раз - спасибо. Там в принципе нет ничего сложного. Код нормально читаем и применим для разных проектов. Однако, я пока что отодвинул задуманное на потом...
    Написано
  • Почему SseEmitter шлет сообщения по кругу?

    @My1Name
    artemfisher,
    почему отправляет без конца сообщения эмиттер?

    "без конца" это сколько?)) 30 секунд?

    Я не читал дословно документацию, но на сколько я знаю SseEmitter работает по UDP протоколу. Если он постоянно посылает сообщения, то сервер подвис в каком-то цикле.

    По логам в браузере предполагаю, что проблема в том, что var sse = new EventSource(url) вызывает метод контролера, а не просто ждет сообщений от него как должен.

    А как иначе? - Так работает фреймворк Spring: Каждое действие с url - это обращение ̶(в̶ы̶з̶ы̶в̶а̶е̶т̶) к соответствующему методу контроллера по указанному адресу. И дело не в SseEmitter, а в том, как вы понимаете работу фреймворка... Рекомендую для начала разобраться со Спрингом, а потом строить более сложные программы.
    Написано
  • Почему SseEmitter шлет сообщения по кругу?

    @My1Name
    artemfisher,
    Подозреваю, что проблема с клиентской стороны.

    Клиент условно "висит" на канале столько, сколько выделено времени для работы SseEmitter. Соединение создаётся один раз. Клиент только слушает события посылаемые сервером.
    Написано
  • Почему SseEmitter шлет сообщения по кругу?

    @My1Name
    Зачем вы создаёте в теле метода pool потоков Executors.newCachedThreadPool(); ? Тут нужен SingleThreadExecutor() коль вы создаёте поток на каждый EventSource.

    Если Elements - объект JSOUP, то эта строка тоже лишняя: List<Element> elems = elements.stream().toList();
    Вы получаете массив элементов, подобно JavaScript (select). Их можно просто перебрать. Stream не нужен. См. пример

    сразу на клиент приходит 4 строки из цикла и строка, которая идет после цикла.

    Вероятно у вас 4 DOM элемента (elements) на каждый из которых, вы создаёте новый Thread. Попробуйте добавить Thread.sleep(1000); после emitter.send(s);

    Почему SseEmitter шлет сообщения по кругу?

    SseEmitter по умолчанию открывает поток на 30 секунд (если я не ошибаюсь) и, в течении этого времени работает однонаправленное socket (WebSocket) соединение. Время работы можно задать следующим образом:SseEmitter emitter = new SseEmitter((long) 10000);
    Написано
  • Как после редактирования в модальном окне сохранить данные в БД?

    @My1Name
    Валерий Витальевич,
    Передается пустые данные

    да, вы ничего не передаёте. У вас пустой ajax запрос. И я не читаю php, поэтому отвечаю на вопрос только относительно ajax
    ¯\_(ツ)_/¯

    Если вы хотите сохранить данные пользователя, то вам нужно реализовать метод сохранения и, передавать соответствующие данные. Например, перечислить через запятую:
    data : {redCom:comId, userName:name, age:18 ..и т.д... },

    Можно и объект в формате json отправить, но вы должны уметь его принять. Лично я не знаю как это делается на php.

    Отправляемая форма принимается по адресу, который вы указываете в ajax запросе url : 'address/to-do-something' Ваш сервер должен уметь принимать и обрабатывать (сохранять) по указанному адресу соответствующую информацию.
    Написано