示例#1
0
        public async Task should_consume_delay_job()
        {
            DelayedRedisHelper.Del(nameof(TestJobHandler));

            var delayer = _serviceProvider.GetRequiredService <IDelayer <TestJob> >();

            for (int j = 0; j < 100; j++)
            {
                await delayer.PutDealyJob(
                    new TestJob(TimeSpan.FromSeconds(1), "abcde====" + j, j.ToString()));
            }

            Thread.Sleep(1000 * 20);
            var num = DelayedRedisHelper.LLen(nameof(TestJobHandler));

            _testOutputHelper.WriteLine("消费:" + num);
            Assert.True(num == 100);
            _testOutputHelper.WriteLine("ok");
        }
示例#2
0
        public async Task shou_add_to_bucket()
        {
            var jobid = Guid.NewGuid().ToString("N");

            var delayer = _serviceProvider.GetRequiredService <IDelayer <TestJob> >();


            await delayer.PutDealyJob(
                new TestJob(TimeSpan.FromSeconds(10), "abcde====" + jobid, jobid));

            var jobpool = await new JobPool <TestJob>().GetJobAsync(jobid);

            Assert.NotNull(jobpool);
            Assert.True(jobpool.JobId == jobid);
            var bucketJob = await new Bucket().GetNextJobExecTimeAsync(nameof(TestJob));

            Assert.True(bucketJob != null);

            await new JobPool <TestJob>().DelJobAsync(jobid);
            await new Bucket().RemoveJobAsync(nameof(TestJob), jobid);

            DelayedRedisHelper.Del(nameof(TestJobHandler));
        }