В нашем приложении есть пользователь, отслеживаемые местоположения пользователей и местоположения могут быть отфильтрованы с помощью некоторых примененных фильтров.
В user.rb
model User
has_many :tracked_locations
end
В tracked_locations.rb
model TrackedLocations
belongs_to :user
end
In Filter_locations.rb
model FilteredLocations
has_many :tracked_locations
end
Наше одно из фоновых заданий сгруппирует tracked_locations пользователя на основе примененного фильтра filter_locations.
class FilteredLocationsJob < ApplicationJob
# I need to collect the user ids based on some logic before the
# location association happens - This may be large data. There may be
# variable number of data set(user_ids array) that I need to collect
# from here based on some created filters.
def perform(params)
ActiveRecord::Base.transaction do
# Logic to associate data
end
end
# I will compare the user ids which were collected before this
# transaction happened and do some logics here.
end
В заключение мне необходимо собрать некоторые данные перед транзакцией и использовать их для сравнения после завершения транзакции.Данные, которые мне нужны, будут основаны на созданных фильтрах (скажем, если я создал 10 фильтров, мне нужно собрать массив user_ids для всех 10 фильтров, я сравню 10 значений массива и исключу их для дальнейшей обработки).
Как сохранить и обработать данные здесь, в моем требовании.Пожалуйста, дайте мне знать, если потребуется какое-либо разъяснение.