Помогите Теряется соединение с бд

  • Автор темы Автор темы reZero
  • Дата начала Дата начала
если логика onEnable() и onDisable() правильно реализована, то ни чем не грозит
Грозит. Классы неспособны выгружаться из оперативной памяти по некоторым причинам. В итоге в ОЗУ создаётся несколько копий одних и тех же классов, что уже приводит к дальнейшим проблемам на уровне JVM
 
Это если перезагружать путем выгрузки и загрузки. А есть простое PluginManager#disablePlugin enablePlugin
 
Почитают те, кто реально хочет досконально разобраться. Пользы больше будет. Ну, и благодарность вместо испанского стыда
Жесть тя задело)

Ну, окей.
Речи про целый поток не было, была речь про отдельный. Отдельный от основного серверного.
Отдельный поток это и есть целый поток)) (целый поток = 1 поток, с намеком на то, что слишком жирно для IO ожидания)

Никак иначе, внезапно, это работать не может - иначе это будет являться блокировкой основного потока.
У тебя на руках целый нетти, а ты не можешь дождаться ответа от бд неблокирующе))

И ещё одно открытие - асинхронные баккитовские шедулеры, которые я привёл в пример, не создают по потоку на каждую задачу.
Неожиданно, правда?

Умничать и я умею, вот только какой в этом смысл, если человеку нужно сообщить об элементарной вещи, вникать в принцип работы которой ему сейчас нет никакой нужды?
Ты кринжуешь, а не умничаешь: просто вкинул что-то максимально не связанное. И так очевидно, что бакит просто экзекютор сервис оборачивает.
 
вообще я слышал со времен DOS много времени прошло и отдельный поток в каком бы то ни было смысле не является чем-то странным)
в любом нормальном java приложении в принципе дохрена потоков. начиная с gc, заканчивая io и логикой, и это не является какой-то проблемой.
Ну понятно да, жава и с 10к потоками жить будет, но не так эффективно, так что при норм нагрузках стоит думать о неблокирующей работе с io
 
Ну понятно да, жава и с 10к потоками жить будет, но не так эффективно, так что при норм нагрузках стоит думать о неблокирующей работе с io
мой кор жил 5 дней с 90к потоками и максимально эффективно потреблял ресурсы
 
У тебя на руках целый нетти, а ты не можешь дождаться ответа от бд неблокирующе))
И так очевидно, что бакит просто экзекютор сервис оборачивает.
Возможно я открою секрет, но netty тоже использует пул потоков для отслеживания различных событий.
И экзекъютор сервис, внезапно, тоже.
И все это потоки являются отдельными от основного игрового процесса.

Отдельный поток это и есть целый поток)) (целый поток = 1 поток, с намеком на то, что слишком жирно для IO ожидания)
Отдельный поток - это отдельный поток. В этом потоке можно дожидаться выполнения хоть 100500 различных операций. А целый поток под каждую задачу никто и не предлагал создавать.

Ты явно читаешь то, что хочешь видеть, а не о чём ведётся речь. Я уже сказал - займись чем-то более полезным вместо пустого трёпа.

вообще я слышал со времен DOS много времени прошло и отдельный поток в каком бы то ни было смысле не является чем-то странным)
в любом нормальном java приложении в принципе дохрена потоков. начиная с gc, заканчивая io и логикой, и это не является какой-то проблемой.
На переключение ядер между разными потоками уходит какое-то время, пускай и незначительное. Поэтому чем меньше этих потоков - тем эффективнее всё работает
 
Последнее редактирование:
мой кор жил 5 дней с 90к потоками и максимально эффективно потреблял ресурсы
Я считаю, что 90000 потоков это слишком мелко для такого проекта как у вас. Я предлагаю вам увеличить ваш пул потоков как минимум в 3 раза, и аптайм также увеличить в 3 раза, чтобы перезапусков не было.

Как вы такое прокомментируете?
 
