protected function reserve()
    {
        $id = null;
        $ttr = null;
        $attempt = null;
        $this->touchIndex(function (&$data) use (&$id, &$ttr, &$attempt) {
            if (!empty($data['reserved'])) {
                foreach ($data['reserved'] as $key => $payload) {
                    if ($payload[1] + $payload[3] < time()) {
                        list($id, $ttr, $attempt, $time) = $payload;
                        $data['reserved'][$key][2] = ++$attempt;
                        $data['reserved'][$key][3] = time();
                        return;
                    }
                }
            }

            if (!empty($data['delayed']) && $data['delayed'][0][2] <= time()) {
                list($id, $ttr, $time) = array_shift($data['delayed']);
            } elseif (!empty($data['waiting'])) {
                list($id, $ttr) = array_shift($data['waiting']);
            }
            if ($id) {
                $attempt = 1;
                $data['reserved']["job$id"] = [$id, $ttr, $attempt, time()];
            }
        });

        if ($id) {
            return [$id, file_get_contents("$this->path/job$id.data"), $ttr, $attempt];
        }

        return null;
    }
protected function reserve()
    {
        $id = null;
        $ttr = null;
        $attempt = null;
        $this->touchIndex(function (&$data) use (&$id, &$ttr, &$attempt) {
            if (!empty($data['reserved'])) {
                foreach ($data['reserved'] as $key => $payload) {
                    if ($payload[1] + $payload[3] < time()) {
                        list($id, $ttr, $attempt, $time) = $payload;
                        $data['reserved'][$key][2] = ++$attempt;
                        $data['reserved'][$key][3] = time();
                        return;
                    }
                }
            }

            if (!empty($data['delayed']) && $data['delayed'][0][2] <= time()) {
                list($id, $ttr, $time) = array_shift($data['delayed']);
            } elseif (!empty($data['waiting'])) {
                list($id, $ttr) = array_shift($data['waiting']);
            }
            if ($id) {
                $attempt = 1;
                $data['reserved']["job$id"] = [$id, $ttr, $attempt, time()];
            }
        });

        if ($id) {
            return [$id, file_get_contents("$this->path/job$id.data"), $ttr, $attempt];
        }

        return null;
    }
protected function reserve ( ) { $ id = null ; $ ttr = null ; $ attempt = null ; $ this -> touchIndex ( function ( & $ data ) use ( & $ id , & $ ttr , & $ attempt ) { if ( ! empty ( $ data [ 'reserved' ] ) ) { foreach ( $ data [ 'reserved' ] as $ key => $ payload ) { if ( $ payload [ 1 ] + $ payload [ 3 ] < time ( ) ) { list ( $ id , $ ttr , $ attempt , $ time ) = $ payload ; $ data [ 'reserved' ] [ $ key ] [ 2 ] = ++ $ attempt ; $ data [ 'reserved' ] [ $ key ] [ 3 ] = time ( ) ; return ; } } } if ( ! empty ( $ data [ 'delayed' ] ) && $ data [ 'delayed' ] [ 0 ] [ 2 ] <= time ( ) ) { list ( $ id , $ ttr , $ time ) = array_shift ( $ data [ 'delayed' ] ) ; } elseif ( ! empty ( $ data [ 'waiting' ] ) ) { list ( $ id , $ ttr ) = array_shift ( $ data [ 'waiting' ] ) ; } if ( $ id ) { $ attempt = 1 ; $ data [ 'reserved' ] [ "job$id" ] = [ $ id , $ ttr , $ attempt , time ( ) ] ; } } ) ; if ( $ id ) { return [ $ id , file_get_contents ( "$this->path/job$id.data" ) , $ ttr , $ attempt ] ; } return null ; }
Reserves message for execute.

@return array|null payload
Reserves message for execute .