Changelog
Every released version of KioMQ, generated from the repository’s CHANGELOG.md so it can never drift from the source.
Releases follow semantic versioning . Entries are grouped by type — features, bug fixes, chores — and each links to the commit it came from. Versions are published to crates.io , and the matching API docs are on docs.rs .
Bug Fixes
- when using sysinfo, refresh all processes by @spencerjibz af127a9 (process_tree_tracker)
- update existing metrics entrics instead of adding new ones if they’are expired by @spencerjibz 5b6716e (inmemory-store)
- metrics::is_idle shouldn’t include last_id check by @spencerjibz 817d36b (queue_metrics)
- fix logic bug in pause_or_resume_workers by @spencerjibz 8102a90
- considered timed out runs during the test for processing delayed jobs by @spencerjibz 8a5171b (worker_tests)
Chores
- remove unnecessary block_in_place call in the
RedisStore.update_job_progress_syncmethod. by @spencerjibz d46e2da (redis-store) - add sysinfo and heapster as dependancy for collecting Node/Process telemtry by @spencerjibz 6a45bfe (deps)
- enable the parking_lot features for tokio by @spencerjibz 44aa07a (deps)
- public expose snapshots of process monitoring essentials(metrics & consts) by @spencerjibz 6b36301
- expose process-metrics store and fetch methods via the
Queueinstance by @spencerjibz 2cacd74 - run all timers in one task globally by @spencerjibz 5afacdb (timers)
- use flume as the channel instead of tokio::mspc by @spencerjibz d660cab (deps)
- reduce Worker_state_ttl to 100 seconds by @spencerjibz da7c0df
- add cpu-thread-count to
ProcessMetricsCollectorstruct and memory & cpu usage toProcessMetrics structby @spencerjibz 1f9e0a7 (process-metrics) - running Re-register timer for even idle workers by @spencerjibz 7d850be (timers)
- add tokio-stream as a dependency to create useful stream on tokio utils by @spencerjibz 5dc6320 (deps)
- remove flume in favour of tokio-broadcast by @spencerjibz 2aa3bef (deps)
- Reduce channel buffers and simplify streams by @spencerjibz 7c9ed08
- remove dashmap and add parking_lot by @spencerjibz f206257 (deps)
- add compact_str as dependancy to reduce memory usage by @spencerjibz f09fc11 (deps)
- add hostname crate and use it to get the machine’s name instead by @spencerjibz 53f0f0b (deps)
- fix compile errors when tracing is enabled caused by compact_str refactor by @spencerjibz e7babde (tracing)
- clean up errors by @spencerjibz c173c3f
- fix error in redis-queue-tests, use to_string instead of to_compact_string by @spencerjibz 2c71a52 (tests)
- add a timer existence check for queues by @spencerjibz 05357f0 (timers)
- put individual queue_timer tasks to sleep for n millis where there is no work by @spencerjibz 89a6208 (timers)
- remove triggerpromotion timers by @spencerjibz 3f1ea45 (timers)
- add a worker to global registry on creation but register it’s timers later. by @spencerjibz 490d376 (timers)
- add more metadata about workers to the process_metrics by @spencerjibz e3dd09e (process_metrics)
- remove lock checks in queue::move_to_finish_or_failed. by @spencerjibz 7c71b0d (queue)
Documentation
- add detailed documentation for the process-metrics module by @spencerjibz be703b8
- add ProcessMetrics section to README and fix rustdoc warnings by @spencerjibz 3f9e1e9
Features
- Add node/process metrics using the heapster and systinfo crates by @spencerjibz 7b50897
- add publish process metrics to worker-timers and a dedicated health check for each worker by @spencerjibz 4a7ec8d (Timers)
- add process metrics collection and fetching to
RedisStoreandInMemoryStorestores by @spencerjibz 772217a (stores) - add a lazy better timed_map implementation without locking on purged_expired method by @spencerjibz 9795f02
Refactoring
- Extract worker metrics into metrics module by @spencerjibz 1c053f7 (metrics)
- rename the
node_metricsmodule &&NodeMetricsstruct toprocess_metrics&ProcessMetricsrespectively by @spencerjibz 1e0153f - process metrics collector and add serde support by @spencerjibz 3f1f0b8
- move timers(stall_check,extend_lock& collect_metrics) to the queue instead of workers by @spencerjibz bda760b
- move all timer-logic to a singleton processor by @spencerjibz 2522114
- move fetching scheduled delayed jobs to a dedicated timer by @spencerjibz e471aa3
- move worker pausing logic from the timer_reciever-task to each worker’s main loop. by @spencerjibz a98d90c (worker)
Queue::add_workernow also registers existing workers by @spencerjibz 1820372- Switch queues to SkipMap instead of a ttl-timed map by @spencerjibz 9490dbf (ProcessMetricsCollector)
- use a tokio::watch channel for process-metrics updates instead of the same flume channel as timers by @spencerjibz 5efc7a6
- remove usages of dashmap in favour of parking_lot by @spencerjibz e31bf37
- use std::process::id() instead of the sysinfo’s method by @spencerjibz 2ba550b
- use different strategies for cpu metrics for linux and other platforms by @spencerjibz 3364fe9 (process_metrics)
- use tokio::utils::DelayQueue instead of futures-intrusive && futures-delay-queue by @spencerjibz 3715a22 (delay_queue_map)
- remove module delay_queue_map.rs to concurrent_timed_map.rs by @spencerjibz 4f3ca57
- merge the event_stream_task and the timer_task_listener task into one background task. by @spencerjibz 32d8c7c (stores)
- use tokio::join instead of a tokio::select to run both the stream_listener_task and timer_task. by @spencerjibz 9d75cf2 (queue_timer)
- periodically update queue metrics inside the worker_metrics collection timers instead of within stores(redis-store for instance). by @spencerjibz 8af8891
- Flattened down the worker’s reactor loop to a single cleanly controlled loop. by @spencerjibz 9e54443 (worker_reactor_loop)
- replace numeric as casts with num_traits::AsPrimitive. by @spencerjibz 653c942
Release
- 0.2.0 (#80) by @github-actions[bot] (#80 ) (release)
Contributors
- @github-actions[bot]
- @spencerjibz
Bug Fixes
- yield in busy-wait loops and use saturating_sub by @spencerjibz d88463b (worker_test_helper)
Chores
- remove atomig as dependency by @spencerjibz b212508
- make dotenv an optional dependency by @spencerjibz (#75 )
- remove trailing comma by @spencerjibz 182eacf (clippy)
- remove static counters (id-counter && pc-counter) by @spencerjibz 8b525b7 (redis-store)
- update tests and examples to use a shared redis connection by @spencerjibz 052af3f
- update README.md to reflect updates to the
RedisStoreandupdate_progressmethod by @spencerjibz 3ae61da (docs) - update redis & deadpool-redis to v1.2.0 and v0.230 respectively; update everything to reflect this by @spencerjibz c6237d7 (deps)
- bump rustls-webpki from 0.103.10 to 0.103.12 by @dependabot[bot] (#76 ) (deps)
Features
- redis connection sharing between different store instance by @spencerjibz e827431 (RedisStore)
- add a better implementation of skipmap based deque. by @spencerjibz 419f62e (InMemoryStore)
Other
- Merge branch ‘redis-improvements’ of https://github.com/KioHQ/kiomq into redis-improvements by @spencerjibz 1f6c699
- Merge branch ‘main’ into redis-improvements by @spencerjibz a7858ba
- Merge pull request #78 from KioHQ/redis-improvements by @spencerjibz (#78 )
Refactoring
- replace of all usages for atomig::Atomic with crossbeam::atomic::AtomicCell by @spencerjibz 2709ba6
- use
crossbeam::atomic::AtomicCellinstead of manual Atomics(AtomicUsize, AtomicBool & AtomicU64) by @spencerjibz 71bb7af - remove mutex usage to guard per task metrics-histogram by @spencerjibz 25580cf (worker)
- replace boolean flags with
TimerStateby @spencerjibz a6a826f (timers) - convert Store trait methods to async by @spencerjibz 2d87eab
- use redis-transactions for atomic job insertion and remove counters per store by @spencerjibz 5ba4a3d (redis)
- use redis-transactions for atomic job insertion and remove counters per store by @spencerjibz 8ae1b7e (redis)
Release
- 0.1.3 by @spencerjibz (#74 ) (release)
Tests
- fix doc-test errors included by shared-redis-connection feature by @spencerjibz 219a61f (doc-test)
Contributors
- @dependabot[bot]
- @spencerjibz
Bug Fixes
- fix typo in cargo.toml and fmt the file by @spencerjibz 42499eb (cargo)
- add derive debug and display to fix rebase issues by @spencerjibz 9f253ab
- logic bug in end-to-end benchmarks by @spencerjibz (#73 )
Chores
- add hdrhistogram for poll_duration_metrics collection by @spencerjibz 9ec9193 (deps)
- implement deref & deref_mut traits for the
HistogramWrapperby @spencerjibz 04b4484 (WorkerMetrics) - make poll_duration_history public in
TaskInfoby @spencerjibz 36c45bc (WorkerMetrics) - export
TaskInfopublicly by @spencerjibz 1cd7176 - use async-mutex only for guarding Histogram per task by @spencerjibz 828fbc3
- adhere to clippy::depantic by @spencerjibz (#66 ) (clippy)
- update release name format in release GitHub Actions workflow by @spencerjibz 4b455b4 (ci)
- remove buildjet cache usage from action-workflows by @spencerjibz 54b9898 (actions)
- delay-queue-wip by @spencerjibz 82e57bc
- add futures-intrusive && futures-delay-queue by @spencerjibz 576844b (deps)
- apply clippy lint recommendations by @spencerjibz b94c0a9 (lints)
- reinstate job promotion timer and move delayed job pick up logic to the worker main_loop instead of timers by @spencerjibz 2b67228
- chore: log job state transitions in the queue(when tracing is enabled) & by @spencerjibz (#67 )
- bump rustls-webpki from 0.103.4 to 0.103.10 by @dependabot[bot] (#68 ) (deps)
- bump tar from 0.4.44 to 0.4.45 by @dependabot[bot] (#72 ) (deps)
- bump slab from 0.4.10 to 0.4.12 by @dependabot[bot] (#71 ) (deps)
- bump bytes from 1.10.1 to 1.11.1 by @dependabot[bot] (#69 ) (deps)
- remove xutex as dependency; use tokio’s mutex for async cases by @spencerjibz 6940d76 (dep)
Documentation
- add refactor as a type of change in pull request template by @spencerjibz b76b5a5
Features
- add a poll_duration histogram for get collect statistcs by @spencerjibz 312b12a (WorkerMetrics)
- add redis-version checking and the field to the redis-store by @spencerjibz 82406a7 (RedisStore)
Other
- chore(deps) add dashmap as a new dependency by @spencerjibz ce97639
Performance
- use early returns when fetch jobs from empty collections by @spencerjibz 0b2a563 (InMemoryStore)
- store worker_metrics in redis as a hash instead of individual values by @spencerjibz (#70 ) (RedisStore)
Refactoring
- add the last_updated_time and ttl fields to worker_metrics by @spencerjibz 935f680 (WorkerMetrics)
- add a clean lockfree timer design based off channels by @spencerjibz 20f9759 (DelayedQueue)
- require Sync trait for Data type and Store type (D&S) by @spencerjibz 43d3e2d
- move job promotion from this DelayQueue to an independent tasks with a dedicated track by @spencerjibz 383b7c5 (DelayTimer)
- use a channel based delayed-queue from futures-delayed-queue crate && remove usage of block_in_place in this module too by @spencerjibz 7b76f81 (TimedMap)
- use the same channel queue instead of tokio::util::DelayQueue by @spencerjibz 7e088c3 (DelayQueueTimer)
- simplify delay_queue_timer and include job promotion in it too by @spencerjibz 5c0f0e5
- use dashmap::HashMap in timedmap & delayed_queue-map by @spencerjibz 0685cdf
- use dashmap::Hashmap instead crossbeam::skipmap to store runnings in the worker by @spencerjibz 3f308a2
Release
- 0.1.2 by @spencerjibz (#65 ) (release)
Contributors
- @dependabot[bot]
- @spencerjibz
Bug Fixes
- update metrics after pausing queue and fix inmemorystore pause behaviour by @spencerjibz 7a12cea (queue)
CI
- use –offline instead of –locked for tests in ci by @spencerjibz 54247c5
- update git-cliff config to generate well-grouped change and release notes by @spencerjibz 9388bc1 (release-pipline)
Chores
- revert usage of –offline flag in ci by @spencerjibz 120baba
- regenerate changelog with updated git-cliff configuration by @spencerjibz 7a076ab (changelog)
- remove parking_lot in favour of xutex (only one is needed) by @spencerjibz 5045bb6 (deps)
- make simd-json as optional dependancy by @spencerjibz 25f5b59 (deps)
- fix a typo in readme, && ignore some code-snippets in docs tests by @spencerjibz df0c42a (README)
- add more useful keywords for the crates by @spencerjibz 0163531 (crates.io)
- fix missing commas in cargo.toml by @spencerjibz 94c3d64 (cargo.toml)
- limited the crate keywords to five(publish limit) by @spencerjibz ca26156 (crates.io)
Refactoring
- restart all timers instead of resuming with stored state by @spencerjibz 2ab4cd0 (delayed_queue_timer)
Release
- 0.1.1 by @spencerjibz (#63 ) (release)
Contributors
- @spencerjibz
Bug Fixes
- lint warning about links by @spencerjibz 916016b (rustdoc)
CI
- exclude unnecessary folders and files from cargo publish by @spencerjibz 9c88c32 (Crates.io)
- workflow should references to the old library version in the readme by @spencerjibz (#62 ) (cd-workflow)
Chores
- clippy fix (unused) by @spencerjibz 68f67e5
Documentation
- add ci-build, crates.io, docs.rs & licence badges to readme by @spencerjibz 55a4caa (readme)
- update code snippets to include waiting for job completion by @spencerjibz 770f85c (readme)
- add example code-snippet of redis and rocksdb usage by @spencerjibz 0d45ff9 (readme)
- use readme in lib.rs, correct links in docs by @spencerjibz 25ba74b
- minor tweak in rocksdb usage example by @spencerjibz 3ce01a7 (readme)
Release
- 0.1.0 by @spencerjibz (#61 ) (release)
Contributors
- @spencerjibz
Bug Fixes
- fix support for job prioritization by @spencerjibz 8e514e2
- fix job retrial after failure by @spencerjibz (#11 )
- fix retrials & remove crossbeam-skiplist by @spencerjibz 800fb39
- failing missed deadline jobs by @spencerjibz 8595655
- fix serializing redis-stream-event by @spencerjibz 71c0ccd
- skipmap.len is just an len appromixation, use atomic counter for this instead by @spencerjibz (#14 )
- fix flaky test by @spencerjibz (#15 )
- correctly serialize queue-events by @spencerjibz f09e065
- promoting delayed jobs by @spencerjibz 0d36fa8
- fix complete rocksdb-store::add_bulk methods by @spencerjibz 01b2f3d
- counter bugs in in-memory and rocksdb store by @spencerjibz 85c20ed
- fix overflow and simple clean up by @spencerjibz 234f7f5
- fix out of range errors by @spencerjibz (#17 )
- fix typo by @spencerjibz b0852f4
- bug fix by @spencerjibz 5f08980
- correct naming of metrics by @spencerjibz 9b1e9c7
- bug fixes by @spencerjibz 2fd910f
- set return value & add timeout to listening to events by @spencerjibz e71a2d3
- timedmap tests by @spencerjibz 152e2f5
- bug fix: locks.len_exnpire is async by @spencerjibz c71823e
- inmemory-store, only update stored-metrics from publish_event by @spencerjibz 6ff80a4
- updating prioritized and failed job counts in queue-metrics by @spencerjibz cdd2726
- pass the right attempt for failed jobs by @spencerjibz e672423
- redis-store returns pause_count instead of failed_job cout by @spencerjibz 0f027d5
- typo in fetch_worker_metrics in redis-store by @spencerjibz 9d17207
- cargo fmt by @spencerjibz 3ab26ed
- fetching_metrics from redis-store by @spencerjibz 0173d57
- fix flawky tests by @spencerjibz 9e84dee
- fix tests by @spencerjibz (#49 )
- tracing::Instrument::instrument is ambigious to TaskMonitor.instrument by @spencerjibz 6e6f342 (method-ambiguity)
- stop relying on timestamps to generate release.md by @spencerjibz 3b57340 (ci)
CI
- add ci tests by @spencerjibz 04c4110
- Merge pull request #2 from spencerjibz/add-ci by @spencerjibz (#2 )
- re-export both backtrace tracing macros by @spencerjibz 3d797ca
- pass down removal options from queue if not specified for a job by @spencerjibz be9473f
- efficiently pausing workers with global activity count, let workers finished all their work before pausing by @spencerjibz (#12 )
- batch pipeline commands by @spencerjibz fac9673
- format spacing in readme by @spencerjibz 79cc9ac
- fix and improve ci with caching & using nextest by @spencerjibz c696b5c
- don’t use release flag in ci by @spencerjibz 740cdda
- use keydb and improved workflow by @spencerjibz 62e06c4
- use redis instead of keydb in ci by @spencerjibz 4bfbd33
- fix ci by @spencerjibz d671d70
- add the tracing crate by @spencerjibz 26b15a0
- add tracing and tracing-subscriber to examples by @spencerjibz 67196ab
- clean and add tracing to examples by @spencerjibz aec1a40
- gate tracing under a feature flag and make dep optional by @spencerjibz (#34 )
- Apply code review feedback: remove explicit type in loop, drop unused return value assignment by @Copilot 223ecab
- Migrate workflows to Blacksmith by @blacksmith-sh[bot] 18f8dc2
- run store tests in concurreny in ci by @spencerjibz 1386a80
- add a release-workflow by @spencerjibz aab3e02
- populated CD workflow file by @spencerjibz (#51 )
- add create generation to workflow by @spencerjibz 7b85613 (cd-workflow)
- Fix remaining clippy errors and incorporate release-pipeline lint relaxation by @Copilot 652c1b6
- fix cd pipeline by @spencerjibz 9da2cb8
- add rocks build time system dependencies for publishing job by @spencerjibz 73c036f (cd-pipeline)
- chose better category slugs for publishing crate by @spencerjibz a7a8478 (cd)
Chores
- cargo fmt by @spencerjibz a7eb821
- add changelong with git-cliff by @spencerjibz 165824e
- add author, description, links and licence metadata by @spencerjibz 09dfba9 (cargo.toml)
- add best practice library clint protections by @spencerjibz f28968c
- unused/dead_code elimination by @spencerjibz dac2919
- add missing debug implementations by @spencerjibz 6015372
- only expose few methods publicity & tracing vital calls by @spencerjibz 2b79b7c (queue)
- add more tracing spans by @spencerjibz fa75a53 (tracing)
- manual clippy –fix by @spencerjibz 31456a6 (clippy)
- more docs in worker_opts by @spencerjibz d561826
- relax some lint constricts by @spencerjibz 0967db7
- fix lint warnings in tests by @spencerjibz 24dd862
- add clippy:nursery recommendation & fmt by @spencerjibz (#52 ) (clippy)
- use the right branch for releases by @spencerjibz f4f4c63 (cd)
- use real sermver version of crates by @spencerjibz a6e8f58 (cargo)
- use real sermver version of crates by @spencerjibz 5c96437 (cargo)
Documentation
- add readme by @spencerjibz 7458a6a
- update readme by @spencerjibz 4ea9557
- Update README.md by @spencerjibz 69c92b5
- Update README.md by @spencerjibz 2c1749a
- update readme to reflect current developement progress by @spencerjibz d19d9cc
- Update README.md for clarity and formatting by @spencerjibz 9753782
- update Readme by @spencerjibz f583669
- add extras to readme by @spencerjibz (#45 )
- Add logo and project overview to README by @spencerjibz 6e40043
- Add comprehensive Rustdoc documentation across the kiomq codebase by @Copilot a62c4b7
- Add Rustdoc for RedisStore struct, fields, and public methods; doc fetch_redis_pass and get_queue_metrics by @Copilot b9c4640
- Fix updating_metrics bug in README examples and add panics/framed section by @Copilot decbf13
- add doc comment and example to the framed re-export in lib.rs by @Copilot 7c1eb18
- condense README to match lib.rs conciseness (44% shorter) by @Copilot 4fbc363
- restore Progress updates section and improve Panics & errors wording by @Copilot 71c7dc7
- add compact table of contents to README by @Copilot (#50 )
- Fix clippy warnings: visibility, casts, docs, match arms, async, and more by @Copilot db811ff
- typo by @spencerjibz d221802
Features
- add basic required deps by @spencerjibz 3405f0a
- add simple queue impl with a job queue too by @spencerjibz 7ee4ec8
- add job progress updating by @spencerjibz f64948e
- add base worker by @spencerjibz db9b270
- add timer implementation by @spencerjibz 34188fa
- add worker options by @spencerjibz 7519a91
- add backtrace_capture utils by @spencerjibz 8626a5a
- add more utils to wokrer by @spencerjibz 694ecf3
- add timer queue functions by @spencerjibz cbed76e
- add timers to worker by @spencerjibz 9121195
- add support for storing stacktraces and errors separately by @spencerjibz 6677dd6
- add events to queue & worker by @spencerjibz (#4 )
- support queue-obliteration by @spencerjibz c158955
- add backoff utils by @spencerjibz dabd8f1
- add joinError to KioError type by @spencerjibz e09d35b
- add working video_transcoding-example by @spencerjibz 9dd62c4
- add job options with delay by @spencerjibz d90d537
- add priority to job_data and priority helpers by @spencerjibz 922e358
- enable scheduling without a seperate timer by @spencerjibz 8aa3e2c
- add the right job status for delayed jobs by @spencerjibz (#9 )
- add delay field to event_stream by @spencerjibz b73346e
- add and move events into their own module by @spencerjibz 75d93f1
- add stream-listener-task by @spencerjibz 1474263
- add queue-stream-event by @spencerjibz 6ab4b9a
- add job-removal options by @spencerjibz b2d6bb2
- add tokio-console by @spencerjibz 65e8fb1
- add queue options to example by @spencerjibz 839faac
- add support for bulk_add by @spencerjibz 4840b76
- add task-notifiers & waiting-job-count to metrics by @spencerjibz edcf098
- add methods to bulk add jobs with returning them by @spencerjibz a1b9d67
- add proesssing to JobState and clean up events by @spencerjibz 855f64c
- add repeat opts with cron support and test them in example by @spencerjibz 2504142
- add support for cron as inital delay by @spencerjibz c20932c
- add obliterate as an event, rm prioritized collection on obliteration by @spencerjibz 7e20e2b
- add sample queue tests by @spencerjibz 8aab52f
- add worker state as an enum by @spencerjibz dc542d3
- add worker tests by @spencerjibz 6ebecf2
- add client to queue, support both favours of processors (sync and async) by @spencerjibz 9039e2b
- add nextest-config file by @spencerjibz 28b11cc
- add async-trait by @spencerjibz 981a0ce
- add store to examples by @spencerjibz c1e6308
- add rocksdb as a store with a feature flag by @spencerjibz 74f9a92
- add basic example with redis-store by @spencerjibz c202069
- add an in-memory-store and its example by @spencerjibz 0ed568d
- add timed-map to use in the in-memory-store by @spencerjibz 26b8169
- add timed locks to both stores by @spencerjibz 101be3d
- implement store.remove for in-memory-store && fix typo in JobState enum" by @spencerjibz 1725ff9
- add some utility functions by @spencerjibz da06fb8
- add more fields to job-metrics by @spencerjibz 8bf8942
- add support for purging expired entries for store by @spencerjibz 0f0f12b
- add job metrics to complated event by @spencerjibz 64b6b6d
- enable disabling expirations on customTimedMap by @spencerjibz 0a84fde
- add delay from options to job_metrics by @spencerjibz (#30 )
- add resoure span to the worker by @spencerjibz b152f98
- add logging to main_task and bug fix: stop main_loop on cancellation by @spencerjibz c3d8613
- add logging to timers by @spencerjibz dcf5070
- add logs and remodel loop and timer to promote delayed jobs too by @spencerjibz d2b096f
- add a resource-span to queue by @spencerjibz e9b0cae
- issue-templates by @spencerjibz b4c02df
- add criterion benchmarks using inmemory-store by @spencerjibz 75c3427
- add an action for crition benchmarks by @spencerjibz 8bdaca1
- add missing meta-data for action by @spencerjibz 0c911e1
- add permissions for action to post results by @spencerjibz (#39 )
- add tests for panics in processors by @spencerjibz 893fc33
- add tokio-metrics as a dependency by @spencerjibz 639e34a
- add worker_metrics collection to worker and setup periodic heartbeat/collection timer by @spencerjibz 8c760dc
- add metrics collection to in-memory-store by @spencerjibz a11d63c
- add metrics collection for redis-store by @spencerjibz e0c6a4e
- add timestamps to track metrics updates by @spencerjibz cab75f0
- add asset folder with logo by @spencerjibz 5ec1bf9
- add a helper macro for worker_tests by @spencerjibz 2a6158d
- add isolated tests for each store (inmemory or redis-store) by @spencerjibz 2aeedc9
- add helper macros for queue-tests for diffrent stores by @spencerjibz e970dc6
Other
- Initial commit by @spencerjibz 0da1a6c
- rust library template 32dfa0a
- base job impl by @spencerjibz c1646b9
- remove custom field-serializers by @spencerjibz aae3824
- use dashmap and use owned values by @spencerjibz fad0c4d
- use some generics for queue methods by @spencerjibz 43a7b47
- wip by @spencerjibz 82c12f1
- reorganise modules and supplement worker by @spencerjibz c414985
- clippy fix by @spencerjibz 110e3b9
- Merge pull request #1 from spencerjibz/base-impl by @spencerjibz (#1 )
- ignore panic_test in backtrace_utils by @spencerjibz ad436a9
- make timer simple by @spencerjibz 6e4830a
- minor fixes by @spencerjibz d1d36de
- complete running worker with panic catches by @spencerjibz 4c13f3f
- use an serializable backtrace by @spencerjibz 26830bf
- remove unecessary deps and use std version of backtrace by @spencerjibz 3bba177
- create similar stacktraces by @spencerjibz 61f9702
- clippy fix by @spencerjibz 19267d7
- Merge pull request #3 from spencerjibz/working-runner by @spencerjibz (#3 )
- readme edit by @spencerjibz 1d6a267
- make job_state serializable from redis by @spencerjibz 77d94a6
- remove arc-swap by @spencerjibz 570f33e
- expose the worker’s cancellation token by @spencerjibz 6474c44
- access the current job count from queue by @spencerjibz d95fabf
- serialize datetimes as microsecond timestamps by @spencerjibz de2ccfe
- ignore video files by @spencerjibz d79837d
- improve backoff and add a method to fetch metrics to a job by @spencerjibz 149862b
- create a sample video file if none exists by @spencerjibz (#5 )
- Next stage (#6) by @spencerjibz (#6 )
- clean up after running transcoding by @spencerjibz cc9af51
- download and install ffmpeg if its not available (#8) by @spencerjibz (#8 )
- simple code refactor by @spencerjibz 5a73a8f
- add support for skipping first_tick by @spencerjibz dfd8f29
- job-schedulering-timer template by @spencerjibz 6379443
- set concurrency to number of logical cpus by @spencerjibz c3601b8
- set number of cpus as default concurrency option by @spencerjibz bd26ab4
- better delay support by @spencerjibz 1fa6f20
- completed impl by @spencerjibz 732da55
- only remove jobs if found by @spencerjibz a1ef2b3
- make move_to_active_result debug printable by @spencerjibz 375f1e7
- re-use timer for scheduling delayed jobs, remove futures_concurrency primitive for running task by @spencerjibz 345de47
- use crossbeam queue, yield in busy loops to prevent race conditions by @spencerjibz c3aa115
- emit progress to stream when it’s updated by @spencerjibz a9c9c52
- emit events directly from redis-streams by @spencerjibz (#10 )
- rebase conflict fix by @spencerjibz de77c24
- add live metrics and opts to the queue by @spencerjibz 85368ce
- remove dashmap, completely lockfree impl by @spencerjibz 0a0159b
- update example to support all job features: delaying, prioritization by @spencerjibz 1f2bac8
- clean up by @spencerjibz 18feb2d
- use lockfree version of typed-emitter by @spencerjibz 2396420
- update uuid:dep by @spencerjibz 53322e2
- boxed some futures to reduce their size by @spencerjibz b05890e
- wip by @spencerjibz f5ba7b0
- only return joinhandle if timer is running by @spencerjibz a7254fc
- Revert “fix retrials & remove crossbeam-skiplist” by @spencerjibz d9a236e
- prioritize delayed jobs by @spencerjibz c283935
- fail jobs that miss delay reschedule by @spencerjibz 34982c9
- reduce cpu usage during idle times by @spencerjibz ba7b441
- make timers pausable by @spencerjibz 569b423
- pause both timer when queue and worker are idle by @spencerjibz 8a6e9b9
- improve examples by @spencerjibz 7856f22
- reduce string usage by @spencerjibz 979c1e0
- Support either pubsub or redis_stream as queue-event-stream by @spencerjibz 68c16dc
- wip by @spencerjibz ab5da6a
- refactor and cleanup by @spencerjibz a1104ef
- support for both modes by @spencerjibz 3945796
- use simple types in job and queue by @spencerjibz a7733f1
- wip by @spencerjibz 6754e9f
- use simd_json by @spencerjibz 6938133
- cheap parsing when using redis-stream-events by @spencerjibz 4144ac2
- restore examples by @spencerjibz e4c1577
- make bulk_add faster by @spencerjibz 5c8ff95
- clippy fix by @spencerjibz 06521b4
- repeat-opts-working progress by @spencerjibz 38f3a4f
- simple fixes by @spencerjibz 1592c5a
- increment ids correctly by @spencerjibz 6d44ee7
- update examples by @spencerjibz 00129bf
- code refactor by @spencerjibz (#13 )
- update the job_id after addition by @spencerjibz f27f96e
- more queue tests by @spencerjibz 339f4d8
- :emitter_on is not an async function: correct this by @spencerjibz 538a281
- remove tokio_shared_rt and use a multithread runtime for worker tests by @spencerjibz 060620a
- fetch number of cpus by @spencerjibz 3ed68b1
- support both sync and async callbacks by @spencerjibz a26d72f
- update examples and tests by @spencerjibz 44d9e75
- reorganise code structure by @spencerjibz e72038a
- make job-update progress sync by @spencerjibz 54ab3a4
- update examples by @spencerjibz 0efb189
- restore connection-example by @spencerjibz 0728dcc
- Format README.md with proper headings and lists by @spencerjibz b83ec7e
- make all errors public and the worker’id by @spencerjibz 8ef613f
- return an error if a worker is already running and a called to run is made by @spencerjibz 23dc2cd
- make CollectionSuffix enum and worker_state field pub by @spencerjibz 5c07d40
- create a store trait and a redis store by @spencerjibz 438f627
- clean up and use dynamic store logic in queue-impl by @spencerjibz a131a23
- refactor to use dynamic stores by @spencerjibz ddae040
- Integrate the Store trait into queue, worker and utils function by @spencerjibz 60ccf6e
- update tests with store by @spencerjibz 8d2cd80
- clippy fix by @spencerjibz 47f6a30
- make collectionSuffix serialized as an u64 tag by @spencerjibz 86efd8b
- move event-stream-handle creating from store implementations by @spencerjibz 2762b50
- complete Store trait impl for redis-store by @spencerjibz eee2409
- dont run rocksdb-example in tests by @spencerjibz 29ffc99
- yield in task picker by @spencerjibz e32a34f
- use parking_lot primitives instead by @spencerjibz (#16 )
- simple improvement to in-memory-store by @spencerjibz 41b3654
- refactor store.set_fields and move the
move_to_statemethod out of the store by @spencerjibz 2b1467a - clean and reduce store methods by @spencerjibz ecb50b4
- expose important methods from store by @spencerjibz 51f8715
- clean up events && split functions in utils by @spencerjibz 61aebeb
- remove stream-handle, use emiiter directly to publish events for rocksdb and in-memory-store by @spencerjibz 506da8b
- clippy fix@ by @spencerjibz 61d5a38
- use a checked insert method by @spencerjibz fc80401
- use a delay-queue for timers instead of spawning task (previous timer) by @spencerjibz (#18 )
- use tasktracker, add graceful shutdown by @spencerjibz (#19 )
- make redis-store optional by @spencerjibz 88c960e
- make redis-store a default feature by @spencerjibz a6cfee3
- merge similar examples into a few with feature flags by @spencerjibz (#21 )
- use new timedmap by @spencerjibz 183a2f9
- only purge expired when ther e is some expiring soon by @spencerjibz 9f76297
- use atomiccell instead of arc-swap and use tokio-mutex for timed-map by @spencerjibz 183919d
- Refactor set_key to use Key directly by @spencerjibz f14b97c
- clippy fix && reduce critical section for race condtion (when both mutexes are held by @spencerjibz 785879b
- purge both locks and jobs concurrenctly by @spencerjibz 923ecd3
- use length in purge_expired: inMemory by @spencerjibz f13468e
- use a better and faster mutex by @spencerjibz (#22 )
- remove job from events, update examples and tests to reflct this by @spencerjibz 0e09ab3
- minor bug fixes(panics) too by @spencerjibz d34e460
- update tests by @spencerjibz (#23 )
- clippy fix in examples by @spencerjibz 6872fb5
- minor changes by @spencerjibz (#24 )
- only use async version of xutex::Mutex by @spencerjibz ad0c370
- use semaphore to limit concurrency by @spencerjibz (#25 )
- update queue-metrics in rocksdb-store by @spencerjibz (#33 )
- clean up main loop by @spencerjibz 7a98d6f
- wip by @spencerjibz 6d761d9
- clippy fix by @spencerjibz 2e420b5
- reduce verbosity of logging and refactor smt by @spencerjibz 85e4b72
- more logging by @spencerjibz aab3733
- uncomment tokio-console directives by @spencerjibz f60217f
- store joinhandle of running tasks instead of their ids only by @spencerjibz 8545cd5
- better debug formating for TimerType::PromoteJob by @spencerjibz 36f672a
- PR template by @spencerjibz (#36 )
- main_loop fix: only proceed processing if a permit is available by @spencerjibz (#37 )
- make Timer public by @spencerjibz a08e0a9
- make a worker_opts a copy type by @spencerjibz 98a2c35
- clippy fix by @spencerjibz d2bbefe
- clean & better usage of atomic ordering by @spencerjibz 989189c
- guard data in timed_maps with a parking_lot primitives by @spencerjibz 83d0178
- use parking_lot mutex instead rwlock for in-memory-store by @spencerjibz (#38 )
- maintain Acquire-Release ordering by @spencerjibz 68a8518
- exclude library tests from benchmarks by @spencerjibz 77b695e
- use the latest stable for benchmarks by @spencerjibz ebe2dbc
- wip by @spencerjibz 7552a70
- exclude library tests in benchmarks && fix caching by @spencerjibz faed406
- catch panics from sync_processors by @spencerjibz a200802
- expose worker-metrics methods from store by @spencerjibz 31e60e1
- collect metrics from timers by @spencerjibz 4449e36
- minor metrics updates by @spencerjibz 9c209a9
- a clippy fix by @spencerjibz (#41 )
- make all fields in WorkerMetrics pub by @spencerjibz be3a0a1
- make worker_metrics clonable and comparable by @spencerjibz b4653a6
- export our timedmap implementation to the library users by @spencerjibz 2d843cd
- make the
insert_expirablemethod sync by @spencerjibz b76a039 - don’t hold on to mutex for long by @spencerjibz a0c8b10
- strictly use async-mutex event in sync code by @spencerjibz 55654f6
- collective metrics for the user’s processor function instead of the worker task by @spencerjibz 5dc9271
- Fix task metrics collection: instrument spawned future, fix TTL bug, fallback task_id, add test by @Copilot 910ca34
- comments clean up by @spencerjibz 80d6f37
- clippy clean-up by @spencerjibz (#43 )
- library-rename by @spencerjibz 6b573d6
- library name correction in readme by @spencerjibz 585e1b2
- replace crossbeam-sub-crates(queue& utils) by @spencerjibz 48af5ca
- replace usage of atomic_ref_cell by @spencerjibz eabf62b
- clippy fixes by @spencerjibz (#47 )
- fix clippy warnings by @spencerjibz (#46 )
- Complete documentation coverage: all public items documented, no missing-docs gaps by @Copilot 55274f2
- Center lib.rs header with div align=center and downshift all heading levels by one by @Copilot a8731ce
- Add logo image to lib.rs centered header block by @Copilot 11c134d
- Link RedisStore in top description alongside InMemoryStore by @Copilot bad5147
- Move Tokio runtime requirements section before Installation in lib.rs docs by @Copilot 1ec88cd
- fix updating_metrics bug and add panics section to README by @Copilot 11063e6
Contributors
- @Copilot
- @blacksmith-sh[bot]
- @spencerjibz