X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/8e6cd14b7884a691a110110b0f366577437c6d9e..7cf18615c7104bb59f1be54ca35e99f7ee7c5f27:/services/api/lib/sweep_trashed_collections.rb diff --git a/services/api/lib/sweep_trashed_collections.rb b/services/api/lib/sweep_trashed_collections.rb index ab2d27af31..a899191db0 100644 --- a/services/api/lib/sweep_trashed_collections.rb +++ b/services/api/lib/sweep_trashed_collections.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'current_api_client' module SweepTrashedCollections @@ -5,10 +9,10 @@ module SweepTrashedCollections def self.sweep_now act_as_system_user do - Collection.unscoped. + Collection. where('delete_at is not null and delete_at < statement_timestamp()'). destroy_all - Collection.unscoped. + Collection. where('is_trashed = false and trash_at < statement_timestamp()'). update_all('is_trashed = true') end @@ -23,8 +27,11 @@ module SweepTrashedCollections end if need Thread.new do + Thread.current.abort_on_exception = false begin sweep_now + rescue => e + Rails.logger.error "#{e.class}: #{e}\n#{e.backtrace.join("\n\t")}" ensure ActiveRecord::Base.connection.close end