private static JobProgressUpdater GetInMemoryJobProgressUpdater(Job job, IAzureBlobContainerClient containerClient) { var jobConfiguration = new JobConfiguration { ContainerName = "jobprogressupdater", StartTime = DateTimeOffset.MinValue, EndTime = DateTimeOffset.MaxValue, }; var storeConfiguration = new DataLakeStoreConfiguration { StorageUrl = "http://test.blob.core.windows.net", }; var mockFactory = Substitute.For <IAzureBlobContainerClientFactory>(); mockFactory.Create(Arg.Any <string>(), Arg.Any <string>()).ReturnsForAnyArgs(containerClient); var jobStore = new AzureBlobJobStore( mockFactory, Options.Create(jobConfiguration), Options.Create(storeConfiguration), new NullLogger <AzureBlobJobStore>()); return(new JobProgressUpdater(jobStore, job, new NullLogger <JobProgressUpdater>())); }
public AzureBlobDataWriter( IAzureBlobContainerClientFactory containerClientFactory, IDataSink dataSink, ILogger <AzureBlobDataWriter> logger) { EnsureArg.IsNotNull(containerClientFactory, nameof(containerClientFactory)); EnsureArg.IsNotNull(logger, nameof(logger)); _containerClient = containerClientFactory.Create(dataSink.StorageUrl, dataSink.Location); _logger = logger; }
public AzureBlobJobStore( IAzureBlobContainerClientFactory blobContainerFactory, IOptions <JobConfiguration> jobConfiguration, IOptions <DataLakeStoreConfiguration> storeConfiguration, ILogger <AzureBlobJobStore> logger) { EnsureArg.IsNotNull(blobContainerFactory, nameof(blobContainerFactory)); EnsureArg.IsNotNull(jobConfiguration, nameof(jobConfiguration)); EnsureArg.IsNotNull(storeConfiguration, nameof(storeConfiguration)); _blobContainerClient = blobContainerFactory.Create(storeConfiguration.Value.StorageUrl, jobConfiguration.Value.ContainerName); _logger = EnsureArg.IsNotNull(logger, nameof(logger)); _renewLockTimer = new Timer(TimeSpan.FromSeconds(AzureBlobJobConstants.JobLeaseRefreshIntervalInSeconds).TotalMilliseconds); _renewLockTimer.Elapsed += async(sender, e) => await RenewJobLockLeaseAsync(); }