coufal/laravel-http-cronjob

一个通过 HTTP 端点触发调度器的 Laravel 包。

v1.3.0 2024-09-10 09:45 UTC

This package is auto-updated.

Last update: 2024-09-10 09:48:23 UTC


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 许可证 的许可。