2014-04-21 3 views
1

나는 황제와 두 명의 별관이 관리하는 웹 응용 프로그램을 가지고 있습니다. 그들은 모두 서로 다른 데이터 소스에 쓰기 때문에, 나는 모두를 동기화 할 파일이 필요하고 그래서 난 내 emperor.ini에 타이머 작업을 추가하기로 결정했습니다황제의 rbtimer 실행

[uwsgi] 
strict = True 
die-on-term = True 
memory-report = True 
uid = www-data 
gid = www-data 
emperor = xxx.ini 
logdate = True 
import = synchronize 

그리고 이것은 synchronize.py입니다 :

from uwsgidecorators import rbtimer, lock 
INTERVAL = 10 

@lock 
@rbtimer(INTERVAL) 
def synchronize(): 
    """ Synchronizes data between Redis and PostgreSQL. """ 
    print 'AAA' 

다음과 같이 내 황제를 실행합니다 : uwsgi --ini emperor.ini하지만 아무 일도 일어나지 않습니다. 콘솔이 'AAA'를 인쇄하지 않습니다.

그 밖의 무엇이 내가 뭘 놓치고 있습니까?

답변

1

신호 처리기를 실행하려면 프로세스 (작업자 또는 노새)가 필요합니다. 작업자를 생성 (소켓 지시어 추가)하거나 뮬 (뮬 추가 = true 추가). 노새의 경우 @rbtimer 데코레이터에 target = mule을 추가해야합니다.