コード例 #1
0
ファイル: rpc.py プロジェクト: mappsys/OpenProximity
def start_server(options):
    """
    Start RPyC server
    """

    if options['daemonize'] and options['server_user'] and \
            options['server_group']:
        #ensure the that the daemon runs as specified user
        change_uid_gid(options['server_user'], options['server_group'])

    if options['threaded']:
        serv = ThreadedServer(server.OpenProximityService,
                              options['host'],
                              port=options['port'],
                              auto_register=options['autoregister'])
    else:
        print "Forking server is not a tested server!"
        serv = ForkingServer(server.OpenProximityService,
                             options['host'],
                             port=options['port'],
                             auto_register=options['autoregister'])

    try:
        serv.start()
    except KeyboardInterrupt, err:
        serv.stop()
コード例 #2
0
ファイル: classic_server.py プロジェクト: guotaosun/waffirm
def serve_forking(options):
    t = ForkingServer(SlaveService, hostname=options.host,
                      port=options.port, reuse_addr=True,
                      authenticator=options.authenticator, registrar=options.registrar,
                      auto_register=options.auto_register)
    t.logger.quiet = options.quiet
    if options.logfile:
        t.logger.console = open(options.logfile, "w")
    t.start()
コード例 #3
0
class DBList(rpyc.Service):
    value = []

    def exposed_append(self, data):
        self.value = self.value + [data]
        print("Valor Appended: ", data)
        return self.value

    def exposed_value(self):
        return self.value

    if __name__ == "__main__":
        server = ForkingServer(DIR_SERVER, DIR_PORT)

    conn = rpyc.connect(DIR_SERVER, DIR_PORT)

    my_addr = socket.gethostbyname(socket.gethostname())

    print(conn.root.exposed_register("DBList", my_addr, 12345))
    server.start()
コード例 #4
0
import rpyc
from constRPYC import * 
from rpyc.utils.server import ForkingServer

class ServerDirectory(rpyc.Service):
    registryDirectory = {}

    def exposed_register(self, server_name, my_ip_adress, port_number):
    	self.registryDirectory[server_name] = (my_ip_adress, port_number)
    	print (self.registryDirectory)
    
    def exposed_lookup(self, server_name):
        if server_name in self.registryDirectory:
            return self.registryDirectory[server_name]
        else:
            return None

if __name__ == "__main__":
    server_dir = ForkingServer(ServerDirectory, port = '' )
    server_dir.start()
    
コード例 #5
0
def main():
    from rpyc.utils.server import ForkingServer
    server = ForkingServer(PrimeCalculatorWorker, port=PRIME_CALC_PORT)
    server.start()
コード例 #6
0
import rpyc
from rpyc.utils.server import ForkingServer


class DBList(rpyc.Service):
    value = []

    def exposed_append(self, data):
        self.value = self.value + [data]
        print("append", data)
        return self.value

    def exposed_value(self):
        return self.value


if __name__ == "__main__":
    server = ForkingServer(DBList, port=12345)
    server.start()
コード例 #7
0
        if isPrime:
            primes.append(possiblePrime)
            batch += 1  #batch is the length of primes
            if (batch % batchSize == 0):  # one batch of primes == batchSize
                stop_time = time.time()
                elapsed = stop_time - start_time
                cbfunc(batch, elapsed)

    return primes


class MyService(rpyc.Service):
    def on_connect(self, conn):  #runs when a connection is started
        print("\n>>> RPyC service connected ....")

    def on_disconnect(self, conn):  #runs after the connection has closed
        print("<<< RPyC service disconnected ...")

    def exposed_get_primes(self, lowerLimit, upperLimit,
                           callbackF):  #exposed method
        print(" Starting computation on server ..")
        list_of_primes = primes(lowerLimit, upperLimit, 1000, callbackF)
        print(" Computing finished.")
        return list_of_primes


if __name__ == "__main__":
    from rpyc.utils.server import ForkingServer
    t = ForkingServer(MyService, port=18861)
    t.start()
