xiaolingzi's blog

每天都在成长...

欢迎您:亲

PHP守护进程和多进程的实现

xiaolingzi 发表于 2017-07-20 09:27:00

PHP除了做web相关的功能之后,有时我们还需要使用它来处理一些后台任务。对于一些繁重的工作,单一的进程处理无法满足我们的需要,这时候我们就需要多线程或者多进程来处理。PHP默认不支持多线程,但有对应的扩展程序来实现。PHP多进程可以使用pcntl来实现。今天这里我们主要来讲讲在cli模式下,PHP多进程、守护进程的使用,而且只是在linux下运行。

一、多进程

多进程可以通过pcntl_fork来实现,具体看一下代码:

阅读全文
  • 分类: PHP
  • 阅读: (270)
  • 评论: (0)

RabbitMQ的PHP扩展安装

xiaolingzi 发表于 2017-07-18 17:39:46

我们安装完的RabbitMQ的服务端之后,如果我们想要调用还得安装RabbitMQ的客户端(rabbitmq-c),所以PHP扩展安装前需要先安装RabbitMQ客户端。

一、安装RabbitMQ客户端(rabbitmq-c)

客户端地址如下:

https://github.com/alanxz/rabbitmq-c/releases

下载最新版本就好。

阅读全文
  • 分类: PHP
  • 阅读: (383)
  • 评论: (0)

RabbitMQ在Centos上的安装和简单配置

xiaolingzi 发表于 2017-07-11 10:33:57

RabbitMQ需要erlang环境支持,所以安装主要包含两大块:Erlang环境安装和RabbitMQ自身的安装。

一、安装最新版Erlang

Erlang安装包下载地址及官方安装教程:

https://www.erlang-solutions.com/resources/download.html

刚开始采用下载Erlang RPM安装包然后使用rpm命令进行安装的方式进行安装,但安装过程中会遇到各种依赖和冲突的问题。所以为了更省事,这里推荐配置yum源进行安装。

在/etc/yum.repos.d文件夹中添加erlang.repo文件,并添加以下内容:

阅读全文
  • 分类: Linux
  • 阅读: (269)
  • 评论: (0)

PHP使用thrift实现RPC服务(服务端和客户端)

xiaolingzi 发表于 2017-06-21 15:04:53

一、简单说明

1.RPC服务是什么

RPC全称是Remote Procedure Call Protocol,即远程过程调用。他跟Web Service有类似的地方,但又有所不同。具体可以百度两种区别。这里不做深入讨论。

2.为什么选择thrift

thrift支持多语言,而且服务端和客户端也可以使用不同的语言,比较方便。其次它是Facebook开发,后交由Apache打理,也比较可靠。当然如果只是针对php还可以考虑yar、workerman-thrift-rpc或者swoole。


二、软件安装

软件的安装可以直接看官网的介绍。地址如下:

http://thrift.apache.org/docs/install/

碰到的问题这里简单说明一下,以centos为例。里面有些软件的安装有最低版本要求,安装的时候需要注意,但官方文档里面说到的软件版本不一定是当前最新的版本,大家可以去对应软件官网下载最新版本。

阅读全文
  • 分类: PHP
  • 阅读: (732)
  • 评论: (0)

使用xtrabackup(innobackupex)备份还原mysql数据库

xiaolingzi 发表于 2017-05-31 17:53:27

一、背景

随着数据库数据的不断增长,通过mysqldump进行完整备份的时间越来越长。所以当数据库的数据量比较大时就需要把完全备份改为增量备份。

增量备份的方法有很多,比如基于mysql自带的binlog日志进行增量备份。这里我们主要是讲如何通过xtrabackup来进行备份。


二、软件安装

软件的安装官网有相应的教程,可以直接到官网查看,地址如下:

https://www.percona.com/downloads/XtraBackup/LATEST 

阅读全文
  • 分类: mysql
  • 阅读: (654)
  • 评论: (0)

Python ORM框架lingorm介绍及使用文档

xiaolingzi 发表于 2017-03-28 14:04:57

lingorm是使用python3编写的ORM框架,支持插入修改删除等基本ORM功能,也支持一般复杂的查询(比如复杂条件下的联表查询)。除此,也支持原生sql查询以应对更加复杂的情况。


一、框架的引入

下载代码,切换到代码根目录,运行 python setup.py install 即可进行安装。

GitHub地址:https://github.com/xiaolingzi/python-orm-lingorm

阅读全文
  • 分类: Python
  • 阅读: (308)
  • 评论: (0)

PHP ORM框架LingORM介绍及使用文档

xiaolingzi 发表于 2017-03-15 15:55:51

LingORM是为php编写的ORM框架,支持插入修改删除等基本ORM功能,也支持一般复杂的查询(比如复杂条件下的联表查询)。除此,也支持原生sql查询以应对更加复杂的情况。


一、框架的引入

框架采用了命名空间和类自动加载,所以框架的引入也比较简单,如果项目中已有自动加载类文件,在自动加载类文件中引用框架的自动加载类即可,框架的自动加载类在AutoLoader目录下的AutoLoader.php文件。如果没有自动加载类的需要在入口执行文件的头部引入该文件即可。

GitHub地址:https://github.com/xiaolingzi/PHP-ORM-LingORM

阅读全文
  • 分类: PHP
  • 阅读: (1301)
  • 评论: (0)

PHP脚本程序框架LingPHP构建

xiaolingzi 发表于 2017-03-07 18:58:49

对于web程序,有太多较为成熟的框架可以使用,我们直接拿来用即可。而php除了写web代码之后,还经常用来写一些脚本任务,如服务器部署的一些计划任务程序或者临时使用的处理程序。之前都是大家按自己的想法随便去写,这样会导致代码的凌乱不好管理,另一方面也不便于代码的复用,故开始构建一个简单的框架。

框架需要解决的主要问题如下:

1. 类自动加载,命名空间的引入,这是框架的基本。这样可以避免文件的到处引用。

2. 项目集中管理。各个程序归总起来管理。

3. 统一的调用方式。每个项目有统一的执行入口和参数选项。

4. 代码复用。引入简单的分层架构,将代码进行有组织管理。

5. 配置区分开发环境和线上环境。开发环境的很多配置比如文件路径都和正式服务器的不一样,如果不做分离,不小心就会把开发环境的配置覆盖掉正式的配置导致出错。

6. 统一的文件命名规范。

7. Linux下多进程和守护进程的支持。

阅读全文
  • 分类: PHP
  • 阅读: (268)
  • 评论: (0)
共101条记录12345...11上一页下一页