PHP 8.4.6 Released!

GearmanClient::setCompleteCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCompleteCallbackSet a function to be called on task completion

Description

public GearmanClient::setCompleteCallback(callable $callback): bool

Use to set a callback function to be called when a GearmanTask is completed, or when GearmanJob::sendComplete() is invoked by a worker (whichever happens first).

This callback executes only when executing a GearmanTask using GearmanClient::runTasks(). It is not used for individual jobs.

Note:

The callback will only be triggered for tasks that are added (e.g. by calling GearmanClient::addTask()) after calling this method.

Parameters

callback

A function or method to call. It should return a valid Gearman return value.

If no return statement is present, it defaults to GEARMAN_SUCCESS.

callback(GearmanTask $task, mixed $context): int
task

The task this callback is called for.

context

Whatever has been passed to GearmanClient::addTask() (or equivalent method) as context.

Return Values

Returns true on success or false on failure.

See Also

User Contributed Notes

Justas Butkus
13 years ago
One shall note, that callback function MUST either return a valid Gearman status code, or return nothing (do not return).

I.e. these are valid complete callbacks:

<?php
function goodCallbackOne(GearmanTask $task)
{
print_r($task);
}
?>

<?php
function goodCallbackTwo(GearmanTask $task)
{
print_r($task);
return
GEARMAN_SUCCESS;
}
?>

While following is NOT, unless you want your client code to fail with Gearman error 'german wait:no active file descriptors':

<?php
function badCallbackTwo(GearmanTask $task)
{
print_r($task);
return
true;
}
?>
To Top