コード例 #8
0
		print("Trying to self-unregister...")

		if serverName == "":
			print("Failed. Server not registered.")
			return False

		dir_conn = rpyc.connect(const.DIR_IP, const.DIR_PORT)

		if dir_conn.root.query_registry(serverName):
			dir_conn.root.server_remove(serverName)
			print("Sucess! Unregistered from directory server.")
			serverName = ""
			return True
		else:
			print("Falied. No register found with server name.")
			serverName = ""
			return False

	def run_application(self, weight, height):
		bmi = (weight/(height**2))
		return bmi

	def query_directory(self, name):
		dir_conn = rpyc.connect(DIR_IP, DIR_PORT)
		return dir_conn.root.query_registry(name)


if __name__ == "__main__":
	server = ForkingServer(ApplicationServer, const.APP_PORT)
	server.self_register(const.APP_NAME)
	server.start()
コード例 #9
0
                            '"{}"'.format(cmd)]).decode().strip()


def get_pids(p_name):
    return shell_run(
        'ps -A |grep {} |cut -d " " -f 1'.format(p_name).split('\n'))


def current_time():
    # from common
    return time.strftime("%Y-%m-%d_%H:%M:%S", time.localtime())


def write_log(msg, print_=True, log=None):
    # from common

    with open(log, 'a') as lf:
        lf.write(msg + '\n')
    if print_: print(msg)
    return


if __name__ == '__main__':
    port = 9999 if len(sys.argv) < 2 else int(sys.argv[1])
    from rpyc.utils.server import ForkingServer

    t = ForkingServer(CrunchService, 'localhost', port=port)
    print('Running CrunchService. Use Ctrl+C to quit.')
    t.start()
    print('Killing CrunchService.')
コード例 #10
0
import rpyc
import socket
from constRPYC import * #-
from rpyc.utils.server import ForkingServer

class DBList(rpyc.Service):
    value = [ ] #lista

    def exposed_append(self, data): #metodo que anexa um valor na lista
        self.value = self.value + [data]
        print ("Appended value: ", data)
        return self.value

    def exposed_value(self):# metodo que obtém um valor na lista
        return self.value

if __name__ == "__main__":
        server = ForkingServer(DBList, port = 12345) #define o tipo de servidor
        conn = rpyc.connect(DIR_SERVER, DIR_PORT) #conecta com o servidor de diretorio, os parametros vem do arquivo ConstRPYC.py
        my_addr = socket.gethostbyname(socket.gethostname()) #Obtem o endereço IP da maquina que está rodando atraves da biblioteca de sockets
        (registered, message) = conn.root.exposed_register('DBList', my_addr, HOST_PORT)
        print (message)

        if registered:
            server.start()

~                                                 ~                                                 ~                             
コード例 #11
0
            print "Control message: Run"
            bot = Bot(self.channel, self.host)
            dummy(bot)
    def make_exchange(self, name, channel, callback):
        channel.exchange_declare(exchange=name, type ='fanout')
        result = channel.queue_declare(exclusive=True)
        queue_name = result.method.queue
        channel.queue_bind(exchange=name, queue=queue_name)
        channel.basic_consume(callback, queue=queue_name, no_ack=True)
    def close(self):
        self.connection.close()

class Ev3HostService(rpyc.Service):
    __rabbit = None
    __process = None

    def exposed_start(self, host, broker, username='******', password='******'):
        if not self.__rabbit is None:
            self.__rabbit.close()
        print "Rabbit start request on " + host + " for broker " + broker
        if not self.__process is None:
            self.__process.terminate()
        self.__rabbit = Rabbit(host, broker, username, password)
        self.__process = Process(target=self.__rabbit.work)
        self.__process.start()

if __name__ == "__main__":
    from rpyc.utils.server import ForkingServer
    f = ForkingServer(Ev3HostService, port=12345)
    print "Starting rpyc Ev3HostService"
    f.start()