public function kickJob($id)
{
$payload = $this->getPayload($id);
if ($payload[self::JOB_PAYLOAD_STATE] !== self::STATE_BURIED) {
throw new QueueException(' Cannot kick state unsupported!' . $payload[self::JOB_PAYLOAD_STATE]);
}
$keyReady = $this->getKeyReady($payload[self::JOB_PAYLOAD_QUEUE]);
$keyBuried = $this->getKeyBuried($payload[self::JOB_PAYLOAD_QUEUE]);
$redisJobNamespace = $this->getRedisJobNamespace();
$result = $this->getRedis()->transaction(function ($tx) use($id, $payload, $keyBuried, $keyReady, $redisJobNamespace) {
/** @var $tx \Predis\Client */
$tx->zrem($keyBuried, $id);
$payload = self::buildPayload($payload[self::JOB_PAYLOAD_QUEUE], self::STATE_READY);
$tx->hset($redisJobNamespace, $id, $payload);
$tx->rpush($keyReady, $id);
});
return !in_array(false, $result);
}