coufal / laravel-http-cronjob
一个通过 HTTP 端点触发调度器的 Laravel 包。
v1.3.0
2024-09-10 09:45 UTC
Requires
- php: ^8.0
- illuminate/routing: ^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- laravel/pint: ^1.17
README
描述
这个库允许 Laravel 应用程序通过 HTTP 请求启动计划任务。它允许您从外部源触发 Laravel 的调度器,例如 IONOS 或 All-Inkl.com 等主机提供商提供的基于 Web 的 cron 作业服务。使用 Bearer token 维护对这一功能的访问安全,该 token 可以通过环境变量进行配置。
安装
要安装此包,请在您的 Laravel 项目中运行以下命令
composer require coufal/laravel-http-cronjob # you may optionally publish the config file to config/scheduled-tasks.php by running php artisan vendor:publish --provider="Coufal\LaravelHttpCronjob\Providers\HttpCronjobServiceProvider"
在您的 .env
文件中配置 Bearer token 和自定义端点。可以使用 pwgen --secure 256
生成随机 token。
HTTP_CRONJOB_TOKEN=your-secure-token-here
HTTP_CRONJOB_ENDPOINT=/custom/scheduler/endpoint
HTTP_CRONJOB_TOKEN
用于验证对计划任务路由的 HTTP 请求。HTTP_CRONJOB_ENDPOINT
允许您定义一个用于触发计划任务的自定义路由。如果没有设置,则使用默认路由/scheduler/cronjob
。
使用方法
POST 请求
配置完成后,您可以通过向发布的路由(默认为 /scheduler/cronjob
)发送带有正确 Bearer token 的 POST 请求来触发 Laravel 调度器
Authorization: Bearer your-secure-token-here
GET 请求
或者,您也可以通过向发布的路由(默认为 /scheduler/cronjob
)发送 GET 请求来触发 Laravel 调度器
/custom/scheduler/endpoint?token=your-secure-token-here
这可以设置为一个指向此路由的基于 Web 的 cron 作业,以远程触发您的计划任务。
安全考虑
请确保您的 Bearer token 安全,并且只有需要触发调度器的服务才知道。
目前,除了使用长 token 之外,没有针对 API 端点的暴力攻击保护措施。
贡献
欢迎对包的贡献!请随时提交拉取请求或打开问题,以建议改进或报告错误。
许可证
此包是开源软件,受 MIT 许可证 的许可。