feat(scheduler,conversations,api): cron and schedule in the gateway tz, job runs persisted
This commit is contained in:
@@ -23,7 +23,7 @@ import logging
|
||||
import re
|
||||
import uuid
|
||||
from dataclasses import dataclass, field
|
||||
from datetime import UTC, date, datetime, timedelta
|
||||
from datetime import UTC, date, datetime, timedelta, tzinfo
|
||||
from typing import TYPE_CHECKING, Any, cast
|
||||
|
||||
from claude_agent_sdk import (
|
||||
@@ -298,6 +298,10 @@ class Conversations:
|
||||
self._tasks: set[asyncio.Task[None]] = set()
|
||||
self._idle_task: asyncio.Task[None] | None = None
|
||||
|
||||
@property
|
||||
def db(self) -> Database:
|
||||
return self._db
|
||||
|
||||
@property
|
||||
def queue(self) -> InjectQueue:
|
||||
return self._queue
|
||||
@@ -964,6 +968,7 @@ class Conversations:
|
||||
if result.text.strip():
|
||||
await self.inject(parent, result.text, urgency="normal", origin="слив")
|
||||
await self.set_status(conv, "merged")
|
||||
await self.mark_closed(conv)
|
||||
self._bus.publish(
|
||||
"conversation.merged",
|
||||
conversation_id=conv.external_id,
|
||||
@@ -1946,7 +1951,7 @@ class Conversations:
|
||||
)
|
||||
|
||||
|
||||
def parse_at(at: str) -> datetime:
|
||||
def parse_at(at: str, tz: tzinfo = UTC) -> datetime:
|
||||
raw = at.strip()
|
||||
match = _RELATIVE.match(raw.replace(" ", ""))
|
||||
if match:
|
||||
@@ -1954,7 +1959,7 @@ def parse_at(at: str) -> datetime:
|
||||
return datetime.now(UTC) + timedelta(seconds=int(amount) * _UNITS[unit])
|
||||
parsed = datetime.fromisoformat(raw)
|
||||
if parsed.tzinfo is None:
|
||||
parsed = parsed.astimezone()
|
||||
parsed = parsed.replace(tzinfo=tz)
|
||||
return parsed.astimezone(UTC)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user