On 2011-11-03 11:08, Jacob Hansson wrote:
> On Thu, Nov 3, 2011 at 6:55 AM, Tim McNamara
> <[email protected]>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 <[email protected]> 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
>>> [email protected]
>>> https://lists.neo4j.org/mailman/listinfo/user
>>>
>> _______________________________________________
>> Neo4j mailing list
>> [email protected]
>> https://lists.neo4j.org/mailman/listinfo/user
>>
>
>
>
--
Johan Lundberg
NORDUnet A/S
[email protected]
+46730714375
Tulegatan 11
113 53 Stockholm
Sweden
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user