/** * 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; }
/** * 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; }