$params = $job->apiParams;
}
+ CRM_Utils_Hook::preJob($job, $params);
try {
$result = civicrm_api($job->api_entity, $job->api_action, $params);
}
catch (Exception$e) {
$this->logEntry('Error while executing ' . $job->name . ': ' . $e->getMessage());
+ $result = $e;
}
+ CRM_Utils_Hook::postJob($job, $params, $result);
$this->logEntry('Finished execution of ' . $job->name . ' with result: ' . $this->_apiResultToMessage($result));
$this->currentJob = FALSE;
}
);
}
+ /**
+ * This hook is called before a scheduled job is executed
+ *
+ * @param CRM_Core_DAO_Job $job
+ * The job to be executed
+ * @param array $params
+ * The arguments to be given to the job
+ */
+ public static function preJob($job, $params) {
+ return self::singleton()->invoke(array('job', 'params'), $job, $params,
+ self::$_nullObject, self::$_nullObject, self::$_nullObject, self::$_nullObject,
+ 'civicrm_preJob'
+ );
+ }
+
+ /**
+ * This hook is called after a scheduled job is executed
+ *
+ * @param CRM_Core_DAO_Job $job
+ * The job that was executed
+ * @param array $params
+ * The arguments given to the job
+ * @param array $result
+ * The result of the API call, or the thrown exception if any
+ */
+ public static function postJob($job, $params, $result) {
+ return self::singleton()->invoke(array('job', 'params', 'result'), $job, $params, $result,
+ self::$_nullObject, self::$_nullObject, self::$_nullObject,
+ 'civicrm_postJob'
+ );
+ }
+
}