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

2018-03-30 01:12:05 +08:00
 jakeyfly

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

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

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

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

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

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

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

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

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

© 2021 V2EX