Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > Как создать сис. службу


Автор: CD20 22.8.2005, 15:50
САБЖ smile

Автор: mr.Anderson 22.8.2005, 17:35
Унтересный вопрос. smile Для начала ее бы надо написать. smile А уж потом вам тут более сведущие люди разъяснят...

Автор: CD20 22.8.2005, 18:33
Хорошо: как её написать smile

Автор: LSD 22.8.2005, 18:56
Цитата(CD20 @ 22.8.2005, 19:33)
Хорошо: как её написать

Для начала неплохо бы определиться, на чем писать.

Автор: CD20 23.8.2005, 09:20
Хватит флудить!
Скажите хоть что-нить!
Напишите хоть на чем-нить!

Автор: LSD 23.8.2005, 12:14
Элементарно smile
Код
import java.util.*;
import java.io.*;
import java.text.*;

public class SampleService extends WinService
{
  private Object pauseLock = new Object();
  private static DateFormat formatter = null;
  private volatile boolean paused = false;
  
  static {
    formatter = new SimpleDateFormat ("HH:mm:ss dd MMM yyyy", Locale.getDefault());
    formatter.setTimeZone (TimeZone.getDefault());
  }

  public void run () {
    logInfoEvent("run() method called, service started");

    for(;;) {
      if(paused) {

        // locking service run thread

        synchronized(pauseLock) {
          try { pauseLock.wait(); }
          catch(InterruptedException t) {}
        }
      }

      // working...

      logInfoEvent ("service is working");
      logInfoEvent ("current date: " + formatter.format(new Date()));

      try { Thread.sleep (15000); }
      catch(InterruptedException t) {}
    }
  }

  public boolean init () {
    // things to do before service run

    logInfoEvent("init() method called, initializing service...");

    // set timeouts...
    
    setInitTimeout(1000);
    setPauseTimeout(1000);
    setResumeTimeout(1000);
    setStopTimeout(1000);

    logInfoEvent("service initialized");

    return true;
  }

  public void shutdown () {
    // things to do before service shutdown
  }

  public void stop () {
    // things to do before service stop

    logInfoEvent("stop() method called, service is stopped");
  }

  public void pause () {
    // things to do before service pause

    logInfoEvent("pause() method called, service is paused");
    paused = true;
  }

  public void resume () {
    // things to do before service resume

    logInfoEvent("resume() method called, service is resumed");
    paused = false;

    synchronized(pauseLock) {

      // unlocking service run thread
      pauseLock.notify();
    }
  }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)