php8.5
Home/ Manual/ gearman / gearmanclient/ GearmanClient::doBackground

GearmanClient::doBackground

PHP function Edit on GitHub ✎

(PECL gearman >= 0.5.0)

Run a task in the background

Description

GearmanClient::doBackground(string $function, string $workload, string|null $unique = null): string

Runs a task in the background, returning a job handle which can be used to get the status of the running task.

Parameters

function

Functionname

workload

Workload

unique

Unique

Return Values

The job handle for the submitted task.

Examples

Submit and monitor a background job

The worker in this example has an artificial delay introduced to mimic a long running job. The client script periodically checks the status of the running job.

php
<?php

/* create our object */
$gmclient= new GearmanClient();

/* add the default server */
$gmclient->addServer();

/* run reverse client */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "bad return code\n";
  exit;
}

$done = false;
do
{
   sleep(3);
   $stat = $gmclient->jobStatus($job_handle);
   if (!$stat[0]) // the job is known so it is not done
      $done = true;
   echo "Running: " . ($stat[1] ? "true" : "false") . ", numerator: " . $stat[2] . ", denominator: " . $stat[3] . "\n";
}
while(!$done);

echo "done!\n";

?>

The above example will output something similar to:

output
Running: true, numerator: 3, denominator: 14
Running: true, numerator: 6, denominator: 14
Running: true, numerator: 9, denominator: 14
Running: true, numerator: 12, denominator: 14
Running: false, numerator: 0, denominator: 0
done!

See Also

  • GearmanClient::doNormal
  • GearmanClient::doHigh
  • GearmanClient::doLow
  • GearmanClient::doHighBackground
  • GearmanClient::doLowBackground

Source: reference/gearman/gearmanclient/dobackground.xml · from the official PHP manual (php/doc-en)