需求:web 端上传 word,需后台转为 pdf,过程很慢
一两个 word 需要 3-4s 返回上传成功,如果有 10 多个 word 上传会导致返回很慢
1
maocat 2020-12-11 16:08:10 +08:00 1
上 celery, 一个线程处理一个 word
|
2
RRRoger 2020-12-11 16:10:57 +08:00
上队列吧
|
3
l4ever 2020-12-11 16:11:39 +08:00
先入库, 定时任务消费掉. 不要等返回结果.
|
4
Latin 2020-12-11 16:16:42 +08:00
别问问就是异步 另外用的应该是 libreoffice 吧 跟 py 没啥关系 优化逻辑处理就好了
|
5
Jackeriss 2020-12-11 16:48:10 +08:00 via iPhone
搞个 redis 的 zset 也可以呀
|
6
echowuhao 2020-12-11 16:55:28 +08:00
|
7
wuwukai007 2020-12-11 18:32:01 +08:00
celery 还要配 redis,用 huey,内存可以做队列
|
8
encro 2020-12-12 14:03:31 +08:00
你可以试试打开 word,也要几秒钟。
word doc 就是一个不开放的格式( docx 的话好一点)。 几秒钟正常的。 word 是单机程序,com 组件不提供服务端支持。 https://support.microsoft.com/zh-cn/help/257757/considerations-for-server-side-automation-of-office 服务器端安全性:Office 应用程序从不适合在服务器端使用。 因此,Office 应用程序不会考虑分布式组件面临的安全问题。Office 不会对传入的请求进行身份验证。Office 也不会防止你无意中启动另一台可能会运行宏的服务器或从服务器端代码中运行宏。 不要打开从匿名网站上载到服务器上的文件。 基于上一次设置的安全性设置,服务器可能会在具有全部特权的 Administrator 或 System 上下文下运行宏,并危及你的网络的安全。 另外,Office 使用很多客户端组件(例如,Simple MAPI 、WinInet 、MSDAIPP ),它们会缓存客户端身份验证信息以加快处理速度。 如果在服务器端自动化 Office,一个实例的作用可能超过一个客户端。 如果为该会话缓存了身份验证信息,一个客户端可以使用另一个客户端的缓存凭据。 因此,客户端可以通过模仿另一个用户获取非授权的访问权限。 |
9
shimingzhoudf OP @l4ever 入库处理的话,这个时候前端显示上传成功,如果说用户传完就要查看这些处理好的 word,而后端还在库里处理,这就表现出我上传成功却看不到数据,或者有其他的解决方案?表现形式...
|