Repolode
Hexagon

Hexagon/croner

Node.js、Deno、Bun、ブラウザーで関数のスケジュール実行や次回実行時刻の計算ができる、依存関係ゼロのTypeScript/JavaScript製cronライブラリ。

スター
2,611
フォーク
75
未解決の Issue
7
最終コミット
4 日前

これは何?

Cronerを使うと、JavaScriptやTypeScriptのコードでcronスケジュールに従って関数を実行したり、cron式を評価して今後の実行時刻を一覧表示したり、日付がパターンに一致するか確認したりできます。データベースや設定ファイルを必要とせず、メモリ上で動作し、Node.js、Deno、Bun、ブラウザーに対応しています。

標準的なcron構文に加え、秒フィールドと年フィールドを任意で指定できるほか、L(最終日または最終曜日)、W(最も近い平日)、#(月の第N曜日)、+(日と曜日のAND条件)をサポートしています。ジョブには特定のタイムゾーンを指定でき、一時停止、再開、停止のほか、実行回数の上限や開始・終了時刻も設定できます。

実行時の安全機能として、前回の非同期タスクが実行中の場合に新たなトリガーを抑止する多重実行防止、設定可能なエラー処理、NodeやDenoのプロセス終了を妨げないようタイマーのunrefを有効にするオプションを備えています。型定義も含まれています。

主な機能

  • 01秒フィールドと年フィールドを任意で指定できるcron式で関数をスケジュール実行できます。
  • 02今後および過去の実行時刻を一覧表示し、日付がパターンに一致するか確認できます。
  • 03タイムゾーン、L、W、#、+の修飾子、Quartz形式の曜日番号に対応しています。
  • 04非同期タスクの多重実行防止機能を内蔵し、エラー処理を設定できます。
  • 05依存関係がなく、TypeScriptの型定義も含まれています。

ユースケース

  • 別のスケジューラーサービスを用意せずに、Node.jsやBunのサーバー内で定期的なバックグラウンドジョブを実行する。
  • スケジュールの今後の実行時刻を複数計算し、UIに表示する。
  • 地域の異なるユーザー向けに、特定のタイムゾーンでタスクをスケジュールする。
  • Denoやブラウザー環境でcron形式のタイマーを実行する。

クイックスタート

  1. 1

    npmからcronerをインストールする

    npm install croner
  2. 2

    プロジェクトにCronクラスをインポートする

    import { Cron } from "croner";
  3. 3

    cronパターンで関数をスケジュールする

    new Cron('*/5 * * * * *', () => { console.log('This will run every fifth second'); });

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

  • すべてがメモリ内で処理されるため、タイマーはホストプロセスの実行中のみ動作します。

トピック

よくある質問

croner とは?
Node.js、Deno、Bun、ブラウザーで関数のスケジュール実行や次回実行時刻の計算ができる、依存関係ゼロのTypeScript/JavaScript製cronライブラリ。 Cronerを使うと、JavaScriptやTypeScriptのコードでcronスケジュールに従って関数を実行したり、cron式を評価して今後の実行時刻を一覧表示したり、日付がパターンに一致するか確認したりできます。データベースや設定ファイルを必要とせず、メモリ上で動作し、Node.js、Deno、Bun、ブラウザーに対応しています。
croner は無料で使えますか?ライセンスは?
croner は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
croner は今もメンテナンスされていますか?
活発にメンテナンス中。croner の最終コミットは 2026年10月18日 です。
croner は何に使えますか?
別のスケジューラーサービスを用意せずに、Node.jsやBunのサーバー内で定期的なバックグラウンドジョブを実行する。 スケジュールの今後の実行時刻を複数計算し、UIに表示する。 地域の異なるユーザー向けに、特定のタイムゾーンでタスクをスケジュールする。 Denoやブラウザー環境でcron形式のタイマーを実行する。
croner のインストール方法は?
npmからcronerをインストールする: npm install croner プロジェクトにCronクラスをインポートする: import { Cron } from "croner"; cronパターンで関数をスケジュールする: new Cron('*/5 * * * * *', () => { console.log('This will run every fifth second'); });
croner はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/Hexagon/croner

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

関連プロジェクト