Comments (2)
Yes, that's an issue that can come up. This used to be the way Coravel worked, but changed it for throughput reasons. I not sure adding this as an option should be a concern of Coravel proper....
There are other ways around this specific issue.
1
You create a static (or DI injected) class that handles creating all your DB connections. This will pool or just limit how many connections can be used at a given time.
Different interfaces could exist for something like this:
var sqlConnection = await connectionPool.GetOpenConnectionAsync();
Or
await connectionPool.WithSqlConnection(async sqlConnection => {
await sqlConnetion.ExecuteAsync(SQLString_const);
});
Under the covers, you would probably use a semaphore to limit how many actions can occur concurrently.
2
Another consideration: it might be that your code could be issuing too many SQL connections and that could be optimized.
3
Or, if your code gets a specific exception, you could handle that specific exception and retry in X milliseconds (with backoff, etc.) Many use something like Poly for that.
4
Or, it could be a legit issue where there's some bad code that's not releasing DB connections efficiently. Here's a SO example: https://stackoverflow.com/questions/49748789/max-connection-pool-reached
from coravel.
Thanks @jamesmh ! I'll see my options here!
Regards
from coravel.
Related Issues (20)
- Using an ICancellableInvocable in a dotnet 6 program HOT 2
- Add support to TimeSpan HOT 1
- Do works before app shut down? HOT 1
- Running at Last day of Month? HOT 1
- Queue not being invoked on console app
- CLI not working with .NET 6 HOT 2
- Throw an exception and potentially prevent app on startup if a scheduled IInvocable is not available in the IoC container HOT 3
- Registering event listeners that are not configured causes silent exceptions HOT 1
- ScheduleInvocableType Cron method not working with .NET 6 HOT 1
- ScheduleWithParams not working with DI HOT 3
- Coravel Background Service HOT 9
- Add global from to Mailing docs HOT 3
- Calling From() in Build() to override globalFrom in Mailing HOT 2
- How much schedule Tasks could be run for an application? HOT 1
- Add support for IAsyncDisposable HOT 3
- Make global timer configureable
- Run() isn't invoking method HOT 2
- Task scheduling does not work in .NET Maui HOT 2
- Cannot install 4.1.3 or later (.Net 7 SDK Web project) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from coravel.