Giter Club home page Giter Club logo

Comments (13)

fafhrd91 avatar fafhrd91 commented on May 4, 2024

Yes, it is a problem at the moment. I have “gracefull shutdown” item in my todo list

from actix-web.

fafhrd91 avatar fafhrd91 commented on May 4, 2024

Btw thanks for reporting this problems, it is very helpful

from actix-web.

AlbanMinassian avatar AlbanMinassian commented on May 4, 2024

After your last commit, i search now how catch SIGINT, SIGTERM ... i have found Signal handling – Tokio Example but i don'k know how use it whith actix. What solution did you code to catch the signals ?

Thanks.

from actix-web.

fafhrd91 avatar fafhrd91 commented on May 4, 2024

You try this actor https://github.com/actix/actix/blob/master/src/actors/signal.rs

from actix-web.

fafhrd91 avatar fafhrd91 commented on May 4, 2024

I checked example, it should just work. All you need to do is send StopServer to http server on sigterm.

I will add example

from actix-web.

AlbanMinassian avatar AlbanMinassian commented on May 4, 2024

i wait your example because i don't understand what to do.

I have clone actix, set my Cargo.toml with actix = { "path" = "../actix", features=["signal"] }
and what to do after ...

how change let addr = HttpServer::new(...).bind(...).spaw() to include let addr: SyncAddress<_> = Signals.start(); and after (when SIGTERM) call StopServer ?

I you have a full example, i take.
Thanks for your help.

from actix-web.

fafhrd91 avatar fafhrd91 commented on May 4, 2024

I added signals support, but I think api could be better

here is example https://github.com/actix/actix-web/tree/master/examples/signals

from actix-web.

AlbanMinassian avatar AlbanMinassian commented on May 4, 2024

Sorry, but I still don't understand how to call the StopServer api after the sigterm signal inside a function which call dev::StopSever + print a graceufll message (by example) + and unconnect db (by example). Is not clear.

from actix-web.

fafhrd91 avatar fafhrd91 commented on May 4, 2024

it is not possible to call any arbitrary function on signal at the moment.
if you want to receive signals, you need to implement as Handler for Signal message.

but I see your problem, I will think about this problem.

from actix-web.

fafhrd91 avatar fafhrd91 commented on May 4, 2024

btw usually you don't need explicit disconnect in rust, usually connections get closed on "drop"

from actix-web.

AlbanMinassian avatar AlbanMinassian commented on May 4, 2024

I understand better https://actix.github.io/actix-web/guide/qs_3_5.html

from actix-web.

AlbanMinassian avatar AlbanMinassian commented on May 4, 2024

I have set .shutdown_timeout(1) (DEV mode) and i feel like I don't have any more latency time when the application is restarted with cargo watch -x run.

from actix-web.

fafhrd91 avatar fafhrd91 commented on May 4, 2024

only SIGTERM is graceful restart, SIGINT and SIGQUIT are force restart

from actix-web.

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.