@@ -34,15 +34,19 @@ def _execute_task(self, task_result: TaskResult) -> None:
34
34
async_to_sync (task .func ) if iscoroutinefunction (task .func ) else task .func
35
35
)
36
36
37
- task_result . started_at = timezone .now ()
37
+ object . __setattr__ ( task_result , " started_at" , timezone .now () )
38
38
try :
39
- task_result ._return_value = json_normalize (
40
- calling_task_func (* task_result .args , ** task_result .kwargs )
39
+ object .__setattr__ (
40
+ task_result ,
41
+ "_return_value" ,
42
+ json_normalize (
43
+ calling_task_func (* task_result .args , ** task_result .kwargs )
44
+ ),
41
45
)
42
46
except BaseException as e :
43
- task_result . finished_at = timezone .now ()
47
+ object . __setattr__ ( task_result , " finished_at" , timezone .now () )
44
48
try :
45
- task_result . _exception_data = exception_to_dict (e )
49
+ object . __setattr__ ( task_result , " _exception_data" , exception_to_dict (e ) )
46
50
except Exception :
47
51
logger .exception ("Task id=%s unable to save exception" , task_result .id )
48
52
@@ -53,14 +57,14 @@ def _execute_task(self, task_result: TaskResult) -> None:
53
57
task .module_path ,
54
58
ResultStatus .FAILED ,
55
59
)
56
- task_result . status = ResultStatus .FAILED
60
+ object . __setattr__ ( task_result , " status" , ResultStatus .FAILED )
57
61
58
62
# If the user tried to terminate, let them
59
63
if isinstance (e , KeyboardInterrupt ):
60
64
raise
61
65
else :
62
- task_result . finished_at = timezone .now ()
63
- task_result . status = ResultStatus .COMPLETE
66
+ object . __setattr__ ( task_result , " finished_at" , timezone .now () )
67
+ object . __setattr__ ( task_result , " status" , ResultStatus .COMPLETE )
64
68
65
69
def enqueue (
66
70
self , task : Task [P , T ], args : P .args , kwargs : P .kwargs
0 commit comments