Class: SampleAccessioningJob
- Inherits:
-
Struct
- Object
- Struct
- SampleAccessioningJob
- Defined in:
- app/jobs/sample_accessioning_job.rb
Overview
Sends sample data to the ENA or EGA in order to generate an accession number Records the generated accession number on the sample
Constant Summary collapse
- JobFailed =
Class.new(StandardError)
Instance Attribute Summary collapse
-
#accessionable ⇒ Object
Returns the value of attribute accessionable.
Instance Method Summary collapse
- #max_attempts ⇒ Object
- #perform ⇒ Object
- #queue_name ⇒ Object
- #reschedule_at(current_time, _attempts) ⇒ Object
Instance Attribute Details
#accessionable ⇒ Object
Returns the value of attribute accessionable
5 6 7 |
# File 'app/jobs/sample_accessioning_job.rb', line 5 def accessionable @accessionable end |
Instance Method Details
#max_attempts ⇒ Object
22 23 24 |
# File 'app/jobs/sample_accessioning_job.rb', line 22 def max_attempts 3 end |
#perform ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'app/jobs/sample_accessioning_job.rb', line 9 def perform submission = Accession::Submission.new(User.find_by(api_key: configatron.accession_local_key), accessionable) submission.post # update_accession_number returns true if an accession has been supplied, and the sample has been saved. # If this returns false, then we fail the job. This should catch any failure situations submission.update_accession_number || raise(JobFailed) end |
#queue_name ⇒ Object
26 27 28 |
# File 'app/jobs/sample_accessioning_job.rb', line 26 def queue_name 'sample_accessioning' end |
#reschedule_at(current_time, _attempts) ⇒ Object
18 19 20 |
# File 'app/jobs/sample_accessioning_job.rb', line 18 def reschedule_at(current_time, _attempts) current_time + 1.day end |