django-lambda-tasks 0.4.5__tar.gz → 0.4.7__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.
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/PKG-INFO +1 -1
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/local_executor.py +10 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/pyproject.toml +1 -1
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_local_executor.py +8 -5
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.github/workflows/ci.yml +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.github/workflows/release.yml +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.gitignore +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/async-local-execution/.config.kiro +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/async-local-execution/design.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/async-local-execution/requirements.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/async-local-execution/tasks.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/deferred-task-enqueue/.config.kiro +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/deferred-task-enqueue/design.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/deferred-task-enqueue/requirements.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/deferred-task-enqueue/tasks.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/eager-mode-example-app/.config.kiro +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/eager-mode-example-app/design.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/eager-mode-example-app/requirements.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/eager-mode-example-app/tasks.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/ignore-errors-decorator-option/.config.kiro +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/ignore-errors-decorator-option/design.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/ignore-errors-decorator-option/requirements.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/ignore-errors-decorator-option/tasks.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/import-string-task-resolution/.config.kiro +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/import-string-task-resolution/design.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/import-string-task-resolution/requirements.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/import-string-task-resolution/tasks.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/retry-delay/.config.kiro +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/retry-delay/design.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/retry-delay/requirements.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/retry-delay/tasks.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/rse-background-tasks/.config.kiro +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/rse-background-tasks/design.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/rse-background-tasks/requirements.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/rse-background-tasks/tasks.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/rse-background-tasks-bugfix/.config.kiro +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/rse-background-tasks-bugfix/bugfix.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/rse-background-tasks-bugfix/design.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/rse-background-tasks-bugfix/tasks.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/singleton-task/.config.kiro +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/singleton-task/design.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/singleton-task/requirements.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/singleton-task/tasks.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/ssm-environment-loader/.config.kiro +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/ssm-environment-loader/design.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/ssm-environment-loader/requirements.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/ssm-environment-loader/tasks.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/task-retry/.config.kiro +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/task-retry/design.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/task-retry/requirements.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/task-retry/tasks.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/steering/product.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/steering/structure.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/steering/tech.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.pre-commit-config.yaml +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.vscode/settings.json +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/README.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/example/README.md +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/example/example_app/__init__.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/example/example_app/apps.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/example/example_app/tasks.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/example/example_app/urls.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/example/example_app/views.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/example/example_project/__init__.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/example/example_project/settings.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/example/example_project/urls.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/example/example_project/wsgi.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/example/manage.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/__init__.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/admin.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/apps.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/decorators.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/environment_loader.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/handler.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/logging.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/migrations/0001_initial.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/migrations/0002_alter_taskrecord_status.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/migrations/__init__.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/models.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/secret_loader.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/settings.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/tasks.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/timeouts.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/conftest.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/settings.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_admin.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_decorator.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_decorators.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_deferred_enqueue.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_environment_loader.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_handler.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_kwargs_only.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_logging.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_memory_limit.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_models.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_secret_loader.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_serializer.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_settings.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_tasks.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_timeout_validation.py +0 -0
- {django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/tests/test_timeouts.py +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""Process pool executor for async local task execution."""
|
|
2
2
|
|
|
3
|
+
import atexit
|
|
3
4
|
import logging
|
|
4
5
|
import uuid
|
|
5
6
|
from concurrent.futures import Future, ProcessPoolExecutor
|
|
@@ -18,6 +19,14 @@ def _pool_initializer() -> None:
|
|
|
18
19
|
django.setup()
|
|
19
20
|
|
|
20
21
|
|
|
22
|
+
def _shutdown_pool() -> None:
|
|
23
|
+
"""Shut down the pool at interpreter exit to release semaphores."""
|
|
24
|
+
global _pool
|
|
25
|
+
if _pool is not None:
|
|
26
|
+
_pool.shutdown(wait=True, cancel_futures=True)
|
|
27
|
+
_pool = None
|
|
28
|
+
|
|
29
|
+
|
|
21
30
|
def get_pool() -> ProcessPoolExecutor:
|
|
22
31
|
"""Return the shared ProcessPoolExecutor, creating it on first call."""
|
|
23
32
|
global _pool
|
|
@@ -27,6 +36,7 @@ def get_pool() -> ProcessPoolExecutor:
|
|
|
27
36
|
max_workers=conf.LOCAL_WORKERS,
|
|
28
37
|
initializer=_pool_initializer,
|
|
29
38
|
)
|
|
39
|
+
atexit.register(_shutdown_pool)
|
|
30
40
|
return _pool
|
|
31
41
|
|
|
32
42
|
|
|
@@ -126,12 +126,11 @@ def test_mutual_exclusion_of_eager_and_local_workers(n):
|
|
|
126
126
|
def _reset_pool():
|
|
127
127
|
"""Reset the module-level _pool after each test to avoid cross-test contamination."""
|
|
128
128
|
yield
|
|
129
|
-
|
|
130
|
-
import lambda_tasks.local_executor
|
|
129
|
+
import lambda_tasks.local_executor
|
|
131
130
|
|
|
131
|
+
if lambda_tasks.local_executor._pool is not None:
|
|
132
|
+
lambda_tasks.local_executor._pool.shutdown(wait=True, cancel_futures=True)
|
|
132
133
|
lambda_tasks.local_executor._pool = None
|
|
133
|
-
except ModuleNotFoundError:
|
|
134
|
-
pass
|
|
135
134
|
|
|
136
135
|
|
|
137
136
|
class TestGetPool:
|
|
@@ -216,7 +215,11 @@ def test_pool_created_with_correct_worker_count(n):
|
|
|
216
215
|
pool = lambda_tasks.local_executor.get_pool()
|
|
217
216
|
assert pool._max_workers == n
|
|
218
217
|
finally:
|
|
219
|
-
#
|
|
218
|
+
# Shut down properly to avoid leaked semaphores
|
|
219
|
+
if lambda_tasks.local_executor._pool is not None:
|
|
220
|
+
lambda_tasks.local_executor._pool.shutdown(
|
|
221
|
+
wait=True, cancel_futures=True
|
|
222
|
+
)
|
|
220
223
|
lambda_tasks.local_executor._pool = None
|
|
221
224
|
|
|
222
225
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/async-local-execution/design.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/async-local-execution/tasks.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/deferred-task-enqueue/design.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/deferred-task-enqueue/tasks.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/eager-mode-example-app/design.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/eager-mode-example-app/tasks.md
RENAMED
|
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
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/retry-delay/.config.kiro
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/retry-delay/requirements.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/rse-background-tasks/design.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/rse-background-tasks/tasks.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/singleton-task/.config.kiro
RENAMED
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/singleton-task/design.md
RENAMED
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/singleton-task/requirements.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/ssm-environment-loader/design.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/ssm-environment-loader/tasks.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/.kiro/specs/task-retry/requirements.md
RENAMED
|
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
|
{django_lambda_tasks-0.4.5 → django_lambda_tasks-0.4.7}/lambda_tasks/migrations/0001_initial.py
RENAMED
|
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
|