Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Event Grid dayanıklı teslim sağlar. Her eşleşen abonelik için her iletiyi en az bir kez hemen teslim etmeye çalışır. Abonenin uç noktası bir olayın alınıp alınmadığını kabul etmiyorsa veya bir hata varsa, Event Grid teslimi sabit bir yeniden deneme zamanlamasına ve yeniden deneme ilkesine göre yeniden dener. Event Grid varsayılan olarak aboneye bir kerede bir olay teslim eder. Ancak yük, tek bir olayı olan bir dizidir.
Not
Event Grid olay teslimi için sipariş garantisi vermez, bu nedenle aboneler olayları sıra dışı alabilir.
Zamanlamayı yeniden deneyin
Event Grid, bir olay teslim girişimi için hata aldığında, hata türüne göre teslimi yeniden denemesi, olayı bekleme kuyruğuna alması veya olayı bırakması gerektiğine karar verir.
Abone olunan uç nokta, yeniden denemelerle düzeltilemeyen yapılandırmaya ilişkin bir hata döndürürse (örneğin, uç nokta silinirse), Event Grid olayı ölü harf olarak işaretler veya ölü harfleme yapılandırılmamışsa olayı bırakır.
Aşağıdaki tabloda Event Grid'in teslimi yeniden denemediği uç nokta ve hata türleri açıklanmaktadır:
| Uç Nokta Türü | Hata kodları |
|---|---|
| Azure Kaynakları | 400 (Hatalı istek), 413 (İstek varlığı çok büyük), 403 (Yasak) |
| Webhook | 400 (Hatalı istek), 413 (İstek varlığı çok büyük), 401 (Yetkisiz), 403 (Yasak) |
Not
Bir uç nokta için ölü harfleme yapılandırmazsanız, önceki hatalar meydana geldiğinde Event Grid olayları atılır. Bu tür olayların bırakılmasını istemiyorsanız, geçersiz harf oluşturmayı yapılandırmayı göz önünde bulundurun. Ölü harfli varış noktası bulunamadığında, ölü harfli olaylar boşaltılır.
Abone olunan uç nokta, önceki listede yer almayan bir hata döndürürse, Event Grid aşağıdaki politikayı kullanarak teslimatı tekrar dener.
Event Grid, ileti teslim ettikten sonra yanıt için 30 saniye bekler. 30 saniye sonra uç nokta yanıt vermezse Event Grid iletiyi yeniden denemek üzere kuyruğa alır. Event Grid, olay teslimi için üstel geri çekilme yeniden deneme ilkesi kullanır. Event Grid, teslimatı en iyi çaba temelinde aşağıdaki zamanlamaya göre tekrar eder.
- 10 saniye
- 30 saniye
- 1 dakika
- 5 dakika
- 10 dakika
- 30 dakika
- 1 saat
- 3 saat
- 6 saat
- 12 saatte bir en fazla 24 saat
Uç nokta 3 dakika içinde yanıt verirse, Event Grid olayı olanaklar dahilinde yeniden deneme kuyruğundan kaldırmaya çalışır, ancak yine de tekrarlar alınabilir.
Event Grid, tüm yeniden deneme adımlarına küçük bir rastgele seçim ekler ve uç nokta sürekli olarak iyi durumda değilse, uzun bir süre boyunca aşağıdaysa veya bunalmış gibi görünüyorsa belirli yeniden denemeleri fırsatçı bir şekilde atlayabilir.
Yeniden deneme ilkesi
Aşağıdaki iki yapılandırmayı kullanarak bir olay aboneliği oluştururken yeniden deneme ilkesini özelleştirebilirsiniz. Yeniden deneme ilkesinin sınırlarından herhangi birinin sınırına ulaşılırsa Event Grid bir olayı bırakır.
- En fazla deneme sayısı - Değer 1 ile 30 arasında bir tamsayı olmalıdır. Varsayılan değer 30’dur.
- Olay yaşam süresi (TTL) - Değer 1 ile 1440 arasında bir tamsayı olmalıdır. Varsayılan değer 1440 dakikadır.
Bu ayarları yapılandırmak için örnek CLI ve PowerShell komutu için bkz . Yeniden deneme ilkesini ayarlama.
Not
hem Event time to live (TTL) hem de Maximum number of attempts değerini ayarlarsanız, Event Grid olay teslimatını ne zaman durduracağını belirlemek için süresi dolanı kullanır. Örneğin, 30 dakikayı yaşam süresi (TTL) ve en fazla 5 teslimat denemesi olarak ayarlarsanız. Bir olay 30 dakika veya 5 denemeden sonra teslim edilmezse (hangisi önce gerçekleşirse, Event Grid olayı geçersiz olarak bildirir).
Üstel yeniden deneme zamanlamasına göre en fazla teslim denemesi sayısını 10 olarak ayarlarsanız, 30 dakika TTL'ye ulaşılmadan en fazla 6 teslim girişimi gerçekleşir. Bu nedenle, en fazla deneme sayısının 10 olarak ayarlanmasının bu durumda hiçbir etkisi yoktur ve Event Grid 30 dakika sonra olayları ölü harf kuyruğuna alır.
Çıkışı toplu işleme
Event Grid varsayılan olarak her olayı abonelere tek tek gönderir. Abone, tek bir olay içeren bir dizi alır. Event Grid'i, yüksek aktarım hızı senaryolarında gelişmiş HTTP performansı için teslim için toplu olaylar için yapılandırabilirsiniz. Toplu işlem varsayılan olarak kapalıdır ve bunu abonelik başına açabilirsiniz.
Toplu işlem ilkesi
Toplu teslim iki ayara sahiptir:
- Toplu başına en fazla olay - Event Grid'in toplu başına teslim edilen en fazla olay sayısı. Bu sayı hiçbir zaman aşılmaz. Ancak, yayımlama sırasında başka bir olay yoksa daha az olay teslim edilebilir. Event Grid, daha az olay varsa toplu iş oluşturmak için olayları geciktirmiyor. 1 ile 5.000 arasında olmalıdır.
- Kilobayt cinsinden tercih edilen toplu iş boyutu - Kilobayt cinsinden toplu iş boyutu için hedef tavan. Maksimum olaylara benzer şekilde, yayımlama sırasında daha fazla olay mevcut değilse, toplu boyut daha küçük olabilir. Tek bir olay tercih edilen boyuttan daha büyükse, bir toplu iş tercih edilen toplu iş boyutundan büyük olabilir. Örneğin, tercih edilen boyut 4 KB ise ve Event Grid'e 10 KB'lık bir olay gönderilirse, 10 KB'lık olay bırakılmak yerine kendi toplu işlemiyle teslim edilir.
Toplu teslimi portal, CLI, PowerShell veya Yazılım Geliştirme Setleri (SDK' lar) aracılığıyla olay başına abonelik temelinde yapılandırırsınız.
Toplu işlem davranışı
Tümü veya hiçbiri
Event Grid tümü veya hiçbiri semantiğiyle çalışır. Toplu teslimin kısmi başarısını desteklemez. Aboneler, bir toplu işte sadece 30 saniye içinde makul bir şekilde işleyebilecekleri sayıda olayı istemeye dikkat etmelidir.
** İyimser toplu işleme
Toplu işlem ilkesi ayarları toplu işlem davranışına yönelik katı sınırlar değildir ve Event Grid bunları en iyi çaba temelinde dikkate alır. Düşük olay oranlarında, toplu iş boyutunun genellikle toplu iş başına istenen en fazla olaydan daha az olduğunu gözlemlersiniz.
Varsayılan ayar KAPALI
Varsayılan olarak, Event Grid her teslim isteğine yalnızca bir olay ekler. Toplu işlemeyi açmak için etkinlik aboneliği JSON'da daha önce bahsedilen ayarlardan birini belirleyin.
Varsayılan değerler
Olay aboneliği oluştururken Toplu iş başına en fazla olay sayısı ve kilobayt cinsinden yaklaşık toplu iş boyutu ayarlarından ikisini de belirtmeniz gerekmez. Yalnızca bir ayar ayarlarsanız Event Grid yapılandırılabilir varsayılan değerleri kullanır. Varsayılan değerler ve bunları geçersiz kılma hakkında daha fazla bilgi için aşağıdaki bölümlere bakın.
Azure portalı
Bu ayarları Olay Aboneliği sayfasının Ek Özellikler sekmesinde görürsünüz.
Azure Komut Satırı Arayüzü (Azure CLI)
Olay aboneliği oluştururken aşağıdaki parametreleri kullanın:
- toplu iş başına maksimum olay - Toplu iş içindeki en fazla olay sayısı. 1 ile 5.000 arasında bir sayı girin.
- preferred-batch-size-in-kilobytes - Kilobayt cinsinden tercih edilen toplu iş boyutu. 1 ile 1.024 arasında bir sayı girin.
storageid=$(az storage account show --name <storage_account_name> --resource-group <resource_group_name> --query id --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates
az eventgrid event-subscription create \
--resource-id $storageid \
--name <event_subscription_name> \
--endpoint $endpoint \
--max-events-per-batch 1000 \
--preferred-batch-size-in-kilobytes 512
Event Grid ile Azure CLI kullanma hakkında daha fazla bilgi için bkz . Azure CLI ile depolama olaylarını web uç noktasına yönlendirme.
Gecikmeli teslimat
Bir uç nokta teslim hatalarıyla karşılaştığında Event Grid, olayların bu uç noktaya teslimini ve yeniden denemesini geciktirmeye başlar. Örneğin, bir uç noktaya yayımlanan ilk 10 olay başarısız olursa, Event Grid uç noktanın sorun yaşadığını varsayar ve sonraki tüm yeniden denemeleri ve yeni teslimleri bir süre geciktirir ( bazı durumlarda birkaç saate kadar).
Gecikmeli teslimin işlevsel amacı, iyi durumda olmayan uç noktaları ve Event Grid sistemini korumaktır. İyi durumda olmayan uç noktalara teslimatın geri çekilmesi ve ertelenmesi olmadan, Event Grid'in yeniden deneme politikası ve yük kapasitesi kolayca bir sistemi bunaltabilir.
Teslim edilemeyen olaylar
Event Grid, belirli bir süre içinde veya olayın belirli sayıda teslim edilmeye çalışılmasından sonra teslim edilememesi durumunda, teslim edilemeyen olayı bir depolama hesabına gönderebilir. Bu işlem, ölü harfleme olarak bilinir. Event Grid, aşağıdaki koşullardan biri karşılandığında bir olayı geçersiz olarak bildirir.
- Etkinlik, yaşam süresi dönemi içinde teslim edilmemiştir.
- Olayı iletme girişimlerinin sayısı sınırı aşıyor.
Herhangi bir koşul karşılanırsa, olay bırakılır veya teslim edilmez. Event Grid varsayılan olarak ölü harf kuyruğunu (dead-lettering) açmaz. Etkinleştirmek için, olay aboneliğini oluştururken teslim edilmemiş olayları barındıracak bir depolama hesabı belirtin. Teslimat sorunlarını çözmek için bu depolama hesabından olayları çekersiniz.
Event Grid, tüm yeniden deneme girişimlerini gerçekleştirdiğinde olayı ölü mektup konumuna gönderir. Event Grid bir 400 (Hatalı İstek) veya 413 (İstek Varlığı Çok Büyük) yanıt kodunu alırsa, olayı hemen ölü harflemeye zamanlar. Bu yanıt kodları, olayın tesliminin hiçbir zaman başarılı olmadığını gösterir.
Ömrün dolması yalnızca bir sonraki zamanlanmış teslim denemesinde denetleniyor. Bu nedenle, bir sonraki zamanlanmış teslim denemesi öncesinde yaşam süresi dolsa bile, olayın süre sonu yalnızca bir sonraki teslimat sırasında kontrol edilip ardından ölü harf kutusuna atılır.
Son olay teslim girişimi ile başarısız postalama konumuna teslim edilme arasında beş dakikalık bir gecikme vardır. Bu gecikme, Blob depolama işlemlerinin sayısını azaltır. Teslim edilemeyen harf konumu dört saat boyunca kullanılamıyorsa, olay bırakılır.
Ölü-mektup konumunu ayarlamadan önce, kapsayıcıya sahip bir depolama hesabınız olmalıdır. Olay aboneliğini oluştururken bu kapsayıcı için uç noktayı sağlarsınız. Uç nokta şu biçimdedir: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/<storage-name>/blobServices/default/containers/<container-name>
Bir olay ölü mektup konumuna gönderildiğinde bildirim almak isteyebilirsiniz. Teslim edilmemiş etkinliklere yanıt vermek için Event Grid'i kullanmak üzere, ölü harf blob depolaması için bir etkinlik aboneliği oluşturun. Teslim edilemeyen harf blob depolama alanınız teslim edilmemiş bir olayı her aldığında Event Grid işleyicinize bildirim gönderir. İşleyici teslim edilmemiş olayları çözümlemek için yapmak istediğiniz eylemlerle yanıt verir. Örnek bir teslim edilemeyen konum ve yeniden deneme ilkelerinin ayarlanması için bkz Dead-letter ve yeniden deneme ilkeleri.
Not
Teslim edilemeyen iletilerin kimliğini yönetmek için yönetilen kimliği etkinleştirirseniz, bu kimliği teslim edilemeyen olayları barındıran Azure Depolama hesabında uygun rol tabanlı erişim denetimi (RBAC) rolüne ekleyin. Daha fazla bilgi için bkz . Desteklenen hedefler ve Azure rolleri.
Teslim olayı biçimleri
Bu bölümde, farklı teslim şeması biçimlerinde (Event Grid şeması, CloudEvents 1.0 şeması ve özel şema) olaylara ve teslim edilemeyen olaylara örnekler verilmiştir. Bu biçimler hakkında daha fazla bilgi için Event Grid şeması ve Bulut Olayları 1.0 şema makalelerine bakın.
Event Grid şeması
Etkinlik
{
"id": "93902694-901e-008f-6f95-7153a806873c",
"eventTime": "2020-08-13T17:18:13.1647262Z",
"eventType": "Microsoft.Storage.BlobCreated",
"dataVersion": "",
"metadataVersion": "1",
"topic": "/subscriptions/000000000-0000-0000-0000-00000000000000/resourceGroups/rgwithoutpolicy/providers/Microsoft.Storage/storageAccounts/myegteststgfoo",
"subject": "/blobServices/default/containers/deadletter/blobs/myBlobFile.txt",
"data": {
"api": "PutBlob",
"clientRequestId": "c0d879ad-88c8-4bbe-8774-d65888dc2038",
"requestId": "93902694-901e-008f-6f95-7153a8000000",
"eTag": "0x8D83FACDC0C3402",
"contentType": "text/plain",
"contentLength": 0,
"blobType": "BlockBlob",
"url": "https://myegteststgfoo.blob.core.windows.net/deadletter/myBlobFile.txt",
"sequencer": "00000000000000000000000000015508000000000005101c",
"storageDiagnostics": { "batchId": "cfb32f79-3006-0010-0095-711faa000000" }
}
}
Teslim edilemeyen mesaj olayı
{
"id": "93902694-901e-008f-6f95-7153a806873c",
"eventTime": "2020-08-13T17:18:13.1647262Z",
"eventType": "Microsoft.Storage.BlobCreated",
"dataVersion": "",
"metadataVersion": "1",
"topic": "/subscriptions/0000000000-0000-0000-0000-000000000000000/resourceGroups/rgwithoutpolicy/providers/Microsoft.Storage/storageAccounts/myegteststgfoo",
"subject": "/blobServices/default/containers/deadletter/blobs/myBlobFile.txt",
"data": {
"api": "PutBlob",
"clientRequestId": "c0d879ad-88c8-4bbe-8774-d65888dc2038",
"requestId": "93902694-901e-008f-6f95-7153a8000000",
"eTag": "0x8D83FACDC0C3402",
"contentType": "text/plain",
"contentLength": 0,
"blobType": "BlockBlob",
"url": "https://myegteststgfoo.blob.core.windows.net/deadletter/myBlobFile.txt",
"sequencer": "00000000000000000000000000015508000000000005101c",
"storageDiagnostics": { "batchId": "cfb32f79-3006-0010-0095-711faa000000" }
},
"deadLetterReason": "MaxDeliveryAttemptsExceeded",
"deliveryAttempts": 1,
"lastDeliveryOutcome": "NotFound",
"publishTime": "2020-08-13T17:18:14.0265758Z",
"lastDeliveryAttemptTime": "2020-08-13T17:18:14.0465788Z"
}
Olası değerleri lastDeliveryOutcome ve açıklamaları aşağıdadır.
| Son Teslimat Sonucu | Açıklama |
|---|---|
| Bulunamadı | Hedef kaynak bulunamadı. |
| Devre dışı | Hedef, etkinlik almayı devre dışı bıraktı. Azure Service Bus ve Azure Event Hubs için geçerlidir. |
| Tam | Hedefte izin verilen işlem sayısı üst sınırı aşıldı. Azure Service Bus ve Azure Event Hubs için geçerlidir. |
| Yetkisiz | Hedef yetkisiz yanıt kodu döndürdü. |
| Hatalı İstek | Hedef hatalı istek yanıt kodu döndürdü. |
| Zaman Aşımı | Teslim işlemi zaman aşımına uğradı. |
| Meşgul | Hedef sunucu meşgul. |
| PayloadTooLarge | İletinin boyutu hedef tarafından izin verilen boyut üst sınırını aştı. Azure Service Bus ve Azure Event Hubs için geçerlidir. |
| Denetimli Serbestlik | Hedef, Event Grid tarafından denetim altında tutulur. Deneme süresi boyunca teslimat girişiminde bulunulmaz. |
| İptal edildi | Teslim işlemi iptal edildi. |
| İptal edildi | Teslim, bir zaman aralığından sonra Event Grid tarafından durduruldu. |
| SocketError | Teslim sırasında ağ iletişimi hatası oluştu. |
| Çözünürlük Hatası | Hedef uç noktanın DNS çözümlemesi başarısız oldu. |
| Teslim | Olayları hedefe iletme. |
| Oturum Kuyruğu Desteklenmiyor | Oturum desteği etkinleştirilmiş bir varlıkta oturum kimliği olmadan olay teslimi denendi. Azure Service Bus öğesi hedefi için geçerlidir. |
| Yasak | Teslim, hedef uç nokta tarafından yasaklanmıştır (IP güvenlik duvarları veya diğer kısıtlamalar nedeniyle olabilir) |
| Geçersiz Azure İşlev Hedefi | Hedef Azure işlevi geçerli değil. Büyük olasılıkla EventGridTrigger türüne sahip olmadığı içindir. |
Son Teslimat Sonucu: Deneme Süresi
Event Grid, olay teslim işlemleri o hedefte başarısız olmaya başladığında bir olay aboneliğini belirli bir süre inceleme moduna alır. Deneme süresi, hedef uç nokta tarafından döndürülen farklı hatalar için farklıdır. Bir olay aboneliği deneme sürecindeyse, olaylar, deneme sürecine neden olan hata koduna bağlı olarak teslim edilmeden ölmüş mektup kuyruğuna düşebilir veya bırakılabilir.
| Hata | Gözetim Süresi |
|---|---|
| Meşgul | 10 saniye |
| Bulunamadı | 5 dakika |
| SocketError | 30 saniye |
| Çözünürlük Hatası | 5 dakika |
| Devre dışı | 5 dakika |
| Tam | 5 dakika |
| Zaman Aşımı | 10 saniye |
| Yetkisiz | 5 dakika |
| Yasak | 5 dakika |
| Geçersiz Azure İşlevi Hedefi | 10 dakika |
Not
Event Grid daha iyi teslim yönetimi için deneme süresini kullanır ve süre gelecekte değişebilir.
CloudEvents 1.0 şeması
Etkinlik
{
"id": "caee971c-3ca0-4254-8f99-1395b394588e",
"source": "mysource",
"dataversion": "1.0",
"subject": "mySubject",
"type": "fooEventType",
"datacontenttype": "application/json",
"data": {
"prop1": "value1",
"prop2": 5
}
}
Teslim edilemeyen olay
{
"id": "caee971c-3ca0-4254-8f99-1395b394588e",
"source": "mysource",
"dataversion": "1.0",
"subject": "mySubject",
"type": "fooEventType",
"datacontenttype": "application/json",
"data": {
"prop1": "value1",
"prop2": 5
},
"deadletterreason": "MaxDeliveryAttemptsExceeded",
"deliveryattempts": 1,
"lastdeliveryoutcome": "NotFound",
"publishtime": "2020-08-13T21:21:36.4018726Z",
}
Özel şema
Etkinlik
{
"prop1": "my property",
"prop2": 5,
"myEventType": "fooEventType"
}
Teslim edilemeyen mesaj olayı
{
"id": "8bc07e6f-0885-4729-90e4-7c3f052bd754",
"eventTime": "2020-08-13T18:11:29.4121391Z",
"eventType": "myEventType",
"dataVersion": "1.0",
"metadataVersion": "1",
"topic": "/subscriptions/00000000000-0000-0000-0000-000000000000000/resourceGroups/rgwithoutpolicy/providers/Microsoft.EventGrid/topics/myCustomSchemaTopic",
"subject": "subjectDefault",
"deadLetterReason": "MaxDeliveryAttemptsExceeded",
"deliveryAttempts": 1,
"lastDeliveryOutcome": "NotFound",
"publishTime": "2020-08-13T18:11:29.4121391Z",
"lastDeliveryAttemptTime": "2020-08-13T18:11:29.4277644Z",
"data": {
"prop1": "my property",
"prop2": 5,
"myEventType": "fooEventType"
}
}
İleti teslim durumu
Event Grid, olayların alınmasını onaylamak için HTTP yanıt kodlarını kullanır.
Başarı kodları
Event Grid, başarılı teslimatlar olarak yalnızca aşağıdaki HTTP yanıt kodlarını dikkate alır. Diğer tüm durum kodları başarısız teslimlerdir. Event Grid bu başarısız teslimleri uygun şekilde yeniden dener ve ölü mektup kuyruğuna alır. Event Grid başarılı bir durum kodu aldığında teslimin tamamlanmasını dikkate alır.
- 200 Tamam
- 201 Oluşturuldu
- 202 Kabul Edildi
- 203 Yetkili Olmayan Bilgiler
- 204 İçerik yok
Hata kodları
Event Grid, 200-204 aralığındaki tüm durum kodlarını hata olarak kabul eder. Olay teslimi başarısız olursa, Event Grid teslimatı yeniden dener. Bazı hata kodları, aşağıdaki tabloda özetlenen belirli yeniden deneme ilkelerine sahiptir. Diğer tüm hata kodları standart üstel geri alma modelini izler. Event Grid mimarisinin yüksek oranda paralelleştirilmiş yapısı nedeniyle yeniden deneme davranışı belirsiz değildir.
| Durum kodu | Yeniden deneme davranışı |
|---|---|
| 400 Hatalı İstek | Yeniden denenmedi |
| 401 Yetkisiz | Azure Kaynakları Uç Noktaları için 5 dakika veya daha fazla süre sonra yeniden deneyin |
| 403 Yasak | Yeniden denenmedi |
| 404 Bulunamadı | Azure Kaynakları Uç Noktaları için 5 dakika veya daha fazla süre sonra yeniden deneyin |
| 408 İstek Zaman Aşımı | 2 dakika veya daha fazla süre sonra yeniden deneyin |
| 413 İstek Varlığı Çok Büyük | Yeniden denenmedi |
| 503 Hizmet Kullanılamıyor | 30 saniye veya daha fazla süre sonra yeniden deneyin |
| Diğerleri | 10 saniye veya daha fazla süre sonra yeniden deneyin |
Özel teslim özellikleri
Olay aboneliği oluşturduğunuzda, teslim edilen olaylara eklemek için en fazla 10 özel HTTP üst bilgisi ekleyebilirsiniz. Her üst bilgi değeri 4.096 (4K) baytı aşamaz. Bu özellik, bir hedefin gerektirdiği özel üst bilgileri ayarlamanıza olanak tanır. Aşağıdaki hedeflere teslim edilen olaylar üzerinde özel üst bilgiler ayarlayabilirsiniz:
- Webhooklar
- Azure Service Bus konuları ve kuyrukları
- Azure Event Hubs
- Aktarım Karma Bağlantıları
Daha fazla bilgi için bkz . Özel teslim özellikleri.
İlgili içerik
- Olay teslimlerinin durumunu görüntülemek için bkz Event Grid ileti teslimini izleme.
- Olay teslim seçeneklerini özelleştirmek için Kesin teslim edilmeyen mesajlar ve yeniden deneme ilkeleri bölümüne bakın.