@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
В режиме записи текст читает, а в режиме запуска нет
-
Столкнулся с такой особенностью, что при написании скрипта, у которого одна из функций - вытягивание крайней реплики из диалога в web.telegram.org, в режиме записи всё прекрасно работает, копирует текст даже через не_рекомендуемый at (который по координатам работает, даже не используя селекторы css, xpath).
В режиме запуска же, ничего. Не работает схватывание по координатам (at), вероятно из-за того, что вид (размер, ширина и т.п.) браузера при записи отличается от оных при запуске. Вместо текста не раз получал кучу пробелов и переносов строки. Пробовал менять координаты на чуть выше и правее - ничего.
Вы, возможно, скажете, что стоит работать по CSS и другим селекторам.
Но это не представляется возможным пока. В веб.телеграм.орг там всё сложно. Выбираешь селектор из текущего диалога, а текст выхватывается вообще из предыдущего. Мучаюсь всю ночь. Потому хотелось бы пока остаться с at-координаторным методом.
Я, конечно, могу поставить БАС на удаленный сервер, и там запустить всё в режиме записи, но у меня ведь будут и другие скрипты работать одновременно, да и в режиме запуска, насколько я наблюдаю, всё работает очень быстро и летает. А в записи каждое действие занимает долю секунды, в итоге какое-то простое задание может растягиваться на десятки секунд. Что не всегда позволительно
Благодарю за ответы. -
@TRON_BOGGG said in В режиме записи текст читает, а в режиме запуска нет:
Но это не представляется возможным пока. В веб.телеграм.орг там всё сложно. Выбираешь селектор из текущего диалога, а текст выхватывается вообще из предыдущего.
Просто вы пока не поняли как это готовить.
Прекрасно работают css, пусть там по 1 css будет 100-200 диалогов, спокойно можно выбрать нужный вам.- Сначала считываем количество элементов на странице. Будет число.
- Далее жмем читать текст, ваш селектор с постами, которых куча с поиском последнего
тут css либо иной способ поиска>AT>[KOLICHESTVO], есть вариант что количество будет на единицу больше, тогда надо создать [KOLICHESTVO] - 1, и все заработает. (сей асинхрон с -1 из за того что бас начинает считать с 0 )
Щас увы времени нет показывать, если не поймете пишите подскажу подробней.
-
@iabot да, благодарю.
я как раз этим и занимался всю ночь.
и да, эту формулу тоже вывел, поиск всех элементов, затем отнятие единицы я взятие крайнего элемента.
Но дело в том, что не веб.телеграм.орг нет прямо градации по отдельному пользователю, с которым мы общаемся (как я понял), я хочу взять крайнюю реплику у собеседника, скрипт вроде берет, отвечает нужной репликой.
Затем я перехожу к другому собеседнику, беру у него крайний элемент и вроде копирую текст по аналогии, - но копируется наша реплика, которая была отправлена предыдущему пользователю
Идеально работало по координатам, но, к сожалению, только в режиме редактирования, но никак не работы.
Сконфигурировать бы всё, чтобы и в записи, и в запуске всё было одинаково в плане координат в браузере - было бы и так сносно.
Я уже думаю написать доп. скрипт, который будет от меня в телеге принимать разные координаты, а затем копировать и выдавать в ответ, что он там нашел. Так, методом тыка, может выведу точку(может найду погрешность по оси Х и У), которая будет работать уже в "запуске", но, полагаю, перестанет работать в Записи. :D -
@TRON_BOGGG said in В режиме записи текст читает, а в режиме запуска нет:
@iabot да, благодарю.
я как раз этим и занимался всю ночь.
и да, эту формулу тоже вывел, поиск всех элементов, затем отнятие единицы я взятие крайнего элемента.
Но дело в том, что не веб.телеграм.орг нет прямо градации по отдельному пользователю, с которым мы общаемся (как я понял), я хочу взять крайнюю реплику у собеседника, скрипт вроде берет, отвечает нужной репликой.
Затем я перехожу к другому собеседнику, беру у него крайний элемент и вроде копирую текст по аналогии, - но копируется наша реплика, которая была отправлена предыдущему пользователю
Идеально работало по координатам, но, к сожалению, только в режиме редактирования, но никак не работы.
Сконфигурировать бы всё, чтобы и в записи, и в запуске всё было одинаково в плане координат в браузере - было бы и так сносно.
Я уже думаю написать доп. скрипт, который будет от меня в телеге принимать разные координаты, а затем копировать и выдавать в ответ, что он там нашел. Так, методом тыка, может выведу точку(может найду погрешность по оси Х и У), которая будет работать уже в "запуске", но, полагаю, перестанет работать в Записи. :DРешили ?
-
@iabot пока еще нет, к сожалению. спасибо, что интересуетесь)))))
-
@TRON_BOGGG кажется, решил вопрос с помощью функции "Разрешение браузера", которую задаю 1024х600 перед загрузкой страницы.
Лог показал, что схватывает теперь реплику пользователя валидно.
Дальше что-то не работает, но, думаю, это уже "Совсем другая история"п.с. хотелось бы сделать еще так, чтобы куки сохраняло и не надо было авторизоваться каждые 5 минут для отладки скрипта.
Пробовал писать куки в текстовый файл, затем подгружать из него - не работает. Всё равно на авторизацию посыл