
Alex
24.06.2017
18:05:53
И криптоанархист

Maxim
24.06.2017
18:06:30

Subbotin
24.06.2017
18:07:05
айда все в криптоанархический @distributed

Google

Subbotin
24.06.2017
18:07:35
если кто ещё не там

Michael
24.06.2017
18:07:39
какой смысл торрентов если ты работаешь и есть нетфликс?

Subbotin
24.06.2017
18:07:59

Michael
24.06.2017
18:08:30
э гэ гэй штоле

Alex
24.06.2017
18:08:34

Michael
24.06.2017
18:08:55
и труд оплачен

Maxim
24.06.2017
18:09:46

Alex
24.06.2017
18:10:16
Все зависит от того, что мы понимаем под словом "труд"

Maxim
24.06.2017
18:11:03
Труд != Работа

Alex
24.06.2017
18:11:45
"Труд" это газета такая
Не знаю, жива ли сейчас

Michael
24.06.2017
18:12:03
и работа газета

Google

Alex
24.06.2017
18:16:52
Вот с тех пор, как газета перестала быть оплачена, у нас все по пизде и пошло
Так что - труд должен быть оплачен
Тогда и Ленин встанет из Мавзолея

Subbotin
24.06.2017
18:17:37

Michael
24.06.2017
18:19:14
он копит силы и лениво ждёт-с

Arctic
24.06.2017
21:37:31
Как видите, реклама в библиотеке прошла отлично.

Phil
24.06.2017
22:01:03
Проблема. Пишу в файл из 1000 горутин примерно так:
if file, err := os.Create("result.lst"); err == nil {
defer file.Close()
w := bufio.NewWriter(file)
///....... тут 1000 горутин, которые делают строку ниже
fmt.Fprintf(w, "%s\n", "blabla")
}
И у меня через раз внезапно panic: runtime error: slice bounds out of range
гуглитсо про какой-то race data

Alexey
24.06.2017
22:03:10
Файл вроде как не тред-сейф

Phil
24.06.2017
22:03:37
Так. Что делать? Как выходят?

Denis
24.06.2017
22:04:47
Собирать через канал

Phil
24.06.2017
22:05:04
там много данных

Alexey
24.06.2017
22:05:12

Phil
24.06.2017
22:05:30
Окей. Т.е. это норм?
А какнал же медленный? Или если не мегабайты - насрать?

Alexey
24.06.2017
22:06:04
насрать?
Канал медленный не из-за размера данных, а из-за количества обращений
Если несколько OS-level тредов пишут в один канал, то каждый вызов - это сисколл. Поэтому наоборот, лучше 10 раз отправить 1000 байтов, чем 1000 раз по 10 байтов

Phil
24.06.2017
22:07:28

Denis
24.06.2017
22:07:42
На винде зато безопасно

Google

Denis
24.06.2017
22:07:52
Меняй ос:)

Alexey
24.06.2017
22:08:01

Denis
24.06.2017
22:08:28
Что-то вроде обещали сделать с этим
В гошке на никсах
Можно ещё лочить конечно

Alexey
24.06.2017
22:09:22
лок тоже сисколл:)

Phil
24.06.2017
22:09:24
Я понял. Спасибо

Denis
24.06.2017
22:09:43
Это так, альтернативы обсуждаем

Alexey
24.06.2017
22:10:21
Ну да, там разница в основном то, как оно лучше вписывается в уже написанный код, а по производительности одинаково примерно.

Труба
24.06.2017
22:11:31
Всем привет, создал скрипт, который мониторит БД и отправляет уведомление на почту, если находит ошибку. По идее должна образовываться очередь из сообщений. Как не потерять ее в случае сбоя?

Denis
24.06.2017
22:11:58
Писать в файл очевидно ж

Alexey
24.06.2017
22:12:44

Alexey
24.06.2017
22:13:07
Или имеется в виду сбой почтовика?)

Труба
24.06.2017
22:14:02
в WP, вроде, письма БД, потом берутся оттуда и рассылаются частями

Admin
ERROR: S client not available

Denis
24.06.2017
22:15:10
Писать в файл

Alexey
24.06.2017
22:15:13

Труба
24.06.2017
22:16:01
хорошо, всем спасибо, буду писать в файл)

Denis
24.06.2017
22:16:52
Делаешь в tmp директорию и туда пишешь по файлу на ошибку с датой и кодом ошибки (любым айди) после успешной обработки удаляешь

Google

Denis
24.06.2017
22:16:57
Если случился halt
Чекаешь эту директорию на файлы
На принимающей стороне можно чекать дубликаты по айди
То есть сделать идемпотентно
Отправку уведомления
Думаю это закроет большинство кейсов когда халт случился на отправке

Phil
24.06.2017
22:22:43
Да, кинул в каналы - всё сразу зашуршало

Kirill
24.06.2017
22:28:01
Очередной пузырь-лохотрон

Alexey
24.06.2017
22:31:00
Да, кинул в каналы - всё сразу зашуршало
Вообще, вот тут пишут:
https://stackoverflow.com/questions/1154446/is-file-append-atomic-in-unix/
Что если открывать файл с O_APPEND, то можно в него писать параллельно до какого-то определённого размера чанка. Но я не уверен, насколько это в Go реализовано, надо тестить. Или читать сырцы-доки.

Vladimir
24.06.2017
22:31:19

Kirill
24.06.2017
22:41:40
А в чем отличие от старого?
В том, что есть какое-то смутное оправдание - мол компания не просто лохотрон, а зарабатывает инвестициями, и зарабатывает так, что может платить "вкладчикам" порядка 300% годовых за их вложения. Зарабатывает по легенде на скупке имущества в торгах по банкротству и еще какими-то "инвестициями". В общем в компании работают умные люди, которые знают куда вложить деньги своих вкладчиков.

Denis
24.06.2017
22:43:17
Старая отлаженная схема :)

Vladimir
24.06.2017
22:43:58

Alexey
24.06.2017
22:47:08
В общем, кажется, что сам файл в го не тред-сейф. Но можно обойти, если в каждой горутине один и тот же файл открывать с O_APPEND|O_WRONLY:
https://gist.github.com/scukonick/7bfee57c71fafe8291a4e12c5eb0f570

TILTED
25.06.2017
00:04:25
Есть у го тренарный оператор без использования if?

Denis
25.06.2017
00:12:33
Неа

Kirill
25.06.2017
05:17:12
@schors

Vitaly
25.06.2017
06:28:26

Google

TILTED
25.06.2017
07:49:47

Denis
25.06.2017
08:11:03
но так делать не надо