我已经启动了一个新的Python 3项目,我的目标是下载推文并对其进行分析。由于我将从不同的主题下载推文,我希望有一个工作池,必须从Twitter状态下载给定的关键字并将它们存储在数据库中。我将这些工人命名为fetchers
。
其他类型的工作者是analyzers
,其功能是分析推文内容并从中提取信息,同时将结果存储在数据库中。由于我将分析很多推文,因此也可以拥有这类工作人员。
我一直在考虑使用RabbitMQ和Celery,但我有一些问题:
fetcher
工作人员,这可能会运行一整年(实际上是一个15分钟的循环,重复并持续一年)。是否适合定义"无限"任务?答案 0 :(得分:1)
是的,对我来说这看起来很好。
没有无限的任务。您可以重新安排一个任务,偶尔运行一次。 Celery有periodic tasks,因此您可以安排任务以使其在特定时间运行。你不一定需要芹菜。如果需要,也可以使用cron作业。
您可以在任务成功完成后调用函数。
from celery.signals import task_success @task_success(sender='task_i_am_waiting_to_complete') def call_me_when_my_task_is_done(): pass