123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- class TripalDaemon extends DrushDaemon {
-
-
-
-
-
-
-
-
- protected $loop_interval = 20;
-
- protected function executeTask($iteration_number) {
-
-
- $version_string = db_query('SELECT version()')->fetchField();
- if (preg_match('/PostgreSQL (\d+)\.(\d+)/', $version_string, $matches)) {
- $version = array('major' => $matches[1], 'minor' => $matches[2]);
- }
-
- else {
- $version = array('major' => 8, 'minor' => 4);
- }
-
- if ($version['major'] >= 9 ) {
- $waiting_jobs = db_query(
- "SELECT
- count(*) as count,
- array_to_string(array_agg(j.job_id ORDER BY j.priority ASC, j.job_id ASC),'|') as jobs
- FROM {tripal_jobs} j
- WHERE j.status = 'Waiting'"
- )->fetchObject();
- }
- else {
- $waiting_jobs = db_query(
- "SELECT
- count(*) as count,
- array_to_string(array_agg(j.job_id),'|') as jobs
- FROM (SELECT * FROM {tripal_jobs} WHERE j.status = 'Waiting' ORDER BY priority ASC, job_id ASC) as j"
- )->fetchObject();
- }
- $num_waiting_jobs = $waiting_jobs->count;
- $job_ids = explode('|', $waiting_jobs->jobs);
-
- if ($num_waiting_jobs > 0) {
- $this->log($num_waiting_jobs . ' Waiting Tripal Jobs... '
- . 'Running waiting job(s) now.');
-
- foreach ($job_ids as $id) {
- $this->log('Starting Job (ID=' . $id . ')', '', 1);
-
-
-
-
- ob_start();
-
- tripal_launch_job(FALSE, $id);
-
- $this->log(str_repeat('=', 80));
- $this->log(ob_get_clean());
- $this->log(str_repeat('=', 80));
-
- $job = db_query(
- "SELECT j.*
- FROM {tripal_jobs} j
- WHERE j.job_id = :jid",
- array(':jid' => $id)
- )->fetchObject();
- $this->log("Job completed at "
- . date('d M Y H:i:s', $job->end_time) . " with a status of '"
- . $job->status . "'", "", 1);
- }
- }
- else {
- $this->log('There are no Tripal Jobs to run');
- }
- }
- }
|