summaryrefslogtreecommitdiff
path: root/app/models/bulk_import.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/bulk_import.rb')
-rw-r--r--app/models/bulk_import.rb9
1 files changed, 9 insertions, 0 deletions
diff --git a/app/models/bulk_import.rb b/app/models/bulk_import.rb
index 818ae04ba29..2200a66b3c2 100644
--- a/app/models/bulk_import.rb
+++ b/app/models/bulk_import.rb
@@ -16,10 +16,14 @@ class BulkImport < ApplicationRecord
enum source_type: { gitlab: 0 }
+ scope :stale, -> { where('created_at < ?', 8.hours.ago).where(status: [0, 1]) }
+ scope :order_by_created_at, -> (direction) { order(created_at: direction) }
+
state_machine :status, initial: :created do
state :created, value: 0
state :started, value: 1
state :finished, value: 2
+ state :timeout, value: 3
state :failed, value: -1
event :start do
@@ -30,6 +34,11 @@ class BulkImport < ApplicationRecord
transition started: :finished
end
+ event :cleanup_stale do
+ transition created: :timeout
+ transition started: :timeout
+ end
+
event :fail_op do
transition any => :failed
end