Ejemplo n.º 1
0
        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
            };
        }
Ejemplo n.º 2
0
        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);
        }