6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'app/lib/bridge_cache/jobs/import_data.rb', line 6
def perform(bridge_base_url, bridge_api_key, bridge_api_secret, models, chain = [], global_options = {})
begin
remote_data = BridgeBlueprint::RemoteData.new(bridge_base_url, bridge_api_key, bridge_api_secret)
Dir.mktmpdir do |dir|
path = "#{dir}/data_dump"
remote_data.store_file(path)
import = BridgeBlueprint::DataDump.new(path)
models.each do |model|
row_ids = []
import.each_row(model.pluralize) do |row|
BridgeCache::Jobs::ImportRow.set(queue: self.queue_name).perform_later(model, row.to_h)
row_ids << row['id'].to_i
end
BridgeCache::Jobs::CleanupJob.set(queue: self.queue_name).perform_later(model, row_ids)
end
end
BridgeCache::Utils::WorkerHelper.invoke_next(chain)
rescue => e
Rails.logger.debug(e)
end
end
|