Vengo dal mondo Java e continuo a sentire questo termine "lavoratore" nel mondo rubino/rotaie. Che cos'è? un filo?Che cos'è un lavoratore in ruby / rails?
risposta
dipende dal contesto.
Un worker è in genere un processo che viene eseguito al di fuori del ciclo di richiesta dell'applicazione. Le librerie di Ruby come resque e delayed_job vengono in genere utilizzate per gestire le code di lavoro.
D'altra parte, se si parla di server Web, la parola "worker" viene talvolta utilizzata in modo intercambiabile con thread o processi (ad esempio: nginx o "worker" di apache).
Un server che esegue l'app per rails utilizza gli operatori per fare tutto ciò di cui ha bisogno un'applicazione. Invia email, esegue richieste, esegue calcoli, ecc. Il numero di lavoratori necessari dipende dalla quantità di traffico e calcoli necessari per la tua app web.
Spesso nel "mondo Rails" un lavoratore fa riferimento a un sistema di tipo di coda di priorità che ha processi separati che eseguono attività da eseguire al di fuori del ciclo dell'applicazione. Uno dei più popolari di questi sistemi è DelayedJobs. Questo utilizza una migrazione del database per aggiungere una tabella per contenere le attività che devono essere eseguite da un processo di lavoro. È quindi possibile configurare un numero qualsiasi di processi di lavoro che controlleranno la tabella della coda DelayedJobs ed eseguiranno l'attività serializzata. Con DelayedJobs non hai solo la possibilità di impostare la priorità di diverse attività, ma anche un intervallo di tempo per eseguire l'attività, ad es. invia una email particolare 1 ora da ora.
Spero che questo aiuti, /Salernost
- 1. Ruby/Rails hanno un equivalente ++?
- 2. Esecuzione di un lavoratore Sedano in unittest
- 3. Ordinamento intero in Ruby/Rails
- 4. Code messaggi in Ruby on Rails
- 5. Unisci array in Ruby/Rails
- 6. ruby on rails logic per un partial in un layout
- 7. Come si esegue un file Ruby in un ambiente Rails?
- 8. Ottieni ID lavoratore in Celery
- 9. Ruby on Rails: visualizza condizionatamente un parziale
- 10. Come utilizzare hidden_field in un form_for in Ruby on Rails?
- 11. Docsplit Ruby on Rails
- 12. Ruby: vuoto? senza Rails
- 13. Eliminazione batch in un singolo passaggio in Ruby on Rails
- 14. Come eseguire la comunicazione da lavoratore a lavoratore?
- 15. Intellisense per Ruby, Ruby on Rails, Python
- 16. Posso ottenere l'ID del mio lavoratore sidekiq all'interno del lavoratore?
- 17. Ruby/Rails che funzionano con gsub e array
- 18. Ruby on Rails - che non può essere SystemTimer
- 19. In che modo Ruby on Rails "content_for: title" ottiene qualcosa che viene assegnato in seguito?
- 20. Riferimento dell'utente corrente in Ruby on Rails
- 21. Amazon SWF: almeno un lavoratore deve essere in esecuzione, perché?
- 22. Versioning dei modelli in Ruby on Rails
- 23. Plain old Ruby posizione in Rails
- 24. Stelle in AJAX con Ruby On Rails
- 25. Incluso in Ruby on Rails 3
- 26. Come posso memorizzare in cache un metodo con Ruby/Rails?
- 27. Equivalente ad Array. Alcuni in ruby / rails
- 28. Come decomprimere un file in Ruby on Rails?
- 29. Intervallo IP su CIDR in Ruby/Rails?
- 30. Come passare da un mese all'altro in Ruby on Rails
nei server Web, sono thread o processi "worker" separati? – Kamilski81
@ Kamilski81 nei server Web e utilizzando le soluzioni descritte qui, questi sarebbero processi separati. Con delayed_job, ad esempio, è possibile eseguire molti diversi processi di lavoro che possono tutti eseguire il successivo task con priorità più alta dal database. A causa di questa architettura molte persone eseguono un processo di monitoraggio aggiuntivo usando qualcosa come God o BluePill. Vedi qui per ulteriori informazioni: https://www.ruby-toolbox.com/categories/server_monitoring – salernost