Abbiamo spostato le nostre apis da python a nodo. Abbiamo utilizzato le code delle attività con i nostri apis del motore delle app Python. Con node.js ora supportato sul motore dell'app, suggerisci di utilizzare le code delle attività o cloud pub/sub per le attività? Quali sarebbero i vantaggi/svantaggi per ciascuno tra cui affidabilità, portabilità, ecc.con node.js sul motore delle app, è meglio usare le code delle attività o pub/sub
risposta
Le code delle attività e Pub/Sub hanno diversi modelli di messaggistica, e quindi sono utili per cose diverse. Mentre Pub/Sub utilizza il modello di sottoscrizione editore, Task Queue raccoglie e distribuisce attività ai lavoratori.
L'utilizzo di Pub/Sub per distribuire le attività non sarebbe naturale come utilizzare la coda delle attività. Tutti gli abbonati a un argomento Pub/Sub visualizzano tutti i messaggi, mentre nella coda dei task, un messaggio viene utilizzato solo da un destinatario. Il rovescio della medaglia, le code di attività non sono progettate con lo scopo di trasmettere messaggi.
Per il momento, le code delle attività funzionano meglio su App Engine. Sebbene esista un'API REST di Coda attività sperimentale, le code di attività sono native e funzionano meglio su App Engine. Pub/Sub può essere utilizzato da qualsiasi luogo. Mentre le attività della coda di attività vengono distribuite automaticamente alle istanze di App Engine, è necessario eseguire un'ulteriore configurazione per l'utilizzo di Pub/Sub per le comunicazioni all'interno dell'applicazione.
Le code di attività forniscono anche funzionalità speciali, come il ritardo dei messaggi.
Edit:
Purtroppo sembra che spingere le code di attività non sono ancora pronti sul runtime Engine Node.js App.
La soluzione Pub/Sub indicata da Kamal sotto è un bel trucco per simulare il bilanciamento del carico basato su pull. Utilizzare Pub/Sub è probabilmente il modo giusto per andare se si è in OK con la modalità pull, anche se mi piacerebbe chiarire che è disponibile un'API taskqueue di AE (https://github.com/google/google-api-nodejs-client/tree/master/apis) per node.js quando si usa pull.
Una cosa da considerare se si utilizza pull o push è che il criterio di riprova è leggermente diverso. Gli elementi della coda di attività possono essere configurati per riprovare a tempo indeterminato, mentre penso che Pub/Sub smetterà di provare a recapitare un messaggio se non è stato riconosciuto dopo 7 giorni.
Altre cose da considerare se si decide di utilizzare la modalità Push PubSub sono:
- Alcune funzionalità di coda compito AE come ritardare i messaggi o configuromg un messaggio con particolare tentativi o il tempo per vivere le impostazioni non sono disponibili in PubSub
- È necessario conoscere gli endpoint per le istanze in cui si desidera eseguire attività dalla coda.
Su una nota separata (in risposta alla prima risposta di seguito), lo fa apparire come l'integrazione memcache è supportato. Ha una pagina dei documenti situata a https://cloud.google.com/appengine/docs/flexible/nodejs/caching-application-data.
- 1. È meglio utilizzare le dipendenze delle attività o task.doLast in Gradle?
- 2. Android: che cosa è meglio: attività multiple o commutazione manuale delle visualizzazioni?
- 3. Informazioni sul prefetch delle attività di sedano
- 4. Quale è meglio: Iniezione delle dipendenze + Registro o Iniezione delle dipendenze o Registro globale?
- 5. progettazione per la gestione delle eccezioni - motore di app google
- 6. È meglio usare DQL per ottenere il conteggio delle colonne o ottenere la raccolta, quindi contare?
- 7. Avvio delle attività in background con Capistrano
- 8. python lxml sul motore di app?
- 9. arricciatura sul motore di app
- 10. Visualizza le dipendenze delle attività gradle
- 11. È meglio usare Elenco o Raccolta?
- 12. Quale è meglio usare ViewState o hiddenfield
- 13. È meglio usare le prestazioni .delegate()?
- 14. Esecuzione delle attività di Celery con il grafico delle dipendenze
- 15. Debug delle app Android sul fuoco Kindle
- 16. Le dimensioni degli aggiornamenti delle app per iOS sono molto più grandi delle dimensioni delle app
- 17. Programmatore di attività a livello di concorrenza limitato (con priorità delle attività) gestione delle attività avvolte
- 18. Quale è meglio? App nativa o app ibrida?
- 19. Limitazioni delle attività pianificate (o in che modo viene implementata la persistenza delle attività)?
- 20. asyncio e coroutine vs code di attività
- 21. Google App Engine: la coda delle attività impiega troppo tempo per avviare attività casuali
- 22. xstream sul motore di app Google
- 23. Meglio usare il dettt delle chiavi integer o una lista molto lunga?
- 24. Assegnazione dinamica delle attività utente assegnata
- 25. Debug delle attività in background
- 26. È meglio usare un qualificatore non avido o un lookahead?
- 27. "if" e "#if"; quale è meglio usare
- 28. sbt Classpath delle attività
- 29. sedano conteggio delle attività
- 30. iOS App numerazione delle versioni
Quindi, node.js in esecuzione su App Engine ha un accesso facile e funziona perfettamente con le Code attività (push, non pull)? L'app di esempio di Google per le attività di lavoro con node.js utilizza Pub/Sub, motivo per cui lo chiedo. Non ho ancora visto i documenti Google sulla coda delle attività node.js o sull'integrazione di memcache. – philipfc
È possibile caricare messaggi di bilanciamento su più abbonati. Tutti i messaggi _subscriptions_ su un pub/sottotitolo vedono tutti i messaggi. Tuttavia, più abbonati possono prelevare messaggi dalla stessa sottoscrizione, che generalmente recapiterà ciascun messaggio a uno di essi (sebbene si noti che Pub/Sub ha garantito il recapito _at-lease-once_). –
Modificato la mia risposta originale per includere ulteriori informazioni. –