Soenneker.Utils.RateLimiting.Executor 3.0.361

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.361
                    
NuGet\Install-Package Soenneker.Utils.RateLimiting.Executor -Version 3.0.361
                    
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.361" />
                    
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.361" />
                    
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.361
                    
#r "nuget: Soenneker.Utils.RateLimiting.Executor, 3.0.361"
                    
#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.361
                    
Install Soenneker.Utils.RateLimiting.Executor as a Cake Addin
#tool nuget:?package=Soenneker.Utils.RateLimiting.Executor&version=3.0.361
                    
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 209 5/27/2025
3.0.418 131 5/27/2025
3.0.417 187 5/27/2025
3.0.416 441 5/23/2025
3.0.415 126 5/23/2025
3.0.414 133 5/22/2025
3.0.413 682 5/8/2025
3.0.412 146 5/7/2025
3.0.411 137 5/7/2025
3.0.410 419 5/5/2025
3.0.409 225 5/5/2025
3.0.408 132 5/5/2025
3.0.407 188 5/5/2025
3.0.406 141 5/5/2025
3.0.405 770 4/8/2025
3.0.404 151 4/8/2025
3.0.403 152 4/8/2025
3.0.402 414 4/8/2025
3.0.401 170 4/8/2025
3.0.400 154 4/8/2025
3.0.399 165 4/8/2025
3.0.398 152 4/8/2025
3.0.397 476 4/7/2025
3.0.396 162 4/7/2025
3.0.395 215 4/7/2025
3.0.394 318 4/7/2025
3.0.393 166 4/7/2025
3.0.392 164 4/7/2025
3.0.391 151 4/6/2025
3.0.390 154 4/6/2025
3.0.389 133 4/6/2025
3.0.388 124 4/6/2025
3.0.387 107 4/6/2025
3.0.386 101 4/6/2025
3.0.385 98 4/6/2025
3.0.384 103 4/6/2025
3.0.383 105 4/5/2025
3.0.382 82 4/5/2025
3.0.381 74 4/5/2025
3.0.380 82 4/5/2025
3.0.379 82 4/5/2025
3.0.378 80 4/5/2025
3.0.377 80 4/5/2025
3.0.376 99 4/4/2025
3.0.375 94 4/4/2025
3.0.374 1,349 4/3/2025
3.0.373 255 4/1/2025
3.0.372 189 4/1/2025
3.0.371 217 4/1/2025
3.0.370 190 3/31/2025
3.0.369 149 3/31/2025
3.0.368 216 3/31/2025
3.0.367 296 3/31/2025
3.0.366 168 3/29/2025
3.0.365 83 3/29/2025
3.0.364 113 3/29/2025
3.0.363 664 3/25/2025
3.0.362 488 3/25/2025
3.0.361 305 3/21/2025
3.0.360 159 3/21/2025
3.0.359 413 3/18/2025
3.0.358 229 3/18/2025
3.0.357 208 3/15/2025
3.0.356 61 3/15/2025
3.0.355 405 3/12/2025
3.0.354 183 3/12/2025
3.0.353 236 3/12/2025
3.0.352 167 3/11/2025
3.0.351 309 3/11/2025
3.0.350 229 3/11/2025
3.0.349 151 3/11/2025
3.0.348 409 3/11/2025
3.0.347 368 3/7/2025
3.0.346 335 3/7/2025
3.0.345 327 3/2/2025
3.0.344 140 3/2/2025
3.0.343 137 3/2/2025
3.0.342 91 3/2/2025
3.0.341 98 3/2/2025
3.0.340 209 3/2/2025
3.0.339 206 3/1/2025
3.0.338 86 3/1/2025
3.0.337 87 3/1/2025
3.0.336 412 3/1/2025
3.0.335 118 3/1/2025
3.0.334 76 3/1/2025
3.0.333 196 3/1/2025
3.0.332 82 3/1/2025
3.0.331 80 3/1/2025
3.0.330 306 2/25/2025
3.0.329 135 2/25/2025
3.0.328 176 2/25/2025
3.0.327 201 2/25/2025
3.0.326 153 2/25/2025
3.0.325 375 2/23/2025
3.0.324 148 2/23/2025
3.0.323 88 2/22/2025
3.0.322 352 2/22/2025
3.0.321 180 2/22/2025
3.0.320 130 2/22/2025
3.0.319 191 2/22/2025
3.0.318 91 2/21/2025
3.0.317 215 2/21/2025
3.0.316 265 2/21/2025
3.0.315 317 2/19/2025
3.0.314 127 2/19/2025
3.0.313 127 2/19/2025
3.0.312 104 2/18/2025
3.0.311 309 2/18/2025
3.0.310 165 2/18/2025
3.0.309 96 2/18/2025
3.0.308 448 2/14/2025
3.0.307 94 2/14/2025
3.0.306 172 2/13/2025
3.0.305 399 2/12/2025
3.0.304 115 2/12/2025
3.0.303 186 2/12/2025
3.0.302 188 2/11/2025
3.0.301 177 2/11/2025
3.0.300 305 2/11/2025
3.0.299 243 2/11/2025
3.0.298 94 2/11/2025
3.0.297 179 2/11/2025
3.0.296 196 2/10/2025
3.0.295 146 2/10/2025
3.0.294 193 2/10/2025
3.0.293 95 2/10/2025
3.0.292 99 2/10/2025
3.0.291 382 2/9/2025
3.0.290 109 2/8/2025
3.0.289 84 2/8/2025
3.0.288 88 2/8/2025
3.0.287 96 2/8/2025
3.0.286 314 2/8/2025
3.0.285 109 2/7/2025
3.0.284 141 2/7/2025
3.0.283 258 2/7/2025
3.0.282 94 2/7/2025
3.0.281 88 2/7/2025
3.0.280 88 2/7/2025
3.0.279 137 2/7/2025
3.0.278 87 2/7/2025
3.0.277 101 2/7/2025
3.0.276 379 2/6/2025
3.0.275 252 2/5/2025
3.0.274 164 2/5/2025
3.0.273 95 2/5/2025
3.0.272 106 2/5/2025
3.0.271 241 2/5/2025
3.0.270 102 2/5/2025
3.0.269 95 2/5/2025
3.0.268 505 1/28/2025
3.0.267 90 1/28/2025
3.0.266 104 1/28/2025
3.0.265 320 1/27/2025
3.0.264 98 1/27/2025
3.0.263 81 1/27/2025
3.0.262 77 1/27/2025
3.0.261 145 1/27/2025
3.0.260 102 1/27/2025
3.0.259 277 1/26/2025
3.0.258 104 1/26/2025
3.0.257 97 1/26/2025
3.0.256 80 1/26/2025
3.0.255 172 1/25/2025
3.0.254 206 1/25/2025
3.0.253 85 1/25/2025
3.0.252 83 1/25/2025
3.0.251 81 1/25/2025
3.0.250 198 1/25/2025
3.0.249 373 1/24/2025
3.0.248 125 1/24/2025
3.0.247 191 1/24/2025
3.0.246 150 1/24/2025
3.0.245 254 1/24/2025
3.0.244 186 1/23/2025
3.0.243 258 1/21/2025
3.0.242 94 1/21/2025
3.0.241 170 1/21/2025
3.0.240 97 1/21/2025
3.0.239 83 1/21/2025
3.0.238 279 1/21/2025
3.0.237 90 1/21/2025
3.0.236 85 1/21/2025
3.0.235 82 1/21/2025
3.0.234 86 1/21/2025
3.0.233 84 1/20/2025
3.0.232 100 1/20/2025
3.0.231 570 1/20/2025
3.0.230 94 1/20/2025
3.0.229 83 1/20/2025
3.0.228 239 1/20/2025
3.0.227 1,822 1/14/2025
3.0.226 64 1/14/2025
3.0.225 79 1/14/2025
3.0.224 139 1/14/2025
3.0.223 186 1/13/2025
3.0.222 174 1/13/2025
3.0.221 126 1/13/2025
3.0.220 77 1/13/2025
3.0.219 69 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 174 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 420 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