You are here

function services_client_error_task_finalize in Services Client 7.2

Same name and namespace in other branches
  1. 7 services_client_error/services_client_error.tasks.inc \services_client_error_task_finalize()

Implements finalize hook to determine queue item state.

1 string reference to 'services_client_error_task_finalize'
services_client_error_queue_runner_workers in services_client_error/services_client_error.module
Implements hook_queue_runner_workers().

File

services_client_error/services_client_error.tasks.inc, line 53
Queue Runner tasks callbacks.

Code

function services_client_error_task_finalize($data, $result) {

  // Error can't be processed, i.e. it was marked as done, overwritten.
  if ($result === TRUE) {
    return QUEUERUNNER_STATE_DONE;
  }
  else {

    // If error is recovered, don't re-try
    if ($result
      ->success()) {
      return QUEUERUNNER_STATE_DONE;
    }
    else {
      if ($result->sc_error_retries >= $data['retries']) {
        $log = array(
          'message' => t("Automatic ret-ry failed"),
          'eid' => $data['eid'],
          'status_change' => SC_ERROR_FAILED,
        );
        services_client_error_log_save($log);
        db_query("UPDATE {services_client_error} SET status = :status WHERE eid = :eid", array(
          ':eid' => $data['eid'],
          ':status' => SC_ERROR_FAILED,
        ));
        services_client_error_notify($result);
        return QUEUERUNNER_STATE_FAILED;
      }
    }
  }
  return QUEUERUNNER_STATE_RETRYING;
}