Skip to content

Commit 2859d23

Browse files
committed
fix: SchedulerConfiguration
1 parent 1e7990e commit 2859d23

File tree

8 files changed

+23
-19
lines changed

8 files changed

+23
-19
lines changed

docs/changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# Changelog
22

3+
## v4.0.0b2 🌈
4+
5+
- Fix bug when `SCHEDULER_CONFIG` is `SchedulerConfiguration`
36
## v4.0.0b1 🌈
47

58
### Breaking Changes

docs/configuration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ All default settings for scheduler can be in one dictionary in `settings.py`:
77
```python
88
from typing import Dict
99

10-
from scheduler.settings_types import SchedulerConfig, Broker, QueueConfiguration, UnixSignalDeathPenalty
10+
from scheduler.settings_types import SchedulerConfiguration, Broker, QueueConfiguration, UnixSignalDeathPenalty
1111

1212

13-
SCHEDULER_CONFIG = SchedulerConfig(
13+
SCHEDULER_CONFIG = SchedulerConfiguration(
1414
EXECUTIONS_IN_PAGE=20,
1515
SCHEDULER_INTERVAL=10,
1616
BROKER=Broker.REDIS,

docs/installation.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@
5252

5353
4. Optional: Configure default values for queuing jobs from code:
5454
```python
55-
from scheduler.settings_types import SchedulerConfig, Broker, UnixSignalDeathPenalty
55+
from scheduler.settings_types import SchedulerConfiguration, Broker, UnixSignalDeathPenalty
5656

57-
SCHEDULER_CONFIG = SchedulerConfig(
57+
SCHEDULER_CONFIG = SchedulerConfiguration(
5858
EXECUTIONS_IN_PAGE=20,
5959
SCHEDULER_INTERVAL=10,
6060
BROKER=Broker.REDIS,

docs/usage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ You can set in `settings.py` a default value for `DEFAULT_JOB_TTL` and `DEFAULT_
4343

4444
```python
4545
# settings.py
46-
SCHEDULER_CONFIG = SchedulerConfig(
46+
SCHEDULER_CONFIG = SchedulerConfiguration(
4747
DEFAULT_SUCCESS_TTL=10 * 60, # Time To Live (TTL) in seconds to keep successful job results
4848
DEFAULT_FAILURE_TTL=365 * 24 * 60 * 60, # Time To Live (TTL) in seconds to keep job failure information
4949
DEFAULT_JOB_TTL=10 * 60, # Time To Live (TTL) in seconds to keep job information

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ name = "django-tasks-scheduler"
77
packages = [
88
{ include = "scheduler" },
99
]
10-
version = "4.0.0b1"
10+
version = "4.0.0b2"
1111
description = "An async job scheduler for django using redis/valkey brokers"
1212
readme = "README.md"
1313
keywords = ["redis", "valkey", "django", "background-jobs", "job-queue", "task-queue", "redis-queue", "scheduled-jobs"]

scheduler/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
__all__ = [
66
"QueueConfiguration",
7-
"SchedulerConfig",
7+
"SchedulerConfiguration",
88
"job",
99
]
1010

11-
from scheduler.settings_types import QueueConfiguration, SchedulerConfig
11+
from scheduler.settings_types import QueueConfiguration, SchedulerConfiguration
1212
from scheduler.decorators import job

scheduler/settings.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
from django.conf import settings
55
from django.core.exceptions import ImproperlyConfigured
66

7-
from scheduler.settings_types import SchedulerConfig, Broker, QueueConfiguration
7+
from scheduler.settings_types import SchedulerConfiguration, Broker, QueueConfiguration
88

99
logger = logging.getLogger("scheduler")
1010
logging.basicConfig(level=logging.DEBUG)
1111

1212
_QUEUES: Dict[str, QueueConfiguration] = dict()
13-
SCHEDULER_CONFIG: SchedulerConfig = SchedulerConfig()
13+
SCHEDULER_CONFIG: SchedulerConfiguration = SchedulerConfiguration()
1414

1515

1616
class QueueNotFoundError(Exception):
@@ -35,14 +35,15 @@ def conf_settings():
3535
_QUEUES[queue_name] = QueueConfiguration(**queue_config)
3636

3737
user_settings = getattr(settings, "SCHEDULER_CONFIG", {})
38-
if "FAKEREDIS" in user_settings:
39-
logger.warning("Configuration using FAKEREDIS is deprecated. Use BROKER='fakeredis' instead")
40-
user_settings["BROKER"] = Broker.FAKEREDIS if user_settings["FAKEREDIS"] else Broker.REDIS
41-
user_settings.pop("FAKEREDIS")
42-
for k in user_settings:
43-
if k not in SCHEDULER_CONFIG.__annotations__:
44-
raise ImproperlyConfigured(f"Unknown setting {k} in SCHEDULER_CONFIG")
45-
setattr(SCHEDULER_CONFIG, k, user_settings[k])
38+
if isinstance(user_settings, dict):
39+
if "FAKEREDIS" in user_settings:
40+
logger.warning("Configuration using FAKEREDIS is deprecated. Use BROKER='fakeredis' instead")
41+
user_settings["BROKER"] = Broker.FAKEREDIS if user_settings["FAKEREDIS"] else Broker.REDIS
42+
user_settings.pop("FAKEREDIS")
43+
for k in user_settings:
44+
if k not in SCHEDULER_CONFIG.__annotations__:
45+
raise ImproperlyConfigured(f"Unknown setting {k} in SCHEDULER_CONFIG")
46+
setattr(SCHEDULER_CONFIG, k, user_settings[k])
4647

4748

4849
conf_settings()

scheduler/settings_types.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def _token_validation(token: str) -> bool:
1616

1717

1818
@dataclass(slots=True, kw_only=True)
19-
class SchedulerConfig:
19+
class SchedulerConfiguration:
2020
"""Configuration for django-tasks-scheduler"""
2121

2222
EXECUTIONS_IN_PAGE: int = 20

0 commit comments

Comments
 (0)