Class ScheduledJob
Read, edit and execute scheduled jobs
Inheritance
Inherited Members
Namespace: EPiServer.DataAbstraction
Assembly: EPiServer.dll
Version: 10.10.4Syntax
public class ScheduledJob
Remarks
The best way to create a custom scheduled job is to use the ScheduledPlugInAttribute as it will automatically generate a settings page in admin mode.
All dates exposed by ScheduledJob are in local time, but they will be saved to the database as UTC dates.
Examples
Example that demonstrates listing all available jobs.
var repo = ServiceLocator.Current.GetInstance<IScheduledJobRepository>();
foreach (ScheduledJob job in repo.List())
{
Response.Write("Name=" + job.Name);
}
Constructors
ScheduledJob()
Initializes a new instance of the ScheduledJob class.
Declaration
public ScheduledJob()
ScheduledJob(Guid, String, Boolean, DateTime, DateTime, Boolean, String, ScheduledIntervalType, Int32, String, Boolean, String, String, Byte[])
Initializes a new instance of the ScheduledJob class.
Declaration
public ScheduledJob(Guid id, string name, bool enabled, DateTime lastExec, DateTime nextExec, bool lastFailed, string lastText, ScheduledIntervalType datePart, int interval, string methodName, bool isStatic, string typeName, string assemblyName, byte[] data)
Parameters
Type | Name | Description |
---|---|---|
System.Guid | id | The id of the ScheduledJob. |
System.String | name | The name of the ScheduledJob. |
System.Boolean | enabled | if set to |
System.DateTime | lastExec | A System.DateTime for last execution, System.DateTime.MinValue is identical with no last execution date. |
System.DateTime | nextExec | A System.DateTime for next execution, System.DateTime.MinValue is identical with no next execution date. |
System.Boolean | lastFailed | if set to |
System.String | lastText | Informational message on last execution if any. |
ScheduledIntervalType | datePart | The interval unit. |
System.Int32 | interval | The interval. |
System.String | methodName | Name of the method. |
System.Boolean | isStatic | if set to |
System.String | typeName | Name of the type. |
System.String | assemblyName | Name of the assembly. |
System.Byte[] | data | The data. |
ScheduledJob(Guid, String, Boolean, DateTime, DateTime, DateTime, Boolean, String, ScheduledIntervalType, Int32, String, Boolean, String, String, Byte[])
Initializes a new instance of the ScheduledJob class.
Declaration
public ScheduledJob(Guid id, string name, bool enabled, DateTime lastExec, DateTime nextExec, DateTime nextExecUTC, bool lastFailed, string lastText, ScheduledIntervalType datePart, int interval, string methodName, bool isStatic, string typeName, string assemblyName, byte[] data)
Parameters
Type | Name | Description |
---|---|---|
System.Guid | id | The id of the ScheduledJob. |
System.String | name | The name of the ScheduledJob. |
System.Boolean | enabled | if set to |
System.DateTime | lastExec | A System.DateTime for last execution, System.DateTime.MinValue is identical with no last execution date. |
System.DateTime | nextExec | A System.DateTime for next execution, System.DateTime.MinValue is identical with no next execution date. |
System.DateTime | nextExecUTC | A System.DateTime (UTC) of the next scheduled execution. |
System.Boolean | lastFailed | if set to |
System.String | lastText | Informational message on last execution if any. |
ScheduledIntervalType | datePart | The interval unit. |
System.Int32 | interval | The interval. |
System.String | methodName | Name of the method. |
System.Boolean | isStatic | if set to |
System.String | typeName | Name of the type. |
System.String | assemblyName | Name of the assembly. |
System.Byte[] | data | The data. |
ScheduledJob(Guid, String, Boolean, DateTime, DateTime, DateTime, Boolean, String, ScheduledIntervalType, Int32, String, Boolean, String, String, Byte[], TimeSpan)
Initializes a new instance of the ScheduledJob class.
Declaration
[Obsolete("Use other constructor. Individual per job ping times has been deprecated in favor of system wide configuration using EPiServer.Scheduler.Internal.SchedulerOptions.")]
public ScheduledJob(Guid id, string name, bool enabled, DateTime lastExec, DateTime nextExec, DateTime nextExecUTC, bool lastFailed, string lastText, ScheduledIntervalType datePart, int interval, string methodName, bool isStatic, string typeName, string assemblyName, byte[] data, TimeSpan pingTime)
Parameters
Type | Name | Description |
---|---|---|
System.Guid | id | The id of the ScheduledJob. |
System.String | name | The name of the ScheduledJob. |
System.Boolean | enabled | if set to |
System.DateTime | lastExec | A System.DateTime for last execution, System.DateTime.MinValue is identical with no last execution date. |
System.DateTime | nextExec | A System.DateTime for next execution, System.DateTime.MinValue is identical with no next execution date. |
System.DateTime | nextExecUTC | A System.DateTime (UTC) of the next sceduled execution. |
System.Boolean | lastFailed | if set to |
System.String | lastText | Informational message on last exection if any. |
ScheduledIntervalType | datePart | The interval unit. |
System.Int32 | interval | The interval. |
System.String | methodName | Name of the method. |
System.Boolean | isStatic | if set to |
System.String | typeName | Name of the type. |
System.String | assemblyName | Name of the assembly. |
System.Byte[] | data | The data. |
System.TimeSpan | pingTime | The ping sleep. |
ScheduledJob(String, ScheduledMethod)
Initializes a new instance of the ScheduledJob class.
Declaration
public ScheduledJob(string jobName, ScheduledMethod method)
Parameters
Type | Name | Description |
---|---|---|
System.String | jobName | The name of the ScheduledJob. |
ScheduledMethod | method | The method to execute when the scheduled job runs. |
Properties
AssemblyName
Gets or sets the name of the assembly that holds the type.
Declaration
public string AssemblyName { get; set; }
Property Value
Type | Description |
---|---|
System.String |
CurrentStatusMessage
Gets or sets the current status message for the job
Declaration
public string CurrentStatusMessage { get; set; }
Property Value
Type | Description |
---|---|
System.String |
HasLastExecutionFailed
Gets or sets and indiciation if the last execution failed
Declaration
public bool HasLastExecutionFailed { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
ID
Gets or sets the unique identifier of the job.
Declaration
public Guid ID { get; set; }
Property Value
Type | Description |
---|---|
System.Guid |
InstanceData
Get the raw serialized class if method isnt static
Declaration
public byte[] InstanceData { get; }
Property Value
Type | Description |
---|---|
System.Byte[] |
IntervalLength
Gets or sets the length of intervals between execution
Declaration
public int IntervalLength { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
IntervalType
Gets or sets the interval type
Declaration
public ScheduledIntervalType IntervalType { get; set; }
Property Value
Type | Description |
---|---|
ScheduledIntervalType |
IsEnabled
Gets or sets and indication if job is enabled for scheduling
Declaration
public bool IsEnabled { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
IsRunning
Gets or sets the running state of the job
Declaration
public bool IsRunning { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
IsServiceOnline
If the scheduler service is online
Declaration
public static bool IsServiceOnline { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
IsStaticMethod
Gets or sets if the method is static (and does not contain instance data)
Declaration
public bool IsStaticMethod { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
IsStoppable
Gets if the job is stoppable
Declaration
public bool IsStoppable { get; set; }
Property Value
Type | Description |
---|---|
System.Boolean |
LastExecution
Gets or sets the date of the last execution.
Declaration
public DateTime LastExecution { get; set; }
Property Value
Type | Description |
---|---|
System.DateTime |
Remarks
A value of System.DateTime.MinValue indicates that the job has not been executed.
LastExecutionAttempt
Last execution attempt
Declaration
public int LastExecutionAttempt { get; }
Property Value
Type | Description |
---|---|
System.Int32 |
LastExecutionMessage
Gets or sets an informational message on last exection if any
Declaration
public string LastExecutionMessage { get; set; }
Property Value
Type | Description |
---|---|
System.String |
LastExecutionStatus
Gets or sets the last execution status
Declaration
public ScheduledJobExecutionStatus LastExecutionStatus { get; }
Property Value
Type | Description |
---|---|
ScheduledJobExecutionStatus |
MethodName
Gets or sets the name of the method to be called on execution.
Declaration
public string MethodName { get; set; }
Property Value
Type | Description |
---|---|
System.String |
Remarks
For a method with the following signature
public static string Execute()
the name should simply be Execute
Name
Gets or sets a name of the job
Declaration
public string Name { get; set; }
Property Value
Type | Description |
---|---|
System.String |
NextExecution
Gets or sets the date of the next execution.
Declaration
public DateTime NextExecution { get; set; }
Property Value
Type | Description |
---|---|
System.DateTime |
Remarks
A value of System.DateTime.MinValue is regarded as no next execution date is set.
NextExecutionUTC
Gets the original read-only UTC date for next execution
Declaration
public DateTime NextExecutionUTC { get; set; }
Property Value
Type | Description |
---|---|
System.DateTime |
PingTime
Gets or sets the ping time of the job.
Declaration
[Obsolete("Individual per job ping times has been deprecated in favor of system wide configuration using EPiServer.Scheduler.Internal.SchedulerOptions.")]
public TimeSpan PingTime { get; set; }
Property Value
Type | Description |
---|---|
System.TimeSpan |
Restartable
Indicates if the Job is restartable
Declaration
public bool Restartable { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
SecondsAfterLastPing
Gets the ping time.
Declaration
public int SecondsAfterLastPing { get; set; }
Property Value
Type | Description |
---|---|
System.Int32 |
TypeName
Gets or sets the full name of the type that holds the method to execute.
Declaration
public string TypeName { get; set; }
Property Value
Type | Description |
---|---|
System.String |
Remarks
For the following class definition
namespace Example
{
public class MyJob
...
the TypeName should be "Example.MyJob"
Methods
Equals(Object)
Determines whether the specified System.Object is equal to this instance.
Declaration
public override bool Equals(object obj)
Parameters
Type | Name | Description |
---|---|---|
System.Object | obj | The System.Object to compare with this instance. |
Returns
Type | Description |
---|---|
System.Boolean |
|
Overrides
Exceptions
Type | Condition |
---|---|
System.NullReferenceException | The |
Execute(Boolean)
Execute the current job manually and add interval to NextExecute date
Declaration
[Obsolete("Use IScheduledJobExecutor to execute a job.")]
public void Execute(bool startThread)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | startThread | If job should be started in a new thread |
Remarks
The job will not execute if another process has already started the job and updated NextExecution.
Execute(Boolean, DateTime)
Execute the current job manually and add interval to NextExecute date
Declaration
[Obsolete("Use IScheduledJobExecutor to execute a job.")]
public void Execute(bool startThread, DateTime validateUtcDate)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | startThread | If job should be started in a new thread |
System.DateTime | validateUtcDate | Validate date with current UTC date |
Remarks
The job will not execute if another process has already started the job and updated NextExecution.
ExecuteManually()
Force the job to execute and only update NextExecute date if it is set to a passed date.
Declaration
[Obsolete("Use IScheduledJobExecutor to execute a job.")]
public void ExecuteManually()
GetHashCode()
Returns a hash code for this instance.
Declaration
public override int GetHashCode()
Returns
Type | Description |
---|---|
System.Int32 | A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. |
Overrides
IsJobRunning(Guid)
Get the running state for a job
Declaration
[Obsolete("Use IScheduledJobRepository to get job and check if it's running.")]
public static bool IsJobRunning(Guid scheduledJobId)
Parameters
Type | Name | Description |
---|---|---|
System.Guid | scheduledJobId | Job to check running state for |
Returns
Type | Description |
---|---|
System.Boolean | True if it running, otherwise false |
ListRunningJobs()
Retrieves a list of all running jobs
Declaration
[Obsolete("Use IScheduledJobExecutor to list all running jobs.")]
public static IList<ScheduledJobBase> ListRunningJobs()
Returns
Type | Description |
---|---|
System.Collections.Generic.IList<ScheduledJobBase> |
SetServicePingDate()
Do not call this method from code, it is called by the service
Declaration
public static void SetServicePingDate()
Stop()
Tries to stop the job if its running
Declaration
[Obsolete("Use IScheduledJobExecutor to stop a job that is currently running.")]
public void Stop()
Operators
Equality(ScheduledJob, ScheduledJob)
Implements the operator ==.
Declaration
public static bool operator ==(ScheduledJob x, ScheduledJob y)
Parameters
Type | Name | Description |
---|---|---|
ScheduledJob | x | The x. |
ScheduledJob | y | The y. |
Returns
Type | Description |
---|---|
System.Boolean | The result of the operator. |
Inequality(ScheduledJob, ScheduledJob)
Implements the operator !=.
Declaration
public static bool operator !=(ScheduledJob x, ScheduledJob y)
Parameters
Type | Name | Description |
---|---|---|
ScheduledJob | x | The x. |
ScheduledJob | y | The y. |
Returns
Type | Description |
---|---|
System.Boolean | The result of the operator. |