示例#1
0
 private function createJobDetails(Packet $packet)
 {
     if ($packet->getType() === PacketType::JOB_ASSIGN) {
         $details = new JobDetails($packet->getArgument(1), $packet->getArgument(2), null, null);
     } else {
         $details = new JobDetails($packet->getArgument(1), $packet->getArgument(3), $packet->getArgument(2), null);
     }
     $details->jobHandle = $packet->getArgument(0);
     $details->connection = $this->connection;
     return $details;
 }
示例#2
0
 public function __construct(Packet $packet)
 {
     $message = sprintf("Error packet received: [%s] %s", $packet->getArgument(0), $packet->getArgument(1));
     parent::__construct($message);
 }
示例#3
0
 /**
  * Read a single packet from the gearman server.
  *
  * Blocks if no packet is available
  *
  * @returns Packet
  */
 public function readPacket()
 {
     if (!$this->stream) {
         $this->connect();
     }
     $header = $this->read(12);
     $size = substr($header, 8, 4);
     $size = Packet::fromBigEndian($size);
     $arguments = $size > 0 ? $this->read($size) : '';
     return Packet::fromString($header . $arguments);
 }
示例#4
0
 private function updateStatusDetails(Packet $packet)
 {
     $handle = $packet->getArgument(0);
     foreach ($this->statusList as $statusDetails) {
         if ($statusDetails->jobHandle === $handle) {
             $statusDetails->isKnown = (bool) (int) $packet->getArgument(1);
             $statusDetails->isRunning = (bool) (int) $packet->getArgument(2);
             $statusDetails->numerator = (int) $packet->getArgument(3);
             $statusDetails->denominator = (int) $packet->getArgument(4);
             $statusDetails->resultReceived = true;
             $statusDetails->triggerCallback('complete');
         }
     }
 }