示例#1
0
        public RabbitPublishChannel(RabbitBus bus, Action <IChannelConfiguration> configure, IConventions conventions)
        {
            Preconditions.CheckNotNull(conventions, "conventions");

            this.bus               = bus;
            this.conventions       = conventions;
            advancedBus            = bus.Advanced;
            advancedPublishChannel = advancedBus.OpenPublishChannel(configure);
        }
示例#2
0
        static void Main(string[] args)
        {
            string rabbitMQBrokerHost = "localhost";
            string virtualHost        = "machine";
            string username           = "******";
            string password           = "******";

            string connectionString = string.Format(
                "host={0};virtualHost={1};username={2};password={3}",
                rabbitMQBrokerHost, virtualHost, username, password);

            using (IAdvancedBus bus = RabbitHutch.CreateBus(connectionString).Advanced)
            {
                IExchange exchange = bus.ExchangeDeclare("machine", EasyNetQ.Topology.ExchangeType.Fanout);
                IAdvancedPublishChannel boxPublishChannel = bus.OpenPublishChannel();
                MachineInfo             machineInfo       = new MachineInfo();

                var jobDataMap = new JobDataMap();
                jobDataMap.Add("username", username);
                jobDataMap.Add("IAdvancedBus", bus);
                jobDataMap.Add("IExchange", exchange);
                jobDataMap.Add("IAdvancedPublishChannel", boxPublishChannel);
                jobDataMap.Add("MachineInfo", machineInfo);

                ISchedulerFactory sf    = new StdSchedulerFactory();
                IScheduler        sched = sf.GetScheduler();

                // computer a time that is on the next round minute
                DateTimeOffset runTime = DateBuilder.EvenMinuteDate(DateTimeOffset.UtcNow);

                IJobDetail job = JobBuilder.Create <MachineMonitorJob>()
                                 .UsingJobData(jobDataMap)
                                 .Build();

                ITrigger trigger = TriggerBuilder.Create()
                                   .WithIdentity("trigger1", "group1")
                                   .StartNow()
                                   .WithSimpleSchedule(
                    x => x.WithInterval(TimeSpan.FromMilliseconds(1000)).RepeatForever())
                                   .Build();

                // Tell quartz to schedule the job using our trigger
                sched.ScheduleJob(job, trigger);

                // Start up the scheduler (nothing can actually run until the
                // scheduler has been started)
                sched.Start();

                Console.WriteLine("Press any key to quit.");
                Console.ReadLine();

                sched.Shutdown(true);
            }
        }
示例#3
0
        public void Execute(IJobExecutionContext context)
        {
            var       username = context.MergedJobDataMap["username"] as string;
            IExchange exchange = context.MergedJobDataMap["IExchange"] as IExchange;
            IAdvancedPublishChannel boxPublishChannel = context.MergedJobDataMap["IAdvancedPublishChannel"] as IAdvancedPublishChannel;
            MachineInfo             machineInfo       = context.MergedJobDataMap["MachineInfo"] as MachineInfo;

            machineInfo.Update();

            Console.WriteLine("Execute: " + DateTime.Now + ", CpuUsage: " + machineInfo.CpuUsage);

            var message = new Message <MachineInfo>(machineInfo);

            message.Properties.UserId = username;
            boxPublishChannel.Publish <MachineInfo>(exchange, "info", message);
        }
示例#4
0
        public BoxViewModel(IAdvancedBus bus)
        {
            Box = new Box
            {
                Name = "player-1",
            };

            _bus = bus;

            // create a direct exchange
            _exchange = _bus.ExchangeDeclare("box", EasyNetQ.Topology.ExchangeType.Fanout);
            //_queue = _bus.QueueDeclare("update." + Box.Name, durable: true, exclusive: false, autoDelete: false);

            //_bus.Bind(_exchange, _queue, "update");

            _boxPublishChannel = _bus.OpenPublishChannel();
        }
示例#5
0
        public void SetUp()
        {
            bus         = MockRepository.GenerateStub <IBus>();
            advancedBus = MockRepository.GenerateStub <IAdvancedBus>();
            channel     = MockRepository.GenerateStub <IAdvancedPublishChannel>();

            bus.Stub(x => x.IsConnected).Return(true);
            bus.Stub(x => x.Advanced).Return(advancedBus);
            advancedBus.Stub(x => x.OpenPublishChannel()).Return(channel);

            scheduleRepository = MockRepository.GenerateStub <IScheduleRepository>();

            schedulerService = new SchedulerService(
                bus,
                new ConsoleLogger(),
                scheduleRepository,
                new SchedulerServiceConfiguration
            {
                PublishIntervalSeconds = 1,
                PurgeIntervalSeconds   = 1
            });
        }
        public void SetUp()
        {
            bus = MockRepository.GenerateStub<IBus>();
            advancedBus = MockRepository.GenerateStub<IAdvancedBus>();
            channel = MockRepository.GenerateStub<IAdvancedPublishChannel>();

            bus.Stub(x => x.IsConnected).Return(true);
            bus.Stub(x => x.Advanced).Return(advancedBus);
            advancedBus.Stub(x => x.OpenPublishChannel()).Return(channel);

            scheduleRepository = MockRepository.GenerateStub<IScheduleRepository>();

            schedulerService = new SchedulerService(
                bus,
                MockRepository.GenerateStub<IEasyNetQLogger>(),
                scheduleRepository,
                new SchedulerServiceConfiguration
                {
                    PublishIntervalSeconds = 1,
                    PurgeIntervalSeconds = 1
                });
        }
示例#7
0
 public RabbitPublishChannel(RabbitBus bus)
 {
     this.bus               = bus;
     advancedBus            = bus.Advanced;
     advancedPublishChannel = advancedBus.OpenPublishChannel();
 }
示例#8
0
 public RabbitPublishChannel(RabbitBus bus, Action <IChannelConfiguration> configure)
 {
     this.bus               = bus;
     advancedBus            = bus.Advanced;
     advancedPublishChannel = advancedBus.OpenPublishChannel(configure);
 }