# Arka Plan İşi

Adres: https://softwaredictionary.org/tr/terimler/background-job
Kategori: Backend ve API'ler
Son güncelleme: 2026-09-30
İngilizcesi: Background Job
Türkçe karşılığı: arka plan görevi
Okunuşu: bekgraund cob

Kısaca: Arka plan işi, bir sunucunun normal istek-yanıt döngüsünün dışında çalıştırdığı görevdir; e-posta gönderme gibi yavaş işler kullanıcıları bekletmez.

## Arka plan işi (background job) nedir?

Arka plan işi, bir uygulamanın kullanıcı yanıt beklerken yapmak yerine daha sonra ya da başka bir yerde yapılmak üzere devrettiği iştir. Örneğin bir kullanıcı kaydolduğunda web sunucusu hesabı kaydedip hemen yanıt verir; hoş geldin e-postasını ise bir an sonra bir arka plan işi gönderir. Bu, işin arkasındaki asıl iş saniyeler ya da dakikalar sürse bile sayfaları ve API yanıtlarını hızlı tutar.

Olağan kurulum üç parçadan oluşur. Web uygulaması bir iş oluşturur; bu, bir ad ve kullanıcı kimliği gibi argümanlar içeren küçük bir kayıttır ve çoğunlukla Redis'te, bir veritabanı tablosunda ya da bir mesaj aracısında tutulan bir kuyruğa konur. Ayrı worker süreçleri işleri alır, çalıştırır ve tamamlandı olarak işaretler; başarısız işleri giderek artan gecikmelerle yeniden dener ve sürekli başarısız olanları bir geliştirici incelesin diye bir kenara ayırır.

Bir kuru temizlemeciye kıyafet bırakmak gibidir: hemen bir fiş alıp ayrılırsınız, siz başka işlerle uğraşırken temizlik arka tarafta yapılır. Tipik arka plan işleri arasında e-posta ve bildirim göndermek, yüklenen görselleri yeniden boyutlandırmak, PDF raporları oluşturmak, büyük dosyaları içe aktarmak ve yavaş üçüncü taraf API'lerini çağırmak yer alır. Yaygın açık kaynak kütüphaneler arasında Ruby için Sidekiq, Python için Celery ve Node.js için BullMQ bulunur.

Arka plan işleri sıklıkla cron job'larla ve mesaj kuyruklarıyla karıştırılır. Cron job sabit bir zamanlamayla saat tarafından başlatılır; arka plan işi ise genellikle bir kullanıcı eylemi gibi bir olayla tetiklenir ve mesaj kuyruğu birçok iş sisteminin üzerine kurulduğu altyapıdır. Yeniden denemeler bir işin birden fazla kez çalışabileceği anlamına geldiğinden, iş işleyicileri idempotent olmalıdır; yani iki kez çalıştırmak bir kez çalıştırmakla aynı etkiyi yaratmalıdır.

## Önemli noktalar

- Arka plan işleri yavaş işi istekten çıkarır; kullanıcılar hızlı yanıt alır.
- Uygulama bir işi kuyruğa ekler; ayrı worker süreçleri onu sonra çalıştırır.
- Başarısız işler, çoğunlukla exponential backoff ile yeniden denenir.
- Yeniden denemeler işleri birden fazla kez çalıştırabileceğinden işler idempotent olmalıdır.
- Cron job'lar zamanla tetiklenir; arka plan işleri genellikle olaylarla tetiklenir.

## Örnek: BullMQ ile bir işi kuyruğa eklemek ve işlemek

```javascript
import { Queue, Worker } from "bullmq"; // stores jobs in Redis
const connection = { host: "localhost", port: 6379 };
const emailQueue = new Queue("emails", { connection });

// In the web app: enqueue the job and respond immediately
app.post("/signup", async (req, res) => {
  const user = await createUser(req.body);
  await emailQueue.add("welcome", { userId: user.id }, { attempts: 3 });
  res.status(201).json(user);
});

// In a separate worker process: run each job as it arrives
new Worker("emails", async (job) => {
  await sendWelcomeEmail(job.data.userId);
}, { connection });
```

## Sık sorulan sorular

**Arka plan işi ile cron job arasındaki fark nedir?**

Cron job, her gece 02.00 gibi sabit bir zamanlamayla çalışır. Arka plan işi ise genellikle bir kullanıcının dosya yüklemesi gibi bir olayla isteğe bağlı olarak oluşturulur ve bir worker boşalır boşalmaz çalışır; yine de birçok iş sistemi zamanlanmış işleri de destekler.

**Arka plan işlemede worker nedir?**

Worker, bir kuyrukta işleri bekleyen, onları çalıştıran ve başarılı olup olmadıklarını bildiren ayrı bir süreçtir. İşleri daha hızlı işlemek için birkaç worker'ı paralel çalıştırabilirsiniz.

**Arka plan işini ne zaman kullanmalıyım?**

İş bir saniyenin küçük bir kesrinden uzun sürüyorsa, yavaş bir dış servise bağlıysa ya da kullanıcı yanıt almadan önce bitmesi gerekmiyorsa kullanın. E-posta göndermek, yüklemeleri işlemek ve rapor oluşturmak klasik örneklerdir.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
