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); }
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); } }
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); }
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(); }
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 }); }
public RabbitPublishChannel(RabbitBus bus) { this.bus = bus; advancedBus = bus.Advanced; advancedPublishChannel = advancedBus.OpenPublishChannel(); }
public RabbitPublishChannel(RabbitBus bus, Action <IChannelConfiguration> configure) { this.bus = bus; advancedBus = bus.Advanced; advancedPublishChannel = advancedBus.OpenPublishChannel(configure); }