【问题标题】:How to deploy a reddit app written in python on Digitalocean?如何在 Digitalocean 上部署用 python 编写的 reddit 应用程序?
【发布时间】:2015-11-24 12:18:48
【问题描述】:

我制作了一个 reddit 机器人,它需要不间断地监控 subreddit。我想使用 Digitalocean 在 VPS 上部署这个机器人。我该怎么做?找到的所有说明/教程都适用于 Flask 和 Django。

【问题讨论】:

  • 您的应用是用 Flask 制作的吗?明确说明
  • 不,它没有。它使用 PRAW 框架。这是一个 reddit 应用程序。
  • 不清楚你在这里问什么。您究竟需要“部署”什么? DigitalOcean 只是 VPS 的供应商,您可以像配置任何其他服务器一样配置它们。
  • 我的意思是在他们的服务器上运行它。我以前从未这样做过,所以请原谅我的无知。
  • 所以它只是一个脚本?

标签: python digital-ocean


【解决方案1】:

我假设它只是一个 Python 脚本/程序,而您希望将其作为服务运行。

这可以使用supervisor 来完成。 通过 package 或 pip 安装它,并在 supervisord/conf/ 目录中创建这样的文件。

[program:bot]
command = /path/to/bot                    ; Command to start app
user = hello                                                          ; User to run as
stdout_logfile = /path/to/logs/bot.log   ; Where to write log messages
redirect_stderr = true                                                ; Save stderr in the same log
environment=LANG=en_US.UTF-8,LC_ALL=en_US.UTF-8                       ; Set UTF-8 as default encoding

启动supervisord - 例如 sudo service supervisord start; 您使用supervisorctl start bot 启动程序,主管将像服务一样运行。

【讨论】:

  • 我的脚本涉及数据持久化。如果我在主管上运行我的脚本,我能做到吗?
  • Supervisor 将运行您的脚本并为您提供一个用于启动/停止和重新启动脚本的界面。脚本不会受到影响。谈到数据持久性 - 这取决于您如何在脚本中处理它。如果您将数据存储在文件中,它将存储在那里。如果您的内存中有数据,只要脚本运行,它就会一直保存。
  • 我确实将它存储在一个文件中,所以即使多次运行数据也会保持不变?
  • 是的,文件将在多次运行中存在 - 取决于您在脚本中如何处理它
  • 优秀。那你,我去看看。
猜你喜欢
  • 2011-09-13
  • 2017-09-02
  • 1970-01-01
  • 2018-05-05
  • 1970-01-01
  • 2017-03-10
  • 2017-04-26
  • 2020-11-02
  • 1970-01-01
相关资源
最近更新 更多