Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Melaksanakan Penutupan Anggun untuk Pelayan HTTP di Linux?

Bagaimana untuk Melaksanakan Penutupan Anggun untuk Pelayan HTTP di Linux?

Linda Hamilton
Lepaskan: 2024-12-16 00:58:09
asal
724 orang telah melayarinya

How to Implement Graceful Shutdown for an HTTP Server on Linux?

penutupan anggun untuk pelayan http pada linux

Apabila menjalankan pelayan http, selalunya perlu melakukan operasi tertentu sebelum pelayan keluar. Ini boleh dilakukan menggunakan mekanisme isyarat Unix.

Satu cara untuk melakukannya ialah menggunakan pakej os.Signal dalam Go:

package main

import (
    "fmt"
    "log"
    "net/http"
    "os"
    "os/signal"
)

func main() {
    // Create a new http server.
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello, World!")
    })

    go func() {
        // Start the server.
        log.Fatal(http.ListenAndServe(":8080", nil))
    }()

    // Create a channel to receive os signals.
    sigchan := make(chan os.Signal)
    signal.Notify(sigchan, os.Interrupt)

    // Block until a signal is received.
    <-sigchan

    // Perform shutdown operations.
    log.Println("Shutting down server...")

    // Close the server.
    err := http.CloseServer(http.DefaultServer)
    if err != nil {
        log.Fatal(err)
    }

    // Exit the program.
    os.Exit(0)
}
Salin selepas log masuk

Kod ini akan mencipta pelayan http baharu dan dengar pada port 8080. Apabila program menerima isyarat gangguan (cth., Ctrl C), ia akan melaksanakan operasi penutupan, yang dalam kes ini termasuk menutup pelayan dan keluar dari program.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Penutupan Anggun untuk Pelayan HTTP di Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan