@gogolang

Страница 1530 из 1630
Vladimir
11.10.2018
08:45:04
conn.Do("HMSET", key, "Field1", value1, "Field2", value2)

Darwin
11.10.2018
08:46:32
https://godoc.org/github.com/go-redis/redis#Client.HMSet

Vladimir
11.10.2018
08:48:29
https://godoc.org/github.com/go-redis/redis#Client.HMSet
спасибо, но у меня другой клиент

https://godoc.org/github.com/gomodule/redigo/redis

Google
Darwin
11.10.2018
08:48:43
используйте этот)))

Vladimir
11.10.2018
08:48:47
да вроде разобрался уже

Daniel
11.10.2018
08:49:18
А нет такого, что "прочесть-обновить-записать"?

Daniel
11.10.2018
08:50:59
Засылайте, да

Админы, обратите внимание - я согласовал

Denis
11.10.2018
08:51:31




Vladimir
11.10.2018
08:51:32
Во что она сериализована?
я ее засылаю туда через AddFlat(), там простые поля

Denis
11.10.2018
08:51:32


Vladimir
11.10.2018
08:52:16
в роттердаме и делфте красиво )

Denis
11.10.2018
08:54:42
Registration links: https://lnkd.in/gsEVkRq https://www.neo.camp/ https://lnkd.in/gydWJAN

Google
Daniel
11.10.2018
08:56:50
Нет, так не бывает.

Александр
11.10.2018
09:12:31
Добрый день var result []anyModelStruct findAll(&result) а внутри findAll условно цикл по источнику, вот думаю как заполнить такой слайс

по идеи мы должны делать { result := append(result, anyModelStruct{ any: value }) } но если функция "универсальная" тогда не получится ?

что-то у меня нет идей как красиво без рефлекта заполнить

можно конечно вернуть какой нить map[string]interface{}

и сделать на уровень выше логику преобразования, но я хотел сразу скормить слайс

Daniel
11.10.2018
09:15:01
Где вы такие задачи находите?!

Александр
11.10.2018
09:15:45
Где вы такие задачи находите?!
ну я сделал DAO обертку, внутри кастомн реализацию couchdb

Александр
11.10.2018
09:15:55
думал что реализацию можно отделить от моделей как то

тоесть как это обычно бывает, слоеный пирог

Mykyta
11.10.2018
09:16:34
ну я сделал DAO обертку, внутри кастомн реализацию couchdb
это называется activce record и для го он вообще никак не лепится обычно

Александр
11.10.2018
09:16:52
это не актив рекорд

это репозиторий получается

Mykyta
11.10.2018
09:17:45
тогда ты хочешь сделать generic repository, что тоже считается вредным

Александр
11.10.2018
09:17:57
ранее использовал для запросов https://github.com/leesper/couchdb-golang

там на https://github.com/leesper/couchdb-golang/blob/master/database.go просто возращают map[string]interface{}

на любой запрос

Google
Artem
11.10.2018
09:18:40
а кто-нибудь использует клиент к реббиту? Я как-то не очень понял. Поверх него надо пул коннектов наворачивать?

Александр
11.10.2018
09:18:46
можно конечно и так сделать

но я думал выпедриться и сразу сэкономить

ну хз как делать ?

John
11.10.2018
09:21:21
а кто-нибудь использует клиент к реббиту? Я как-то не очень понял. Поверх него надо пул коннектов наворачивать?
Йа. У меня без пула. Один коннект и несколько сессий, ЕМНИП. После обрыва связи просто реконнект. Но у меня довольно тривиальный кейс и этого хватает :)

Michael
11.10.2018
09:24:02
пул коннектов раббиту не нужен

асинхронно диспатчить сообщения надо

Artem
11.10.2018
09:25:45
ну вот я тоже думаю. Накидать данных потом confirmation ждать

Artem
11.10.2018
09:27:16
а что такое “несколько сессий” ?

Vladimir
11.10.2018
09:30:58
топовый ник

John
11.10.2018
09:31:17
а что такое “несколько сессий” ?
Глянул в код. Не сессий. Каналов :) Давно это было ...

Mike
11.10.2018
09:42:30
Огонь, спасибо)
сук, где такие ники раздают?)

Artem
11.10.2018
09:43:31
сук, где такие ники раздают?)
При советской власти по блату. В комитете никнеймов. Было дело в москву за никами ездили. А у меня у знакомого дядя ездил заграницу. Такие классные ники привозил, чехословацкие

Darwin
11.10.2018
09:45:04
в электричках из москвы всегда никами пахло

все за никами ездили

Pawel
11.10.2018
09:45:17
использовать sync.Pool в качестве стека - это вообще норм?

Google
Daniel
11.10.2018
09:45:48
Вроде, нет

