fn project hot functions 说明

1. 简单介绍
 所谓 hot  functions 实际上就是长时间运行的functions ,简单理解类似后台任务
2. fnproject  处理的方式
fnproject 使用 类似 http的处理方式
3. 配置使用
   参考代码
package main
import (
    "bufio"
    "bytes"
    "fmt"
    "io/ioutil"
    "net/http"
    "os"
    "strconv"
)
func main() {
    for {
        res := http.Response{
            Proto:      "HTTP/1.1",
            ProtoMajor: 1,
            ProtoMinor: 1,
            StatusCode: 200,
            Status:     "OK",
        }
        r := bufio.NewReader(os.Stdin)
        req, err := http.ReadRequest(r)
        var buf bytes.Buffer
        if err != nil {
            res.StatusCode = 500
            res.Status = http.StatusText(res.StatusCode)
            fmt.Fprintln(&buf, err)
        } else {
            l, _ := strconv.Atoi(req.Header.Get("Content-Length"))
            p := make([]byte, l)
            r.Read(p)
            fmt.Fprintf(&buf, "Hello %s\n", p)
            for k, vs := range req.Header {
                fmt.Fprintf(&buf, "ENV: %s %#v\n", k, vs)
            }
        }
        res.Body = ioutil.NopCloser(&buf)
        res.ContentLength = int64(buf.Len())
        res.Write(os.Stdout)
    }
}
    func.yaml  配置
format (mandatory) either "default" or "http". If "http", then it is a hot function.
idle_timeout (optional) - idle timeout (in seconds) before function termination, default 30 seconds.
4. 参考资料
https://github.com/fnproject/fn/tree/master/examples/tutorial/hotfunctions
https://github.com/fnproject/fn/blob/master/docs/hot-functions.md

posted on 2017-10-05 17:53  荣锋亮  阅读(582)  评论(0编辑  收藏  举报

导航