From c71b772198b46bae01918550c1f5ea6704424f13 Mon Sep 17 00:00:00 2001 From: Julian FIOL Date: Tue, 26 May 2015 14:49:20 +0200 Subject: [PATCH] Bug 14207 - Improving circulation performance by caching yaml file This patch improve circulation performance by caching yaml file With this patch we saved between 300ms and 500ms on circulation page. Following Comment #3 : No useless warn No tidy --- C4/Utils/DataTables/ColumnsSettings.pm | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/C4/Utils/DataTables/ColumnsSettings.pm b/C4/Utils/DataTables/ColumnsSettings.pm index ed8d9ac..6f1c0cd 100644 --- a/C4/Utils/DataTables/ColumnsSettings.pm +++ b/C4/Utils/DataTables/ColumnsSettings.pm @@ -5,14 +5,19 @@ use List::Util qw( first ); use YAML; use C4::Context; use Koha::Database; +use Koha::Cache; sub get_yaml { - my $yml_path = - C4::Context->config('intranetdir') . '/admin/columns_settings.yml'; - my $yaml = eval { YAML::LoadFile($yml_path) }; - warn -"ERROR: the yaml file for DT::ColumnsSettings is not correctly formated: $@" - if $@; + my $yml_path = C4::Context->config('intranetdir') . '/admin/columns_settings.yml'; + my $cache = Koha::Cache->get_instance(); + my $yaml = $cache->get_from_cache('ColumnsSettingsYaml'); + + unless ($yaml) { + $yaml = eval { YAML::LoadFile($yml_path) }; + warn "ERROR: the yaml file for DT::ColumnsSettings is not correctly formated: $@" + if $@; + $cache->set_in_cache( 'ColumnsSettingsYaml', $yaml, { expiry => 3600 } ); + } return $yaml; } -- 2.4.1