Выполнение произвольного кода с регулируемым количеством потоков от 1 до 64

Публикация № 901129

Обработки - Обработка документов

Многопоточность Асинхронное выполнение кода Внешняя обработка Произвольный код

12
Данную обработку можно использовать для изменения документов, справочников и других элементов с использованием до 64 ядер процессора. Увеличение скорости выполнения операций с базой 1С, между 1 потоком и 40, составляет 437%.

Проверено на платформе: 1С: Предприятие 8.3 (8.3.11.2954) с конфигурацией "Комплексная автоматизация для Казахстана, редакция 2" релиз (2.1.3.11). Будет работать на конфигурациях 1С (УТ, КА, ERP) в управляемых формах

За основу взяты:  infostart.ru/public/306865/  и  infostart.ru/public/405368/ 

Подключается (должны быть соответствующие права у пользователя) через:
 НСИ и администрирование -->  Настройка параметров системы  --> Печатные формы, отчеты и обработки --> Отчеты и обработки  --> Дополнительные отчеты и обработки  --> Создать  --> (выбрать файл)  --> Записать и закрыть. 

После подключения нужно открыть данную обработку через меню "Файл" --> "Открыть" в клиентском приложении. И в поле "Дополнительная обработка ссылка: " выбрать обработку "Выполнение произвольного кода в 10 потоков".

Принцип работы: 

При нажатии кнопки "Старт" происходит выполнение кода текст которого указан в поле "Текст запроса" в  результате выполнения должна получаться таблица с ссылками на объекты. Синтаксис как в конфигураторе!

Поле получения данной таблицы происходит выполнение действий над данными объектами, данные действия описываются в поле "Исполняемый код:" Объект над которым будет производиться действие использовать так как в примера  "ОбъектДействия". Синтаксис как в конфигураторе.

В новой версии учел замечания, добавил функционал, убрал ограничение на использование в 10 ядер.

12

Скачать файлы

Наименование Файл Версия Размер
Выполнение произвольного кода с числом задействованных ядер процессора от 1 до 64
.epf 17,79Kb
11.09.18
16
.epf 1.0.2 17,79Kb 16 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. user614822 10.09.18 16:27 Сейчас в теме
Сомнительная ценность обработки за такую цену....
Идея не нова, реализации более полезные в наличии на форуме за 1 стартмани...
Да даже фиксированное количество потоков - непонятка
7. romanpl777 20 11.09.18 14:25 Сейчас в теме
(1) Убрал фиксированное количество потоков, и увеличил их до 64. Как видно из картинок прирост скорости обработки, при увеличении с 6 до 40 потоков, составляет 143%.
2. echo77 1079 10.09.18 16:40 Сейчас в теме
Взаимоблокировки не будут при таком подходе?
3. user614822 10.09.18 16:46 Сейчас в теме
(2) А нет никакого метода - 10 потоков ПРОИЗВОЛЬНОГО кода , то есть чего напишете то и будет выполняться...
От вас и будут зависеть блокировки.
5. romanpl777 20 10.09.18 17:34 Сейчас в теме
(2) блокировки, если они будут, обходит с помошью паузы на 1 секунду на данном потоке и повторными попытками пока не выполнит. Они обычно возникают если паралельно работают другие фоновые задания.
4. user614822 10.09.18 16:48 Сейчас в теме
Вот обработка с конкретным функционалом -успешно используется уже давно
https://infostart.ru/public/804563/
8. romanpl777 20 11.09.18 14:26 Сейчас в теме
(4) не совсем такая, даже совсем не такая.
6. vipetrov2 11.09.18 05:13 Сейчас в теме
Через фоновое задание распараллеливать проще простого. Гораздо интереснее распараллеливать на стороне клиента, что бы можно было разрабатывать, например, обработки по шаблонам проектирования модель-представление.
Вообще не понятно почему разработчики так плохо используют параллельное программирование, первые многоядерные пользовательские процессоры появились более 10 лет назад. Игры более менее многопоточными стали делать более менее активно 3-4 года назад. Компания 1С вроде пытается все больше и больше делать конфигуратор по шаблонам проектирования, но все равно очень медленно этот процесс идет.
9. romanpl777 20 11.09.18 14:27 Сейчас в теме
(6) Задумка была в использовании именно внешней обработки как универсального механизма для быстрого изменения каких либо объектов в базе 1с.
Оставьте свое сообщение