# Issuing a single background task

## SYNOPSIS

#include <libgearman/gearman.h>

type gearman_priority_t

gearman_return_t gearman_client_do_background(gearman_client_st *client, const char *function_name, const char *unique, const void *workload, size_t workload_size, char *job_handle)

Changed in version 0.21: `GEARMAN_PAUSE` will no longer be returned. A do operation will now run until it has been submitted.

gearman_return_t gearman_client_do_high_background(gearman_client_st *client, const char *function_name, const char *unique, const void *workload, size_t workload_size, gearman_job_handle_t job_handle)

gearman_return_t gearman_client_do_low_background(gearman_client_st *client, const char *function_name, const char *unique, const void *workload, size_t workload_size, gearman_job_handle_t job_handle)

## DESCRIPTION

`gearman_client_do_background()` executes a single request to the gearmand server and returns the status via `gearman_return_t`.

`gearman_client_add_task_high_background()` and `gearman_client_add_task_low_background()` are identical to `gearman_client_do_background()`, only they set the `gearman_priority_t` to either high or low.

If job_handle is not NULL, it will be populated with the name of the job_handle for the task created. The job handle needs to be the size of `GEARMAN_JOB_HANDLE_SIZE`. Please see `gearman_job_handle_t` for more information.

## RETURN VALUE

`gearman_return_t`

## Example

    /*
    # Gearman server and library
    # Copyright (C) 2012 Data Differential, http://datadifferential.com/
    # All rights reserved.
    #
    # Use and distribution licensed under the BSD license.  See
    # the COPYING file in this directory for full text.
    */

    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <libgearman-1.0/gearman.h>

    int main(void)
    {
      gearman_client_st *client= gearman_client_create(NULL);

      gearman_return_t ret= gearman_client_add_server(client, "localhost", 0);
      if (gearman_failed(ret))
      {
        return EXIT_FAILURE;
      }

      gearman_job_handle_t job_handle;
      gearman_return_t rc= gearman_client_do_background(client,
                                                        "reverse_function",
                                                        "unique_value",
                                                        "my string to reverse", strlen("my string to reverse"),
                                                        job_handle);

      if (gearman_success(rc))
      {
        // Make use of value
        printf("%s\n", job_handle);
      }

      gearman_client_free(client);

      return 0;
    }

## HOME

To find out more information please check: http://gearman.info/

See also

gearmand(8) libgearman(3) gearman_strerror(3)