bqueue

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 3, 2022 License: MIT Imports: 4 Imported by: 0

README

bqueue

Go Reference

Persistent embedded FIFO queue implementation built on boltDB

installation

$ go get pkg.coulon.dev/bqueue

Usage

package main

import (
	"fmt"
	"log"

	"pkg.coulon.dev/bqueue"
)

func main() {
	s, err := bqueue.Open("queue.db", 0600, nil)
	if err != nil {
		log.Fatal(err)
	}
	defer s.Close()

	q, err := s.NewQueue([]byte("default"))
	if err != nil {
		log.Fatal(err)
	}

	err = q.Enqueue([]byte("Hello World!"))
	if err != nil {
		log.Fatal(err)
	}

	m, err := q.Deqeue()
	if err != nil {
		log.Fatal(err)
	}

	fmt.Printf("message: %s\n", m)
}

Roadmap

  • Persistent FIFO queue
  • Multiple queues on the same db
  • Thread-safety
  • Adding metadata to payloads

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Queue

type Queue struct {
	// contains filtered or unexported fields
}

func (*Queue) Dequeue

func (q *Queue) Dequeue() (message []byte, err error)

func (*Queue) Enqueue

func (q *Queue) Enqueue(message []byte) (err error)

type Store

type Store struct {
	// contains filtered or unexported fields
}

func Open

func Open(path string, mode os.FileMode, opts *bbolt.Options) (s *Store, err error)

func (*Store) Close

func (s *Store) Close() (err error)

func (*Store) NewQueue

func (s *Store) NewQueue(name []byte) (q *Queue, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL