编程

[Laravel 扩展包]使用 Laravel Chaotic Schedule 包随机化命令执行时间

236 2024-09-15 05:24:00

Laravel chaotic-schedule 包允许你通过伪随机数生成器(PRNG)随机化计划的命令执行时间和日期间隔:

你有没有想过在一天中的随机时间或一周中的某些日子运行你的预定命令?或者,你可能需要发送一些通知,不是在固定的日期时间发送,而是在随机的时间间隔内,因此让人感觉更人性化。那么这就是你要找的包。

这个 Laravel 包允许你在随机间隔和周期上运行命令,同时尊重你为此专门设置的阈值。

其 Readme 提到的一个用例是发送用户通知或电子邮件,以随机的方式发送,使之更具有人类操作的特征。避免在同一时间定期发送这些消息而显得更像自动化操作:

// Run a command daily on a random time between 08:15 and 11:42
$schedule->command('inspire')->daily()->atRandom('08:15','11:42');
 
// Run a command every Tuesday, Saturday and Sunday on a random time between 04:20 and 06:09
$schedule->command('your-command-signature:here')
    ->days([Schedule::TUESDAY, Schedule::SATURDAY, Schedule::SUNDAY])
    ->atRandom('04:20','06:09');

此包包含多个函数,可根据多种因素定义随机规范,比如:

  • dailyAtRandom()
  • hourlyAtRandom()
  • hourlyMultipleAtRandom()
  • randomDays()
  • ...

GitHub 源码:https://github.com/skywarth/chaotic-schedule