Слияние кода завершено, страница обновится автоматически
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 )