コード例 #1
0
def createProcesses():

    from logging import basicConfig, info, INFO
    from config.config_parser import ConfigParser
    from multiprocessing import Process
    from os import waitpid
    import socket

    procs = []

    config = ConfigParser.parse()
    basicConfig(level=INFO)
    info('\nhost: {}\nport: {}\nthreads: {}\ncpu_count: {}'.format(
        config.host, config.port, config.threads, config.cpu_count))

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((config.host, int(config.port)))
    s.listen(100)

    try:
        for _ in range(0, int(config.cpu_count)):
            procs.append(Process(target=startProcess, args=([config, s])))

        for i in procs:
            i.start()

        for i in procs:
            waitpid(i.pid, 0)

    except KeyboardInterrupt:
        for i in procs:
            i.terminate()