@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
Можно ли отключить замену ресурсов в коде?
-
Всем привет. В браузере такая штука работает:
w = window.Params = {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."} console.log(w);и выдает как и должно:
{ WISH_NOTICE: "Congratulations! You've earned." , HAVE: "You now have {{number}} items." }Но в действии "Выполнить код" пытается заменить {{number}} на ресурс которого нет и быть не должно. И выдает ошибку. Возможно ли как-то это исправить?
-
@mix said in Можно ли отключить замену ресурсов в коде?:
Все равно выдает ошибку. Либо если не ставить галочку, то записывает в переменнуюю просто текст, а не объект.
Все данные были обработаны для numbervar window = {} var w = window.Params = {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have \u007b\u007bnumber\u007d\u007d items."} log(JSON.stringify(w))
-
@fox спасибо, а автоматически заменить можно? Я json с одним значением в двойных фигурных скобках для примера написал. На самом деле он на несколько страниц и в каком месте будет значение типа {{number}} не известно. Нужен какой-то способ автоматически отменять замену ресурсов {{}} и переменных [[]]. Такой код уже не работает:
Действие Шаблон:{"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."}в переменную
Wlog([[W]]); [[X]] = [[W]].replace('{{', '\u007b\u007b'); log([[X]]); [[Y]] = JSON.stringify([[X]]); log([[Y]]);Поток №1 : {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."} Поток №1 : {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."} Поток №1 : "{\"WISH_NOTICE\":\"Congratulations! You've earned.\",\"HAVE\":\"You now have {{number}} items.\"}"Если переменную [[X]] обернуть в eval выдает ошибку:
SyntaxError: Parse error -
@mix said in Можно ли отключить замену ресурсов в коде?:
@fox спасибо, а автоматически заменить можно? Я json с одним значением в двойных фигурных скобках для примера написал. На самом деле он на несколько страниц и в каком месте будет значение типа {{number}} не известно. Нужен какой-то способ автоматически отменять замену ресурсов {{}} и переменных [object Object]. Такой код уже не работает:
Действие Шаблон:{"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."}в переменную
Wlog([[W]]); [[X]] = [[W]].replace('{{', '\u007b\u007b'); log([[X]]); [[Y]] = JSON.stringify([[X]]); log([[Y]]);Поток №1 : {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."} Поток №1 : {"WISH_NOTICE":"Congratulations! You've earned.","HAVE":"You now have {{number}} items."} Поток №1 : "{\"WISH_NOTICE\":\"Congratulations! You've earned.\",\"HAVE\":\"You now have {{number}} items.\"}"Если переменную [[X]] обернуть в eval выдает ошибку:
SyntaxError: Parse errorА что вы хотите изначально то сделать?
-
@fox Хочу из большого json объекта, представленного в виде текста (string) получить в BAS объект с переменными. Через JSON.parse работает, но если предварительно заменить все двойные скобки на юникод, то выдет строку в виде:
"{\"WISH_NOTICE\":\"Congratulations! You've earned.\",\"HAVE\":\"You now have {{number}} items.\"}"А хотелось бы получить объект с переменными.
-
@mix said in Можно ли отключить замену ресурсов в коде?:
@fox Что-то на маленьком тексте работает, на большом ни как не хочет. Посмотрите, пожалуйста, что не так делаю. Хочу получить переменные, все что есть в json'е. Вот скрипт.xml
Данные лежат уже в готовом виде, проще всего их выполнить через eval()
var window = {} eval([[XPATH_TEXT]]) log(window.runParams.data.actionModule.i18nMap.SC_HAVE)
Тестовый скрипт
