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 === '') {
|
if ($this->pro_title !== $v || $v === '') {
|
||||||
$this->pro_title = $v;
|
$this->pro_title = $v;
|
||||||
$lang = defined ( 'SYS_LANG') ? SYS_LANG : 'en';
|
$lang = defined ( 'SYS_LANG') ? SYS_LANG : 'en';
|
||||||
|
|
||||||
$res = Content::addContent( 'PRO_TITLE', '', $this->getProUid(), $lang, $this->pro_title );
|
$res = Content::addContent( 'PRO_TITLE', '', $this->getProUid(), $lang, $this->pro_title );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,6 +191,9 @@ class Process extends BaseProcess {
|
|||||||
$this->setProDescription ( 'Default Process Description' );
|
$this->setProDescription ( 'Default Process Description' );
|
||||||
|
|
||||||
$con->commit();
|
$con->commit();
|
||||||
|
|
||||||
|
$this->memcachedDelete();
|
||||||
|
|
||||||
return $this->getProUid();
|
return $this->getProUid();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -393,7 +396,7 @@ class Process extends BaseProcess {
|
|||||||
if (isset($aData['PRO_DYNAFORMS']) && is_array($aData['PRO_DYNAFORMS'])) {
|
if (isset($aData['PRO_DYNAFORMS']) && is_array($aData['PRO_DYNAFORMS'])) {
|
||||||
$aData['PRO_DYNAFORMS'] = @serialize($aData['PRO_DYNAFORMS']);
|
$aData['PRO_DYNAFORMS'] = @serialize($aData['PRO_DYNAFORMS']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$con = Propel::getConnection( ProcessPeer::DATABASE_NAME );
|
$con = Propel::getConnection( ProcessPeer::DATABASE_NAME );
|
||||||
try {
|
try {
|
||||||
$con->begin();
|
$con->begin();
|
||||||
@@ -513,8 +516,11 @@ class Process extends BaseProcess {
|
|||||||
$oPro = ProcessPeer::retrieveByPK( $ProUid );
|
$oPro = ProcessPeer::retrieveByPK( $ProUid );
|
||||||
if (!is_null($oPro))
|
if (!is_null($oPro))
|
||||||
{
|
{
|
||||||
Content::removeContent('PRO_TITLE', '', $oPro->getProUid());
|
Content::removeContent('PRO_TITLE', '', $oPro->getProUid());
|
||||||
Content::removeContent('PRO_DESCRIPTION', '', $oPro->getProUid());
|
Content::removeContent('PRO_DESCRIPTION', '', $oPro->getProUid());
|
||||||
|
|
||||||
|
$this->memcachedDelete();
|
||||||
|
|
||||||
return $oPro->delete();
|
return $oPro->delete();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -715,7 +721,7 @@ class Process extends BaseProcess {
|
|||||||
|
|
||||||
$memcache = & PMmemcached::getSingleton(SYS_SYS);
|
$memcache = & PMmemcached::getSingleton(SYS_SYS);
|
||||||
$memkey = 'getCasesCountInAllProcesses';
|
$memkey = 'getCasesCountInAllProcesses';
|
||||||
if ( ($aProcesses = $memcache->get( $memkey )) === false ) {
|
if ( ($aProcesses = $memcache->get( $memkey )) === false ) {
|
||||||
$oCriteria = new Criteria('workflow');
|
$oCriteria = new Criteria('workflow');
|
||||||
$oCriteria->addSelectColumn(ApplicationPeer::PRO_UID);
|
$oCriteria->addSelectColumn(ApplicationPeer::PRO_UID);
|
||||||
$oCriteria->addSelectColumn(ApplicationPeer::APP_STATUS);
|
$oCriteria->addSelectColumn(ApplicationPeer::APP_STATUS);
|
||||||
@@ -732,7 +738,7 @@ class Process extends BaseProcess {
|
|||||||
$aProcesses[$row['PRO_UID']][$row['APP_STATUS']] = $row['CNT'];
|
$aProcesses[$row['PRO_UID']][$row['APP_STATUS']] = $row['CNT'];
|
||||||
}
|
}
|
||||||
$memcache->set( $memkey , $aProcesses, PMmemcached::ONE_HOUR );
|
$memcache->set( $memkey , $aProcesses, PMmemcached::ONE_HOUR );
|
||||||
}
|
}
|
||||||
return $aProcesses;
|
return $aProcesses;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -751,7 +757,23 @@ class Process extends BaseProcess {
|
|||||||
return $aProc;
|
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){
|
function ordProcessByProTitle($a, $b){
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user