queuerPy 0.22.0__tar.gz → 0.23.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {queuerpy-0.22.0/queuerPy.egg-info → queuerpy-0.23.0}/PKG-INFO +13 -1
- {queuerpy-0.22.0 → queuerpy-0.23.0}/README.md +12 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/_version.py +1 -1
- {queuerpy-0.22.0 → queuerpy-0.23.0}/pyproject.toml +2 -2
- {queuerpy-0.22.0 → queuerpy-0.23.0/queuerPy.egg-info}/PKG-INFO +13 -1
- {queuerpy-0.22.0 → queuerpy-0.23.0}/LICENSE +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/MANIFEST.in +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/__init__.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/core/__init__.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/core/broadcaster.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/core/context.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/core/listener.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/core/retryer.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/core/runner.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/core/scheduler.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/core/ticker.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/database/__init__.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/database/db_job.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/database/db_listener.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/database/db_master.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/database/db_worker.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/__init__.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/database.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/error.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/logging.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/sql.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/task.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/model/__init__.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/model/batch_job.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/model/connection.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/model/job.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/model/master.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/model/options.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/model/options_on_error.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/model/task.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/model/worker.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/py.typed +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuerPy.egg-info/SOURCES.txt +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuerPy.egg-info/dependency_links.txt +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuerPy.egg-info/requires.txt +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuerPy.egg-info/top_level.txt +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_global.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_job.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_listener.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_master.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_next_interval.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_task.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_worker.py +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/setup.cfg +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/sql/job.sql +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/sql/master.sql +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/sql/notify.sql +0 -0
- {queuerpy-0.22.0 → queuerpy-0.23.0}/sql/worker.sql +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: queuerPy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.23.0
|
|
4
4
|
Summary: A Python implementation of the queuer system - a job queuing and processing system with PostgreSQL backend
|
|
5
5
|
Author-email: Simon Herrmann <siherrmann@users.noreply.github.com>
|
|
6
6
|
Maintainer-email: Simon Herrmann <siherrmann@users.noreply.github.com>
|
|
@@ -107,6 +107,18 @@ job = q.add_job(example_task, paramKeyed1="test", debug=True)
|
|
|
107
107
|
job = q.add_job(example_task, 5, "12", paramKeyed1="test", debug=True)
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
+
### 🔗 Automatic Parent-Child Job Tracking
|
|
111
|
+
|
|
112
|
+
If you add a new job *from within* the execution of another job, queuerPy will automatically track this relationship. Thanks to native Python `ContextVar` propagation, the new job will seamlessly inherit the `parent_rid` of the current job.
|
|
113
|
+
|
|
114
|
+
This enables you to create deep, scalable trees of sub-jobs without having to manually pass job IDs around in your function parameters!
|
|
115
|
+
|
|
116
|
+
### 🛡️ Database Stability & Timeouts
|
|
117
|
+
|
|
118
|
+
queuerPy is built for robust, uninterrupted long-term polling. It handles PostgreSQL connection losses, cursor iteration interruptions, and blocking calls seamlessly:
|
|
119
|
+
- **Statement & Connection Timeouts**: To prevent workers from hanging indefinitely, queuerPy enforces strict `connect_timeout` (10s) and query `statement_timeout` (30s) at the connection layer.
|
|
120
|
+
- **Resilient Polling**: Iterative fetches and polling loops are wrapped in comprehensive error checking. If the database crashes, queuerPy will gracefully wait and reconnect rather than crashing the worker.
|
|
121
|
+
|
|
110
122
|
In the initialisation of the queuer the existence of the necessary database tables is checked and if they don't exist they get created. The database is configured with these environment variables:
|
|
111
123
|
|
|
112
124
|
```bash
|
|
@@ -64,6 +64,18 @@ job = q.add_job(example_task, paramKeyed1="test", debug=True)
|
|
|
64
64
|
job = q.add_job(example_task, 5, "12", paramKeyed1="test", debug=True)
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
+
### 🔗 Automatic Parent-Child Job Tracking
|
|
68
|
+
|
|
69
|
+
If you add a new job *from within* the execution of another job, queuerPy will automatically track this relationship. Thanks to native Python `ContextVar` propagation, the new job will seamlessly inherit the `parent_rid` of the current job.
|
|
70
|
+
|
|
71
|
+
This enables you to create deep, scalable trees of sub-jobs without having to manually pass job IDs around in your function parameters!
|
|
72
|
+
|
|
73
|
+
### 🛡️ Database Stability & Timeouts
|
|
74
|
+
|
|
75
|
+
queuerPy is built for robust, uninterrupted long-term polling. It handles PostgreSQL connection losses, cursor iteration interruptions, and blocking calls seamlessly:
|
|
76
|
+
- **Statement & Connection Timeouts**: To prevent workers from hanging indefinitely, queuerPy enforces strict `connect_timeout` (10s) and query `statement_timeout` (30s) at the connection layer.
|
|
77
|
+
- **Resilient Polling**: Iterative fetches and polling loops are wrapped in comprehensive error checking. If the database crashes, queuerPy will gracefully wait and reconnect rather than crashing the worker.
|
|
78
|
+
|
|
67
79
|
In the initialisation of the queuer the existence of the necessary database tables is checked and if they don't exist they get created. The database is configured with these environment variables:
|
|
68
80
|
|
|
69
81
|
```bash
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "queuerPy"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.23.0"
|
|
8
8
|
description = "A Python implementation of the queuer system - a job queuing and processing system with PostgreSQL backend"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "Apache-2.0"
|
|
@@ -92,7 +92,7 @@ pythonVersion = "3.8"
|
|
|
92
92
|
pythonPlatform = "All"
|
|
93
93
|
|
|
94
94
|
[tool.mypy]
|
|
95
|
-
python_version = "0.
|
|
95
|
+
python_version = "0.23.0"
|
|
96
96
|
warn_return_any = true
|
|
97
97
|
warn_unused_configs = true
|
|
98
98
|
disallow_untyped_defs = true
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: queuerPy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.23.0
|
|
4
4
|
Summary: A Python implementation of the queuer system - a job queuing and processing system with PostgreSQL backend
|
|
5
5
|
Author-email: Simon Herrmann <siherrmann@users.noreply.github.com>
|
|
6
6
|
Maintainer-email: Simon Herrmann <siherrmann@users.noreply.github.com>
|
|
@@ -107,6 +107,18 @@ job = q.add_job(example_task, paramKeyed1="test", debug=True)
|
|
|
107
107
|
job = q.add_job(example_task, 5, "12", paramKeyed1="test", debug=True)
|
|
108
108
|
```
|
|
109
109
|
|
|
110
|
+
### 🔗 Automatic Parent-Child Job Tracking
|
|
111
|
+
|
|
112
|
+
If you add a new job *from within* the execution of another job, queuerPy will automatically track this relationship. Thanks to native Python `ContextVar` propagation, the new job will seamlessly inherit the `parent_rid` of the current job.
|
|
113
|
+
|
|
114
|
+
This enables you to create deep, scalable trees of sub-jobs without having to manually pass job IDs around in your function parameters!
|
|
115
|
+
|
|
116
|
+
### 🛡️ Database Stability & Timeouts
|
|
117
|
+
|
|
118
|
+
queuerPy is built for robust, uninterrupted long-term polling. It handles PostgreSQL connection losses, cursor iteration interruptions, and blocking calls seamlessly:
|
|
119
|
+
- **Statement & Connection Timeouts**: To prevent workers from hanging indefinitely, queuerPy enforces strict `connect_timeout` (10s) and query `statement_timeout` (30s) at the connection layer.
|
|
120
|
+
- **Resilient Polling**: Iterative fetches and polling loops are wrapped in comprehensive error checking. If the database crashes, queuerPy will gracefully wait and reconnect rather than crashing the worker.
|
|
121
|
+
|
|
110
122
|
In the initialisation of the queuer the existence of the necessary database tables is checked and if they don't exist they get created. The database is configured with these environment variables:
|
|
111
123
|
|
|
112
124
|
```bash
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|