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.
Files changed (54) hide show
  1. {queuerpy-0.22.0/queuerPy.egg-info → queuerpy-0.23.0}/PKG-INFO +13 -1
  2. {queuerpy-0.22.0 → queuerpy-0.23.0}/README.md +12 -0
  3. {queuerpy-0.22.0 → queuerpy-0.23.0}/_version.py +1 -1
  4. {queuerpy-0.22.0 → queuerpy-0.23.0}/pyproject.toml +2 -2
  5. {queuerpy-0.22.0 → queuerpy-0.23.0/queuerPy.egg-info}/PKG-INFO +13 -1
  6. {queuerpy-0.22.0 → queuerpy-0.23.0}/LICENSE +0 -0
  7. {queuerpy-0.22.0 → queuerpy-0.23.0}/MANIFEST.in +0 -0
  8. {queuerpy-0.22.0 → queuerpy-0.23.0}/__init__.py +0 -0
  9. {queuerpy-0.22.0 → queuerpy-0.23.0}/core/__init__.py +0 -0
  10. {queuerpy-0.22.0 → queuerpy-0.23.0}/core/broadcaster.py +0 -0
  11. {queuerpy-0.22.0 → queuerpy-0.23.0}/core/context.py +0 -0
  12. {queuerpy-0.22.0 → queuerpy-0.23.0}/core/listener.py +0 -0
  13. {queuerpy-0.22.0 → queuerpy-0.23.0}/core/retryer.py +0 -0
  14. {queuerpy-0.22.0 → queuerpy-0.23.0}/core/runner.py +0 -0
  15. {queuerpy-0.22.0 → queuerpy-0.23.0}/core/scheduler.py +0 -0
  16. {queuerpy-0.22.0 → queuerpy-0.23.0}/core/ticker.py +0 -0
  17. {queuerpy-0.22.0 → queuerpy-0.23.0}/database/__init__.py +0 -0
  18. {queuerpy-0.22.0 → queuerpy-0.23.0}/database/db_job.py +0 -0
  19. {queuerpy-0.22.0 → queuerpy-0.23.0}/database/db_listener.py +0 -0
  20. {queuerpy-0.22.0 → queuerpy-0.23.0}/database/db_master.py +0 -0
  21. {queuerpy-0.22.0 → queuerpy-0.23.0}/database/db_worker.py +0 -0
  22. {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/__init__.py +0 -0
  23. {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/database.py +0 -0
  24. {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/error.py +0 -0
  25. {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/logging.py +0 -0
  26. {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/sql.py +0 -0
  27. {queuerpy-0.22.0 → queuerpy-0.23.0}/helper/task.py +0 -0
  28. {queuerpy-0.22.0 → queuerpy-0.23.0}/model/__init__.py +0 -0
  29. {queuerpy-0.22.0 → queuerpy-0.23.0}/model/batch_job.py +0 -0
  30. {queuerpy-0.22.0 → queuerpy-0.23.0}/model/connection.py +0 -0
  31. {queuerpy-0.22.0 → queuerpy-0.23.0}/model/job.py +0 -0
  32. {queuerpy-0.22.0 → queuerpy-0.23.0}/model/master.py +0 -0
  33. {queuerpy-0.22.0 → queuerpy-0.23.0}/model/options.py +0 -0
  34. {queuerpy-0.22.0 → queuerpy-0.23.0}/model/options_on_error.py +0 -0
  35. {queuerpy-0.22.0 → queuerpy-0.23.0}/model/task.py +0 -0
  36. {queuerpy-0.22.0 → queuerpy-0.23.0}/model/worker.py +0 -0
  37. {queuerpy-0.22.0 → queuerpy-0.23.0}/py.typed +0 -0
  38. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer.py +0 -0
  39. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuerPy.egg-info/SOURCES.txt +0 -0
  40. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuerPy.egg-info/dependency_links.txt +0 -0
  41. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuerPy.egg-info/requires.txt +0 -0
  42. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuerPy.egg-info/top_level.txt +0 -0
  43. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_global.py +0 -0
  44. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_job.py +0 -0
  45. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_listener.py +0 -0
  46. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_master.py +0 -0
  47. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_next_interval.py +0 -0
  48. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_task.py +0 -0
  49. {queuerpy-0.22.0 → queuerpy-0.23.0}/queuer_worker.py +0 -0
  50. {queuerpy-0.22.0 → queuerpy-0.23.0}/setup.cfg +0 -0
  51. {queuerpy-0.22.0 → queuerpy-0.23.0}/sql/job.sql +0 -0
  52. {queuerpy-0.22.0 → queuerpy-0.23.0}/sql/master.sql +0 -0
  53. {queuerpy-0.22.0 → queuerpy-0.23.0}/sql/notify.sql +0 -0
  54. {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.22.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
@@ -1,6 +1,6 @@
1
1
  """Version information for queuerPy package."""
2
2
 
3
- __version__ = "0.22.0"
3
+ __version__ = "0.23.0"
4
4
  __version_info__ = tuple(int(part) for part in __version__.split("."))
5
5
 
6
6
  # For compatibility
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "queuerPy"
7
- version = "0.22.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.22.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.22.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