gpt4 book ai didi

python - 接受 zip 文件进行处理的守护进程的建议

转载 作者:太空宇宙 更新时间:2023-11-04 01:44:22 25 4
gpt4 key购买 nike

我想写一个守护进程:

  • 从包含 zip 文件路径的队列(sqs、rabbit-mq 等)中读取消息
  • 更新数据库中的一条记录,如“此作业正在处理”之类的内容
  • 读取上述存档的内容并将一行插入到数据库中,其中包含从找到的每个文件的文件元数据中剔除的信息
  • 将每个文件复制到 s3
  • 删除压缩文件
  • 将作业标记为“完成”
  • 阅读队列中的下一条消息,重复

这应该作为服务运行,并在有人通过网络前端上传文件时由排队的消息启动。上传者不需要立即看到结果,但上传会在后台进行相当方便的处理。

我精通 python,所以首先想到的是编写一个带有 twisted 的简单服务器来处理每个请求并执行上述过程。但是,我从来没有写过像这样可以在多用户环境中运行的东西。它不会每分钟或每小时处理数百个上传,但如果它能一次处理多个,那就太好了,合理的。我也不太熟悉编写多线程应用程序和处理阻塞等问题。

过去人们是如何解决这个问题的?我可以采取哪些其他方法?

在此先感谢您的帮助和讨论!

最佳答案

我用过 Beanstalkd作为排队守护进程效果非常好(一些近期处理和图像大小调整 - 过去几周到目前为止超过 200 万)。使用 zip 文件名(可能来自特定目录)将消息放入队列 [我在 JSON 中序列化命令和参数],当您在工作客户端中保留消息时,除非您允许,否则没有其他人可以获得它它超时(当它返回队列以被拾取时)。

剩下的就是解压和上传到S3,这还有其他的库。

如果您想一次处理多个 zip 文件,请运行任意数量的工作进程。

关于python - 接受 zip 文件进行处理的守护进程的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/758466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com