Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Thin wrapper around Java Executors/Threads, including configurable `future` and `future-call`
HTML Clojure
Branch: master

README.md

knit Build Status

Thin wrapper around Java Executors/Threads, including configurable future and future-call.

Installation

[cc.qbits/knit "0.3.0"]

Usage

(use 'qbits.knit)

Executors

Executor can be :fixed :cached :single :scheduled, matching the corresponding Java instances.

(def x (executor :fixed))

With all options

(def x (executor :fixed {:num-threads 3 :thread-factory a-thread-factory}))

Submit a task to executor

(execute x #(println "Hello World"))

ThreadFactory

(def tf (thread-factory))

With all options

(def a-thread-group (thread-group "knit-group"))
(def tf (thread-factory {:thread-group a-thread-group
                         :daemon false}))

ThreadGroup

Identical to the Java version

(thread-group "name")
(thread-group parent-group "name")

ScheduledFuture

(schedule :at-fixed-rate 200 #(println "hello world"))

Supports :at-fixed-rate :with-fixed-delay :once, matching the corresponding Java methods.

With all options:

(schedule :at-fixed-rate 2 #(println "hello world")
          {:initial-delay 1
          :executor (executor :scheduled
                              :num-threads 3
                              :thread-factory a-thread-factory)
          :unit :minutes})

Time units are :days :hours :minutes :seconds :milliseconds :microseconds :nanoseconds

Clojure like future and core.async/thread* with configurable execution context

(qbits.knit/future {:executor x} (System/currentTimeMillis))
(qbits.knit/future-call #(System/currentTimeMillis) {:executor x})

;; core.async/thread
(qbits.knit/thread {:executor x} (System/currentTimeMillis))
(qbits.knit/thread-call #(System/currentTimeMillis) {:executor x})

License

Copyright © 2015 Max Penet

Distributed under the Eclipse Public License, the same as Clojure.

Something went wrong with that request. Please try again.