mirror of
https://github.com/idrainformatica/PecFlow.git
synced 2026-06-16 12:45:42 +02:00
Implementazioni varie
This commit is contained in:
@@ -166,12 +166,16 @@ class SendService:
|
||||
now = datetime.now(tz=timezone.utc)
|
||||
has_files = bool(attachments)
|
||||
|
||||
# Invio differito: il messaggio parte in stato 'draft' se programmato
|
||||
scheduled_at = getattr(data, "scheduled_at", None)
|
||||
is_scheduled = scheduled_at is not None and scheduled_at > now
|
||||
|
||||
message = Message(
|
||||
tenant_id=current_user.tenant_id,
|
||||
mailbox_id=data.mailbox_id,
|
||||
direction="outbound",
|
||||
pec_type="posta_certificata",
|
||||
state="queued",
|
||||
state="draft" if is_scheduled else "queued",
|
||||
subject=data.subject,
|
||||
from_address=mailbox.email_address,
|
||||
to_addresses=[str(a) for a in data.to_addresses],
|
||||
@@ -211,6 +215,7 @@ class SendService:
|
||||
max_attempts=5,
|
||||
created_by=current_user.id,
|
||||
queued_at=now,
|
||||
scheduled_at=scheduled_at if is_scheduled else None,
|
||||
)
|
||||
self.db.add(job)
|
||||
await self.db.flush()
|
||||
@@ -218,7 +223,15 @@ class SendService:
|
||||
# ── Enqueue job arq ───────────────────────────────────────────────────
|
||||
try:
|
||||
arq_pool = await _get_arq_pool()
|
||||
await arq_pool.enqueue_job("send_pec", str(job.id))
|
||||
if is_scheduled and scheduled_at:
|
||||
# Invio differito: defer_until = scheduled_at
|
||||
await arq_pool.enqueue_job(
|
||||
"send_pec",
|
||||
str(job.id),
|
||||
_defer_until=scheduled_at,
|
||||
)
|
||||
else:
|
||||
await arq_pool.enqueue_job("send_pec", str(job.id))
|
||||
except Exception as e:
|
||||
from app.core.logging import get_logger
|
||||
logger = get_logger(__name__)
|
||||
|
||||
Reference in New Issue
Block a user