https://github.com/techascent/tech.queue
Simple queuing abstraction
https://github.com/techascent/tech.queue
Last synced: 11 months ago
JSON representation
Simple queuing abstraction
- Host: GitHub
- URL: https://github.com/techascent/tech.queue
- Owner: techascent
- License: epl-1.0
- Created: 2018-07-31T21:34:23.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2020-08-03T21:03:19.000Z (almost 6 years ago)
- Last Synced: 2025-06-22T20:38:55.477Z (about 1 year ago)
- Language: Clojure
- Size: 72.3 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tech.queue
[](https://clojars.org/techascent/tech.queue)
Simple queue abstraction. Setup a queue/worker abstraction that will survive crashes and machine reboots.
Choose either filesystem or sqs to back your *unordered* [queues](src/tech/queue.clj).
```clojure
(q/put! "file://tmp/queue-a" {:data 1})
(let [task (q/take! "file://temp/queue-a")]
(println (q/task->msg "file://temp/queue-a" task))
(q/complete! "file://temp/queue-a" task))
```
Also implemented is a worker abstraction that works with the component library and enables robust,
high volume processing of tasks in a system environment.
There are no ordering guarantees made across queue systems at this time.
## Examples
Please see [queue-test](test/tech/queue_test.clj).
For using the worker abstraction, please see [worker-test](test/tech/queue/worker_test.clj).
## License
Copyright © 2018 TechAscent, LLC.
Distributed under the Eclipse Public License either version 1.0 or (at
your option) any later version.