Обработка отслеживаемых значений в рельсах в фоновом режиме - PullRequest
0 голосов
/ 09 июля 2019

В нашем приложении есть пользователь, отслеживаемые местоположения пользователей и местоположения могут быть отфильтрованы с помощью некоторых примененных фильтров.

В 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 значений массива и исключу их для дальнейшей обработки).

Как сохранить и обработать данные здесь, в моем требовании.Пожалуйста, дайте мне знать, если потребуется какое-либо разъяснение.

...