Kirill
разве нет?
Logan
плюс вопрос управления правами (который тоже не так очевиден)
Kirill
можете посоветовать что погуглить/почитать по этой теме?
Kirill
или посмотреть
Kirill
реализации популярные например
Logan
можно посмотреть выступления Чистякова и Badoo на HL++, секция по хранению данных. Для тестов можно взять minio (он простой), стандарт де-факто из opensource - ceph. Во втором случае рекомендуется очень тщательно прочитать документацию и советоваться со знающими людьми. Неаккуратная работа с ceph легко может уничтожить все данные разом (именно так погиб провайдер cloudmouse)
Logan
в принципе даже NetApp поддерживает S3 интерфейс, насколько я помню
Kirill
почему minio только для тестов?
Logan
потому, что он не умеет то, что нужно от системы хранения. Он медленный, он примитивный (у минио нет пользователей – пара ключей там только одна), реплицироваться он тоже не умеет
Logan
erasure codes тоже, ЕМНИП, не умел
Kirill
спасибо)
G72K
G72K
Aleksandr
Aleksandr
Aleksandr
Aleksandr
https://docs.minio.io/docs/distributed-minio-quickstart-guide
Logan
если ваши данные вам ценны хоть сколько-нибудь – никогда не используйте этот режим
Logan
я проверил его на себе. Повторять не советую
Aleksandr
только что ты утверждал что минио для тестирования, нет реплик и erasure codes, и вдруг пройдя по ссылке где все это есть, утверждаешь что режим плох, и ты потерял данные
Anonymous
Привет. Никто не встречался со следующей проблемой. Записал я значит парсер сайтов без единого Print(ln|f). Запустил я своё произведение искусства, сижу наслаждаюсь девственно чистой консолью. И тут бац, посыпалось:
Unsolicited response received on idle HTTP channel starting with [нечитаемые байты]
Aleksandr
Anonymous
Aleksandr
Aleksandr
/net/http/transport.go:1685
Aleksandr
в 1.9.3
Aleksandr
нет, ctrl+f по коду. ну в самом деле
heavycharged
я встречался с паникой, когда работал через прокси, прокся изменяла ответ сервера и сраза чем ни попадя. в итоге начинались паники.
heavycharged
Aleksandr
heavycharged
а все, нашел как, спс. через Find -> Scope -> All Places
heavycharged
почему когда делаешь Ctrl+Z в терминале, задача уходит в stopped, а не продолжает работу?
Slava
а почему она должна продолжать работу?
heavycharged
в некоторых случаях, когда делаешь Ctrl+Z задачи продолжают работу. это же вроде как отправить задачу в фон
heavycharged
или не?
🎉
В фон отправляй так ./main &
heavycharged
спасибо, я в курсе за этот способ, мне интересно почему по Ctrl+Z останавливает. так удобней на много просто.
🎉
Slava
ctrz +z отправляет сигнал sigstp
Slava
программа должна остановить свою работу
heavycharged
спасибо за объяснения, теперь понял, можно через bg запустить её
Ilya
Привет всем
Только начал изучать go и столкнулся с проблемой.
Такое чувство что goroutine прекращает выполняться после отправки из нее сообщения в канал.
Пример тут:
https://play.golang.org/p/Jef_5zHpTRN
heavycharged
GOMAXPROCS?
Vasily
нет
Vasily
канал не буферизированный, из него никто не читает
Vasily
вот оно и лочится в ожидании когда кто-то прочтёт
heavycharged
heavycharged
27 строка
heavycharged
в данном кейсе проблема, кмк. именно в GOMAXPROCS, я у себя запустил на 4 ядрах и все успевает отписаться.. https://i.imgur.com/3YFjTa1.png
Alexander
https://play.golang.org/p/0WBi5Ok9fHZ
heavycharged
а вот runtime.GOMAXPROCS(1): https://i.imgur.com/xP4PGEY.png
Ilya
Alexander
Vasily
Alexander
Vasily
👍
Ilya
Спасибо
Alexander
Спасибо @rvasily, вы хороший учитель :)
Vasily
да, после той домашки всё запомнилось навсегда, правда ?:)
heavycharged
горутины не успевают выполнится из-за конструктивного косяка, это факт. но сам факт того, что с GOMAXPROCS повыше код успеет отработать мне и был интересен)
Wingman
Не совсем в тему вопрос :)
Запускаю из веба задачу; гошка в фоне её (долго) выполняет; для обновления статуса (какая задача запущена/остановлена) из веба раз в секунду дергаю гошку на предмет запущеных задач.
Нюанс: в вебе руками эти задачи будут запускаться/смотреться не сильно часто, скорее для дебага - зато в фоне их могут крутиться сотни и тысячи.
Стоит ли корячиться и приделывать сбоку к демону вебсокеты, чтобы не дёргать его (иногда, когда понадобиться) раз в секунду? Сам способ опрашивать посекундно не нравится и уродский, зато не нужен лишний слой логики с вебсокетами
Тут больше вопрос не го, а лень/перфекционизм, конечно - но сам никак не могу решить :D
heavycharged
ну если пользоваться будете только вы, я бы не делал, все что нужно - прикрутить логи чтобы знать, что, почему, и во сколько закончилось/прервалось.
heavycharged
я как-то пробовал написать парсер с воркерами и вебсокеты, чтобы из вебморды было видно что какой воркер парсит, его текущий стейт и т.д., получилось... красиво)) но больше я так не делал)
Wingman
Wingman
Wingman
Ну лан
Wingman
Всегда можно потом дописать )
Anonymous
https://github.com/hIMEI29A/gichidan
Лёша
Здравствуйте. Если тест обычных http хендлеров, принимающих http.ResponseWriter, *http.Request, выглядит так:
// есть какой-то хендлер - handler
req, _ := http.NewRequest("METHOD", "/some/url", nil)
rec := httptest.NewRecorder()
handler.ServerHTTP(rec, req)
// используем rec для тестов
то как можно протестировать какое-нибудь middleware, принимающее http.Handler?
hypnopumpia
Вызывать в нем ServeHTTP?
Kirill
Привет, подскажите при сборке проекта на хероку выходит такая ошибка
Kirill
FATAL: command "build" failed: failed to resolve import path "main": import "github.com/minio/minio-go/pkg/credentials": not found: stat /tmp/build_9d126a28343bef30699cfad15e174da9/src/github.com/minio/minio-go/pkg/credentials: no such file or directory
Kirill
на локальной машине при этом все ок