2017-12-18 26 views
1

ScheduleFlaskにインポートしています。私のプロジェクトにはWSGIが含まれていますが、FlaskWSGIの関係についてはほとんど分かりません。今私は3つのメインファイルを持っています:FlaskでPythonスケジュールが機能しない

  • wsgi.py:自動的に他のツールで生成されます。
  • app.py:ここにクライアントのリクエストを入れます。
  • test.pyScheduleをテストするために使用します。

サーバーの起動時に長いタスクであるタスクを開始したいと考えています。ここ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です)。

関連する問題