Class: Quorum::Job

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
Sequence
Defined in:
app/models/quorum/job.rb

Instance Method Summary collapse

Methods included from Sequence

#create_hash, #discover_input_sequence_type, #write_input_sequence_to_file

Instance Method Details

#fetch_quorum_blast_sequence(algo, algo_id) ⇒ Object

Fetch Blast hit_id, hit_display_id, queue Resque worker and return worker’s meta_id.



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'app/models/quorum/job.rb', line 40

def fetch_quorum_blast_sequence(algo, algo_id)
  job    = "#{algo}_job".to_sym
  report = "#{algo}_job_reports".to_sym

  blast_dbs = self.method(job).call.blast_dbs

  job_report = self.method(report).call.where(
    "quorum_#{algo}_job_reports.id = ?", algo_id
  ).first

  hit_id          = job_report.hit_id
  hit_display_id  = job_report.hit_display_id

  cmd = create_blast_fetch_command(blast_dbs, hit_id, hit_display_id, algo)

  data = Workers::System.enqueue(
    cmd, Quorum.blast_remote,
    Quorum.blast_ssh_host, Quorum.blast_ssh_user,
    Quorum.blast_ssh_options, true
  )

  Workers::System.get_meta(data.meta_id)
end