Soenneker.Utils.RateLimiting.Executor 3.0.348

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Soenneker.Utils.RateLimiting.Executor --version 3.0.348                
NuGet\Install-Package Soenneker.Utils.RateLimiting.Executor -Version 3.0.348                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Soenneker.Utils.RateLimiting.Executor" Version="3.0.348" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Soenneker.Utils.RateLimiting.Executor --version 3.0.348                
#r "nuget: Soenneker.Utils.RateLimiting.Executor, 3.0.348"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Soenneker.Utils.RateLimiting.Executor as a Cake Addin
#addin nuget:?package=Soenneker.Utils.RateLimiting.Executor&version=3.0.348

// Install Soenneker.Utils.RateLimiting.Executor as a Cake Tool
#tool nuget:?package=Soenneker.Utils.RateLimiting.Executor&version=3.0.348                

alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image

alternate text is missing from this package README image Soenneker.Utils.RateLimiting.Executor

A thread-safe utility designed to manage the rate at which tasks are executed, ensuring they are not run more frequently than a specified interval.

RateLimitingExecutor is ideal for interacting with rate-limited APIs or throttling the execution of resource-intensive tasks.

Sequential Execution

Tasks, ValueTasks, and Actions are executed one at a time. If the defined interval between executions has passed, the task runs immediately; otherwise, it waits until the interval elapses before proceeding.

⚠️ Important Notes:

  • This is not a background queue processor. Each method awaits the result of the asynchronous operation before continuing.

  • Asynchronous methods will not block the calling thread, but synchronous methods will block execution until it completes.

Want to use this with dependency injection?

Check out the singleton factory implementation: Soenneker.Utils.RateLimiting.Factory

Installation

dotnet add package Soenneker.Utils.RateLimiting.Executor

Example: Executing a Loop of Tasks with Rate Limiting

Below is an example demonstrating how to use the RateLimitingExecutor to execute a series of tasks while maintaining a rate limit.

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Soenneker.Utils.RateLimiting.Executor;

public class Program
{
    public static async Task Main(string[] args)
    {
        var rateLimitingExecutor = new RateLimitingExecutor(TimeSpan.FromSeconds(2));

        for (int i = 0; i < 5; i++)
        {
            await rateLimitingExecutor.Execute(async ct =>
            {
                Console.WriteLine($"Executing Task {i + 1} at {DateTime.Now:HH:mm:ss}");
                await Task.Delay(100); // Simulate some work
            });
        }
    }
}

Console Output

Executing Task 1 at 14:00:00
Executing Task 2 at 14:00:02
Executing Task 3 at 14:00:04
Executing Task 4 at 14:00:06
Executing Task 5 at 14:00:08
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Soenneker.Utils.RateLimiting.Executor:

Package Downloads
Soenneker.Utils.RateLimiting.Factory

