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