John
11.10.2018
09:46:34
Marlik
11.10.2018
09:47:02
а так http.Handle и http.HandleFunc полностью взаимозаменемы https://play.golang.org/p/c9h4-lEn1tR
Вот посмотрел в доку, и по моему ничего не взаимозаменяемо: func main() { r := mux.NewRouter() r.HandleFunc("/", HomeHandler) r.HandleFunc("/products", ProductsHandler) r.HandleFunc("/articles", ArticlesHandler) http.Handle("/", r) } Вот в этом примере HomeHandler это: func HomeHandler (w http.ResponseWriter, r *http.Request) { ... } Напрямую сделать например так: r.Handle("/", HomeHandler(m)) func HomeHandler(m *Xwz) http.Handler { ... return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ... }) ... } не получится. Может я чего-то не допонимаю.

Pawel
11.10.2018
09:47:08
Оо Каким образом?
ну типа в одной горутине положил в пул таск например, из другой взял и выполнил

Мерлин
11.10.2018
09:47:48
ну типа в одной горутине положил в пул таск например, из другой взял и выполнил
любой объект из sync.Pool может быть собран в любой момент GC

Admin
ERROR: S client not available

Pawel
11.10.2018
09:47:50
скажем, порядок не важен

Мерлин
11.10.2018
09:48:02
ты описал ровно то, для чего нужен канал

John
11.10.2018
09:48:40
Канал?!
ну, их тоже можно так использовать )))

Pawel
11.10.2018
09:48:40
я понял

Subbotin
11.10.2018
09:51:57
народ, а вроде был какой-то код http который говорил что типа я тут делаю запрос в какую-то внешнюю подсистему и она не работает

Subbotin
11.10.2018
09:53:04
а че модно использовать? пятисотить?

Subbotin
11.10.2018
09:54:01
523?
это какие-то фантазии клаудфары или они таки внесли в стандарт?

Artem
11.10.2018
09:54:23
а че модно использовать? пятисотить?
нормальные ошибки с текстом

Google
Subbotin
11.10.2018
09:54:33
а код при этом какой?

без кода ошибку не положено

Ilya
11.10.2018
09:54:50
Написано нестандартный

Artem
11.10.2018
09:56:42
а код при этом какой?
500, других вариантов нет. http коды не про прикладной уровень

Pawel
11.10.2018
09:56:51
ты описал ровно то, для чего нужен канал
а если например выполнение таска - не быстрая операция, которая не должна блочить вставку в канал? в этом случае логика "взял таск- выполнил - жду следующий" не работает и хотелось бы иметь именно стек потокобезопасный

Subbotin
11.10.2018
09:57:05
Мерлин
11.10.2018
09:58:13
а если например выполнение таска - не быстрая операция, которая не должна блочить вставку в канал? в этом случае логика "взял таск- выполнил - жду следующий" не работает и хотелось бы иметь именно стек потокобезопасный
сделай буферезированный канал и нарасти количество воркеров в любом случае если ты обрабатываешь таски медленнее чем получаешь, то у тебя очерель переполнится так или иначе

Marlik
11.10.2018
09:58:41
почеу не получится?
Всё получилось, но это очень для меня странно, и не знаю насколько криво. import ( "net" "net/http" "time" h "MyApp/handler" "MyApp/model" "github.com/gorilla/mux" ) // Start ... func Start(m *model.Model, listener net.Listener) { r := mux.NewRouter() server := &http.Server{ Handler: r, WriteTimeout: 15 * time.Second, ReadTimeout: 15 * time.Second, } r.Handle("/", h.Index(m)) r.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir("static")))) http.Handle("/", r) go server.Serve(listener) }

Artem
11.10.2018
09:59:29
Глянул в код. Не сессий. Каналов :) Давно это было ...
я просто смотрю примеры. Там кароч сначала подключение к кролю. Потом там вызывается conn.Channel(). Судя по всему надо их несколько создавать же да?

Daniel
11.10.2018
09:59:51
А он размерами не ограничен. Можно OOM килера сумонить невозбранно

Artem
11.10.2018
10:00:54
о! и вот тут уже можно будет навернуть пул

Pawel
11.10.2018
10:02:54
и как стек тебе сделает лучше по сравнению с каналом в данном случае?
мне это проще для себя прелставить - контейнер, в который одна горутина put, а другая pop

John
11.10.2018
10:03:09
я просто смотрю примеры. Там кароч сначала подключение к кролю. Потом там вызывается conn.Channel(). Судя по всему надо их несколько создавать же да?
Да, подключение, потом открытие канала. У меня используется один канал для входящих сообщений, и потом на каждый ответ открывается еще один. Но почему сделал именно так — уже не помню :D

Мерлин
11.10.2018
10:03:39
А он размерами не ограничен. Можно OOM килера сумонить невозбранно
если уж пошла такая пьянка, то тогда внешнее персистентное хранилище прикручивать

John
11.10.2018
10:04:45
я просто смотрю примеры. Там кароч сначала подключение к кролю. Потом там вызывается conn.Channel(). Судя по всему надо их несколько создавать же да?
Ага ... мне нужно записать ответ, в очередь которая уже существует (создана раньше), и там стоит проверка на существование данной очереди ... если её нет, то канал будет закрыт (самим кролем), вроде так

Страница 1530 из 1630