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

Reply via email to