芹菜:为什么我需要经纪人来定期完成任务?

 沝伊 发布于 2022-12-18 10:14

我有一个独立的脚本,它擦除页面,启动与数据库的连接,并将数据库写入其中.我需要它在x小时后定期执行.我可以使用伪代码使用bash脚本:

while true
do
  python scraper.py
  sleep 60*60*x
done

从我读到的关于消息代理的内容来看,它们用于从一个正在运行的程序向另一个程序发送"信号",原则上就像HTTP一样.就像我有一段代码接受来自用户的电子邮件ID一样,它会将带有email-id的信号发送到另一段将发送电子邮件的代码.

我需要芹菜在heroku上运行一个周期性的任务.我已经在一个单独的服务器上有一个mongodb.为什么我需要为rabbitmq或redis运行另一台服务器呢?没有经纪人,我可以使用芹菜吗?

1 个回答
  • Celery体系结构旨在跨多个服务器扩展和分配任务.对于像你这样的网站,这可能是一种过度杀伤力.通常需要队列服务来维护任务列表并发出已完成任务的状态信号.

    你可能想看看Huey.Huey是小规模的Celery"Clone",只需要Redis作为外部依赖,而不是RabbitMQ.它仍然使用Redis队列机制来排队队列中的任务.

    还存在Advanced Python调度程序,它甚至不需要Redis,但可以在进程内保存队列中的状态.

    或者,如果您有非常少量的定期任务,没有延迟任务,我只会使用Cron和纯Python脚本来运行任务.

    2022-12-18 10:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有