Thursday, 21 April 2016

Timer Job

Timer job

Web Application scope

////const string JobName = "Archival Process Timer";
        ////string SiteURL = string.Empty;
        ////SPUserToken UserToken = null;
        ////SPWebApplication Owebapplication = null;

        ////public override void FeatureActivated(SPFeatureReceiverProperties properties)
        ////{
        ////    try
        ////    {
        ////        SPSecurity.RunWithElevatedPrivileges(delegate()
        ////        {
        ////            SPWebApplication parentWebApp = (SPWebApplication)properties.Feature.Parent;
        ////            SPSite site = properties.Feature.Parent as SPSite;
        ////            DeleteExistingJob(JobName, parentWebApp);
        ////            CreateJob(parentWebApp);
        ////        });
        ////    }
        ////    catch (Exception ex)
        ////    {
        ////        throw ex;
        ////    }
        ////}
        //private bool CreateJob(SPWebApplication site)
        //{
        //    bool jobCreated = false;
        //    try
        //    {
        //        Archival job = new Archival(JobName, site);

        //        SPDailySchedule schedule = new SPDailySchedule();
        //        schedule.BeginHour = 0;
        //        schedule.BeginMinute = 0;
        //        schedule.BeginSecond = 0;
        //        schedule.EndHour = 1;
        //        schedule.EndMinute = 55;
        //        schedule.EndSecond = 55;
        //        job.Schedule = schedule;
        //        job.Update();

        //        /*SPMinuteSchedule schedule = new SPMinuteSchedule();
        //        schedule.BeginSecond = 0;
        //        schedule.EndSecond = 59;
        //        schedule.Interval = 15;
        //        job.Schedule = schedule;

        //        job.Update();*/
        //    }
        //    catch (Exception)
        //    {
        //        return jobCreated;
        //    }
        //    return jobCreated;
        //}
        //public bool DeleteExistingJob(string jobName, SPWebApplication site)
        //{
        //    bool jobDeleted = false;
        //    try
        //    {
        //        foreach (SPJobDefinition job in site.JobDefinitions)
        //        {
        //            if (job.Name == jobName)
        //            {
        //                job.Delete();
        //                jobDeleted = true;
        //            }
        //        }
        //    }
        //    catch (Exception)
        //    {
        //        return jobDeleted;
        //    }
        //    return jobDeleted;
        //}
        //public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        //{

        //    DeleteJob(properties.Feature.Parent as SPSite);
        //}
        //private static void DeleteJob(SPSite site)
        //{
        //    foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)
        //        if (job.Name == JobName)
        //            job.Delete();
        //}



----------------------------------------------------------------------------------------------------------------------------------

Site collection scope


public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            SPSite site = properties.Feature.Parent as SPSite;

            // make sure the job isn't already registered

            foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)
            {

                if (job.Name == Constants.Constants.JobName)

                    job.Delete();

            }

            // install the job

            Archival listLoggerJob = new Archival(Constants.Constants.JobName, site.WebApplication);

            //SPMinuteSchedule schedule = new SPMinuteSchedule();

            SPHourlySchedule schedule = new SPHourlySchedule();
            //SPDailySchedule Schedule = new SPDailySchedule();
            //Schedule.
            //schedule.BeginSecond = 0;
            schedule.BeginMinute = 0;


            schedule.EndMinute = 59;
            //SPDailySchedule Schedule = new SPDailySchedule();
            //Schedule.

            //schedule. = 5;

            listLoggerJob.Schedule = schedule;

            listLoggerJob.Update();

        }

        // Uncomment the method below to handle the event raised before a feature is deactivated.

        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            SPSite site = properties.Feature.Parent as SPSite;

            // delete the job

            foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)
            {

                if (job.Name == Constants.Constants.JobName)

                    job.Delete();

            }

        }

No comments:

Post a Comment