소스 검색

Issue #72: Updating API to include 2.1 improvements: 2ecc757

Stephen Ficklin 7 년 전
부모
커밋
20a700fb2c
2개의 변경된 파일36개의 추가작업 그리고 2개의 파일을 삭제
  1. 28 0
      tripal/api/tripal.jobs.api.inc
  2. 8 2
      tripal/tripal.module

+ 28 - 0
tripal/api/tripal.jobs.api.inc

@@ -528,3 +528,31 @@ function tripal_get_active_jobs($modulename = NULL) {
   }
   return $jobs;
 }
+
+
+/**
+ * Execute a specific Tripal Job.
+ *
+ * @param $job_id
+ *          The job id to be exeuted
+ * @param bool $redirect [optional]
+ *          Whether to redirect to the job page or not
+ */
+function tripal_execute_job($job_id, $redirect = TRUE) {
+
+  $job = new TripalJob();
+  $job->load($job_id);
+
+  // Run the job.
+  if ($job->getStartTime() == 0 and $job->getEndTime() == 0) {
+    tripal_launch_job(1, $job_id);
+    drupal_set_message(t("Job %job_id has finished executing. See below for more information.", array('%job_id' => $job_id)));
+  }
+  else {
+    drupal_set_message(t("Job %job_id cannot be executed. It has already finished.", array('%job_id' => $job_id)));
+  }
+
+  if ($redirect) {
+    drupal_goto("admin/tripal/tripal_jobs/view/$job_id");
+  }
+}

+ 8 - 2
tripal/tripal.module

@@ -213,8 +213,14 @@ function tripal_menu() {
     'type' => MENU_CALLBACK,
     'file' => 'includes/tripal.jobs.inc',
   );
-
-
+  $items['admin/tripal/tripal_jobs/execute/%'] = array(
+    'title' => 'Jobs',
+    'description' => t('Execute an existing job'),
+    'page callback' => 'tripal_execute_job',
+    'page arguments' => array(4),
+    'access arguments' => array('administer tripal'),
+    'type' => MENU_CALLBACK,
+  );
 
   /*
    * AJAX Callbacks.