Вы находитесь на странице: 1из 3

Create Windows

Service to Schedule
PHP Script execution
If you want to schedule your PHP script or
any other command on Windows
Platform recursively after a fix interval of
time then you can create a Windows
Service for it. Windows service is very
easy to create in Visual Studio.Net. I’m
using C# language for this scheduler
service you can also use VB.net for it.
Basically we need this type of service if
we want to execute some PHP script in
background in a specific interval of time.
For example, If you want to import data in
bulk from some web service.

You need to follow these steps: -

• Create a project by using the


Windows Service application template.
This template creates a class for you that
inherits from ServiceBase and writes
much of the basic service code, such as
the code to start the service.
• Write the code for the OnStart
and OnStop procedures, and override any
other methods that you want to redefine.
• Add the necessary installers for
your service application. By default, a
class that contains two or more installers
is added to your application when you
click the Add Installer link: one to install
the process, and one for each associated
service that your project contains.
• Build your project.
• Create a setup project to install
your service, and then install it.
• Access the Windows 2000
Services Control Manager and start your
service.

For more detail check “Walkthrough:


Creating a Windows Service
Application in the Component
Designer” topic in MSDN.

using System;
using
System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Timers;

namespace MyNewService
{
public partial class
MyNewService : ServiceBase
{
private Timer syncTimer
= null;

public MyNewService()
{
InitializeComponent
();
}

protected override void


OnStart(string[] args)
{
syncTimer = new
Timer();
this.syncTimer.Inte
rval = 180000;
this.syncTimer.Elap
sed += new
System.Timers.ElapsedEventHandl
er(this.syncTimer_Tick);
syncTimer.Enabled =
true;
}

protected override void


OnStop()
{
syncTimer.Enabled =
false;
}

private void
syncTimer_Tick(object sender,
EventArgs e)
{
System.Diagnostics.
Process.Start(@"C:\xampp\htdocs
\task.bat");
}
}
}
The task.bat file is a batch file. We are
executing our PHP script through this
batch file. First we set the path of
directory where php.exe is located in your
windows. The import.php is basically
importing data in bulk from some web
and we need to execute this script file
background in every 3 minutes.

@echo off
cd\
set path=C:\xampp\php;
cd "C:\xampp\htdocs"
php import.php
exit

Вам также может понравиться