Daemonize python websocket

时间:2018-02-22 15:22:20

标签: python django docker websocket daemon

我正在使用ubuntu 16,Django 1.9,并在docker上运行所有内容。我正在制作一个比特币机器人,只是为了尝试构建一些炫耀的东西。我很难获得Binance API,这是一个正确守护进程的WebSocket。我正是这样做的:

  1. 在docker中运行容器
  2. 在WebSocket.sh脚本中执行docker命令,该命令在实时docker容器中运行报废功能:
  3. 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 jobs和&amp;功能,但似乎没有我想要的。我只想从命令行执行任务,并将数据作为后台进程抓取。我已经确定这是最好的方法,因为在启动时我无法在Django框架中找到任何正确的方法。如果我使用 init .py并使用ready()函数,它永远不会启动服务器,它只是擦除数据。谢谢。

    编辑:您是否建议使用ready()函数在 init .py文件中启动新线程?

1 个答案:

答案 0 :(得分:0)

我也有这个问题。我建议创建一个admin-command并在一个单独的容器中运行此命令,一个容器运行服务器,另一个运行WebSocket。在这种情况下,你有Django的上下文允许你使用Django-ORM或设置,而docker将负责进程管理,如果你使用线程,这将是复杂的。

相关问题