Soenneker.Utils.RateLimiting.Executor 3.0.359

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.359
                    
NuGet\Install-Package Soenneker.Utils.RateLimiting.Executor -Version 3.0.359
                    
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.359" />
                    
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.359" />
                    
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.359
                    
#r "nuget: Soenneker.Utils.RateLimiting.Executor, 3.0.359"
                    
#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.
#addin nuget:?package=Soenneker.Utils.RateLimiting.Executor&version=3.0.359
                    
Install Soenneker.Utils.RateLimiting.Executor as a Cake Addin
#tool nuget:?package=Soenneker.Utils.RateLimiting.Executor&version=3.0.359
                    
Install Soenneker.Utils.RateLimiting.Executor 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.419 208 5/27/2025
3.0.418 130 5/27/2025
3.0.417 186 5/27/2025
3.0.416 440 5/23/2025
3.0.415 124 5/23/2025
3.0.414 132 5/22/2025
3.0.413 681 5/8/2025
3.0.412 145 5/7/2025
3.0.411 136 5/7/2025
3.0.410 418 5/5/2025
3.0.409 224 5/5/2025
3.0.408 131 5/5/2025
3.0.407 187 5/5/2025
3.0.406 140 5/5/2025
3.0.405 769 4/8/2025
3.0.404 150 4/8/2025
3.0.403 151 4/8/2025
3.0.402 413 4/8/2025
3.0.401 169 4/8/2025
3.0.400 153 4/8/2025
3.0.399 164 4/8/2025
3.0.398 151 4/8/2025
3.0.397 475 4/7/2025
3.0.396 161 4/7/2025
3.0.395 214 4/7/2025
3.0.394 317 4/7/2025
3.0.393 165 4/7/2025
3.0.392 163 4/7/2025
3.0.391 150 4/6/2025
3.0.390 153 4/6/2025
3.0.389 132 4/6/2025
3.0.388 123 4/6/2025
3.0.387 106 4/6/2025
3.0.386 100 4/6/2025
3.0.385 97 4/6/2025
3.0.384 102 4/6/2025
3.0.383 104 4/5/2025
3.0.382 81 4/5/2025
3.0.381 73 4/5/2025
3.0.380 81 4/5/2025
3.0.379 81 4/5/2025
3.0.378 79 4/5/2025
3.0.377 79 4/5/2025
3.0.376 98 4/4/2025
3.0.375 93 4/4/2025
3.0.374 1,348 4/3/2025
3.0.373 254 4/1/2025
3.0.372 188 4/1/2025
3.0.371 216 4/1/2025
3.0.370 189 3/31/2025
3.0.369 148 3/31/2025
3.0.368 215 3/31/2025
3.0.367 295 3/31/2025
3.0.366 167 3/29/2025
3.0.365 82 3/29/2025
3.0.364 112 3/29/2025
3.0.363 663 3/25/2025
3.0.362 487 3/25/2025
3.0.361 303 3/21/2025
3.0.360 158 3/21/2025
3.0.359 412 3/18/2025
3.0.358 228 3/18/2025
3.0.357 207 3/15/2025
3.0.356 60 3/15/2025
3.0.355 404 3/12/2025
3.0.354 182 3/12/2025
3.0.353 235 3/12/2025
3.0.352 166 3/11/2025
3.0.351 308 3/11/2025
3.0.350 228 3/11/2025
3.0.349 150 3/11/2025
3.0.348 408 3/11/2025
3.0.347 367 3/7/2025
3.0.346 334 3/7/2025
3.0.345 326 3/2/2025
3.0.344 139 3/2/2025
3.0.343 136 3/2/2025
3.0.342 90 3/2/2025
3.0.341 97 3/2/2025
3.0.340 207 3/2/2025
3.0.339 205 3/1/2025
3.0.338 85 3/1/2025
3.0.337 86 3/1/2025
3.0.336 411 3/1/2025
3.0.335 117 3/1/2025
3.0.334 75 3/1/2025
3.0.333 195 3/1/2025
3.0.332 81 3/1/2025
3.0.331 79 3/1/2025
3.0.330 304 2/25/2025
3.0.329 134 2/25/2025
3.0.328 175 2/25/2025
3.0.327 200 2/25/2025
3.0.326 152 2/25/2025
3.0.325 374 2/23/2025
3.0.324 147 2/23/2025
3.0.323 87 2/22/2025
3.0.322 351 2/22/2025
3.0.321 179 2/22/2025
3.0.320 129 2/22/2025
3.0.319 190 2/22/2025
3.0.318 90 2/21/2025
3.0.317 214 2/21/2025
3.0.316 264 2/21/2025
3.0.315 316 2/19/2025
3.0.314 126 2/19/2025
3.0.313 126 2/19/2025
3.0.312 103 2/18/2025
3.0.311 308 2/18/2025
3.0.310 164 2/18/2025
3.0.309 95 2/18/2025
3.0.308 447 2/14/2025
3.0.307 93 2/14/2025
3.0.306 171 2/13/2025
3.0.305 398 2/12/2025
3.0.304 114 2/12/2025
3.0.303 185 2/12/2025
3.0.302 187 2/11/2025
3.0.301 176 2/11/2025
3.0.300 304 2/11/2025
3.0.299 242 2/11/2025
3.0.298 93 2/11/2025
3.0.297 178 2/11/2025
3.0.296 195 2/10/2025
3.0.295 145 2/10/2025
3.0.294 192 2/10/2025
3.0.293 94 2/10/2025
3.0.292 98 2/10/2025
3.0.291 381 2/9/2025
3.0.290 108 2/8/2025
3.0.289 83 2/8/2025
3.0.288 87 2/8/2025
3.0.287 95 2/8/2025
3.0.286 313 2/8/2025
3.0.285 108 2/7/2025
3.0.284 140 2/7/2025
3.0.283 257 2/7/2025
3.0.282 93 2/7/2025
3.0.281 87 2/7/2025
3.0.280 87 2/7/2025
3.0.279 136 2/7/2025
3.0.278 86 2/7/2025
3.0.277 100 2/7/2025
3.0.276 378 2/6/2025
3.0.275 251 2/5/2025
3.0.274 163 2/5/2025
3.0.273 94 2/5/2025
3.0.272 105 2/5/2025
3.0.271 240 2/5/2025
3.0.270 101 2/5/2025
3.0.269 94 2/5/2025
3.0.268 504 1/28/2025
3.0.267 89 1/28/2025
3.0.266 103 1/28/2025
3.0.265 319 1/27/2025
3.0.264 97 1/27/2025
3.0.263 80 1/27/2025
3.0.262 76 1/27/2025
3.0.261 144 1/27/2025
3.0.260 101 1/27/2025
3.0.259 276 1/26/2025
3.0.258 103 1/26/2025
3.0.257 96 1/26/2025
3.0.256 79 1/26/2025
3.0.255 171 1/25/2025
3.0.254 205 1/25/2025
3.0.253 84 1/25/2025
3.0.252 82 1/25/2025
3.0.251 80 1/25/2025
3.0.250 197 1/25/2025
3.0.249 372 1/24/2025
3.0.248 124 1/24/2025
3.0.247 190 1/24/2025
3.0.246 149 1/24/2025
3.0.245 253 1/24/2025
3.0.244 185 1/23/2025
3.0.243 257 1/21/2025
3.0.242 93 1/21/2025
3.0.241 169 1/21/2025
3.0.240 96 1/21/2025
3.0.239 82 1/21/2025
3.0.238 278 1/21/2025
3.0.237 89 1/21/2025
3.0.236 84 1/21/2025
3.0.235 81 1/21/2025
3.0.234 85 1/21/2025
3.0.233 83 1/20/2025
3.0.232 99 1/20/2025
3.0.231 569 1/20/2025
3.0.230 93 1/20/2025
3.0.229 82 1/20/2025
3.0.228 238 1/20/2025
3.0.227 1,821 1/14/2025
3.0.226 63 1/14/2025
3.0.225 78 1/14/2025
3.0.224 138 1/14/2025
3.0.223 185 1/13/2025
3.0.222 173 1/13/2025
3.0.221 125 1/13/2025
3.0.220 76 1/13/2025
3.0.219 68 1/13/2025
3.0.218 216 1/12/2025
3.0.217 156 1/11/2025
3.0.216 129 1/11/2025
3.0.215 134 1/11/2025
3.0.214 90 1/11/2025
3.0.213 131 1/10/2025
3.0.212 91 1/10/2025
3.0.211 83 1/10/2025
3.0.210 85 1/10/2025
3.0.209 237 1/10/2025
3.0.208 93 1/10/2025
3.0.207 91 1/10/2025
3.0.206 636 1/3/2025
3.0.205 118 1/3/2025
3.0.204 165 1/3/2025
3.0.203 114 1/3/2025
3.0.202 192 1/2/2025
3.0.201 95 1/2/2025
3.0.200 93 1/2/2025
3.0.199 176 1/2/2025
3.0.198 90 1/2/2025
3.0.197 94 1/2/2025
3.0.196 397 1/1/2025
3.0.195 175 1/1/2025
3.0.194 105 1/1/2025
3.0.193 123 1/1/2025
3.0.192 208 1/1/2025
3.0.191 98 1/1/2025
3.0.190 103 1/1/2025
3.0.189 109 12/31/2024
3.0.188 97 12/31/2024
3.0.187 101 12/31/2024
3.0.186 102 12/31/2024
3.0.185 94 12/31/2024
3.0.184 155 12/31/2024
3.0.183 108 12/31/2024
3.0.182 392 12/31/2024
3.0.181 91 12/31/2024
3.0.180 252 12/31/2024
3.0.179 151 12/31/2024
3.0.178 96 12/31/2024
3.0.177 99 12/31/2024
3.0.176 97 12/31/2024
3.0.175 89 12/31/2024
3.0.174 120 12/30/2024
3.0.173 353 12/28/2024
3.0.172 113 12/28/2024
3.0.171 153 12/27/2024
3.0.170 96 12/27/2024
3.0.169 423 12/24/2024
3.0.168 192 12/24/2024
3.0.167 123 12/24/2024
3.0.166 102 12/24/2024
3.0.165 186 12/24/2024
3.0.164 91 12/24/2024
3.0.163 180 12/24/2024
3.0.162 84 12/24/2024
3.0.161 127 12/24/2024
3.0.160 102 12/23/2024
3.0.159 161 12/23/2024
3.0.158 174 12/23/2024
3.0.157 98 12/23/2024
3.0.156 269 12/23/2024
3.0.155 114 12/23/2024
3.0.154 255 12/22/2024
3.0.153 97 12/22/2024
3.0.152 94 12/22/2024
3.0.151 206 12/22/2024
3.0.150 101 12/22/2024
3.0.149 96 12/22/2024
3.0.148 90 12/22/2024
3.0.147 275 12/22/2024
3.0.146 98 12/22/2024
3.0.145 107 12/22/2024
3.0.144 98 12/22/2024
3.0.143 261 12/21/2024
3.0.142 95 12/21/2024
3.0.141 107 12/21/2024
3.0.140 92 12/21/2024
3.0.139 96 12/21/2024
3.0.138 89 12/21/2024
3.0.137 92 12/21/2024
3.0.136 98 12/21/2024
3.0.135 284 12/21/2024
3.0.134 179 12/21/2024
3.0.133 92 12/21/2024
3.0.132 95 12/21/2024
3.0.131 85 12/21/2024
3.0.130 242 12/21/2024
3.0.129 93 12/21/2024
3.0.128 146 12/20/2024
3.0.127 88 12/20/2024
3.0.126 169 12/20/2024
3.0.125 92 12/20/2024
3.0.124 192 12/20/2024
3.0.123 170 12/20/2024
3.0.122 96 12/20/2024
3.0.121 169 12/20/2024
3.0.120 194 12/19/2024
3.0.119 170 12/19/2024
3.0.118 103 12/19/2024
3.0.117 149 12/19/2024
3.0.116 96 12/18/2024
3.0.115 144 12/18/2024
3.0.114 200 12/17/2024
3.0.113 112 12/17/2024
3.0.112 75 12/17/2024
3.0.111 213 12/16/2024
3.0.110 293 12/10/2024
3.0.109 98 12/10/2024
3.0.108 177 12/10/2024
3.0.107 96 12/9/2024
3.0.106 179 12/9/2024
3.0.105 218 12/9/2024
3.0.104 94 12/9/2024
3.0.103 295 12/7/2024
3.0.102 118 12/6/2024
3.0.101 117 12/6/2024
3.0.100 111 12/6/2024
3.0.99 114 12/6/2024
3.0.97 140 12/6/2024
3.0.96 120 12/6/2024
3.0.95 98 12/6/2024
3.0.94 101 12/6/2024
3.0.93 101 12/6/2024
3.0.92 101 12/6/2024
3.0.91 136 12/6/2024
3.0.90 127 12/5/2024
3.0.89 124 12/5/2024
3.0.88 678 12/5/2024
3.0.87 139 12/5/2024
3.0.86 144 12/5/2024
3.0.85 190 12/5/2024
3.0.84 123 12/4/2024
3.0.83 145 12/4/2024
3.0.82 203 12/4/2024
3.0.81 190 12/4/2024
3.0.80 172 12/4/2024
3.0.79 100 12/3/2024
3.0.78 195 12/3/2024
3.0.77 195 12/3/2024
3.0.76 157 12/3/2024
3.0.75 89 12/3/2024
3.0.74 143 12/3/2024
3.0.73 88 12/3/2024
3.0.72 365 12/2/2024
3.0.71 153 12/2/2024
3.0.70 170 12/2/2024
3.0.69 97 12/2/2024
3.0.68 172 12/2/2024
3.0.67 218 12/1/2024
3.0.66 99 12/1/2024
3.0.65 254 12/1/2024
3.0.64 132 12/1/2024
3.0.63 204 11/29/2024
3.0.62 174 11/29/2024
3.0.61 261 11/21/2024
3.0.60 113 11/21/2024
3.0.59 262 11/20/2024
3.0.58 104 11/20/2024
3.0.57 125 11/20/2024
3.0.56 103 11/20/2024
3.0.55 104 11/20/2024
3.0.54 116 11/20/2024
3.0.53 111 11/19/2024
3.0.52 103 11/19/2024
3.0.51 99 11/19/2024
3.0.50 386 11/19/2024
3.0.49 91 11/19/2024
3.0.48 311 11/19/2024
3.0.47 97 11/19/2024
3.0.46 101 11/19/2024
3.0.45 298 11/15/2024
3.0.44 144 11/14/2024
3.0.43 98 11/14/2024
3.0.42 97 11/14/2024
3.0.41 143 11/14/2024
3.0.40 111 11/14/2024
3.0.39 222 11/14/2024
3.0.38 319 11/14/2024
3.0.37 165 11/14/2024
3.0.36 99 11/14/2024
3.0.35 101 11/14/2024
3.0.34 146 11/14/2024
3.0.33 103 11/14/2024
3.0.32 197 11/14/2024
2.1.31 299 11/13/2024
2.1.30 186 11/13/2024
2.1.29 263 11/13/2024
2.1.28 149 11/12/2024
2.1.27 93 11/12/2024
2.1.26 655 11/9/2024
2.1.25 185 11/9/2024
2.1.24 346 11/8/2024
2.1.23 110 11/8/2024
2.1.22 101 11/8/2024
2.1.21 294 11/8/2024
2.1.20 239 11/8/2024
2.1.19 267 11/6/2024
2.1.18 339 11/1/2024
2.1.17 100 11/1/2024
2.1.16 328 11/1/2024
2.1.14 115 10/29/2024
2.1.13 263 10/29/2024
2.1.12 150 10/29/2024
2.1.11 419 10/29/2024
2.1.10 262 10/28/2024
2.1.9 100 10/28/2024
2.1.8 129 10/28/2024
2.1.7 361 10/26/2024
2.1.6 119 10/26/2024
2.1.5 265 10/22/2024
2.1.4 121 10/22/2024
2.1.3 97 10/22/2024
2.1.2 106 10/22/2024
2.1.1 126 10/22/2024