Options

:finish - Specifies the primary key value to end at, inclusive
of the value.

:error_on_ignore - Overrides the application config to specify
if an error should be raised when the order and limit have to be ignored
due to batching.

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 and :finish option on each worker).

# Let's process for a batch of 2000 records, skipping the first 2000 rows
Person.find_each(start: 2000, batch_size: 2000) do |person|
person.party_all_night!
end

NOTE: 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 means that this method only works when the primary key is
orderable (e.g. an integer or string).

NOTE: You can't set the limit either, that's used to control the
batch sizes.

Options

:finish - Specifies the primary key value to end at, inclusive
of the value.

:error_on_ignore - Overrides the application config to specify
if an error should be raised when the order and limit have to be ignored
due to batching.

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 and :finish option on each worker).

NOTE: 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 means that this method only works when the primary key is
orderable (e.g. an integer or string).

NOTE: You can't set the limit either, that's used to control the
batch sizes.

:finish - Specifies the primary key value to end at, inclusive
of the value.

:error_on_ignore - Overrides the application config to specify
if an error should be raised when the order and limit have to be ignored
due to batching.

This is especially useful if you want to work with the ActiveRecord::Relation object instead of the array
of records, or 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 and :finish option on each worker).

NOTE: If you are going to iterate through each record, you should call
each_record on the yielded BatchEnumerator:

Person.in_batches.each_record(&:party_all_night!)

NOTE: 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
consistent. Therefore the primary key must be orderable, e.g. an integer or
a string.

NOTE: You can't set the limit either, that's used to control the
batch sizes.