Junior — Middle
Milyen információkat lehet átadni a kontextuson keresztül az alkalmazásban?
sobes.tech MI
Válasz az MI-től
Go-ban általában az információkat, amelyek a kérés vagy művelet életciklusának kezeléséhez kapcsolódnak, a context (context.Context`) segítségével továbbítják, például:
- A művelet megszakítása (a
Done()csatornán keresztül). - Határidők és időkorlátok (a
Deadline()segítségével). - Az egész hívási lánc során szükséges értékek, például kérésazonosítók, hitelesítési tokenek, metaadatok.
Fontos: ne helyezzen nagy objektumokat, állapotokat vagy olyan adatokat a kontextusba, amelyek nem kapcsolódnak a kérés kezeléséhez, hogy ne sértse meg annak célját és elkerülje a memória szivárgásokat.
Példa érték átadására a kontextuson keresztül:
ctx := context.WithValue(context.Background(), "requestID", "12345")
requestID := ctx.Value("requestID")