2016-01-10 37 views
5


Ho iniziato di recente a lavorare sul calcolo distribuito per aumentare la velocità di calcolo. Dopo una rigorosa ricerca su google e molti forum SO, ho scelto il sedano per il mio scopo, ma sto affrontando alcuni problemi nella comprensione dei concetti e della terminologia.
worker vs process vs client e job vs task explaination in Celery Python Module

qual è la differenza principale tra lavoratore e processo .. ?? sono uguali o chiamati diversi in contesti diversi .. ?? spiegare

dalla documentazione sedano si dice:

sedano comunica tramite messaggi, di solito utilizzando un mediatore di mediare tra client e lavoratori. Per avviare un'attività, un client aggiunge un messaggio alla coda, che il broker consegna a un operatore.

se è, quali sono i clienti qui .. ?? (attualmente sto usando solo una singola macchina ottacora)

se i messaggi vengono passati a tramite broker .. ?? perché usare il backend e le code dei messaggi per la comunicazione tra processi ... ?? per favore spiegate

Qui ho una grande domanda (per me) che non riesco a capire .. !!! quando eseguo la console Sedano da:

compiti sedano lavoratore -A --loglevel = informazioni --concurrency 5

significa questo, La console sedano è un processo di lavoro che si occupa di 5 diversi processi e tiene traccia della coda dei compiti. Quando una nuova attività viene inserita nella coda delle attività, questo worker assegna l'attività/il lavoro a uno dei 5 processi .. ???

Questa domanda potrebbe essere molto semplice, ma si prega di fornire alcuni link o tuts per capire meglio. Grazie in anticipo

Sono un principiante di SO, Non esitate a modificare la mia domanda per una migliore comprensione per gli altri (forse mi aiuta di più)

risposta

1

Ultima domanda prima:

celery worker -A tasks --loglevel=info --concurrency 5 

Sei corretto - il lavoratore controlla 5 processi. Il lavoratore distribuisce le attività tra i 5 processi.

Un "client" è un codice che esegue le attività di celery in modo asincrono.

Esistono 2 diversi tipi di comunicazione: quando si esegue apply_async si invia una richiesta di attività a un broker (in genere rabbitmq) - si tratta sostanzialmente di un insieme di code di messaggi.

Quando gli addetti terminano, inseriscono i risultati nel back-end dei risultati.

Il broker e il backend dei risultati sono piuttosto separati e richiedono diversi tipi di software per funzionare in modo ottimale.

È possibile utilizzare RabbitMQ per entrambi, ma una volta raggiunta una certa frequenza di messaggi non funzionerà correttamente. La combinazione più comune è RabbitMQ per broker e Redis per risultati.

+0

grazie per le brevi informazioni. stai dicendo RabbitMQ come broker e Redis come back-end. 1.) dove entra in gioco questo memcached. Ho visto molti forum che usano questo come coda di messaggi. 2.) Cosa succede se ho eseguito il suddetto comando di operatore di sedano in due diverse console e inviato un compito da un python interattivo .. ?? Voglio dire, come posso usare questa particolare console di lavoro ... ?? – jeldikk

+0

memcached può essere utilizzato al posto di Redis. Redis è probabilmente la scelta migliore. la tua seconda domanda non ha senso. per favore leggi di nuovo la documentazione di sedano e poi fai una nuova domanda in SO – scytale