# Retrieving the status of a job

## SYNOPSIS

#include <libgearman/gearman.h>

gearman_return_t gearman_client_job_status(gearman_client_st *client, gearman_job_handle_t job_handle, bool *is_known, bool *is_running, uint32_t *numerator, uint32_t *denominator)

Link with -lgearman

## DESCRIPTION

`gearman_client_job_status()` is used to find the status of a job via its `gearman_job_handle_t`. The arguments is_known, is_running, numerator, and denominator are all optional. Unless a Gearman worker has sent numerator/denominator via `gearman_job_send_status()`, those values will be zero.

If the arguments is_known and is_running are omitted then the function returns state data via `gearman_return_t`.

## RETURN VALUE

`gearman_return_t` will be returned. `GEARMAN_SUCCESS` will be returned upon success of the status being updated. If the arguments is_known and is_running are omitted then `gearman_client_job_status()` will return `GEARMAN_JOB_EXISTS` if the `gearman_job_handle_t` is known on the server, and `GEARMAN_IN_PROGRESS` if it is running. Knowing whether the job is running or not has higher precedence. `gearman_continue()` can be used for loops where you want to exit from the loop once the job has been completed.

Warning

For loops you should always check `gearman_return_t` with `gearman_continue()` even if you specify the argument is_known or is_running. A non-blocking IO call can return something other then `GEARMAN_SUCCESS`, in some cases you will want to treat those values not as errors.

## HOME

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

See also

gearmand(8) libgearman(3) gearman_client_st(3) gearman_job_handle_t(3) gearman_continue(3