12345678910111213141516171819 |
- -- Lua script lock ANN for learning
- -- Uses the following keys
- -- key1 - prefix for keys
- -- key2 - current time
- -- key3 - key expire
- -- key4 - hostname
-
- local locked = redis.call('HGET', KEYS[1], 'lock')
- local now = tonumber(KEYS[2])
- if locked then
- locked = tonumber(locked)
- local expire = tonumber(KEYS[3])
- if now > locked and (now - locked) < expire then
- return { tostring(locked), redis.call('HGET', KEYS[1], 'hostname') or 'unknown' }
- end
- end
- redis.call('HSET', KEYS[1], 'lock', tostring(now))
- redis.call('HSET', KEYS[1], 'hostname', KEYS[4])
- return 1
|