django-lambda-tasks 0.4.7__tar.gz → 0.4.8__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.7 → django_lambda_tasks-0.4.8}/PKG-INFO +1 -1
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/local_executor.py +11 -1
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/pyproject.toml +1 -1
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_local_executor.py +15 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.github/workflows/ci.yml +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.github/workflows/release.yml +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.gitignore +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/async-local-execution/.config.kiro +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/async-local-execution/design.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/async-local-execution/requirements.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/async-local-execution/tasks.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/deferred-task-enqueue/.config.kiro +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/deferred-task-enqueue/design.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/deferred-task-enqueue/requirements.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/deferred-task-enqueue/tasks.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/eager-mode-example-app/.config.kiro +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/eager-mode-example-app/design.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/eager-mode-example-app/requirements.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/eager-mode-example-app/tasks.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/ignore-errors-decorator-option/.config.kiro +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/ignore-errors-decorator-option/design.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/ignore-errors-decorator-option/requirements.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/ignore-errors-decorator-option/tasks.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/import-string-task-resolution/.config.kiro +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/import-string-task-resolution/design.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/import-string-task-resolution/requirements.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/import-string-task-resolution/tasks.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/retry-delay/.config.kiro +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/retry-delay/design.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/retry-delay/requirements.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/retry-delay/tasks.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/rse-background-tasks/.config.kiro +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/rse-background-tasks/design.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/rse-background-tasks/requirements.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/rse-background-tasks/tasks.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/rse-background-tasks-bugfix/.config.kiro +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/rse-background-tasks-bugfix/bugfix.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/rse-background-tasks-bugfix/design.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/rse-background-tasks-bugfix/tasks.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/singleton-task/.config.kiro +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/singleton-task/design.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/singleton-task/requirements.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/singleton-task/tasks.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/ssm-environment-loader/.config.kiro +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/ssm-environment-loader/design.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/ssm-environment-loader/requirements.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/ssm-environment-loader/tasks.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/task-retry/.config.kiro +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/task-retry/design.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/task-retry/requirements.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/task-retry/tasks.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/steering/product.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/steering/structure.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/steering/tech.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.pre-commit-config.yaml +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.vscode/settings.json +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/README.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/example/README.md +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/example/example_app/__init__.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/example/example_app/apps.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/example/example_app/tasks.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/example/example_app/urls.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/example/example_app/views.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/example/example_project/__init__.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/example/example_project/settings.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/example/example_project/urls.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/example/example_project/wsgi.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/example/manage.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/__init__.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/admin.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/apps.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/decorators.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/environment_loader.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/handler.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/logging.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/migrations/0001_initial.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/migrations/0002_alter_taskrecord_status.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/migrations/__init__.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/models.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/secret_loader.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/settings.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/tasks.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/lambda_tasks/timeouts.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/conftest.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/settings.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_admin.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_decorator.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_decorators.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_deferred_enqueue.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_environment_loader.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_handler.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_kwargs_only.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_logging.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_memory_limit.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_models.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_secret_loader.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_serializer.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_settings.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_tasks.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_timeout_validation.py +0 -0
- {django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/tests/test_timeouts.py +0 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import atexit
|
|
4
4
|
import logging
|
|
5
|
+
import signal
|
|
5
6
|
import uuid
|
|
6
7
|
from concurrent.futures import Future, ProcessPoolExecutor
|
|
7
8
|
|
|
@@ -13,7 +14,16 @@ _pool: ProcessPoolExecutor | None = None
|
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
def _pool_initializer() -> None:
|
|
16
|
-
"""Run once per worker process.
|
|
17
|
+
"""Run once per worker process.
|
|
18
|
+
|
|
19
|
+
Ignores SIGINT so that Ctrl+C is handled exclusively by the parent
|
|
20
|
+
process, which shuts down the pool cleanly via atexit. This prevents
|
|
21
|
+
workers from being killed mid-operation and leaking semaphores.
|
|
22
|
+
|
|
23
|
+
Then sets up Django for task execution.
|
|
24
|
+
"""
|
|
25
|
+
signal.signal(signal.SIGINT, signal.SIG_IGN)
|
|
26
|
+
|
|
17
27
|
import django
|
|
18
28
|
|
|
19
29
|
django.setup()
|
|
@@ -570,6 +570,21 @@ class TestPoolInitializer:
|
|
|
570
570
|
|
|
571
571
|
mock_django_setup.assert_called_once()
|
|
572
572
|
|
|
573
|
+
def test_pool_initializer_ignores_sigint(self):
|
|
574
|
+
"""_pool_initializer() sets SIGINT to SIG_IGN so workers don't receive Ctrl+C."""
|
|
575
|
+
import signal
|
|
576
|
+
|
|
577
|
+
from lambda_tasks.local_executor import _pool_initializer
|
|
578
|
+
|
|
579
|
+
original_handler = signal.getsignal(signal.SIGINT)
|
|
580
|
+
try:
|
|
581
|
+
with patch("django.setup"):
|
|
582
|
+
_pool_initializer()
|
|
583
|
+
|
|
584
|
+
assert signal.getsignal(signal.SIGINT) == signal.SIG_IGN
|
|
585
|
+
finally:
|
|
586
|
+
signal.signal(signal.SIGINT, original_handler)
|
|
587
|
+
|
|
573
588
|
|
|
574
589
|
@pytest.mark.django_db(transaction=True)
|
|
575
590
|
class TestTransactionCommitIntegration:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/async-local-execution/design.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/async-local-execution/tasks.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/deferred-task-enqueue/design.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/deferred-task-enqueue/tasks.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/eager-mode-example-app/design.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.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.7 → django_lambda_tasks-0.4.8}/.kiro/specs/retry-delay/.config.kiro
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/retry-delay/requirements.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/rse-background-tasks/design.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.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.7 → django_lambda_tasks-0.4.8}/.kiro/specs/singleton-task/.config.kiro
RENAMED
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/singleton-task/design.md
RENAMED
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/singleton-task/requirements.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/ssm-environment-loader/design.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.kiro/specs/ssm-environment-loader/tasks.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_lambda_tasks-0.4.7 → django_lambda_tasks-0.4.8}/.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.7 → django_lambda_tasks-0.4.8}/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
|