Beispiel #1
0
func main() {
	// defer func() {
	// 	if r := recover(); r != nil {
	// 		log.Println("RECOVER!!!!!")
	// 		w, err := os.Create("panic.log")
	// 		if err != nil {
	// 			os.Exit(1)
	// 		}
	// 		os.Stderr = w
	// 		debug.PrintStack()
	// 	}

	// runtime.SetBlockProfileRate(1)
	// go func() {
	// 	log.Println(http.ListenAndServe("0.0.0.0:6060", nil))
	// }()

	runtime.GOMAXPROCS(runtime.NumCPU())

	filename, err := log.Init()
	if err != nil {
		panic(err)
	}
	if filename != "" {
		log.Infof("%s is created", filename)
	}

	if err := fetcher.Init(); err != nil {
		panic(err)
	}

	if err := server.Start(); err != nil {
		panic(err)
	}
}
func BenchmarkProcess(b *testing.B) {
	if err := fetcher.Init(); err != nil {
		b.Fatal(err)
	}
	o, err := option.New(os.Args[1:])
	if err != nil {
		b.Fatal(err)
	}

	for i := 0; i < b.N; i++ {
		o, err := storage.NewImage(map[string][]string{
			"url":    []string{""},
			"width":  []string{"800"},
			"height": []string{"0"},
		}, o.Hosts)
		if err != nil {
			b.Fatalf("%s", err)
		}

		path, err := fetcher.Fetch(o.ValidatedURL)
		if err != nil {
			b.Fatalf("%s", err.Error())
		}

		var bs []byte
		w := bytes.NewBuffer(bs)
		p := processor.New()

		image, err := p.Preprocess(path)
		if err != nil {
			b.Fatalf("%s", err.Error())
		}

		if _, err := p.Process(image, w, o); err != nil {
			b.Fatalf("%s", err.Error())
		}
	}
}
func TestInit(t *testing.T) {
	if err := fetcher.Init(); err != nil {
		log.Fatal(err)
	}
}