diff --git a/lib/WebGUI/Workflow/Activity/CleanTempStorage.pm b/lib/WebGUI/Workflow/Activity/CleanTempStorage.pm index b0b7a9824..56e6f497f 100644 --- a/lib/WebGUI/Workflow/Activity/CleanTempStorage.pm +++ b/lib/WebGUI/Workflow/Activity/CleanTempStorage.pm @@ -119,7 +119,7 @@ sub execute { } } # taking too long, give up - return $self->WAITING(1) if (time() - $start > 50); + return $self->WAITING(1) if (time() - $start > $self->getTTL); } # kill temporary files diff --git a/lib/WebGUI/Workflow/Activity/CleanupEMSSubmissions.pm b/lib/WebGUI/Workflow/Activity/CleanupEMSSubmissions.pm index 3cd147211..1ac06a03a 100644 --- a/lib/WebGUI/Workflow/Activity/CleanupEMSSubmissions.pm +++ b/lib/WebGUI/Workflow/Activity/CleanupEMSSubmissions.pm @@ -76,7 +76,7 @@ sub execute { # keep track of how much time it's taking my $start = time; my $limit = 2_500; - my $timeLimit = 60; + my $timeLimit = $self->getTTL; my $list = $root->getLineage( ['descendants'], { returnObjects => 1, includeOnlyClasses => ['WebGUI::Asset::EMSSubmissionForm'], diff --git a/lib/WebGUI/Workflow/Activity/ExpireGroupings.pm b/lib/WebGUI/Workflow/Activity/ExpireGroupings.pm index 7d9109fc6..12926334e 100644 --- a/lib/WebGUI/Workflow/Activity/ExpireGroupings.pm +++ b/lib/WebGUI/Workflow/Activity/ExpireGroupings.pm @@ -87,6 +87,7 @@ sub execute { } } my $sth = $self->session->db->read("select groupId,deleteOffset,groupCacheTimeout from groups"); + my $expireTime = time() + $self->getTTL(); while (my $data = $sth->hashRef) { if ($data->{groupCacheTimeout} > 0) { # there is no need to wait deleteOffset days for expired external group cache data @@ -94,6 +95,10 @@ sub execute { } else { $self->session->db->write("delete from groupings where groupId=? and expireDate < ?", [$data->{groupId}, time()-$data->{deleteOffset}]); } + if (time() > $expireTime) { + $sth->finish; + return $self->WAITING(1); + } } return $self->COMPLETE; }