2013-05-03 11 views
9

Mam dużą tablicę numpy, która jest przechowywana w redis. Ta tablica działa jako indeks. Chcę podawać przefiltrowany wynik przez http z aplikacji kolby działającej na gunicorn i chcę, aby wszyscy pracownicy spawnowani przez gunicorn mieli dostęp do tej tablicy numpy. Nie chcę iść za każdym razem redis i deserializować całą tablicę w pamięci, zamiast tego na starcie chcę uruchomić jakiś kod, który to robi i każdy rozwidlony pracownik gunicorn dostaje właśnie kopię tej tablicy. Problem polega na tym, że nie mogę znaleźć żadnych przykładów użycia haków serwera Gunicorn: http://docs.gunicorn.org/en/latest/configure.html#server-hooks , aby to osiągnąć. Może być haczykami serwera nie jest właściwym sposobem, czy ktoś zrobił coś podobnego?Udostępnianie tablicy numpy w procesach gunicorn

Odpowiedz

3

Utwórz instancję serwera Listener server i poproś dzieci Gunicorn połączyć się z tym procesem, aby pobrać wszelkie dane, których potrzebują jako Klientów. W ten sposób procesy mogą modyfikować informacje w razie potrzeby i żądać ich od głównego procesu, zamiast przechodzić do Redis w celu ponownego załadowania całego zestawu danych.

Więcej informacji tutaj: Multiprocessing - 16.6.2.10. Listeners and Clients.