Scheduled tasks
Scheduled tasks in Sitefinity CMS are objects that can execute a predefined set of operation at a particular point in time. You can use scheduled task in conjunction with other Sitefinity mechanism such as the event system to postpone the execution of heavy operations. For example, you can subscribe for the ICommentCreatedEvent for comments, to receive an email each time a new comment is created. Instead of executing the fired event handler logic immediately you can create a scheduled task that is going to perform this operation at a more convenient time, for example during the weekend.
Create a scheduled task
The following procedure demonstrated how to create a scheduled task:
- Create a new class that derives from
ScheduledTask
.
- In the constructor, set a key identifier.
It is used to check if a task is already scheduled or to find the task itself.
- In the
ExecuteTask
method, you specify the operations that are going to be executed by the scheduled task.
- Optionally, you can add your own logic and create a recurring task. To do this, you:
- Create a class for the task logic.
- Inside the ExecuteTask method, create a new task.
- Reschedule it using the RescheduleNextRun method.
NOTE: In this example, the task recurring time is 60 seconds. You can set the execution time in other units of measures, apart from seconds. For more information, see the official Microsoft documentation on System.DateTime methods.
The static ScheduleTask
method wraps the logic, required to schedule a new task, as well as to reschedule an existing one.
EXAMPLE: To create a scheduled task, you can use the following code sample:
Execute a scheduled task
Then you can execute the scheduled task using the following line in your Sitefinity CMS widgets or event handlers: