Repolode
agronholm

agronholm/apscheduler

cron、インターバル、カレンダー、単発トリガーに対応し、永続化可能なジョブストアも利用できるPython製スケジューラー/ジョブキューライブラリ。

スター
7,688
フォーク
823
未解決の Issue
82
最終コミット
12 日前

これは何?

APScheduler(Advanced Python Scheduler)は、Python関数をスケジュールに従って実行したり、ジョブとしてキューに登録して実行したりするためのライブラリです。小規模なスクリプトでは単一プロセスで動作し、複数のスケジューラーやワーカーが共通のデータストアを共有するマルチノード構成にも対応します。

同期版と非同期版が用意されており、スレッドベースのアプリケーションだけでなく、asyncioやTrioを使うアプリケーションにも適しています。スケジュールやジョブはPostgreSQL、MySQL、SQLite、MongoDBに永続化できるため、再起動後も保持され、複数のインスタンス間で共有できます。複数のスケジューラーやワーカーが連携する場合は、PostgreSQL、Redis、MQTTをイベントブローカーとして利用できます。

組み込みトリガーは、cron形式、固定間隔、カレンダー形式(毎年・毎月・毎週・毎日の同じ時刻)、単発実行に対応します。トリガーの組み合わせやカスタムトリガーの作成も可能で、ジョブごとに同時実行数、実行許容遅延、ランダムなジッターを設定できます。

主な機能

  • 01cron、インターバル、カレンダー形式、単発実行のトリガーと、カスタムトリガーに対応
  • 02PostgreSQL、MySQL、SQLite、MongoDB向けの永続ジョブストア
  • 03複数のスケジューラーやワーカー間で使える、PostgreSQL、Redis、MQTTのイベントブローカー
  • 04同期APIと非同期API(asyncio、Trio)の両方を提供
  • 05ジョブの同時実行数、実行遅延、ジッターを制限・設定可能

ユースケース

  • Python製Webアプリケーション内で定期的なバックグラウンドジョブを実行する
  • 共有データベースを使い、複数のサーバーにまたがってデータ同期やクリーンアップを定期実行する
  • 別途タスクキューを用意せず、軽量なジョブキューとして利用する
  • ASGIまたはWSGIアプリケーションからasyncioやTrioのタスクを起動する

使う前に知っておきたいこと

  • v4.0 系列はプレリリース版であり、移行手段のない互換性のない変更が行われる可能性があるため、本番環境では使用しないでください。

トピック

よくある質問

apscheduler とは?
cron、インターバル、カレンダー、単発トリガーに対応し、永続化可能なジョブストアも利用できるPython製スケジューラー/ジョブキューライブラリ。 APScheduler(Advanced Python Scheduler)は、Python関数をスケジュールに従って実行したり、ジョブとしてキューに登録して実行したりするためのライブラリです。小規模なスクリプトでは単一プロセスで動作し、複数のスケジューラーやワーカーが共通のデータストアを共有するマルチノード構成にも対応します。
apscheduler は無料で使えますか?ライセンスは?
apscheduler は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
apscheduler は今もメンテナンスされていますか?
活発にメンテナンス中。apscheduler の最終コミットは 2026年10月26日 です。
apscheduler は何に使えますか?
Python製Webアプリケーション内で定期的なバックグラウンドジョブを実行する 共有データベースを使い、複数のサーバーにまたがってデータ同期やクリーンアップを定期実行する 別途タスクキューを用意せず、軽量なジョブキューとして利用する ASGIまたはWSGIアプリケーションからasyncioやTrioのタスクを起動する
apscheduler はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/agronholm/apscheduler

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト