@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
Экранирование спец символов для вставки в MySQL
-
Подскажите пожалуйста как экранировать спец символ обратная косая черта
как только не пробовал не выходит заменить надо через "выполнить код"Варианты которые пробовал:
[[R1]] = [[R1]].split(""'").join("\")
[[R1]] = [[R1]].split("'\'").join("\")
[[R1]] = [[R1]].split("''").join("\")
[[R1]] = [[R1]].split('').join("\")
[[R1]] = [[R1]].split("[]").join("\")[[R1]] = [[R1]].split("~").join("\~") [[R1]] = [[R1]].split("!").join("\!") [[R1]] = [[R1]].split("@").join("\@") [[R1]] = [[R1]].split("#").join("\#") [[R1]] = [[R1]].split("$").join("\$") [[R1]] = [[R1]].split("%").join("\%") [[R1]] = [[R1]].split("*").join("\*") [[R1]] = [[R1]].split("(").join("\(") [[R1]] = [[R1]].split(")").join("\)") [[R1]] = [[R1]].split("_").join("\_") [[R1]] = [[R1]].split("—").join("\—") [[R1]] = [[R1]].split("+").join("\+") [[R1]] = [[R1]].split("=").join("\=") [[R1]] = [[R1]].split("|").join("\|") [[R1]] = [[R1]].split(":").join("\:") [[R1]] = [[R1]].split(";").join("\;") [[R1]] = [[R1]].split("'").join("\'") [[R1]] = [[R1]].split("<").join("\<") [[R1]] = [[R1]].split(">").join("\>") [[R1]] = [[R1]].split("?").join("\?") [[R1]] = [[R1]].split("/").join("\/") [[R1]] = [[R1]].split("^").join("\^") [[R1]] = [[R1]].split("&").join("\&") [[R1]] = [[R1]].split("\"").join("''")Все остальное вроде заменяет.
Спасибо. -
@Fox Привет!
Подскажи пожалуйста при таком экранировании[[R1]] = [[R1]].replace(/([~!@#$%*()_—+=|:;'<>?\/^&])/g, "\/$1").replace(/"/g, "'");в базу MySQL вставляются данные пример: /(ПЕТРОВСКОГО/) а мне надо экранировать обратной косой чертой (), когда я пытаюсь поменять в твоем примере на обратную косую черту ругается на ошибку.
[[R1]] = [[R1]].replace(\([~!@#$%*()_—+=|:;'<>?\/^&])/g, "\/$1").replace(/"/g, "'");Задача чтобы в базе был чистый текст (ПЕТРОВСКОГО) без символов экранирования.
-
@mocard said in Экранирование спец символов для вставки в MySQL:
когда я пытаюсь поменять в твоем примере на обратную косую черту ругается на ошибку.
Это синтаксис js
replace(pattern, replacement), слешами выделяется регулярное выражение, которое необходимо применить к строкеtext.replace(/blue/g, "red");Символы для добавления слеша находятся в квадратных скобках
[~!@#$%*()_—+=|:;'<>?\/^&], для замены кавычек использется второй replace, соответственно для удаления слешей нужно добавить ещё один replace[[R1]] = [[R1]].replace(/([~!@#$%*()_—+=|:;'<>?\/^&])/g, "\/$1").replace(/"/g, "'").replace(/(\/)/g, ""); -
как вариант конвертировать в Base64 и записывать в базу, если контекстный поиск не нужен.
-
ну или так
https://qna.habr.com/q/1235258