public function main()
    {

        // log the configured deployment directory
        $this->getSystemLogger()->debug(
            sprintf(
                "Start watching heartbeat file %s",
                $this->getHeartbeatFile()
            )
        );

        // wait until the server has been successfully started at least once
        while ($this->getLastFileTouch($this->getHeartbeatFile()) === 0) {
            $this->getSystemLogger()->debug('Heartbeat scanner is waiting for first successful startup ...');
            sleep(1);
        }

        // watch the heartbeat file
        while (true) {
            // load the current file change time of the heartbeat file and store it
            $oldMTime = $this->getLastFileTouch($this->getHeartbeatFile());

            // Get the current time
            $currentTime = time();

            // log the found directory hash value
            $this->getSystemLogger()->debug(
                sprintf(
                    "Comparing heartbeat mTimes %s (previous) : %s (actual)",
                    $oldMTime,
                    $currentTime
                )
            );

            // compare the mTime values, if they differ more than allowed we have to take action
            if (($currentTime - $oldMTime) > self::HEARTBEAT_INTERVAL) {
                // log that changes have been found
                $this->getSystemLogger()->debug(
                    sprintf(
                        "Found heartbeat missing for %s seconds.",
                        $currentTime - $oldMTime
                    )
                );

                // as long as the heartbeat does not come back up we will try to restart the appserver
                while ($oldMTime === $this->getLastFileTouch($this->getHeartbeatFile())) {
                    // tell them we try to restart
                    $this->getSystemLogger()->debug("Will try to restart the appserver.");

                    // restart the appserver
                    $this->restart();

                    // wait until restart has been finished, but only wait for so long
                    for ($i = 0; $i <= self::RESTART_INTERVAL; $i ++) {
                        // sleep a little
                        sleep(1);
                    }
                }

                // log that the appserver has been restarted successfully
                $this->getSystemLogger()->debug("appserver has successfully been restarted.");

            } else {
                // if no changes has been found, wait a second
                sleep(1);
            }
        }
    }
public function main()
    {

        // log the configured deployment directory
        $this->getSystemLogger()->debug(
            sprintf(
                "Start watching heartbeat file %s",
                $this->getHeartbeatFile()
            )
        );

        // wait until the server has been successfully started at least once
        while ($this->getLastFileTouch($this->getHeartbeatFile()) === 0) {
            $this->getSystemLogger()->debug('Heartbeat scanner is waiting for first successful startup ...');
            sleep(1);
        }

        // watch the heartbeat file
        while (true) {
            // load the current file change time of the heartbeat file and store it
            $oldMTime = $this->getLastFileTouch($this->getHeartbeatFile());

            // Get the current time
            $currentTime = time();

            // log the found directory hash value
            $this->getSystemLogger()->debug(
                sprintf(
                    "Comparing heartbeat mTimes %s (previous) : %s (actual)",
                    $oldMTime,
                    $currentTime
                )
            );

            // compare the mTime values, if they differ more than allowed we have to take action
            if (($currentTime - $oldMTime) > self::HEARTBEAT_INTERVAL) {
                // log that changes have been found
                $this->getSystemLogger()->debug(
                    sprintf(
                        "Found heartbeat missing for %s seconds.",
                        $currentTime - $oldMTime
                    )
                );

                // as long as the heartbeat does not come back up we will try to restart the appserver
                while ($oldMTime === $this->getLastFileTouch($this->getHeartbeatFile())) {
                    // tell them we try to restart
                    $this->getSystemLogger()->debug("Will try to restart the appserver.");

                    // restart the appserver
                    $this->restart();

                    // wait until restart has been finished, but only wait for so long
                    for ($i = 0; $i <= self::RESTART_INTERVAL; $i ++) {
                        // sleep a little
                        sleep(1);
                    }
                }

                // log that the appserver has been restarted successfully
                $this->getSystemLogger()->debug("appserver has successfully been restarted.");

            } else {
                // if no changes has been found, wait a second
                sleep(1);
            }
        }
    }
public function main ( ) { // log the configured deployment directory $ this -> getSystemLogger ( ) -> debug ( sprintf ( "Start watching heartbeat file %s" , $ this -> getHeartbeatFile ( ) ) ) ; // wait until the server has been successfully started at least once while ( $ this -> getLastFileTouch ( $ this -> getHeartbeatFile ( ) ) === 0 ) { $ this -> getSystemLogger ( ) -> debug ( 'Heartbeat scanner is waiting for first successful startup ...' ) ; sleep ( 1 ) ; } // watch the heartbeat file while ( true ) { // load the current file change time of the heartbeat file and store it $ oldMTime = $ this -> getLastFileTouch ( $ this -> getHeartbeatFile ( ) ) ; // Get the current time $ currentTime = time ( ) ; // log the found directory hash value $ this -> getSystemLogger ( ) -> debug ( sprintf ( "Comparing heartbeat mTimes %s (previous) : %s (actual)" , $ oldMTime , $ currentTime ) ) ; // compare the mTime values, if they differ more than allowed we have to take action if ( ( $ currentTime - $ oldMTime ) > self :: HEARTBEAT_INTERVAL ) { // log that changes have been found $ this -> getSystemLogger ( ) -> debug ( sprintf ( "Found heartbeat missing for %s seconds." , $ currentTime - $ oldMTime ) ) ; // as long as the heartbeat does not come back up we will try to restart the appserver while ( $ oldMTime === $ this -> getLastFileTouch ( $ this -> getHeartbeatFile ( ) ) ) { // tell them we try to restart $ this -> getSystemLogger ( ) -> debug ( "Will try to restart the appserver." ) ; // restart the appserver $ this -> restart ( ) ; // wait until restart has been finished, but only wait for so long for ( $ i = 0 ; $ i <= self :: RESTART_INTERVAL ; $ i ++ ) { // sleep a little sleep ( 1 ) ; } } // log that the appserver has been restarted successfully $ this -> getSystemLogger ( ) -> debug ( "appserver has successfully been restarted." ) ; } else { // if no changes has been found, wait a second sleep ( 1 ) ; } } }
The thread implementation main method which will be called from run in abstractness

@return void
The thread implementation main method which will be called from run in abstractness