Skip to content

Latest commit

 

History

History
239 lines (175 loc) · 5.54 KB

File metadata and controls

239 lines (175 loc) · 5.54 KB

Otomasyon Sistemi - Proje Yapısı ve Özet

Oluşturulan Bileşenler

Çekirdek Modüller

1. core/ - Temel Arayüzler

  • AutomationTask.java - Tüm görevlerin temel arayüzü
  • TaskExecutionResult.java - Görev sonuç izleme sınıfı

2. scheduler/ - Görev Zamanlama

  • AutomationScheduler.java - Merkezi scheduler ve yönetici
    • Hemen çalıştırma
    • Bir kez zamanlanmış çalıştırma
    • Periyodik çalıştırma
    • Sabit gecikmeli çalıştırma
    • Çalışma geçmişi takibi

3. tasks/ - Görev Implementasyonları

  • BaseAutomationTask.java - Temel görev sınıfı
  • DataProcessingTask.java - Veri işleme (UPPERCASE, LOWERCASE, REVERSE, COUNT)
  • FileOperationTask.java - Dosya işlemleri (COPY, MOVE, DELETE, BACKUP)
  • ReportGenerationTask.java - Rapor oluşturma
  • SystemCommandTask.java - Sistem komutları çalıştırma

4. config/ - Konfigürasyon

  • ConfigurationLoader.java - JSON dosyasından yapılandırma yükleme

Uygulama Örnekleri

1. AutomationSystemDemo.java

  • Temel sistem demo
  • Hemen çalışan görevler
  • Zamanlanmış görevler
  • Çalışma geçmişi gösterimi

2. RealWorldAutomationExample.java

  • Gerçek dünya senaryosu
  • Sistem sağlık raporu
  • Periyodik yedekleme
  • Log temizleme
  • Saatlik istatistikler

Test

AutomationSystemTest.java

  • Veri işleme testi
  • Rapor oluşturma testi
  • Scheduler test
  • Geçmiş yönetimi testi

Konfigürasyon

  • pom.xml - Maven proje yapılandırması
  • logback.xml - Loglama konfigürasyonu
  • automation-config.json - JSON tabanlı görev konfigürasyonu

Dokümantasyon

  • README.md - Detaylı proje açıklaması
  • QUICKSTART.md - Başlangıç rehberi
  • FEATURES.md - Özellikler ve kullanım (bu dosya)
  • install.sh - Otomatik kurulum scripti
  • run.sh - Çalıştırma scripti

Ana Özellikler

Temel Yetenekler

  1. Görev Zamanlama

    • Hemen çalıştır
    • Belirtilen gecikmeden sonra çalıştır
    • Periyodik çalıştırma
    • Sabit gecikmeli çalıştırma
  2. Görev Türleri

    • Veri işleme (dönüştürme, analiz)
    • Dosya operasyonları
    • Rapor oluşturma
    • Sistem komutları
    • Özel görevler (extension)
  3. İzleme ve Raporlama

    • Çalışma geçmişi
    • Hata takibi
    • Zaman ölçümü
    • Detaylı loglama
  4. Concurrency

    • Thread pool tabanlı
    • Eşzamanlı çalıştırma
    • Thread güvenliği

Hızlı Başlangıç Komutları

# Derleme
mvn clean compile

# Test çalıştırma
mvn test

# Temel demo
mvn exec:java -Dexec.mainClass="com.otomasyon.AutomationSystemDemo"

# Gerçek dünya örneği
mvn exec:java -Dexec.mainClass="com.otomasyon.RealWorldAutomationExample"

# Veya script ile
bash run.sh

Proje İstatistikleri

  • Sınıf Sayısı: 12+
  • Arayüz Sayısı: 1
  • Görev Türü: 5+ (genişletilebilir)
  • Dil: Java 11+
  • Build Tool: Maven
  • Loglama: SLF4J + Logback
  • Parallellik: Concurrent/Executors

Teknoloji Stack

Teknik Versiyon Amaç
Java 11+ Ana dil
Maven 3.6+ Build tool
SLF4J 2.0.7 Loglama
Logback 1.4.11 Loglama implementasyonu
Quartz 2.3.2 İleri zamanlama (isteğe bağlı)
Gson 2.10.1 JSON işleme
JUnit 4.13.2 Test framework

Örnek Senaryolar

Senaryo 1: Günlük Sistem Sağlık Kontrol

AutomationTask healthCheck = new AutomationTask() {
    public void execute() {
        // Sistem durumunu kontrol et
        // Rapor oluştur
    }
    public String getName() { return "Sağlık Kontrol"; }
    public String getDescription() { return "Sistem sağlığını kontrol et"; }
};

scheduler.scheduleRepeatedly(healthCheck, 0, 24, TimeUnit.HOURS);

Senaryo 2: Saatlik Veri Yedeklemesi

FileOperationTask backup = new FileOperationTask(
    "Günlük Yedek",
    "data/database.db",
    "backups/database_" + LocalDate.now() + ".db",
    FileOperationTask.OperationType.COPY
);

scheduler.scheduleRepeatedly(backup, 0, 1, TimeUnit.HOURS);

Senaryo 3: Periyodik Rapor Oluşturma

ReportGenerationTask report = new ReportGenerationTask(
    "Aylık Rapor",
    "reports/" + LocalDate.now() + "_report.txt"
);

scheduler.scheduleRepeatedly(report, 0, 1, TimeUnit.DAYS);

🔐 Güvenlik Özellikleri

  • Thread Safety: Concurrent collections kullanımı
  • Exception Handling: Tüm görevler exception handling'e sahip
  • Loglama: Tüm işlemler loglanır
  • Graceful Shutdown: Sistem düzgün kapatılır

📈 Genişletme Noktaları

  1. Yeni Görev Türü Ekleme

    • BaseAutomationTask extend et
    • execute() implement et
  2. Konfigürasyon Yükleme

    • ConfigurationLoader kullan
    • JSON format destekliyor
  3. Özel Loglama

    • logback.xml özelleştir
    • Custom appender ekle
  4. Veritabanı İntegrasyonu

    • İzleme verilerini DB'ye kaydet
    • Geçmişi persis et

Öğrenme Kaynakları

  • AutomationSystemDemo.java - Temel örnekler
  • RealWorldAutomationExample.java - Gerçek dünya uygulaması
  • AutomationSystemTest.java - Test yazma örnekleri
  • README.md - Detaylı açıklamalar
  • QUICKSTART.md - Adım adım rehber

📞 Sonraki Adımlar

  1. Kurulum: bash install.sh çalıştır
  2. Test: mvn test ile testleri çalıştır
  3. Demo: bash run.sh ile sistemi gör
  4. Özelleştir: Kendi görevlerini ekle
  5. Genişlet: Yeni özellikler implementa et

Sistem hazır!

Java otomasyon sistemi başarıyla oluşturuldu. Hemen başlayabilirsin!