beanstalkd和currectlinkedqueue的区别

beanstalkd和currectlinkedqueue的区别
最新回答
星星是穷人的钻石

2020-06-10 18:18:49

  使用aptitude安装:
  下载并安装Beanstalkd运行以下命令:
  aptitude install -y beanstalkd
  编辑默认配置文件让随着系统启动
  vim /etc/default/beanstalkd
  打开文件后,向下滚动并找到底部线#开始= yes。将其更改为:
  START=yes
  下面介绍源码安装
  我们需要从源代码安装过程的一个关键工具- Git。
  运行以下获取Git在你系统上:
  aptitude install -y git
  下载必要的开发工具软件包:
  aptitude install -y build-essential
  使用Git克隆(下载)官方库:
  git clone
https://github.com/kr/beanstalkd

  进入到下载目录:
  cd beanstalkd
  从源代码构建应用程序:
  make
  安装:
  make install
  再介绍一下centos下源码安装:
  下载地址:
  wget
http://cloud.github.com/downloads/kr/beanstalkd/beanstalkd-1.4.6.tar.gz

  解压:
  tar xzf beanstalkd-1.4.6.tar.gz
  cd beanstalkd-1.4.6
  /configure
  make
  make install
  默认安装路径 :/usr/local/bin/
  查看版本:
  /usr/local/bin/beanstalkd -v
  1.4.6
  再附加一个启动脚本,从Fedora下挖来的 startup 脚本:
  #!/bin/sh
  #
  # beanstalkd - a simple, fast workqueue service
  #
  # chkconfig: - 57 47
  # description: a simple, fast workqueue service
  # processname: beanstalkd
  # config: /etc/sysconfig/beanstalkd
  #
  ### BEGIN INIT INFO
  # Provides: beanstalkd
  # Required-Start: $local_fs $network $remote_fs
  # Required-Stop: $local_fs $network $remote_fs
  # Default-Stop: 0 1 2 6
  # Short-Description: start and stop beanstalkd
  # Description: a simple, fast work-queue service
  ### END INIT INFO
  # Source function library.
  /etc/rc.d/init.d/functions
  # Source networking configuration.
  /etc/sysconfig/network
  # Check that networking is up.
  [ “$NETWORKING” = “no” ] && exit
  exec=“/usr/local/bin/beanstalkd”
  prog=$(basename $exec)
  # default options, overruled by items in sysconfig
  BEANSTALKD_ADDR=127.0.0.1
  BEANSTALKD_PORT=11300
  BEANSTALKD_USER=beanstalkd
  [ -e /etc/sysconfig/beanstalkd ] && . /etc/sysconfig/beanstalkd
  lockfile=/var/lock/subsys/beanstalkd
  start() {
  [ -x $exec ] || exit 5
  echo -n $“Starting $prog: ”
  # if not running, start it up here, usually something like “daemon $exec”
  options=“-l ${BEANSTALKD_ADDR} -p ${BEANSTALKD_PORT} -u ${BEANSTALKD_USER}”
  if [ “${BEANSTALKD_MAX_JOB_SIZE}” != “” ]; then
  options=“${options} -z ${BEANSTALKD_MAX_JOB_SIZE}”
  fi
  if [ “${BEANSTALKD_BINLOG_DIR}” != “” ]; then
  if [ ! -d “${BEANSTALKD_BINLOG_DIR}” ]; then
  echo “Creating binlog directory (${BEANSTALKD_BINLOG_DIR})”
  mkdir -p ${BEANSTALKD_BINLOG_DIR} && chown ${BEANSTALKD_USER}:${BEANSTALKD_USER} ${BEANSTALKD_BINLOG_DIR}
  fi
  options=“${options} -b ${BEANSTALKD_BINLOG_DIR}”
  if [ “${BEANSTALKD_BINLOG_FSYNC_PERIOD}” != “” ]; then
  options=“${options} -f ${BEANSTALKD_BINLOG_FSYNC_PERIOD}”
  else
  options=“${options} -F”
  fi
  if [ “${BEANSTALKD_BINLOG_SIZE}” != “” ]; then
  options=“${options} -s ${BEANSTALKD_BINLOG_SIZE}”
  fi
  fi
  daemon $exec -d $options
  retval=$?
  echo
  [ $retval -eq 0 ] && touch $lockfile
  return $retval
  }
  stop() {
  echo -n $“Stopping $prog: ”
  # stop it here, often “killproc $prog”
  killproc $prog -INT
  retval=$?
  echo
  [ $retval -eq 0 ] && rm -f $lockfile
  return $retval
  }
  restart() {
  stop
  start
  }
  reload() {
  restart
  }
  force_reload() {
  restart
  }
  rh_status() {
  # run checks to determine if the service is running or use generic status
  status $prog
  }
  rh_status_q() {
  rh_status >/dev/null 2>&1
  }
  case “$1” in
  start)
  rh_status_q && exit 0
  $1
  ;;
  stop)
  rh_status_q || exit 0
  $1
  ;;
  restart)
  $1
  ;;
  reload)
  rh_status_q || exit 7
  $1
  ;;
  force-reload)
  force_reload
  ;;
  status)
  rh_status
  ;;
  condrestart|try-restart)
  rh_status_q || exit 0
  restart
  ;;
  *)
  echo $“Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}”
  exit 2
  esac
  exit $?
  使用Beanstalkd
  在安装之后,您就可以开始使用Beanstalkd服务器。以下是运行守护进程的选项:
  -b DIR wal directory
  -f MS fsync at most once every MS milliseconds (use -f0 for “always fsync”)
  -F never fsync (default)
  -l ADDR listen on address (default is 0.0.0.0)
  -p PORT listen on port (default is 11300)
  -u USER become user and group
  -z BYTES set the maximum job size in bytes (default is 65535)
  -s BYTES set the size of each wal file (default is 10485760)
  (will be rounded up to a multiple of 512 bytes)
  -c compact the binlog (default)
  -n do not compact the binlog
  -v show version information
  -V increase verbosity
  -h show this help
  使用例子:
  # Usage: beanstalkd -l [ip address] -p [port #]
  # For local only access:
  beanstalkd -l 127.0.0.1 -p 11301 &
  管理服务:
  如果安装包管理器(i.e. aptitude),你将能够管理Beanstalkd作为服务守护进程。
  # To start the service:
  service beanstalkd start
  # To stop the service:
  service beanstalkd stop
  # To restart the service:
  service beanstalkd restart
  # To check the status:
  service beanstalkd status
  获得Beanstalkd客户端库
  Beanstalkd配有一长串的支持客户端库来处理许多不同的应用程序部署。这个列表的支持语言和框架,包括:
  ●Python
  ●Django
  ●Go
  ●Java
  ●Node.js
  ●Perl
  ●PHP
  ●Ruby
  ●and more.
  查看完整列表支持,寻找你最喜欢的语言和安装说明,查看客户端库页面Beanstalkd Github上。
  使用Beanstalkd
  在本节之前,完成这篇文章,让我们快速Beanstalkd的基本用法。在我们的示例中,我们将使用Python语言和Beanstald Python bindings ——beanstalkc。
  安装beanstalkc,运行以下命令:
  pip install pyyaml
  pip install beanstalkc
  基本操作
  在所有Python文件你想处理Beanstalkd时,需要导入beanstalkc并连接:
  import beanstalkc
  # Connection
  beanstalk = beanstalkc.Connection(host='localhost', port=11301)
  To enqueue a job:
  beanstalk.put(‘job_one’)
  To receive a job:
  job = beanstalk.reserve()
  # job.body == 'job_one'
  To delete a job after processing it:
  job.delete()
  To use a specific tube (i.e. queue / list):
  beanstalk.use(‘tube_a’)
  To list all available tubes:
  beanstalk.tubes()
  # ['default', 'tube_a']
  Final example (nano btc_ex.py):
  import beanstalkc
  # Connect
  beanstalk = beanstalkc.Connection(host='localhost', port=11301)
  # See all tubes:
  beanstalk.tubes()
  # Switch to the default (tube):
  beanstalk.use(‘default’)
  # To enqueue a job:
  beanstalk.put(‘job_one’)
  # To receive a job:
  job = beanstalk.reserve()
  # Work with the job:
  print job.body
  # Delete the job:
  job.delete()
  当您运行上面的脚本时,您应该会看到工作的主体被打印:
  python btc_ex.py
  # job_one