V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  LeeReamond  ›  全部回复第 41 页 / 共 88 页
回复总数  1747
1 ... 37  38  39  40  41  42  43  44  45  46 ... 88  
2022-04-29 12:31:40 +08:00
回复了 LeeReamond 创建的主题 Python 不得不吐槽一下 Python 的任务队列,异步支持太差了
@neoblackcap 关于复用问题,我觉得进程内资源复用和分布式任务并不矛盾。程序在允许范围内最大限度复用和节约资源是并非不值得提倡,无论如何我们必须承认的是任务队列的使用需求者中相当一部分隐含着高并发需求,如果任务本身只需要单线程执行,那么也没有使用任务队列的必要。在并发需求下不复用连接资源,能承担多少负载能力呢,我很质疑。

确实如同你所说的,开源框架并没有强制要求我使用,所以没有解决我需求的责任。我发帖的目的很单纯,如同我在帖子一开始说了,部门目前使用的任务队列是自己实现的,我是带着学习参考的目的看一下所谓的 py 队列的行业标准是如何做的,然后发现被广泛传播和使用的框架不能解决一些最基础的问题,如同我在上文和本段已经描述的多种场合,将同步逻辑接管于线程池可以绕过事件循环 100%的问题,但显然这不是我们需要的方案,也不应该是框架设计和发展的方向。不过,无论如何谢谢你的回复讨论。
2022-04-29 04:19:40 +08:00
回复了 LeeReamond 创建的主题 Python 不得不吐槽一下 Python 的任务队列,异步支持太差了
@neoblackcap 如果你确实追踪了楼内讨论的话,你的代码没有解决上文提出的两个问题,

首先是消费方,按照你的逻辑该消费者会在各个 worker 子进程创建独立的事件循环并执行,

1 、我提出的如何在 task 间共享状态,这是使用异步很基本的需求,如果我不希望每次协程调用都执行一次创建和销毁后端连接池的话。
2 、你目前所谓的解决方式是,在单个 worker 进程内创建、执行、结束事件循环,然后在开启下一个循环。所以一个事件循环的意义是仅为一个协程服务,并不能并发调度协程任务,所以使用协程的意义在哪里?

其次像楼上已经有人提到的,你的生产者依然在执行同步逻辑请求任务,所以他们如何被事件循环管理?如何获取任务完成的回调?我觉得在 2022 年使用异步网关不是什么罕见需求。
2022-04-28 20:19:08 +08:00
回复了 LeeReamond 创建的主题 Python 不得不吐槽一下 Python 的任务队列,异步支持太差了
@neoblackcap 我觉得你有什么方案大可以发出来,不必要说我没有明确需求,我的需求很明确,在 aio 框架下使用消息队列,你的代码能解决到什么程度这是由你决定的,你可以发出来让大家评断。我之所以让你发代码,是因为整个楼里还是有不少网友提出了建设性意见,而你的回复中直接将网友们评价为“很多人也不看源码,也不看文档所以才有问题”,并且你觉得这些问题很简单就可以解决。我觉得既然对你来说这并不需要高昂成本,比起楼里回复很多字,不如直接用你所描述的几行代码解决问题来得实在。
2022-04-28 03:06:53 +08:00
回复了 LeeReamond 创建的主题 Python 不得不吐槽一下 Python 的任务队列,异步支持太差了
@so1n #48 问题在于你这是同步代码,转到异步里难道开线程池?

@neoblackcap 读了几遍回复感觉你说的挺乱的,你说的可以是 asyncio 可以还是 gevent 可以,社区维护者 issue 里标记说 aio 无支持,我觉得你有解决方案可以放出来,解决全网网友痛点。
2022-04-27 16:14:36 +08:00
回复了 LeeReamond 创建的主题 Python 不得不吐槽一下 Python 的任务队列,异步支持太差了
@chaoshui 我印象里生产部署是 gunicorn 套 uvicorn.workers.UvicornWorker

@bairdshi 没什么改变认知的,玩不玩具另说,起码那位老哥吐槽的几个问题确实存在,作为生产级引擎日志格式不能改确实令人惊讶,同时没有子进程守护也同样是痛点
@ipwx 你这例子重复我之前的话啊,#5 原文 “一般开发能做到知道所有资源在哪里创建,在哪里释放就可以了”,你这又扯啥不知道释放,不知道谁笑话
@icyalala 我觉得你可以区分一下现在用不上就不了解,和了解了但是很多年没用上之间的区别。
2022-04-27 13:57:42 +08:00
回复了 LeeReamond 创建的主题 Python 不得不吐槽一下 Python 的任务队列,异步支持太差了
@so1n 老哥可以一发,我们学习一下
2022-04-27 13:27:55 +08:00
回复了 LeeReamond 创建的主题 Python 不得不吐槽一下 Python 的任务队列,异步支持太差了
@est uvicorn 我还真不知道,gunicorn 以前倒是做过,记不太清了,印象里是 logging.getlogger("gunicorn.err")这种感觉的,然后重写 handler
@icyalala 感觉也问题不大?

