【发布时间】:2016-01-18 09:03:34
【问题描述】:
我用过很多分发任务包,比如celery,python-rq,它们都依赖于外部服务,比如redis,rabbit-mq等等。
但是,通常我不需要queue service,换句话说,我不想在我的vps上安装redis或其他非python服务。(也是为了简化环境)
我应该说最好将producer 和worker 拆分到不同的进程(两个代码文件)。使用multiprocessing.Queue 需要将所有内容放入一个文件中,并且需要编写大量附加代码来捕获ctrl+c 以处理exit 并保存当前排队的任务。使用celery、python-rq 不会发生这种情况,虽然停止了工作人员和生产者,但任务仍然保存在队列中。
我想使用本地队列(可以通过pip install xxx 工作),例如磁盘队列。
经过一番搜索,只找到queuelib(Collection of persistent (disk-based) queues),可惜不支持多进程访问。
【问题讨论】:
标签: python multithreading queue task