You are here

function services_client_error_task_retry_call 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_retry_call()

Re-try to send data to remote connection on services client failure.

Parameters

array $data: Data from queue. array('eid' = 9999);

Return value

bool TRUE if updated.

1 string reference to 'services_client_error_task_retry_call'
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 18
Queue Runner tasks callbacks.

Code

function services_client_error_task_retry_call($data) {
  $error = services_client_error_load($data['eid']);

  // Error could be deleted by user.
  if (empty($error)) {
    return TRUE;
  }

  // Proceed only if error haven't been processed yet.
  if ($error['status'] == SC_ERROR_UNPROCESSED) {
    $result = services_client_error_retry($error);

    // Build log message.
    $log = array(
      'message' => t('Automatic re-try via queue runner.'),
      'eid' => $error['eid'],
    );
    if (isset($result->sc_error_status)) {
      $log['status'] = $result->sc_error_status;
    }
    else {
      $log['error_code'] = $result->error_code;
      $log['error_message'] = $result->error_message;
    }
    services_client_error_log_save($log);
    return $result;
  }

  // Error has been processed, or overwritten.
  return TRUE;
}