create cleaning thread, add commad line socket requests

This commit is contained in:
root 2011-11-15 01:29:04 +03:00
parent 0c814f4883
commit 478fe80cda
1 changed files with 29 additions and 8 deletions

View File

@ -323,7 +323,6 @@ def client_thread(ipaddr,conn):
print time.asctime(), "session", ipaddr, session_id, addresses[0], len(addresses)
clean_sessions()
sessions[session_id] = {}
for a in addresses:
sessions[session_id][a] = ''
@ -353,6 +352,9 @@ def client_thread(ipaddr,conn):
h = store.get_txpoints( addr )
out = repr(h)
elif cmd == 'load':
out = repr( len(sessions) )
elif cmd =='tx':
# transaction
out = send_tx(data)
@ -398,13 +400,15 @@ def memorypool_update(store):
def clean_sessions():
t = time.time()
for k,t0 in sessions_last_time.items():
if t - t0 > 60:
print "lost session",k
sessions.pop(k)
sessions_last_time.pop(k)
def clean_session_thread():
while 1:
time.sleep(30)
t = time.time()
for k,t0 in sessions_last_time.items():
if t - t0 > 60:
print "lost session",k
sessions.pop(k)
sessions_last_time.pop(k)
@ -413,6 +417,22 @@ import traceback
if __name__ == '__main__':
if len(sys.argv)>1:
request = sys.argv[1]
request += "#"
s = socket.socket( socket.AF_INET, socket.SOCK_STREAM)
s.connect(( HOST, PORT))
s.send( request )
out = ''
while 1:
msg = s.recv(1024)
if msg: out += msg
else: break
s.close()
print out
sys.exit(0)
print "starting Electrum server"
conf = DataStore.CONFIG_DEFAULTS
args, argv = readconf.parse_argv( [], conf)
@ -421,6 +441,7 @@ if __name__ == '__main__':
store = MyStore(args)
thread.start_new_thread(listen_thread, (store,))
thread.start_new_thread(clean_session_thread, ())
while True:
try: