The first thing you’ll want to do is create your job by implementing the Shiny.Jobs.IJob interface.
Next, we need to define our job run parameters by defining a JobInfo. The job info allows you to pass in a dictionary of parameters to use within your job.
Lastly, we need to register our job. There are two ways to do this
Through the shiny startup process (recommended)
OR Dynamically in your code - in order to do this, you still have to register the job manager in your startup
Foreground jobs aren’t really anything special. When your app comes to the foreground, we simply start a timer that schedules a job to run every X seconds.