Skip to content

Commit 34a45d6

Browse files
committed
#966 - Optional new setting for disabling session cleanup
1 parent 46ef5aa commit 34a45d6

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

src/Spe/App_Config/Include/Spe/Spe.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
<setting name="Spe.InitialPollMillis" value="100" />
5555
<setting name="Spe.MaxmimumPollMillis" value="2500" />
5656
<setting name="Spe.PersistentSessionExpirationMinutes" value="30" />
57+
<setting name="Spe.PreventPersistentSessionCleanup" value="false" />
5758
<setting name="Spe.SerializationSizeBuffer" value="5KB" />
5859
<setting name="Spe.VariableDetails.MaxArrayParseSize" value="20" />
5960
<setting name="Spe.AuthorizationCacheExpirationSecs" value="10" />

src/Spe/Core/Host/ScriptSessionManager.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public static class ScriptSessionManager
1515
{
1616
private const string sessionIdPrefix = "$scriptSession$";
1717
private const string expirationSetting = "Spe.PersistentSessionExpirationMinutes";
18+
private const string preventSessionCleanupSetting = "Spe.PreventPersistentSessionCleanup";
1819
private static readonly HashSet<string> sessions = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
1920

2021
public static ScriptSession GetSession(string persistentId, string defaultId)
@@ -122,8 +123,11 @@ public static ScriptSession GetSession(string persistentId, string applianceType
122123
session.AutoDispose = true;
123124
}
124125
var expiration = Sitecore.Configuration.Settings.GetIntSetting(expirationSetting, 30);
126+
var preventSessionCleanup = Sitecore.Configuration.Settings.GetBoolSetting(preventSessionCleanupSetting, false);
127+
125128
HttpRuntime.Cache.Add(sessionKey, session, null, Cache.NoAbsoluteExpiration,
126-
new TimeSpan(0, expiration, 0), CacheItemPriority.Normal, CacheItemRemoved);
129+
new TimeSpan(0, expiration, 0), preventSessionCleanup ? CacheItemPriority.NotRemovable : CacheItemPriority.Normal, CacheItemRemoved);
130+
127131
sessions.Add(sessionKey);
128132
session.ID = persistentId;
129133
session.Key = sessionKey;

0 commit comments

Comments
 (0)