【问题标题】:Is there any way to keep tasks running on server side in django?有没有办法让任务在 django 的服务器端运行?
【发布时间】:2022-01-25 05:45:39
【问题描述】:
基本上,我的 django webapp 中有一个机器人,当给定您的社交媒体凭据时,它会管理您的一个社交媒体帐户关闭了网站。有什么方法可以存储凭据,然后即使在用户离开网站后也能保持机器人运行,这样机器人仍然可以管理帐户?该机器人主要发出少量请求和 API 调用。
谢谢你
【问题讨论】:
-
看看celery。它是为此目的而设计的库,与 Django 完全兼容。
标签:
python
django
server
web-development-server
【解决方案1】:
很多选择。
-
Celery。用于组织任务队列的库。生产就绪,得到广泛支持,拥有一个很棒的社区。li>
-
Dramatiq 可能与 periodic。
Dramatiq 也是一个用于组织任务队列的库,periodic 是一个任务调度器。不那么流行,更轻量级,而且相当稳定。至于我,进入门槛低于celery。
-
Supervisor。 Supervisor 是一个客户端/服务器系统,它允许其用户监视和控制类 UNIX 操作系统上的许多进程。一个命令安装,非常容易配置,非常适合小项目(后台例程10+的时候比较难用)。
-
Tmux。它是一个终端多路复用器,可以在断开连接后保持进程运行。当您一次运行某项或进行测试时可能会很有用。
-
Django Background Task。它是 Django 的数据库支持的工作队列,松散地基于 Ruby 的 DelayedJob 库。未维护且与高于 2.2 的 Django 版本不兼容。