有什么办法可以在 Django 的服务器端保留任务 运行 吗?

Is there any way to keep tasks running on server side in django?

基本上我的 django webapp 中有一个机器人,当提供您的社交媒体凭据时,它会管理您的一个社交媒体帐户,我能够在客户仍在网站上时成功 运行 它,就像您希望的那样期望它在客户关闭网站时停止。有没有什么方法可以存储凭据,然后即使在用户离开网站后仍保留机器人 运行ning,以便机器人仍然管理帐户?该机器人主要发出很少的请求和 API 调用。 谢谢

很多选项。

  • Celery。用于组织任务队列的库。生产就绪,广泛支持,有一个很棒的社区。
  • Dramatiq possibly with periodicDramatiq也是一个组织任务队列的库,periodic是一个任务调度器。不太流行,更轻便,而且相当稳定。入门门槛低于celery,我
  • Supervisor。 Supervisor 是一个 client/server 系统,允许其用户监视和控制类 UNIX 操作系统上的许多进程。一条命令安装,非常容易配置,非常适合小型项目(当后台例程数量变成10+时,就更难用了)。
  • Tmux。它是一个终端多路复用器,有可能在断开连接后仍然是一个进程 运行。当您 运行 一次或用于测试时可能会有用。
  • Django Background Task。它是 Django 的数据库支持的工作队列,松散地基于 Ruby 的 DelayedJob 库。未维护且与高于 2.2 的 Django 版本不兼容。