• Stars
    star
    132
  • Rank 274,205 (Top 6 %)
  • Language
    Go
  • License
    MIT License
  • Created over 11 years ago
  • Updated almost 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple HTTP-based queue server

queued

Simple HTTP-based queue server

Build Status

Getting Started

Install:

Ensure Go and LevelDB are installed and then run:

$ make
$ sudo make install

Run:

$ queued [options]

API

Enqueue:

$ curl -X POST http://localhost:5353/:queue -d 'foo'

Append the POSTed data to the end of the specified queue (note that queues are created on-the-fly). The Location header will point to the enqueued item and is of the form http://localhost:5353/:queue/:id.

Dequeue:

$ curl -X POST http://localhost:5353/:queue/dequeue

Dequeue the item currently on the head of the queue. Guaranteed not to return the same item twice unless a completion timeout is specified (see below). The Location header will point to the dequeued item and is of the form http://localhost:5353/:queue/:id. Queued message data is returned in the response body.

Dequeue optionally takes wait and/or timeout query string parameters:

  • wait=<sec> - block for the specified number of seconds or until there is an item to be read off the head of the queue

  • timeout=<sec> - if the item is not completed (see endpoint below) within the specified number of seconds, the item will automatically be re-enqueued (when no timeout is specified the item is automatically completed when dequeued)

Get:

$ curl -X GET http://localhost:5353/:queue/:id

Get a specific item. The header X-Dequeued will be true if the item is currently dequeued and waiting for completion.

Complete:

$ curl -X DELETE http://localhost:5353/:queue/:id

Complete the specified item and destroy it (note that only items dequeued with a timeout can be completed).

Stats:

$ curl -X GET http://localhost:5353/:queue

Get stats about a given queue.

CLI Options

  • -auth="" - HTTP basic auth password required for all requests
  • -db-path="./queued.db" - the directory in which queue items will be persisted (n/a for memory store)
  • -port=5353 - port on which to listen
  • -store=leveldb - the backend in which items will be stored (leveldb or memory)
  • -sync=true - boolean indicating whether data should be synced to disk after every write (n/a for memory store, see LevelDB's WriteOptions::sync)
  • -v - output the version number

Client Libraries

More Repositories

1

dandelion

Incremental Git repository deployment.
Ruby
737
star
2

backbone.io

Backbone.js sync via Socket.IO
540
star
3

data.io

Bidirectional data syncing via Socket.IO
JavaScript
387
star
4

mubsub

Pub/sub for Node.js and MongoDB
JavaScript
310
star
5

backbone.viewkit

Backbone view management and transitions
JavaScript
214
star
6

monq

MongoDB-backed job queue for Node.js
JavaScript
185
star
7

syphon

Immutable architecture for React/Flux applications
JavaScript
76
star
8

mongoose-acl

Mongoose ACL
JavaScript
61
star
9

jot

A mobile web app for your plain text notes
Clojure
34
star
10

bms

Battery management system for 4-series li-ion packs
C
34
star
11

cell-monitor

Battery cell monitor and balancer
C++
29
star
12

tree.js

JavaScript library for creating and manipulating hierarchical tree structures.
JavaScript
24
star
13

redblack.js

Red-black tree for Node.js and the browser
JavaScript
19
star
14

avr-twi

Nonblocking TWI/I2C master driver for Atmel AVR
C
18
star
15

cmcm

Cooperative multitasking for ARM Cortex-M microcontrollers
C
11
star
16

nettle

On-the-fly processing framework for Node.js and MongoDB
JavaScript
10
star
17

manacle.js

Lightweight ACL for Node.js and the browser
JavaScript
9
star
18

ina219

INA219 current/power monitor driver for Rust
Rust
5
star
19

pagoda

Reusable function stacks for Node.js and the browser
JavaScript
5
star
20

mongoose-denormalize

Bidirectional denormalization for your Mongoose models
JavaScript
5
star
21

emt

Express/Mongoose Toolkit
JavaScript
4
star
22

pack-monitor

Battery pack monitor
C++
4
star
23

blobstore

Content addressable blob store
Rust
4
star
24

cnc-tools

CNC tools for working with Gcode and Grbl
Python
3
star
25

require-hbt

An AMD loader plugin for Handlebars templates
JavaScript
3
star
26

broadcastd

Simple HTTP-based pubsub server
Go
3
star
27

modbus.cr

Modbus client library for Crystal
Crystal
2
star
28

gpio-socket

GPIO control via WebSocket
Clojure
2
star
29

stm32l0

Minimal development environment for STM32L0 using libopencm3
C
2
star
30

normal

Normalize nested data according to a relationship schema
Clojure
2
star
31

celeriac

State management for ClojureScript applications
Clojure
2
star
32

scthing

SuperCollider control interface for embedded devices
Rust
2
star
33

weedb

A wee database for Node.js built with LevelDB
JavaScript
2
star
34

routemachine

Stateful client-side router
JavaScript
2
star
35

node-queued

Queued client for Node.js
JavaScript
2
star
36

daffy

A minimal Scheme interpreter written in Python.
Python
2
star
37

splitd

Splits newline-separated HTTP response body into multiple HTTP requests
Go
2
star
38

peerpipe

An auto-discoverable, encrypted network pipe for P2P data transfer
Rust
1
star
39

raisin

A Python library for storing, retrieving and indexing JSON objects in MySQL.
Python
1
star
40

queued-ruby

Queued client for Ruby
Ruby
1
star
41

kite

Another lightweight Python web framework.
Python
1
star
42

terrain

Opinionated toolkit for building CRUD APIs with Rails
Ruby
1
star
43

earle

A URL pattern parser for Django.
Python
1
star
44

pytest-trace

Save OpenTelemetry spans generated during testing
Python
1
star
45

cello

An append-only B+ tree with multiversion concurrency control.
Scala
1
star
46

decibel

Networked audio player services
JavaScript
1
star
47

emacs.d

My Emacs config
Emacs Lisp
1
star
48

rfm69-gateway

RFM69 Linux gateway
C
1
star
49

webaudio

Experiments with the Web Audio API
JavaScript
1
star
50

pgque

PostgreSQL job queue extension using advisory locks
PLpgSQL
1
star