[Python] python에서 singleton 구현
2013. 8. 3. 10:27ㆍProgramming/python
Python으로 만든 프로그램에 crontab으로 스케쥴을 걸어놨더니..
아놔~ 이게 중복으로 실행되서 서버가 위험에 빠질뻔 했다 ㅠ_ㅠ
쉘 프로그래밍에서는 대부분 ps 로 프로세스 목록을 가져온 후, 해당 프로세스 이름이 있으면
그냥 빠져나오도록 해서 중복 문제를 피하곤 했었는데,
' 아 python은 좀 더 편리하지 않을까??' 라는 생각에 singleton을 찾기 시작!
의외로 손쉽게 결과를 찾았다..
바로 tendo 라는 package를 설치하여 손쉽게 singleton 프로그램을 구현할 수 있었다.
from tendo import singleton
me = singleton.SingleInstance()
if __name__ == "__main__" :
[......]
위 방법 외에도 프로그램 생성 시 파일에 LOCK을 건 후 프로그램 종료 시 LOCK 푸는 방식으로도 중복 방지를 시도해 봤는데, 갠적으로 위의 tendo 가 가장 깔끔하고 정확한 걸로....