Поддержу тему. С последних обновлений (27.1.1 точно) происходит постоянная утечка памяти,(статистика которой, по какой то причине, не показывается, чем занята в диспетчере, но занятость показывает), чем дольше работает скрипт (тестил и скомпилированное приложение и в редакторе, причём разные скрипты), тем больше течёт, вплоть до ошибки обращения к памяти (выделял до 128 гб на сервере, при 40 потоках браузера забивается за сутки).
Возможная проблема в эмуляции бездействия новой, но не могу подтвердить.
Многопоток при работе с базой MySQL
-
Потоки скрипта берут строки из удаленной базы MySQL. Время работы потока может доходить до 2-х минут, нужно чтобы в это время другой поток не взял ту же самую строчку. Искал по форуму, видел разные варианты. Если делать дополнительный столбец и ставить там метку, что строчка в работе, может произойти ситуация, что поток закончится с непредвиденной ошибкой, и строчка останется залоченной. То же самое может произойти, если в глобальную переменную записывать id строк, которые в работе.
Может есть еще вариант, как это реализовать?
-
@zelenberg said in Многопоток при работе с базой MySQL:
Потоки скрипта берут строки из удаленной базы MySQL. Время работы потока может доходить до 2-х минут, нужно чтобы в это время другой поток не взял ту же самую строчку. Искал по форуму, видел разные варианты. Если делать дополнительный столбец и ставить там метку, что строчка в работе, может произойти ситуация, что поток закончится с непредвиденной ошибкой, и строчка останется залоченной. То же самое может произойти, если в глобальную переменную записывать id строк, которые в работе.
Может есть еще вариант, как это реализовать?
В чем сложность обернуть логику в функцию? И запускать ее с игнорированием ошибок и если будет какая то ошибка, то откатывать что-то в БД? Есть же еще и транзакции.
Также можно брать из БД запись, лочить ее и если поток грохнется, то соединение с БД закрывать и блокировка должна сняться автоматически(зависит от типа блокировки).https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html