Source code for betty.job
"""
Provide utilities for running jobs concurrently.
"""
from __future__ import annotations
from datetime import datetime
from typing import Any, TYPE_CHECKING
from betty.cache.memory import MemoryCache
if TYPE_CHECKING:
from betty.cache import Cache
[docs]
class Context:
"""
Define a job context.
"""
[docs]
def __init__(self):
self._cache: Cache[Any] = MemoryCache()
self._start = datetime.now()
@property
def cache(self) -> Cache[Any]:
"""
Provide a cache for this job context.
The cache is volatile and will be discarded once the job context is completed.
"""
return self._cache
@property
def start(self) -> datetime:
"""
When the job started.
"""
return self._start