PythonのSchedularのようなCron
このチュートリアルでは、Linux の cron ジョブに似たタスクのスケジューリングについて説明します。 まず、インプロセス スケジューラでジョブをスケジュールする schedule モジュールを見ていきます。
Python の cron および scheduler モジュール
Python は、タスクを自動的にスケジュールできるいくつかのパッケージを提供します。 これらのパッケージには schedule と time が含まれます。
cron は、タスクのスケジューリングと自動化に使用されます。 たとえば、特定の時間間隔が経過すると、特定のジョブが自動的に実行を開始します。
多くの場合、手動の介入を必要とせずに定期的に多くのタスクを実行する必要があります。 これは、タスク スケジューラを使用して実現できます。
スケジューリングは、データベースに保存されたデータの管理に役立ち、容易にします。 また、必要に応じて定期的にデータを取得することもできます。
Python の schedule モジュールは、構成に従って実行するタスクをスケジュールする高度なスケジューリング モジュールです。
cron は時間ベースのスケジューラです。 定期的に実行する必要があるジョブをスケジュールするのに役立ちます。 Linux cron ユーティリティの一部である crontab ファイルには、スケジュールされたタスクのリストが含まれています。
cron でタスクをスケジュールするには、Bash コマンド crontab -e または Python の python-crontab モジュールを使用して、このファイルを直接編集できます。 ただし、これらのスケジューリング スキームは Windows オペレーティング システムでは使用できません。
schedule は、システムの時間間隔に従って動作するライブラリです。 インプロセス スケジューラとして機能し、ほぼすべてのオペレーティング システムで動作します。
1 日または 1 週間の特定の時間など、特定のタスクをさまざまな時間間隔でスケジュールするのに役立ちます。 それでは、新しい python プロジェクトを作成することから始めましょう。
schedule モジュールでジョブをスケジュールする
以下の手順に従って、新しい Python プロジェクトを作成します。
-
最初のステップは、anaconda プロンプトをインストールすることです。
-
次に、プロンプト画面で
Jupyter notebookと入力します。
-
ブラウザ上に Jupyter ノートブックのこの
homeページが表示されます。
-
Newをクリックし、Python 3ファイルを作成します。
-
Python ファイルは次のように表示されます。

-
scheduleモジュールの機能を使用する前に、まずscheduleモジュールをインストールする必要があります。pip install schedule -
必要なモジュールをインポートしたら、ジョブを作成して
スケジュールするコードを見てみましょう。import schedule import time def job(): print("Reading time...") def coding(): print("Programming time...") def playing(): print("Playing time...") # Time schedule.every(5).seconds.do(job) schedule.every(2).minutes.do(coding) schedule.every().day.at("10:57").do(playing) while True: schedule.run_pending() time.sleep(1)このコードでは、3つの異なるジョブが定義されています。 最初のジョブ
読み取り時間は5秒ごとに繰り返され、2 番目のジョブコーディングは2分ごとに繰り返され、最後のジョブは特定の時間になると繰り返されます。whileループ内のSchedule.run_pending()関数は、実行が保留されているスケジュールされたジョブがあるかどうかをチェックします。 関数time.sleep(1)が実行されると、保留中のタスクをチェックするためにscheduleを 1 秒間遅らせます。出力:

数時間後や数分後に特定のジョブを実行するようにスケジューラーに依頼することもできます。 たとえば、
schedule.every(5).hours.do(job)ステートメントは、5時間ごとにジョブを繰り返します。