local engine_key = KEYS[1]
local revision_key = KEYS[2]
local channel = KEYS[3]
local ttl = tonumber(ARGV[10])
redis.call('HSET', engine_key,
'id', ARGV[1],
'role', ARGV[2],
'host', ARGV[3],
'port', ARGV[4],
'world_size', ARGV[5],
'num_blocks', ARGV[6],
'peer_addrs', ARGV[7],
'info', ARGV[8],
'model_path', ARGV[11]
)
redis.call('EXPIRE', engine_key, ttl)
local new_revision = redis.call('INCR', revision_key)
local event_json = '{"event_type":"ADD","engine_id":' .. cjson.encode(ARGV[1]) ..
',"timestamp":' .. tostring(redis.call('TIME')[1]) ..
',"revision":' .. tostring(new_revision) ..
',"payload":' .. ARGV[9] .. '}'
redis.call('PUBLISH', channel, event_json)
return new_revision