我现在在自己业余做一个社交网络分析的程序。主要是从Twitter拉用户的timeline然后统计这个用户哪一个时间点最活跃。
我目前想到的设计是这样的
有一个进程负责安排task A到celery用来从twitter拉数据。然后拉数据的task A把拉倒的数据放到另外一个AMQP(大约会用rabbitmq)中。然后另外有一个进程一直监测那个AMQP,一旦发现有新数据就安排一个task B到celery,这个新安排的task B做得是 根据数据统计下用户哪个时间点发帖最多,把结果更新到数据库中去。
我有如下几个问题:
1. celery有没有什么办法可以直接把task返回的值传到另外一个queue里面去嘛。我翻了一下文档
貌似没有,看起来这个工作只能在定义task A的function里完成。
2. 我因为第一次做这样的东西,好奇我这个设计合不合理,有没有办法改善。比如说让task A既拉数据又对数据做计算然后写入数据库?
先谢谢啦。
我目前想到的设计是这样的
有一个进程负责安排task A到celery用来从twitter拉数据。然后拉数据的task A把拉倒的数据放到另外一个AMQP(大约会用rabbitmq)中。然后另外有一个进程一直监测那个AMQP,一旦发现有新数据就安排一个task B到celery,这个新安排的task B做得是 根据数据统计下用户哪个时间点发帖最多,把结果更新到数据库中去。
我有如下几个问题:
1. celery有没有什么办法可以直接把task返回的值传到另外一个queue里面去嘛。我翻了一下文档
貌似没有,看起来这个工作只能在定义task A的function里完成。
2. 我因为第一次做这样的东西,好奇我这个设计合不合理,有没有办法改善。比如说让task A既拉数据又对数据做计算然后写入数据库?
先谢谢啦。