Я считаю, что 90000 потоков это слишком мелко для такого проекта как у вас. Я предлагаю вам увеличить ваш пул потоков как минимум в 3 раза, и аптайм также увеличить в 3 раза, чтобы перезапусков не было.

Как вы такое прокомментируете?
да
 
Возможно я открою секрет, но netty тоже использует пул потоков для отслеживания различных событий.
И экзекъютор сервис, внезапно, тоже.
И все это потоки являются отдельными от основного игрового процесса.
Ты чет вообще не шарящий), нетти может работать и на одном потоке, он не блочащий, пул потоков для безопасности от пользовательских блочащих обработок.

Отдельный поток - это отдельный поток. В этом потоке можно дожидаться выполнения хоть 100500 различных операций. А целый поток под каждую задачу никто и не предлагал создавать.
У тебя под каждую задачу с пуллом потоков будет один тред висеть, если большинство этих операций это IO ожидание (от бд и т. п.), то при 10к одновременных запросах у тебя будет 10к потоков, а хватило бы одного)

Ты явно читаешь то, что хочешь видеть, а не о чём ведётся речь. Я уже сказал - займись чем-то более полезным вместо пустого трёпа.
Да не, просто не ожидал что ты настолько нешарящий и тебе разжевывать простые вещи надо)
 
Последнее редактирование:
Ты чет вообще не шарящий), нетти может работать и на одном потоке, он не блочащий, пул потоков для безопасности от пользовательских блочащих обработок.


У тебя под каждую задачу в с пуллом потоков будет один тред висеть, если большинство этих операций это IO ожидание (от бд и т. п.), то при 10к одновременных запросах у тебя будет 10к потоков, а хватило бы одного)


Да не, просто не ожидал что ты настолько нешарящий и тебе разжевывать простые вещи надо)
Ладно, бесполезный разговор. Не понимаешь, что я пишу.
Теперь хоть какой-то смысл в твоих сообщениях появился, может кому и пригодится
 
У тебя под каждую задачу в с пуллом потоков будет один тред висеть, если большинство этих операций это IO ожидание (от бд и т. п.), то при 10к одновременных запросах у тебя будет 10к потоков, а хватило бы одного)
А целый поток под каждую задачу никто и не предлагал создавать.
То есть, если создать executor (Executors.newSingleThreadExecutor()) с одним доступным потоком, и напихать туда 10к задач с работой бд, он создаст 10к потоков? В каком месте и почему?
 
Ты чет вообще не шарящий), нетти может работать и на одном потоке, он не блочащий, пул потоков для безопасности от пользовательских блочащих обработок.
Нет конечно, распределения нагрузки по ядрам процессора.
 
У тебя под каждую задачу в с пуллом потоков будет один тред висеть, если большинство этих операций это IO ожидание (от бд и т. п.), то при 10к одновременных запросах у тебя будет 10к потоков, а хватило бы одного)
Полностью согласен, если мускул висит, не поможет и миллион потоков, тут один поток нужен, не более. И все эти костыли с либами вида hikari пул никакой производительности не дадут.
 
И все эти костыли с либами вида hikari пул никакой производительности не дадут.
хикари пул это не про костыли и не производительность (хоть разрабы и рекламировали какой он быстрый)
это просто про удобство разработки и отсутствие гемороя с открытием, закрытием и удержанием активного коннекта чтобы каждый раз не переподключаться.
из каких хочешь потоков с ним работай, это не имеет значения
 
То есть, если создать executor (Executors.newSingleThreadExecutor()) с одним доступным потоком, и напихать туда 10к задач с работой бд, он создаст 10к потоков? В каком месте и почему?
Нет конечно, нужно работать с любыми IO операциями неблокирующе и тогда хватит одного потока, да.

Полностью согласен, если мускул висит, не поможет и миллион потоков, тут один поток нужен, не более. И все эти костыли с либами вида hikari пул никакой производительности не дадут.
Причем тут пулл коннектов? Пропускная способность самой бд - фулл другая история.
 
Назад
Верх