diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index a6535c5..a89f60e 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -7,7 +7,7 @@ class PagesController < ApplicationController @item = Page.find_by_name('home') if @item - impressionist(@item) + delayed_impressionist(@item) render_page else render :text => t(:need_home) @@ -18,7 +18,7 @@ class PagesController < ApplicationController #begin @item = Item.first(:conditions => {:path => params[:page_name]}) if @item && @item.is_published && (@item.enabled_for.nil? ? true : @item.enabled_for.include?(I18n.locale.to_s)) - impressionist(@item) + delayed_impressionist(@item) case @item.class.to_s when 'Page' render_page unless save_from_no_lang_for_page diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index e20a0c2..b4aa12b 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -278,4 +278,8 @@ module ApplicationHelper end end + def delayed_impressionist(object) + Resque.enqueue_at(1.minute.from_now,DelayedImpressionist,object) + end + end diff --git a/app/jobs/delayed_impressionist.rb b/app/jobs/delayed_impressionist.rb new file mode 100644 index 0000000..65a4a6d --- /dev/null +++ b/app/jobs/delayed_impressionist.rb @@ -0,0 +1,7 @@ +class DelayedImpressionist + @queue = :low + def self.perform(object) + impressionist(object) + true + end +end diff --git a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb index 2fe0f71..72fe43b 100644 --- a/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb +++ b/vendor/built_in_modules/announcement/app/controllers/panel/announcement/front_end/bulletins_controller.rb @@ -53,7 +53,7 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController else @bulletins = Bulletin.all.available_for_lang(I18n.locale).can_display.any_of( {deadline: nil,:postdate.lte => date_now} , {:deadline.gte => date_now,:postdate.lte => date_now} ).desc( :is_top, :postdate).page( params[:page_main]).per(@page_num) end - impressionist(@tag) if @tag + delayed_impressionist(@tag) if @tag end end @@ -66,7 +66,7 @@ class Panel::Announcement::FrontEnd::BulletinsController < OrbitWidgetController @bulletin = Bulletin.all.can_display.where(_id: params[:id]).first if @bulletin and !@bulletin.disable? and !@bulletin.is_rejected if @bulletin.enabled_for_lang(I18n.locale.to_s) - impressionist(@bulletin) + delayed_impressionist(@bulletin) get_categorys else render :text => "
#{t('sys.can_not_display_due_to_no_context')}
".html_safe diff --git a/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb b/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb index e1e98c7..90a079e 100644 --- a/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb +++ b/vendor/built_in_modules/page_content/app/controllers/panel/page_content/front_end/page_contexts_controller.rb @@ -8,7 +8,7 @@ class Panel::PageContent::FrontEnd::PageContextsController < OrbitWidgetControll def index # @page_context = PageContext.where("page_id" => params[:page_id], :archived => false) @page_context = PageContext.first(conditions: { page_id: params[:page_id], :archived => false }) - impressionist(@page_context) + delayed_impressionist(@page_context) respond_to do |format| format.html # index.html.erb