У меня есть одна задача rake для обновления полей (скажем, для img_name) в базе данных. В моей базе данных более 75 000 записей. Если я запускаю задачу rake, это означает, что для выполнения задачи rake требуется более 1 часа. Я хочу запускать задачу rake для каждых 10 000 записей. Я имею в виду в первый раз 10 000 записей, во второй раз следующие 10 000 записей и так далее. Может кто-нибудь мне помочь? Заранее спасибо.
Выполните задачу rake для более длинных данных
Ответы (1)
Используете ли вы какой-либо гем фоновой работы (например, delayed_job)? Если это так, у меня будет задача rake, которая создает кучу фоновых заданий для выполнения работы.
Если у вас есть массив, который вы перебираете, вы можете сделать это так:
items.in_groups_of(10000, false) do |batch|
# create background job for this batch
end
Если это коллекция, вы можете использовать что-то вроде:
@items.find_in_batches(batch_size: 10000) do |batch|
# create background job for this batch
end
person
Joel Friedlaender
schedule
28.12.2012