|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
refregPu4koffОбъясните дураку чем не подходит Код: c# 1.
Нет гарантии, что будет в нужном порядке. Метод AsOrdered в PLINQ не нельзя задать ЛЮБОЕ число потоков, они зависят от кол-ва процессоров на клиенте Точно нет гарантии с ConcurrentQueue? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 09:36 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Petro123barrabas, Так условие очерёдности в параллельной работе ты сам выдумал? Заняться тебе нечем. нет, оно было, просто реализовано не оптимально (обработка партиями и простой более быстрых потоков). изменив время обработки сократилось минут 8-10, не час сорок а полтора стало на целевом периоде. это хоть и не много, но окончания процесса ждут люди чтобы начинать следующие действия и у них есть жесткие временные рамки в рамках закрытия месяца и формирования всех документов. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 09:43 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Petro123barrabasпрерывать и перезапускать будет человек и читать лог тоже. Вот и приведи задачу с точки зрения пользователя, а не ту что ты сам придумал. пользователь запускает процедуру расчета конечной стоимости в каждой операции за период, период дробится по дням для визуализации и для понимания что можно потом работать с определенным меньшим периодом если что-то пошло не так. Описывать все ньюансы и обсуждать все бизнес-процессы нет желания. просто не очень понятно какое имеет отношение к изначальному вопросу. как раз формулирование абстрактной задачи и приводит к получению реальных ответов по теме, а вы уводите тему в другую сторону , но это вообще фишка данного форума и вообще рунета :). в принципе я получил ответы, повторюсь, меня интересовало именно стандартное решение, которое я не знал, как написать рабочий код на многопоточных примитивах я занал вполне, но как и вы люблю лаконичность (не и ущерб читаемости и поддержке конечно) В общем всем спасибо большое. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 09:54 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasне час сорок а полтора А ты не сравнивал решения СубдJob ---- АппСерверКоллекции. Вдруг там на порядок быстрее? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 09:57 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasно это вообще фишка данного форума и вообще рунета :). Конечно. Тут люди за хобби, а не за деньги решают ваши задачи. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 09:59 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasкакой поток из пула запустит первую дату не важно. важно чтобы моментом старта обработки у меньшей даты был меньше или равен следующей по порядку. а причина довольна простая, чтобы можно было остановить процесс обработки и точно сказать, что обработалось от сих до сих, а а не в разнобой. Понятно, а я уж подумал, что это имеет отношение к автоматизации какого-то производства. Например, на кладбище есть четыре бригады гробокопателей, от лучшей 1-й (самая быстрая, аккуратная, наименее пьющая и т.п.) до худшей 4-й (пьяницы, прогульщики и т.п.), и вот надо оптимально распределять периодически поступающие пачки с энным количеством (иногда меньше 4) заявок))) Ну, или четыре станка в цеху разной эффективности (разное энергопотребление, скорость и точность изготовления), и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 10:01 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Petro123barrabasно это вообще фишка данного форума и вообще рунета :). Конечно. Тут люди за хобби, а не за деньги решают ваши задачи. Удачи! ветка "работа" немного в другом месте, удачи!!! и хорошего настроения ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 10:19 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Petro123barrabasно это вообще фишка данного форума и вообще рунета :). Конечно. Тут люди за хобби, а не за деньги решают ваши задачи. Удачи! ради интереса зашел в профиль посмотреть ваши темы, походил по первой странице, не увидел где вы предлагаете вознаграждение за ответы на ваши вопросы, немного в замешательстве :) но вы держитесь там... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 10:25 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabas, Вы тоже держитесь). На улицу и в публичные места, форумы не выходите. Вас таких 1%, кто спрашивая на форуме, на него и пинает (обобщает). А на заправке если предложат чаю не по делу, вы сразу в профиль полезете). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 10:38 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
LRотношение к автоматизации какого-то производства. Ну, я в его профиль не лазил. А по тз понял так, что нарезается пачка записей по датам grouo by А далее, в очередь, пул потоков. А очерёдность в пуле не важна. Тогда быстрее на порядок. Если важна, то медленно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 10:46 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Petro123barrabas, Вы тоже держитесь). На улицу и в публичные места, форумы не выходите. Вас таких 1%, кто спрашивая на форуме, на него и пинает (обобщает). А на заправке если предложат чаю не по делу, вы сразу в профиль полезете). спасибо за совет, но думаю воздержусь. на форум я не пиняю, яж не мазохист, я сам, как можно заметить, люблю пофлудить иногда. особенности (большое число флуда) в рунете это факт, но я не говорил что это что-то омерзительное, это фишка я как раз и написал, имея опыт общения, что если хочешь ответ по теме, лучше сформулировать ее абстрактно, что-бы не читать что нужно все переписать и переделать, т.к. для того чтобы давать такие советы нужно быть 100% в теме всех деталей и процессов, а описывать всю подноготную это не вариант по трудозатратам. а профиль я посмотрел из образовательных целей, я думал что человек, который не дурак давать советы бесплатно, должен на своем примере показывать как это делается и возможно здесь это уже стало негласным правилом (как можно понять по моему профилю, я теперь очень редко посещяю форум), а я по старой привычке залез своим свиным рылом .... но видимо все проще, есть 1% нас и 1% вас, в остальном все в порядке. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 10:58 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Petro123barrabasне час сорок а полтора А ты не сравнивал решения СубдJob ---- АппСерверКоллекции. Вдруг там на порядок быстрее? порядок врятли, т.к. вся работа как раз в БД, клиент только вызывает ХП с параметрами (период,в данном случае день, и пара настроек). все миллионы записей обрабатываются внутри БД без закачки на клиент, разумеется. время организации цепочки вызовов бесконечно мало по сравнению в обработкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:12 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabas, Да милый. Это старость. Я про принципы публичного форума вам напомнил не от себя лично. А вы как в анекдоте - Солдат! У вас сапоги не чищены! ))). Кончайте впадать в старость и брюзжание. Идите с миром. На форуме всё хорошо. Мы флудим только на технические темы....для молодых. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:14 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasPetro123пропущено... А ты не сравнивал решения СубдJob ---- АппСерверКоллекции. Вдруг там на порядок быстрее? порядок врятли, т.к. вся работа как раз в БД, клиент только вызывает ХП с параметрами (период,в данном случае день, и пара настроек). все миллионы записей обрабатываются внутри БД без закачки на клиент, разумеется. время организации цепочки вызовов бесконечно мало по сравнению в обработкой. Спс. Именно ваш опвт на земле я и хотел услышать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:15 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasЕсть коллекция с датами. нужно выполнить процедуру для каждой даты в несколько потоков но в строгом порядке (сортировка по дате). Т.е. запускается сразу 4 потока с датой 1,2,3,4, время выполнения разное, закончилась обработка 2, сразу началась 5 и т.д. Есть ли стандартный метод в дотнете (PLINQ там всякий)? Или нужно самому управлять созданием нового потока? А можно поинтересоваться, зачем такая задача? И для чего управлять очередностью запуска потоков в строгом порядке, если по идее время завершения недетерминировано и в общем случае не совпадает по порядку старта? Я бы делал так: Parallel.ForEach(список, Action). Количество потоков на усмотрение фреймворка. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:19 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Так, не дочитал до конца. Про Parallel.ForEach уже сказали )) Но я так и не понял, что это за такая бизнес-задача? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:22 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
JOBы в конкретном случае не приведут заметному ускорению обработки, но придется делать подсистему мониторинга и управления ими, т.к. клиент в простейшем случае отправляет ванвей вызов и дальше ничем не управляет. есть процесс запускаемый клиентов из UI (тут согласен будет удобнее, с учетом создания центра управления такими заданиями), есть вариант запуска из консольной программы по своему шедулеру и логами и уведомлениями стандартными для всех процессов компании,не только связанными с БД, коих много как и систем (тут скорее наоборот, нужно привязать сессию в приложению). иногда лучше потерять несколько секунд-минут, но иметь единообразную и всем участникам привычную архитектуру, чем каждую задачу решать по своему, пусть и наиоптимальнейшим образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:23 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Arm79Так, не дочитал до конца. Про Parallel.ForEach уже сказали )) Но я так и не понял, что это за такая бизнес-задача? сама обработка происходит удалённо, а не на машине где организуется очередь, нагрузка на удаленный сервер не связана с кол-вом процессоров на клиенте, вот и все ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:26 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabas... по своему шедулеру ...Свой не нужен, есть готовый, из "коробки": Using the Task Scheduler ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:32 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasиногда лучше потерять несколько секунд-минут, но иметь единообразную и всем участникам привычную архитектуру, чем каждую задачу решать по своему, пусть и наиоптимальнейшим образом. В этом всё дело. У меня проект поменьше чем у вас, но когда я отпустил потоки без всякой очерёдности и управляемости в кавычках, у меня время уменьшилось в 3 раза. Да. Это именно в моём контексте. Не в вашем. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:38 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Алексей Кbarrabas... по своему шедулеру ...Свой не нужен, есть готовый, из "коробки": Using the Task Scheduler вот об этом и говорил выше задача должна быть сформирован абстрактна. вы серьезно думаете что тут кто-то не знает про виндовый шедулер? и люди бы писали свой (тут я участия почти не принимал), если бы удовлетворял нужным критериям, не в части запуска задач по расписанию, а именно управления задачами запуска, логами и уведомлениями разных приложений (как своих там и сторонних)и скриптов, цепочной задач (последовательными и параллельными группами) с настройкой поведения в зависимости от резулткода, с возможностью через удаленный UI продолжить прерванную цепочку в нужного места и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:46 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasАлексей Кпропущено... Свой не нужен, есть готовый, из "коробки": Using the Task Scheduler вот об этом и говорил выше задача должна быть сформирован абстрактна. вы серьезно думаете что тут кто-то не знает про виндовый шедулер? и люди бы писали свой (тут я участия почти не принимал), если бы удовлетворял нужным критериям, не в части запуска задач по расписанию, а именно управления задачами запуска, логами и уведомлениями разных приложений (как своих там и сторонних)и скриптов, цепочной задач (последовательными и параллельными группами) с настройкой поведения в зависимости от резулткода, с возможностью через удаленный UI продолжить прерванную цепочку в нужного места и т.д. причем через UI (управлеющего удаленной службой) понятного для простого юзера, чего про виндовый шедулер не скажешь совсем. типа запустить задачу, простомтреть журнал запусков с фильтрами, по клику получить лог, перезапустить/продолжить(в случае с задачами в которых много действий остановленных при ошибке в одном из и т.д. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 11:52 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasвот об этом и говорил выше задача должна быть сформирован абстрактна. вы серьезно думаете что тут кто-то не знает про виндовый шедулер? Агрессивный вы наш. Этот топик не только для вас. Я как новичок), с удовольствием прочту про эту возможность. Потолерантнее немного). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:07 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
barrabasвы серьезно думаете что тут кто-то не знает про виндовый шедулер?Да. Если люди не в состоянии написать банальный ThreadPool, не задавая вопросов на форуме, то вполне вероятно и такое. barrabas... причем через UI (управлеющего удаленной службой) понятного для простого юзера, чего про виндовый шедулер не скажешь совсем. типа запустить задачу, простомтреть журнал запусков с фильтрами, по клику получить лог, перезапустить/продолжить(в случае с задачами в которых много действий остановленных при ошибке в одном из и т.д. )Написать нужный UI для "виндового шедулера", вроде как, проще, чем писать всё с "нуля". Да и его родной UI, всяко, будет полезен. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:18 |
|
Парралельный обход коллекции в строгом порядке с заданным числом потоков
|
|||
---|---|---|---|
#18+
Petro123barrabasвот об этом и говорил выше задача должна быть сформирован абстрактна. вы серьезно думаете что тут кто-то не знает про виндовый шедулер? Агрессивный вы наш. Этот топик не только для вас. Я как новичок), с удовольствием прочту про эту возможность. Потолерантнее немного). приношу пардоны, не хотел обидеть никого. просто совпало :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2017, 12:19 |
|
|
start [/forum/topic.php?fid=20&msg=39543077&tid=1399646]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 165ms |
0 / 0 |