对于一个Celery使用场景的假设。Celery是否适合处理复杂冗长的任务呢?
最近在搞自己的一个小项目,但是对于一些技术的选取有一些迷惑,希望有人能够指点一番。
使用场景,假设获得授权,获取了用户的邮箱登录的密钥,密钥种类分basic auth和Oauth, 前者获得的是邮箱地址和密码, 后者则是邮箱地址和Access Token:
利用celery对于OAuth类型的密钥,定期进行刷新Token的任务
利用邮箱密钥,在固定间隔内登录用户的邮箱,获取指定邮件信息,存储到数据库。
celery是否能够胜任这项任务?考虑到邮件的parsing和存储可能会需要一些时间,当用户数剧增的时候,celery的distributed tasks能否胜任这项任务
如果在服务器端针对每一个邮箱的密钥建立一个local的IMAPClient,是否能够替代Celery还是有更好的解决方案?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Celery的好处是可以方便的横向扩展,官方推荐的是尽量将大任务拆分成小任务.
个人认为除了消息的传递,Celery可以近似的理解成多进程/线程/协程的处理,本身对于任务的耗时什么的并没有太强烈的指向性.
另外,邮件的parsing和存储可以拆分,获取的话可以用协程,处理的话可以用进程,嗯嗯.
如果是我 我就用redis+python