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

OSCHINA-MIRROR/orionis-coyotes

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
redis.go 1009
Копировать Редактировать Исходные данные Просмотреть построчно История
管宜尧 Отправлено 8 лет назад ca64c01
package redis
import (
"github.com/mylxsw/coyotes/config"
"gopkg.in/redis.v5"
)
var pushToQueueCmd = redis.NewScript(`
-- KEYS[1]=队列key
-- KEYS[2]=去重key
-- ARGV[1]=命令
-- ARGV[2]=是否启用去重
-- redis.log(redis.LOG_NOTICE, type(ARGV[2]) .. " : " .. ARGV[2])
-- 如果不启用去重复功能,则直接push到任务队列
if ARGV[2] == '0' then
redis.call("LPUSH", KEYS[1], ARGV[1])
return 1
end
-- 不启用去重复功能,先判断是否存在去重key,存在则不添加队列
-- 不存在则添加队列并设置去重key,有效期1800s
local element = redis.call("EXISTS", KEYS[2])
if element ~= 1 then
redis.call("LPUSH", KEYS[1], ARGV[1])
redis.call("SETEX", KEYS[2], 1800, '1')
return 1
end
return 0
`)
func createRedisClient() *redis.Client {
runtime := config.GetRuntime()
client := redis.NewClient(&redis.Options{
Addr: runtime.Config.Redis.Addr,
Password: runtime.Config.Redis.Password,
DB: runtime.Config.Redis.DB,
})
return client
}

Комментарий ( 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