Lower the amount of jobs pushed into redis at once
authorAaron Schulz <aschulz@wikimedia.org>
Wed, 19 Apr 2017 22:38:32 +0000 (15:38 -0700)
committerAaron Schulz <aschulz@wikimedia.org>
Wed, 19 Apr 2017 22:38:32 +0000 (15:38 -0700)
This further limits how long the server can be tied up by push().

Change-Id: I02d242578dadc19912c9fccfdcf5e15c5eb78e9e

includes/jobqueue/JobQueueRedis.php

index c2c9d66..eb91680 100644 (file)
@@ -75,6 +75,8 @@ class JobQueueRedis extends JobQueue {
        /** @var string Compression method to use */
        protected $compression;
 
+       const MAX_PUSH_SIZE = 25; // avoid tying up the server
+
        /**
         * @param array $params Possible keys:
         *   - redisConfig : An array of parameters to RedisConnectionPool::__construct().
@@ -212,7 +214,7 @@ class JobQueueRedis extends JobQueue {
                        if ( $flags & self::QOS_ATOMIC ) {
                                $batches = [ $items ]; // all or nothing
                        } else {
-                               $batches = array_chunk( $items, 100 ); // avoid tying up the server
+                               $batches = array_chunk( $items, self::MAX_PUSH_SIZE );
                        }
                        $failed = 0;
                        $pushed = 0;