Cómo instalar y utilizar la cola de trabajo de Beanstalkd
Descargue e instale Beanstalkd ejecutando el siguiente comando:
aptitude install -y beanstalkd
Edite el archivo de configuración predeterminado para que comience desde el sistema
vim /etc/default/ beanstalkd
Abra el archivo, desplácese hacia abajo y busque la línea inferior #start=yes. Cambiar a:
START=yes
A continuación se muestra la instalación del código fuente
Una de las herramientas clave que necesitamos para instalar el proceso desde el código fuente: Git .
Ejecute el siguiente comando para instalar Git en su sistema:
aptitude install -y git
Descargue los paquetes de desarrollador necesarios:
aptitude install -y build-essential
Utiliza Git para clonar (descargar) el repositorio de software oficial:
git clone /kr/ beanstalkd
Ir a la descarga directorio:
cd beanstalkd
Compile la aplicación desde el código fuente:
make
Instale:
make install
p>
Para obtener más información sobre la instalación del código fuente en centos:
Descargar:
wget /downloads/kr/beanstalkd/beanstalkd-1.4.6.tar. gz
Descomprimir:
tar xzf beanstalkd-1.4.6.tar.gz
cd beanstalkd-1.4.6
/configure
make
make install
Ruta de instalación predeterminada: /usr/local/bin/
Ver versión:
/usr/local /bin/ beanstalkd -v
1.4.6
Un script de inicio adicional, que se encuentra en Fedora:
#! /bin/sh
#
# # beanstalkd - Un servicio de cola de trabajo rápido y sencillo
#
# chkconfig:- 57 47
# # descripción: un servicio de cola de trabajo rápido y simple
## nombre de proceso: beanstalkd
## config:/etc/sysconfig/beanstalkd p >
####
###### COMENZAR INFORMACIÓN INICIAL
## Proporciona: beanstalkd
# Proporciona: beanstalkd p >
# Inicio requerido: $local_fs $network $remote_fs
# Parada requerida:
## Parada predeterminada: 0 1 2 6
## Descripción breve: iniciar y detener beanstalkd
## Descripción: un servicio de cola de trabajo rápido y sencillo
## END INIT INFO
# # Biblioteca de funciones de origen.
/etc/rc.d/init.d/functions
## Configuración de red de origen.
/etc/sysconfig /network
# Compruebe si la red está iniciada.
[ "$NETWORKING" = "no" ] amp; salir
exec="/usr/local/bin/beanstalkd"
prog= $(basename $exec)
## Opción predeterminada, anulada por elementos en sysconfig
BEANSTALKD_ADDR=127.0.0.1
BEANSTALKD_PORT= 11300
BEANSTALKD_USER=beanstalkd
[ -e /etc/sysconfig/beanstalkd ] amp ./etc/sysconfig/beanstalkd
lockfile=/var/lock/subsys/ beanstalkd p>
start() {
[ -x $exec ] || salida 5
echo -n $"Iniciando $ prog: "
# Si no se está ejecutando, inícielo aquí, normalmente algo así como "daemon $exec"
options="-l ${BEANSTALKD_ADDR}-p ${BEANSTALKD_PORT} -u ${BEANSTALKD_USER}"
if [ "${BEANSTALKD_MAX_JOB_SIZE}" ! = "" ] entonces
options="${options} -z ${BEANSTALKD_MAX_JOB_SIZE}"
fi
fi
if [ "${BEANSTALKD_BINLOG_DIR}" ! = "" ] entonces
if [ ! -d "${BEANSTALKD_BINLOG_DIR}" ]; p>
echo "Crear directorio binlog (${BEANSTALKD_BINLOG_DIR})"
mkdir -p ${BEANSTALKD_BINLOG_DIR} amp; amp DIR} amp; ${beanstalkd_binlog_dir}.
fi
options="${options} -b ${BEANSTALKD_ BINLOG_DIR}"
if [ "${BEANSTALKD_BINLOG_FSYNC_PERIOD}" = "" ]
options="${options} -f ${BEANSTALKD_BINLOG_FSYNC_PERIOD}"
si no
options="${options} -F" p>
p>
fi
if [ "${BEANSTALKD_BINLOG_SIZE}" ! = "" ] entonces
options="${options} -s $; {BEANSTALKD_BINLOG_SIZE}"
fi
fi
demonio $exec -d $opciones
retval=$?
echo
echo
p>
[ $retval -eq 0 ] amp; toque $lockfile
return $retval
}
stop() {
p>
echo -n $"Detener $prog: "
# Deténgalo aquí, utilice siempre "killproc $prog"
killproc $prog -INT
retval=$?
echo
[ $retval -eq 0 ] amp;amp; rm -f $lockfile
return $retval
}
restart() {
detener p>
iniciar
}
recargar () {
reiniciar
}
force_reload( ) {
reiniciar
}
rh_status() {
# Ejecute una verificación para determinar si el servicio se está ejecutando o está usando genérico estado
estado $prog
}
rh_status_q() {
rh_status gt;/dev/null 2gt;amp;1
}
caso "$1" en
inicio)
rh_status_q amp; salida 0
$1 p>
;
detener)
rh_status_q || salir 0
$ 1
; >rh_status_q || salida 7
$1
;
Forzar recarga)
force_reload
; p>
estado)
rh_status
;;
condrestart|try-restart)
rh_status_q || salir 0
reiniciar
;;
*)
echo $"Uso: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
salir 0
salir 2
esac
salir $?
Uso de Beanstalkd
Una vez completada la instalación, puede Comience a usar el servidor Beanstalkd. Las siguientes son las opciones para ejecutar el demonio:
-b directorio DIR wal
-f MS fsync como máximo una vez cada milisegundos de MS (use -f0 para "siempre fsync")
-F nunca fsync (predeterminado)
-l ADDR escucha en la dirección (el valor predeterminado es 0.0.0.0)
-p PORT escucha en el puerto (el valor predeterminado es 11300 )
-u USER Conviértete en usuario y grupo
-z BYTES Establece el tamaño máximo del trabajo en bytes (el valor predeterminado es 65535)
-s BYTES Establezca el tamaño de cada archivo de billetera (el valor predeterminado es 10485760)
(redondeado a múltiplos de 512 bytes)
-c binlog comprimido (el valor predeterminado es 65535)
- pc comprime binlog (predeterminado)
-n no comprime binlog
-v muestra información de la versión
-V aumenta la redundancia
p>-h Mostrar ayuda
Ejemplo de uso:
# Uso: beanstalkd -l [dirección IP] -p [puerto#]
# Para acceso local solo:
beanstalkd -l 127.0.0.1 -p 11301 amp;
Servicios de administración:
Si tiene instalado un administrador de paquetes (como aptitude), puedes gestionar Beanstalkd como un demonio de servicio.
# Iniciar el servicio:
service beanstalkd start
# Detener el servicio:
service beanstalkd stop
# Reiniciar el servicio:
service beanstalkd restart
# Para comprobar el estado:
service beanstalkd status
Obtener el cliente Beanstalkd biblioteca
p>Beanstalkd viene con una larga lista de bibliotecas cliente compatibles para manejar muchas implementaciones de aplicaciones diferentes. La lista de lenguajes y frameworks compatibles incluye:
●Python
●Django
●Go
●Java
●Node.js
●Perl
●PHP
●Ruby
●Y más.
Vea la lista completa de soporte, encuentre su idioma favorito y las instrucciones de instalación, y consulte la página de la biblioteca del cliente en Beanstalkd Github.
Uso de Beanstalkd
Antes de esta sección, comprendamos rápidamente el uso básico de Beanstalkd.
En nuestro ejemplo, usaremos el lenguaje Python y el enlace Python Beanstalkd: beanstalkc.
Para instalar beanstalkc, ejecute el siguiente comando:
pip install pyyaml
pip install beanstalkc
Operaciones básicas
En todos los archivos Python que usan Beanstalkd, necesitas importar beanstalkc y conectarte a él:
importar beanstalkc
# Conexión
beanstalk = beanstalkc Conexión(host='localhost', puerto=11301)
Habilitar trabajo:
beanstalk.put('job_one')
Recibir trabajo:
job = beanstalk.reserve()
# job.body == 'job_one'
Eliminar el trabajo después de procesarlo:
job.delete ()
Utilice una canalización específica (es decir, cola/lista):
beanstalk.tubes()
# ['default', 'tube_a '] p>
Ejemplo final (nano btc_ex.py):
importar beanstalkc
# Conectar
beanstalk = beanstalkc.Connection(host ='localhost' , port=11301)
# Ver todos los tubos:
beanstalk.tubes()
# Cambiar al valor predeterminado (pipeline): p>
beanstalk.use('default')
# Para habilitar un trabajo:
beanstalk.put('job_one')
# Para recibir un trabajo:
trabajo = beanstalk. reserve()
# Procesar trabajo:
imprimir trabajo.body
# Eliminar trabajo :
job.delete()
Cuando ejecuta el script anterior, debería ver el cuerpo del trabajo impreso:
Cuando ejecuta el script anterior , deberías Verás el texto del trabajo impreso:
Python btc.put('job_one'
Beanstalk.