BUG 9526 "Processes cannot be deleted when the memcache is..." SOLVED

- When memcache is enabled not refresh correctly the list of
  process (to create/delete an process)
- Added method to delete key of the memcache to the create/delete
  an process
This commit is contained in:
Victor Saisa Lopez
2012-08-07 11:29:18 -04:00
parent d163b68bf7
commit 4a4b352d9f

View File

@@ -81,7 +81,7 @@ class Process extends BaseProcess {
if ($this->pro_title !== $v || $v === '') {
$this->pro_title = $v;
$lang = defined ( 'SYS_LANG') ? SYS_LANG : 'en';
$res = Content::addContent( 'PRO_TITLE', '', $this->getProUid(), $lang, $this->pro_title );
}
@@ -191,6 +191,9 @@ class Process extends BaseProcess {
$this->setProDescription ( 'Default Process Description' );
$con->commit();
$this->memcachedDelete();
return $this->getProUid();
}
else {
@@ -393,7 +396,7 @@ class Process extends BaseProcess {
if (isset($aData['PRO_DYNAFORMS']) && is_array($aData['PRO_DYNAFORMS'])) {
$aData['PRO_DYNAFORMS'] = @serialize($aData['PRO_DYNAFORMS']);
}
$con = Propel::getConnection( ProcessPeer::DATABASE_NAME );
try {
$con->begin();
@@ -513,8 +516,11 @@ class Process extends BaseProcess {
$oPro = ProcessPeer::retrieveByPK( $ProUid );
if (!is_null($oPro))
{
Content::removeContent('PRO_TITLE', '', $oPro->getProUid());
Content::removeContent('PRO_TITLE', '', $oPro->getProUid());
Content::removeContent('PRO_DESCRIPTION', '', $oPro->getProUid());
$this->memcachedDelete();
return $oPro->delete();
}
else {
@@ -715,7 +721,7 @@ class Process extends BaseProcess {
$memcache = & PMmemcached::getSingleton(SYS_SYS);
$memkey = 'getCasesCountInAllProcesses';
if ( ($aProcesses = $memcache->get( $memkey )) === false ) {
if ( ($aProcesses = $memcache->get( $memkey )) === false ) {
$oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ApplicationPeer::PRO_UID);
$oCriteria->addSelectColumn(ApplicationPeer::APP_STATUS);
@@ -732,7 +738,7 @@ class Process extends BaseProcess {
$aProcesses[$row['PRO_UID']][$row['APP_STATUS']] = $row['CNT'];
}
$memcache->set( $memkey , $aProcesses, PMmemcached::ONE_HOUR );
}
}
return $aProcesses;
}
@@ -751,7 +757,23 @@ class Process extends BaseProcess {
return $aProc;
}
} // Process
public function memcachedDelete()
{
//Limit defined in processmaker/workflow/engine/templates/processes/main.js
$limit = 25;
$start = 0;
$memcache = &PMmemcached::getSingleton(SYS_SYS);
for ($start = 0; $start <= 50 - 1; $start++) {
$memkey = "processList-allProcesses-" . ($start * $limit) . "-" . $limit;
$memkeyTotal = $memkey . "-total";
$r = $memcache->delete($memkey);
$r = $memcache->delete($memkeyTotal);
}
}
} //Process
function ordProcessByProTitle($a, $b){