|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
Petro123WaspNewCoreобщий пул потоковон общий вроде на процесс Вот именно. Он общий на весь процесс. Поэтому если нам нужно, чтобы Service1 мог породить только 3 одновременно работающих таска, а Service2 - 5, то и начнется проблема. Которую я и думаю как решать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 16:57 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
vb_subWaspNewCore, зачем ограничивать общее количество работающих задач? Да просто, чтобы не завалить сторонний сервис, к которому обращение идет через HttpClient, потоком запросов. Ну и вообще, нужна возможность конфигурировать нагрузку. Например, чтобы уменьшить нагрузку на базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 16:58 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
WaspNewCoreДа просто, чтобы не завалить сторонний сервис,смешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:02 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
WaspNewCoreНапример, чтобы уменьшить нагрузку на базу.еще смешнее. maxPoolThread =2 и будет 2 запроса на всю базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:04 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
WaspNewCoreесли нам нужно, чтобы Service1 мог породить только 3 одновременно работающих таска, а Service2 - 5, тозачем 2 сервиса? Ты сам себе придумал задачу. Типо есть один цикл for выбирающий очередь. Тебе захотелось два цикла for вызывающих один метод Run() ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:07 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
Petro123, Какие 2 ? Насколько я помню формула "количество процессов*2". С учетом гипертрединга 4х ядерный процесс даст 16 потоков. Вот эти 16 потоков нужно распределить между несколькими классами-сервисами. Этому 3, другому 5. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:38 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
Petro123WaspNewCoreесли нам нужно, чтобы Service1 мог породить только 3 одновременно работающих таска, а Service2 - 5, тозачем 2 сервиса? Ты сам себе придумал задачу. Типо есть один цикл for выбирающий очередь. Тебе захотелось два цикла for вызывающих один метод Run() Каждый сервис обрабатывает данные по своей специфике. Это отдельные классы, в которых совершенно своя логика, и она может быть очень отличной. Вся суть задачи - это сделать такой обработчик задач. Его будем расширять классами обработчиками. Их там уже штук 6 набирается. Но они не все одновременно будут работать. Вот я и думаю как это все реализовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:41 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
WaspNewCorePetro123, Какие 2 ? Насколько я помню формула "количество процессов*2". С учетом гипертрединга 4х ядерный процесс даст 16 потоков. Вот эти 16 потоков нужно распределить между несколькими классами-сервисами. Этому 3, другому 5. Количество Процессоров имелось ввиду. На сервере там может и больше вообще процессоров. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:42 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
WaspNewCorePetro123, Какие 2 ? Насколько я помню формула "количество процессов*2". С учетом гипертрединга 4х ядерный процесс даст 16 потоков. Вот эти 16 потоков нужно распределить между несколькими классами-сервисами. Этому 3, другому 5. Нет. По умолчанию у меня 10 что ли потоков. Но механизм этот зависит не просто от ядер. В него просто не нажо лезть. Зачем распределять? Распил бабла? Если доводов нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:49 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
WaspNewCoreЕго будем расширять классами обработчиками.выше я 3 метода написал. Внутри них нельзя расширить бизнес логику? Сервис это запускалка. А логика в классе MyЛогика.Run(); ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:52 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
WaspNewCoreС учетом гипертрединга 4х ядерный процесс даст 16 потоков. Вот эти 16 потоков нужно распределить между несколькими классами-сервисами. Этому 3, другому 5.ты 16-тью потоками запросами боишься веб сервис положить? Ну смешно же. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 17:55 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
Petro123, дело еще не в столько, чтобы не положить, но и в том, чтобы они между собой не конкурировали за потоки. Чтобы не стартануло 16 длительных задач, не дающих работать быстрым. Поэтому и нужно распределение пула потоков между ними. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 18:00 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
Petro123WaspNewCoreЕго будем расширять классами обработчиками.выше я 3 метода написал. Внутри них нельзя расширить бизнес логику? Сервис это запускалка. А логика в классе MyЛогика.Run(); ну вот нужно еще, чтобы они после своей работы семафор отпускали. плюс учитывать вероятность ошибок - падений. Чтобы при этом тоже семафор почистился. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 18:01 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
WaspNewCoreмежду собой не конкурировали за потоки.кто они? Поток изолирован или выше писал что поток это задача. Где конкуренция? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 18:02 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
WaspNewCoreсемафорсемафор не бывает без общего разделяемого ресурса. А его нет. Задачи параллельные. Смотри код. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 18:03 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
WaspNewCoreплюс учитывать вероятность ошибок - паденийtry при async работает. Попробуй) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 18:04 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
WaspNewCore, Есть анекдот, когда мужик в поезде очищал банан, потом солил, и выбрасывал в окно. На вопрос зачем? Он отвечал что не любит соленые бананы. Так и ты ввел семафор и спрашиваешь как с ним тут работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 18:07 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
авторКласс System.Threading.ThreadPool обеспечивает приложение пулом рабочих потоков, управляемых системой, позволяя пользователю сосредоточиться на выполнении задач приложения, а не на управлении потоками. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 18:15 |
|
Как реализовать такую идею ? Есть ли готовые решения ?
|
|||
---|---|---|---|
#18+
авторЧисло операций, которое можно поставить в очередь в пуле потоков, ограничено только доступной памятью. Однако пул потоков имеет ограничение на число потоков, которое можно активировать в процессе одновременно. Если все потоки в пуле заняты, дополнительные рабочие элементы помещаются в очередь и ожидают их освобождения. Начиная с .NET Framework 4, размер пула потоков по умолчанию для какого-либо процесса зависит от нескольких факторов, таких как размер виртуального адресного пространства. Процесс может вызвать метод ThreadPool.GetMaxThreads для определения количества потоков. Вы можете управлять максимальным количеством потоков с помощью методов ThreadPool.GetMaxThreads и ThreadPool.SetMaxThreads.я MS верю)) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 18:17 |
|
|
start [/forum/topic.php?fid=20&msg=39793860&tid=1399031]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
130ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 266ms |
total: | 480ms |
0 / 0 |