Cronario\Queue::migrate PHP Method

migrate() public method

public migrate ( null $queue = null ) : boolean
$queue null
return boolean
    public function migrate($queue = null)
    {
        if (null === $queue) {
            $list = $this->getQueueNames();
            foreach ($list as $item) {
                $this->migrate($item);
            }
            return true;
        }
        $keyReady = $this->getKeyReady($queue);
        $keyDelayed = $this->getKeyDelayed($queue);
        $redisJobNamespace = $this->getRedisJobNamespace();
        $this->getRedis()->transaction(['cas' => true, 'watch' => [$keyReady, $keyDelayed], 'retry' => 10], function ($tx) use($queue, $keyReady, $keyDelayed, $redisJobNamespace) {
            /** @var $tx \Predis\Client */
            $time = $this->getTime();
            // get expired jobs from "delayed queue"
            $jobIds = $tx->zrangebyscore($keyDelayed, '-inf', $time);
            if (count($jobIds) > 0) {
                // remove jobs from "delayed queue"
                $tx->multi();
                $tx->zremrangebyscore($keyDelayed, '-inf', $time);
                foreach ($jobIds as $id) {
                    $tx->hset($redisJobNamespace, $id, self::buildPayload($queue, self::STATE_READY));
                    $tx->rpush($keyReady, $id);
                }
            }
        });
        return true;
    }