# hangfire.mooSQL **Repository Path**: rainlime/hangfire.moo-sql ## Basic Information - **Project Name**: hangfire.mooSQL - **Description**: hangfire持久层的mooSQL驱动 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-16 - **Last Updated**: 2026-11-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: hangfire ## README # Hangfire.MooSql Hangfire storage provider powered by [mooSQL](../moo-sqlm/mooSQL2024) — multi-database via Dialect / **SQLClip** / SQLBuilder / DDLBuilder. ## Status | Phase | Status | |-------|--------| | Phase 1 — Schema + skeleton | Done | | Phase 2 — Write path (entity `insert`) + Clip reads | Done | | Phase 3 — Dequeue / FetchedJob / DistributedLock | Done | | Phase 4 — Expiration / CountersAggregator (Clip) | Done | | Phase 5 — Dashboard Monitoring | Done | Runtime conventions: - **SELECT / UPDATE / DELETE** → `SQLClip` (`from` / `SetPrefixedTable`) - **INSERT** → `new HangfireXxx { ... }` then `kit.insert` / `insertReturnId` - Entry: `UseClip` / `UseTransaction` (one builder + clip per chain) SQLite integration tests cover Schema, CreateJob, Enqueue/Dequeue, DistributedLock, Set/Hash. See [doc/moosql-hangfire-porting-guide.md](doc/moosql-hangfire-porting-guide.md). ## Usage ```csharp GlobalConfiguration.Configuration .UseMooSqlStorage(db, opt => { opt.TablesPrefix = "hf_"; opt.PrepareSchemaIfNecessary = true; }); ``` Requires **Hangfire.Core 1.8.x** (aligned with Hangfire.AspNetCore). Target frameworks: `net8.0`, `net10.0`. ## Build / Test ```bash dotnet build src/Hangfire.MooSql/Hangfire.MooSql.csproj dotnet test tests/Hangfire.MooSql.Tests/Hangfire.MooSql.Tests.csproj ``` Requires sibling checkout of `moo-sqlm/mooSQL2024` (project reference).