python3 有没有什么库 是发布任务--->管道<----执行者 这样的

2018 年 3 月 30 日
 jakeyfly

Celery 我有去看了下 好像跟我想的不一样 是个爬虫应用 我的想法简单描述是这样: 比如考试吧,老师是分发考卷的(往队列里 比如 redis 里 塞考卷), 班级就像一个队列,学生们都去班上拿考卷做题目(处理从队列中取数据处理)----做完了题目要交卷(存入数据库或用 orm 操作)

以上描述有点乱,因为我自己本来想实现的,主要因为主流的 scrapy 不适合这个项目,自己去写了后发现,我这样的菜 B,根本完在不了。就想问问有没有什么现成的库包,可以解决这个流程问题。

中间在处理上上的细节,先不考虑(并发多线程之类感觉不是主要问题,增量可能是个问题。)

其实我说的好像就是生产者,消费者模型,但是我总是搞不清楚这个流程

2735 次点击
所在节点    问与答
28 条回复
bazingaterry
2018 年 3 月 30 日
消息隊列?
congeec
2018 年 3 月 30 日
FIFO, 来,楼下随手写一个
1iuh
2018 年 3 月 30 日
celery 就是做这个的呀。。
jakeyfly
2018 年 3 月 30 日
@bazingaterry 是吧 最好是基于 redis 的 能保存状态的
jakeyfly
2018 年 3 月 30 日
@1iuh celery 是任务啊 我这个需求应该是发数据给任务让任务跑起来
1iuh
2018 年 3 月 30 日
@jakeyfly #5 你把数据传过去就是了
laxenade
2018 年 3 月 30 日
自带的 Multiprocessing 感觉就符合 lz 的要求
jakeyfly
2018 年 3 月 30 日
@laxenade 这不是进程 吗
wellsc
2018 年 3 月 30 日
rq
binux
2018 年 3 月 30 日
Celery 和你想的是一样的,至少可以实现你想的。
ericls
2018 年 3 月 30 日
celery
jakeyfly
2018 年 3 月 30 日
@binux 我看了教程 好像 他定义的是任务 并不是队列啊
jakeyfly
2018 年 3 月 30 日
@wellsc RQ 是啥
jakeyfly
2018 年 3 月 30 日
@binux 我觉得 celery 更像 futuer
Trim21
2018 年 3 月 30 日
ericls
2018 年 3 月 30 日
@jakeyfly 你想的话 用 channels 也行 我就用 channels 做过任务队列……
jakeyfly
2018 年 3 月 30 日
@Trim21 这好像不错,不过这执行的有点快啊 爬虫太快了会被 BAN 的 有没有办法控制间隔或者速度啊
jakeyfly
2018 年 3 月 30 日
@ericls 好高端 还没接触过
binux
2018 年 3 月 30 日
@jakeyfly 你只使用一种任务带上你要的数据,那就是队列了
laxenade
2018 年 3 月 30 日
@jakeyfly #8 你想分布的话用 multiprocessing 就不行了,但如果只是一台机子的话,multiprocessing 完全够了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/442685

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX