2016-08-07 5 views
0

파이썬에서 백그라운드 서비스를 만들려고합니다. 이 서비스는 다른 Python 프로그램에서 호출됩니다. 이전에 메모리에로드해야하는 무거운 오브젝트 (300MB)를 사용하므로 데몬 프로세스로 실행해야합니다. 나는 python-daemon을보고 있었고 아직도 어떻게하는지 알지 못했습니다. 특히 데몬을 실행하고 주기적으로 일부 작업을 수행하는 방법을 알고 있지만 다른 프로그램에서 호출 할 수있는 방법을 모르겠습니다. 도움을 좀 주시겠습니까?데몬 백그라운드 서비스를 만드시겠습니까?

+0

@mithatkonuk이 대답에서 제안 된대로 시스템 데몬에 파이썬 데몬을 선호합니다. http://stackoverflow.com/questions/1603109/how-to-make-a-python-script-run-like-a-service - 또는 - 데몬 - 인 - 리눅스. 파이썬 데몬을 호출 가능하게 만들 수있는 방법이 있습니까, 아니면 시스템 데몬을 사용하는 것이 필수입니까? – lenhhoxung

답변

1

웹 응용 프로그램에서 큰 이진 행렬에 액세스하려고 할 때 비슷한 상황이 발생했습니다.

물론 많은 솔루션이 있지만 성공적으로 내 개체를 저장하고 액세스하기 위해 널리 사용되는 메모리 내장 데이터베이스/캐시 시스템 인 Redis을 사용했습니다. 실용적인 파이썬 바인딩 (아마도 몇몇 비슷한 래퍼 라이브러리)을 가지고있다.

가장 큰 장점은 서비스가 중단되면 데이터 복사본이 여전히 디스크에 남아 있다는 것입니다. 또한, 일단 제 위치에, 내 애플 리케이션 (예 : 셀러리는 백엔드로 제안)에 다른 것들에 사용될 수있는 것으로 나타났습니다, 그리고 실제로, 다른 관련이없는 프로그램의 다른 서비스에 대해서.

+0

임의의 개체에 Redis를 사용할 수 있습니까? 사실, 제 객체는 tensorFlow의 수학 모델입니다 – lenhhoxung

+0

. 목록, 해시 등이 될 수 있습니다. http://redis.io/topics/data-types를 참조하십시오. 하지만 파이썬 객체의 경우 피클 링을 강요 당하고 문자열로 저장하고 필요할 때 비 직렬화합니다. 단순 데이터 유형 인 경우 오브젝트 속성을 별도로 저장할 수도 있습니다. – JulienD