2010-12-17 76 views
0

我所需要的是在后台运行,独立于Web请求,不断检查特定表并执行一些计算。 “代理人”一词似乎更适合这项任务,但我不确定这是否正确。在Django应用程序中实现代理的最佳方式

关于如何实现这个的任何想法或想法?发生在我身上的第一件事是脚本被cron调用,但我也不确定...

谢谢。

回答

3

这些天最流行的方式是使用某种类型的消息队列,并使用像芹菜这样的辅助库。这样做的方式是,你将有许多守护进程在侦听消息队列。在你的应用程序中,你将添加消息到队列中,这些消息将被工作人员拾取。这很复杂,但速度很快。

但是,对我来说感觉就像完全适合您的应用程序。做事的方式要简单得多,而且不那么脆弱。它还可以更轻松地调试和测试代码。

作为一个异端的笔记,如果您的用例确实是“检查某个特定表并执行一些计算进入某个其他表”,则可以使用数据库触发器来完成该工作。

0

我会考虑使用Cron tasks,但它取决于是否使用Unix或Windows系统。

Cron任务的主要优点是它只是运行一个脚本,无论使用何种语言。所以,你可以使用shell脚本,Python和PHP等

1

尝试采取看看Celery

芹菜是基于分布式消息传递一个开源的异步任务队列/作业队列。它专注于实时操作,但也支持调度。

执行单元称为任务,在一个或多个工作节点上同时执行。任务可以异步执行(在后台)或同步执行(等待直到准备就绪)。

0

只是为了提供替代方案,django-command-extensions应用程序提供了一个非常有用的工作系统,尤其是在您有多个要运行的作业时。您仍然需要使用cron来触发作业。见docs

相关问题