赞
踩
因为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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。