Sample Code to Schedule an Apex class

Would this help? Then you'll have to set the schedule in your apex classes setup

    global class Miko_Scheduled Implements Schedulable
    {
        global void execute(SchedulableContext sc)
        {
            setToMiko();
        }

        public void setToMiko()
        {
            List<Account> listAccounts = new List<Account>();
            listAccounts = [SELECT ID,Tenant_Name__C FROM Account WHERE Tenant_Name__C = null];

            for(Account acc : listAccounts)
            {
                acc.Tenant_Name__C = 'Miko';
            }

            update listAccounts;
        }
    }

afterwards you can go to Setup > Build > Develop > Apex Classes and then press on the 'Schedule Apex' to set up your class.

Added:

It's helpful to add a few functions like the following to schedulable classes:

public static String schedmon5am = '0 00 05 ? * 2';  //Every Monday, 5AM
// used for scheduling a repeating job - currently set for Monday 5AM.
global static String scheduleMeMon5AM() {
    AutoChatterSiteManagerCheck SC = new AutoChatterSiteManagerCheck(); 
    return System.schedule('ScheduleClassNameStr - Monday 5AM', schedmon5am, SC);
}

That way, you can schedule the class from the "execute anonymous" window with the following:

YourTestClass.scheduleMeMon5AM();

without having to look up how scheduling strings work.


You can take help from the below example :

Batch class :

global class BatchCreateOpportunity implements Database.batchable<sObject>{
    global Database.QueryLocator start(Database.BatchableContext bc){
        String query = 'SELECT id from Account limit 1';
        return Database.getQueryLocator(query);
    }

    global void execute(Database.BatchableContext BC, List<Account> scope)
    {
        List<Opportunity> oppList = new  List<Opportunity>();
         for(Account acc : scope )
     { 

         for(integer i=0;i<5;i++){
             Opportunity opp = new Opportunity();
             opp.accountId = acc.id;
             opp.name = 'version'+i;
             opp.CloseDate = system.today()+10;
             opp.StageName = 'prospecting';
              oppList.add(opp);
         } 
    }   
    insert oppList;
}
 global void finish(Database.BatchableContext BC)
    {
    }
}

Schedular class :

global class schduleBatchCreateOpportunity implements Schedulable {

   global void execute(SchedulableContext ctx) {
      BatchCreateOpportunity p = new BatchCreateOpportunity();
        database.executeBatch(p);
   }   
}

Let me know if it helps.


Schedule apex class for every 15 mins - Complete coding

Let's consider following class to be scheduled for every 15mins.

public with sharing class contactcreate {

     public void createcontact(){

       Contact conobj=new Contact();
       conobj.FirstName='Raj';
       conobj.LastName='K';
       insert conobj;
     }
}

Scheduler class:

global class scheduledCron implements Schedulable{
global void execute(SchedulableContext SC) {
//Non static method cannot be referenced from a static context
        contactcreate abc = new contactcreate();
        abc.createcontact();
    }
}

Go to Developer Console: Debug->Open Execute Anonymous Window

Add following code

System.schedule('Scheduled Job 1', '0 0 * * * ?', new scheduledCron ());
System.schedule('Scheduled Job 2', '0 15 * * * ?', new scheduledCron ());
System.schedule('Scheduled Job 3', '0 30 * * * ?', new scheduledCron ());
System.schedule('Scheduled Job 4', '0 45 * * * ?', new scheduledCron ());

You can check scheduler under Setup->Scheduled Jobs