diff --git a/asyncron/base/admin.py b/asyncron/base/admin.py index 58e7098..20fa562 100644 --- a/asyncron/base/admin.py +++ b/asyncron/base/admin.py @@ -14,11 +14,12 @@ class BaseModelAdmin( admin.ModelAdmin ): if request.user.is_superuser: traceback_message = ''.join(traceback.TracebackException.from_exception(e).format()) self.message_user( request, mark_safe(f""" - Error For {id}: {e} + Error For {id}: +
{escape(e)}
[TraceBack]
{escape(traceback_message)}
"""), messages.ERROR
diff --git a/asyncron/models.py b/asyncron/models.py
index a2744c7..029a617 100644
--- a/asyncron/models.py
+++ b/asyncron/models.py
@@ -155,7 +155,7 @@ class Trace( BaseModel ):
assert self.status in "SAE", f"Cannot reschedule a task that is in {self.get_status_display()} state!"
await self.eval_related('task')
- assert self.task.interval, "This is not a periodic task! Nothing to reschedule."
+ assert self.task.interval or target_datetime, "This is not a periodic task! Nothing to reschedule."
self.set_status( "S", reason )
if target_datetime:
diff --git a/asyncron/workers.py b/asyncron/workers.py
index 3d48953..b9bbe0d 100644
--- a/asyncron/workers.py
+++ b/asyncron/workers.py
@@ -362,7 +362,7 @@ class AsyncronWorker:
from .models import Task, Trace
#start services that aren't running yet.
- Ts = Task.objects.filter( interval = None ).exclude(
+ Ts = Task.objects.filter( interval = None, timeout = None ).exclude(
trace__status__in = "WR"
).exclude( worker_type = "D" if self.model.is_robust else "R" )