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

Reply via email to