Skip to content

kimtth/csharp-long-running-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Long-Running API Operations

ASP.NET Core implementation of async request-reply pattern for long-running jobs with background processing.

Overview

  1. Client submits job → API returns 202 Accepted + job ID
  2. Background worker processes asynchronously
  3. Client polls status endpoint for progress
  4. Client retrieves result when complete

See AGENTS.md for architecture diagrams and detailed flow.

Quick Start

dotnet run --project src/LongRunningApi

Navigate to https://localhost:5001 for Swagger UI.

Endpoints

POST   /api/jobs              # Submit job → 202 Accepted
GET    /api/jobs/{id}         # Get status → 200 OK
GET    /api/jobs/{id}/result  # Get result → 200 OK / 425 Too Early
DELETE /api/jobs/{id}         # Delete job → 204 No Content
GET    /health                # Health check

Usage: See the samples in LongRunningApi.http

Job States

QueuedProcessingCompleted / Failed

Operations

  • DataProcessing: Simulates record processing with progress updates
  • ReportGeneration: Multi-step report generation
  • BatchImport: Simulates importing with success/failure tracking
  • Generic: Default 5-step operation

Parameters: recordCount (default: 100), processingTimeMs (default: 50)

This demo uses in-memory storage (non-persistent). For production:

References

About

C# Long-Running API ⏳ Sample (Async Request-Reply Pattern)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages