Skip to content
Snippets Groups Projects
Commit 5bbbe1b6 authored by Mateus Rambo Strey's avatar Mateus Rambo Strey
Browse files

remove useless code to production

parent cc8a9ccd
No related branches found
No related tags found
No related merge requests found
namespace :populator do
desc 'populate db'
task learning_object: :environment do
@date = DateTime.strptime('05-10-2016', '%d-%m-%Y')
[5_000, 10_000].each { |i| populate(i) }
end
task print_score: :environment do
dbs = %w(
20161010170343_portalmec_120_users_only
20161010182216_portalmec_500_users_only
20161010204837_portalmec_1000_users_only
)
dbs.each do |name|
Rake::Task['db:restore'].reenable
Rake::Task['db:restore'].invoke(nil, name)
Rake::Task['searchkick:reindex:all'].reenable
Rake::Task['searchkick:reindex:all'].invoke
Rake::Task['search:learning_objects'].reenable
Rake::Task['search:learning_objects'].invoke(name)
end
end
private
def populate(user_count)
Rake::Task['db:restore'].reenable
Rake::Task['db:restore'].invoke(nil, 'back')
Populator.populate user_count: user_count, date: @date
# LearningObject.find_each { |lo| LearningObject.reset_counters(lo.id, :views, :likes, :downloads, :shares) }
progressbar = ProgressBar.create(title: 'reset counters from learning objects', total: LearningObject.count)
Parallel.each(LearningObject.all, in_threads: 8) do |object|
ActiveRecord::Base.connection_pool.with_connection do
LearningObject.reset_counters(object.id, :views, :likes, :downloads, :shares)
end
progressbar.increment
end
Rake::Task['score:calculate_sync'].reenable
Rake::Task['score:calculate_sync'].invoke('LearningObject')
Rake::Task['score:calculate_sync'].reenable
Rake::Task['score:calculate_sync'].invoke('User')
Rake::Task['searchkick:reindex:all'].reenable
Rake::Task['searchkick:reindex:all'].invoke
Rake::Task['search:learning_objects'].reenable
Rake::Task['search:learning_objects'].invoke("#{user_count}_users")
Rake::Task['db:dump'].reenable
Rake::Task['db:dump'].invoke("#{user_count}_users_only")
sleep(5.seconds)
end
end
namespace :search do
desc 'search learning objects'
task :learning_objects, [:filename] => :environment do |_t, args|
queries = %w(dna molecula floresta matematica)
objects = queries.map { |q| mount_search(q, 'LearningObject') }
File.open("#{Rails.root}/db/backups/#{args.filename}_searches.json", 'w+') do |f|
f.write(JSON.pretty_generate(objects))
end
end
private
def mount_search(query, search_class)
search = SearchService.instance(Search.new(query: query, search_class: search_class), nil).search
{
query: query,
results: {
elastic: mount_result(LearningObject.search(query)),
reputation: mount_result(LearningObject.search(query, order: { score: { order: :desc, unmapped_type: :integer } })),
merged: mount_result(search)
}
}
end
def mount_result(search, count = 50)
scores = Score.where('active = true AND score_type @> \'{LearningObject}\'')
objects = search.results.first(count).each_with_index.map do |object, index|
# score dont exists in ordered searches, so we use sort field
score = search.response['hits']['hits'][index]['sort'] || search.response['hits']['hits'][index]['_score']
o = { object: object.inspect, score: score, reputation_scores: [] }
scores.each do |s|
o[:reputation_scores] << { name: s.name, weight: s.weight, value: object.try(s.code.to_sym) }
end
o
end
{
hits: search.response['hits']['total'],
objects: objects
}
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment