コード例 #1
0
        public override void SetUp()
        {
            base.SetUp();

            mockJobStore  = Mocks.CreateMock <IJobStore>();
            mockJobRunner = Mocks.CreateMock <IJobRunner>();
            mockLogger    = Mocks.CreateMock <ILogger>();
            mockTrigger   = Mocks.PartialMock <Trigger>();
            scheduler     = new DefaultScheduler(mockJobStore, mockJobRunner);

            dummyJobData    = new JobData();
            dummyJobSpec    = new JobSpec("foo", "bar", "key", mockTrigger);
            dummyJobDetails = new JobDetails(dummyJobSpec, DateTime.UtcNow);

            isWoken = false;

            // Ensure the scheduler is initialized.
            mockJobStore.RegisterScheduler(scheduler.Guid, scheduler.Name);
            Mocks.Replay(mockJobStore);
            scheduler.Initialize();
            Mocks.Verify(mockJobStore);
            Mocks.BackToRecord(mockJobStore);

            mockJobStore.UnregisterScheduler(scheduler.Guid);

            // Create a separate uninitialized scheduler for certain tests.
            uninitializedScheduler = new DefaultScheduler(mockJobStore, mockJobRunner);
        }
コード例 #2
0
		public override void SetUp()
		{
			base.SetUp();

			mockJobStore = Mocks.CreateMock<IJobStore>();
			mockJobRunner = Mocks.CreateMock<IJobRunner>();
			mockLogger = Mocks.CreateMock<ILogger>();
			mockTrigger = Mocks.PartialMock<Trigger>();
			scheduler = new DefaultScheduler(mockJobStore, mockJobRunner);

			dummyJobData = new JobData();
			dummyJobSpec = new JobSpec("foo", "bar", "key", mockTrigger);
			dummyJobDetails = new JobDetails(dummyJobSpec, DateTime.UtcNow);

			isWoken = false;

			// Ensure the scheduler is initialized.
			mockJobStore.RegisterScheduler(scheduler.Guid, scheduler.Name);
			Mocks.Replay(mockJobStore);
			scheduler.Initialize();
			Mocks.Verify(mockJobStore);
			Mocks.BackToRecord(mockJobStore);

			mockJobStore.UnregisterScheduler(scheduler.Guid);

			// Create a separate uninitialized scheduler for certain tests.
			uninitializedScheduler = new DefaultScheduler(mockJobStore, mockJobRunner);
		}
コード例 #3
0
ファイル: ScheduleTests.cs プロジェクト: xqfgbc/NServiceBus
        public void SetUp()
        {
            defaultScheduler = new DefaultScheduler(bus);
            container.Register<IBus>(() => bus);
            container.Register<DefaultScheduler>(() => defaultScheduler);

            schedule = new Schedule(container);
        }
コード例 #4
0
ファイル: Scheduler.cs プロジェクト: Particular/NServiceBus
        /// <summary>
        /// Invoked if the feature is activated.
        /// </summary>
        /// <param name="context">The feature context.</param>
        protected internal override void Setup(FeatureConfigurationContext context)
        {
            context.Settings.Get<Conventions>().AddSystemMessagesConventions(t => typeof(ScheduledTask).IsAssignableFrom(t));

            var defaultScheduler = new DefaultScheduler();
            context.Container.RegisterSingleton(defaultScheduler);
            context.Pipeline.Register("ScheduleBehavior", new ScheduleBehavior(defaultScheduler), "Registers a task definition for scheduling.");
        }
コード例 #5
0
ファイル: Database.cs プロジェクト: fossabot/datatent
        public Database(ILoggerFactory loggerFactory, DatatentSettings settings, IDataProcessingPipeline processingPipeline)
        {
            _settings           = settings;
            _processingPipeline = processingPipeline;

            _fileSystemService = new FileSystemService(_settings, loggerFactory.CreateLogger <FileSystemService>());
            _defaultScheduler  = new DefaultScheduler(_fileSystemService);
        }
コード例 #6
0
        public void SetUp()
        {
            defaultScheduler = new DefaultScheduler(bus);
            container.Register <IBus>(() => bus);
            container.Register <DefaultScheduler>(() => defaultScheduler);

            schedule = new Schedule(container);
        }
