Soenneker.Utils.RateLimiting.Executor 3.0.51

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.51
                    
NuGet\Install-Package Soenneker.Utils.RateLimiting.Executor -Version 3.0.51
                    
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.51" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Soenneker.Utils.RateLimiting.Executor" Version="3.0.51" />
                    
Directory.Packages.props
<PackageReference Include="Soenneker.Utils.RateLimiting.Executor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Soenneker.Utils.RateLimiting.Executor --version 3.0.51
                    
#r "nuget: Soenneker.Utils.RateLimiting.Executor, 3.0.51"
                    
#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.
#:package Soenneker.Utils.RateLimiting.Executor@3.0.51
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Soenneker.Utils.RateLimiting.Executor&version=3.0.51
                    
Install as a Cake Addin
#tool nuget:?package=Soenneker.Utils.RateLimiting.Executor&version=3.0.51
                    
Install as a Cake Tool

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.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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.429 45 8/5/2025
3.0.428 254 7/9/2025
3.0.427 347 7/4/2025
3.0.426 260 7/3/2025
3.0.425 300 6/28/2025
3.0.424 148 6/27/2025
3.0.423 62 6/27/2025
3.0.422 75 6/27/2025
3.0.421 714 6/11/2025
3.0.420 456 6/3/2025
3.0.419 353 5/27/2025
3.0.418 147 5/27/2025
3.0.417 220 5/27/2025
3.0.416 471 5/23/2025
3.0.415 142 5/23/2025
3.0.414 158 5/22/2025
3.0.413 698 5/8/2025
3.0.412 164 5/7/2025
3.0.411 154 5/7/2025
3.0.410 435 5/5/2025
3.0.409 242 5/5/2025
3.0.408 144 5/5/2025
3.0.407 206 5/5/2025
3.0.406 160 5/5/2025
3.0.405 783 4/8/2025
3.0.404 166 4/8/2025
3.0.403 161 4/8/2025
3.0.402 426 4/8/2025
3.0.401 184 4/8/2025
3.0.400 170 4/8/2025
3.0.399 184 4/8/2025
3.0.398 171 4/8/2025
3.0.397 495 4/7/2025
3.0.396 177 4/7/2025
3.0.395 224 4/7/2025
3.0.394 326 4/7/2025
3.0.393 181 4/7/2025
3.0.392 186 4/7/2025
3.0.391 167 4/6/2025
3.0.390 166 4/6/2025
3.0.389 150 4/6/2025
3.0.388 141 4/6/2025
3.0.387 118 4/6/2025
3.0.386 119 4/6/2025
3.0.385 114 4/6/2025
3.0.384 116 4/6/2025
3.0.383 119 4/5/2025
3.0.382 101 4/5/2025
3.0.381 83 4/5/2025
3.0.380 101 4/5/2025
3.0.379 100 4/5/2025
3.0.378 94 4/5/2025
3.0.377 90 4/5/2025
3.0.376 126 4/4/2025
3.0.375 109 4/4/2025
3.0.374 1,367 4/3/2025
3.0.373 269 4/1/2025
3.0.372 202 4/1/2025
3.0.371 231 4/1/2025
3.0.370 205 3/31/2025
3.0.369 161 3/31/2025
3.0.368 233 3/31/2025
3.0.367 312 3/31/2025
3.0.366 187 3/29/2025
3.0.365 92 3/29/2025
3.0.364 127 3/29/2025
3.0.363 679 3/25/2025
3.0.362 506 3/25/2025
3.0.361 321 3/21/2025
3.0.360 173 3/21/2025
3.0.359 422 3/18/2025
3.0.358 244 3/18/2025
3.0.357 221 3/15/2025
3.0.356 72 3/15/2025
3.0.355 425 3/12/2025
3.0.354 194 3/12/2025
3.0.353 253 3/12/2025
3.0.352 184 3/11/2025
3.0.351 327 3/11/2025
3.0.350 240 3/11/2025
3.0.349 161 3/11/2025
3.0.348 426 3/11/2025
3.0.347 384 3/7/2025
3.0.346 349 3/7/2025
3.0.345 337 3/2/2025
3.0.344 153 3/2/2025
3.0.343 161 3/2/2025
3.0.342 101 3/2/2025
3.0.341 119 3/2/2025
3.0.340 222 3/2/2025
3.0.339 216 3/1/2025
3.0.338 105 3/1/2025
3.0.337 104 3/1/2025
3.0.336 420 3/1/2025
3.0.335 130 3/1/2025
3.0.334 89 3/1/2025
3.0.333 204 3/1/2025
3.0.332 97 3/1/2025
3.0.331 96 3/1/2025
3.0.330 319 2/25/2025
3.0.329 154 2/25/2025
3.0.328 191 2/25/2025
3.0.327 217 2/25/2025
3.0.326 163 2/25/2025
3.0.325 398 2/23/2025
3.0.324 164 2/23/2025
3.0.323 103 2/22/2025
3.0.322 372 2/22/2025
3.0.321 199 2/22/2025
3.0.320 143 2/22/2025
3.0.319 206 2/22/2025
3.0.318 104 2/21/2025
3.0.317 231 2/21/2025
3.0.316 273 2/21/2025
3.0.315 332 2/19/2025
3.0.314 141 2/19/2025
3.0.313 143 2/19/2025
3.0.312 117 2/18/2025
3.0.311 325 2/18/2025
3.0.310 179 2/18/2025
3.0.309 108 2/18/2025
3.0.308 463 2/14/2025
3.0.307 106 2/14/2025
3.0.306 198 2/13/2025
3.0.305 417 2/12/2025
3.0.304 127 2/12/2025
3.0.303 198 2/12/2025
3.0.302 208 2/11/2025
3.0.301 193 2/11/2025
3.0.300 316 2/11/2025
3.0.299 265 2/11/2025
3.0.298 112 2/11/2025
3.0.297 196 2/11/2025
3.0.296 206 2/10/2025
3.0.295 161 2/10/2025
3.0.294 207 2/10/2025
3.0.293 108 2/10/2025
3.0.292 108 2/10/2025
3.0.291 395 2/9/2025
3.0.290 122 2/8/2025
3.0.289 97 2/8/2025
3.0.288 101 2/8/2025
3.0.287 112 2/8/2025
3.0.286 331 2/8/2025
3.0.285 126 2/7/2025
3.0.284 158 2/7/2025
3.0.283 265 2/7/2025
3.0.282 102 2/7/2025
3.0.281 99 2/7/2025
3.0.280 98 2/7/2025
3.0.279 151 2/7/2025
3.0.278 105 2/7/2025
3.0.277 117 2/7/2025
3.0.276 391 2/6/2025
3.0.275 265 2/5/2025
3.0.274 173 2/5/2025
3.0.273 109 2/5/2025
3.0.272 125 2/5/2025
3.0.271 250 2/5/2025
3.0.270 117 2/5/2025
3.0.269 106 2/5/2025
3.0.268 523 1/28/2025
3.0.267 104 1/28/2025
3.0.266 114 1/28/2025
3.0.265 332 1/27/2025
3.0.264 122 1/27/2025
3.0.263 99 1/27/2025
3.0.262 89 1/27/2025
3.0.261 157 1/27/2025
3.0.260 113 1/27/2025
3.0.259 288 1/26/2025
3.0.258 116 1/26/2025
3.0.257 112 1/26/2025
3.0.256 90 1/26/2025
3.0.255 190 1/25/2025
3.0.254 221 1/25/2025
3.0.253 94 1/25/2025
3.0.252 102 1/25/2025
3.0.251 94 1/25/2025
3.0.250 206 1/25/2025
3.0.249 392 1/24/2025
3.0.248 139 1/24/2025
3.0.247 208 1/24/2025
3.0.246 163 1/24/2025
3.0.245 270 1/24/2025
3.0.244 204 1/23/2025
3.0.243 273 1/21/2025
3.0.242 112 1/21/2025
3.0.241 182 1/21/2025
3.0.240 110 1/21/2025
3.0.239 101 1/21/2025
3.0.238 294 1/21/2025
3.0.237 99 1/21/2025
3.0.236 99 1/21/2025
3.0.235 95 1/21/2025
3.0.234 103 1/21/2025
3.0.233 94 1/20/2025
3.0.232 115 1/20/2025
3.0.231 585 1/20/2025
3.0.230 104 1/20/2025
3.0.229 98 1/20/2025
3.0.228 246 1/20/2025
3.0.227 1,832 1/14/2025
3.0.226 80 1/14/2025
3.0.225 85 1/14/2025
3.0.224 159 1/14/2025
3.0.223 202 1/13/2025
3.0.222 184 1/13/2025
3.0.221 138 1/13/2025
3.0.220 93 1/13/2025
3.0.219 85 1/13/2025
3.0.218 235 1/12/2025
3.0.217 174 1/11/2025
3.0.216 150 1/11/2025
3.0.215 150 1/11/2025
3.0.214 111 1/11/2025
3.0.213 142 1/10/2025
3.0.212 108 1/10/2025
3.0.211 90 1/10/2025
3.0.210 101 1/10/2025
3.0.209 249 1/10/2025
3.0.208 107 1/10/2025
3.0.207 111 1/10/2025
3.0.206 650 1/3/2025
3.0.205 133 1/3/2025
3.0.204 172 1/3/2025
3.0.203 135 1/3/2025
3.0.202 210 1/2/2025
3.0.201 108 1/2/2025
3.0.200 109 1/2/2025
3.0.199 193 1/2/2025
3.0.198 109 1/2/2025
3.0.197 103 1/2/2025
3.0.196 420 1/1/2025
3.0.195 191 1/1/2025
3.0.194 118 1/1/2025
3.0.193 138 1/1/2025
3.0.192 221 1/1/2025
3.0.191 116 1/1/2025
3.0.190 115 1/1/2025
3.0.189 124 12/31/2024
3.0.188 111 12/31/2024
3.0.187 110 12/31/2024
3.0.186 115 12/31/2024
3.0.185 115 12/31/2024
3.0.184 169 12/31/2024
3.0.183 125 12/31/2024
3.0.182 406 12/31/2024
3.0.181 102 12/31/2024
3.0.180 268 12/31/2024
3.0.179 174 12/31/2024
3.0.178 110 12/31/2024
3.0.177 114 12/31/2024
3.0.176 111 12/31/2024
3.0.175 99 12/31/2024
3.0.174 130 12/30/2024
3.0.173 364 12/28/2024
3.0.172 127 12/28/2024
3.0.171 167 12/27/2024
3.0.170 104 12/27/2024
3.0.169 435 12/24/2024
3.0.168 211 12/24/2024
3.0.167 132 12/24/2024
3.0.166 110 12/24/2024
3.0.165 194 12/24/2024
3.0.164 98 12/24/2024
3.0.163 198 12/24/2024
3.0.162 91 12/24/2024
3.0.161 143 12/24/2024
3.0.160 114 12/23/2024
3.0.159 167 12/23/2024
3.0.158 186 12/23/2024
3.0.157 114 12/23/2024
3.0.156 280 12/23/2024
3.0.155 121 12/23/2024
3.0.154 271 12/22/2024
3.0.153 106 12/22/2024
3.0.152 111 12/22/2024
3.0.151 215 12/22/2024
3.0.150 113 12/22/2024
3.0.149 107 12/22/2024
3.0.148 102 12/22/2024
3.0.147 284 12/22/2024
3.0.146 108 12/22/2024
3.0.145 119 12/22/2024
3.0.144 116 12/22/2024
3.0.143 274 12/21/2024
3.0.142 109 12/21/2024
3.0.141 116 12/21/2024
3.0.140 104 12/21/2024
3.0.139 115 12/21/2024
3.0.138 105 12/21/2024
3.0.137 104 12/21/2024
3.0.136 112 12/21/2024
3.0.135 292 12/21/2024
3.0.134 197 12/21/2024
3.0.133 103 12/21/2024
3.0.132 107 12/21/2024
3.0.131 101 12/21/2024
3.0.130 250 12/21/2024
3.0.129 107 12/21/2024
3.0.128 167 12/20/2024
3.0.127 108 12/20/2024
3.0.126 190 12/20/2024
3.0.125 110 12/20/2024
3.0.124 214 12/20/2024
3.0.123 189 12/20/2024
3.0.122 120 12/20/2024
3.0.121 184 12/20/2024
3.0.120 206 12/19/2024
3.0.119 192 12/19/2024
3.0.118 112 12/19/2024
3.0.117 159 12/19/2024
3.0.116 103 12/18/2024
3.0.115 154 12/18/2024
3.0.114 220 12/17/2024
3.0.113 125 12/17/2024
3.0.112 94 12/17/2024
3.0.111 230 12/16/2024
3.0.110 315 12/10/2024
3.0.109 117 12/10/2024
3.0.108 184 12/10/2024
3.0.107 109 12/9/2024
3.0.106 187 12/9/2024
3.0.105 232 12/9/2024
3.0.104 108 12/9/2024
3.0.103 308 12/7/2024
3.0.102 132 12/6/2024
3.0.101 127 12/6/2024
3.0.100 125 12/6/2024
3.0.99 134 12/6/2024
3.0.97 159 12/6/2024
3.0.96 135 12/6/2024
3.0.95 119 12/6/2024
3.0.94 119 12/6/2024
3.0.93 114 12/6/2024
3.0.92 113 12/6/2024
3.0.91 151 12/6/2024
3.0.90 135 12/5/2024
3.0.89 140 12/5/2024
3.0.88 688 12/5/2024
3.0.87 157 12/5/2024
3.0.86 156 12/5/2024
3.0.85 204 12/5/2024
3.0.84 140 12/4/2024
3.0.83 159 12/4/2024
3.0.82 215 12/4/2024
3.0.81 214 12/4/2024
3.0.80 184 12/4/2024
3.0.79 112 12/3/2024
3.0.78 212 12/3/2024
3.0.77 203 12/3/2024
3.0.76 172 12/3/2024
3.0.75 105 12/3/2024
3.0.74 153 12/3/2024
3.0.73 107 12/3/2024
3.0.72 378 12/2/2024
3.0.71 166 12/2/2024
3.0.70 180 12/2/2024
3.0.69 107 12/2/2024
3.0.68 186 12/2/2024
3.0.67 235 12/1/2024
3.0.66 119 12/1/2024
3.0.65 267 12/1/2024
3.0.64 147 12/1/2024
3.0.63 221 11/29/2024
3.0.62 190 11/29/2024
3.0.61 269 11/21/2024
3.0.60 129 11/21/2024
3.0.59 272 11/20/2024
3.0.58 112 11/20/2024
3.0.57 138 11/20/2024
3.0.56 116 11/20/2024
3.0.55 113 11/20/2024
3.0.54 133 11/20/2024
3.0.53 120 11/19/2024
3.0.52 111 11/19/2024
3.0.51 107 11/19/2024
3.0.50 394 11/19/2024
3.0.49 105 11/19/2024
3.0.48 327 11/19/2024
3.0.47 105 11/19/2024
3.0.46 112 11/19/2024
3.0.45 314 11/15/2024
3.0.44 156 11/14/2024
3.0.43 113 11/14/2024
3.0.42 108 11/14/2024
3.0.41 154 11/14/2024
3.0.40 124 11/14/2024
3.0.39 233 11/14/2024
3.0.38 330 11/14/2024
3.0.37 176 11/14/2024
3.0.36 117 11/14/2024
3.0.35 108 11/14/2024
3.0.34 160 11/14/2024
3.0.33 122 11/14/2024
3.0.32 207 11/14/2024
2.1.31 314 11/13/2024
2.1.30 199 11/13/2024
2.1.29 275 11/13/2024
2.1.28 165 11/12/2024
2.1.27 104 11/12/2024
2.1.26 661 11/9/2024
2.1.25 203 11/9/2024
2.1.24 364 11/8/2024
2.1.23 125 11/8/2024
2.1.22 115 11/8/2024
2.1.21 307 11/8/2024
2.1.20 250 11/8/2024
2.1.19 280 11/6/2024
2.1.18 355 11/1/2024
2.1.17 118 11/1/2024
2.1.16 351 11/1/2024
2.1.14 125 10/29/2024
2.1.13 270 10/29/2024
2.1.12 167 10/29/2024
2.1.11 434 10/29/2024
2.1.10 276 10/28/2024
2.1.9 108 10/28/2024
2.1.8 147 10/28/2024
2.1.7 367 10/26/2024
2.1.6 132 10/26/2024
2.1.5 277 10/22/2024
2.1.4 129 10/22/2024
2.1.3 113 10/22/2024
2.1.2 118 10/22/2024
2.1.1 136 10/22/2024