본문 바로가기
Programming/python

[Python] python에서 singleton 구현

by 유주원 2013. 8. 3.

Python으로 만든 프로그램에 crontab으로 스케쥴을 걸어놨더니..

아놔~ 이게 중복으로 실행되서 서버가 위험에 빠질뻔 했다 ㅠ_ㅠ


쉘 프로그래밍에서는 대부분 ps 로 프로세스 목록을 가져온 후, 해당 프로세스 이름이 있으면 

그냥 빠져나오도록 해서 중복 문제를 피하곤 했었는데, 

' 아 python은 좀 더 편리하지 않을까??' 라는 생각에 singleton을 찾기 시작!

의외로 손쉽게 결과를 찾았다..

바로 tendo 라는 package를 설치하여 손쉽게 singleton 프로그램을 구현할 수 있었다.

from tendo import singleton

me = singleton.SingleInstance()


if __name__ == "__main__" :

[......]


위 방법 외에도 프로그램 생성 시 파일에 LOCK을 건 후 프로그램 종료 시 LOCK 푸는 방식으로도 중복 방지를 시도해 봤는데, 갠적으로 위의 tendo 가 가장 깔끔하고 정확한 걸로....