/**
  * clear access log table
  * - if $date param is omitted, the last 60 days of access log are kept, the rest will be removed
  * 
  * @param Tinebase_DateTime $date
  * @return integer deleted rows
  * 
  * @todo use $this->deleteByFilter($_filter)? might be slow for huge access_logs
  */
 public function clearTable($date = NULL)
 {
     $date = $date instanceof Tinebase_DateTime ? $date : Tinebase_DateTime::now()->subDay(60);
     if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) {
         Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . ' Removing all access log entries before ' . $date->toString());
     }
     $db = $this->_backend->getAdapter();
     $where = array($db->quoteInto($db->quoteIdentifier('li') . ' < ?', $date->toString()));
     $deletedRows = $db->delete($this->_backend->getTablePrefix() . $this->_backend->getTableName(), $where);
     if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) {
         Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . ' Removed ' . $deletedRows . ' rows.');
     }
     return $deletedRows;
 }
Ejemplo n.º 2
0
 /**
  * finish job
  *
  * @param Tinebase_Model_AsyncJob $_asyncJob
  * @param string $_status
  * @param string $_message
  * @return Tinebase_Model_AsyncJob
  */
 public function finishJob(Tinebase_Model_AsyncJob $_asyncJob, $_status = Tinebase_Model_AsyncJob::STATUS_SUCCESS, $_message = NULL)
 {
     try {
         $db = $this->_backend->getAdapter();
         $transactionId = Tinebase_TransactionManager::getInstance()->startTransaction($db);
         $_asyncJob->end_time = Tinebase_DateTime::now();
         $_asyncJob->status = $_status;
         if ($_message !== NULL) {
             $_asyncJob->message = $_message;
         }
         $result = $this->_backend->update($_asyncJob);
         Tinebase_TransactionManager::getInstance()->commitTransaction($transactionId);
     } catch (Exception $e) {
         Tinebase_TransactionManager::getInstance()->rollBack();
         throw $e;
     }
     return $result;
 }