Sha256: 09caee1bfbf07c33a762eceb2c291c252a4dd42cf769cdc04b17c324e9fbe905

Contents?: true

Size: 611 Bytes

Versions: 3

Compression:

Stored size: 611 Bytes

Contents

module CassandraObject
  module Batches
    extend ActiveSupport::Concern

    module ClassMethods
      def find_each
        connection.each(column_family, count: 500) do |k, v|
          yield instantiate(k, v)
        end
      end

      def find_in_batches(options = {})
        batch_size = options.delete(:batch_size) || 1000

        batch = []

        find_each do |record|
          batch << record
          if batch.size == batch_size
            yield(batch)
            batch = []
          end
        end

        if batch.size > 0
          yield batch
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gotime-cassandra_object-4.0.2 lib/cassandra_object/batches.rb
gotime-cassandra_object-4.0.1 lib/cassandra_object/batches.rb
gotime-cassandra_object-4.0.0 lib/cassandra_object/batches.rb