|
4 | 4 | [byte-streams :as bs]
|
5 | 5 | [clojure.string :as str]
|
6 | 6 | [primitive-math :as p]
|
| 7 | + [manifold.stream :as s] |
7 | 8 | [taoensso.nippy :as nippy])
|
8 | 9 | (:import
|
9 | 10 | [java.lang.reflect
|
|
726 | 727 | (let [^AtomicLong counter (get-in @queue-name->stats [q-name :enqueued])]
|
727 | 728 | (.incrementAndGet counter))
|
728 | 729 | true)
|
729 |
| - false) |
730 |
| - |
731 |
| - nil)) |
| 730 | + false))) |
732 | 731 |
|
733 | 732 | (put! [this q-name task-descriptor]
|
734 | 733 | (put! this q-name task-descriptor Long/MAX_VALUE))))
|
|
774 | 773 | (defn complete!
|
775 | 774 | "Marks a task as complete."
|
776 | 775 | [task]
|
777 |
| - (status! task :complete) |
778 |
| - (when (-> task meta ::fsync?) |
779 |
| - (sync! (:slab task))) |
780 |
| - (mark-complete! @(-> task meta ::this) (-> task meta ::queue-name)) |
781 |
| - true) |
| 776 | + (if (identical? :complete (status task)) |
| 777 | + false |
| 778 | + (do |
| 779 | + (status! task :complete) |
| 780 | + (when (-> task meta ::fsync?) |
| 781 | + (sync! (:slab task))) |
| 782 | + (mark-complete! @(-> task meta ::this) (-> task meta ::queue-name)) |
| 783 | + true))) |
782 | 784 |
|
783 | 785 | (defn retry!
|
784 | 786 | "Marks a task as available for retry."
|
785 | 787 | [task]
|
786 |
| - (status! task :incomplete) |
787 |
| - (when (-> task meta ::fsync?) |
788 |
| - (sync! (:slab task))) |
789 |
| - (mark-retry! @(-> task meta ::this) (-> task meta ::queue-name)) |
790 |
| - (let [^LinkedBlockingQueue q (-> task meta ::queue)] |
791 |
| - (.offer q |
792 |
| - task |
793 |
| - Long/MAX_VALUE |
794 |
| - TimeUnit/MILLISECONDS))) |
| 788 | + (if (or |
| 789 | + (identical? :complete (status task)) |
| 790 | + (identical? :incomplete (status task))) |
| 791 | + false |
| 792 | + (do |
| 793 | + (status! task :incomplete) |
| 794 | + (when (-> task meta ::fsync?) |
| 795 | + (sync! (:slab task))) |
| 796 | + (mark-retry! @(-> task meta ::this) (-> task meta ::queue-name)) |
| 797 | + (let [^LinkedBlockingQueue q (-> task meta ::queue)] |
| 798 | + (.put q task)) |
| 799 | + true))) |
0 commit comments