首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任何本地任务队列(可能是磁盘队列或内存队列?)对于生产者和工人(Python)?

任何本地任务队列(可能是磁盘队列或内存队列?)对于生产者和工人(Python)?
EN

Stack Overflow用户
提问于 2016-01-18 17:03:35
回答 1查看 823关注 0票数 4

我用过很多分布式任务包,如celerypython-rq,它们都依赖于外部服务,如redisrabbit-mq等。

但是,通常我不需要queue service,换句话说,我不想在我的vps上安装redis或其他非python服务(也为了简化环境)。

我应该说,将producerworker拆分到不同的进程(两个代码文件)是很好的。使用multiprocessing.Queue需要将所有内容放到一个文件中,并且需要编写大量额外的代码来捕获ctrl+c来处理exit并保存当前入队的任务。使用celerypython-rq将不会发生这种情况,尽管停止工作进程和生产者,任务仍然保存在队列中。

我想使用本地队列(可以只使用pip install xxx),比如磁盘队列。经过一些搜索,只能找到queuelib(Collection of persistent (disk-based) queues),但遗憾的是,它不支持从到多进程的访问。

EN

回答 1

Stack Overflow用户

发布于 2016-01-19 06:50:23

检查Luigi包。它允许定义具有所有依赖项的多个任务,然后请求它使用特定的参数运行。

它运行所谓的调度器,它可以是本地的调度器,也可以是web服务形式的“生产”调度器。

Luigi有一个完成任务的概念,通过某种目标的存在来标记。目标可以是本地文件系统、亚马逊网络服务S3等上的文件。一旦目标存在,则认为任务已完成。Luigi负责自动创建目标文件,这意味着文件首先在某个临时位置创建,并在真正完成后移动到最终文件。这可以防止出现半成品的目标。

如果在中间停止处理,next start将检查是否存在已完成的目标,并仅开始处理那些尚未完成的目标。

没有额外的服务需要安装,该命令会自行设置本地或“生产”调度程序(如果还不存在)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34850786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档