Click here to Skip to main content
15,891,941 members
Articles / Programming Languages / C#
Tip/Trick

Scheduling Window Service Daily,Weekly,Monthly

Rate me:
Please Sign up or sign in to vote.
4.50/5 (6 votes)
20 Mar 2012CPOL 111.5K   7.6K   28   14
Scheduling Window Service Daily Or Weekly Or Monthly

Introduction

Crate a a Simple window service and scheduling the windows service with some time interval is very easy.but if you get requirement to schedule a windows service daily at 10Am or some specific hours Or every weekly once .Then you will search code in Google but you may not get exact code in Google.Below is article which may help you while scheduling windows service Daily,Weekly or monthly.

Background

As you know to schedule a windows service , we must require timer and Timer has timer interval Property . we have to trigger an event when timer interval Elapsed and timer has ElapsedEventHandler where we can call method to work on.

Using the code

Explain the topic of the article with code and description

Block of code should be set style as "Code" like below.
//Add the windows service dll in to Windows service reference. 

 using SunilWindowsServiceScheduler; 

 //Below  is the code for  OnStart  and  OnStop for windows service 

  protected override void OnStart(string[] args)
        {
            WindowsServiceSchedler(_timer);
        }
        protected override void OnStop()
        {
            _timer.Stop();
        } 
 // This method you can write in service class of windows service. 

    void _timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            try
            {
                #region Process ProcessFeefoResults
                _timer.Stop();
                //Call the ProcessFeefoResults                     
                
                WindowsServiceSchedler(_timer);

                #endregion
            }

            catch (Exception)
            {
                _timer.Start();

            }

        } 
// This the static method  can be used for WindowsServiceSchedler 
private static void WindowsServiceSchedler(System.Timers.Timer _timer)
        {
            string _runweekly = Convert.ToString(ConfigurationSettings.AppSettings["Weekly"]);
            string _weeklyeventTriggerTime = Convert.ToString(ConfigurationSettings.AppSettings["WeeklyeventTriggerTime"]);
            string _dayOfWeek = Convert.ToString(ConfigurationSettings.AppSettings["DayOfWeek"]);
            DayOfWeek MyDays = (DayOfWeek)DayOfWeek.Parse(typeof(DayOfWeek), _dayOfWeek);
            string _DailyEventTriggerTime = Convert.ToString(ConfigurationSettings.AppSettings["DailyEventTriggerTime"]);
            Scheduler sch = new Scheduler("SunilWindowsService");
            if (_runweekly == "true")
            {

                sch.ScheduleWeekly(MyDays, _weeklyeventTriggerTime, _timer);
            }
            else
            {
                sch.ScheduleDaily(_DailyEventTriggerTime, _timer);
            }
        }
 // You have to add the details in App.config file to schedule
 //the service daily Or Weekly or Monthly.  
 <!-- Set Event Trigger Timer in 24 hours format  -->
    <!--Configure Window Service Daily  -->
    <!-- Example : for 10:00 PM value="22"  -->
    <add key="DailyEventTriggerTime" value="10" />
    <!--Configure Window Service  Weekly  -->
    <!-- Example : for 10:00 PM value="22"  -->
    <add key="Weekly" value="false" />
    <add key="DayOfWeek" value="Tuesday" />
    <add key="WeeklyeventTriggerTime" value="10" />  

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
India India
Certified Scrum Master and Certified Scrum Product Owner with broad knowledge and experience in Agile and Scrum methodologies.Expertise in DEVOPS to increases an organization's ability to deliver applications and services at high velocity: evolving and improving products at a faster using Continuous Integration, Continuous Delivery, Continuous Testing, and Continuous Monitoring.

Comments and Discussions

 
QuestionPlease share the complete code with sample service Pin
Member 1028679114-Dec-17 20:41
Member 1028679114-Dec-17 20:41 
BugIn case of week not working Pin
Member 996170928-Mar-16 23:50
Member 996170928-Mar-16 23:50 
Questionneed help with code Pin
Member 103774944-Sep-15 1:44
Member 103774944-Sep-15 1:44 
Questiongood Pin
raghukiranbnv9-Apr-14 21:21
raghukiranbnv9-Apr-14 21:21 
Thank you for a good article.Appreciate your effort for posting this over...

Can you post complete code of using your library in windows service.

Thanks in Advance

modified 10-Apr-14 3:34am.

GeneralMy vote of 4 Pin
Samit Kr Ghosh30-Mar-14 22:58
Samit Kr Ghosh30-Mar-14 22:58 
QuestionNeed Schedule job code Pin
Member 103095221-Oct-13 9:11
professionalMember 103095221-Oct-13 9:11 
QuestionGood article Pin
Tridip Bhattacharjee10-Jun-13 9:05
professionalTridip Bhattacharjee10-Jun-13 9:05 
GeneralMy vote of 5 Pin
VittorPI19-Feb-13 3:46
VittorPI19-Feb-13 3:46 
QuestionSMS with windows Service Pin
Dhanashree Dive30-Jan-13 18:32
Dhanashree Dive30-Jan-13 18:32 
QuestionIs not working with hours and minutes Pin
Member 97336118-Dec-12 23:53
Member 97336118-Dec-12 23:53 
AnswerRe: Is not working with hours and minutes Pin
es promotion6-Jan-14 3:10
es promotion6-Jan-14 3:10 
GeneralRe: Is not working with hours and minutes Pin
Member 1004855021-Feb-17 19:37
Member 1004855021-Feb-17 19:37 
SuggestionYou can set specified time to execute service on daily basis. Pin
Mukund Thakker25-Mar-12 19:27
professionalMukund Thakker25-Mar-12 19:27 
GeneralRe: You can set specified time to execute service on daily basis. Pin
Sunileswar Behera26-Mar-12 20:16
Sunileswar Behera26-Mar-12 20:16 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.