コード例 #1
0
        public void RegisterPackageUse(PackageIdentity package, ServerTaskId deploymentTaskId, ulong packageSizeBytes)
        {
            try
            {
                using (AcquireSemaphore())
                {
                    journalRepository.Load();
                    journalRepository.Cache.IncrementCacheAge();
                    var age = journalRepository.Cache.CacheAge;
                    if (journalRepository.TryGetJournalEntry(package, out var entry))
                    {
                        entry.AddUsage(deploymentTaskId, age);
                        entry.AddLock(deploymentTaskId, age);
                    }
                    else
                    {
                        entry = new JournalEntry(package, packageSizeBytes);
                        entry.AddUsage(deploymentTaskId, age);
                        entry.AddLock(deploymentTaskId, age);
                        journalRepository.AddJournalEntry(entry);
                    }

                    log.Verbose($"Registered package use/lock for {package} and task {deploymentTaskId}");
                    journalRepository.Commit();
                }
            }
            catch (Exception ex)
            {
                //We need to ensure that an issue with the journal doesn't interfere with the deployment.
                log.Info($"Unable to register package use for retention.{Environment.NewLine}{ex.ToString()}");
            }
        }
コード例 #2
0
 public IActionResult Post([FromBody] JournalEntry j)
 {
     journalRepository.AddJournalEntry(j);
     return(new OkObjectResult(j));
 }