Added timeout context manager finally
This commit is contained in:
parent
e2995273cc
commit
e8660437a5
|
|
@ -16,15 +16,32 @@ class BaseModelAdmin( admin.ModelAdmin ):
|
||||||
self.message_user( request, mark_safe(f"""
|
self.message_user( request, mark_safe(f"""
|
||||||
Error For <b>{id}</b>:
|
Error For <b>{id}</b>:
|
||||||
<style>
|
<style>
|
||||||
pre.tb {{display: none;}}
|
button.tb {{
|
||||||
a.tb:focus + pre.tb {{display: block;}}
|
background: none;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
color: var(--link-fg);
|
||||||
|
text-decoration: none;
|
||||||
|
}}
|
||||||
|
button.tb:hover {{ text-decoration: underline; }}
|
||||||
|
pre.summary {{ white-space: pre-wrap; }}
|
||||||
|
pre.tb {{
|
||||||
|
display: none;
|
||||||
|
background: #060d0a;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-size: 10px;
|
||||||
|
line-height: 1.5em;
|
||||||
|
padding: 10px;
|
||||||
|
}}
|
||||||
|
pre.tb.shown {{ display: block;}}
|
||||||
</style>
|
</style>
|
||||||
<pre>{escape(e)}</pre>
|
<pre class="summary">{escape(e)}</pre>
|
||||||
<a class='tb' href='#'>[TraceBack]</a>
|
<button class='tb' onclick="event.target.parentElement.querySelector('pre.tb').classList.toggle('shown')">[TraceBack]</button>
|
||||||
<pre class='tb'>{escape(traceback_message)}</pre>
|
<pre class='tb'>{escape(traceback_message)}</pre>
|
||||||
"""), messages.ERROR
|
"""), messages.ERROR
|
||||||
)
|
)
|
||||||
else: self.message_user( request, f"Error For {id}: {e}", messages.ERROR)
|
else: self.message_user( request, f"Error For {id}: {escape(e)}", messages.ERROR)
|
||||||
|
|
||||||
|
|
||||||
if failed == 0: self.message_user( request, f"All {len(results)} Succeeded!", messages.SUCCESS )
|
if failed == 0: self.message_user( request, f"All {len(results)} Succeeded!", messages.SUCCESS )
|
||||||
|
|
|
||||||
|
|
@ -194,12 +194,21 @@ class Trace( BaseModel ):
|
||||||
await self.asave()
|
await self.asave()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
async with asyncio.timeout( None ) as tmcm:
|
||||||
|
|
||||||
|
if self.task.timeout:
|
||||||
|
tmcm.reschedule( self.loop.time() + self.task.timeout.total_seconds() )
|
||||||
|
|
||||||
if self.task.self_aware:
|
if self.task.self_aware:
|
||||||
output = await func(self, *self.args, **self.kwargs )
|
output = await func(self, *self.args, **self.kwargs )
|
||||||
else:
|
else:
|
||||||
with patch( 'builtins.print', self.print ):
|
with patch( 'builtins.print', self.print ):
|
||||||
output = await func( *self.args, **self.kwargs )
|
output = await func( *self.args, **self.kwargs )
|
||||||
|
|
||||||
|
except TimeoutError:
|
||||||
|
self.set_status( "E", f"Timed out" )
|
||||||
|
self.stderr = traceback.format_exc()
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.set_status( "E", f"Exception: {e}" )
|
self.set_status( "E", f"Exception: {e}" )
|
||||||
self.stderr = traceback.format_exc()
|
self.stderr = traceback.format_exc()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user