in batches.rb, rewrap rdoc, and document options as symbols
This commit is contained in:
parent
de55c8d745
commit
655f95a8a6
@ -4,10 +4,12 @@ def self.included(base)
|
||||
base.extend(ClassMethods)
|
||||
end
|
||||
|
||||
# When processing large numbers of records, it's often a good idea to do so in batches to prevent memory ballooning.
|
||||
# When processing large numbers of records, it's often a good idea to do
|
||||
# so in batches to prevent memory ballooning.
|
||||
module ClassMethods
|
||||
# Yields each record that was found by the find +options+. The find is performed by find_in_batches
|
||||
# with a batch size of 1000 (or as specified by the +batch_size+ option).
|
||||
# Yields each record that was found by the find +options+. The find is
|
||||
# performed by find_in_batches with a batch size of 1000 (or as
|
||||
# specified by the <tt>:batch_size</tt> option).
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
@ -15,9 +17,10 @@ module ClassMethods
|
||||
# person.party_all_night!
|
||||
# end
|
||||
#
|
||||
# Note: This method is only intended to use for batch processing of large amounts of records that wouldn't fit in
|
||||
# memory all at once. If you just need to loop over less than 1000 records, it's probably better just to use the
|
||||
# regular find methods.
|
||||
# Note: This method is only intended to use for batch processing of
|
||||
# large amounts of records that wouldn't fit in memory all at once. If
|
||||
# you just need to loop over less than 1000 records, it's probably
|
||||
# better just to use the regular find methods.
|
||||
def find_each(options = {})
|
||||
find_in_batches(options) do |records|
|
||||
records.each { |record| yield record }
|
||||
@ -26,17 +29,22 @@ def find_each(options = {})
|
||||
self
|
||||
end
|
||||
|
||||
# Yields each batch of records that was found by the find +options+ as an array. The size of each batch is
|
||||
# set by the +batch_size+ option; the default is 1000.
|
||||
# Yields each batch of records that was found by the find +options+ as
|
||||
# an array. The size of each batch is set by the <tt>:batch_size</tt>
|
||||
# option; the default is 1000.
|
||||
#
|
||||
# You can control the starting point for the batch processing by supplying the +start+ option. This is especially
|
||||
# useful if you want multiple workers dealing with the same processing queue. You can make worker 1 handle all the
|
||||
# records between id 0 and 10,000 and worker 2 handle from 10,000 and beyond (by setting the +start+ option on that
|
||||
# worker).
|
||||
# You can control the starting point for the batch processing by
|
||||
# supplying the <tt>:start</tt> option. This is especially useful if you
|
||||
# want multiple workers dealing with the same processing queue. You can
|
||||
# make worker 1 handle all the records between id 0 and 10,000 and
|
||||
# worker 2 handle from 10,000 and beyond (by setting the <tt>:start</tt>
|
||||
# option on that worker).
|
||||
#
|
||||
# It's not possible to set the order. That is automatically set to ascending on the primary key ("id ASC")
|
||||
# to make the batch ordering work. This also mean that this method only works with integer-based primary keys.
|
||||
# You can't set the limit either, that's used to control the the batch sizes.
|
||||
# It's not possible to set the order. That is automatically set to
|
||||
# ascending on the primary key ("id ASC") to make the batch ordering
|
||||
# work. This also mean that this method only works with integer-based
|
||||
# primary keys. You can't set the limit either, that's used to control
|
||||
# the the batch sizes.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user