ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ
ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ
SQLite is threadsafe. We make this concession since many users choose to ignore the advice given in the previous paragraph. But in order to be thread-safe, SQLite must be compiled with the SQLITE_THREADSAFE preprocessor macro set to 1.
Pawel
Pawel
Stanislav
.
Alexander
Daniel
OMG
Daniel
коллеги, пожалуйста, не надо нести херню
Daniel
ᛃᛟᚺᚾ ᚠᚨcᛖᛚᛖᛊᛊ ᛞᛟᛖ
🍁 Jaŭhien
Всем привет. Присматриваюсь к го, есть какая-нибудь библия голанга или просто полноценный ресурс по языку?
Roman
🍁 Jaŭhien
Доку уже читаю, хочется большего
🍁 Jaŭhien
Хе, справедливо
Pawel
qurabay
Можно юзать 2 языка одновременно на vps например гоу для бэкенда php для парсинга?
Alexander
qurabay
Alexander
Пишите микросервисы и будет вам счастье
Roman
Anonymous
A
Например пыха уже написана, а новое пишешь на го
qurabay
A
https://www.packtpub.com/networking-and-servers/mastering-go
Есть мнение об этой книге?
Sergey
Sergey
Alexey
Смотря какой проект)))
Roman
Aleksandr
ну не бэкенд явно
Roman
если же весь бэкэнд уже на PHP а нужен какой-то быстрый парсер то конечно да, можно написать парсер на Go отдельно как "микросервис" (хотя не микросервис скорее всего нифига)
Daniel
вы задолбали
Dk
117-й вопрос про unmarshal (я правда посчитал, ну и пытался найти ответ). Вот скачал логи с тг, и там очень грустно со структурой
type MesStruct struct {
Type string `json:type`
Text interface{} `json:text`
From string `json:from,omitempty`
}
type jslogs struct {
// Name string `json:name`
// Type string `json:type`
Messages []MesStruct `json:messages`
}
К такому виду хочу собрать
В MesStruct.Type может быть "message" и "service"
В MesStruct.Text может быть string или array
Вопрос:
Можно ли пропустить (не анмаршалить или не сохранять) элемент в массиве []MesStruct если в Type - service или в Text - array?
Dk
Ладно, сделаю в interface{}, а на разборе отфильтрую
Pawel
Aleksandr
Aleksandr
Как мне представляется, он подходит для получения единичных значений без создания структуры. Таким макаром полноценный парсинг будет медленным, нет разве?
Daniel
или парсить в два прохода, сначала
type MesStruct struct {
Type string `json:type`
}
а потом в соответствующую структуру
Roman
Olzhas
Alexey
Фух, спасибо, а то я уже подумал, что попал в чат не про пхп ❤️
Dk
У меня тут ошибка странная
https://play.golang.org/p/Qi2EsosZgPA
Я что-то в синтаксисе не так сделал?
Daniel
prog.go:41:56: expected type, found '}'
Daniel
вы там хотели анонимный тип?
Dk
Понял, починил
https://play.golang.org/p/wbpN49CCsH-
можно код ревью? (видел, что на стиль указания тегов ругается, а ещё что?)
Daniel
а почему filteredLogs - map? там не подряд индексы?
Dk
Я же сервисные сообщения пропускаю. И медиа/стикеры пропускаю. Только текст. Так что, индексы по порядку, но с пропусками. А вообще, думаю, это и правда не важно. Дата и время важнее будет.
Dk
if _, ok := mess.Text.(string); ok {
filteredLogs[mess.Id] = TL{mess.Text.(string), mess.From}
}
поменял на
if mTx, ok := mess.Text.(string); ok {
filteredLogs[mess.Id] = TL{mTx, mess.From}
}
Aleksandr
Daniel
но можно, наверное, использовать его, чтобы дернуть тип
Aleksandr
да
ceiling cat
Ребята, может кто подсказать, очень часто возникают ошибки в кастомном HttpClient с такой конфигурацией:
client := &http.Client{
Transport: &nethttp.Transport{
&http.Transport{
DialContext: (&net.Dialer{
Timeout: 3 * time.Second,
KeepAlive: 10 * time.Second,
DualStack: true,
}).DialContext,
MaxIdleConns: 100,
IdleConnTimeout: 20 * time.Second,
TLSHandshakeTimeout: 1 * time.Second,
ExpectContinueTimeout: 1 * time.Second,
},
},
}
Такой клиент создаётся на каждый запрос к серверу и посылает запрос на другой сервер. Локально не репродюсится, значит дело в нагрузке. Кто-то сталкивался с такой проблемой ?
Ошибка dial tcp: i/o timeout
ceiling cat
В какой-то момент их может просто кучу насыпать, никак не зависит от других бекендов (другие бекенды в это время отвечают нормально, если руками пинговать).
ceiling cat
Беглый гугл показал, что проблема в Диалере и ВОЗМОЖНО(!), что на каждый запрос создаётся новый клиент. Но без конкретики, пример одного комментария:
The transport caches the connections and the deadline expires fairly quickly. I have instead employed the client.Timeout "nuclear option" instead of the custom dialer, and it is looking good so far.
Bogdan
драсте драсте
помогите с ишью в вайпере плюсиком, пожалуйста
Сильно нуждаюсь в кастомизации разделителя в конфигурации
Bogdan
https://github.com/spf13/viper/issues/170
Aleksandr
Dk
Ой, а у меня ещё вопрос перед сном
Dk
А в чём разница между:
type MesStruct struct {
...}
type jslogs struct {
Messages []MesStruct `json:messages`
}
и
type MesStruct struct {
...}
type jslogs struct {
Messages []*MesStruct `json:messages`
}
В учебнике было со звёздочкой, я помню, что это указатель, но не понял в чем разница
Dk
Если бы я создал переменную такого типа и указал на неё, тогда понятно, но указатель на описание типа?🤔
Anonymous
В первом случае слайс из messtruct, во втором слайс указателей на messtruct. *mesStruct тоже тип в данном случае.
Dk
Спасибо
Anonymous
Рефлексия обычно сильно медленнее, чем парсинг в заранее определенную структуру
Nik
Go выигрывает у php, если использовать в высоконагруженных сервисах?