|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
всем привет, есть у меня слушатель, который слушает задания, которые надо выполнять в определенные дни, часы и минуты. и все вроде работает, но нагрузка последний год стала велика. Ну и как складывается, все задания заказаны на одно и тоже время. Мои потоки все получают и запускают, соответственно все выполняется, но есть такая ситуация, что например к слушателю пришло 157 заданий на 9:15 минут, слушатель получает всё, но после 40-го это уже 9:16 минут и так далее, т.е. задания слушатель запускает на выполнение до 9:22, я проблемы не вижу, но результат и время старта заданий пишется в базу, и пользователь не понимает, почему назначено на 9:15 а запустилось в 9:19. я конечно могу обмануть пользователя и подсовывать время из задания, и я также почитал всякие книжки про потоки еще раз, в итоге все стандартно как бы, Repeat, Process. но он не успевает запустить всё в 9:15. я думаю мысль понятна, свой код не хочу показывать, так как он громоздкий с ремарками где есть имена заказчиков (чистить много) также он наложит некоторые стереотипы на обсуждение вопроса, ну и потом сразу начнутся ссылки на то, что нужно почитать то или то, но мне интересно мнение, и теоретические варианты решения, т.е. просто идеи, НЕЕЕЕ, конечно можно и технические решения, возможно они даже будут лучше моего, но результат боюсь будет тот же. спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 16:45 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
yemets63я думаю мысль понятна Мысль понятна. Непонятно какой жидкостью надо протирать хрустальный шар чтобы понять какой бред ты наворотил, чтобы запуск сорока потоков занял целую минуту. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 17:15 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
Создаешь пул потоков, например 500, на старте приложения и потом раскидываешь им задания. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 17:25 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
ну и присоединяюсь к вопросу Dimitry Sibiryakov Непонятно какой жидкостью надо протирать хрустальный шар чтобы понять какой бред ты наворотил, чтобы запуск сорока потоков занял целую минуту. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 17:36 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
wadman Создаешь пул потоков, например 500, на старте приложения и потом раскидываешь им задания. Создание 500 потоков занимает несколько миллисекунд. Вряд ли пул чем-то поможет автору. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 22:43 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
yemets63, Вероятно, поток, разбирающий очередь заданий, после запуска задания уходит в спячку на несколько секунд. Либо задания выполняются по очереди. Либо задания сильно грузят процессор, но в этом случае можно увеличить число ядер либо оптимизировать код задания. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 22:53 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
Да небось в БД пишется не время начала выполнения задания а время его завершения. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 00:11 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov yemets63я думаю мысль понятна Мысль понятна. Непонятно какой жидкостью надо протирать хрустальный шар чтобы понять какой бред ты наворотил, чтобы запуск сорока потоков занял целую минуту. А если ещё учесть что хрустальные шары у всех от разных производителей, то вообще каюк! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 03:09 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
А я так и не понял, в чем проблема ТС? Все задания должен рулить ОДИН доп.поток? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 08:54 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
Запускай сотни потоков, пусть они начинают работать вовремя. А что закончат спустя час - это уже юзера не будет беспокоить ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 10:25 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
yemets63 пришло 157 заданий на 9:15 минут, слушатель получает всё, но после 40-го это уже 9:16 минут и так далее, т.е. задания слушатель запускает на выполнение до 9:22 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 10:28 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
Автор или запускает задания последовательно, и те выполняются в той же нити, или запускает задания в других нитях, но при этом чего-то ждет (например, инициализации, а то и завершения). Забаньте его к буям, пожалуйста, чтобы не задавал тупых вопросов без предоставления кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 13:20 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
yemets63 я думаю мысль понятна Не понятно даже, чего ты хочешь. Ты описал довольно глупую ситуацию, свидетельствующую о явных проблемах на уровне архитектуры и кода. И? В чём вопрос-то? Где прописать волшебный параметр fast = true? P.S. Там, где большая нагрузка, задания специально размазываются по времени запуска. Это позволяет обходиться без пиковых нагрузок, снижающих пропускную способность в целом. То есть на уровне требований можно и нужно прописать, что если задание запланировано на 9:15 - на практике оно будет выполнено между 9:10 и 9:20. Далее, задания часто требуется делить на несколько классов с разной приоритетностью и выбирать очередное на выполнение в соответствии - то есть одно можно выполнить между 9:00 и 9:30, другое обязательно нужно выполнить между 9:00 и 9:05, а третье вообще-то годится между 8:00 и 9:00, но сейчас уже 8:58, так что надо всё бросать и заниматься именно им. P.P.S. Эффективность выполнения группы заданий существенно зависит от эффективности реализации каждого конкретного задания. Также она существенно зависит от того, насколько эти задания обращаются к общим ресурсам и насколько эффективно синхронизируется этот общий доступ. Как правило, наиболее эффективный подход - запускать N потоков-исполнителей, каждый из которых, выполнив очередное задание, берёт из очереди следующее и работает с ним. Количество N в целом подбирается экспериментально. P.P.P.S. При очень большом количестве заданий бывает, что узким местом становится очередь заданий (потоки начинают ждать возможности вытащить из неё очередное задание). Тогда приходится делать свои очереди заданий для каждого потока и отдельный диспетчер, занимающийся распихиванием приходящих заданий по очередям исполнителей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 16:24 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
дааааааааааа, на сколько меняется мир. текст мой с указанием времени и количества заданий был вреден чтобы было понятно. я думал, что кто то закинет идеи, но получил в ответ почти оскорбления. все отрабатывается в милисекундах на самом деле, вопрос шел о проблеме запуска заданий, а не о их выполнениях, они все выполняются скажем так почти одновременно только от Softwarer подмечено верно, а я это не указал. вся проблема, что поток иногда, именно иногда, начинает чего то ждать, скажем так 50 на 50, запускает или ждет, и не могу понять закономерности, соответственно не могу найти причину. даже при трейсинге, приходит на ProcessMassage и там курсор стоит иногда несколько секунд, не всегда .. Судя по первым отзывам, Модератор может удалить тему. дальше развития не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2021, 10:10 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
yemets63на сколько меняется мир. Мир меняется - люди остаются прежними. Ты, вот, так и не научился программировать за все года, что сидишь здесь. yemets63приходит на ProcessMassage и там курсор стоит иногда несколько секунд Какой ещё ProcessMessages в потоке? Его там не должно быть по определению, что только подтверждает диагноз в начале топика. Ты всерьёз думал, что тебя закидают идеями с твоим подземным стуком?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2021, 12:25 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
yemets63 я думал, что кто то закинет идеи твои текущие идеи трудно понять. Не называть же поток сознания в стартовом посте идеей? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2021, 13:35 |
|
нужны советы и идеи про потоки
|
|||
---|---|---|---|
#18+
yemets63 приходит на ProcessMassage и там курсор стоит иногда несколько секунд, не всегда .. Если еще добавить сюда SYNCHRONIZE (как делают почти все новички в потоках), то если не глюки, то тормоза обязаны быть с таким количеством потоков. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 10:15 |
|
|
start [/forum/topic.php?fid=58&fpage=15&tid=2037160]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 194ms |
0 / 0 |