All Projects → remind101 → mq-go

remind101 / mq-go

Licence: BSD-2-Clause license
SQS Consumer Server for Go

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to mq-go

celery-connectors
Want to handle 100,000 messages in 90 seconds? Celery and Kombu are that awesome - Multiple publisher-subscriber demos for processing json or pickled messages from Redis, RabbitMQ or AWS SQS. Includes Kombu message processors using native Producer and Consumer classes as well as ConsumerProducerMixin workers for relay publish-hook or caching
Stars: ✭ 37 (+32.14%)
Mutual labels:  sqs, sqs-consumer
sns-sqs-big-payload
Amazon SNS/SQS client library that enables sending and receiving messages with payload larger than 256KiB via Amazon S3.
Stars: ✭ 40 (+42.86%)
Mutual labels:  sqs, sqs-consumer
blaster
Web hooks for message queues
Stars: ✭ 14 (-50%)
Mutual labels:  sqs, sqs-consumer
django-eb-sqs-worker
Django Background Tasks for Amazon Elastic Beanstalk
Stars: ✭ 27 (-3.57%)
Mutual labels:  sqs, sqs-consumer
Laravel Bridge
Package to use Laravel on AWS Lambda with Bref
Stars: ✭ 168 (+500%)
Mutual labels:  sqs
Loafer
Asynchronous message dispatcher - Currently using asyncio and amazon SQS
Stars: ✭ 104 (+271.43%)
Mutual labels:  sqs
Laravel Plain Sqs
Custom SQS connector for Laravel (or Lumen) that supports third-party, plain JSON messages
Stars: ✭ 91 (+225%)
Mutual labels:  sqs
Amazon Sqs Java Temporary Queues Client
An Amazon SQS client that supports creating lightweight, automatically-deleted temporary queues, for use in common messaging patterns such as Request/Response. See http://aws.amazon.com/sqs.
Stars: ✭ 60 (+114.29%)
Mutual labels:  sqs
ontopic
Display SNS messages on your terminal
Stars: ✭ 20 (-28.57%)
Mutual labels:  sqs
aws-developer-associate-certificate
Note to pass the AWS Developer Associate Exam
Stars: ✭ 53 (+89.29%)
Mutual labels:  sqs
Justsaying
A light-weight message bus on top of AWS services (SNS and SQS).
Stars: ✭ 157 (+460.71%)
Mutual labels:  sqs
Amazon Sqs Java Messaging Lib
This Amazon SQS Java Messaging Library holds the Java Message Service compatible classes, that are used for communicating with Amazon Simple Queue Service.
Stars: ✭ 117 (+317.86%)
Mutual labels:  sqs
Kombu
Kombu is a messaging library for Python.
Stars: ✭ 2,263 (+7982.14%)
Mutual labels:  sqs
Brighter
Command Dispatcher, Processor, and Distributed Task Queue
Stars: ✭ 1,393 (+4875%)
Mutual labels:  sqs
PyRSMQ
Python Implementation of Redis Simple Message Queue Algorithm
Stars: ✭ 35 (+25%)
Mutual labels:  sqs
Broadway sqs
A Broadway producer for Amazon SQS
Stars: ✭ 64 (+128.57%)
Mutual labels:  sqs
Aws Sdk Perl
A community AWS SDK for Perl Programmers
Stars: ✭ 153 (+446.43%)
Mutual labels:  sqs
amazon-sns-java-extended-client-lib
This AWS SNS client library allows to publish messages to SNS that exceed the 256 KB message size limit.
Stars: ✭ 23 (-17.86%)
Mutual labels:  sqs
Components Contrib
Community driven, reusable components for distributed apps
Stars: ✭ 131 (+367.86%)
Mutual labels:  sqs
Sqs Worker Serverless
Example for SQS Worker in AWS Lambda using Serverless
Stars: ✭ 164 (+485.71%)
Mutual labels:  sqs

MQ - A package for consuming SQS message queues

The goal of this project is to provide tooling to utilize SQS effectively in Go.

Features

  • Familiar net/http Handler interface.
  • Retry with expontial backoff via visibility timeouts and dead letter queues.
  • Router Handler for multiplexing messages over a single queue.
  • Server with configurable concurrency and graceful shutdown.
  • Automatic batch fetching and deletion.
  • Publisher for batch sending.
  • Opentracing support

Documentation

https://godoc.org/github.com/remind101/mq-go

QuickStart

func main() {
	queueURL := "https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue"

	h := mq.HandlerFunc(func(m *mq.Message) error {
		fmt.Printf("Received message: %s", aws.StringValue(m.SQSMessage.Body))

		// Returning no error signifies the message was processed successfully.
		// The Server will queue the message for deletion.
		return nil
	})

	// Configure mq.Server
	s := mq.NewServer(queueURL, h)

	// Start a loop to receive SQS messages and pass them to the Handler.
	s.Start()
	defer s.Shutdown(context.Background())

	// Start a publisher
	p := mq.NewPublisher(queueURL)
	p.Start()
	defer p.Shutdown(context.Background())

	// Publish messages (will be batched).
	p.Publish(&sqs.SendMessageBatchRequestEntry{
		MessageBody: aws.String("Hello"),
	})
	p.Publish(&sqs.SendMessageBatchRequestEntry{
		MessageBody: aws.String("World!"),
	})
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].