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:
@@ -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){
|
||||
|
||||
|
||||
Reference in New Issue
Block a user