コード例 #1
0
        public async Task ConcurrentSqliteFileAsync()
        {
            var databasePath = GetTempDatabasePath();
            var db           = new SqliteRequestQueue.SqliteRequestQueue(databasePath);
            var tasks        = Enumerable.Range(1, 3)
                               .Select(i => RqTestDefaultWorkflow(db, NextCrawlId())).ToList();

            foreach (var task in tasks)
            {
                await task;
            }
        }
コード例 #2
0
        public async Task SqliteFileAsync()
        {
            var           databasePath = GetTempDatabasePath();
            IRequestQueue rq           = new SqliteRequestQueue.SqliteRequestQueue(databasePath);

            await RqTestDefaultWorkflow(rq, NextCrawlId());

            try { File.Delete(databasePath); }
            catch {
                TestContext.WriteLine($"Cant delete {databasePath}");
            }
        }
コード例 #3
0
        public void InMemorySync()
        {
            IRequestQueue rq      = new SqliteRequestQueue.SqliteRequestQueue(":memory:");
            var           crawlId = NextCrawlId();

            rq.Enqueue(crawlId, new [] { "j1", "j2", "j3" });
            var d0 = rq.Dequeue(crawlId, 1, DateTimeOffset.UtcNow.AddSeconds(1));

            rq.Delete(crawlId, d0);
            rq.Dequeue(crawlId, 1, DateTimeOffset.UtcNow.AddSeconds(-1));
            rq.Enqueue(crawlId, new [] { "j4", "j5" });

            var d1 = rq.Dequeue(1, 10, DateTimeOffset.UtcNow.AddSeconds(10));

            Assert.AreEqual(4, d1.Count);
            rq.Delete(crawlId, d1);
        }
コード例 #4
0
        public async Task SqliteInMemoryAsync()
        {
            IRequestQueue rq = new SqliteRequestQueue.SqliteRequestQueue(":memory:");

            await RqTestDefaultWorkflow(rq, NextCrawlId());
        }