[REDIS] 레디 스 실행중인 경우 내가 플라스크를 시작합니다 (그렇지 않은 경우 시작) 전에 어떻게 확인합니까?
REDIS레디 스 실행중인 경우 내가 플라스크를 시작합니다 (그렇지 않은 경우 시작) 전에 어떻게 확인합니까?
나는 플라스크에 새로운 오전 있는지 레디 스 서버가 실행하고, 그렇지 않은 경우 시작하려는. 여기에 내가 가진 무엇 :
@app.before_first_request
def initialize():
cmd = 'src/redis-cli ping'
p = subprocess.Popen(cmd,stdout=subprocess.PIPE)
out, err = p.communicate()
#if out.startswith('Could not connect to Redis'): #start redis here
if err is not None: raise Exception(err)
그러나, 나는 "[errno를 2] 해당 파일이나 디렉토리 OSError"오류가 발생합니다
레디 스 서버가 실행 중인지 확인하는 쉬운 방법이 있나요?
해결법
-
==============================
1.사용 핑 레디 스의 cmd를 :
사용 핑 레디 스의 cmd를 :
import redis from redis import ConnectionError import logging logging.basicConfig() logger = logging.getLogger('redis') rs = redis.Redis("localhost") try: rs.ping() except ConnectionError: logger.error("Redis isn't running. try `/etc/init.d/redis-server restart`") exit(0)
샘플 출력 :
ERROR:redis:Redis isn't running. try `/etc/init.d/redis-server restart`
-
==============================
2.난 당신이 supervisord 같은 감독의 어떤 종류를 사용하는 것이 좋습니다 또는 그들이 등등 과정, 호스트 파일이 그 일을되어 있는지 확인하도록 설계 MONIT 것이다들 직업, 그렇지 않은 경우, 다음을 다시 시작합니다.
난 당신이 supervisord 같은 감독의 어떤 종류를 사용하는 것이 좋습니다 또는 그들이 등등 과정, 호스트 파일이 그 일을되어 있는지 확인하도록 설계 MONIT 것이다들 직업, 그렇지 않은 경우, 다음을 다시 시작합니다.
예를 들어 여기에 체크 레디 스에 대한 설정은 다음과 같습니다
check host redis with address <your_redis_host> if failed icmp type echo count 3 with timeout 3 seconds then alert if failed port 6379 with timeout 15 seconds then alert
from https://stackoverflow.com/questions/21708107/how-do-i-check-if-redis-is-running-before-i-start-flask-and-start-it-if-it-isn by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 레디 스 해시 매김 (0) | 2020.01.24 |
---|---|
[REDIS] 여부 LettuceConnectionFactory는 레디 스 스프링 부팅 버전 제한이? (0) | 2020.01.24 |
[REDIS] 레디 스 데이터베이스로 ".CSV"데이터 파일을 가져 오는 방법 (0) | 2020.01.24 |
[REDIS] 종류와 각각의 장단점 레디 스 (0) | 2020.01.24 |
[REDIS] 갈퀴 작업 내에서 레디 스 및 resque 스케줄러를 시작하려고 (0) | 2020.01.24 |