Skip to content

Commit 514a8a1

Browse files
committed
fix: improve output
1 parent 226d49d commit 514a8a1

3 files changed

Lines changed: 12 additions & 22 deletions

File tree

ApplicationData/Services/RedditPostProvider.cs

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,17 @@ public async Task<Maybe<string>> GetPostTitleByPostId(string redditPostId, Cance
2626
return reader.TryGetString(0);
2727
}
2828

29-
public async IAsyncEnumerable<string> GetPostIdsWithoutTitleFetched([EnumeratorCancellation] CancellationToken cancellationToken)
29+
public async IAsyncEnumerable<(string PostId, string? Title)> GetPostsWithoutTitleFetched([EnumeratorCancellation] CancellationToken cancellationToken)
3030
{
3131
await using var connection = _dbConnectionFactory.CreateReadOnlyConnection();
32-
await using var reader = await connection.ExecuteReader(
33-
"SELECT reddit_post_id FROM reddit_posts WHERE post_title IS NULL AND is_title_fetched = 0",
32+
33+
var query = connection.QueryUnbuffered<(string PostId, string? Title)>(
34+
"SELECT reddit_post_id AS PostId, post_title AS Title FROM reddit_posts WHERE is_title_fetched = 0",
3435
cancellationToken: cancellationToken);
3536

36-
while (await reader.ReadAsync(cancellationToken))
37+
await foreach (var redditPostId in query)
3738
{
38-
yield return reader.GetString(0);
39+
yield return redditPostId;
3940
}
4041
}
4142

@@ -59,15 +60,4 @@ UPDATE reddit_posts
5960
WHERE reddit_post_id = @redditPostId
6061
""", new { redditPostId, title }, cancellationToken);
6162
}
62-
63-
public async IAsyncEnumerable<string> GetPostsNeedingTitleFetched([EnumeratorCancellation] CancellationToken cancellationToken)
64-
{
65-
await using var connection = _dbConnectionFactory.CreateReadOnlyConnection();
66-
67-
var query = connection.QueryUnbuffered<string>("SELECT reddit_post_id FROM reddit_posts WHERE is_title_fetched = 0",
68-
cancellationToken: cancellationToken);
69-
70-
await foreach (var redditPostId in query)
71-
yield return redditPostId;
72-
}
7363
}

BackgroundProcessor/Processors/RedditPostTitleFetcher.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ SubmissionBrowser submissionBrowser
2525
/// <inheritdoc />
2626
public async Task Process(CancellationToken cancellationToken)
2727
{
28-
var query = _redditPostProvider.GetPostIdsWithoutTitleFetched(cancellationToken)
28+
var query = _redditPostProvider.GetPostsWithoutTitleFetched(cancellationToken)
2929
.Take(10)
3030
.WithCancellation(cancellationToken);
3131

32-
await foreach (var redditPostId in query)
32+
await foreach (var (redditPostId, _) in query)
3333
{
3434
try
3535
{

WebApi/Controllers/Admin/AdminQueueController.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ public async Task<IActionResult> GetProcessingQueue(CancellationToken cancellati
5555
/// </summary>
5656
[HttpGet]
5757
[Route("post-title-backlog")]
58-
public IAsyncEnumerable<string> GetPostTitleFetchBacklog(CancellationToken cancellationToken)
59-
{
60-
return _redditPostProvider.GetPostsNeedingTitleFetched(cancellationToken);
61-
}
58+
public IAsyncEnumerable<object> GetPostTitleFetchBacklog(CancellationToken cancellationToken) =>
59+
_redditPostProvider.GetPostsWithoutTitleFetched(cancellationToken)
60+
.Select(x => new { x.PostId, x.Title })
61+
.AsAsyncEnumerable();
6262
}

0 commit comments

Comments
 (0)