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

Learning PHP 5

Learning PHP 5

David Sklar / O'Reilly / July, 2004 / $29.95

Learning PHP 5 is the ideal tutorial for graphic designers, bloggers, and other web crafters who want a thorough but non-intimidating way to understand the code that makes web sites dynamic. The book ......一起来看看 《Learning PHP 5》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

SHA 加密
SHA 加密

SHA 加密工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具