1
abcbuzhiming 2021-07-18 15:59:07 +08:00
python 在 web 领域从来就没占据主流过啊,就算没有 node 的年代,也是 PHP 和 Java 各领风骚,python 在 web 领域从来就是 [能做] 而已,优势,谈不上
|
2
2kCS5c0b0ITXE5k2 2021-07-18 16:01:09 +08:00 2
Python 库多. 代码量小. 学习成本低. 性能不是绝对.
|
3
Gorgine 2021-07-18 16:01:10 +08:00
小公司用 开发效率高
|
4
evilStart OP @abcbuzhiming 是的。我是说相比之前来说现在 python 的使用空间被 nodejs 进一步压缩了
|
6
hronro 2021-07-18 16:14:52 +08:00
我个人感觉,现在还选 Python 的原因大概都是团队(或者项目负责人)对 Python 最熟之类的人为因素吧。
|
7
inframe 2021-07-18 17:32:35 +08:00
企业内部系统,python 开发比较快,
反正不需要并发,所以一般用哪个赶快上线用哪个 |
8
TypeError 2021-07-18 17:34:44 +08:00
新的后端项目不是 go 比较多么,国内很多公司都是 python 转 go 吧,没见过多少转 nodejs 的
|
9
westoy 2021-07-18 17:39:46 +08:00 2
node.js 最火是七八年前, 现在也是前浪了, 就不要互相伤害了
|
10
aladdindingding 2021-07-18 18:17:51 +08:00
存在即合理,如果你想创业,写代码的就几个人 你会选择 python 还是 java
|
11
pcbl 2021-07-18 18:33:59 +08:00
node.js 还活着啊。。
|
12
roundgis 2021-07-18 18:53:18 +08:00 via Android 1
大多數的系統還不需要到拼性能的地步
真到了那個階段,需要考慮的地方就更多了 先活到那個階段再說 |
13
Vegetable 2021-07-18 19:01:35 +08:00 7
想当然了吧,python 的确半死不活,但是绝对比 nodejs 好多了。
|
14
slideclick 2021-07-18 20:18:09 +08:00
@Vegetable Tibco 前三甲还是半死不活? 力压了 c++和当年为了代替 c++而发明的 c#.现在什么正红?难道是 golang?忘记当年 node.js 红火了?
|
15
slideclick 2021-07-18 20:20:11 +08:00
要论复杂逻辑 python 不比 java 差.
java 火有几个原因,1 人多便宜好找 2 高人多因为用的公司多 3 docker 时代语言不重要了,以前的 PaaS 很少支持 java 的在 docker 之前那时 14,15 年很多创业的用 python |
16
love 2021-07-18 20:26:25 +08:00 5
写了多年 python web,我现在也用 node
node + typescript 的确各方面吊打 python,不但是开发速度和运行速度,编辑器和相应工具,包管理都更好用 而且和前端用同一种语言也是个巨大加分项,不但少一门语言且能共用很多类型定义 ts 类型灵活性方面比 java 牛逼多了,当然 java 粉会说 java 适合低水平程序员合作,这就没什么好说的,虽然我也写过二年 java 但真没觉得 java 生态很简单 |
17
janxin 2021-07-18 20:26:51 +08:00
用 NodeJS 的原因是前端开发太多了?
|
18
WenhaoWu 2021-07-18 20:50:25 +08:00 via Android
node 有什么框架类似 Django + DRF 的?
|
19
shuimugan 2021-07-18 21:15:39 +08:00 3
在 2017 年用 tornado 搞过一个并发要求高的站点,被 python 各种的异步 io 库糟糕的生态给搞得差点放弃,从那以后我就转 node.js 了.
最近在建设 cmdb,cmdb 这类应用大部分都是 python 开发的,看了一圈代码和功能,发现大部分的工作量都可以被无头 cms 接管过去.于是我现在用 https://directus.io/ 这个框架搭建各种 xx 内部管理系统,工作效率直接起飞,一天能顶 2 周的工作量.有的不好做的话另外起一个站点用 nest.js + prisma 缝合一下,速度也直接起飞了.打个镜像丢到 serverless 上面最低配(128MB 内存)就能玩起来,性能还很好. |
20
oneforallsoft 2021-07-18 21:52:15 +08:00
|
21
namelosw 2021-07-18 23:23:44 +08:00
说得好像之前有优势一样…
Node.js 之前有优势也得是 PHP 和 Ruby 啊… |
22
O5oz6z3 2021-07-18 23:34:58 +08:00
py 拿头打得赢 js,浏览器能直接运行 py 再说。
|
23
echo1937 2021-07-19 00:27:25 +08:00 via iPhone 1
py 和 js 的开发者从来就不是高重合的群体,都是各写各的,各用各的;
web 现在是红海,发展比较平稳,各语言份额很稳固; nodejs 远远没有前几年预测的那么火,为了性能和时髦转 go 的更多; |
24
SenLief 2021-07-19 00:32:18 +08:00 via Android
nodejs 多不就是因为人手都是前端,毕竟现在是 js 天下。
|
25
Lemeng 2021-07-19 00:41:43 +08:00
没得比的
|
26
dayeye2006199 2021-07-19 03:11:13 +08:00 2
一大票初创企业都是跑 python web 的,特别是非 2c 导向的(其实就是公司里面前端比较少,一般都是一些后端出来干的)。
对初创企业来讲,性能一般不是优先考虑点。团队的熟悉程度和开发的效率都更重要。 你觉得一些特别无聊的框架,例如 django,DRF 这种好像一直都没什么变化的,其实才是一个初创团队的好框架,上下限稳定,无微不至的保姆服务,对用最快速度搞出一个还不错的产品来投放市场来讲是很重要的。 web 其实占很多 2b 产品的部分很少。后面的 infra 管理、存储、数据密集型运算需要更多的精力来完成。正巧很多时候做这些的人都能整两手 python,所以选 web 框架的时候,django flask 这类会变成很自然的选择。 |
27
wolfan 2021-07-19 05:06:48 +08:00
现在不是稍大的企业就上 java 搞业务么。
|
28
iPhone9 2021-07-19 05:13:21 +08:00
python 原来在欧美有优势,在国内没有优势。现在在欧美也没优势了。
|
29
oneforallsoft 2021-07-19 05:53:58 +08:00 via Android
Python 相比 laravel 如何 以及 rails
到底优在哪 |
30
adrianzhang 2021-07-19 08:29:13 +08:00 via iPhone
@shuimugan 对你说的无头 cms 接管非常感兴趣,有没有开源项目呢?
|
31
xiaolinjia 2021-07-19 08:31:42 +08:00
我觉得在国内还是 java,go 的天下。nodejs 和 py 都一般,就没必要互相伤害了。
|
32
dream4ever 2021-07-19 08:36:04 +08:00
@adrianzhang Parse-Server,Strapi,这种都是。
|
33
raptor 2021-07-19 08:51:17 +08:00 5
前端党真是爱想当然,你们什么时候能把不断重新发明轮子的爱好给改了,可能还有点希望。
|
34
qrobot 2021-07-19 09:08:46 +08:00 3
@raptor #33
不知道什么叫做不断重新发明轮子。 - Webpack 的出现,主要是为了解决打包的问题,并且可以配置插件来做一些功能 - React 只不过是一个 JS 操作 DOM,采用虚拟 DOM 来进行操作的,方便了开发人员 - Angular 只不过也是一个 JS 操作 DOM 的库,不过采用双向数据绑定。 - Vue 只不过也是一个 JS 操作 DOM 的库,它减少了 Angular 的复杂度 - PReact Fast 3kB alternative to React with the same modern API. - Babel 解决浏览器兼容问题 无论从哪个方向来说,这都不是所谓的 `不断重新发明轮子` 每个 JS 库的偏向点都不一样。 他们都拥有自己不同的生态。如果硬要说,类似于 Linux 的分叉,Debian 和 Centos 的区别。Arch 和 Manjaro 的区别 |
35
wellsc 2021-07-19 09:09:44 +08:00
这个问题你应该四五年前提,现在 nodejs,python 都不太行了
|
36
bnm965321 2021-07-19 09:32:10 +08:00
nodes 元编程能力不太行。prisma 这个 ORM 需要搞出一个 DSL 来描述 models,然后还有用 Rust 写的 connector 。
|
37
jjx 2021-07-19 09:51:04 +08:00 1
典型的我即世界
|
38
xemtof 2021-07-19 10:02:11 +08:00
@dayeye2006199 其实初创企业最应该用 Rails,快速上线业务。
|
39
Mohanson 2021-07-19 10:05:36 +08:00 via Android
问题是 nodejs 在 web 也没优势啊,现在都是转 go
|
40
moxuanyuan 2021-07-19 10:11:46 +08:00 2
@jjx #37 凡说“典型的我即世界”,都是“典型的我即世界”
|
41
ChevalierLxc 2021-07-19 10:15:00 +08:00
@O5oz6z3 虽然我是 nodejs ,但是还是不太支持你这种说法,这里的 nodejs 明显指后端
|
42
adrianzhang 2021-07-19 10:16:01 +08:00
@dream4ever 谢谢!了解了一下什么是无头 CMS 。我其实是想了解一下 @shuimugan 自己开发的 xx cmdb 或 xx 管理系统有没有开源。看看究竟怎么实现 2 周工作量 1 天完成。
|
43
zhuweiyou 2021-07-19 10:16:32 +08:00
什么时候优势过
|
45
qq976739120 2021-07-19 10:31:05 +08:00
国内绝大部分的公司是碰不到性能问题的
|
46
huang119412 2021-07-19 10:51:05 +08:00
@slideclick python 无声明类型无多线程的脚本语言和 java 这种天生多线程的编译语言比逻辑,不是自取其辱?不说使用场景天天就知道秒秒秒?
|
47
dream4ever 2021-07-19 10:52:13 +08:00
@adrianzhang 对业务的熟练 + 对工具的熟练 + 选择合适的工具,或许是可以做到以前需要 2 周工作量的任务在 1 天内完成的。
|
48
ch2 2021-07-19 11:16:56 +08:00
现在已经是云原生的时代了
|
49
pusheax 2021-07-19 11:24:17 +08:00
python 之前接触过一个小项目。不止是并发性能的问题,是稳定性都有大问题。试过一个 bug,在不到百人访问的情况下把物理主机吃满(应该是 8c,8g )。后来就不敢用了,毕竟这种低级问题在 ngnix 、apache 里面都很难出现。
|
50
codepark 2021-07-19 11:38:09 +08:00
哎,你用 python 用 nodejs 能咋的,你换个工具而已
|
51
adrianzhang 2021-07-19 11:42:30 +08:00
@dream4ever 其实就是需要讲讲怎么用无头 cms 开发业务。
|
52
todd7zhang 2021-07-19 11:44:04 +08:00
太久没有用 node.js ,不知道 node_modules 这个文件夹还大不大?
|
53
O5oz6z3 2021-07-19 11:46:18 +08:00
@ChevalierLxc 是我想当然了,我还以为前后端一把梭会是优势。
|
54
winglight2016 2021-07-19 11:55:10 +08:00
@slideclick #15 xd,你说的是结果,不是原因。java 火的原因是 2000 年前后,在企业端服务器领域,j2ee 框架战胜了另外一个网景的服务端技术。在此之后就是滚雪球式的发展,因为 j2ee 的服务器完成了大部分性能扩展的任务,对于企业和开发者比较友好,所以进入了互联网爆发期之后,大部分互联网公司采用了这种“成熟”技术。nodejs 和 python 被用于互联网上的开发时间上比较靠后,所以一步慢步步慢,只能在个别领域向 java 发起挑战。
最后,python 和 nodejs 的优势都差不多吧,轻量、快速开发、脚手架成熟,只不过 python 还能用于 AI 应用,nodejs 能用在跨平台,比如手机 app based on RN |
55
raptor 2021-07-19 12:01:39 +08:00
|
56
popil1987 2021-07-19 12:10:34 +08:00
nodejs 比 python 要快
fastify 压测是 fastapi 两倍 django 有可订制后台,nestjs 没有,django 适合快速出原型 prisma 比 python 系的 orm 都要快乐 数据处理和人工智能 nodejs 是弟弟 strapi 比 wagtail 好用 saleor 比 vendure 成熟 odoo,erpnext 永远的神打遍 nodejs 无敌手 不外包的话, python 就老老实实数据科学和人工智能吧 nodejs 就老老实实前端吧 web 框架就不麻烦二老了 |
57
walpurgis 2021-07-19 12:20:59 +08:00 via iPhone
感觉 python 重心不在 web 上了,以后会越来越弱势
nodejs 现在是稳定发展期了,有用户基数在,不会太差 node 进场其实是最晚的,es5 坑也多,估计那时劝退了不少人,现在有 ts 加持,体验不输 java |
58
gimp 2021-07-19 12:52:25 +08:00 1
在 Web 领域都是弟弟,就别互相伤害了。
|
59
dcsuibian 2021-07-19 13:11:25 +08:00
个人感觉,没有。真的想不到任何优势。
不过作为一个胶水语言,作一个微服务倒还是不错的。 |
60
ysc3839 2021-07-19 13:21:17 +08:00 via Android
@slideclick C# 应该是为了代替 Java,而不是 C++。目前 C# 的 AOT 还不是很流行,其中之一的 il2cpp 还得依赖 C++,谈不上代替。
|
61
ysc3839 2021-07-19 13:29:22 +08:00 via Android
@love 说到 Python 对比 JavaScript,我觉得 Python 的 async function 没有 js 那么简单直观。
Python 内置的 async function 和 asyncio 库结合得很深,但是它又不把 asyncio 给隐藏起来,使得用户要学 async function 就绕不开 asyncio 。有的时候我只是想像 js Promise 那样来代替一下回调函数,Python 就很难用几行代码实现,甚至比 C++20 的 coroutine 都还难。 相比之下 js 的异步系统虽然也是跟内部的消息队列绑定的,但是 js 把消息队列隐藏起来了,暴露出来的接口简单易用。 所以我要写 Web 后端等异步程序时,我会首选 js,写些同步的小脚本才用 Python 。 |
62
Evilk 2021-07-19 15:36:12 +08:00
PHP 不香吗?
|
63
DeWjjj 2021-07-19 15:45:40 +08:00 1
@evilStart 做自己监控的后端可视化还是很强的,但是单独拎出来做一个业务后端就不行。
现在,很多都是拿 python 做工业监控后端,拿 c++类去做工业后端。 |
64
ytmsdy 2021-07-19 15:56:21 +08:00
国内绝大多数的应用都跑步到 python 的性能极限,python 跑的慢,绝大多数都是写不好导致的问题。
python 相对于 java 而言,简练很多,写起来贼快,但是多从业者的素质也有相应提高。 java 是规范性的工程型语音,只要不作死,慢不到哪里去。 python 相对于 java 花式语法比较多,用的不好容易翻车。 |
65
sudoy 2021-07-19 16:03:53 +08:00
python 做做内部软件完全够用啦
|
66
37Y37 2021-07-19 16:28:57 +08:00
很多时候我都不需要性能,简单好用最重要
|
67
fanym 2021-07-19 16:53:28 +08:00
又是语言开战了,python 没用过,但是 node,python 动态类型的代码写着爽,维护就知道哭了,接 node 的二手代码的动态类型,代码在哪调用和定义都不好找。用 ts 的项目基本很少,好多是代码 es5 和 es6 语法还混着来的项目,还有工作岗位和待遇都比 java 这种强类型的少。有机会还是去 java 卷吧。
|
68
xcstream 2021-07-19 17:03:31 +08:00
科学计算可以
|
69
yumenlong 2021-07-19 17:32:13 +08:00
python 适合快速开发,开发效率高,请参考 Instagram,十几个开发者用 Python 就撑到了几十亿用户,说 python 性能不够的可以先考虑考虑你需要多少性能.
|
70
simapple 2021-07-19 17:32:43 +08:00
web 开发 一般不光是 web 交互逻辑的处理,往往还包括很多数据和文件的处理,再加上一些脚本工作和离线数据处理,这些都加起来,成熟的 web 开发语言 python php ruby 都是很有优势的
|
71
liprais 2021-07-19 17:39:13 +08:00
@yumenlong 事实上 100 万 dau 的时候就被 facebook 收购了,然后 engineering 是 fb 在做了
|
72
z740713651 2021-07-19 18:14:12 +08:00
希望大家都别进军 python, 不要再卷啦~~~
参考 https://studygolang.com/articles/25842 ----------------------------------------------------------------- python 拿 wsl2 虚拟机跑的 python 3.8.5 gunicorn 20.1.0 fastapi 0.66.0 ```python3 from fastapi import FastAPI app = FastAPI() @app.get('/') async def index(): return {'message': 'hello world'} ``` ``` bash gunicorn -w 4 -k uvicorn.workers.UvicornWorker fastapi_demo:app --bind 0.0.0.0:8003 ``` ** webbench -c 1000 -t 30 http://localhost:8003 ** Webbench - Simple Web Benchmark 1.5 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. Benchmarking: GET http://localhost:8003/ 1000 clients, running 30 sec. Speed=392214 pages/min, 1105383 bytes/sec. Requests: 196106 susceed, 1 failed. ----------------------------------------------------------------- node 因为不熟练 wsl2 上跑不起来 用 windows 跑的 wsl2 上测试的 node --version v14.16.1 这边没有用 nodejs 上生产,不知道要不要类似 gunicorn 的东西去启动 问了前端同学抄的代码 ```js const fs = require('fs') var express = require('express');//引入 express 模块 var app = express(); var cors = require('cors'); app.use(cors()) app.get('/',function(req,res){ res.send('HellowWorld') }); var server = app.listen(8005,function(){ console.log('use this port: http://0.0.0.0:8005'); }) ``` ``` nodenode_demo.js ``` webbench -c 1000 -t 30 http://192.168.100.228:3000/ Webbench - Simple Web Benchmark 1.5 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. Benchmarking: GET http://192.168.100.228:3000/ 1000 clients, running 30 sec. Speed=15598 pages/min, 62911 bytes/sec. Requests: 7799 susceed, 0 failed. ------------------------------- python-fastapi Speed=392214 pages/min, 1105383 bytes/sec. Requests: 196106 susceed, 1 failed. nodejs Speed=15598 pages/min, 62911 bytes/sec. Requests: 7799 susceed, 0 failed. 代码贴上面了 希望大佬们也验证下。。。 |
73
z740713651 2021-07-19 18:15:52 +08:00
发现我起了 4 个 worker 数据应该是除以 4 ?
|
74
lbunderway 2021-07-19 18:46:19 +08:00
ubuntu 虚拟机 6 核 8G
nodejs+koa2 webbench -c 1000 -t 30 http://127.0.0.1:21000/test Webbench - Simple Web Benchmark 1.5 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. Benchmarking: GET http://127.0.0.1:21000/test 1000 clients, running 30 sec. Speed=321800 pages/min, 1261769 bytes/sec. Requests: 160900 susceed, 0 failed. 启 2 个线程: Speed=396884 pages/min, 1554454 bytes/sec. Requests: 198442 susceed, 0 failed. ---------------------------------------------------------------- webbench -c 5000 -t 30 http://127.0.0.1:21000/test Webbench - Simple Web Benchmark 1.5 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. Benchmarking: GET http://127.0.0.1:21000/test 5000 clients, running 30 sec. Speed=317996 pages/min, 1248053 bytes/sec. Requests: 158998 susceed, 0 failed. 启 2 个线程: Speed=417516 pages/min, 1635270 bytes/sec. Requests: 208758 susceed, 0 failed. |
75
oneforallsoft 2021-07-19 19:09:33 +08:00
咋没有都熟悉 laravel rails django nodejs 的人来说 到底最喜欢哪个
鄙人表示简单 crud 离不开 php laravel python 强制缩进不好 nodejs 要导入各种包不好 php 都是内置函数 比毛性能啊 要性能就直接选这些其中一种做 crud 访问量高的模块就 GO |
76
NCE 2021-07-19 19:33:42 +08:00
@oneforallsoft 我来说说吧
Laravel 的设计思想我很喜欢,你用我推荐我用我不用,原因是像 tp,ci,Yii 这类框架可以做到开箱即用,Laravel 的 compose 依赖太多了,加上墙的缘故,用起来会大大影响效率和稳定性。 rails:现在 ruby 已经升级到 3.x 了,ror 的性能也提升翻倍,如果是小型业团队起步试错我推荐用这个,开箱即用提高效率,ror 的设计原则也能约束成员开发风格。 django:个人理解不如 rails 优秀。但 python 的 web 库也很多,django 是唯一一个大而全开箱即用的,比较适合熟悉 python 的人员起步做 web 用,你总不会发着工资让一个做数据分析的去学 ROR 吧? 你会 python,那好,2 天给我做个 api 出来,压榨 extension 价值首选。 再说下 nodejs,nodejs 的繁荣完全是让写前端的人有机会干掉写后端的,一般公司前端都和美工一样是配角,有 nodejs 终于可以做主角了。另外 js 开发门槛低约束少性能高,很多人做 demo 都用这个,大型互联网用的还是少,特别是在 golang 出现后,基本正式场合都被 golang 占了,非正式场合 nodejs 还是很随意的。。。但在富前端开发上还是 nodejs 占主流,这个和前面 3 个没啥关系了。 |
77
brando 2021-07-19 20:08:56 +08:00
每个语言脚本都有各自的优势。
|
78
ericls 2021-07-20 01:47:01 +08:00
运行环境和语言没有可比性
|
79
myCupOfTea 2021-07-20 08:54:22 +08:00
@z740713651 这种例子没啥用啊,真写业务 python 真异步包有几个,看了下异步相关的库,好多都是多线程伪装成异步 用的 python asyncio loop.run_in_executor
|
80
liufish 2021-07-20 09:21:34 +08:00
node.js + ts,选用了 NestJS,搭起小服务来还算可以。
NestJS 用起来感觉很像 spring 那套啊 |
81
z740713651 2021-07-20 09:38:22 +08:00
@myCupOfTea #79
emmm 网络异步就好啦, 基本的异步包都还是有的, 计算啥得确实得用同步做。 咱们讨论的是在 web 上,框架能处理的并发量和吞吐量嘛。 说优势劣势,没数据怎么行。 不过楼上老哥的数据看着确实吓人 , 没有同机器上 python 的对比数据,感觉也没有参考性。 我是之前看有人直接拿 go 的性能对比了 flask 确实慢的一匹 ,fastapi 的数据看上去能摸一摸 go 的尾巴了 所以觉得速度好牛逼。才想着讨论 web 上的速度 |
82
huang119412 2021-07-20 09:40:08 +08:00
@z740713651 说了多少次,不要自己写性能测试代码,你这和测 hello world 有什么区别。内存,缓存,网络,热启动,序列化,驱动太多影响因素,专业的事让专业的人做,你用 Web Benchmarks 的数据可能还有信服力。
|
83
z740713651 2021-07-20 09:46:37 +08:00
@huang119412 #82 大佬说的有理
|
84
Actrace 2021-07-20 10:16:41 +08:00
宇宙真理:做项目请选择自己熟悉的语言。
|
85
O5oz6z3 2021-07-20 10:34:57 +08:00
@ysc3839 #61 Python 的异步没有 Javascript 直观,也许是因为 js 本身就依靠事件循环,而 py 本来就没有事件循环,所以 py 必需依靠 asyncio 的 event loop 。而且 js 有完整的函数表达式,但 py 要么写嵌套函数,要么只有限制很多的 lambda 函数表达式,写回调或者 Promise 都不够方便。
|
86
vincent7245 2021-07-20 11:15:47 +08:00
c++ 做后台服务的瑟瑟发抖,看你们吵的这么凶,居然没人提到 c,哭了
|
87
iqxd 2021-07-20 11:25:24 +08:00
@myCupOfTea 在操作系统层面只有网络请求能支持异步啊,其他的 io 比如文件读写等只能用线程来实现异步,所以不写 web 相关的一般不太会用到 asyncio
|
88
ysc3839 2021-07-20 12:34:21 +08:00 via Android
@O5oz6z3 我说的不是 event loop,说的是 async function 的基本 suspend resume 功能。比如 C++ 的 coroutine,被 await 的对象能直接拿到 async function 的 handle,后面可以通过这个 handle resume 。但是 Python 要实现这种功能似乎很难绕开 asyncio 。
|
89
wowbaby 2021-07-20 14:23:41 +08:00
我讨厌 node_modules 硬盘是硬伤,动辄几百兆,就我个人后端我基本不考虑 nodejs ;
Python 跟 php 一样,开发效率高,生态完善; |
90
O5oz6z3 2021-07-20 14:30:29 +08:00
@ysc3839 不懂 C++,所以不知道你要实现的功能是什么。
如果是说让协程能随意 suspend resume,那么听起来像生成器。 但是据我所知,py 协程应该不支持随意 suspend resume 。 可能我理解有误,或者 py 水平不够。 |
91
chenqh 2021-07-20 15:53:15 +08:00
反正我现在在用 tornado, 只为了 tornado 的异步 http 请求, mysql 用的同步, 坑我也踩过, 但是现在还行呀, 至于性能, 性能不在 py 这边呀, 就算有问题, 多 prefork 几个就没有问题了呀, 你要不爽,肯定要, 比如 ansible 如何批量重启 supervisor 进程,
因为我现在是 一个一个重启的, 16 个进程, 就要调用 16 次, 有没有什么办法, 可以分批呢? |
92
ysc3839 2021-07-20 19:19:41 +08:00 via Android
@O5oz6z3 就是想用 async function 做回调函数用,类似 js Promise 那样。
|
93
yagamil 2021-07-20 22:58:50 +08:00
如果项目里对接了一些人工智能的项目, 估计只能 python 了.
如果只是 crud 的话, java 也可以了 |
96
myCupOfTea 2021-07-22 08:51:37 +08:00
@z740713651 但是数据库这些基础组件调用其实也是放线程池执行的,这样好多对外调用其实也不是真正的网络异步,不过多少还是有点用
|
97
myCupOfTea 2021-07-22 08:53:00 +08:00
@iqxd 是这样的,但是写 web 肯定要用数据库,数据库的调用都不是真异步,就很难让人信服
|
98
z740713651 2021-07-22 09:34:27 +08:00
|
99
myCupOfTea 2021-07-22 09:40:42 +08:00
@z740713651 你要先看看底层到底怎么实现异步的,是不是使用的 async 的网络调用
但实际上,这类库为了方便基本都是用的 run_in_excutor 做的假异步(多线程) |
100
z740713651 2021-07-22 09:50:22 +08:00
|