🛠️ Worker Kurulumu
Octo Worker; arka planda çalışan, zamanlanmış görevleri ve entegrasyon işlerini yürüten Windows servisidir. Bu doküman, yeni bir müşteri ortamına Worker'ın nasıl kurulacağını adım adım anlatır.
Bu sayfa Worker servisinin sunucuya kurulumunu anlatır (sysadmin / DevOps). Çalışan Worker'a görev tanımlamak (zamanlanmış SP, rapor, mail tetikleyici) için: Worker — Görev Yönetimi
Kurulum sürecinin görsel anlatımı için aşağıdaki tanıtım videosunu izleyebilirsiniz.
📺 Tanıtım Videosu
Video Renium SharePoint üzerinde barındırılmaktadır. İzlemek için Renium hesabınızla oturum açmış olmanız gerekir; oturum açık değilse iframe içinde Microsoft giriş ekranı görünür.
Ön Gereksinimler
- Windows Server (veya kurulumun yapılacağı makine) üzerinde yönetici yetkisi
- .NET Runtime (Worker'ın derlendiği sürüme uygun)
- Octo veritabanına erişim için RMS (Remote Desktop Manager) bağlantı bilgileri
- SMTP / e-posta bildirim ayarları (hata bildirimleri için)
Adım 1 — Worker Paketinin Yerleştirilmesi
Worker yayın paketini sunucuda C:\OctoWorker dizinine çıkarın. Klasörün içinde Octo.Worker.exe, appsettings.json, Octo.Worker.dll ve bağımlılık DLL'leri (DevExpress, Newtonsoft.Json vb.) yer almalıdır.

Adım 2 — appsettings.json Konfigürasyonu
appsettings.json dosyasını açıp aşağıdaki şablona göre düzenleyin. FirmaId, ConnectionName ve Recipients alanlarını kuruluma göre güncelleyin.
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"FirmaId": "<FIRMA_ID_GUID>",
"ConnectionName": "<CONNECTION_NAME>",
"ErrorNotification": {
"Enabled": true,
"Recipients": "<MAIL_1>,<MAIL_2>",
"FromAlias": "Octo Worker"
}
}
FirmaId: Worker'ın bağlanacağı firmanınTb_Rn_Sys_CompaniestablosundakiIddeğeri (GUID). Örn:"da28d5e8-a6c3-4130-53a6-08dd7db5ef9a"ConnectionName: Bağlantı tanımı. Bu isim Octo bağlantı yönetiminde tanımlı olmalıdır. Örn:"OCTO_<MUSTERI_KODU>"ErrorNotification.Recipients: Worker hata aldığında uyarı maili gidecek adresler (virgülle ayrılır). Örn:"admin@firma.com,destek@firma.com"ErrorNotification.FromAlias: Hata mailinin gönderici adı.
Adım 3 — Task Scheduler Görevinin Oluşturulması (General)
Task Scheduler'ı açın → Task Scheduler Library altında Renium klasörü oluşturun → Create Task ile yeni görev ekleyin. Görevi OctoWorker adıyla kaydedin ve güvenlik ayarlarını uygulayın:
- Run whether user is logged on or not seçili
- Do not store password işaretli
- Run with highest privileges işaretli

Adım 4 — Trigger Tanımı
Triggers sekmesinde New ile yeni tetikleyici ekleyin. Begin the task olarak At startup seçin. Sunucu her açıldığında görev otomatik başlar.

Adım 5 — Conditions Ayarları
Conditions sekmesinde sunucu için uygun ayarlar:
- Start the task only if the computer is on AC power ✅
- Start the task only if the computer is idle ❌ (işaretli olmamalı — Worker boşta beklemeden çalışmalı)

Adım 6 — Settings Ayarları
Settings sekmesinde aşağıdaki seçenekler aktif olmalı:
- Allow task to be run on demand ✅
- If the running task does not end when requested, force it to stop ✅
- If the task is already running → Stop the existing instance

Adım 7 — Görevi Çalıştırma
Görev oluşturulduktan sonra Renium klasörü altında listelenir. Görev üzerinde sağ tık → Run ile manuel başlatın. Status alanı Running olmalı. (Gerektiğinde End ile durdurulabilir, Disable ile devre dışı bırakılabilir.)

Adım 8 — .NET Runtime Kurulumu
Sunucuda gerekli .NET sürümü kurulu değilse dotnet.microsoft.com/download adresinden ilgili .NET SDK x64 sürümünü (Worker'ın derlendiği sürüm — örn. 8.0 LTS) indirip kurun.

Adım 9 — Mail Ayarlarının Veritabanında Kontrolü
Hata bildirim mailleri için Octo veritabanındaki Tb_Rn_System_MailSettings tablosunu ya da resend ayarlarını kontrol edin. SMTP Host, Port, EnableSsl, UserName, Password alanlarının dolu olduğundan emin olun.
SELECT * FROM dbo.Tb_Rn_System_MailSettings;
Gmail kullanılıyorsa SMTP Password alanına Google hesabından üretilmiş App Password girilmelidir; kullanıcının normal şifresi çalışmaz.

Adım 10 — Servis Doğrulama (Event Viewer)
Event Viewer → Windows Logs → Application altında Source alanı .NET Runtime olan kayıtlar Worker'ın aktif olduğunu gösterir. Error seviyesindeki kayıtlar (örn. UpdateWorkerTask failed) varsa detayını inceleyin.
