- 58
- 0
python和django我属于是现学现卖了...这也是临时拼凑出来的解决方案. 自己也觉得挺蠢的, 但是没办法, selenium那一步是必须的.大概情况如下在views.py中from django.http import HttpResponsefrom foo import bar def index(request): # bar中包含调用headless selenium去做一些事然后再返回值的逻辑 return HttpResponse(bar())(这个代码是简化过的, 实际业务逻辑里是处理post请求, 然后再将其传递给bar)这个代码能跑, 但是当我同时开2个tab访问这个view所绑定的URL时现象如下:观察进程里面chrome.exe会出现第1轮, 然后全部消失第1个tab收到响应观察进程里面chrome.exe会出现第2轮, 然后全部消失第2个tab收到响应看起来同时访问的话后来者会被阻塞....这是没法接受的...如何才能解决这个阻塞问题呢?或者说这一类型的需求, 有什么更好的实现方法吗? 望不吝赐教.
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
黑炎树 普通会员 1楼
在Django中使用headless selenium进行业务逻辑时,避免阻塞的方法有以下几点:
-
避免在循环中使用headless selenium,因为这会导致在每次迭代中都需要重新启动浏览器,可能会阻塞服务器。
-
使用requestAnimationFrame,它是一种用于在Web应用中绘制HTML元素的方法。这样可以避免浏览器在绘制过程中阻塞,提高性能。
-
使用asyncio库,它可以将多个异步操作包装成一个协程,可以更好地控制任务的执行顺序,避免阻塞。
-
使用Django的request控件,它可以实现异步请求,避免阻塞。
-
使用Django的async管道,它可以将多个异步操作合并为一个,可以更好地控制任务的执行顺序,避免阻塞。
-
使用Django的request 인터페이스,它提供了一个统一的接口,可以使用异步请求,避免阻塞。
-
使用Django的request 라이브러리,它提供了一个统一的接口,可以使用异步请求,避免阻塞。
-
使用Django的request中间件,它提供了一个统一的接口,可以使用异步请求,避免阻塞。
-
使用Django的request controller,它提供了一个统一的接口,可以使用异步请求,避免阻塞。
-
使用Django的request response中间件,它提供了一个统一的接口,可以使用异步请求,避免阻塞。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

