@proGO

Страница 674 из 1674
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
какой смысл торрентов если ты работаешь и есть нетфликс?

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
Так. Что делать? Как выходят?
2 варианта: - Собирать через канал - сделать thread-safe обвязку для файла

Phil
24.06.2017
22:05:30
Окей. Т.е. это норм?

А какнал же медленный? Или если не мегабайты - насрать?

Alexey
24.06.2017
22:06:04
насрать?

Канал медленный не из-за размера данных, а из-за количества обращений

Если несколько OS-level тредов пишут в один канал, то каждый вызов - это сисколл. Поэтому наоборот, лучше 10 раз отправить 1000 байтов, чем 1000 раз по 10 байтов

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: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 реализовано, надо тестить. Или читать сырцы-доки.

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

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

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

В общем, кажется, что сам файл в го не тред-сейф. Но можно обойти, если в каждой горутине один и тот же файл открывать с O_APPEND|O_WRONLY: https://gist.github.com/scukonick/7bfee57c71fafe8291a4e12c5eb0f570
В моих тестах в 1.3 раза через каналы медленнее получилось: https://gist.github.com/scukonick/0c6561b9fe4775d17785bb807b54821c Но всяко так логичнее и понятнее.

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
Есть у го тренарный оператор без использования if?
можно так извратиться newmsg := "Учетная запись связана с " + username + map[bool]string{true: " и подтверждена", false: " но не подтверждена"}[confirmed] через map

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

Страница 674 из 1674