Module: Wurk::API::Fast::QueueExt
- Included in:
- Queue
- Defined in:
- lib/wurk/api/fast.rb
Overview
Extension to Wurk::Queue. Pure server-side delete by jid / class — no network round-trips per match. Returns the count of payloads removed.
Instance Method Summary collapse
-
#delete_by_class(klass) ⇒ Integer
Payloads removed.
-
#delete_job(jid) ⇒ Integer
Payloads removed (0 when jid absent; >0 only in the corner case of duplicate-jid corruption).
Instance Method Details
#delete_by_class(klass) ⇒ Integer
Returns payloads removed.
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/wurk/api/fast.rb', line 36 def delete_by_class(klass) klass_name = klass.is_a?(Class) ? klass.name : klass.to_s raise ArgumentError, 'class name required' if klass_name.empty? Wurk.redis do |conn| Wurk::Lua::Loader.eval_cached( conn, :fast_delete_by_class, keys: [Keys.queue(name)], argv: [klass_name] ) end.to_i end |
#delete_job(jid) ⇒ Integer
Returns payloads removed (0 when jid absent; >0 only in the corner case of duplicate-jid corruption).
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/wurk/api/fast.rb', line 21 def delete_job(jid) raise ArgumentError, 'jid required' if jid.nil? || jid.to_s.empty? Wurk.redis do |conn| Wurk::Lua::Loader.eval_cached( conn, :fast_delete_job, keys: [Keys.queue(name)], argv: [jid.to_s] ) end.to_i end |