|
4 | 4 | <meta charset="UTF-8"> |
5 | 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
6 | 6 | <title>Do it with GUSTO</title> |
| 7 | + <meta name="description" content="GUSTO is a lightweight .NET background job runner that gives you the worker while letting you own storage, orchestration, and extensions such as batching, continuations, cron, retries, observability, and testing." /> |
| 8 | + <meta name="keywords" content="GUSTO, .NET job runner, background jobs, batching, continuations, cron, retries, OpenTelemetry, ByteBard, job queue, background service" /> |
| 9 | + <meta property="og:title" content="Do it with GUSTO" /> |
| 10 | + <meta property="og:description" content="Sample-driven guide for extending the GUSTO job runner: start with the stock worker, then bolt on batching, continuations, cron scheduling, retries, observability, and testing helpers." /> |
| 11 | + <meta property="og:type" content="website" /> |
| 12 | + <meta property="og:url" content="https://github.com/ByteBardOrg/GUSTO" /> |
| 13 | + <meta property="og:image" content="https://github.com/ByteBardOrg/GUSTO/raw/main/assets/social-card.png" /> |
| 14 | + <meta name="twitter:card" content="summary_large_image" /> |
| 15 | + <meta name="twitter:title" content="Do it with GUSTO" /> |
| 16 | + <meta name="twitter:description" content="Guided scenarios for extending the GUSTO job runner with batching, continuations, cron, retries, observability, and testing techniques." /> |
| 17 | + <meta name="twitter:image" content="https://github.com/ByteBardOrg/GUSTO/raw/main/assets/social-card.png" /> |
7 | 18 | <link rel="preconnect" href="https://fonts.googleapis.com"> |
8 | 19 | <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> |
9 | 20 | <link href="https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;500&family=Bricolage+Grotesque:wght@600&family=Chivo:wght@500;600&family=IBM+Plex+Mono:wght@400;500&display=swap" rel="stylesheet"> |
@@ -145,13 +156,11 @@ <h2>Full EF Core provider (Storage + Scheduling brain)</h2> |
145 | 156 | JobSearchParams<JobRecord> parameters, |
146 | 157 | CancellationToken cancellationToken) |
147 | 158 | { |
148 | | - var now = DateTime.UtcNow; |
149 | | - |
150 | | - // Parameters are used by the worker to provide a base filter (IsComplete && !Expired && ExecuteAfter > Now) |
151 | | - // These are expected in all implementations, but can be built upon. |
152 | | - return _context.JobRecords |
| 159 | + // parameters.Match already contains the worker's baseline predicate (see FAQ) |
| 160 | + return await _context.JobRecords |
153 | 161 | .Where(parameters.Match.Compile()) |
154 | | - .Take(parameters.Limit); |
| 162 | + .Take(parameters.Limit) |
| 163 | + .ToListAsync(cancellationToken); |
155 | 164 | } |
156 | 165 |
|
157 | 166 | public async Task MarkJobAsCompleteAsync(JobRecord jobStorageRecord, CancellationToken cancellationToken) |
|
0 commit comments