|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Алексей Кbarrabasвы серьезно думаете что тут кто-то не знает про виндовый шедулер?Да. Если люди не в состоянии написать банальный ThreadPool, не задавая вопросов на форуме, то вполне вероятно и такое. barrabas... причем через UI (управлеющего удаленной службой) понятного для простого юзера, чего про виндовый шедулер не скажешь совсем. типа запустить задачу, простомтреть журнал запусков с фильтрами, по клику получить лог, перезапустить/продолжить(в случае с задачами в которых много действий остановленных при ошибке в одном из и т.д. )Написать нужный UI для "виндового шедулера", вроде как, проще, чем писать всё с "нуля". Да и его родной UI, всяко, будет полезен. если почитаете топик, написать как раз нет проблем. интересовало именно наличие стандартного решения в пару строчек (черeз PLINQ или Parallel) или его отсутствие, вот и весь вопрос был. вопрос как написать самому, тут от меня не звучал, разве что просил продемонстрировать варинат на await, т.к. не понял из приведенного ответа как ограничить потоки. запуск заданий по времени лишь малая часть функционала, хотя разумеется важнейшая.не говоря про права на управление стандартным шедулером еще и на удаленном сервере для юзера. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:28 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabas... не говоря про права на управление стандартным шедулером еще и на удаленном сервере для юзера.Ну сделать сервер приложений, управляющий "шедулером" на сервере. На первый взгляд тут напрашивается Web UI. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:33 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasawait, т.к. не понял из приведенного ответа как ограничить потоки. Я по задаче не понял, зачем ограничивать потоки. У меня задач 100 сразу. По умолчанию пул где то 10 - 15 стартует. Потом он сам выбирает задачи и ОПТИМИЗИРУЕТ. По моему впечатлению работает отлично. И в сети читал, что лезть туда и писать с нуля тоже не надо. Конкретно, про await можно рассуждать когда попробуешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:39 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
многие архитектурные решения вынужденные и со стороны человека не знающего внутренней кухни могут выглядеть кривыми и странными, а для человека в теме наоборот супер элегантным выходом из ситуации. закрытые порты, отсутствие всяких "пользовательских прав" в крупных компаних это норма, приходится через один порт пропихивать кучу потоков, наворачивая разные проксисислужбы и вебсервисы. открыть порт для дочерней компании с защитой решения не архсовете это на месяцы, окажется что внутренняя система вообще не имеет паспорта в глобальной корп среде и о каких портах для нее может идти речь, пусть даже они не выходят за пределы конкретной дочки, а бизнесу нужно решение уже сейчас ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:41 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasзакрытые порты, отсутствие всяких "пользовательских прав" в крупных компаних это норма, приходится через один порт пропихивать кучу потоков, наворачивая разные проксисислужбы и вебсервисы. открыть порт для дочерней компании с защитой решения не архсовете это на месяцы, окажется что внутренняя система вообще не имеет паспорта в глобальной корп среде и о каких портах для нее может идти речь, пусть даже они не выходят за пределы конкретной дочки, а бизнесу нужно решение уже сейчасНу сервер приложений, предложенный выше, решает эти проблемы. Ну дело Ваше, конечно же... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:43 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasесли почитаете топик, написать как раз нет проблем. интересовало именно наличие стандартного решения в пару строчек (черeз PLINQ или Parallel) или его отсутствие, вот и весь вопрос был.И решение было предложено практически сразу: 20902755 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:47 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Алексей К, Конечно, это будет по взрослому, без обид для автора. Пока, как я понял, он запустит демон или процесс на другой машинке и всё. Удачи аффтару. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:47 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Petro123Удачи аффтару. +1 :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:48 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Алексей Кbarrabas... не говоря про права на управление стандартным шедулером еще и на удаленном сервере для юзера.Ну сделать сервер приложений, управляющий "шедулером" на сервере. На первый взгляд тут напрашивается Web UI. все что умеет виндовый шедулер это просто запускать процесс (действие), он не понимает ответов от приложений не умеет работать с его логами не может объединять действия в задания с разными уровнями и паррарельностью, а запуск процесса самому это несколько строк кода всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:49 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabas... он не понимает ответов от приложенийОн понимает process exit code, этого достаточно. barrabas не умеет работать с его логами не может объединять действия в задания с разными уровнями и паррарельностью,Это не его задачи, он не для этого. barrabas а запуск процесса самому это несколько строк кода всего.Да. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 13:00 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasArm79Так, не дочитал до конца. Про Parallel.ForEach уже сказали )) Но я так и не понял, что это за такая бизнес-задача? сама обработка происходит удалённо, а не на машине где организуется очередь, нагрузка на удаленный сервер не связана с кол-вом процессоров на клиенте, вот и все Посему клиент должен управлять нагрузкой на СЕРВЕРЕ? А что, сервер сам не умеет планировать свои ресурсы? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 13:23 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Arm79barrabasпропущено... сама обработка происходит удалённо, а не на машине где организуется очередь, нагрузка на удаленный сервер не связана с кол-вом процессоров на клиенте, вот и все Посему клиент должен управлять нагрузкой на СЕРВЕРЕ? А что, сервер сам не умеет планировать свои ресурсы? нет, как раз не должен, поэтому он должен только получить сколько потоков он имеет право создать запуская группу действий и действовать в рамках этих условий. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 13:32 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Алексей Кbarrabas... он не понимает ответов от приложенийОн понимает process exit code, этого достаточно. barrabas не умеет работать с его логами не может объединять действия в задания с разными уровнями и паррарельностью,Это не его задачи, он не для этого. barrabas а запуск процесса самому это несколько строк кода всего.Да. :-) ну вот и не подошел он по списку того, что требовалось и считалось задачей шедулера в конкретной компании. что тут рассуждать, программа написана более 10 лет назад, и последние года 3 не менялась вообще, а глобально так еще дольше. люди которые ее писали уже не работают, а прога живет. у меня есть своё мнение чего там не хватает и как можно было бы лучше сделать и удобнее, но нет времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 13:41 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasArm79пропущено... Посему клиент должен управлять нагрузкой на СЕРВЕРЕ? А что, сервер сам не умеет планировать свои ресурсы? нет, как раз не должен, поэтому он должен только получить сколько потоков он имеет право создать запуская группу действий и действовать в рамках этих условий. Получилось на выходе, что вы пишите свой пул потоков. У которого MaxThread, MinThread, время простоя и т.д. Поэтому у вас АппСервера нет. Т.к. там админ просто имеет это как параметр. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 13:43 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasrefregпропущено... Нет гарантии, что будет в нужном порядке. Метод AsOrdered в PLINQ не нельзя задать ЛЮБОЕ число потоков, они зависят от кол-ва процессоров на клиентеWithDegreeOfParallelism barrabasТочно нет гарантии с ConcurrentQueue?Причем тут это, если Parallel.Foreach использует IEnumerable? Правда, есть еще перегрузка: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 14:30 |
|
|
start [/forum/topic.php?fid=20&msg=39543187&tid=1399646]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 332ms |
total: | 481ms |
0 / 0 |