public HttpOutgoingQueueProcessorTests() { MockLogger = new Mock <ILogger <HttpPushOutgoingQueueProcessor> >(); MockMessageDa = new Mock <IMessageLogDa>(); NebulaContext = new NebulaContext(); NebulaContext.RegisterJobQueue(typeof(MockDelayedQueue), QueueType.Delayed); Interlocked.Increment(ref _portNumber); var baseAddress = $"http://localhost:{_portNumber}"; Parameters = new HttpPushOutgoingQueueParameters { TargetUrl = $"{baseAddress}/endpoint" }; StubHttp = HttpMockRepository.At(baseAddress); JobConfiguration = new JobConfigurationData { MaxBatchSize = 1, MaxConcurrentBatchesPerWorker = 5, IdleSecondsToCompletion = 30, MaxBlockedSecondsPerCycle = 60, MaxTargetQueueLength = 100000, QueueTypeName = QueueType.Redis, Parameters = JsonConvert.SerializeObject(Parameters) }; JobData = new JobData { JobId = "test_job_id", Configuration = JobConfiguration, TenantId = TenantId }; }
public async Task <string> CreateOrUpdateJobAsync(string targetUrl, string outputChannelExternalKey) { var parameters = new HttpPushOutgoingQueueParameters { TargetUrl = targetUrl }; var jobId = await NebulaContext.GetJobManager() .CreateNewJobOrUpdateDefinition <HttpPushOutgoingQueueStep>( TenantId, $"Wormhole_{outputChannelExternalKey}", $"Wormhole_{outputChannelExternalKey}", new JobConfigurationData { MaxBatchSize = 128, MaxConcurrentBatchesPerWorker = 8, MaxBlockedSecondsPerCycle = 60, MaxTargetQueueLength = 100000, Parameters = JsonConvert.SerializeObject(parameters), QueueTypeName = QueueType.Delayed, IsIndefinite = true }); var updatedOutputChannel = await _outputChannelDa.SetJobId(outputChannelExternalKey, jobId); ModifyInMemoryOutputChannels(updatedOutputChannel); return(jobId); }