bree
                                
                                
                                
                                    bree copied to clipboard
                            
                            
                            
                        [feat] getting future execution timeline/schedule for jobs
Hi Is it possible to easily get a list of dates/times all jobs or a specific job will be executed next?
Please see below some proposed syntax and use cases/outputs:
bree.getSchedule() // outputs the earliest (1) upcoming job
>> [
      { name: "job_3457", scheduled: "2021-01-23T13:02:58.838Z" }
   ]
bree.getSchedule( { job: ["job_6573", "job_6573"] } ) // outputs the earliest (1) upcoming job for each "job_6573" and "job_6573". 
>> [
      { name: "job_3457", scheduled: "2021-01-23T13:02:58.838Z" },
      { name: "job_6573", scheduled: "2021-01-23T13:14:53.177Z" },
   ]
bree.getSchedule( { job: [ "job_6573", "job_3457" ], count: 2 } ) // outputs the earliest (2) upcoming jobs for each "job_6573" and "job_3457". 
>> [
      { name: "job_3457", scheduled: "2021-01-23T13:02:58.838Z" },
      { name: "job_6573", scheduled: "2021-01-23T13:14:53.177Z" },
      { name: "job_3457", scheduled: "2021-01-24T13:02:58.838Z" },
      { name: "job_6573", scheduled: "2021-01-27T13:14:53.177Z" },
   ]
bree.getSchedule( { dateStart: "2021-01-23T12:00:00.000Z", dateEnd: "2021-01-29T12:00:00.000Z" } ) // returns all jobs scheduled between specified dates
>> [
      { name: "job_3457", scheduled: "2021-01-23T13:02:58.838Z" },
      { name: "job_6573", scheduled: "2021-01-23T13:14:53.177Z" },
      { name: "job_3457", scheduled: "2021-01-24T13:02:58.838Z" },
      { name: "job_3457", scheduled: "2021-01-25T13:02:58.838Z" },
      { name: "job_3457", scheduled: "2021-01-26T13:02:58.838Z" },
      { name: "job_3457", scheduled: "2021-01-27T13:02:58.838Z" },
      { name: "job_6573", scheduled: "2021-01-27T13:14:53.177Z" },
      { name: "job_3457", scheduled: "2021-01-28T13:02:58.838Z" },
   ];
bree.getSchedule( { job: [ "job_6573" ], dateStart: "2021-01-23T12:00:00.000Z", dateEnd: "2021-01-29T12:00:00.000Z"} ) // returns all jobs for "job_6573" scheduled between specified dates
>> [
      { name: "job_6573", scheduled: "2021-01-23T13:14:53.177Z" },
      { name: "job_6573", scheduled: "2021-01-27T13:14:53.177Z" },
   ];
                                    
                                    
                                    
                                
A PR would be welcome for this.
Use of Cron Parser can help us out? Using their feature of next and previous.
later can get next/previous, which is how we schedule all of the intervals. It is just a functionality that needs to be written.
Can i help?
Please do! We are always open to reviewing PR's.
PR welcome @DynamiteC!