#0
by adelaide
Добрый день пишу обработку для парсинга сайта, не получается реализовать многопоточность, нашел одну статью на ифостарте, но не совсем понял код приведенный там. Рассмотрим процедуру проверки списка прокси-серверов (ее тоже хочу сделать многопоточной): 1) Есть: ТЗ тзПрокси - состоит из колонок: "Сервер", "Порт", "Использовать" ПроверитьПрокси - возвращает истина если прокси рабочий и анонимный Необходимо в несколько потоков запусить процедуру проверки прокси по тзПрокси и заполнить результатами колонку "Использовать", подскажите как сие реализовать?
#2
by Maxus43
создаёшь пул фоновых заданий, в каждом проверяешь конкретный прокси. Проблема с получением результата выполнения фоновых, погугли, описано в статьях
#3
by adelaide
вот примерно так должно быть если делать по статье... вопрос, как из фонового задания получить результат и собственно пометить его в тзПрокси?
#5
by adelaide
спасибо, хм, а со времен 8.1 ничего не поменялось? толко писать в базу/вызывать исключение?
#7
by adelaide
Нашел способ для 8.2 через ПоместитьВоВременноеХранилище, хотя по сути те же костыли, но можно добавить в книгу знаний:
#9
by adelaide
благодарю, вроде бы все получилось... Еще бы теперь понять сколько будет кушать ресурсов каждый поток и определить их оптимальное число...
#10
by adelaide
Еще вопрос, как задать время жизни рег. заданию, чтоб оно убивалось если не успело отработать за этот промежуток времени? ИЗ СП так и не понял этом коде задания грохнутся через 20 сек или нет??:
#12
by romix
Внешние процессы можно запускать. А по приходу файла-результата его ловить и считывать.
#14
by adelaide
с чем? я над этим вариантом параллельно работаю, там как свои плюсы (меньше памяти кушает, быстрей отрабатывает..) так и свои минусы есть...
#15
by Serginio1
А не проще использовать любые языки поддерживающие многопоточность и написать СОМ сервер?
#18
by Serginio1
Если тебе нужно запустить несколько потоков а потом дождаться выполнения и выдать результат то достаточно и обычного СОМ. Если нужно возвращать результат из отличного от потока приложения, тогда нужна ВК. Которая просто делается например Исходник ВК которая загружает Объект Автоматизации поддерживающий ITypeInfo и выполняет все его свойства и методы через IlanguageExtender.
#21
by Serginio1
Рег задачи выполняются на сервере. Да и парсинг на 1С не сильно быстрая операция. На компилируемом языке все можно решить намного проще и быстрее. Хоть на том же C#. А почему СОМ должен жрать больше?
#23
by adelaide
Добавил на форму обработчик ожидания который проверяет сколько времени выполняется фоновая задача и если больше указанного интервала то убивает фоновую задачу, правда уже запущенные задания не завершаются :( ни программно ни через консоль сервера, в чем может быть проблема?
#27
by adelaide
ну написал я парсер на php, работает он то быстрей, 600 потоков и памяти не много жрет, но серверная часть должна на хостинге стоять + определенные параметры сервера нужны как то cURL, ну и реализовывать обмен между скриптом на php и 1С надо + еще реализовывать оповещение о ходе выполнения парсинга.
#28
by Serginio1
Вот 600 потоков как раз и жрут ресурсы. Обычно используют пул потоков в 2 раза больше чем ядер, а то и по количеству ядер. Про опвещение как в Ты наример на C# можешь запустить потоки, дождаться их выполнения и возвратить результат. Если нужны ассинхронные сообщения то ВК
#29
by adelaide
ну в данном случае на потоки разбивается процесс получения страниц через прокси, и в парсере на пхп для запуска 600 потоков с головой хватает 200 Мб оперативной памяти и одного проца, в 1С не знаю как замерить, но думаю что надо намного больше ресурсов, но пусть даже в 30-100 потоков хочу попробовать. C# у меня на уровне лабораторок университетских, но надо будет попробовать разобраться, думаю что использовать ВК удобней чем веб-сервис на пхп.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Многострадальная процедура ПриПолученииДанных
- Не работает отбор строк в управляемой форме, платформа 8.2
- ИНН у контрагентов из Киргизии 14 цифр БП 2.0
- Подключение внешней печатной формы с ВызовКлиентскогоМетода
- Как свернуть детальные записи в СКД
- Как-то можно восстановить Excel файл?
- несколько баз на Веб-сервере IIS
- Как организовать мапирование дисков?
- Возможно ли наложить RLS на субконто?
- Как правильно сторнировать записи регистра накопления
- "Выгрузить информационную базу" временные файлы 1с 8.2
- Регистратор для регистра Хозрасчетный
- Конвертация. Не все документы выгружаются.
- Из 1С ЗУП в 1С Бухгалтерия предприятия не выгружаются дополнительные начисления
- БП 2.0, РИБ. Надо отключить фильтр контрагентов в плане обмена "По организации"
- Аккредитивы в УТ 11.1
- Ошибка выполнения Запроса. Деление на 0 на сервере
- Как присвоить переменной тип данных?
- УТ 11 получить форму списка задач
- Почему в методиках разработки 1С запрещает хранить данные в макетах ТабДок?