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

B.Flush/FinalFlush это ваш код или сторонняя либа?

6 ответов

7 просмотров

Мой код. И там честно говоря всё тоже против блокировок для записей в клик и редис всегда есть таймауты, есть логи ошибок и тоже есть проверка на контекст for { select { case <-b.ctx.Done(): b.log.Info("Receive done signal while try to flush events from buffer") return b.dump() default: if err := b.dump(); err != nil { b.log.Error("Error while dump events. Sleep and try again", zap.Error(err)) time.Sleep(time.Second) continue } return nil } }

Ярослав Коробейников
Мой код. И там честно говоря всё тоже против блоки...

Вот он код флаша) то бишь опять же for которые слушает и контекст и есть дефолт, если только где-то в b.dump() но там блин нет работы сканалами или мьютексами) там просто возьму все записи что успел накопить и скинь в кх, любая ошибка логируется)

@koziavka Тобишь будь ошибка в dump он бы её залогировал, если нет никаких ошибок то for должен прекратиться, и в случае чего сtx.Done() при дампе тоже мог бы перехватиться, но этого не происходит)

Ярослав Коробейников
Вот он код флаша) то бишь опять же for которые слу...

У меня была ситуация, когда горутины с бесконечным циклом без блокирующих операций просто захватывали все го-процессора и ожидающие горутины просто никогда не могли запуститься. Не может ли и тут случаться такое? Что го-процессор просто не может вставить точку разрыва в выполнение горутины бесконечной? Проверять можно установкой Sleep(1) в тело бесконечного цикла. Это позволит процессору отправить горутинку в очередь и перейти к другой. Если решит, то можно либо изменить архитектуру на более разумную, либо оставить так, что немного костыльно…

Ярослав Коробейников
Мой код. И там честно говоря всё тоже против блоки...

Вот он sleep в случае ошибки) Если ошбки не было то for просто оборвётся)

Ярослав Коробейников
Мой код. И там честно говоря всё тоже против блоки...

В любом случае тут канал контекста тоже слушается и если был сигнал отмены контекста то с default он должен бы был на него перепрыгнуть

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта