E 'noto che AWS lambda può riutilizzo presto creato oggetti di gestori, ed è veramente lo fa (vedi FAQ):AWS lambda e la concorrenza Java
D: casi di funzione riutilizzo AWS Lambda?
Per migliorare le prestazioni, AWS Lambda può scegliere di mantenere un'istanza di vostra funzione e riutilizzarlo per servire una richiesta successiva, piuttosto che la creazione di una nuova copia. Il tuo codice non dovrebbe presumere che questo sarà sempre .
La domanda è per quanto riguarda ad Java
concorrenza. Se ho classe per il gestore, dire:
public class MyHandler {
private Foo foo;
public void handler(Map<String,String> request, Context context) {
...
}
}
così, sarà thread-safe per l'accesso e lavorare con la variabile oggetto foo
qui o no?
In altre parole: può lambda utilizzare lo stesso oggetto contemporaneamente per chiamate diverse?
EDIT La mia funzione viene elaborata sull'origine basata su eventi, in particolare viene invocata dal metodo gateway API.
EDIT-2 Questo tipo di domanda aumenta quando si desidera implementare un tipo di pool di connessioni a risorse esterne, quindi voglio mantenere la connessione a una risorsa esterna come variabile dell'oggetto. Funziona davvero come desiderato, ma ho paura dei problemi di concorrenza.
EDIT-3 In particolare mi chiedo: CAN istanze di gestori di AWS lambda quota mucchio comune (memoria) o no? Devo specificare questo ulteriore dettaglio per evitare risposte con l'elencazione di cose ovvie e comuni su oggetti java-thread-safe.
IMO "conserva un'istanza della funzione e riutilizzala" è esattamente la stessa di "usa lo stesso oggetto". E molto probabilmente contemporaneamente. – zapl
@zapl Non significa esattamente contemporaneamente. Può essere usato come thread all'interno di java 'ExecutorService' - sono mantenuti, ma non usati simultaneamente – Andremoniy
Certo, potrebbero creare nuove istanze di handler per thread o garantire che non vengano usati contemporaneamente ma non li vedo menzionati esplicitamente da nessuna parte. D'altra parte, ci sono pezzi come * "Il codice deve essere scritto in uno stile" apolide "[...] gli artefatti non possono estendersi oltre la durata della richiesta" * nelle FAQ. – zapl