как реализовать "многопоточность" в 1С (параллельное выполнение заданий) #788910


#0 by lim9
База файловая. На данные момент есть острая необходимость каждую минуту выполнять несколько (10 шт) разных небольших заданий каждую минуту. Сделал через фоновые задания. Но если одно из заданий начинает выпоняться долго (а такое предусмотренно агоритмом) - то остальные задания перестают выполняться и ждут завершения передыдущего. Как сделать чтобы все "фоновые" задания выполнялись каждое через минуту и независисмо от остальных.? Спасибо.
#1 by kennetmccormick
перейти на клиент-сервер или запускать сеансы для каждого задания
#2 by kauksi
В гугле забанили?
#3 by kauksi
#4 by Лефмихалыч
параллельное выполнение в файловой? где табличные блокировки?
#5 by mehfk
Запусти побольше клиентов.
#6 by Вафель
Сейчас везде уже упр блокирвоки
#7 by Fragster
в файловой - никак, все фоновые становятся в очередь. а раньше вообще морозили основное окно
#8 by Fragster
и чо?
#9 by Вафель
какие табличные блокировки тогда?
#10 by Fragster
вот такие
#11 by Вафель
а пример кода можно?
#12 by Кирпич
А может они и не нужны, эти задания?
#13 by Кирпич
+ я вот не представляю зачем нужно запускать 10 заданий каждую минуту.
#14 by lim9
Бывает ) - каждое задание выполняет свою функцию: одно отправляет смс, другое синхронизирует почту, другое получает инфу с внешних сервисов, другое выполняет обмен 1С-1С и т.д. вы же не предложите днелать это все одним заданием )
#15 by Torquader
Если вы хотите использовать файловую и в ней делать что-то не очень соотносящееся с базой данных 1С, то лучше писать отдельные приложения, а если вы работаете с базой, то для файловой параллельность натыкается на блокировку таблиц. Понятно, что кто-то верит, что можно использовать управляемые блокировки и снимать их как можно быстрее, но всё равно будет блокироваться вся таблица.
#16 by Лефмихалыч
в файловой все, как было, так стало
#17 by Torquader
Как бы - для отправки SMS со стороны 1С должны выгружаться в файл готовые сообщения или данные для их формирования - всё остальное должна делать отдельная программа и возвращать в 1С результат. С почтой - тоже самое - в 1С должны грузиться только результаты обработки сообщений. Что касается обмена, то желательно, чтобы, когда он выполняется, никто больше не выполнялся. Так что - вам достаточно одного фонового задания и несколько отдельных программ - если хочется на 1С, то отдельных файловых баз 1С, выполняемых отдельно.
#18 by Кирпич
да я бы не парил 1с вообще с такими заданиями. Внешнее приложение запустил бы, которое инфу на диск скидывало, а в 1С одно задание, которое бы эту инфу подбирало.
#19 by Кирпич
+ Можно тупо отдельную конфу для этого написать, если кроме 1с ничего не понимаешь.
#20 by lim9
- понял уже что файловая база видать ограничивает сильно по мнопоточности
#21 by lim9
- наверно это про меня
#22 by Philix
Есть вариант запускать 1С виндовыми назначенными заданиями и через параметры командной строки рулить исполнение той или иной обработки.
#23 by Кирпич
Слова "многопоточность", "ООП" и "рекурсия" вообще не употребляй. Эти слова употребляют только одинесники со средним образованием из далеких колхозов. Вместо этих слов многозначительно молчи. Так будешь выглядеть профессиональнее.
#24 by Кирпич
ну на 1с писать это правильно. чтобы все одинесники тебя понимали.
#25 by Torquader
Конечно, чтобы вместо двух команд с параметрами - целая конфигурация. Понятно, что сегодня пятница - но не до такой же степени.
#26 by Кирпич
ну у него десять заданий. создал конфигурацию с одним модулем и вперед. быстро запускается, быстро работает. чем не вариант?
#27 by Кирпич
+ подключить рабочую конфу через com для обмена и пускай висит, крутит задания. когда надо сливает/получает инфу из рабочей базы. отличный вариант.
#28 by mexanik_96
предлагаю запилить менеджер процессов как в осях сделано(с мьютексами, семафорами и управлением очередью процессов и прочими вещами). стартует главный поток(фз) потом всеми рулит(запускаетостанавливает процедуры в фзобрабатывает сигналы от другихсоздает события)как идея?
#29 by Fragster
titdkt regbnm cthdthye. kbwtypb.
#30 by Fragster
дешевле купить серверную лицензию, говорю
#31 by mexanik_96
ну ясно, но не наш метод!
#32 by Torquader
Серверная лицензия не позволит разнести процессы на разные компьютеры, а если иметь отдельные конфигурации, которые через Http-сервисы общаются, то вполне можно.
#33 by Кирпич
это всё вместо простого копипаста 20 строчек кода из одной конфигурации в другую? чота многовато.
#34 by lim9
благодарю вас, коллеги, много интересных мыслей подкинули!
#35 by mexanik_96
ну не забываем про синхронизацию потоков, нагрузку, планировщик там ну ты понял)))
#36 by Кирпич
Можно еще ботнет сделать. У каждого юзера запустить дополнительно по конфе, которая будет ждать команды от Главного менеджера ботнета и выполнять когда надо какое нибудь задание.
#37 by Кирпич
да ладна. нужно всего лишь просто отправить SMS и на какой нибудь web сервис сгонять.
#38 by Fragster
КОРП вполне позволит
#39 by Fragster
а если отдельные конфигурации с веб сервисами - то и не корп
#40 by mexanik_96
да! ботнет на 1с - это круто "рассчитай амортизацию в китае!",уже представляю нейронные сети на 1с, и тд....
#41 by Кирпич
"представляю нейронные сети на 1с" почему то представил жареную баранину. давно я баранины не ел. надо будет вечерком заглянуть в магазин, глянуть чего там из новой зеландии есть на прилавке.
#42 by H A D G E H O G s
Как я реализую многопоточность в 1С
#43 by Кирпич
Это 1С 9.0?
#44 by Fragster
какое же дно этот радикал.ру
#45 by Кирпич
а зачем SetLength(hThreadArray,i+1) в цикл запихнул? Неодобряю. Требую SetLength(hThreadArray,count) перед циклом.
#46 by Кирпич
+ я так то не зануда, просто в техникуме сильно ругали за такое. рефлексы.
#47 by Кирпич
А hThreadArray удалять не надо? Щас в Delphi динамические массивы сами удаляются? Или они и раньше сами удалялись. Я чота забыл.
#48 by Лефмихалыч
Не могу в очередной раз не отметить ни кого не еволнующий факт того, на сколько мне омерзителен паскаль. Отвратительный язык. Код, как из говна и палок выглядит и нечитабельно.
#49 by H A D G E H O G s
сами
#50 by H A D G E H O G s
Не могу в очередной раз не отметить, насколько мне похер мнение недалеких людей.
#51 by Кирпич
гы гы. я этого не знал. всю жизнь руками убивал :)
#52 by Кирпич
ты оригинал. обычно Си обзывали нечитабельным.
#53 by H A D G E H O G s
Там десятки мегабайт в потоках кочуют табунами за миллисекунды, какой - то 8 байтный*n реаллок, это мелочи.
#54 by Кирпич
да у вас в школе информатики просто не было. так бы нравилось, если бы с детства приучили.
#55 by Кирпич
да я не про память. мне её тоже не жалко. я про привычку правильно писать.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С