2017-12-18 1 views
1

ScheduleFlask으로 가져오고 있습니다. 내 프로젝트에는 WSGI이 포함되어 있지만 FlaskWSGI 사이의 관계에 대해서는 거의 알지 못합니다. 이제 세 개의 주 파일이 있습니다.Flask에서 Python 일정이 작동하지 않습니다.

  • wsgi.py : 다른 도구에서 자동으로 생성됩니다.
  • app.py : 여기에 고객 요청을 입력합니다.
  • test.py : Schedule을 테스트하는 데 사용됩니다.

서버를 시작할 때 긴 작업 인 작업을 시작하고 싶습니다. 여기 wsgi.py의 일부는 다음과 같습니다

# -*- coding: utf-8 -*- 
from threading import Thread 
import test 


t = Thread(target=test.job) 
t.start() 

if __name__ == '__main__': 
    ... 

당신은 내가 스레드를 시작하고 it.Here의 작업 일이 내 test.py이다하자시피.

import schedule 


def job(): 
    schedule.every(1).seconds.do(pr) 


def pr(): 
    print("I'm working...") 

내 문제는 job 결코 시작하지 않는다는 것이다.

답변

0

나는 내 문제를 발견. 나는 스케쥴로 작업을 실행하게하지 않았다. 이제 wsgi.py은 이렇게 보입니다.

# -*- coding: utf-8 -*- 
from threading import Thread 
import test 

schedule.every(1).seconds.do(test.job) 
t = Thread(target=test.run_schedule) 
t.start() 

if __name__ == '__main__': 
    ... 

그리고 test.py :

import schedule 
import time 

start_time = time.time() 


def job(): 
    print("I'm working..." + str(time.time() - start_time)) 


def run_schedule(): 
    while True: 
     schedule.run_pending() 
     time.sleep(1) 

별도의 스레드에서 작업하기 위해, 나는 스레드와 스레드 I 루프의 모든 1ms의를 만들 수 있습니다. 루프에서 schedulerun_pending을 호출하여 시간이 초과되면 job을 호출합니다 (제 경우는 1입니다).

관련 문제