That's awesome news. I will check it out when it's ready. I would suggest wrapping up the lifecycle management in a context manager. You're already using the GraphDatabase object's __enter__ and __exit__ to manage transactions, so you'd probably have to add a second object.
Would you like me to add a bug somewhere? I could turn that script into a unit test, which should make it easier to evaluate. On Thu, Nov 3, 2011 at 3:08 AM, Jacob Hansson < jacob.hans...@neotechnology.com> 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? > > > > > > 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 > > > > > > -- > Jacob Hansson > Phone: +46 (0) 763503395 > Twitter: @jakewins > _______________________________________________ > 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