Recentemente ho svolto ricerche sull'uso di Beanstalkd con PHP. Ho imparato un bel po ', ma hanno alcune domande circa l'installazione su un server, eccCome configurare Beanstalkd con PHP
Ecco come la vedo io a lavorare:
- installo Beanstalkd e le eventuali dipendenze (come libevent) sul mio server Ubuntu. Quindi avvio il demone Beanstalkd (che dovrebbe funzionare fondamentalmente sempre).
- Da qualche parte nel mio sito Web (ad esempio quando un utente esegue alcune azioni, ecc.) Le attività vengono aggiunte a varie provette all'interno della coda Beanstalkd.
Ho uno script di bash (come il seguente) che viene eseguito come un deamon che esegue fondamentalmente uno script PHP.
#!/bin/sh php worker.php
4) Lo script lavoratore avrebbe avuto qualcosa di simile per eseguire i compiti in coda:
while(1) {
$job = $this->pheanstalk->watch('test')->ignore('default')->reserve();
$job_encoded = json_decode($job->getData(), false);
$done_jobs[] = $job_encoded;
$this->log('job:'.print_r($job_encoded, 1));
$this->pheanstalk->delete($job);
}
Ora qui sono le mie domande in base alla configurazione di cui sopra (che mi corregga se ho torto):
Dire che ho il compito di importare un feed RSS in un database o qualcosa del genere. Se 10 utenti lo fanno in una volta, saranno tutti in coda nella "prova" del tubo. Tuttavia, sarebbero stati eseguiti solo uno alla volta. Sarebbe meglio avere 10 valvole diverse tutte in esecuzione contemporaneamente?
Se ho bisogno di più tubi, vuol dire anche che avrei bisogno di 10 script di lavoro? Uno per ogni tubo tutti in esecuzione contemporaneamente con lo stesso codice, ad eccezione della stringa letterale nella funzione watch().
Se eseguo quello script come demone, come funziona? Eseguirà costantemente lo script worker.php? Quel copione continua fino a quando la coda è vuota teoricamente, quindi non dovrebbe essere avviata solo una volta? Come decide il daemon con quale frequenza eseguire worker.php? È solo un'impostazione?
Grazie!
Grazie per i collegamenti! Ne esaminerò sicuramente quelli. Una domanda su # 2: Quante volte dovrebbe essere eseguito quel copione? È interamente basato sulla frequenza con cui il mio demone esegue il mio script bash? – joshholat
Inoltre, c'è un modo conveniente (tramite un frammento di codice o un tipo di "dashboard") per vedere cosa sta eseguendo tutto, ecc con beanstalk? – joshholat
la maggior parte/tutta la libreria dovrebbe fornire una chiamata ai comandi stats, list-tubes e stat-tubes. Ce ne sono anche altri. Non ho visto https://github.com/andreisavu/django-jack in esecuzione, ma questo può fare anche alcune cose. –