original_string: private function atomicPush($jobId, $class, $args = [], $queue = self::QUEUE, $retry = true, $doAt = null)
      {
          if (array_values($args) !== $args) {
              throw new Exception('Associative arrays in job args are not allowed');
          }
  
          if (!is_null($doAt) && !is_float($doAt) && is_string($doAt)) {
              throw new Exception('at argument needs to be in a unix epoch format. Use microtime(true).');
          }
  
          $job = $this->serializer->serialize($jobId, $class, $args, $retry, $queue);
  
          if ($doAt === null) {
              $this->redis->sadd($this->name('queues'), $queue);
              $this->redis->lpush($this->name('queue', $queue), $job);
          } else {
              $this->redis->zadd($this->name('schedule'), $doAt, $job);
          }
      }
code: private function atomicPush($jobId, $class, $args = [], $queue = self::QUEUE, $retry = true, $doAt = null)
      {
          if (array_values($args) !== $args) {
              throw new Exception('Associative arrays in job args are not allowed');
          }
  
          if (!is_null($doAt) && !is_float($doAt) && is_string($doAt)) {
              throw new Exception('at argument needs to be in a unix epoch format. Use microtime(true).');
          }
  
          $job = $this->serializer->serialize($jobId, $class, $args, $retry, $queue);
  
          if ($doAt === null) {
              $this->redis->sadd($this->name('queues'), $queue);
              $this->redis->lpush($this->name('queue', $queue), $job);
          } else {
              $this->redis->zadd($this->name('schedule'), $doAt, $job);
          }
      }
code_tokens: private function atomicPush ( $ jobId , $ class , $ args = [ ] , $ queue = self :: QUEUE , $ retry = true , $ doAt = null ) { if ( array_values ( $ args ) !== $ args ) { throw new Exception ( 'Associative arrays in job args are not allowed' ) ; } if ( ! is_null ( $ doAt ) && ! is_float ( $ doAt ) && is_string ( $ doAt ) ) { throw new Exception ( 'at argument needs to be in a unix epoch format. Use microtime(true).' ) ; } $ job = $ this -> serializer -> serialize ( $ jobId , $ class , $ args , $ retry , $ queue ) ; if ( $ doAt === null ) { $ this -> redis -> sadd ( $ this -> name ( 'queues' ) , $ queue ) ; $ this -> redis -> lpush ( $ this -> name ( 'queue' , $ queue ) , $ job ) ; } else { $ this -> redis -> zadd ( $ this -> name ( 'schedule' ) , $ doAt , $ job ) ; } }
docstring: Push job to redis
  
  @param string     $jobId
  @param string     $class
  @param array      $args
  @param string     $queue
  @param bool       $retry
  @param float|null $doAt
  @throws exception Exception
docstring_tokens: Push job to redis