【发布时间】:2023-01-25 00:45:25
【问题描述】:
我想在基于 Django 类的 Redirectview 中运行长时间运行的任务。在此运行任务完成之前,我想返回模板。这是我的代码。
我尝试使用此代码。
class Redirect_to_page(RedirectView):
async def sleep_long(self):
for i in range(1,10):
print(f'Run {i}')
await asyncio.sleep(1)
pass
query_string = True
pattern_name = 'pages:redirect_page'
def get_redirect_url(self, *args, **kwargs):
asyncio.run(self.sleep_long())
print('This run before complete!')
return super().get_redirect_url(*args, **kwargs)
这就是结果。
Run 1
Run 2
Run 3
Run 4
Run 5
Run 6
Run 7
Run 8
Run 9
This run before complete!
但我想要这样的结果_
Run 1
This run before complete!
Run 2
Run 3
Run 4
Run 5
Run 6
Run 7
Run 8
Run 9
【问题讨论】:
标签: python-3.x django python-asyncio django-class-based-views