Skip to content

leelynne/sqserv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sqserv

GoDoc

Package sqserv provides a net/http style interface for handling AWS SQS messages. http.Request objects are generated from SQS messages then handled with standard http.Handler methods.

Why?

Using the net/http interface allows for handy reuse of http middleware and other related utilities.

Basic Example

    queueHandler := func(w http.ResponseWriter, req *http.Request) {
		// Handle as a you would an http request

		// Ack the message by returning a success code
		w.WriteHeader(http.StatusNoContent)
	}
        // For SQS queue name 'message-queue'
	// Use any http.Handler compatible router/middleware
	mux := http.NewServeMux()
	mux.Handle("/message-queue", http.HandlerFunc(queueHandler))

	conf := &aws.Config{}
	qsrv, err := sqserv.New(conf.WithRegion("us-west-2"), mux)
	if err != nil {
		log.Fatal(err)
	}

	// non-blocking call to start polling for SQS messages
	err = qsrv.ListenAndServe("message-queue")
	if err == nil {
		log.Fatal(err)
	}

The package doc contains more examples and implementation details.

Documentation

godoc contains more examples and implementation details.