Class: Moe::Sequence::Collector
- Inherits:
-
Object
- Object
- Moe::Sequence::Collector
- Defined in:
- lib/moe/sequence/collector.rb
Instance Attribute Summary collapse
-
#dyna ⇒ Object
Returns the value of attribute dyna.
-
#flushed_count ⇒ Object
Returns the value of attribute flushed_count.
-
#owner_id ⇒ Object
readonly
Returns the value of attribute owner_id.
-
#payloads ⇒ Object
Returns the value of attribute payloads.
-
#uuid ⇒ Object
readonly
Returns the value of attribute uuid.
-
#write_tables ⇒ Object
readonly
Returns the value of attribute write_tables.
Instance Method Summary collapse
- #add(payload = {}) ⇒ Object
-
#initialize(name, owner_id) ⇒ Collector
constructor
A new instance of Collector.
- #save(payload = {}) ⇒ Object
Constructor Details
#initialize(name, owner_id) ⇒ Collector
Returns a new instance of Collector.
7 8 9 10 11 12 13 14 |
# File 'lib/moe/sequence/collector.rb', line 7 def initialize(name, owner_id) @dyna = Dyna.new @flushed_count = 0 @payloads = [] @owner_id = owner_id @uuid = SecureRandom.uuid @write_tables = Moe.config.tables[name].last end |
Instance Attribute Details
#dyna ⇒ Object
Returns the value of attribute dyna.
4 5 6 |
# File 'lib/moe/sequence/collector.rb', line 4 def dyna @dyna end |
#flushed_count ⇒ Object
Returns the value of attribute flushed_count.
4 5 6 |
# File 'lib/moe/sequence/collector.rb', line 4 def flushed_count @flushed_count end |
#owner_id ⇒ Object (readonly)
Returns the value of attribute owner_id.
5 6 7 |
# File 'lib/moe/sequence/collector.rb', line 5 def owner_id @owner_id end |
#payloads ⇒ Object
Returns the value of attribute payloads.
4 5 6 |
# File 'lib/moe/sequence/collector.rb', line 4 def payloads @payloads end |
#uuid ⇒ Object (readonly)
Returns the value of attribute uuid.
5 6 7 |
# File 'lib/moe/sequence/collector.rb', line 5 def uuid @uuid end |
#write_tables ⇒ Object (readonly)
Returns the value of attribute write_tables.
5 6 7 |
# File 'lib/moe/sequence/collector.rb', line 5 def write_tables @write_tables end |
Instance Method Details
#add(payload = {}) ⇒ Object
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/moe/sequence/collector.rb', line 16 def add(payload={}) payloads << payload if payloads.size >= Moe.config.batch_limit items = keyify payloads flush items self.payloads = [] end end |
#save(payload = {}) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/moe/sequence/collector.rb', line 27 def save(payload={}) = { "count" => (payloads.size + flushed_count).to_s, "saved_at" => Time.now.to_s, "payload" => MultiJson.dump(payload) }.merge Locksmith.itemize owner_id, payload, 0, uuid items = keyify payloads items << flush items end |