the job poller is configured to have a given number of Threads of concurrent job execution - say N.
also configured is a Long poll interval and a Short poll interval.
the job execution (poller) service starts polling with the short interval
at each poll, the job poller should get fetch up to X jobs to run, where X is the number of "free" executors which the poller has ( X <= N ). If 0 jobs are fetched, the long poll interval is used. If >= 1 job is fetched, short polling mode is used. If all jobs are finished and the short poll mode is used, then poll immediately.
Each fetched job ( status is RUN ) is executed with a separate thread. When the job finishes, the status is updated with the start/end timestamp information.
if a job is scheduled for immediate execution, the poller service on the same instance should be triggered. if the poller is waiting and in long mode, it should be interrupted and try to reserve the scheduled jobs immediately.
the job poller is configured to have a given number of Threads of concurrent job execution - say N. also configured is a Long poll interval and a Short poll interval.
the job execution (poller) service starts polling with the short interval
at each poll, the job poller should get fetch up to X jobs to run, where X is the number of "free" executors which the poller has ( X <= N ). If 0 jobs are fetched, the long poll interval is used. If >= 1 job is fetched, short polling mode is used. If all jobs are finished and the short poll mode is used, then poll immediately.
Each fetched job ( status is RUN ) is executed with a separate thread. When the job finishes, the status is updated with the start/end timestamp information.
if a job is scheduled for immediate execution, the poller service on the same instance should be triggered. if the poller is waiting and in long mode, it should be interrupted and try to reserve the scheduled jobs immediately.