Cronario\Queue::buryJob PHP 메소드

buryJob() 공개 메소드

public buryJob ( $id ) : boolean
$id
리턴 boolean
    public function buryJob($id)
    {
        $payload = $this->getPayload($id);
        if ($payload[self::JOB_PAYLOAD_STATE] !== self::STATE_RESERVED) {
            throw new QueueException(' Cannot bury state unsupported!' . $payload[self::JOB_PAYLOAD_STATE]);
        }
        $redisJobNamespace = $this->getRedisJobNamespace();
        $keyBuried = $this->getKeyBuried($payload[self::JOB_PAYLOAD_QUEUE]);
        $keyReserved = $this->getKeyReserved($payload[self::JOB_PAYLOAD_QUEUE]);
        $result = $this->getRedis()->transaction(function ($tx) use($id, $payload, $keyBuried, $keyReserved, $redisJobNamespace) {
            /** @var $tx \Predis\Client */
            $tx->zrem($keyReserved, $id);
            $payload = self::buildPayload($payload[self::JOB_PAYLOAD_QUEUE], self::STATE_BURIED);
            $tx->hset($redisJobNamespace, $id, $payload);
            $tx->zadd($keyBuried, $this->getTime(), $id);
        });
        return !in_array(false, $result);
    }