以编程方式公开Laravel任务,'re-usable'用于不同目的



我正试图在任务计划中定义一些"要做/要运行的事情"(也可能是命令?(
所以我可能有一个名为PushNotificationJob的命令假装和另一个称为WriteToLogFileJob的命令,等等。
我想在我的管理GUI中公开这些命令,以便添加BatchProcess
想象一下,在Laravel CMS页面上有一个按钮,上面写着"添加批处理",并在该页面中收集新批处理的信息:

  1. 要运行的任务/作业(假设当前已定义的下拉列表任务:PushNotificationJob和WriteToLogFileJob(
  2. 何时运行(cron字符串(
  3. 要发送到该任务/作业的键/值参数

现在假设我在名为"向用户发送应用程序更新通知"的页面上定义了一个BatchProcess,它使用PushNotificationJob任务(发送参数:--message='Hey$name,更新你的应用程序!'和--priority='high',应该每天运行(。以及另一个名为"向用户发送新闻稿"的BatchProcess,如果可能的话,它也使用相同的PushNotificationJob任务(发送参数:--message='Hey$name,登录我们的应用程序以查看最新的新闻稿!'和--priority='normal'(,每两周运行一次。实际上,参数和时间是唯一不同的东西,任务本身仍然是一样的,它向用户发送带有该优先级的消息参数的推送通知。

这一切可行吗?我已经看到了一些将所有当前任务公开到UI的方法。也许还看到了一种为Task设置cron字符串的方法。。。但这似乎是重复使用了同一个任务,因此它不能通过不同的cron字符串/参数以不同的方式创建"重复使用同一任务的多个作业"。

以下是迄今为止我获得的最多信息,可能会将任务暴露在UI中:

laravel动态添加调度器

LARAVEL:在管理面板中获取一系列计划任务的输出

如果这是可以实现的,请在下面告诉我。

根据其他帖子创建了一种方法:https://github.com/armyofda12mnkeys/laravel-task-gui-linkage(主分支(所以首先创建一些命令。。。这些命令的选项/参数应该在Command类中预定义(这有点限制了可以通过GUI动态发送的参数数量和确切的参数(。

然后在GUI中,键入任务的名称(或通过DB或硬编码将该表单值链接到下拉列表(,并设置发送给它的时间(cron或关键字,如hourly(和参数。

然后Kernel.php可以根据我看到的其他代码动态注册它们。

最新更新