# README
RSMQ Fork
This is a fork of github.com/semihbkgr/go-rsmq v1.3.1 (commit d0f7bbc).
Changes from Original
The main change in this fork is support for custom message IDs. This allows for:
- Deterministic message IDs based on your own identifiers
- Message deduplication
- Message overriding/rescheduling
Custom ID Notes
When using custom IDs, be aware that:
- The
msg.Sent
timestamp will not reflect the actual send time for overridden messages- This field is derived from the message ID's timestamp part
- For custom IDs, we use a fixed timestamp to avoid timing issues
- Use Redis sorted set scores (via the
delay
parameter) for actual timing
- Message timing is controlled by Redis sorted set scores, not by the ID's timestamp part
- IDs must be exactly 32 characters long and contain only alphanumeric characters
- Overriding a message with the same ID but different delay will correctly update the timing
Original License
MIT License - see original repository for details.
# Functions
NewRedisSMQ creates and returns new rsmq client.
WithMessageID returns a SendMessageOption that sets a custom message ID.
# Constants
Unset values are the special values to refer default values of the attributes.
Unset values are the special values to refer default values of the attributes.
Unset values are the special values to refer default values of the attributes.
# Variables
Validation errors.
Validation errors.
Validation errors.
Validation errors.
Validation errors.
Errors returned on rsmq operation.
Errors returned on rsmq operation.
Errors returned on rsmq operation.
Errors returned on rsmq operation.
# Structs
QueueAttributes contains some attributes and stats of queue.
QueueMessage contains content and metadata of message received from queue.
RedisSMQ is the client of rsmq to execute queue and message operations.
# Type aliases
SendMessageOption is a function that configures sendMessageOptions.