28 parent::__construct( $params );
38 $unclaimed =& $this->getQueueData(
'unclaimed', [] );
40 foreach ( $jobs as
$job ) {
41 if (
$job->ignoreDuplicates() ) {
42 $sha1 = sha1( serialize(
$job->getDeduplicationInfo() ) );
43 if ( !isset( $unclaimed[$sha1] ) ) {
44 $unclaimed[$sha1] =
$job;
58 return [
'random',
'timestamp',
'fifo' ];
85 $unclaimed = $this->getQueueData(
'unclaimed' );
87 return $unclaimed ? count( $unclaimed ) : 0;
96 $claimed = $this->getQueueData(
'claimed' );
98 return $claimed ? count( $claimed ) : 0;
111 $unclaimed =& $this->getQueueData(
'unclaimed' );
112 $claimed =& $this->getQueueData(
'claimed', [] );
114 if ( $this->order ===
'random' ) {
115 $key = array_rand( $unclaimed );
117 $key = array_key_first( $unclaimed );
120 $spec = $unclaimed[$key];
121 unset( $unclaimed[$key] );
126 $job->setMetadata(
'claimId', array_key_last( $claimed ) );
141 $claimed =& $this->getQueueData(
'claimed' );
142 unset( $claimed[
$job->getMetadata(
'claimId' )] );
149 if ( isset( self::$data[$this->type][$this->domain] ) ) {
150 unset( self::$data[$this->type][$this->domain] );
151 if ( !self::$data[$this->type] ) {
152 unset( self::$data[$this->type] );
163 $unclaimed = $this->getQueueData(
'unclaimed' );
166 new ArrayIterator( [] );
175 $claimed = $this->getQueueData(
'claimed' );
178 new ArrayIterator( [] );
195 private function &getQueueData( $field, $init =
null ) {
196 if ( !isset( self::$data[$this->type][$this->domain][$field] ) ) {
197 if ( $init !==
null ) {
209class_alias( JobQueueMemory::class,
'JobQueueMemory' );
if(count( $args)< 1) $job