コード例 #7
0
        /// <summary>
        /// Invoked if the feature is activated.
        /// </summary>
        /// <param name="context">The feature context.</param>
        protected internal override void Setup(FeatureConfigurationContext context)
        {
            context.Settings.Get <Conventions>().AddSystemMessagesConventions(t => typeof(ScheduledTask).IsAssignableFrom(t));

            var defaultScheduler = new DefaultScheduler();

            context.Container.RegisterSingleton(defaultScheduler);
            context.Pipeline.Register("ScheduleBehavior", new ScheduleBehavior(defaultScheduler), "Registers a task definition for scheduling.");
        }
コード例 #8
0
        public void SetUp()
        {
            scheduler = new DefaultScheduler(bus);
            handler = new ScheduledTaskMessageHandler(scheduler);

            var task = new TaskDefinition{Task = () => { }};
            taskId = task.Id;
            scheduler.Schedule(task);
        }
コード例 #9
0
        public void TestTenIterations()
        {
            var scheduler = new DefaultScheduler();

            scheduler.Initialize(new TestStateManager(), new DefaultCumulativeRewardEstimator <int>(), new DefaultTerminalStateEvaluator <int>());
            JobHandle currentJobHandle = default;

            for (int i = 0; i < 10; i++)
            {
                currentJobHandle = scheduler.Schedule(default);
コード例 #10
0
        public void TestAddingSingleNewPage()
        {
            var scheduler = new DefaultScheduler();
            var url       = new Uri("http://google.nl");

            scheduler.Add(url);
            var result = scheduler.GetNext();

            Assert.AreEqual(url, result);
        }
コード例 #11
0
        public void TestAddingMultipleNewPages()
        {
            var scheduler = new DefaultScheduler();
            var urls      = new[] { new Uri("https://google.nl"), new Uri("https://google123.nl") };

            scheduler.Add(urls);
            var total = scheduler.Count;

            Assert.AreEqual(urls.Length, total);
        }
コード例 #12
0
        public void TestForAddingExistingPageAfterCrawled()
        {
            var scheduler = new DefaultScheduler();
            var url       = new Uri("https://google.nl");

            scheduler.AddKnownUri(url);
            scheduler.Add(url);
            var total = scheduler.Count;

            Assert.AreEqual(0, total);
        }
コード例 #13
0
 public DefaultSchedulerTests()
 {
     this.schedulerMetadata.Setup(s => s.HeartbeatInterval).Returns(TimeSpan.FromMilliseconds(100));
     this.sut = new DefaultScheduler <Guid>(
         this.schedulerId,
         this.schedulerMetadata.Object,
         this.schedulerMetadataStore.Object,
         this.schedulerStateMonitor.Object,
         this.jobProcessor.Object,
         this.logger.Object);
 }
コード例 #14
0
        public void TestCountOnlyReturningPagesToCrawl()
        {
            var scheduler = new DefaultScheduler();
            var firstUrl  = new Uri("https://google.nl");
            var secondUrl = new Uri("https://gogle123.nl");

            scheduler.Add(firstUrl);
            scheduler.AddKnownUri(secondUrl);
            var total = scheduler.Count;

            Assert.AreEqual(1, total);
        }
コード例 #15
0
        public void SetUp()
        {
            scheduler = new DefaultScheduler(bus);
            handler   = new ScheduledTaskMessageHandler(scheduler);

            var task = new TaskDefinition {
                Task = () => { }
            };

            taskId = task.Id;
            scheduler.Schedule(task);
        }
コード例 #16
0
        public void SetUp()
        {
            scheduler = new DefaultScheduler();
            handler = new ScheduledTaskMessageHandler(scheduler);

            var task = new TaskDefinition
            {
                Every = TimeSpan.FromSeconds(5),
                Task = c => TaskEx.CompletedTask
            };
            taskId = task.Id;
            scheduler.Schedule(task);
        }
コード例 #17
0
        public Task ProcessCommand <TCommand>(TCommand command) where TCommand : IAsyncCommand
        {
            IScheduler scheduler;

            if (Schedulers.TryGetValue(typeof(TCommand), out scheduler))
            {
                return(scheduler.Run(() => _commandBus.ProcessCommand(command)));
            }
            if (DefaultScheduler != null)
            {
                return(DefaultScheduler.Run(() => _commandBus.ProcessCommand(command)));
            }
            return(_commandBus.ProcessCommand(command));
        }
コード例 #18
0
        public void SetUp()
        {
            scheduler = new DefaultScheduler();
            handler   = new ScheduledTaskMessageHandler(scheduler);

            var task = new TaskDefinition
            {
                Every = TimeSpan.FromSeconds(5),
                Task  = c => TaskEx.CompletedTask
            };

            taskId = task.Id;
            scheduler.Schedule(task);
        }
コード例 #19
0
        public Task <TResult> ProcessQuery <TQuery, TResult>(TQuery query) where TQuery : IAsyncQuery <object>
        {
            IScheduler scheduler;

            if (Schedulers.TryGetValue(typeof(TQuery), out scheduler))
            {
                return(scheduler.Run(() => _queryBus.ProcessQuery <TQuery, TResult>(query)));
            }
            if (DefaultScheduler != null)
            {
                return(DefaultScheduler.Run(() => _queryBus.ProcessQuery <TQuery, TResult>(query)));
            }
            return(_queryBus.ProcessQuery <TQuery, TResult>(query));
        }
コード例 #20
0
        public void SetUp()
        {
            logicalContext = new TestableIncomingLogicalMessageContext();
            scheduler      = new DefaultScheduler();
            behavior       = new ScheduledTaskHandlingBehavior(scheduler);

            var task = new TaskDefinition
            {
                Every = TimeSpan.FromSeconds(5),
                Task  = c => Task.CompletedTask
            };

            taskId = task.Id;
            scheduler.Schedule(task);
        }
コード例 #21
0
        private ClientConfiguration()
        {
            Scheduler = new DefaultScheduler();

            Logger           = NullLogger.Instance;
            Dispatcher       = new DefaultPacketDispatcher(new Lazy <bool>(() => this.AsynchrounousDispatch));
            TransportFactory = DefaultTransportFactory;
            //Transport = new WebSocketClientTransport(NullLogger.Instance);

            Serializers = new List <ISerializer> {
                new MsgPackSerializer()
            };
            MaxPeers = 20;
            Plugins  = new List <IClientPlugin>();
            Plugins.Add(new RpcClientPlugin());
            AsynchrounousDispatch = true;
            PingInterval          = 5000;
        }
コード例 #22
0
        /**
         * Scheduler控制订阅和通知的发送。
         * Scheduler包含三个组件:1)一个优先队列存放任务,2)Execution context,用来决定任务在哪执行(线程池,当前线程)3)scheduler的时钟,Task是根据这个时钟调度的,不是系统时钟。
         *
         * rx中所有的Scheduler实现IScheduler接口。
         *
         */

        public static void GetSchedulers()
        {
            //立刻在当前线程上执行
            ImmediateScheduler immediate = Scheduler.Immediate;
            //在当前线程上尽可能快的执行(先放到队列中,尽快执行)
            CurrentThreadScheduler currentThreadScheduler = Scheduler.CurrentThread;
            //每次创建一个线程执行
            NewThreadScheduler newThreadScheduler = NewThreadScheduler.Default;
            //在Task Factory上执行
            TaskPoolScheduler taskPoolScheduler = TaskPoolScheduler.Default;

            //在当前Dispatcher上执行任务
            DispatcherScheduler dispatcherScheduler = DispatcherScheduler.Current;

            //在ThreadPool上执行
            ThreadPoolScheduler threadPoolScheduler = ThreadPoolScheduler.Instance;
            //默认的调度器  其原则是使用最小的并行性,for operators returning an observable with a finite and small number of messages, Rx calls Immediate.  For operators returning a potentially large or infinite number of messages, CurrentThread is called. For operators which use timers, ThreadPool is used.
            DefaultScheduler defaultScheduler = Scheduler.Default;
        }
コード例 #23
0
        public async Task AddAndWaitForResult()
        {
            using DefaultScheduler fileSystemScheduler = new DefaultScheduler(new MemoryFileSystemService(new DatatentSettings(), Constants.BLOCK_SIZE_INCL_HEADER * 2, new NullLogger <FileSystemServiceBase>()));
            var bytes = new byte[Constants.PAGE_SIZE_INCL_HEADER];

            UnitTestHelper.FillArray(ref bytes, 0x01);

            var       address      = new Address(AddressScope.Page, 1, 1);
            IORequest writeRequest = new IORequest(IORequestDirection.Write, address, bytes);

            var writeResponse = await fileSystemScheduler.ScheduleFileSystemRequest(writeRequest).ConfigureAwait(false);

            writeResponse.Id.Should().Be(writeRequest.Id);

            IORequest readRequest  = IORequest.CreateReadRequest(address);
            var       readResponse = await fileSystemScheduler.ScheduleFileSystemRequest(readRequest).ConfigureAwait(false);

            readResponse.Address.FullAddress.Should().Be(address.FullAddress);
            readResponse.Payload.Take(bytes.Length).Should().BeEquivalentTo(bytes);
        }
コード例 #24
0
        public void Start()
        {
            ErrorsNotifications errors    = busNotifications.Errors;
            DefaultScheduler    scheduler = Scheduler.Default;

            unsubscribeStreams.Add(
                errors.MessageSentToErrorQueue
                .ObserveOn(scheduler)
                .Subscribe(LogEvent)
                );
            unsubscribeStreams.Add(
                errors.MessageHasBeenSentToSecondLevelRetries
                .ObserveOn(scheduler)
                .Subscribe(LogEvent)
                );
            unsubscribeStreams.Add(
                errors.MessageHasFailedAFirstLevelRetryAttempt
                .ObserveOn(scheduler)
                .Subscribe(LogEvent)
                );
        }
コード例 #25
0
        public TestBase()
        {
            this.repository = new JobbrRepository(new InMemoryJobStorageProvider());

            var executorMock = new Mock <IJobExecutor>();

            executorMock.Setup(e => e.OnPlanChanged(It.IsNotNull <List <PlannedJobRun> >())).Callback <List <PlannedJobRun> >(p => this.lastIssuedPlan = p);

            this.periodicTimer = new PeriodicTimerMock();

            this.currentTimeProvider = new ManualTimeProvider();

            var job = new Job();

            this.repository.AddJob(job);
            this.demoJob1Id = job.Id;

            this.scheduler = new DefaultScheduler(this.repository, executorMock.Object,
                                                  new InstantJobRunPlaner(this.currentTimeProvider), new ScheduledJobRunPlaner(this.currentTimeProvider),
                                                  new RecurringJobRunPlaner(this.repository, this.currentTimeProvider), new DefaultSchedulerConfiguration(),
                                                  this.periodicTimer, this.currentTimeProvider);
        }
コード例 #26
0
 private static void PreloadStudyInformation()
 {
     Scheduler       = new DefaultScheduler(Database);
     Cache           = new Cache(Scheduler.GetMetadata(), Database);
     CardViewCreator = new CardViewCreator();
 }
コード例 #27
0
 public override void Schedule(Task task)
 {
     DefaultScheduler.Schedule(task);
 }
コード例 #28
0
 public ScheduledTaskMessageHandler(DefaultScheduler scheduler)
 {
     this.scheduler = scheduler;
 }
コード例 #29
0
 public void SetUp()
 {
     scheduler = new DefaultScheduler(bus);
 }
コード例 #30
0
ファイル: TaskSchedulerTest.cs プロジェクト: zgramana/mono
        public void DefaultBehaviourTest()
        {
            var s = new DefaultScheduler();

            s.TestDefaultMethod();
        }
コード例 #31
0
 public void SetUp()
 {
     scheduler = new DefaultScheduler();
 }
コード例 #32
0
 /// <summary>
 /// Initializes a TaskQueue.
 /// </summary>
 public TaskQueue()
 {
     Scheduler = new DefaultScheduler();
 }
コード例 #33
0
 public FakeMessageSession(DefaultScheduler defaultScheduler)
 {
     this.defaultScheduler = defaultScheduler;
 }
コード例 #34
0
 public void SetUp()
 {
     scheduler = new DefaultScheduler();
     session   = new FakeMessageSession(scheduler);
 }
コード例 #35
0
		public void DefaultBehaviourTest ()
		{
			var s = new DefaultScheduler ();
			s.TestDefaultMethod ();
		}
コード例 #36
0
ファイル: MainWindow.xaml.cs プロジェクト: Divad-H/pro-tagger
 public Schedulers(DispatcherScheduler dispatcher, DefaultScheduler threadPool, ImmediateScheduler immediate)
 => (_dispatcher, _threadPool, _immediate) = (dispatcher, threadPool, immediate);