diff options
author | rhenium <rhenium@rhe.jp> | 2014-12-12 07:18:25 +0900 |
---|---|---|
committer | rhenium <rhenium@rhe.jp> | 2014-12-12 07:18:25 +0900 |
commit | f2f74d11f94d1d692e34b1e31d37c0962055aca8 (patch) | |
tree | 06c1f550e521f80ff882871f0f8acf5442f49b2d /app/models/retweet.rb | |
parent | 56ae9c7ef8eb91a18db10075accf10bf248e2776 (diff) | |
download | aclog-f2f74d11f94d1d692e34b1e31d37c0962055aca8.tar.gz |
collector: optimize (creating model class instance is so slow)
Diffstat (limited to 'app/models/retweet.rb')
-rw-r--r-- | app/models/retweet.rb | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/app/models/retweet.rb b/app/models/retweet.rb index 0648525..cefd901 100644 --- a/app/models/retweet.rb +++ b/app/models/retweet.rb @@ -7,13 +7,17 @@ class Retweet < ActiveRecord::Base # # @param [Array] array An array of Streaming API messages. def self.create_bulk_from_json(array) + return if array.empty? + objects = array.map do |json| - self.new(id: json[:id], - user_id: json[:user][:id], - tweet_id: json[:retweeted_status][:id]) + { + id: json[:id], + user_id: json[:user][:id], + tweet_id: json[:retweeted_status][:id] + } end - self.import(objects, ignore: true) + self.import(objects.first.keys, objects.map(&:values), ignore: true) end # Unregisters retweet events in bulk from array of Streaming API's delete events. |