Comments (6)
Thanks for the report! I think this is an overly specific interpretation on my part of the spec which says:
The
nodes
andservices
endpoints support blocking queries and tunable consistency modes.
But now that I think about it, I don't see why the node
and service
(singular) endpoints shouldn't support blocking queries. Some of the endpoints do not (e.g. datacenters
) and thus it doesn't make sense to have a CancellationToken for Datacenters()
but for node
and service
it absolutely does if they support blocking queries.
You are correct, it would be extremely simple to add them by adding another overload to the method - see services
vs service
. I'll fix it up tonight, or if you want, I'm happy to accept a PR with a fix.
from consuldotnet.
I tend to think they should all support CancellationTokens. That would allow clients to protect from failure cases like ridiculous network latency. And I don't see any particular harm that would come from allowing most operations to be cancellable at that level.
from consuldotnet.
The only reason I put in CancellationTokens in the signatures in the first place was to allow long polls (watches) to be aborted, but I see your point. Generally you're accessing 127.0.0.1 with this API so if you've got network latency to localhost something else is very wrong, but it's a valid use case and I don't see a reason not to support cancelling all requests.
from consuldotnet.
I'm actually planning on using it to monitor changes from a machine that will (probably) not be running a Consul Agent locally. But I might just be weird. :)
from consuldotnet.
As I said, a perfectly valid use case!
from consuldotnet.
Due to the amount of work required to add 1.5x the amount of methods in every existing interface/source file, I'm going to push work on making all calls abortable to another issue and target making all calls abortable with 0.7.0 unless you have a pressing need (e.g. you're running into problems where your service is failing because you can't abort a non-longpoll call). The release 0.6.4.4 should resolve this specific issue and add the two missing overrides though, and the package is uploaded to Nuget. Please don't hesitate to let me know if you have any further issues.
from consuldotnet.
Related Issues (20)
- Consul.ConsulRequestException: Unexpected response, status code InternalServerError: rpc error making call: EOF HOT 4
- No way to read ServiceMeta
- ConsulConfigurationException throw if URL scheme specified in CONSUL_HTTP_ADDR environment variable. HOT 1
- Latest version is not available in Nuget HOT 2
- Add Meta dictionary to AgentService and AgentServiceRegistration HOT 1
- Does not work on netcoreapp2.1 HOT 5
- Enable HttpClientHandler pooling? HOT 2
- KV Txn call may deadlock HOT 3
- Grpc heartbeat HOT 2
- Support for Consul Connect? HOT 1
- 0.9 Port Status
- No .Net Framework 4.0 compatibility HOT 1
- Filter Service and Health by multi tags
- I hope to support the heartbeat of grpc
- Agent.ServiceRegister hangs after KV.Get with new QueryOptions {WaitIndex = index}
- Aquire Lock custom KV value
- Service status
- Bad request : Invalid wait time and multiple Get request while trying to acquire leader HOT 2
- Cluster support
- Add consul.dll.xml into the NuGet package
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 consuldotnet.