%PDF- %PDF-
| Direktori : /home/graphicd/www/vebto/vendor/pda/pheanstalk/src/Command/ |
| Current File : /home/graphicd/www/vebto/vendor/pda/pheanstalk/src/Command/ReserveWithTimeoutCommand.php |
<?php
namespace Pheanstalk\Command;
use Pheanstalk\Contract\ResponseInterface;
use Pheanstalk\Contract\ResponseParserInterface;
use Pheanstalk\Response\ArrayResponse;
/**
* The 'reserve' command.
* Reserves/locks a ready job in a watched tube.
*/
class ReserveWithTimeoutCommand extends AbstractCommand implements ResponseParserInterface
{
private $timeout;
/**
* A timeout value of 0 will cause the server to immediately return either a
* response or TIMED_OUT. A positive value of timeout will limit the amount of
* time the client will block on the reserve request until a job becomes
* available.
*/
public function __construct(int $timeout)
{
$this->timeout = $timeout;
}
public function getCommandLine(): string
{
return sprintf('reserve-with-timeout %s', $this->timeout);
}
public function parseResponse(string $responseLine, ?string $responseData): ArrayResponse
{
if ($responseLine === ResponseInterface::RESPONSE_DEADLINE_SOON
|| $responseLine === ResponseInterface::RESPONSE_TIMED_OUT
) {
return $this->createResponse($responseLine);
}
list($code, $id) = explode(' ', $responseLine);
return $this->createResponse($code, [
'id' => (int) $id,
'jobdata' => $responseData,
]);
}
}