/**
  * {@inheritdoc}
  */
 public function getStatus()
 {
     try {
         $states = $this->messageManager->countStates();
     } catch (\Exception $e) {
         return new Failure(sprintf('Unable to retrieve message information - %s (Database)', $e->getMessage()));
     }
     if ($states[MessageInterface::STATE_IN_PROGRESS] > $this->checkLevel[MessageInterface::STATE_IN_PROGRESS]) {
         return new Failure('Too many messages processed at the same time (Database)');
     }
     if ($states[MessageInterface::STATE_ERROR] > $this->checkLevel[MessageInterface::STATE_ERROR]) {
         return new Failure('Too many errors (Database)');
     }
     if ($states[MessageInterface::STATE_OPEN] > $this->checkLevel[MessageInterface::STATE_OPEN]) {
         return new Warning('Too many messages waiting to be processed (Database)');
     }
     if ($states[MessageInterface::STATE_DONE] > $this->checkLevel[MessageInterface::STATE_DONE]) {
         return new Warning('Too many processed messages, please clean the database (Database)');
     }
     return new Success('Ok (Database)');
 }