Çeşitli modüller içeren bir uygulamanız var. Bir dispatch.yaml
dosya benim modülü benim server
modülüne tüm */api/*
çağrıları yönlendirir.App Engine Go SDK gecikme paketini farklı bir modülde nasıl çalıştırırım?
aşağıdaki istek zinciri gerçekleşir:
- http://myapp.appspot.com/api/webrequest - biz varsayılan modülünde olduğunu unutmayın.
- http://server-dot-myapp.appspot.com/api/webrequest -
appengine.delay.Call
adresinin kullanıldığıdispatch.yaml
numaralı sunucuya yeniden yönlendirme delay package kullanılarak yapılır. - http://myapp.appspot.com/_ah/queue/go/delay - http://server-dot-myapp.appspot.com/_ah/queue/go/delay yerine beklendiği gibi varsayılan modülde
appengine.delay.Func
çağrılır.
appengine.delay.Func
http://server-dot-myapp.appspot.com/_ah/queue/go/delay ile nasıl yürütebilirim? Ben dispatch.yaml
yönlendirmesi kullanmadan doğrudan http://server-dot-myapp.appspot.com/api/webrequest ararsanız, her şey workes beklendiği gibi ve appengine.delay.Func
http://server-dot-myapp.appspot.com/_ah/queue/go/delay ile çağrılan bu
Not.
Bir böcek değil. "Appengine/delay" paketi, doğası gereği bir rahatlık paketidir. 'Call' yöntemi, varsayılan modülde görevi hedefler, çünkü çoğu insanın istediği şey budur; Gördüğünüz gibi, gönderildiği yer üzerinde daha fazla kontrole sahip olmak için 'Görev 'yöntemini kullanabilirsiniz. – dsymonds
@dsymonds Muhtemelen appengine/delay'de bir hata olmadığını kabul ediyorum. Ancak, arama yönteminin, varsayılan olmayan modülde de bir istek işleyici tarafından yürütüldüğünde varsayılan olmayan modülü hedef almasının tutarsız olduğunu buluyorum. Ancak, aynı istek işleyicisi, dispatch.yaml içinden geçen bir istek aracılığıyla çağrılırsa, varsayılan olarak olmayan modülde de çalıştırılsa bile Çağrı yöntemi varsayılan modülü hedefler. Bu bir hata/gözetim olmalı? – Dan
Genel olarak görev düzenlerinin nasıl çalıştığıyla ilgili küçük bir tuhaflık var, bu da 'appengine/delay' ifadesinin ne olduğu üzerine kurulu. Biraz beklenmedik katılıyorum, ama sanırım bazı uygulamaları bozmadan değiştirilemez bir şey. – dsymonds