【发布时间】:2018-02-22 15:22:19
【问题描述】:
我正在使用 ubuntu 16、Django 1.9,并在 docker 之上运行所有内容。我正在制作一个比特币机器人,只是为了尝试构建一些东西来炫耀。我被困住了 Binance API,它是一个 WebSocket 来正确守护进程。以下是我的做法:
- 在 docker 中运行容器
- 在 WebSocket.sh 脚本中执行一个 docker 命令,该命令在实时 docker 容器中运行报废功能:
WebSocket.sh:
docker exec <container name> <something to run, bash etc...> <args>
docker exec 817d359aff51 python myproject/scrapping.py
我正在使用这个命令来运行 websocket.sh 文件:
终端:
nohup ./websocket.sh script args > script.out 2>&1
但是它从来没有把我的终端还给我,而是无限期地运行。当我 tail -f script.out 它显示正确的行为。
如何更好地守护这个任务?我研究了 Django-celery、cron 作业和 & 函数,但似乎没有一个是我想要的。我只想从命令行执行任务并将其作为后台进程抓取数据。我已经确定这是最好的方法,因为我在启动时在 Django 框架中找不到任何合适的方法。如果我使用 init.py 并使用 ready() 函数,它永远不会启动服务器,它只会抓取数据。谢谢你。
编辑:您是否建议使用 ready() 函数在 init.py 文件中启动一个新线程?
【问题讨论】:
标签: python django docker websocket daemon