An async thread-safe singleton dictionary for Soenneker.Utils.RateLimiting.Executors, designed to manage the rate at which tasks are executed.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.357 60 2 days ago
3.0.356 30 2 days ago
3.0.355 275 5 days ago
3.0.354 162 5 days ago
3.0.353 194 5 days ago
3.0.352 156 5 days ago
3.0.351 261 5 days ago
3.0.350 211 5 days ago
3.0.349 141 6 days ago
3.0.348 399 6 days ago
3.0.347 359 10 days ago
3.0.346 326 10 days ago
3.0.345 318 14 days ago
3.0.344 129 15 days ago
3.0.343 127 15 days ago
3.0.342 81 15 days ago
3.0.341 89 15 days ago
3.0.340 200 15 days ago
3.0.339 198 15 days ago
3.0.338 77 15 days ago
3.0.337 77 15 days ago
3.0.336 404 15 days ago
3.0.335 110 16 days ago
3.0.334 68 16 days ago
3.0.333 188 16 days ago
3.0.332 76 16 days ago
3.0.331 72 16 days ago
3.0.330 297 19 days ago
3.0.329 126 19 days ago
3.0.328 167 20 days ago
3.0.327 193 20 days ago
3.0.326 144 20 days ago
3.0.325 366 22 days ago
3.0.324 140 22 days ago
3.0.323 79 22 days ago
3.0.322 343 23 days ago
3.0.321 171 23 days ago
3.0.320 122 23 days ago
3.0.319 182 23 days ago
3.0.318 82 23 days ago
3.0.317 206 24 days ago
3.0.316 256 24 days ago
3.0.315 308 a month ago
3.0.314 118 a month ago
3.0.313 119 a month ago
3.0.312 90 a month ago
3.0.311 301 a month ago
3.0.310 157 a month ago
3.0.309 87 a month ago
3.0.308 439 a month ago
3.0.307 85 a month ago
3.0.306 164 a month ago
3.0.305 390 a month ago
3.0.304 107 a month ago
3.0.303 178 a month ago
3.0.302 180 a month ago
3.0.301 169 a month ago
3.0.300 296 a month ago
3.0.299 234 a month ago
3.0.298 86 a month ago
3.0.297 170 a month ago
3.0.296 187 a month ago
3.0.295 137 a month ago
3.0.294 184 a month ago
3.0.293 85 a month ago
3.0.292 89 a month ago
3.0.291 372 a month ago
3.0.290 100 a month ago
3.0.289 76 a month ago
3.0.288 80 a month ago
3.0.287 87 a month ago
3.0.286 305 a month ago
3.0.285 101 a month ago
3.0.284 133 a month ago
3.0.283 248 a month ago
3.0.282 85 a month ago
3.0.281 80 a month ago
3.0.280 79 a month ago
3.0.279 129 a month ago
3.0.278 77 a month ago
3.0.277 93 a month ago
3.0.276 370 a month ago
3.0.275 243 a month ago
3.0.274 156 a month ago
3.0.273 86 a month ago
3.0.272 98 a month ago
3.0.271 231 a month ago
3.0.270 92 a month ago
3.0.269 86 a month ago
3.0.268 495 2 months ago
3.0.267 83 2 months ago
3.0.266 95 2 months ago
3.0.265 311 2 months ago
3.0.264 91 2 months ago
3.0.263 73 2 months ago
3.0.262 69 2 months ago
3.0.261 137 2 months ago
3.0.260 95 2 months ago
3.0.259 270 2 months ago
3.0.258 96 2 months ago
3.0.257 90 2 months ago
3.0.256 72 2 months ago
3.0.255 165 2 months ago
3.0.254 199 2 months ago
3.0.253 78 2 months ago
3.0.252 73 2 months ago
3.0.251 73 2 months ago
3.0.250 190 2 months ago
3.0.249 365 2 months ago
3.0.248 117 2 months ago
3.0.247 184 2 months ago
3.0.246 143 2 months ago
3.0.245 246 2 months ago
3.0.244 179 2 months ago
3.0.243 252 2 months ago
3.0.242 85 2 months ago
3.0.241 163 2 months ago
3.0.240 90 2 months ago
3.0.239 77 2 months ago
3.0.238 272 2 months ago
3.0.237 83 2 months ago
3.0.236 78 2 months ago
3.0.235 74 2 months ago
3.0.234 79 2 months ago
3.0.233 77 2 months ago
3.0.232 93 2 months ago
3.0.231 561 2 months ago
3.0.230 87 2 months ago
3.0.229 76 2 months ago
3.0.228 231 2 months ago
3.0.227 1,816 2 months ago
3.0.226 58 2 months ago
3.0.225 73 2 months ago
3.0.224 131 2 months ago
3.0.223 181 2 months ago
3.0.222 168 2 months ago
3.0.221 117 2 months ago
3.0.220 71 2 months ago
3.0.219 62 2 months ago
3.0.218 207 2 months ago
3.0.217 152 2 months ago
3.0.216 122 2 months ago
3.0.215 127 2 months ago
3.0.214 81 2 months ago
3.0.213 125 2 months ago
3.0.212 82 2 months ago
3.0.211 74 2 months ago
3.0.210 76 2 months ago
3.0.209 224 2 months ago
3.0.208 86 2 months ago
3.0.207 84 2 months ago
3.0.206 629 2 months ago
3.0.205 112 2 months ago
3.0.204 159 2 months ago
3.0.203 108 2 months ago
3.0.202 186 2 months ago
3.0.201 88 2 months ago
3.0.200 85 2 months ago
3.0.199 170 2 months ago
3.0.198 84 2 months ago
3.0.197 88 2 months ago
3.0.196 390 3 months ago
3.0.195 167 3 months ago
3.0.194 99 3 months ago
3.0.193 117 3 months ago
3.0.192 202 3 months ago
3.0.191 92 3 months ago
3.0.190 97 3 months ago
3.0.189 103 3 months ago
3.0.188 91 3 months ago
3.0.187 94 3 months ago
3.0.186 95 3 months ago
3.0.185 88 3 months ago
3.0.184 147 3 months ago
3.0.183 100 3 months ago
3.0.182 386 3 months ago
3.0.181 85 3 months ago
3.0.180 246 3 months ago
3.0.179 145 3 months ago
3.0.178 89 3 months ago
3.0.177 91 3 months ago
3.0.176 90 3 months ago
3.0.175 82 3 months ago
3.0.174 111 3 months ago
3.0.173 348 3 months ago
3.0.172 107 3 months ago
3.0.171 146 3 months ago
3.0.170 89 3 months ago
3.0.169 417 3 months ago
3.0.168 186 3 months ago
3.0.167 116 3 months ago
3.0.166 95 3 months ago
3.0.165 179 3 months ago
3.0.164 84 3 months ago
3.0.163 174 3 months ago
3.0.162 78 3 months ago
3.0.161 121 3 months ago
3.0.160 96 3 months ago
3.0.159 153 3 months ago
3.0.158 167 3 months ago
3.0.157 91 3 months ago
3.0.156 263 3 months ago
3.0.155 108 3 months ago
3.0.154 249 3 months ago
3.0.153 90 3 months ago
3.0.152 87 3 months ago
3.0.151 200 3 months ago
3.0.150 94 3 months ago
3.0.149 89 3 months ago
3.0.148 84 3 months ago
3.0.147 268 3 months ago
3.0.146 91 3 months ago
3.0.145 100 3 months ago
3.0.144 89 3 months ago
3.0.143 254 3 months ago
3.0.142 89 3 months ago
3.0.141 100 3 months ago
3.0.140 85 3 months ago
3.0.139 90 3 months ago
3.0.138 83 3 months ago
3.0.137 86 3 months ago
3.0.136 91 3 months ago
3.0.135 277 3 months ago
3.0.134 173 3 months ago
3.0.133 86 3 months ago
3.0.132 89 3 months ago
3.0.131 79 3 months ago
3.0.130 234 3 months ago
3.0.129 86 3 months ago
3.0.128 138 3 months ago
3.0.127 81 3 months ago
3.0.126 163 3 months ago
3.0.125 86 3 months ago
3.0.124 186 3 months ago
3.0.123 164 3 months ago
3.0.122 90 3 months ago
3.0.121 163 3 months ago
3.0.120 187 3 months ago
3.0.119 162 3 months ago
3.0.118 95 3 months ago
3.0.117 142 3 months ago
3.0.116 88 3 months ago
3.0.115 136 3 months ago
3.0.114 193 3 months ago
3.0.113 105 3 months ago
3.0.112 68 3 months ago
3.0.111 204 3 months ago
3.0.110 286 3 months ago
3.0.109 88 3 months ago
3.0.108 170 3 months ago
3.0.107 89 3 months ago
3.0.106 172 3 months ago
3.0.105 210 3 months ago
3.0.104 85 3 months ago
3.0.103 287 3 months ago
3.0.102 111 3 months ago
3.0.101 108 3 months ago
3.0.100 104 3 months ago
3.0.99 107 3 months ago
3.0.97 132 3 months ago
3.0.96 113 3 months ago
3.0.95 90 3 months ago
3.0.94 92 3 months ago
3.0.93 93 3 months ago
3.0.92 93 3 months ago
3.0.91 128 3 months ago
3.0.90 119 3 months ago
3.0.89 116 3 months ago
3.0.88 671 3 months ago
3.0.87 132 3 months ago
3.0.86 136 3 months ago
3.0.85 181 3 months ago
3.0.84 115 3 months ago
3.0.83 138 3 months ago
3.0.82 196 3 months ago
3.0.81 182 3 months ago
3.0.80 164 3 months ago
3.0.79 93 3 months ago
3.0.78 187 3 months ago
3.0.77 188 3 months ago
3.0.76 149 3 months ago
3.0.75 81 3 months ago
3.0.74 134 3 months ago
3.0.73 80 3 months ago
3.0.72 352 3 months ago
3.0.71 142 3 months ago
3.0.70 160 3 months ago
3.0.69 87 3 months ago
3.0.68 163 3 months ago
3.0.67 207 4 months ago
3.0.66 89 4 months ago
3.0.65 245 4 months ago
3.0.64 124 4 months ago
3.0.63 196 4 months ago
3.0.62 166 4 months ago
3.0.61 253 4 months ago
3.0.60 103 4 months ago
3.0.59 253 4 months ago
3.0.58 95 4 months ago
3.0.57 117 4 months ago
3.0.56 94 4 months ago
3.0.55 96 4 months ago
3.0.54 106 4 months ago
3.0.53 101 4 months ago
3.0.52 93 4 months ago
3.0.51 89 4 months ago
3.0.50 378 4 months ago
3.0.49 83 4 months ago
3.0.48 302 4 months ago
3.0.47 89 4 months ago
3.0.46 93 4 months ago
3.0.45 290 4 months ago
3.0.44 136 4 months ago
3.0.43 91 4 months ago
3.0.42 88 4 months ago
3.0.41 137 4 months ago
3.0.40 105 4 months ago
3.0.39 215 4 months ago
3.0.38 312 4 months ago
3.0.37 157 4 months ago
3.0.36 92 4 months ago
3.0.35 94 4 months ago
3.0.34 139 4 months ago
3.0.33 95 4 months ago
3.0.32 191 4 months ago
2.1.31 293 4 months ago
2.1.30 180 4 months ago
2.1.29 256 4 months ago
2.1.28 143 4 months ago
2.1.27 87 4 months ago
2.1.26 647 4 months ago
2.1.25 179 4 months ago
2.1.24 339 4 months ago
2.1.23 103 4 months ago
2.1.22 93 4 months ago
2.1.21 288 4 months ago
2.1.20 232 4 months ago
2.1.19 261 4 months ago
2.1.18 332 5 months ago
2.1.17 93 5 months ago
2.1.16 321 5 months ago
2.1.14 109 5 months ago
2.1.13 258 5 months ago
2.1.12 144 5 months ago
2.1.11 413 5 months ago
2.1.10 255 5 months ago
2.1.9 94 5 months ago
2.1.8 124 5 months ago
2.1.7 355 5 months ago
2.1.6 114 5 months ago
2.1.5 260 5 months ago
2.1.4 116 5 months ago
2.1.3 92 5 months ago
2.1.2 101 5 months ago
2.1.1 121 5 months ago