Giter Site home page Giter Site logo

Comments (6)

highlyunavailable avatar highlyunavailable commented on May 24, 2024

Thanks for the report! I think this is an overly specific interpretation on my part of the spec which says:

The nodes and services 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.

breischl avatar breischl commented on May 24, 2024

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.

highlyunavailable avatar highlyunavailable commented on May 24, 2024

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.

breischl avatar breischl commented on May 24, 2024

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.

highlyunavailable avatar highlyunavailable commented on May 24, 2024

As I said, a perfectly valid use case!

from consuldotnet.

highlyunavailable avatar highlyunavailable commented on May 24, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.