Esempio n. 1
0
        public async Task Sample()
        {
            using (var documentStore = new DocumentStore())
            {
                #region refresh_0
                var refreshConfig = new RefreshConfiguration
                {
                    Disabled = false,
                    RefreshFrequencyInSec = 300
                };

                var result = documentStore.Maintenance.Send(new ConfigureRefreshOperation(refreshConfig));
                #endregion

                #region refresh_1
                using (var session = documentStore.OpenSession())
                {
                    var document = session.Load <object>("users/1-A");

                    session.Advanced.GetMetadataFor(document)["@refresh"] = DateTime.UtcNow.AddHours(1);

                    session.SaveChanges();
                }
                #endregion
            }
        }
Esempio n. 2
0
 private ExpiredDocumentsCleaner(DocumentDatabase database, ExpirationConfiguration expirationConfiguration, RefreshConfiguration refreshConfiguration) : base(database.Name, database.DatabaseShutdown)
 {
     ExpirationConfiguration = expirationConfiguration;
     RefreshConfiguration    = refreshConfiguration;
     _database         = database;
     _expirationPeriod = TimeSpan.FromSeconds(ExpirationConfiguration?.DeleteFrequencyInSec ?? 60);
     _refreshPeriod    = TimeSpan.FromSeconds(RefreshConfiguration?.RefreshFrequencyInSec ?? 60);
 }
Esempio n. 3
0
        private async Task SetupRefresh(DocumentStore store)
        {
            var config = new RefreshConfiguration
            {
                Disabled = false,
                RefreshFrequencyInSec = 100,
            };

            var result = await store.Maintenance.SendAsync(new ConfigureRefreshOperation(config));

            await Server.ServerStore.Cluster.WaitForIndexNotification(result.RaftCommandIndex ?? 1, TimeSpan.FromMinutes(1));
        }
Esempio n. 4
0
        private async Task <bool> DisableRefresh(IDocumentStore store)
        {
            var config = new RefreshConfiguration
            {
                Disabled = true,
                RefreshFrequencyInSec = 100,
            };

            await RefreshHelper.SetupExpiration(store, Server.ServerStore, config);

            var database = await Databases.GetDocumentDatabaseInstanceFor(store);

            return(database.ExpiredDocumentsCleaner != null);
        }
Esempio n. 5
0
 public EditRefreshCommand(RefreshConfiguration configuration, string databaseName, string uniqueRequestId) : base(databaseName, uniqueRequestId)
 {
     Configuration = configuration;
 }
Esempio n. 6
0
        public static async Task SetupExpiration(IDocumentStore store, Raven.Server.ServerWide.ServerStore serverStore, RefreshConfiguration configuration)
        {
            if (store == null)
            {
                throw new ArgumentNullException(nameof(store));
            }
            if (serverStore == null)
            {
                throw new ArgumentNullException(nameof(serverStore));
            }
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            var result = await store.Maintenance.SendAsync(new ConfigureRefreshOperation(configuration));

            var documentDatabase = await serverStore.DatabasesLandlord.TryGetOrCreateResourceStore(store.Database);

            await documentDatabase.RachisLogIndexNotifications.WaitForIndexNotification(result.RaftCommandIndex.Value, serverStore.Engine.OperationTimeout);
        }