コード例 #1
0
ファイル: RSleighService.py プロジェクト: bigcomputing/R-big
    def run(self):
        while True:
            try:
                try:
                    ws = NetWorkSpace(self.wsName, self.nwsHost, self.nwsPort, persistent=True)
                    ws.declare(self.varName, FIFO)

                    while True:
                        s = ws.fetch(self.varName)
                        try:
                            # split the request using the first character
                            x = s[1:].split(s[0])
                            r = {"RSleighNwsHost": self.nwsHost, "RSleighNwsPort": str(self.nwsPort)}
                            r["RSleighNwsName"], r["RSleighUserNwsName"], r["RSleighWorkerCount"], r["RSleighID"], r[
                                "RSleighWorkingDir"
                            ], r["RSleighWorkerOut"], r["RSleighLogDir"], r["RSleighUserName"] = x
                            self.gotRequest(r)
                        except:
                            # bad request: ignore it
                            pass
                except NwsServerException:
                    # server is probably down.  sleep a bit, and try again
                    time.sleep(10)
                except NwsOperationException:
                    # maybe someone deleted my variable to signal a shutdown?
                    return
            finally:
                # ws may not be defined
                try:
                    ws.server.close()
                except:
                    pass
                ws = None
コード例 #2
0
ファイル: RSleighService.py プロジェクト: bigcomputing/R-big
 def __init__(self, nwsHost, nwsPort, nwsName, gotShutdown):
     threading.Thread.__init__(self, name="Sentinel:" + nwsName)
     self.nwsHost = nwsHost
     self.nwsPort = nwsPort
     self.nwsName = nwsName
     self.gotShutdown = gotShutdown
     self.ws = NetWorkSpace(self.nwsName, self.nwsHost, self.nwsPort, useUse=True, create=False)
コード例 #3
0
ファイル: RSleighService.py プロジェクト: bigcomputing/R-big
class Sentinel(threading.Thread):
    def __init__(self, nwsHost, nwsPort, nwsName, gotShutdown):
        threading.Thread.__init__(self, name="Sentinel:" + nwsName)
        self.nwsHost = nwsHost
        self.nwsPort = nwsPort
        self.nwsName = nwsName
        self.gotShutdown = gotShutdown
        self.ws = NetWorkSpace(self.nwsName, self.nwsHost, self.nwsPort, useUse=True, create=False)

    def __str__(self):
        return "%s@%s:%d" % (self.nwsName, self.nwsHost, self.nwsPort)

    def run(self):
        try:
            try:
                self.ws.find("Sleigh ride over")
                self.ws.store("bye", "Sleigh ride over")
            except Exception, e:
                try:
                    self.ws.store("bye", str(sys.exc_info()[1]))
                except:
                    pass
        finally:
            try:
                self.gotShutdown(self)
            except:
                pass
            try:
                self.ws.server.close()
            except:
                pass