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)