├── .github ├── .kodiak.toml ├── FUNDING.yml ├── dependabot.yml └── workflows │ ├── codeql-analysis.yml │ └── dotnet.yml ├── .gitignore ├── .idea └── .idea.Job.Scheduler │ └── .idea │ ├── .gitignore │ ├── encodings.xml │ ├── indexLayout.xml │ └── vcs.xml ├── CHANGELOG.md ├── Job.Scheduler.AspNetCore.Tests ├── Job.Scheduler.AspNetCore.Tests.csproj ├── JobSchedulerAspNetCoreTests.cs ├── Mock │ ├── HasRunJob.cs │ ├── OneTimeJob.cs │ └── OneTimeQueueJob.cs ├── QueueJobSchedulerTests.cs └── Usings.cs ├── Job.Scheduler.AspNetCore ├── Background │ └── JobSchedulerHostedService.cs ├── Builder │ ├── IJobBuilder.cs │ └── JobBuilder.cs ├── Configuration │ └── JobSchedulerStartupConfig.cs ├── Extensions │ └── ServiceCollectionExtensions.cs └── Job.Scheduler.AspNetCore.csproj ├── Job.Scheduler.Tests ├── Job.Scheduler.Tests.csproj ├── JobSchedulerTests.cs ├── Mocks │ ├── DebounceJob.cs │ ├── FailingRetringJob.cs │ ├── LongRunningDebounceJob.cs │ ├── MaxRuntimeJob.cs │ ├── MockTaskScheduler.cs │ ├── OneTimeJob.cs │ ├── OneTimeQueueJob.cs │ └── ThreadJob.cs └── QueueJobSchedulerTests.cs ├── Job.Scheduler.sln ├── Job.Scheduler ├── Builder │ ├── IJobRunnerBuilder.cs │ └── JobRunnerBuilder.cs ├── Job.Scheduler.csproj ├── Job │ ├── Action │ │ ├── AlwaysRetry.cs │ │ ├── BackoffRetry.cs │ │ ├── ExponentialBackoffRetry.cs │ │ ├── ExponentialDecorrelatedJittedBackoffRetry.cs │ │ ├── IRetryAction.cs │ │ ├── NoRetry.cs │ │ └── RetryNTimes.cs │ ├── Data │ │ ├── Debouncer.cs │ │ └── JobId.cs │ ├── Exception │ │ ├── JobException.cs │ │ └── MaxRuntimeJobException.cs │ ├── IJob.cs │ ├── IJobContainerBuilder.cs │ └── Runner │ │ ├── DebounceJobRunner.cs │ │ ├── DelayedJobRunner.cs │ │ ├── IJobRunner.cs │ │ ├── JobRunner.cs │ │ ├── OneTimeJobRunner.cs │ │ ├── QueuedJobRunner.cs │ │ └── RecurringJobRunner.cs ├── LICENSE.txt ├── Queue │ ├── Queue.cs │ ├── QueueJobContainer.cs │ └── QueueSettings.cs ├── Scheduler │ ├── IJobScheduler.cs │ └── JobScheduler.cs └── Utils │ ├── DebounceDispatcher.cs │ └── TaskUtils.cs ├── LICENSE ├── README.md ├── nuget.config └── package.json /.github/.kodiak.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/.github/.kodiak.toml -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/.github/workflows/codeql-analysis.yml -------------------------------------------------------------------------------- /.github/workflows/dotnet.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/.github/workflows/dotnet.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/.gitignore -------------------------------------------------------------------------------- /.idea/.idea.Job.Scheduler/.idea/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/.idea/.idea.Job.Scheduler/.idea/.gitignore -------------------------------------------------------------------------------- /.idea/.idea.Job.Scheduler/.idea/encodings.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/.idea/.idea.Job.Scheduler/.idea/encodings.xml -------------------------------------------------------------------------------- /.idea/.idea.Job.Scheduler/.idea/indexLayout.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/.idea/.idea.Job.Scheduler/.idea/indexLayout.xml -------------------------------------------------------------------------------- /.idea/.idea.Job.Scheduler/.idea/vcs.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/.idea/.idea.Job.Scheduler/.idea/vcs.xml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore.Tests/Job.Scheduler.AspNetCore.Tests.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore.Tests/Job.Scheduler.AspNetCore.Tests.csproj -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore.Tests/JobSchedulerAspNetCoreTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore.Tests/JobSchedulerAspNetCoreTests.cs -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore.Tests/Mock/HasRunJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore.Tests/Mock/HasRunJob.cs -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore.Tests/Mock/OneTimeJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore.Tests/Mock/OneTimeJob.cs -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore.Tests/Mock/OneTimeQueueJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore.Tests/Mock/OneTimeQueueJob.cs -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore.Tests/QueueJobSchedulerTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore.Tests/QueueJobSchedulerTests.cs -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore.Tests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using NUnit.Framework; -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore/Background/JobSchedulerHostedService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore/Background/JobSchedulerHostedService.cs -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore/Builder/IJobBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore/Builder/IJobBuilder.cs -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore/Builder/JobBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore/Builder/JobBuilder.cs -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore/Configuration/JobSchedulerStartupConfig.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore/Configuration/JobSchedulerStartupConfig.cs -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore/Extensions/ServiceCollectionExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore/Extensions/ServiceCollectionExtensions.cs -------------------------------------------------------------------------------- /Job.Scheduler.AspNetCore/Job.Scheduler.AspNetCore.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.AspNetCore/Job.Scheduler.AspNetCore.csproj -------------------------------------------------------------------------------- /Job.Scheduler.Tests/Job.Scheduler.Tests.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.Tests/Job.Scheduler.Tests.csproj -------------------------------------------------------------------------------- /Job.Scheduler.Tests/JobSchedulerTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.Tests/JobSchedulerTests.cs -------------------------------------------------------------------------------- /Job.Scheduler.Tests/Mocks/DebounceJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.Tests/Mocks/DebounceJob.cs -------------------------------------------------------------------------------- /Job.Scheduler.Tests/Mocks/FailingRetringJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.Tests/Mocks/FailingRetringJob.cs -------------------------------------------------------------------------------- /Job.Scheduler.Tests/Mocks/LongRunningDebounceJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.Tests/Mocks/LongRunningDebounceJob.cs -------------------------------------------------------------------------------- /Job.Scheduler.Tests/Mocks/MaxRuntimeJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.Tests/Mocks/MaxRuntimeJob.cs -------------------------------------------------------------------------------- /Job.Scheduler.Tests/Mocks/MockTaskScheduler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.Tests/Mocks/MockTaskScheduler.cs -------------------------------------------------------------------------------- /Job.Scheduler.Tests/Mocks/OneTimeJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.Tests/Mocks/OneTimeJob.cs -------------------------------------------------------------------------------- /Job.Scheduler.Tests/Mocks/OneTimeQueueJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.Tests/Mocks/OneTimeQueueJob.cs -------------------------------------------------------------------------------- /Job.Scheduler.Tests/Mocks/ThreadJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.Tests/Mocks/ThreadJob.cs -------------------------------------------------------------------------------- /Job.Scheduler.Tests/QueueJobSchedulerTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.Tests/QueueJobSchedulerTests.cs -------------------------------------------------------------------------------- /Job.Scheduler.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler.sln -------------------------------------------------------------------------------- /Job.Scheduler/Builder/IJobRunnerBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Builder/IJobRunnerBuilder.cs -------------------------------------------------------------------------------- /Job.Scheduler/Builder/JobRunnerBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Builder/JobRunnerBuilder.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job.Scheduler.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job.Scheduler.csproj -------------------------------------------------------------------------------- /Job.Scheduler/Job/Action/AlwaysRetry.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Action/AlwaysRetry.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Action/BackoffRetry.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Action/BackoffRetry.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Action/ExponentialBackoffRetry.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Action/ExponentialBackoffRetry.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Action/ExponentialDecorrelatedJittedBackoffRetry.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Action/ExponentialDecorrelatedJittedBackoffRetry.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Action/IRetryAction.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Action/IRetryAction.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Action/NoRetry.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Action/NoRetry.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Action/RetryNTimes.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Action/RetryNTimes.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Data/Debouncer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Data/Debouncer.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Data/JobId.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Data/JobId.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Exception/JobException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Exception/JobException.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Exception/MaxRuntimeJobException.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Exception/MaxRuntimeJobException.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/IJob.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/IJob.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/IJobContainerBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/IJobContainerBuilder.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Runner/DebounceJobRunner.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Runner/DebounceJobRunner.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Runner/DelayedJobRunner.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Runner/DelayedJobRunner.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Runner/IJobRunner.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Runner/IJobRunner.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Runner/JobRunner.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Runner/JobRunner.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Runner/OneTimeJobRunner.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Runner/OneTimeJobRunner.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Runner/QueuedJobRunner.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Runner/QueuedJobRunner.cs -------------------------------------------------------------------------------- /Job.Scheduler/Job/Runner/RecurringJobRunner.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Job/Runner/RecurringJobRunner.cs -------------------------------------------------------------------------------- /Job.Scheduler/LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/LICENSE.txt -------------------------------------------------------------------------------- /Job.Scheduler/Queue/Queue.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Queue/Queue.cs -------------------------------------------------------------------------------- /Job.Scheduler/Queue/QueueJobContainer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Queue/QueueJobContainer.cs -------------------------------------------------------------------------------- /Job.Scheduler/Queue/QueueSettings.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Queue/QueueSettings.cs -------------------------------------------------------------------------------- /Job.Scheduler/Scheduler/IJobScheduler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Scheduler/IJobScheduler.cs -------------------------------------------------------------------------------- /Job.Scheduler/Scheduler/JobScheduler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Scheduler/JobScheduler.cs -------------------------------------------------------------------------------- /Job.Scheduler/Utils/DebounceDispatcher.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Utils/DebounceDispatcher.cs -------------------------------------------------------------------------------- /Job.Scheduler/Utils/TaskUtils.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/Job.Scheduler/Utils/TaskUtils.cs -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/README.md -------------------------------------------------------------------------------- /nuget.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/nuget.config -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Belphemur/Job.Scheduler/HEAD/package.json --------------------------------------------------------------------------------