我需要的是在后台运行的东西,独立于Web请求,不断检查特定的表并执行一些计算。 “代理人”一词似乎更适合这项任务,但我不确定它是否正确。
关于如何实现这一点的任何想法或想法?我发生的第一件事是cron调用的脚本,但我也不确定......
感谢。
答案 0 :(得分:3)
现在最流行的方式是使用某种消息队列,使用像Celery这样的帮助程序库。这种方式的工作方式是,您将有许多守护进程在运行,侦听消息队列。在您的应用程序中,您将向队列添加消息,这些消息将由工作人员接收。这非常复杂,但速度非常快。
然而,我觉得你的应用程序完全有点过分。 cron
做事方式更简单,更不易碎。它还使您可以更轻松地调试和测试代码。
作为一个异端的注释,如果你的用例确实是“检查一个特定的表并执行一些进入其他表的计算”,你可以使用数据库触发器来完成工作。
答案 1 :(得分:1)
尝试查看Celery:
Celery是一个基于分布式消息传递的开源异步任务队列/作业队列。它专注于实时操作,但也支持调度。
执行单元(称为任务)在一个或多个工作节点上并发执行。任务可以异步(在后台)或同步执行(等到准备好)。
答案 2 :(得分:0)
我会考虑使用Cron tasks,但这取决于是使用Unix还是Windows系统。
Cron任务的主要优点是它只运行一个脚本,无论使用何种语言。所以你可以使用shell脚本,python,php等。
答案 3 :(得分:0)
只是为了提供替代方案,django-command-extensions应用程序提供了一个非常有用的作业系统,特别是如果您有多个要运行的作业。您仍然需要使用cron
来触发作业。请参阅docs