@@ -3,8 +3,10 @@ using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.Persistence.Dtos;
|
||||
@@ -16,7 +18,7 @@ namespace Umbraco.Core.Runtime
|
||||
internal class SqlMainDomLock : IMainDomLock
|
||||
{
|
||||
private string _lockId;
|
||||
private const string MainDomKey = "Umbraco.Core.Runtime.SqlMainDom";
|
||||
private const string MainDomKeyPrefix = "Umbraco.Core.Runtime.SqlMainDom";
|
||||
private const string UpdatedSuffix = "_updated";
|
||||
private readonly ILogger _logger;
|
||||
private IUmbracoDatabase _db;
|
||||
@@ -119,6 +121,16 @@ namespace Umbraco.Core.Runtime
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the keyvalue table key for the current server/app
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The key is the the normal MainDomId which takes into account the AppDomainAppId and the physical file path of the app and this is
|
||||
/// combined with the current machine name. The machine name is required because the default semaphore lock is machine wide so it implicitly
|
||||
/// takes into account machine name whereas this needs to be explicitly per machine.
|
||||
/// </remarks>
|
||||
private string MainDomKey { get; } = MainDomKeyPrefix + "-" + (NetworkHelper.MachineName + MainDom.GetMainDomId()).GenerateHash<SHA1>();
|
||||
|
||||
private void ListeningLoop()
|
||||
{
|
||||
while (true)
|
||||
|
||||
Reference in New Issue
Block a user