簡體   English   中英

從同一腳本 Python 運行 2 個 web.py 服務器

[英]Running 2 web.py servers from the same script Python

Python 的新手。 我正在嘗試在同一腳本上運行 2 個具有不同端口的 web.py 服務器。 基本上我想同時啟動 2 個腳本並能夠同時訪問兩個端口。 如果我將 go 連接到終端並單獨啟動每個腳本,它就可以工作,但我不希望那樣。

腳本 1

#!/usr/bin/python
import sys
sys.path.append('/usr/local/lib/python2.7/dist-packages/')
import web
import time
urls = (
    '/', 'index'
)
class index:

    def GET(self):
        f = open('LiveFlow.txt', 'r')
        lineList = f.readlines()
        contents = lineList[-1]
        return contents

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.run()

腳本 2

#!/usr/bin/python
import sys
sys.path.append('/usr/local/lib/python2.7/dist-packages/')
import web
import time

class MyApplication(web.application):
          def run(self, port=8080, *middleware):
              func = self.wsgifunc(*middleware)
              return web.httpserver.runsimple(func, ('0.0.0.0', port))

urls = (

    '/', 'index'

)

class index:


    def GET(self):

        f2 = open('FlowMeterOutput.txt', 'r')
        lineList1 = f2.readlines()
        contents1 = lineList1[-1]

        return contents1

if __name__ == "__main__":

    app = web.application(urls, globals())
    web.httpserver.runsimple(app.wsgifunc(), ("0.0.0.0", 8888))

您應該能夠通過在自己的線程中運行它們來做到這一點,如下所示:

import threading

# ... two servers ...

def server1():
    app = web.application(urls, globals())
    app.run()

def server2():
    app = web.application(urls, globals())
    web.httpserver.runsimple(app.wsgifunc(), ("0.0.0.0", 8888))

if __name__ == "__main__":
    t1 = threading.Thread(target=server1)
    t2 = threading.Thread(target=server2)

    t1.start()
    t2.start()
    t1.join()
    t2.join()

此外,您似乎正在使用 python 2.7,此時它已經很老了。 除非有某些特定原因,否則您應該使用 Python 3。如果不是全部,您的大多數代碼都應該在 Python 3 中正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM