diff options
Diffstat (limited to 'app/models/bulk_import.rb')
-rw-r--r-- | app/models/bulk_import.rb | 9 |
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 |