[PYTHON] Die Jobplanung ist bei AP Schuler etwas fortgeschritten

Die Jobplanung ist bei AP Schuler etwas fortgeschritten

Grund, Zweck und Motiv

Suche nach einem Job Scheduler, der mehrere Starts verhindern kann

Installation

Mit pip oder easy_install.

$ easy_install apscheduler
Oder
$ pip install apscheduler

Schreiben wir einen Job Scheduler

import apscheduler.scheduler as ApSched

def job_function():
    print "Hello World"

sched = ApSched.Scheduler(standalone=True,coalesce=True)
sched.add_interval_job(job_function, seconds=10)
sched.start()

Die eigenständige Option ist standardmäßig False. Wenn True festgelegt ist, wird der Scheduler selbst dämonisch ausgeführt.

Das Ergebnis des Versuchs mit ipython.

In [18]: 2013-11-26 16:12:32.680493
Hello World
In [18]: 2013-11-26 16:12:42.680962
Hello World
In [18]: 2013-11-26 16:12:52.680975
Hello World

Zusätzlich wird die Intervallzeit berechnet, indem die Ausführungszeit des Programms richtig weggelassen wird.

Experimentieren Sie, um eine Mehrfachaktivierung zu verhindern

from apscheduler.scheduler import Scheduler
import datetime
import time

def job_function_13sec():
    print datetime.datetime.today()
    time.sleep(13)
    print "Hello World"

sched = Scheduler(standalone=True,coalesce=True)
sched.add_interval_job(job_function_13sec, seconds=10)
sched.start()

Ergebnis.

In [46]: sched.start()
2013-11-26 16:36:10.818178
WARNING:apscheduler.scheduler:Execution of job "job_function_13sec (trigger: interval[0:00:10], next run at: 2013-11-26 16:36:30.817553)" skipped: maximum number of running instances reached (1)
Hello World
2013-11-26 16:36:30.818776
WARNING:apscheduler.scheduler:Execution of job "job_function_13sec (trigger: interval[0:00:10], next run at: 2013-11-26 16:36:40.817553)" skipped: maximum number of running instances reached (1)
Hello World
2013-11-26 16:36:50.818992
WARNING:apscheduler.scheduler:Execution of job "job_function_13sec (trigger: interval[0:00:10], next run at: 2013-11-26 16:37:10.817553)" skipped: maximum number of running instances reached (1)
Hello World
2013-11-26 16:37:10.818815
WARNING:apscheduler.scheduler:Execution of job "job_function_13sec (trigger: interval[0:00:10], next run at: 2013-11-26 16:37:30.817553)" skipped: maximum number of running instances reached (1)
Hello World
2013-11-26 16:37:30.818828

Als Joboption __ Standardmäßig ist max_run 1__, wodurch mehrere Starts verhindert werden.

danach

Recommended Posts

Die Jobplanung ist bei AP Schuler etwas fortgeschritten
Ein bisschen im Kettenschiff stecken
Starten Sie einen Prozess mit einer Planungsrichtlinie unter Linux
Python Ver. Einführung in WebPay mit ein wenig Code
[PyTorch] Ein wenig Verständnis von CrossEntropyLoss mit mathematischen Formeln
Eine Geschichte, die mit ein wenig Einfallsreichtum mit Google Cloud Storage verknüpft ist