/// <summary> /// This ensures that the framework migrations have run for the distributed locking feature, as existing Orchard installations will not have the required tables when upgrading. /// </summary> private void EnsureDistributedLockSchemaExists() { // Ensure the distributed lock record schema exists. var schemaBuilder = new SchemaBuilder(_dataMigrationInterpreter); var distributedLockSchemaBuilder = new DistributedLockSchemaBuilder(_shellSettings, schemaBuilder); if (distributedLockSchemaBuilder.EnsureSchema()) { _transactionManager.RequireNew(); } }
/// <summary> /// This ensures that the framework migrations have run for the distributed locking feature, as existing Boying installations will not have the required tables when upgrading. /// </summary> private void EnsureDistributedLockSchemaExists() { // Ensure the distributed lock record schema exists. var schemaBuilder = new SchemaBuilder(_dataMigrationInterpreter); var distributedLockSchemaBuilder = new DistributedLockSchemaBuilder(_shellSettings, schemaBuilder); if (!distributedLockSchemaBuilder.SchemaExists()) { // Workaround to avoid some Transaction issue for PostgreSQL. _transactionManager.RequireNew(); distributedLockSchemaBuilder.CreateSchema(); } }
/// <summary> /// This ensures that the framework migrations have run for the distributed locking feature, as existing Tomelt installations will not have the required tables when upgrading. /// </summary> private void EnsureDistributedLockSchemaExists() { // Ensure the distributed lock record schema exists. var schemaBuilder = new SchemaBuilder(_dataMigrationInterpreter); var distributedLockSchemaBuilder = new DistributedLockSchemaBuilder(_shellSettings, schemaBuilder); if (!distributedLockSchemaBuilder.SchemaExists()) { // Workaround to avoid some Transaction issue for PostgreSQL. if (_shellSettings.DataProvider.Equals("PostgreSql", StringComparison.OrdinalIgnoreCase)) { _transactionManager.RequireNew(); distributedLockSchemaBuilder.CreateSchema(); return; } distributedLockSchemaBuilder.CreateSchema(); _transactionManager.RequireNew(); } }
public void ProcessQueue() { var schemaBuilder = new SchemaBuilder(_dataMigrationInterpreter); DistributedLockSchemaBuilder distributedLockSchemaBuilder = new DistributedLockSchemaBuilder(_shellSettings, schemaBuilder); distributedLockSchemaBuilder.EnsureSchema(); IDistributedLock @lock; if (_distributedLockService.Value.TryAcquireLock(GetType().FullName, TimeSpan.FromMinutes(5), out @lock)) { using (@lock) { IEnumerable <QueuedJobRecord> messages; while ((messages = _jobsQueueManager.Value.GetJobs(0, 10).ToArray()).Any()) { foreach (var message in messages) { ProcessMessage(message); } } } } }