Go 语言优雅退出库 shutdown

码农软件 · 软件分类 · 常用工具包 · 2019-08-13 18:57:44

软件介绍

Go 语言在 1.7 版本中增加了 Context 库,优雅退出的实现有了一个统一的实现方式。

Go 语言 1.8 版本中 HTTP 服务使用 Context 实现了优雅退出。

使用此库可以方便地实现优雅退出:

    // Generate a new context
    ctx := NewContext()

    // Run service with this context
    go func(ctx context.Context) {
        if err := ExitWaitGroupAdd(ctx, 1); err != nil {
            return
        }
        defer ExitWaitGroupDone(ctx)

        otherEvent := make(chan struct{})
    FOR_LOOP:
        for {
            select {
            case <-ctx.Done():
                break FOR_LOOP
            case <-otherEvent:
                // ...
            }
        }

        // Some close processes
    }(ctx)

    // Wait interrupt signal
    sig := make(chan os.Signal)
    signal.Notify(sig, os.Interrupt)
    <-sig
    if err := Shutdown(ctx, time.Second*5); err != nil {
        log.Println("Shutdown error:", err)
        return
    }

本文地址:https://codercto.com/soft/d/12296.html

On LISP

On LISP

Paul Graham / Prentice Hall / 09 September, 1993 / $52.00

On Lisp is a comprehensive study of advanced Lisp techniques, with bottom-up programming as the unifying theme. It gives the first complete description of macros and macro applications. The book also ......一起来看看 《On LISP》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具