Class: SyncAllTicketsJob

Inherits:
Object
  • Object
show all
Defined in:
app/jobs/sync_all_tickets_job.rb

Defined Under Namespace

Classes: QuitAll

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.run!Object



6
7
8
# File 'app/jobs/sync_all_tickets_job.rb', line 6

def self.run!
  new.run!
end

Instance Method Details

#run!Object



10
11
12
13
14
15
16
# File 'app/jobs/sync_all_tickets_job.rb', line 10

def run!
  Project \
    .unretired
    .where(Project.arel_table[:ticket_tracker_name].not_in(%w{None Houston}))
    .each(&method(:update_tickets_for_project!))
rescue QuitAll
end

#update_tickets_for_project!(project) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'app/jobs/sync_all_tickets_job.rb', line 18

def update_tickets_for_project!(project)
  SyncProjectTicketsJob.new(project).run!

rescue Houston::Adapters::TicketTracker::ConnectionError
  retry if (connection_retry_count += 1) < 3
  connection_error!(project)
rescue Houston::Adapters::TicketTracker::InvalidQueryError
  query_error!(project)
ensure
  sleep 2 # give Unfuddle a break
end