Domanda

Volevo controllare questo concetto e ciò che tutti pensano di farlo.Voglio usare Guainger per eseguire un paio di compiti in background (principalmente raccolta e elaborazione dei dati).

Voglio configurare il riduttore attorno a un framework PHP (nel mio caso, è cakephp2).Per quanto ho capito il Gearman, i lavoratori sono semplicemente un daemon PHP che esegue un singolo script PHP (cioè lavoratore.php).

Sto cercando di capire come portare la logica / codice che ho già costruito nel framework PHP in quella scritta del lavoratore singolo.Oppure trovo che potrei dover ricostruire un sacco di roba come i modelli.

Quindi la mia soluzione è quella di mantenere la luce del lavoratore.php e invece avere lo script lavoratore semplicemente avviare il resto delle chiamate API tramite Curl.Suono come una buona opzione per andare?

È stato utile?

Soluzione

Fare una chiamata di ricciolo suona un po 'in testa per me .. Avrei prima esplorato quanto segue:

    .
  • Carica una parte del framework nel lavoratore (più economico che effettuare una chiamata e quindi invocare il quadro)
  • crea un lavoratore speciale per "richiamare".Ad esempio, i veri lavoratori farebbero il vero lavoro e al completamento avrebbero presentato un risultato alla coda "Callback".Quell'offerta di callback allora accetterebbe i lavori dal Gearman e portarli da lì (proprio come un punto di riferimento API endpoint lo porterebbe da lì).

In qualsiasi modo, a meno che non si stia dividendo il lavoro tra le macchine, non è una buona idea effettuare chiamate http extra.Perché coinvolgere Apache, se riesci a lavorare direttamente con PHP?

Altri suggerimenti

Sto aggiungendo questo come aggiunta alla risposta, ma la risposta era troppo breve.

Sono stato in grado di fare i lavoratori del Gearman come console di cakephp e avvolgerlo intorno a una configurazione di supervisto

// Add the example configs below
[program:my-gearman-test]
command= /path/to/cakephp/app/Console/cake gearman test
process_name= %(process_num)g-gearman-test
numprocs=1 
directory=/path/to/cakephp/app
autostart=true
autorestart=true
user=www-data
stdout_logfile=/path/to/logs/worker_stdout.log
stdout_logfile_maxbytes=1MB
stderr_logfile=/path/to/logs/worker_stderr.log
stderr_logfile_maxbytes=1MB
.

Allora eseguo supervisto, e inizierà a inizializzare il comando della console di torta.Ora con la parte del lavoratore del framework Cakephp, ottengo tutta la bontà che deriva dall'utilizzo di un framework invece di fare uno script di lavoratori standalone.php

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top