1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем reZero, 6 июл 2021.

  1. Demrenus

    Demrenus Активный участник Пользователь

    Баллы:
    66
    Подобные плагины, да и вообще команду /reload не стоит юзать, багованная слишком и может плагины поломать
     
  2. ВukkitPrоfi

    ВukkitPrоfi Активный участник Пользователь

    Баллы:
    76
    если логика onEnable() и onDisable() правильно реализована, то ни чем не грозит
     
  3. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Грозит. Классы неспособны выгружаться из оперативной памяти по некоторым причинам. В итоге в ОЗУ создаётся несколько копий одних и тех же классов, что уже приводит к дальнейшим проблемам на уровне JVM
     
  4. ВukkitPrоfi

    ВukkitPrоfi Активный участник Пользователь

    Баллы:
    76
    Это если перезагружать путем выгрузки и загрузки. А есть простое PluginManager#disablePlugin enablePlugin
     
  5. gummi_anka

    gummi_anka Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    gummi_anka
    а лучше вообще не выгружать
     
  6. AbstractCoder

    AbstractCoder Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Жесть тя задело)

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

    У тебя на руках целый нетти, а ты не можешь дождаться ответа от бд неблокирующе))

    Ты кринжуешь, а не умничаешь: просто вкинул что-то максимально не связанное. И так очевидно, что бакит просто экзекютор сервис оборачивает.
     
  7. AbstractCoder

    AbstractCoder Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Ну понятно да, жава и с 10к потоками жить будет, но не так эффективно, так что при норм нагрузках стоит думать о неблокирующей работе с io
     
  8. gummi_anka

    gummi_anka Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    gummi_anka
    мой кор жил 5 дней с 90к потоками и максимально эффективно потреблял ресурсы
     
  9. AbstractCoder

    AbstractCoder Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    странно что не 5 лет с 6 млн потоками...
     
  10. gummi_anka

    gummi_anka Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    gummi_anka
    unable to create new native thread........
     
  11. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Возможно я открою секрет, но netty тоже использует пул потоков для отслеживания различных событий.
    И экзекъютор сервис, внезапно, тоже.
    И все это потоки являются отдельными от основного игрового процесса.

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

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

    На переключение ядер между разными потоками уходит какое-то время, пускай и незначительное. Поэтому чем меньше этих потоков - тем эффективнее всё работает
     
    Последнее редактирование: 11 июл 2021
  12. Sonicxd2

    Sonicxd2 Активный участник Пользователь

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

    Как вы такое прокомментируете?
     
  13. gummi_anka

    gummi_anka Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    gummi_anka
    да
     
  14. AbstractCoder

    AbstractCoder Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Ты чет вообще не шарящий), нетти может работать и на одном потоке, он не блочащий, пул потоков для безопасности от пользовательских блочащих обработок.

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

    Да не, просто не ожидал что ты настолько нешарящий и тебе разжевывать простые вещи надо)
     
    Последнее редактирование: 12 июл 2021
  15. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Ладно, бесполезный разговор. Не понимаешь, что я пишу.
    Теперь хоть какой-то смысл в твоих сообщениях появился, может кому и пригодится
     
  16. MurlikMurlik

    MurlikMurlik Активный участник Пользователь

    Баллы:
    96
    То есть, если создать executor (Executors.newSingleThreadExecutor()) с одним доступным потоком, и напихать туда 10к задач с работой бд, он создаст 10к потоков? В каком месте и почему?
     
  17. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Нет конечно, распределения нагрузки по ядрам процессора.
     
  18. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Полностью согласен, если мускул висит, не поможет и миллион потоков, тут один поток нужен, не более. И все эти костыли с либами вида hikari пул никакой производительности не дадут.
     
  19. Code

    Code Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    хикари пул это не про костыли и не производительность (хоть разрабы и рекламировали какой он быстрый)
    это просто про удобство разработки и отсутствие гемороя с открытием, закрытием и удержанием активного коннекта чтобы каждый раз не переподключаться.
    из каких хочешь потоков с ним работай, это не имеет значения
     
  20. AbstractCoder

    AbstractCoder Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Нет конечно, нужно работать с любыми IO операциями неблокирующе и тогда хватит одного потока, да.

    Причем тут пулл коннектов? Пропускная способность самой бд - фулл другая история.
     

Поделиться этой страницей