使用 Django 定期运行"tasks",无需单独的服务器



我意识到有人问过类似的问题,但都是关于一个特殊的问题,而我现在甚至不知道该如何做我需要做的事情。

也就是说:当我的Django网络应用程序在服务器上运行时,我需要定期从它中抓取一个网站。我发现的第一个选项是";django后台任务";(这似乎没有按我希望的方式工作(和"芹菜节拍",如果我理解正确,建议换一台服务器。

我认为只运行一个单独的线程就可以了,但如果不中断服务器,我似乎无法做到这一点,反之亦然;正确的";

有没有一种方法可以周期性地运行任务,而不需要单独的服务器和向Django中的应用程序发出请求?

"selery-beat",如果我理解正确,它建议获得另一台服务器。

您可以在与Django应用程序相同的服务器上托管芹菜(以及任何其他需要的组件(。它们将是完全独立的过程。

将Django应用程序+芹菜工作程序+消息队列捆绑到同一服务器部署中并不罕见。在单独的服务器上部署可能是理想的,就像在多个服务器上分发Django应用程序一样,但这绝非必要。

我不确定这是否是;正确的";但这对我来说是一种既便宜又简单的方法。我只是创建了自定义的Django管理命令,并通过CRON等调度器运行它们,或者在我的情况下,我只是在我的应用程序中使用了Heroku调度器。

相关内容

最新更新