예제 #1
0
max_jobs = config.MaxJobs
queue_capacity = config.QueueCapacity
port = config.Port
host = config.Host
registry_port = config.RegistryPort
data_server_url = config.DataServerURL  # required
log_file_dir = config.LogFileDir
log_file = None
if log_file_dir:
    log_file = LogFile(log_file_dir + "/job_server.log")
source_archive = config.SourceArchive

rs = RegistryServer(registry_port)
authenticator = Authenticator(config)
js = JobServer(host, port, rs, authenticator, data_server_url,
               config.BulkTransportPort, queue_capacity, max_jobs,
               source_archive, log_file_dir)
application = WebServiceApp(config, rs, authenticator, js)
web_server = HTTPServer(config.WebServerPort, application)

rs.start()
js.start()
web_server.start()
print("Web server port:", config.WebServerPort)
print("Job server port:", config.Port)

with open("job_server.pid", "w") as pidfile:
    pidfile.write("%d" % (os.getpid(), ))

web_server.join()
예제 #2
0
파일: server.py 프로젝트: imandr/ring
        WPHandler.__init__(self, request, app)
    
    def get(self, request, name):
        cell = self.App.Cell
        value = cell.get(name)
        return value if value is not None else 404
        
    def set(self, request, name, value=None):
        cell = self.App.Cell
        value = cell.set(name, value)
        return 200

class App(WPApp):
    
    def __init__(self, cell):
        WPApp.__init__(self, Handler)
        self.Cell = cell

opts, args = getopt.getopt(sys.argv[1:], "c:")
opts = dict(opts)
config = yaml.load(open(opts["-c"], "r"), Loader=yaml.SafeLoader)
port = int(config["server"]["port"])
link = EtherLink(config["ring"])
cell = MemoryCell(link)
link.init(cell)
link.start()

server = HTTPServer(port, App(cell))
server.start()
server.join()