Пример #1
0
        protected override void ConfigureServiceBusBusHost(IServiceBusBusFactoryConfigurator configurator, IServiceBusHost host)
        {
            configurator.UseServiceBusMessageScheduler();

            base.ConfigureServiceBusBusHost(configurator, host);

            configurator.TurnoutEndpoint <LongTimeJob>(host, "service_queue", endpoint =>
            {
                endpoint.SuperviseInterval = TimeSpan.FromSeconds(1);
                endpoint.SetJobFactory(async context =>
                {
                    Console.WriteLine("Starting job: {0}", context.Command.Id);

                    await Task.Delay(context.Command.Duration).ConfigureAwait(false);

                    Console.WriteLine("Finished job: {0}", context.Command.Id);
                });

                _serviceAddress = endpoint.InputAddress;
            });

            _stateMachine = new TurnoutJobStateMachine();
            _repository   = new MessageSessionSagaRepository <TurnoutJobState>();


            configurator.ReceiveEndpoint(host, "service_state", endpoint =>
            {
                endpoint.RequiresSession    = true;
                endpoint.MessageWaitTimeout = TimeSpan.FromHours(8);

                endpoint.StateMachineSaga(_stateMachine, _repository);
            });
        }
Пример #2
0
        protected override void ConfigureServiceBusBusHost(IServiceBusBusFactoryConfigurator configurator, IServiceBusHost host)
        {
            configurator.UseServiceBusMessageScheduler();

            base.ConfigureServiceBusBusHost(configurator, host);

            configurator.TurnoutEndpoint <ProcessFile>(host, "process_queue", endpoint =>
            {
                endpoint.SuperviseInterval = TimeSpan.FromSeconds(1);
                endpoint.SetJobFactory(async context =>
                {
                    try
                    {
                        await Task.Delay(TimeSpan.FromSeconds(context.Command.Size), context.CancellationToken).ConfigureAwait(false);
                    }
                    catch (TaskCanceledException ex)
                    {
                        Console.WriteLine("Task was canceled!");
                        throw;
                    }
                });

                _commandEndpointAddress = endpoint.InputAddress;
            });
        }
Пример #3
0
        protected override void ConfigureServiceBusBusHost(IServiceBusBusFactoryConfigurator configurator, IServiceBusHost host)
        {
            configurator.UseServiceBusMessageScheduler();

            base.ConfigureServiceBusBusHost(configurator, host);

            configurator.TurnoutEndpoint <ProcessFile>(host, "process_queue", endpoint =>
            {
                endpoint.SuperviseInterval = TimeSpan.FromSeconds(1);
                endpoint.SetJobFactory(async context => await Task.Delay(TimeSpan.FromSeconds(context.Command.Size)).ConfigureAwait(false));

                _commandEndpointAddress = endpoint.InputAddress;
            });
        }
Пример #4
0
        protected override void ConfigureBusHost(IServiceBusBusFactoryConfigurator configurator, IServiceBusHost host)
        {
            configurator.UseServiceBusMessageScheduler();

            base.ConfigureBusHost(configurator, host);

            configurator.TurnoutEndpoint<ProcessFile>(host, "process_queue", endpoint =>
            {
                endpoint.SuperviseInterval = TimeSpan.FromSeconds(1);
                endpoint.SetJobFactory(async context => await Task.Delay(TimeSpan.FromSeconds(context.Command.Size)).ConfigureAwait(false));

                _commandEndpointAddress = endpoint.InputAddress;
            });
        }
Пример #5
0
        protected override void ConfigureBusHost(IServiceBusBusFactoryConfigurator configurator, IServiceBusHost host)
        {
            configurator.UseServiceBusMessageScheduler();

            base.ConfigureBusHost(configurator, host);

            configurator.TurnoutEndpoint<ProcessFile>(host, "process_queue", endpoint =>
            {
                endpoint.SuperviseInterval = TimeSpan.FromSeconds(1);
                endpoint.SetJobFactory(async context =>
                {
                    try
                    {
                        await Task.Delay(TimeSpan.FromSeconds(context.Command.Size), context.CancellationToken).ConfigureAwait(false);
                    }
                    catch (TaskCanceledException ex)
                    {
                        Console.WriteLine("Task was canceled!");
                        throw;
                    }
                });

                _commandEndpointAddress = endpoint.InputAddress;
            });
        }