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"""
|
||||
Error For <b>{id}</b>:
|
||||
<style>
|
||||
pre.tb {{display: none;}}
|
||||
a.tb:focus + pre.tb {{display: block;}}
|
||||
button.tb {{
|
||||
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>
|
||||
<pre>{escape(e)}</pre>
|
||||
<a class='tb' href='#'>[TraceBack]</a>
|
||||
<pre class="summary">{escape(e)}</pre>
|
||||
<button class='tb' onclick="event.target.parentElement.querySelector('pre.tb').classList.toggle('shown')">[TraceBack]</button>
|
||||
<pre class='tb'>{escape(traceback_message)}</pre>
|
||||
"""), 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 )
|
||||
|
|
|
|||
|
|
@ -194,11 +194,20 @@ class Trace( BaseModel ):
|
|||
await self.asave()
|
||||
|
||||
try:
|
||||
if self.task.self_aware:
|
||||
output = await func(self, *self.args, **self.kwargs )
|
||||
else:
|
||||
with patch( 'builtins.print', self.print ):
|
||||
output = await func( *self.args, **self.kwargs )
|
||||
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:
|
||||
output = await func(self, *self.args, **self.kwargs )
|
||||
else:
|
||||
with patch( 'builtins.print', self.print ):
|
||||
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:
|
||||
self.set_status( "E", f"Exception: {e}" )
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user