Zajímavý kus kódu. Co se stane, když se server restartuje, zůstane stav zámků zachován? Co se stane, když klient požádá o acquire a musí čekat, protože zámek má již někdo jiný, ale zrovna v tu chvíli vypadne síť, spojení se ukončí a recv() vrátí prázdný řetězec?
Když už řešit zamykání takhle síťově, tak aspoň pořádně :) Viz např. Redis ( http://antirez.com/news/77) Apache Zookeeper, Apache Helix... Bohužel, distribuované algoritmy nejsou tak jednoduché, že by do "normálního" algoritmu stačilo přidat sokety. PM Dne 29. září 2015 15:30 Pavel Schön <[email protected]> napsal(a): > Ahoj, > > dovolim si navrhnout pure python reseni na strane serveru zalozene na > threadingu a lockach. Kdysi jsem napsal jednoduchy lock manager. Viz: > > > http://code.activestate.com/recipes/578194-distributed-lock-manager-for-python/ > > Ve zkratce: > > - na serveru bezi TCP daemon (./dlm.py), ktery obsluhuje klienty. > - na klienty umistis tentyz soubor dlm.py, ktery si klientska aplikace > importne a vola podle potreby. > > Aplikace potom funguje velmi podobne, jako bys programoval s mutexy. > _______________________________________________ > Python mailing list > [email protected] > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz >
_______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
