X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7a90bba153cdc9732beeef7cfba41f2f700dfd23..4d1fa0d132e32d02cb87c1c6e3e4c2742bdec467:/services/api/lib/refresh_permission_view.rb diff --git a/services/api/lib/refresh_permission_view.rb b/services/api/lib/refresh_permission_view.rb index cfd7b6ae59..5d6081f262 100644 --- a/services/api/lib/refresh_permission_view.rb +++ b/services/api/lib/refresh_permission_view.rb @@ -12,14 +12,19 @@ def do_refresh_permission_view end def refresh_permission_view(async=false) - if async and Rails.configuration.async_permissions_update_interval > 0 - exp = Rails.configuration.async_permissions_update_interval.seconds + if async and Rails.configuration.API.AsyncPermissionsUpdateInterval > 0 + exp = Rails.configuration.API.AsyncPermissionsUpdateInterval.seconds + need = false Rails.cache.fetch('AsyncRefreshPermissionView', expires_in: exp) do + need = true + end + if need # Schedule a new permission update and return immediately Thread.new do Thread.current.abort_on_exception = false begin sleep(exp) + Rails.cache.delete('AsyncRefreshPermissionView') do_refresh_permission_view rescue => e Rails.logger.error "Updating permission view: #{e}\n#{e.backtrace.join("\n\t")}"