1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/orionis-coyotes

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
channel.go 1.7 КБ
Копировать Редактировать Исходные данные Просмотреть построчно История
管宜尧 Отправлено 8 лет назад ca64c01
package redis
import (
"encoding/json"
"github.com/mylxsw/coyotes/config"
"github.com/mylxsw/coyotes/log"
)
// GetTaskChannel get a channel from redis
func GetTaskChannel(channelName string) (channel config.Channel, err error) {
client := createRedisClient()
defer client.Close()
result, err := client.HGet(TaskChannelsKey(), channelName).Result()
if err != nil {
return
}
err = json.Unmarshal([]byte(result), &channel)
if err != nil {
log.Error("parse channel [%s] from json to object failed", channelName)
return
}
return
}
// GetTaskChannels return all channels
func GetTaskChannels() (channels map[string]*config.Channel, err error) {
channels = make(map[string]*config.Channel)
client := createRedisClient()
defer client.Close()
results, err := client.HGetAll(TaskChannelsKey()).Result()
if err != nil {
return nil, err
}
for key, res := range results {
channel := config.Channel{}
err = json.Unmarshal([]byte(res), &channel)
if err != nil {
log.Error("parse channel [%s] from json to object failed", key)
continue
}
channels[key] = &channel
}
return
}
// AddTaskChannel add a channel to redis for persistence
func AddTaskChannel(channel *config.Channel) error {
client := createRedisClient()
defer client.Close()
channelJSON, err := json.Marshal(channel)
if err != nil {
return err
}
err = client.HSet(TaskChannelsKey(), channel.Name, string(channelJSON)).Err()
if err != nil {
return err
}
return nil
}
// RemoveTaskChannel remove a channel from redis
func RemoveTaskChannel(channelName string) error {
client := createRedisClient()
defer client.Close()
err := client.HDel(TaskChannelsKey(), channelName).Err()
if err != nil {
return err
}
return nil
}

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/orionis-coyotes.git
git@gitlife.ru:oschina-mirror/orionis-coyotes.git
oschina-mirror
orionis-coyotes
orionis-coyotes
v1.0-beta