nateware / redis-objects

Map Redis types directly to Ruby objects
Artistic License 2.0
2.09k stars 229 forks source link

Lock expiration does not work on Single Table Inheritance objects. #203

Open jdejong opened 7 years ago

jdejong commented 7 years ago

Imagine a base class called service

class Service < ActiveRecord::Base
  include Redis::Objects
  lock :mylock, :expiration => 15.minutes, :timeout => 10.seconds 
end

And two subclasses Service 1

class Service1 < Service

end

and Service 2

class Service2 < Service

end

Now you can call

Service.first.mylock_lock.lock.do
   sleep 60
end

and when you check the redis lock object you will see a 1 instead of a timestamp. Any idea why this is not working as expected?

Thanks!

nateware commented 7 years ago

Sorry for my delay. Can you see if manually overriding the redis_prefix works?

class Service2 < Service
  self.redis_prefix = 'service2'
end
nateware commented 4 years ago

CC @tmsrjs seems like this one may either be a complex issue, or not a bug at all.