Job activityTimerTimerSchedulerSchedulerMetadataStorageMetadataStorageJobActivationQueueJobActivationQueueNotifyQueueNotifyQueueRunnerRunnerJobCodeJobCodeNotifyRunnerNotifyRunnerNotifyStorageNotifyStorageNotifyCodeNotifyCodeSchedules tasksStores job metadataA queue that receives the job GUIDfor jobs that needs to be runA queue that receives the job GUIDand the job state it needs to benotified ofRuns the job codeConverts a job GUID torunnable codeRuns notification codeStores notification metadataConverts a notification GUIDto runnable codeSchedulingEvery 1 secGet job guid listFor each guid get metadataFilter next tickNext tick, last tickfor scheduled guidsGUIDs of next jobGUID + SCHEDULEDRun the jobGUID of scheduled GUIDGet runnable codevs GUIDGUID + STARTEDRun jobGUID + DONENotificationGUID + <JOB STATE>Get notify GUIDs forjob GUID + job stateGet notify code to runusing Notify GUIDRun notification code