├── .editorconfig ├── .github └── workflows │ ├── ci.yaml │ └── pr.yaml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── LICENSE.md ├── README.md ├── dotnet-tools.json ├── global.json └── src ├── .editorconfig ├── .idea └── .idea.Fantasma │ └── .idea │ ├── .gitignore │ ├── .name │ ├── encodings.xml │ ├── indexLayout.xml │ └── vcs.xml ├── Directory.Build.props ├── Directory.Build.targets ├── Fantasma.Sandbox ├── DatabaseContext.cs ├── Fantasma.Sandbox.csproj ├── Jobs │ ├── FailingJob.cs │ ├── MyOneOffJob.cs │ └── MyRecurringJob.cs ├── Migrations │ ├── 20240626183750_Initial.Designer.cs │ ├── 20240626183750_Initial.cs │ └── DatabaseContextModelSnapshot.cs ├── Program.cs ├── appsettings.Development.json └── appsettings.json ├── Fantasma.Tests ├── .editorconfig ├── Fantasma.Tests.csproj └── Properties │ └── Usings.cs ├── Fantasma.sln ├── Fantasma ├── CompletedJob.cs ├── Configuration │ ├── FantasmaConfiguration.cs │ └── IServiceCollectionExtensions.cs ├── Cron.cs ├── EntityFramework │ ├── FantasmaCluster.cs │ ├── FantasmaHistory.cs │ ├── FantasmaJob.cs │ └── IFantasmaDatabase.cs ├── Fantasma.csproj ├── IJobData.cs ├── IJobEngine.cs ├── IJobProvider.cs ├── IJobScheduler.cs ├── IJobStorage.cs ├── Internal │ ├── Configuration │ │ └── ServiceRegistrar.cs │ ├── Extensions │ │ ├── JobStorageExtensions.cs │ │ └── ServiceCollectionExtensions.cs │ ├── ICluster.cs │ ├── IJobHandler.cs │ ├── JobEngine.cs │ ├── JobScheduler.cs │ ├── Providers │ │ ├── InMemory │ │ │ ├── InMemoryProvider.cs │ │ │ └── InMemoryStorage.cs │ │ ├── NopCluster.cs │ │ ├── ScopedStorageAdapter.cs │ │ └── Sql │ │ │ ├── SqlCluster.cs │ │ │ ├── SqlHeartbeatThread.cs │ │ │ ├── SqlProvider.cs │ │ │ └── SqlStorage.cs │ ├── RecurringJob.cs │ └── SleepPreference.cs ├── Job.cs ├── JobHandler.cs ├── JobId.cs ├── JobKind.cs ├── JobStatus.cs ├── Properties │ ├── Annotations.cs │ └── Usings.cs └── Trigger.cs └── stylecop.json /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/.github/workflows/ci.yaml -------------------------------------------------------------------------------- /.github/workflows/pr.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/.github/workflows/pr.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/.gitignore -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/README.md -------------------------------------------------------------------------------- /dotnet-tools.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/dotnet-tools.json -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/global.json -------------------------------------------------------------------------------- /src/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/.editorconfig -------------------------------------------------------------------------------- /src/.idea/.idea.Fantasma/.idea/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/.idea/.idea.Fantasma/.idea/.gitignore -------------------------------------------------------------------------------- /src/.idea/.idea.Fantasma/.idea/.name: -------------------------------------------------------------------------------- 1 | Fantasma -------------------------------------------------------------------------------- /src/.idea/.idea.Fantasma/.idea/encodings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/.idea/.idea.Fantasma/.idea/encodings.xml -------------------------------------------------------------------------------- /src/.idea/.idea.Fantasma/.idea/indexLayout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/.idea/.idea.Fantasma/.idea/indexLayout.xml -------------------------------------------------------------------------------- /src/.idea/.idea.Fantasma/.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/.idea/.idea.Fantasma/.idea/vcs.xml -------------------------------------------------------------------------------- /src/Directory.Build.props: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Directory.Build.props -------------------------------------------------------------------------------- /src/Directory.Build.targets: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Directory.Build.targets -------------------------------------------------------------------------------- /src/Fantasma.Sandbox/DatabaseContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Sandbox/DatabaseContext.cs -------------------------------------------------------------------------------- /src/Fantasma.Sandbox/Fantasma.Sandbox.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Sandbox/Fantasma.Sandbox.csproj -------------------------------------------------------------------------------- /src/Fantasma.Sandbox/Jobs/FailingJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Sandbox/Jobs/FailingJob.cs -------------------------------------------------------------------------------- /src/Fantasma.Sandbox/Jobs/MyOneOffJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Sandbox/Jobs/MyOneOffJob.cs -------------------------------------------------------------------------------- /src/Fantasma.Sandbox/Jobs/MyRecurringJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Sandbox/Jobs/MyRecurringJob.cs -------------------------------------------------------------------------------- /src/Fantasma.Sandbox/Migrations/20240626183750_Initial.Designer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Sandbox/Migrations/20240626183750_Initial.Designer.cs -------------------------------------------------------------------------------- /src/Fantasma.Sandbox/Migrations/20240626183750_Initial.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Sandbox/Migrations/20240626183750_Initial.cs -------------------------------------------------------------------------------- /src/Fantasma.Sandbox/Migrations/DatabaseContextModelSnapshot.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Sandbox/Migrations/DatabaseContextModelSnapshot.cs -------------------------------------------------------------------------------- /src/Fantasma.Sandbox/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Sandbox/Program.cs -------------------------------------------------------------------------------- /src/Fantasma.Sandbox/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Sandbox/appsettings.Development.json -------------------------------------------------------------------------------- /src/Fantasma.Sandbox/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Sandbox/appsettings.json -------------------------------------------------------------------------------- /src/Fantasma.Tests/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Tests/.editorconfig -------------------------------------------------------------------------------- /src/Fantasma.Tests/Fantasma.Tests.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.Tests/Fantasma.Tests.csproj -------------------------------------------------------------------------------- /src/Fantasma.Tests/Properties/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; -------------------------------------------------------------------------------- /src/Fantasma.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma.sln -------------------------------------------------------------------------------- /src/Fantasma/CompletedJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/CompletedJob.cs -------------------------------------------------------------------------------- /src/Fantasma/Configuration/FantasmaConfiguration.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Configuration/FantasmaConfiguration.cs -------------------------------------------------------------------------------- /src/Fantasma/Configuration/IServiceCollectionExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Configuration/IServiceCollectionExtensions.cs -------------------------------------------------------------------------------- /src/Fantasma/Cron.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Cron.cs -------------------------------------------------------------------------------- /src/Fantasma/EntityFramework/FantasmaCluster.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/EntityFramework/FantasmaCluster.cs -------------------------------------------------------------------------------- /src/Fantasma/EntityFramework/FantasmaHistory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/EntityFramework/FantasmaHistory.cs -------------------------------------------------------------------------------- /src/Fantasma/EntityFramework/FantasmaJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/EntityFramework/FantasmaJob.cs -------------------------------------------------------------------------------- /src/Fantasma/EntityFramework/IFantasmaDatabase.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/EntityFramework/IFantasmaDatabase.cs -------------------------------------------------------------------------------- /src/Fantasma/Fantasma.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Fantasma.csproj -------------------------------------------------------------------------------- /src/Fantasma/IJobData.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/IJobData.cs -------------------------------------------------------------------------------- /src/Fantasma/IJobEngine.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/IJobEngine.cs -------------------------------------------------------------------------------- /src/Fantasma/IJobProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/IJobProvider.cs -------------------------------------------------------------------------------- /src/Fantasma/IJobScheduler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/IJobScheduler.cs -------------------------------------------------------------------------------- /src/Fantasma/IJobStorage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/IJobStorage.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/Configuration/ServiceRegistrar.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/Configuration/ServiceRegistrar.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/Extensions/JobStorageExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/Extensions/JobStorageExtensions.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/Extensions/ServiceCollectionExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/Extensions/ServiceCollectionExtensions.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/ICluster.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/ICluster.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/IJobHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/IJobHandler.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/JobEngine.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/JobEngine.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/JobScheduler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/JobScheduler.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/Providers/InMemory/InMemoryProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/Providers/InMemory/InMemoryProvider.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/Providers/InMemory/InMemoryStorage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/Providers/InMemory/InMemoryStorage.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/Providers/NopCluster.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/Providers/NopCluster.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/Providers/ScopedStorageAdapter.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/Providers/ScopedStorageAdapter.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/Providers/Sql/SqlCluster.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/Providers/Sql/SqlCluster.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/Providers/Sql/SqlHeartbeatThread.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/Providers/Sql/SqlHeartbeatThread.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/Providers/Sql/SqlProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/Providers/Sql/SqlProvider.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/Providers/Sql/SqlStorage.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/Providers/Sql/SqlStorage.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/RecurringJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/RecurringJob.cs -------------------------------------------------------------------------------- /src/Fantasma/Internal/SleepPreference.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Internal/SleepPreference.cs -------------------------------------------------------------------------------- /src/Fantasma/Job.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Job.cs -------------------------------------------------------------------------------- /src/Fantasma/JobHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/JobHandler.cs -------------------------------------------------------------------------------- /src/Fantasma/JobId.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/JobId.cs -------------------------------------------------------------------------------- /src/Fantasma/JobKind.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/JobKind.cs -------------------------------------------------------------------------------- /src/Fantasma/JobStatus.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/JobStatus.cs -------------------------------------------------------------------------------- /src/Fantasma/Properties/Annotations.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Properties/Annotations.cs -------------------------------------------------------------------------------- /src/Fantasma/Properties/Usings.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Properties/Usings.cs -------------------------------------------------------------------------------- /src/Fantasma/Trigger.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/Fantasma/Trigger.cs -------------------------------------------------------------------------------- /src/stylecop.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/patriksvensson/fantasma/HEAD/src/stylecop.json --------------------------------------------------------------------------------