On 2011-11-03 11:08, Jacob Hansson wrote: > On Thu, Nov 3, 2011 at 6:55 AM, Tim McNamara > <paperl...@timmcnamara.co.nz>wrote: > >> Here are a few notes of my own from using Neo4j with Python embedded. >> I know that this isn't the right place . >> >> Ubuntu doesn't set $JAVA_HOME. I ended up hard coding the location of my >> JVM. >> >> I seem to encounter unclean shutdowns all the time when running with >> the iPython REPL. Is there a db.shutdown() command that I've been >> neglecting to use? >> > > Yeah, as long as you call db.shutdown(), things should be ok. See here: > > http://docs.neo4j.org/chunked/snapshot/python-embedded-reference-core.html > > > We should perhaps set up the db to shut itself down properly automatically > if it detects that python is shutting down.. We decided against that > before, since we felt like "we don't own the application lifecycle". WDYT? >
I found this snippet to work great for my modules: def _close_db(): try: neo4jdb.shutdown() except NameError: print 'Could not shutdown Neo4j database. Is it open in \ another process?' import atexit atexit.register(_close_db) > >> >> Tim >> >> >> On 3 November 2011 17:28, Michael Rene Armida <m...@marmida.com> wrote: >>> I'm having some weird problems with threading on shutdown. As I >> previously >>> discovered, using neo4j in a multi-threaded Python app requires complete >>> segregation of neo4j into a single thread. That all works fine for >>> creating a database, however, it appears that shutting one down is a bit >> of >>> a mystery. I wrote a test program to minimally illustrate the >> difficulty: >>> >>> http://pastebin.com/gg204kae >>> >>> Threading is always easy to get wrong, so I added a simple switch to >> remove >>> neo4j from the picture. When I disable neo, the program starts up and >>> shuts down cleanly. When I re-enable neo, some of the print statements >>> never get run, and the app mysteriously exits. >>> >>> I am testing this by saving it into a script and running it on the >> command >>> line. Any time after the worker thread finishes creating the neo db, I >> hit >>> ctrl-c, and the two scenarios play out as above. >>> >>> It seems that the embedded Python API is not exactly at the forefront of >>> popular use, and so I understand if nobody knows what's up with this. I >>> just thought I should add something, for the record. I hope my script >>> doesn't have an obvious bug. >>> >>> Thanks, >>> Michael >> > > I had a discussion with Tobias this morning about threading with JPype, and > am currently writing a fix that will allow full threading support for > neo4j-embedded. > > I'll make sure to run this script as well after that fix is implemented, to > make sure it gets fixed as well. > > As far as the forefront of use goes, there is a surprising amount of pypy > downloads of neo4j-embedded (4000 new installs in the last 30 days), so the > feedback you are providing here is gonna end up helping a lot of people :) > Thank you so much for taking the time to document the issues you are having. > > /jake > > >>> _______________________________________________ >>> Neo4j mailing list >>> User@lists.neo4j.org >>> https://lists.neo4j.org/mailman/listinfo/user >>> >> _______________________________________________ >> Neo4j mailing list >> User@lists.neo4j.org >> https://lists.neo4j.org/mailman/listinfo/user >> > > > -- Johan Lundberg NORDUnet A/S lundb...@nordu.net +46730714375 Tulegatan 11 113 53 Stockholm Sweden _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user