2017-12-30 23 views
-1

私が監視しているドメインの変更をカウントする方法があります。1日に1回しか実行しない方法で1日に1回のみ変更をカウントする必要があります。私はPythonでタイマーの良い実装を見つけることができません。 提案がありますか?TimerをPythonメソッドに追加する

def count_changes(self): 
    stamp = datetime.now() 
    upper_limit = stamp - timedelta(days=7) 
    lower_limit = stamp - timedelta(days=2) 

    nameservers = models.NameServer.query.all() 
    nameservers = [item.name for item in nameservers] 
    domains = models.Domain.query.all() 
    domains = [item.name for item in domains] 
    changes = [] 
    upper_limit_changes = [] 
    lower_limit_changes = [] 

    for ns in nameservers: 

     for domain in domains: 
      scans = models.Scan.query.filter_by(nameserver=ns, 
      domain=domain).all() 
      upper_limit_changes.extend(self.get_changes(scans, upper_limit)) 
      lower_limit_changes.extend(self.get_changes(scans, lower_limit)) 

    return upper_limit_changes, lower_limit_changes 
+0

こんにちは、あなたはbash cronを試してみましたか?または、コードからスケジュールする特別な理由がありますか? –

+0

私はこのメソッドを毎日1回実行する必要があります。コードから実行する必要があります – Mindan

答えて

0

複数の方法があります。そのうちのいくつかはthis questionに記載されています。受け入れられる回答はありますが、ライブラリschedule(pipインストールスケジュール)を使用するものを試してみることをお勧めします。コードは次のようになります:

import schedule 
import time 

def job(t): 
    print "I'm working...", t 
    return 

schedule.every().day.at("01:00").do(job,'It is 01:00') 

while True: 
    schedule.run_pending() 
    time.sleep(60) # wait one minute 
+0

ありがとう、私はそれを試みますが、 "この質問"リンクはどこに行くと思いますか? – Mindan

+0

リンクを修正しました。この応答が有用であることがわかったら、それをupvoteして回答としてマークしてください;) –

+0

私はちょっと混乱しています。私はPythonとタイマーの両方に新しいです。私はPython 3を使用します – Mindan

関連する問題