170 похожих чатов

А как тогда динамически управлять размером буфера канала, без перезапуска

процесса?
пример с динамическим количеством воркеров
https://play.golang.org/p/kxvsBZM83H5

6 ответов

12 просмотров

используйте семафоры

никак если каждый запуск задачи делать push в канал, то можно уменьшить эффективную ёмкость канала, запихнув в него N тикетов а вот с увеличением проблемы

Мерль
никак если каждый запуск задачи делать push в кана...

ну свою конкуретную очередь сделать можно если очень сильно хочется

Мерль
никак если каждый запуск задачи делать push в кана...

ну можно извернуться и сделать условный канал на 100 (1000) элементов, на старте запулить туда 90 - вот тебе и 10 воркеров. Надо увеличить - вычитываем из канала нужное количество, получаем увеличение.

Jerzy Kamiński
ну свою конкуретную очередь сделать можно если оче...

Можно Но, честно говоря, обычно не нужно, по крайней мере на моей практике сразу нужна бывает персистентность, а значит какой-нибудь NATS или кафка

Sergey
ну можно извернуться и сделать условный канал на 1...

можно но на атомарных счётчиках получается примерно так же просто, хотя в крайних случаях страдает отзывчивость я обычно делаю так 1. Если ограничение на количество параллельных задач вообще не нужно — обычная waitgroup 2. Ограничение статическое и известно до запуска всех задач — канал пустых структур-тикетов 3. Динамическое ограничение (например шейпинг запросов на сервис) — атомарные счётчики и отменяемый сон на таймерах и мне кажется, что случаи 1 и 2 — это примерно 80% юзкейсов

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта