推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
shimingzhoudf
V2EX  ›  Python

Python word

  •  
  •   shimingzhoudf · Dec 11, 2020 · 3222 views
    This topic created in 2026 days ago, the information mentioned may be changed or developed.

    需求:web 端上传 word,需后台转为 pdf,过程很慢

    一两个 word 需要 3-4s 返回上传成功,如果有 10 多个 word 上传会导致返回很慢

    11 replies    2020-12-18 10:46:49 +08:00
    maocat
        1
    maocat  
       Dec 11, 2020   ❤️ 1
    上 celery, 一个线程处理一个 word
    RRRoger
        2
    RRRoger  
       Dec 11, 2020
    上队列吧
    luckyc
        3
    luckyc  
       Dec 11, 2020
    先入库, 定时任务消费掉. 不要等返回结果.
    Latin
        4
    Latin  
       Dec 11, 2020
    别问问就是异步 另外用的应该是 libreoffice 吧 跟 py 没啥关系 优化逻辑处理就好了
    Jackeriss
        5
    Jackeriss  
       Dec 11, 2020 via iPhone
    搞个 redis 的 zset 也可以呀
    echowuhao
        6
    echowuhao  
       Dec 11, 2020
    嫌 celery 太重的话,可以用 RQ

    https://python-rq.org/
    wuwukai007
        7
    wuwukai007  
       Dec 11, 2020
    celery 还要配 redis,用 huey,内存可以做队列
    encro
        8
    encro  
       Dec 12, 2020
    你可以试试打开 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,一个实例的作用可能超过一个客户端。 如果为该会话缓存了身份验证信息,一个客户端可以使用另一个客户端的缓存凭据。 因此,客户端可以通过模仿另一个用户获取非授权的访问权限。
    shimingzhoudf
        9
    shimingzhoudf  
    OP
       Dec 15, 2020
    @l4ever 入库处理的话,这个时候前端显示上传成功,如果说用户传完就要查看这些处理好的 word,而后端还在库里处理,这就表现出我上传成功却看不到数据,或者有其他的解决方案?表现形式...
    luckyc
        10
    luckyc  
       Dec 17, 2020
    @encro 人家要解决方案, 你给出了标准的否决方案.
    encro
        11
    encro  
       Dec 18, 2020
    @l4ever

    异步处理其他人说了,所以不再补充

    而对方说的关键点标题是“python word”,所以我理解是他期望提高 python 处理 word 的时间,那么答案是不好处理,当然用 spire,aspose 可以快一点,但是格式不一定正确,付费也不便宜吧。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1130 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 18:10 · PVG 02:10 · LAX 11:10 · JFK 14:10
    ♥ Do have faith in what you're doing.