Class: ErpTechSvcs::Sessions::DeleteExpiredSessionsJob

Inherits:
Object
  • Object
show all
Defined in:
lib/erp_tech_svcs/sessions/delete_expired_sessions_job.rb

Overview

Delayed Job to Reset Daily Assignments to Forecast

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeDeleteExpiredSessionsJob

Returns a new instance of DeleteExpiredSessionsJob.



8
9
10
# File 'lib/erp_tech_svcs/sessions/delete_expired_sessions_job.rb', line 8

def initialize
  @priority = 1
end

Class Method Details

.schedule_job(schedule_dt) ⇒ Object



31
32
33
# File 'lib/erp_tech_svcs/sessions/delete_expired_sessions_job.rb', line 31

def self.schedule_job(schedule_dt)
  Delayed::Job.enqueue(DeleteExpiredSessionsJob.new(), @priority, schedule_dt)
end

Instance Method Details

#performObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/erp_tech_svcs/sessions/delete_expired_sessions_job.rb', line 12

def perform
  time = Benchmark.measure do
    begin
      process_job
    rescue => exception
      ErpTechSvcs::Util::CompassLogger.delete_expired_sessions_job.error("An unrecoverable error has occured, the job will be rescheduled: #{exception.message} : #{exception.backtrace}")
    end
  end #benchmark
  
  # Run once per day
  date = Date.tomorrow
  start_time = DateTime.civil(date.year, date.month, date.day, 2, 0, 1, -(5.0/24.0))
  
  Delayed::Job.enqueue(DeleteExpiredSessionsJob.new(), @priority, start_time)
  
  #update job tracker
  JobTracker.job_ran('Delete Expired Sessions', self.class.name, ("(%.4fs)" % time.real), start_time)
end

#process_jobObject



35
36
37
38
39
40
41
42
43
# File 'lib/erp_tech_svcs/sessions/delete_expired_sessions_job.rb', line 35

def process_job
  start_time = Time.now
    
  ErpTechSvcs::Sessions::DeleteExpiredSessionsService.new.execute
    
  end_time = Time.now
    
  return end_time - start_time
end