pyspider 部署文档

作者: cayman 分类: pyspider 发布时间: 2018-03-22 11:12

因为pyspider 是有多个组件组成,所以你不仅可以启动标准的进程,你还可以使用第三方进程管理工作来单独管理组件甚至可以使用第三方的免费实例来运行.你也可以使用mysql或mongodb和RabbitMQ部署成集群.pyspider开发时设计成组件给部署带来了非常大的灵活性.

在生产环境,运行多个process和更多的存储数据库能够使系统更可靠和性能更好.

部署实例

配置文件config.json

虽然命令行启动时就可以指定参数,不过还是推荐配置文件方式,这样添加和修改参数更方便,如

{
  "taskdb": "mysql+taskdb://username:password@host:port/taskdb",
  "projectdb": "mysql+projectdb://username:password@host:port/projectdb",
  "resultdb": "mysql+resultdb://username:password@host:port/resultdb",
  "message_queue": "amqp://username:password@host:port/%2F",
  "webui": {
    "username": "some_name",
    "password": "some_passwd",
    "need-auth": true,
  }
}

你可以运行pyspider –help查看帮助或运行pyspider 子命令  –help来获取子命令的帮助信息.配置文件是标准的JSON格式的.

数据库配置:Database Connection URI

“taskdb”,”projectdb”,”resultdb”数据配置格式如下:

mysql:
    mysql+type://user:passwd@host:port/database sqlite:
    # relative path
    sqlite+type:///path/to/database.db # absolute path
    sqlite+type:////path/to/database.db # memory database
    sqlite+type:// mongodb:
    mongodb+type://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] more: http://docs.mongodb.org/manual/reference/connection-string/ sqlalchemy:
    sqlalchemy+postgresql+type://user:passwd@host:port/database sqlalchemy+mysql+mysqlconnector+type://user:passwd@host:port/database more: http://docs.sqlalchemy.org/en/rel_0_9/core/engines.html local:
    local+projectdb://filepath,filepath type:
    should be one of `taskdb`, `projectdb`, `resultdb`.

消息队列服务:Message Queue URL

你可以使用如下方式指定消息队列配置信息:

<pre>rabbitmq:
 amqp://username:password@host:5672/%2F  
beanstalk: 
 beanstalk://host:11300/  
redis:
 redis://host:6379/ 
builtin:
 None

pyspider -c config.json –phantomjs-proxy=”localhost:25555″ fetcher
pyspider -c config.json processor
pyspider -c config.json result_worker

[/shell]

启动webui

 

如果webui和scheduler没在同一台主机上,需要添加参数 `–scheduler-rpc`来指定scheduler

pyspider -c config.json webui 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

一条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注