Exemple #1
0
        /// <inheritdoc />
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            await Task.WhenAll(
                SetAutoUpdateInterval(metadata.AutoUpdateInterval.Value),
                Configuration.StartAsync(cancellationToken),
                ByondManager.StartAsync(cancellationToken),
                Chat.StartAsync(cancellationToken),
                dmbFactory.StartAsync(cancellationToken))
            .ConfigureAwait(false);

            // dependent on so many things, its just safer this way
            await Watchdog.StartAsync(cancellationToken).ConfigureAwait(false);

            await dmbFactory.CleanUnusedCompileJobs(cancellationToken).ConfigureAwait(false);
        }
        /// <inheritdoc />
        public async Task StartAsync(CancellationToken cancellationToken)
        {
            await Task.WhenAll(SetAutoUpdateInterval(metadata.AutoUpdateInterval.Value), Configuration.StartAsync(cancellationToken), ByondManager.StartAsync(cancellationToken), Chat.StartAsync(cancellationToken), compileJobConsumer.StartAsync(cancellationToken)).ConfigureAwait(false);

            // dependent on so many things, its just safer this way
            await Watchdog.StartAsync(cancellationToken).ConfigureAwait(false);

            CompileJob latestCompileJob = null;
            await databaseContextFactory.UseContext(async db =>
            {
                latestCompileJob = await db.CompileJobs.Where(x => x.Job.Instance.Id == metadata.Id).OrderByDescending(x => x.Job.StoppedAt).FirstOrDefaultAsync(cancellationToken).ConfigureAwait(false);
            }).ConfigureAwait(false);

            await dmbFactory.CleanUnusedCompileJobs(latestCompileJob, cancellationToken).ConfigureAwait(false);
        }