IJobManagerService in assembly SanteDB.Core.Api version 3.0.1980.0
Summary
Job Management Service
Description
In SanteDB, developers can create IJob implementations which represent background jobs for the system. Uses of these classes involve:
Performing routine maintenance tasks like compression, backup, etc.
Performing indexing tasks or managing long-running tasks
Exposing packaged batch operations to users (who can run them manually from the UI)
The job manager is the service which manages the master list of IJob instances and allows other plugins to register new jobs, start jobs, and even schedule job execution based on a schedule or interval.
/// Example Implementation
using SanteDB.Core.Jobs;
/// Other usings here
public class MyJobManagerService : SanteDB.Core.Jobs.IJobManagerService {
public String ServiceName => "My own IJobManagerService service";
/// <summary>
/// Gets the status of all jobs
/// </summary>
public IEnumerable<IJob> Jobs {
get;
}
/// <summary>
/// Add a job to the job manager
/// </summary>
public void AddJob(IJob jobType,TimeSpan elapseTime,JobStartType startType){
throw new System.NotImplementedException();
}
/// <summary>
/// Adds a job by type to the job manager
/// </summary>
public IJob RegisterJob(Type jobType){
throw new System.NotImplementedException();
}
/// <summary>
/// Add a job to the job manager
/// </summary>
public void AddJob(IJob jobType,JobStartType startType){
throw new System.NotImplementedException();
}
/// <summary>
/// Returns true if the job is registered
/// </summary>
public Boolean IsJobRegistered(Type jobType){
throw new System.NotImplementedException();
}
/// <summary>
/// Starts the specified
/// </summary>
public void StartJob(IJob job,Object[] parameters){
throw new System.NotImplementedException();
}
/// <summary>
/// Starts the specified
/// </summary>
public void StartJob(Type jobType,Object[] parameters){
throw new System.NotImplementedException();
}
/// <summary>
/// Get this manager's instance of a job
/// </summary>
public IJob GetJobInstance(Guid jobKey){
throw new System.NotImplementedException();
}
/// <summary>
/// Get this manager's instance of a job
/// </summary>
public IJob GetJobInstance(Type jobType){
throw new System.NotImplementedException();
}
/// <summary>
/// Get the schedule for the specified job
/// </summary>
public IEnumerable<IJobSchedule> GetJobSchedules(IJob job){
throw new System.NotImplementedException();
}
/// <summary>
/// Schedule a job to start at a specific time with a specific repetition
/// </summary>
public IJobSchedule SetJobSchedule(IJob job,DayOfWeek[] daysOfWeek,DateTime scheduleTime){
throw new System.NotImplementedException();
}
/// <summary>
/// Schedule a job to start at a specific time with a specific repetition
/// </summary>
public IJobSchedule SetJobSchedule(IJob job,TimeSpan intervalSpan){
throw new System.NotImplementedException();
}
/// <summary>
/// Clear the schedule of a job.
/// </summary>
public void ClearJobSchedule(IJob job){
throw new System.NotImplementedException();
}
public IEnumerable<Type> GetAvailableJobs(){
throw new System.NotImplementedException();
}
}