2012-04-03 25 views
0

私は次のコードを持つjob.pyを持っています。apschdulerをPythonスクリプトでデーモンとして実行していますか?

import datetime 
import logging 
import sys 
import os 

from apscheduler.scheduler import Scheduler 
from src.extractors.pExtractor import somejob 

def run_job(): 
    start = datetime.datetime.now() 
    logging.debug('Proposal extraction job starting') 
    somejob.main() 
    end = datetime.datetime.now() 
    duration = end - start 
    logging.debug('job completed , took ' + str(duration.seconds) + ' seconds') 

def main(): 
    logging.basicConfig(filename='/tmp/pExtractor.log', level=logging.DEBUG,format='%(levelname)s[%(asctime)s]: %(message)s') 
    sched = Scheduler() 
    sched.start() 
    sched.add_interval_job(run_job, minutes=2) 

if __name__ == '__main__': 
    main() 
  • 私は、コマンドプロンプトでこれを実行すると、それはすぐに終了します:

INFO [2012-04-03 13:31:02825]:0コアで開始スレッドプールをスレッド と最大スレッド数20個INFO [2012-04-03 13:31:02,827]:スケジューラ 開始INFO [2012-04-03 13:31:02,827]:ジョブ "run_job(trigger: cron [ 2 ']、次に実行:2012-04-03 14:02:00) "ジョブストアへ " default "INFO [2012-04-03 13:31: 02828]:スレッドプール

私はデーモンとしてこの実行をmakdeするにはどうすればよい
  • をシャットダウン?
+0

再販はこちら:http://stackoverflow.com/questions/5835600/apscheduler-not-starting – daydreamer

答えて

0

main()を次のように記述します。

def main(): 
    [... your_code_as_in_your_question ...] 
    while (True): 
     pass 

さらに、PEP 3143を考慮する必要はありません。

関連する問題