antonchaikin/f3-scheduler
最新稳定版本:v1.0.3
Composer 安装命令:
composer require antonchaikin/f3-scheduler
包简介
Cron-based task scheduler for the Fat-Free Framework (F3)
README 文档
README
F3Scheduler is a simple cron-style task scheduler plugin for the Fat-Free Framework (F3). It allows you to register periodic tasks using cron expressions and execute them via a route or CLI-safe handler.
🚀 Features
- Register tasks using cron expressions or helper methods like
everyMinute(),hourly(),daily(), etc. - Supports callable PHP functions and string commands (executed via
php index.php ...). - Flexible error handling via
setErrorHandler(...). - Built-in route:
GET /cron/schedule/runfor triggering tasks from CRON. - Designed for F3 and easy integration.
🛠 Installation
composer require antonchaikin/f3-scheduler
🧩 Setup
In your app bootstrap:
\F3Scheduler\F7SchedulePlugin::register();
This will:
- Register the route
GET /cron/schedule/run - Bind
Scheduleto$f3->schedulefor easy static access
🧪 Usage
Register a task:
$f3->schedule::everyMinute(function () { echo "Run every minute!"; });
Register a shell command:
$f3->schedule::daily("clear-cache");
Custom cron:
$f3->schedule::on("0 0 1 * *", fn() => echo "Run every 1st of month!");
Set error handler:
$f3->schedule::setErrorHandler(function ($e) { error_log("[SCHEDULE ERROR] " . $e->getMessage()); });
Trigger tasks manually (e.g. from cron job):
curl https://your-app.com/cron/schedule/run
⏰ System Cron Setup
To run scheduled tasks every minute, add the following line to your server's crontab:
* * * * * curl -s https://your-app.com/cron/schedule/run > /dev/null 2>&1
Make sure the route /cron/schedule/run is publicly accessible or secured via IP/user-agent as needed.
📚 Available Methods
everyMinute(callable|string)everyFiveMinute(callable|string)everyTenMinutes(callable|string)everyFifteenMinutes(callable|string)everyThirtyMinutes(callable|string)hourly(callable|string)daily(callable|string)dailyNoon(callable|string)weekly(callable|string)monthly(callable|string)on(string cronExpression, callable|string)
🧠 Notes
- String tasks will be executed using
php ./index.php {your-command}. - The route
/cron/schedule/runaccepts only bot/cron-like User-Agents by default. CLI is always allowed.
📄 License
MIT © Anton Chaikin
统计信息
- 总下载量: 21
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-05-28