Skip to content

Commit

Permalink
Speed up BlacklistedEvent.seed
Browse files Browse the repository at this point in the history
This seed method takes the longest. This method takes 31% time of
EvmDatabase.seed_last. On my set-up this method takes 3 seconds.
  • Loading branch information
isimluk committed Apr 10, 2017
1 parent e43ccab commit 4f5ec8c
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion app/models/blacklisted_event.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ def enabled=(value)
end

def self.seed
existing = where(:ems_id => nil).pluck(:provider_model, :event_name).group_by(&:first).each_with_object({}) { |(ems, q), res| res[ems] = q.map(&:last) }
ExtManagementSystem.descendants.each do |ems|
missing_events = ems.default_blacklisted_event_names - where(:provider_model => ems.name, :ems_id => nil).pluck(:event_name)
missing_events = ems.default_blacklisted_event_names - (existing[ems.name] || [])
create!(missing_events.collect { |e| {:event_name => e, :provider_model => ems.name, :system => true} })
end
end
Expand Down

0 comments on commit 4f5ec8c

Please sign in to comment.