Commit graph

97 commits

Author SHA1 Message Date
Rafael Caricio 617bd71bd1
Update readme with execution diagram 2023-03-18 16:26:12 +01:00
Rafael Caricio e1a8eeb7de
Use Queue type directly 2023-03-14 15:06:22 +01:00
Rafael Caricio aa1144e54f
Allow definition of custom error type 2023-03-13 17:46:59 +01:00
Rafael Caricio 64e2315999
Review Queue signature 2023-03-13 14:11:19 +01:00
Rafael Caricio c99486eaa6
Make TaskStore trait object safe 2023-03-13 13:08:54 +01:00
Rafael Caricio 716eeae4b1
Handle tasks that panic 2023-03-12 18:33:00 +01:00
Rafael Caricio 10e01390b8
Allow customization of the pulling interval per queue 2023-03-12 17:15:40 +01:00
Rafael Caricio 0f0a9c2238
Tasks are let run until completion 2023-03-12 15:52:13 +01:00
Rafael Caricio 2964dc2b88
Wait all workers to stop gracefully 2023-03-12 00:18:15 +01:00
Rafael Caricio eed21d265d
Use slices where possible 2023-03-11 22:33:25 +01:00
Rafael Caricio 4895400d33
Update readme 2023-03-11 22:22:25 +01:00
Rafael Caricio 0fbc67052a
Don't generate default task unique hashes 2023-03-11 18:13:48 +01:00
Rafael Caricio 894f928c01
Support generic backend to store tasks 2023-03-11 17:49:23 +01:00
Rafael Caricio fd92b25190
Make queues configurable 2023-03-11 16:38:32 +01:00
Rafael Caricio aac0b44c7f
Make possible to provide app state to tasks 2023-03-10 23:41:34 +01:00
Rafael Caricio 7fcb63f75c
Update readme 2023-03-09 19:12:50 +01:00
Rafael Caricio 61e566ed9f
Supports graceful shutdown 2023-03-09 16:59:45 +01:00
Rafael Caricio 6ed9513baf
Update readme with backie info 2023-03-07 17:52:26 +01:00
Rafael Caricio c1fcc87885
Revamp project using newtype and rework tasks table 2023-03-07 16:41:20 +01:00
Rafael Caricio cb1ee8e854
Re-org project 2023-03-05 01:19:35 +01:00
Rafael Caricio 18303be796
Make workers go brrrr... 2023-03-04 20:46:09 +01:00
Rafael Caricio 0be173ef02
Support only async 2023-03-04 19:07:17 +01:00
Ayrat Badykov a9c4faa338
Update crates (#111)
* update `diesel-derive-enum` from `2.0.0-rc.0` to `2.0.1`

* add CHANGELOG entry
2023-02-23 09:33:24 +02:00
Ayrat Badykov 3e4bf7ddb7
chore(lint): fix clippy warnings (#109)
fix clippy warnings
2023-02-03 20:41:14 +02:00
Pmarquez 01934e231f
Documenting worker pool (#104)
* Documenting worker pool

* Update src/asynk/async_worker_pool.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_worker_pool.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_worker_pool.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_worker_pool.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_worker_pool.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* move comment to worker

* documenting blocking module

* Update src/asynk/async_worker.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_worker_pool.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/blocking/queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/blocking/queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_worker.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>
2022-12-22 15:38:56 +00:00
Ayrat Badykov 9b92a4a34e
Start documenting the project (#96)
* Start documenting the project

* Add AsyncQueue implementation

* Documenting Async runnable

* By default value in uniq function

* Fix errors and warnings async runnable docs

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* format something

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* uniq documentation

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* Update src/asynk/async_runnable.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

Co-authored-by: pxp9 <pepe.marquezromero@gmail.com>
Co-authored-by: Pmarquez <48651252+pxp9@users.noreply.github.com>
2022-10-18 08:30:17 +02:00
Ayrat Badykov 11a7dcc41e
update readme (#95) 2022-09-25 16:05:27 +03:00
Ayrat Badykov 19598d63cb
fix examples (#94) 2022-09-18 16:05:26 +03:00
Ayrat Badykov 7c0aa2fab9
Retries (#92)
* add retries and errors fields

* Exponential backoff

* async retries (#93)
2022-09-17 19:39:47 +03:00
Pmarquez fed5b9f363
Remove Task by uniq hash (#90)
* Change asynk remove_task API (just uuid needed)

* Add headers to traits

* Remove task by uniq hash (asynk module)

* Remove task by uniq hash (blocking module)

* Error if task is not uniq

* Rename to remove_task_by_metadata

* Testing remove by metadata query
2022-09-14 14:28:31 +03:00
Pmarquez d3fc479b68
Docs improvement (#80)
* I little bit improve docs

* README

* disable tests for docs
2022-09-03 14:05:58 +03:00
Pmarquez f2ca0c046d
Diesel and Uuid updated, it was not hard xd (#78) 2022-09-01 15:54:04 +00:00
pxp9 553f5f7de1
remove all scheduled tasks, necessary for El Monitorro bot 2022-09-01 01:01:15 +02:00
Pmarquez b975e893e2
From db errors (#77)
* Re-work errors

* delete aliases
2022-08-31 17:45:13 +00:00
pxp9 076d89e866
export Runnable 2022-08-31 12:05:56 +02:00
Pmarquez 91f2fdf330
Update asynk.rs 2022-08-29 22:28:43 +02:00
Pmarquez 05632a48ce
Update blocking.rs 2022-08-29 22:27:22 +02:00
Pmarquez ebe67a1e18
Update asynk.rs 2022-08-29 22:26:12 +02:00
Pmarquez a0cb08ab53
Merge branch 'master' into ayrat555/change-schema 2022-08-29 20:24:06 +00:00
Pmarquez 360140d064
Blocking refactor (#74)
* Adapting code to new Fang tables structure and refactoring to make it more generic (Not finished)

* Refactoring of the blocking module

* Finishing blocking module, starting to modify tests

* Worker tests done, Queue tests left

* Maybe all tests done ??

* Makefile clippy

* Examples fixed

* asynk feature

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>
2022-08-29 16:59:22 +00:00
Pmarquez dffee33b9c
Asynk change schema (#75)
* add uniq method for AsyncRunnable trait (#70)

* add uniq method for asyncrunnable

* add hash enum

* remove string

* return bool values

* Task struct modified (#71)

* Task struct modified

* asynk module try to adapt new scheme

* delete period in millis

* delete period in millis completed

* Cron support :D

* Cron and single Schedule support :D

* Current timestamp value

* fix bug and new test that confirms that it was a bug

* fix a call

* Update Cargo.toml

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* comments suggestions

* fix clippy

* Better user api for schedule with cron

* Cron tested with example

* Comments adressed

* Comments adressed

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>
2022-08-27 15:58:38 +00:00
Pmarquez ccd900dbae
Mod model 2018 (#73)
mod model 2018
2022-08-23 17:39:06 +03:00
Pmarquez 1dc513c4a7
Sleep with Duration (#67)
* Sleep in millis

* SleepParams Duration :D

* Readme updated!

* Changing Schedule and SleepParams to std::time::Duration

* Millis period in Periodic tasks

* Readme!

* Error management

* period_in_millis i64

* fix clippy
2022-08-18 14:39:10 +03:00
Ayrat Badykov 32b12182e0
Set task_type when starting a worker pool (#64) (#66)
* Set task_type when starting a worker pool (#64)

* make queue fields public

* Set task_type when starting a worker pool

* make fields private again

* bump version
2022-08-16 13:25:19 +03:00
Ayrat Badykov 2bf660c9ee
fix Error struct export for asynk (#61)
* fix Error struct export for `asynk`

* fix imports in tests

* bump version
2022-08-05 10:06:32 +03:00
Ayrat Badykov ead367d33f
Recover from panics draft (#57)
* Recover from panics draft

* Handling worker pool panics and Scheduler panics , fix clippy also

* Update src/asynk/async_scheduler.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>

* add new task

Co-authored-by: pxp9 <48651252+pxp9@users.noreply.github.com>
2022-08-04 15:22:53 +00:00
Pmarquez cf2ce19c97
Handle imports and dependencies (#56)
* imports, exports and README

* serde_json not necessay

* deleting tokio_postgres

* authors

* blocking example

* Update fang_examples/simple_async_worker/src/lib.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>
2022-08-03 08:37:53 +00:00
Pmarquez 140b19e6e4
Generic Worker Pool (#55)
* generic async worker pool !!

* cfg tests
2022-08-02 14:32:58 +00:00
Pmarquez 549f5a1c4b
Max number of conns (#54)
* Max number of conns

* fixing builder , connect and example

* fix comments

* fix comments

* Update src/asynk/async_queue.rs

Co-authored-by: Ayrat Badykov <ayratin555@gmail.com>
2022-08-01 19:37:32 +00:00
Pmarquez 785dc88b8f
configure workers (#52) 2022-08-01 16:55:36 +00:00