「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python で Cron のようなスケジュールを作成するにはどうすればよいですか?

Python で Cron のようなスケジュールを作成するにはどうすればよいですか?

2024 年 12 月 22 日に公開
ブラウズ:845

How Can I Create Cron-Like Scheduling in Python?

Python を使用した Cron のようなスケジューリング

柔軟な式に基づいてタスクをスケジュールする必要性は、さまざまな状況で発生します。 cron は多くの環境でこの目的を果たしますが、普遍的に利用可能または実現可能ではない可能性があります。このような場合、Python には、独自の cron のようなスケジューラを作成するためのオプションがいくつか用意されています。

スケジュール ライブラリを使用した軽量アプローチ

軽量で純粋な Python ベースのソリューションが必要な場合schedule ライブラリは、シンプルで表現力豊かなインターフェイスを提供します。 cron のような式を使用してタスクのスケジュールを設定できるようになります:

import schedule
import time

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

schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)

while 1:
    schedule.run_pending()
    time.sleep(1)

この例では、job() 関数が一定の間隔で実行されます。式を変更して、平日の午前 9 時から午後 5 時までの 2 時間ごとなど、複雑なスケジュールを定義できます。

代替アプローチ

スケジュール ライブラリが特定の要件を満たすには、次の代替アプローチを検討してください:

  • apscheduler: より包括的なローカル スレッドや Celery を含む複数のバックエンドをサポートするスケジュール ライブラリ。
  • crontab: crontab コマンドをエミュレートする Python パッケージ。シェル コマンドの直接スケジュールを可能にします。
  • celery-beat: Celery 分散タスクと統合するスケジューラqueue.

独自のスケジューラを定義するときは、メイン プロセスのブロックを避けるために、Python 関数の起動を別のスレッドで処理する必要があることに注意してください。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3