面试为啥问很简单,因为 python 本身也没多少东西,不像 java 还有个 util 库给你问,py 本身也没啥线程支持,除了随便问点 gc 还能问啥。不过一般开发层面确实不需要了解 gc ,一般开发能做到知道所有资源在哪里创建,在哪里释放就可以了,具体怎么释放的说实话也没啥意思,像遇到循环引用之类的情况怎么处理,还有生长降级之类的,确实是写这么多年代码,看过也只是看过而已,毕竟又不要求你自己实现解释器,还真没用相关知识处理过实际问题。
看了一下以前自己的实现,subprocess.Popen 是同步代码,肯定是不在事件循环的线程里执行的,创建子进程后用 process.stdout.fileno()拿到 stdout ,然后用 selectors.DefualtSelector 挂上,印象里这个 default 在 linux 下是会自动用 epoll ,推流用 call_soon_threadsafe 就推回事件循环了。关闭子进程用的是三方库 psutil ,selector 挂起无法自动关闭,解决方法是加个 timeout ,最慢 10 秒内关闭。
2022-04-27 10:32:13 +08:00
回复了 LeeReamond 创建的主题 Python 不得不吐槽一下 Python 的任务队列,异步支持太差了
@fengjianxinghun 草,看了一下 contribute 列表还真是,原作者提交显示 2016 年就弃坑了,之后一直是社区在维护。我看他最近版本是 22 天前发布的还以为更新非常频繁
2022-04-27 10:24:13 +08:00
回复了 LeeReamond 创建的主题 Python 不得不吐槽一下 Python 的任务队列,异步支持太差了
@LeeReamond *wsgi
2022-04-27 10:23:31 +08:00
回复了 LeeReamond 创建的主题 Python 不得不吐槽一下 Python 的任务队列,异步支持太差了
@youngce 绝大多数计算库不做支持完全可以理解,基于 asgi 的 web 框架不做异步支持也可以理解,毕竟没有必要重新发明轮子,当然也有一些偏就发明了的,比如 flask 。甚至 sqlalchemy 之类的 ORM 不支持也可以理解,但是现在好像也不需要我理解了。现在 py 唯一指定任务队列,文档里第一句话写我是为了处理大量分布式任务存在的,它解决分布式任务的方式是让大家都用同步代码这。。
2022-04-27 10:19:41 +08:00
回复了 LeeReamond 创建的主题 Python 不得不吐槽一下 Python 的任务队列,异步支持太差了
@so1n 我只是很质疑,事件以及回文通知需要自己封装。还有问题又回到 worker 不支持异步调用,所以我需要在异步网关那里 await channel ,然后 worker 这边同步 publish 。过程中间的可靠性又有一大票需要维护的,那为什么我需要一个第三方任务队列呢
2022-04-27 07:27:46 +08:00
回复了 shenfu1991 创建的主题 分享发现 如何设计一个优秀的炒股/炒币系统
LZ 非常有心得,虽然帖子太长我没看,想问下 LZ 提了几套房了
2022-04-25 14:55:10 +08:00
回复了 cweijan 创建的主题 程序员 Github 彻底无法访问
1\github 防火墙内提交确实普遍发现随机断连问题
2\另外一点是 gh 官方也确认最近服务不稳定,受影响范围很大,包括很多 pages 业务。所以谁知道哪个环节导致你登不上
2022-04-25 04:14:55 +08:00
回复了 suxxx 创建的主题 Redis Redis 批量读取 Hash 数据
multi 不保证事务性,不保证能回滚,也不保证命令执行成功,但可以保证执行期间不会被其他任务打断,读取是 ok 的。
2022-04-24 17:32:09 +08:00
回复了 taizhenhua1987 创建的主题 云计算 云服务商还是远离小厂吧
@LemonK 没考虑过起诉?这直接造成你严重经济损失了
1 ... 37  38  39  40  41  42  43  44  45  46 ... 88  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2061 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 16:18 · PVG 00:18 · LAX 08:18 · JFK 11:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.