V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  fzzff  ›  全部回复第 2 页 / 共 7 页
回复总数  134
1  2  3  4  5  6  7  
2023 年 12 月 18 日
回复了 ohayoo 创建的主题 Python 新手求助一个蛋疼的问题
session 为什么不能写为全局变量?
2023 年 12 月 5 日
回复了 fzzff 创建的主题 买买买 决赛圈 iqoo12/魅族 20pro/魅族 21 怎么选
@jgh004 我的刚开始也是时好时坏, 取出来重装一下就能用一段时间, 今天彻底歇菜了
2023 年 12 月 5 日
回复了 fzzff 创建的主题 买买买 决赛圈 iqoo12/魅族 20pro/魅族 21 怎么选
@ICU 淘宝挺多店可以 3200 左右拿下的
2023 年 12 月 5 日
回复了 fzzff 创建的主题 买买买 决赛圈 iqoo12/魅族 20pro/魅族 21 怎么选
@tcl 你说的这两个缺点我倒是完全不在意, 但是价格问题还是有点在意, 所以也在纠结魅族 20pro 和魅族 21, 20pro 基本 3200 左右就拿顶配了, 21 对比 20pro 的升级值不值 800 块
2023 年 12 月 5 日
回复了 fzzff 创建的主题 买买买 决赛圈 iqoo12/魅族 20pro/魅族 21 怎么选
有没有老魅族用户现身说法
2023 年 12 月 5 日
回复了 fzzff 创建的主题 买买买 决赛圈 iqoo12/魅族 20pro/魅族 21 怎么选
@iv8d 把魅族 20pro 放上去确实是价格心动,3200 的价格能拿下 12+512
2023 年 12 月 5 日
回复了 fzzff 创建的主题 买买买 决赛圈 iqoo12/魅族 20pro/魅族 21 怎么选
@TAFMT 线下实体店看了看 iqoo12 和 x100 感觉 x100 外观不太喜欢, 正面和我 p30p 差不多, 后面那么大摄像头模组接受不了, 小米的话个人单纯不太喜欢这个品牌所以不考虑, 因为近期刷到一些魅族 flyme 系统的小窗功能, 感觉很杀我目前很倾向于魅族里选, 但还是有点纠结整体性能游戏体验等等会跟 iqoo12 差很多
@hello2090 你的意思是先将图片转为视频, 再由视频转为视频流吗? 前端那边推送过来的流是源源不断的, 是需要按规则处理成多段视频再合并成视频流吗
2023 年 7 月 28 日
回复了 ohayoo 创建的主题 Python 请大佬帮忙瞄一眼我这个丑陋的异步协程代码
asyncio.run(main(uris))无论如何不应该放到循环里, 每次 asyncio.run()会创建一个新的事件循环, 你这个代码跑完创建了一堆事件循环同时运行性能必然受损, 而且你的 result 接收到的也不是完整的结果, 如果你想并发运行一组任务应该用 asyncio.gather
2023 年 7 月 28 日
回复了 ohayoo 创建的主题 Python 请大佬帮忙瞄一眼我这个丑陋的异步协程代码
以上是 chatgpt 给出的代码优化建议, 另外个人建议你把请求库替换成 httpx
2023 年 7 月 28 日
回复了 ohayoo 创建的主题 Python 请大佬帮忙瞄一眼我这个丑陋的异步协程代码
以下是对代码进行优化的建议:

1. 使用异步文件读取:可以使用`aiofiles`库来实现异步文件读取,从而避免阻塞事件循环。这将使得文件的读取操作也能并发进行,提高效率。

2. 使用异步上下文管理器:`aiohttp`支持异步上下文管理器,你可以使用`async with`语法来创建`ClientSession`,这样会更加简洁,而且会在任务完成后自动关闭会话。

3. 使用`asyncio.as_completed`:在并发执行任务时,可以使用`asyncio.as_completed`来获取已完成的任务,而不是等待所有任务都完成再处理结果。这样可以更早地得到一部分结果,并在需要时立即处理。

4. 异常处理:对于异步代码,异常处理十分重要。可以在任务执行时捕获异常,并记录错误信息,以便后续分析和处理。

下面是优化后的代码:

```python
import asyncio
import aiofiles
from aiohttp import ClientSession

async def delete_file(session: ClientSession, sem: asyncio.Semaphore, uri: str):
headers = {'Authorization': 'xxxxxxxxxxx'}
url = api + uri
try:
async with sem:
async with session.delete(url, headers=headers) as response:
return uri, response.status
except Exception as e:
# 处理异常,比如记录错误日志
print(f"Error occurred while processing {uri}: {str(e)}")
return uri, None

async def main(uris):
sem = asyncio.Semaphore(100)
async with ClientSession() as session:
tasks = [delete_file(session, sem, uri) for uri in uris]
for future in asyncio.as_completed(tasks):
uri, status = await future
if status is not None:
print(f"{uri}: {status}")
else:
print(f"{uri}: Error")

async def read_uris(filename):
async with aiofiles.open(filename, mode='r') as fp:
async for line in fp:
yield line.strip()

if __name__ == '__main__':
asyncio.run(main(read_uris("uris.txt")))
```

在优化后的代码中,我们使用`aiofiles`库来异步读取文件,并使用`async for`来逐行获取 URI 。同时,我们使用`asyncio.as_completed`来处理已完成的任务,这样在某些任务执行较慢时,可以更早地输出结果,提高实时性。另外,我们在`delete_file`函数中增加了异常处理,确保在出现异常时不会导致整个任务中断。
2022 年 12 月 30 日
回复了 sevenandeleven 创建的主题 Python flask + nginx + uwsgi +docker-compose
docker-compose.yml 的目录层级放哪了, 是不是 build 指定路径不对找不到对应的 Dockerfile
@veoco 感谢回复, 我测试了一下你说的这种方式, 还是报相同的错误, 因为是把另一个项目的用 asyncio 实现的异步爬虫代码移植到一个 django 项目作为 celery 任务, django 项目的 celery 启动用是用的 gevent 模式所以触发了这个错误, 目前已经解决, 把数据库写入部分改成了使用 aiomysql 操作
2022 年 10 月 19 日
回复了 911061873 创建的主题 Python 类继承及调用问题
简单工厂设计模式
2022 年 8 月 10 日
回复了 sunmoon1983 创建的主题 MySQL 求一个数据表设计的思路!
这个类似的需求我也遇到过, 因为涉及的逻辑比较多所以没有动原表存的 json 字段, 增加了个一对多的表专门用来查询
2022 年 8 月 10 日
回复了 cs419 创建的主题 Android 华为 p40 锁了,能解吗
华为账号被锁之前机主肯定联系过你室友吧, 即便没联系过, 这种手机也别去买, 占这便宜干啥呢?
2022 年 8 月 9 日
回复了 cs419 创建的主题 Android 华为 p40 锁了,能解吗
不还给原机主?
1  2  3  4  5  6  7  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3030 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 13:07 · PVG 21:07 · LAX 06:07 · JFK 09:07
♥ Do have faith in what you're doing.