Skip to content
Jon Edmiston edited this page Jul 12, 2018 · 9 revisions

Rock is using the open source Quartz.NET job scheduling system for handling longer running, recurring tasks (Job). Although Quartz is complex and feature rich, you only need to know a few things to create a Job for Rock.

NOTE: For shorter running, simple tasks, you can use Transactions.

Writing a Rock Job

To create a custom Rock Job you only need to extend the IJob interface and implement the Execute() method. You can also use [BlockProperty] to hold administrator configured settings/values for your job.

using Quartz;

[BlockProperty( 0, "My Property", "MyProperty", "General",
    "This would be the description of this property.", false, "100", "Rock", "Rock.Field.Types.Integer" )]

public class MyCustomJob : IJob
{
    public virtual void Execute( IJobExecutionContext context )
    {
        // get the stored configuration property
        JobDataMap dataMap = context.JobDetail.JobDataMap;
        int someNumber = Int32.Parse( dataMap.GetString( "MyProperty" ) );

        // TODO: your code that does something interesting
    }
}
Clone this wiki locally