@clocky bez raznici, mobilnie ili rezidenti
dopustim u tebya 10 potokov, 9 proxy
9 potokov rabotaet, 10 jdet kogda osvoboditsa proxy... zakonchit dopustim 1-y, on osvobodil svoyu stroky proxy=>10 potok startuet s etoy strokoy, a 1-y jdet kogda stanet dostupen resurs voobshe lubogo potoka(t.e. esli zakonchit uslovniy 7-y=>1 potok startanet s proxy 7-go, a 7-y budet jdat kogda resurs snova stanet svobodetn) vot takoy cycle
poetomy s resursami vse ok, esli eto mob proxy, mojesh delat v nachale scripta sbros ip, tak tochno budesh uveren, chto noviy potok nachnetsa s novim ip
Как использовать модуль SQL(mssql) в нескольких потоках без синхронизации между потоками?
-
@blackextype, модуль работает отдельно в каждом потоке. В каждом потоке при обращении открывается новое или используется старое соединение с базой данных, если эта база уже вызывалась в этом потоке и соединение не было закрыто.
-
@GhostZ Кстати у БАС есть прикол, это ограничение вроде бы в 256 потоков при использование ноды в каждом потоке, скорей всего это конечно не ограничение БАС, но если инициализоровать ноду в onApplication и нужные функции записать в global, тогда можно хоть в 1000 потоков работать и даже нагрузка снижается.
-
@UserTrue, SQL модуль как и FTP, Excel модули, сохраняет информацию о подключения в общий глобальный объект, но SQL и FTP модули в отличи от Excel записывают каждый поток в разное свойства объекта, а в Excel для одного файла используется одно и тоже свойство во всех потоках. Это сделано для боле быстрой работы SQL и FTP модулей в многопотоке и меньшего количества проблем.
Можно сделать одно соединение для нескольких потоков установив одинаковый id, SQL:
_SQL_CONFIG.id = 'id', FTP:_FTP_CONNECTION_ID = 'id'. Но это может вызвать неожиданные ошибки и другие проблемы, так как такая работа не тестировалась. -
@GhostZ said in Как использовать модуль SQL(mssql) в нескольких потоках без синхронизации между потоками?:
@UserTrue, SQL модуль как и FTP, Excel модули, сохраняет информацию о подключения в общий глобальный объект, но SQL и FTP модули в отличи от Excel записывают каждый поток в разное свойства объекта, а в Excel для одного файла используется одно и тоже свойство во всех потоках. Это сделано для боле быстрой работы SQL и FTP модулей в многопотоке и меньшего количества проблем.
Можно сделать одно соединение для нескольких потоков установив одинаковый id, SQL: _SQL_CONFIG.id = 'id', FTP: _FTP_CONNECTION_ID = 'id'. Но это может вызвать неожиданные ошибки и другие проблемы, так как такая работа не тестировалась.Да не, дело не в подключение, ты можешь просто console.log('hi world') запустить потоков в 260 и нода в БАС начнет тайматуми сыпать. Ну это так может кому-то пригодится, наверное не многие запускают столько потоков, я запускаю ))
-
@UserTrue said in Как использовать модуль SQL(mssql) в нескольких потоках без синхронизации между потоками?:
Да не, дело не в подключение, ты можешь просто console.log('hi world') запустить потоков в 260 и нода в БАС начнет тайматуми сыпать
Ты наверное говоришь вот про эту тему https://community.bablosoft.com/topic/4162/node-js-таймаут
-
@Fox said in Как использовать модуль SQL(mssql) в нескольких потоках без синхронизации между потоками?:
@UserTrue said in Как использовать модуль SQL(mssql) в нескольких потоках без синхронизации между потоками?:
Да не, дело не в подключение, ты можешь просто console.log('hi world') запустить потоков в 260 и нода в БАС начнет тайматуми сыпать
Ты наверное говоришь вот про эту тему https://community.bablosoft.com/topic/4162/node-js-таймаут
Типо того, мы ее обсуждали вроде. Короче решаю это через global
-
@Fox @GhostZ
Вот один и тот же console.log('hi')Работает
node260 good.xmlНе работает
node260 bad.xmlВ реальных задачах, особенно с криптографией может на гораздо меньшем числе потокое такой случиться
-
@GhostZ У меня почему-то не работает, объясню на примере.
При старте скрипта в 2 потоках, 1 поток работает с БД нормально, но если не закрыть соединение, то когда 2 поток будет работать с БД вылетит ошибка
"Произошла ошибка : SequelizeConnectionError: Connection lost - read ECONNRESET"
С чем может быть связано и как фиксить? -
@UserTrue said in Как использовать модуль SQL(mssql) в нескольких потоках без синхронизации между потоками?:
Кстати у БАС есть прикол, это ограничение вроде бы в 256 потоков при использование ноды в каждом потоке, скорей всего это конечно не ограничение БАС, но если инициализоровать ноду в onApplication и нужные функции записать в global, тогда можно хоть в 1000 потоков работать и даже нагрузка снижается.
До сих пор данный "прикол" не устранен)
-
@DEDOV said in Как использовать модуль SQL(mssql) в нескольких потоках без синхронизации между потоками?:
@UserTrue said in Как использовать модуль SQL(mssql) в нескольких потоках без синхронизации между потоками?:
Кстати у БАС есть прикол, это ограничение вроде бы в 256 потоков при использование ноды в каждом потоке, скорей всего это конечно не ограничение БАС, но если инициализоровать ноду в onApplication и нужные функции записать в global, тогда можно хоть в 1000 потоков работать и даже нагрузка снижается.
До сих пор данный "прикол" не устранен)
И? Я написал как это решить.