Abdullo
https://github.com/sirupsen/logrus
Abdullo
github.com/go-sql-driver/mysql
Abdullo
nicho esli budu pisat translitom ? medleddno pishu na kirilitse
Yura
Второй вариант: используешь таймеры для таймаута? Если да, то в случае, когда таймаут не понадобился, таймер стопаешь?
Abdullo
Da ispolzuyu
Abdullo
Net ne virubayu ih oni doljni vechno rabotat
Abdullo
kajdoe n sekund ya doljen chitat iz ocheredi i otpravlyat push
Abdullo
mojete posovetovat gde mojno pochitat pro futexi ? Ato normalnuyu doku nigde ne nashel
Yura
Тем же go tool pprof построй svg или dot файл.
Yura
Если можешь на локальной машине сделать, то web в pprof откроет браузер с svg
Abdullo
Yura
Буду материться: у тебя, б^%πь до х√я таймеров. Они выжирают твой цпу.
Yura
Прошу прощения за несдержанность, просто такой профайла я еще не видел.
Abdullo
time.NewTicker() ti pro etot timer ?
Sergey
Товарищи, а подскажите немного по организации кода
Sergey
есть у меня парсер, которые парсит кое чего и на основе распарсенного делает сущности
Sergey
сущности я реализова через struct
Abdullo
Sergey
и сейчас все это в одном файлике
Yura
Ticker - это периодический таймер. Пока ты его не остановишь, он ьудет работать и работать.
Sergey
и вот я думаю как разбить - просто по файликам в папке с исходниками приложения
Sergey
или создавать папки entity
Sergey
model
Sergey
и пр?
Abdullo
Vmesto timerov. Ili u menya nepravilno sozdaetsa ?
Yura
Если ты их постоянно порождаешь, и никогда не останавливаешь, миллионы тикеров выжрут весь цпу, наберут критическую массу, и превратятся в черную дыру
Abdullo
Yura
Если тебе нужен таймер, используй Timer. Если нужно раз в секунд, пусть это будет Ticker, но один (ну, или несколько)
Abdullo
Sergey
не подскажете по организации?
Daniel
а?
Sergey
Sergey Pronin, [24.01.17 12:39]
Товарищи, а подскажите немного по организации кода
Sergey Pronin, [24.01.17 12:39]
есть у меня парсер, которые парсит кое чего и на основе распарсенного делает сущности
Sergey Pronin, [24.01.17 12:39]
сущности я реализова через struct
Sergey Pronin, [24.01.17 12:39]
и сейчас все это в одном файлике
Sergey Pronin, [24.01.17 12:40]
и вот я думаю как разбить - просто по файликам в папке с исходниками приложения
Sergey Pronin, [24.01.17 12:40]
или создавать папки entity
Sergey Pronin, [24.01.17 12:40]
model
Sergey Pronin, [24.01.17 12:40]
и пр?
Slava
пиши как удобно, а потом всё равно перепишешь
Sergey
))) ну, это наверняка )
Sergey
я погуглил Best Practice но чёт ничего конкретного не увидел
Sergey
ссылки на репы, а там разные файлики но просто в папке приложения лежат и всё
Sergey
Смотрю на какой-то болт https://github.com/boltdb/bolt
Sergey
все исходники в одной папке
Sergey
ух...а если сущностей, допустим, штук 200 разных
Мерль
Выпуск 12. http://scalalaz.ru/mp3/scalalaz-podcast-12.mp3. Sent from Podcast Republic.
Мерль
Мерль
Sergey
Sergey
в этом и есть вопрос
Мерль
в этом и есть вопрос
https://blog.gopheracademy.com/advent-2016/go-and-package-focused-design/
Sergey
Sergey
шикарная ссылка
Anonymous
а кто на rc2 уже перекатился?
Anonymous
и stringer юзает
Anonymous
wtf
stringer: checking package: config.go:4:2: could not import fmt (reading export data: /usr/local/go/pkg/linux_amd64/fmt.a: invalid encoding format in export data: got 'v'; want 'c' or 'd')
Sergey
Решил пойду путем с картинки:
Sergey
Sergey
)))
Kirill
Kirill
сейчас работаю над этим проектом
Kirill
тут по-моему просто угадать что за оно %)
Sergey
слушай, а как ты конфиги хранишь?
Sergey
json файл преобразующийся в структуру?
Sergey
или прям в структуре какой-нибудь типа Config напихано?
Kirill
Sergey
угу
Kirill
вот его в viper запихиваю и не парюсь
Kirill
плюс дальше сверху прикручиваю веб-панель для управления конфигом, watch'еры их, синхронизацию по кластеру и вот это всё
Sergey
ух 😊 пока сложновато для меня
Sergey
я на го прогать пытаюсь неделю наверное )
Kirill
да всё вроде как просто, как палка
Kirill
серверы кластера между собой соединяются и просчитывают кратчайшие пути от каждого до каждого. сервер, который обслужил сохранение конфига выбирает до трех ближайших (по traceroute и пингу) сервера и даёт им данные по конфигу. они применяют и отдают следующей группе до трех серверов, исключая те, которые уже были настроены. так оно рекурсивно раскатывает по всему кластеру в течение максимум 5 секунд.
Kirill
точно так же работает кеш. он шардируется и сервер, который ближе всего к клиенту или отдает из своих локальных кешей и/или хранилищ, или идет по кратчайшему пути к одному из серверов, который отвечает за конкретный шард.
Sergey
спасибо Кирилл
Kirill
хотя с шардированием кеша я провозился долго. задержка была неприемлемой.
Sergey
ну, я парсер пишу )
Kirill
а, парсер тоже штука довольно простая
Sergey
даже с трехкопеечным знанием Го ускорил то что есть с 3 часов, до 3 секунд )
Kirill
О.о
Kirill
с трёх часов?!
Sergey
угу
Sergey
)