Added explicit stdout print and direct task execution

This commit is contained in:
Queue A
2026-07-31 15:47:19 +02:00
parent e0af14e1b1
commit 6b2a583b16
2 changed files with 51 additions and 1 deletions
@@ -0,0 +1,48 @@
##
#
# Command: python manage.py run_asyncron_task
#
##
import traceback, logging
import asyncio
import time
from django.core.management.base import BaseCommand, CommandError
from django.conf import settings
from asyncron.models import Task
class bcolors:
HEADER = '\033[95m'
OKBLUE = '\033[94m'
OKCYAN = '\033[96m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
class Command(BaseCommand):
help = 'Start an Asyncorn Worker'
def handle( self, *args, task_name, **kwargs ):
task = Task.objects.filter( name__endswith = task_name ).first()
if not task:
print("Could not find this task, these are the options:\n", "\n - ".join( Task.registered_tasks ))
return
import asyncio
print(f"Running Task: {task}")
trace = task.new_trace()
trace.show_prints = True
asyncio.run( trace.start() )
trace.save()
def add_arguments( self, parser ):
parser.add_argument('task_name', default = "")
#
+3 -1
View File
@@ -239,5 +239,7 @@ class Trace( BaseModel ):
def print( self, *args, sep = " ", end = "\n", file = None, flush = True ): #We get 'file' here to fool tasks that aren't self_aware def print( self, *args, sep = " ", end = "\n", file = None, flush = True ): #We get 'file' here to fool tasks that aren't self_aware
assert hasattr(self, 'commit_on_new_print_task'), "trace.print needs to be called while a trace.commit_on_new_print task is active!" assert hasattr(self, 'commit_on_new_print_task'), "trace.print needs to be called while a trace.commit_on_new_print task is active!"
self.stdout += sep.join( str(i) for i in args ) + end string = sep.join( str(i) for i in args ) + end
self.stdout += string
if flush: self.new_print.set() if flush: self.new_print.set()
if getattr(self, "show_prints", False): print( string )