Hello,
I've released a new version for Chaotic Schedule package. This new release introduces new random scheduling macro: hourlyMultipleAtRandom().
What is Chaotic Schedule?
Chaotic Schedule is a Laravel package which allows you to randomize command schedules, be it date or time. Want a sampler for taste of flavor, sure:
$schedule->command('foo:bar')
->weekly()
->randomDays(
    RandomDateScheduleBasis::WEEK,
    [Carbon::FRIDAY,Carbon::Tuesday,Carbon::Sunday],
    1,2
)
->atRandom('14:48','16:54');
  
  
  Where can you use Chaotic Schedule?
Here's some use-cases which might be valid for you as well:
- I have a command to send notifications to my clients. But I would like it to be sent at a random time between 14:00and17:00
- I would like to send some gifts to users if they are active between my special event period which is every week FridayandSaturdaybetween00:00and04:20
- My boss asked me to generate and send statistical reports regarding database activities every month, but only on Monday,WednesdayandFriday. And this report has to be delivered in the morning between08:00and09:30and I want it to look like I've personally generated and sent it personally. So random time and date is crucial to stage this.
- I would like to send reminders to customers and I want it to look and feel human. So random run times and dates every week would help me a lot. Otherwise, if I send every week on Tuesday11:00they would know this is automated and ignore these.
- There is a financial deficit, in order to detect the source of it I'll be running audit calculations. But these have to be random, otherwise they'll alter the records accordingly. I need to run audit calculations/assertions 3 times a day at random times.
- I'm trying to detect certain anomalies in my data, and therefore it would help me a lot to run a command completely randomly but with a minimum of at least 100 times a year.
What's new?
hourlyMultipleAtRandom() can be used for scheduling your commands to run every hour on random minutes. Example use case: I want to run a command every hour, 1-5 times at random, on random minutes. E.g. run minutes:[5,11,32,44]
- Runs every hour
- Only designates random run time(s)
- Runs multiple times per hour, according to $timesMinand$timesMaxparams
- Doesn't designate any date on the schedule. So you may have to provide some date scheduling such as daily(),weekly(),mondays()etc.
- Behaves exactly the same with ->hourlyAtRandom if the timesMin=1andtimesMax=1. (I mean duh)
 
 
              
 
    
Top comments (0)