Soenneker.Utils.RateLimiting.Executor 3.0.378

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.378
                    
NuGet\Install-Package Soenneker.Utils.RateLimiting.Executor -Version 3.0.378
                    
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.378" />
                    
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.378" />
                    
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.378
                    
#r "nuget: Soenneker.Utils.RateLimiting.Executor, 3.0.378"
                    
#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.378
                    
Install Soenneker.Utils.RateLimiting.Executor as a Cake Addin
#tool nuget:?package=Soenneker.Utils.RateLimiting.Executor&version=3.0.378
                    
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. 
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.405 245 3 days ago
3.0.404 90 3 days ago
3.0.403 97 3 days ago
3.0.402 305 3 days ago
3.0.401 120 3 days ago
3.0.400 100 4 days ago
3.0.399 113 4 days ago
3.0.398 101 4 days ago
3.0.397 417 4 days ago
3.0.396 108 4 days ago
3.0.395 163 4 days ago
3.0.394 267 4 days ago
3.0.393 110 4 days ago
3.0.392 112 5 days ago
3.0.391 94 5 days ago
3.0.390 101 5 days ago
3.0.389 101 5 days ago
3.0.388 97 5 days ago
3.0.387 98 5 days ago
3.0.386 93 5 days ago
3.0.385 89 6 days ago
3.0.384 93 6 days ago
3.0.383 91 6 days ago
3.0.382 73 6 days ago
3.0.381 62 6 days ago
3.0.380 70 6 days ago
3.0.379 68 6 days ago
3.0.378 69 7 days ago
3.0.377 70 7 days ago
3.0.376 88 7 days ago
3.0.375 80 7 days ago
3.0.374 1,340 8 days ago
3.0.373 248 10 days ago
3.0.372 179 10 days ago
3.0.371 209 10 days ago
3.0.370 185 11 days ago
3.0.369 144 11 days ago
3.0.368 211 11 days ago
3.0.367 291 11 days ago
3.0.366 161 13 days ago
3.0.365 76 13 days ago
3.0.364 105 13 days ago
3.0.363 656 17 days ago
3.0.362 480 17 days ago
3.0.361 295 21 days ago
3.0.360 154 22 days ago
3.0.359 409 24 days ago
3.0.358 225 24 days ago
3.0.357 204 a month ago
3.0.356 57 a month ago
3.0.355 400 a month ago
3.0.354 176 a month ago
3.0.353 232 a month ago
3.0.352 162 a month ago
3.0.351 305 a month ago
3.0.350 225 a month ago
3.0.349 147 a month ago
3.0.348 405 a month ago
3.0.347 364 a month ago
3.0.346 331 a month ago
3.0.345 323 a month ago
3.0.344 135 a month ago
3.0.343 133 a month ago
3.0.342 86 a month ago
3.0.341 93 a month ago
3.0.340 204 a month ago
3.0.339 202 a month ago
3.0.338 82 a month ago
3.0.337 82 a month ago
3.0.336 408 a month ago
3.0.335 114 a month ago
3.0.334 72 a month ago
3.0.333 192 a month ago
3.0.332 78 a month ago
3.0.331 76 a month ago
3.0.330 301 2 months ago
3.0.329 130 2 months ago
3.0.328 172 2 months ago
3.0.327 197 2 months ago
3.0.326 149 2 months ago
3.0.325 371 2 months ago
3.0.324 144 2 months ago
3.0.323 84 2 months ago
3.0.322 348 2 months ago
3.0.321 176 2 months ago
3.0.320 126 2 months ago
3.0.319 187 2 months ago
3.0.318 87 2 months ago
3.0.317 210 2 months ago
3.0.316 261 2 months ago
3.0.315 312 2 months ago
3.0.314 122 2 months ago
3.0.313 123 2 months ago
3.0.312 100 2 months ago
3.0.311 305 2 months ago
3.0.310 161 2 months ago
3.0.309 92 2 months ago
3.0.308 443 2 months ago
3.0.307 89 2 months ago
3.0.306 168 2 months ago
3.0.305 394 2 months ago
3.0.304 111 2 months ago
3.0.303 182 2 months ago
3.0.302 184 2 months ago
3.0.301 173 2 months ago
3.0.300 301 2 months ago
3.0.299 238 2 months ago
3.0.298 90 2 months ago
3.0.297 175 2 months ago
3.0.296 192 2 months ago
3.0.295 141 2 months ago
3.0.294 188 2 months ago
3.0.293 90 2 months ago
3.0.292 94 2 months ago
3.0.291 377 2 months ago
3.0.290 104 2 months ago
3.0.289 80 2 months ago
3.0.288 84 2 months ago
3.0.287 92 2 months ago
3.0.286 310 2 months ago
3.0.285 105 2 months ago
3.0.284 137 2 months ago
3.0.283 253 2 months ago
3.0.282 90 2 months ago
3.0.281 84 2 months ago
3.0.280 83 2 months ago
3.0.279 133 2 months ago
3.0.278 81 2 months ago
3.0.277 97 2 months ago
3.0.276 375 2 months ago
3.0.275 248 2 months ago
3.0.274 160 2 months ago
3.0.273 91 2 months ago
3.0.272 102 2 months ago
3.0.271 236 2 months ago
3.0.270 96 2 months ago
3.0.269 91 2 months ago
3.0.268 500 2 months ago
3.0.267 87 2 months ago
3.0.266 101 2 months ago
3.0.265 315 2 months ago
3.0.264 95 2 months ago
3.0.263 77 2 months ago
3.0.262 73 2 months ago
3.0.261 142 2 months ago
3.0.260 99 2 months ago
3.0.259 274 3 months ago
3.0.258 100 3 months ago
3.0.257 94 3 months ago
3.0.256 77 3 months ago
3.0.255 169 3 months ago
3.0.254 203 3 months ago
3.0.253 82 3 months ago
3.0.252 78 3 months ago
3.0.251 77 3 months ago
3.0.250 195 3 months ago
3.0.249 370 3 months ago
3.0.248 121 3 months ago
3.0.247 188 3 months ago
3.0.246 147 3 months ago
3.0.245 250 3 months ago
3.0.244 183 3 months ago
3.0.243 255 3 months ago
3.0.242 89 3 months ago
3.0.241 167 3 months ago
3.0.240 94 3 months ago
3.0.239 80 3 months ago
3.0.238 276 3 months ago
3.0.237 87 3 months ago
3.0.236 82 3 months ago
3.0.235 78 3 months ago
3.0.234 83 3 months ago
3.0.233 81 3 months ago
3.0.232 97 3 months ago
3.0.231 565 3 months ago
3.0.230 91 3 months ago
3.0.229 80 3 months ago
3.0.228 235 3 months ago
3.0.227 1,819 3 months ago
3.0.226 61 3 months ago
3.0.225 76 3 months ago
3.0.224 134 3 months ago
3.0.223 183 3 months ago
3.0.222 171 3 months ago
3.0.221 120 3 months ago
3.0.220 74 3 months ago
3.0.219 65 3 months ago
3.0.218 210 3 months ago
3.0.217 153 3 months ago
3.0.216 126 3 months ago
3.0.215 131 3 months ago
3.0.214 84 3 months ago
3.0.213 128 3 months ago
3.0.212 85 3 months ago
3.0.211 77 3 months ago
3.0.210 79 3 months ago
3.0.209 227 3 months ago
3.0.208 89 3 months ago
3.0.207 87 3 months ago
3.0.206 632 3 months ago
3.0.205 115 3 months ago
3.0.204 162 3 months ago
3.0.203 111 3 months ago
3.0.202 189 3 months ago
3.0.201 91 3 months ago
3.0.200 88 3 months ago
3.0.199 173 3 months ago
3.0.198 87 3 months ago
3.0.197 91 3 months ago
3.0.196 393 3 months ago
3.0.195 170 3 months ago
3.0.194 102 3 months ago
3.0.193 120 3 months ago
3.0.192 205 3 months ago
3.0.191 95 3 months ago
3.0.190 100 3 months ago
3.0.189 106 3 months ago
3.0.188 94 3 months ago
3.0.187 98 3 months ago
3.0.186 99 3 months ago
3.0.185 91 3 months ago
3.0.184 151 3 months ago
3.0.183 104 3 months ago
3.0.182 389 3 months ago
3.0.181 88 3 months ago
3.0.180 249 3 months ago
3.0.179 148 3 months ago
3.0.178 92 3 months ago
3.0.177 95 3 months ago
3.0.176 94 3 months ago
3.0.175 86 3 months ago
3.0.174 115 3 months ago
3.0.173 350 3 months ago
3.0.172 109 3 months ago
3.0.171 149 3 months ago
3.0.170 92 3 months ago
3.0.169 419 4 months ago
3.0.168 188 4 months ago
3.0.167 119 4 months ago
3.0.166 97 4 months ago
3.0.165 182 4 months ago
3.0.164 86 4 months ago
3.0.163 176 4 months ago
3.0.162 80 4 months ago
3.0.161 123 4 months ago
3.0.160 98 4 months ago
3.0.159 156 4 months ago
3.0.158 169 4 months ago
3.0.157 94 4 months ago
3.0.156 265 4 months ago
3.0.155 110 4 months ago
3.0.154 251 4 months ago
3.0.153 92 4 months ago
3.0.152 89 4 months ago
3.0.151 202 4 months ago
3.0.150 96 4 months ago
3.0.149 91 4 months ago
3.0.148 86 4 months ago
3.0.147 270 4 months ago
3.0.146 94 4 months ago
3.0.145 103 4 months ago
3.0.144 92 4 months ago
3.0.143 256 4 months ago
3.0.142 91 4 months ago
3.0.141 103 4 months ago
3.0.140 88 4 months ago
3.0.139 92 4 months ago
3.0.138 85 4 months ago
3.0.137 88 4 months ago
3.0.136 93 4 months ago
3.0.135 280 4 months ago
3.0.134 175 4 months ago
3.0.133 88 4 months ago
3.0.132 91 4 months ago
3.0.131 81 4 months ago
3.0.130 237 4 months ago
3.0.129 89 4 months ago
3.0.128 141 4 months ago
3.0.127 84 4 months ago
3.0.126 165 4 months ago
3.0.125 88 4 months ago
3.0.124 188 4 months ago
3.0.123 166 4 months ago
3.0.122 92 4 months ago
3.0.121 165 4 months ago
3.0.120 189 4 months ago
3.0.119 165 4 months ago
3.0.118 98 4 months ago
3.0.117 144 4 months ago
3.0.116 90 4 months ago
3.0.115 139 4 months ago
3.0.114 195 4 months ago
3.0.113 107 4 months ago
3.0.112 70 4 months ago
3.0.111 207 4 months ago
3.0.110 288 4 months ago
3.0.109 91 4 months ago
3.0.108 172 4 months ago
3.0.107 91 4 months ago
3.0.106 174 4 months ago
3.0.105 213 4 months ago
3.0.104 88 4 months ago
3.0.103 291 4 months ago
3.0.102 114 4 months ago
3.0.101 111 4 months ago
3.0.100 107 4 months ago
3.0.99 110 4 months ago
3.0.97 136 4 months ago
3.0.96 116 4 months ago
3.0.95 94 4 months ago
3.0.94 96 4 months ago
3.0.93 96 4 months ago
3.0.92 97 4 months ago
3.0.91 131 4 months ago
3.0.90 123 4 months ago
3.0.89 120 4 months ago
3.0.88 674 4 months ago
3.0.87 135 4 months ago
3.0.86 140 4 months ago
3.0.85 185 4 months ago
3.0.84 119 4 months ago
3.0.83 141 4 months ago
3.0.82 199 4 months ago
3.0.81 185 4 months ago
3.0.80 168 4 months ago
3.0.79 96 4 months ago
3.0.78 191 4 months ago
3.0.77 191 4 months ago
3.0.76 153 4 months ago
3.0.75 85 4 months ago
3.0.74 138 4 months ago
3.0.73 84 4 months ago
3.0.72 356 4 months ago
3.0.71 146 4 months ago
3.0.70 164 4 months ago
3.0.69 91 4 months ago
3.0.68 166 4 months ago
3.0.67 211 4 months ago
3.0.66 94 4 months ago
3.0.65 250 4 months ago
3.0.64 128 4 months ago
3.0.63 200 4 months ago
3.0.62 170 4 months ago
3.0.61 257 5 months ago
3.0.60 108 5 months ago
3.0.59 257 5 months ago
3.0.58 100 5 months ago
3.0.57 121 5 months ago
3.0.56 98 5 months ago
3.0.55 100 5 months ago
3.0.54 110 5 months ago
3.0.53 105 5 months ago
3.0.52 97 5 months ago
3.0.51 93 5 months ago
3.0.50 382 5 months ago
3.0.49 87 5 months ago
3.0.48 306 5 months ago
3.0.47 93 5 months ago
3.0.46 96 5 months ago
3.0.45 293 5 months ago
3.0.44 139 5 months ago
3.0.43 93 5 months ago
3.0.42 91 5 months ago
3.0.41 138 5 months ago
3.0.40 106 5 months ago
3.0.39 217 5 months ago
3.0.38 314 5 months ago
3.0.37 158 5 months ago
3.0.36 94 5 months ago
3.0.35 96 5 months ago
3.0.34 141 5 months ago
3.0.33 97 5 months ago
3.0.32 192 5 months ago
2.1.31 294 5 months ago
2.1.30 181 5 months ago
2.1.29 257 5 months ago
2.1.28 144 5 months ago
2.1.27 88 5 months ago
2.1.26 649 5 months ago
2.1.25 180 5 months ago
2.1.24 341 5 months ago
2.1.23 104 5 months ago
2.1.22 95 5 months ago
2.1.21 289 5 months ago
2.1.20 234 5 months ago
2.1.19 262 5 months ago
2.1.18 333 5 months ago
2.1.17 95 5 months ago
2.1.16 323 5 months ago
2.1.14 110 5 months ago
2.1.13 259 5 months ago
2.1.12 146 5 months ago
2.1.11 415 5 months ago
2.1.10 257 5 months ago
2.1.9 96 5 months ago
2.1.8 125 5 months ago
2.1.7 356 6 months ago
2.1.6 115 6 months ago
2.1.5 261 6 months ago
2.1.4 117 6 months ago
2.1.3 93 6 months ago
2.1.2 102 6 months ago
2.1.1 122 6 months ago