From d85e5fb4861093d3e04139cf49c940fe31d00d92 Mon Sep 17 00:00:00 2001 From: Mateus Rambo Strey <mars11@inf.ufpr.br> Date: Mon, 26 Oct 2015 22:54:29 -0200 Subject: [PATCH] add score generator for learning objects --- app/models/learning_object.rb | 5 +++-- .../orient_db/learning_object_repository.rb | 20 +++++++++---------- config/sidekiq.yml | 8 ++++++++ lib/tasks/thumbnail.rake | 6 +----- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/app/models/learning_object.rb b/app/models/learning_object.rb index 5f9b4f8cb..c62d97b3e 100644 --- a/app/models/learning_object.rb +++ b/app/models/learning_object.rb @@ -5,7 +5,7 @@ class LearningObject attr_accessor :id, :id_dspace, :rid, :name, :author, :description, :published_at, :thumbnail, :created_at, :last_modified, :type, :grade_level, :bitstreams, :metadata, :likes, :views, - :downloads, :subjects, :attributes + :downloads, :subjects, :attributes, :score validates_presence_of :name, :created_at, :type, :likes, :views, :downloads validates_numericality_of :likes, greater_than_or_equal_to: 0 @@ -82,7 +82,8 @@ class LearningObject { likes: 0, views: 0, - downloads: 0 + downloads: 0, + score: 0 # Setting this default value wont allow created_at to be set trough the constructor # created_at: DateTime.new } diff --git a/app/repositories/orient_db/learning_object_repository.rb b/app/repositories/orient_db/learning_object_repository.rb index eb15752ec..28be7e780 100644 --- a/app/repositories/orient_db/learning_object_repository.rb +++ b/app/repositories/orient_db/learning_object_repository.rb @@ -193,7 +193,7 @@ module OrientDb query = "SELECT * FROM (" + query + ") WHERE " + fetch_types(params[:type]) unless params[:type].blank? query = "SELECT * FROM (" + query + ") WHERE " + fetch_year(params[:year]) unless params[:year].blank? query = "SELECT * FROM (" + query + ") ORDER BY #{order}" unless order.nil? - query = "SELECT @rid.asString(), last_modified FROM (" + query + ")"# ORDER BY score DESC + query = "SELECT @rid.asString(), last_modified FROM (" + query + ") ORDER BY score DESC" learning_objects_hash = connection.query query, limit: 10000 # return only rids with their modification time @@ -239,23 +239,23 @@ module OrientDb qry end + def count_likes(learning_object) + get_in_edges_count "Likes", learning_object.id + end + + def count_views(learning_object) + get_in_edges_count "Views", learning_object.id + end + private def accepted_properties - ['thumbnail'] + ['thumbnail', 'score'] end def odb_class "LearningObject" end - def count_likes(learning_object) - get_in_edges_count "Likes", learning_object.id - end - - def count_views(learning_object) - get_in_edges_count "Views", learning_object.id - end - end end diff --git a/config/sidekiq.yml b/config/sidekiq.yml index 05ce63165..fb9ad31f7 100644 --- a/config/sidekiq.yml +++ b/config/sidekiq.yml @@ -5,8 +5,16 @@ # on all of the machines, including database's configs and # environment type (development, test, production). # +:pidfile: ./shared/pids/sidekiq.pid +:logfile: ./shared/logs/sidekiq.log +:queues: + - default + - score + - [high_priority, 2] +# :daemon: true development: &development + concurrency: 5 host: localhost port: 6379 diff --git a/lib/tasks/thumbnail.rake b/lib/tasks/thumbnail.rake index 480b49910..33335851e 100644 --- a/lib/tasks/thumbnail.rake +++ b/lib/tasks/thumbnail.rake @@ -26,11 +26,7 @@ namespace :thumbnail do break if items.empty? items.each do |item| - if item.thumbnail.nil? - ThumbnailGeneratorWorker.perform_async(item.id) - elsif item.thumbnail.empty? - ThumbnailGeneratorWorker.perform_async(item.id) - end + ThumbnailGeneratorWorker.perform_async(item.id) if item.thumbnail.blank? end # Increment offset, to get new items on next iteration -- GitLab