上海金山区哪里有PHP培训班
PHP基础 Web网站开发概述,PHP开发语言概述、HTTP 协议详解、LAMP/LNMP简介 学习PHP基础内容,掌握常量变量的使用,运算符的使用,函数的定义和使用,流程控制的使用,数组处理方法,字符串处理方法,日期时间处理方法等
Windows下安装集成开发环境,Windows下搭建开发环境,配置与使用phpMyAdmin,熟悉开发软件工具一个PHP脚本,编码规范,程序注释
PHP常量的定义和使用,PHP预定义常量
PHP变量类型:布尔型,整型,浮点型,字符串,数组,对象,资源类型,NULL类型
变量类型转换
PHP运算符。包含算术运算符,字符串运算符,赋值运算符,比较运算符,逻辑运算符,运算符的优先级详解
PHP流程控制。包含if语句,while语句,for语句,break语句,continue语句,exit语句等等
PHP函数。什么是函数,函数的定义,函数的类型,递归函数,变量的范围
PHP数组处理。包含数组的定义,数组的分类,遍历数组,预定义数组,常用的数组函数
PHP字符串处理
PHP日期和时间处理
PHP* SESSION会话。包含Cookie和Session的介绍及应用,自定义Session保存方式 学习PHP*阶段内容,掌握更多编程思想和方法,为项目实战打下坚实的基础
PHP常用功能模块-文件处理,动态图像GD库,发送Email,无限极分类,cURL功能等功能
PHP面向对象,包含面向对象的介绍,类的实例化,类的封装,类的集成,常见的关键字和魔术方法,抽象类和接口,面向对象的设计等
PHP命名空间
模版引擎简介及Smarty模板引擎
MVC模式
JSON简介
PHP正则表达式的简介,语法规则,处理函数
PHP设计模式
PHP错误及异常处理。错误报告级别,自定义错误处理,记录错误日志,异常的处理方法
PHP网站安全及优化
MySQL数据库 1、MySQL数据库概述
2、Windows/Linux下安装和配置MySQL
3、MySQL管理工具、MySQL字符集、数据类型
4、数据库的操作、数据库表的操作、数据库表设计
5、结构化查询语言SQL语句:插入数据,修改数据,删除数据,单表查询,连接查询,子查询,多表查询,分组查询,数据统计等等
6、MySQL运算符、MySQL函数
7、MySQL索引 了解什么是数据库,掌握数据库的安装和配置,掌握数据库的创建和删除,掌握数据表的创建、修改和删除,掌握使用SQL语句来查询数据
8、MySQL事务、MySQL视图、MySQL触发器、MySQL存储过程和函数
9、MySQL用户管理、数据库的备份与还原
10、MySQL日志、MySQL性能优化、MySQL安全
11、PHP访问MySQL数据库 掌握MySQL数据库的*应用模块;掌握数据库管理员日常操作
Linux Linux简介 Linux是当前流行的安全又稳定的服务器系统,学习Linux知识是每一个软件工程师内容。通过本课程将掌握用户管理,文件目录管理,RPM包安装,vim操作,Shell脚本,开发环境搭建,服务器维护等内容
Linux安装
Linux用户管理
文件与目录管理,安装RPM包,文档的压缩和打包,日常管理
文本编辑工具Vim
配置FTP服务、FTP工具使用
正则表达式
Shell脚本
LAMP或LNMP环境搭建
Nginx/Apache服务器的安装与配置
网站系统架构 分布式缓存系统Memcache和Redis 学习流行的Memchache,Redis,MongoDB,Solr,MySQL读写分离和负载均衡,轻松解决网站高访问高负载,挑战大型网站系统架构设计。
NoSQL数据库MongoDB
搜索引擎技术Solr
全文检索引擎Sphinx
MySQL集群、分库分表、主从复制、读写分离、基准测试与性能分析、优化MySQL服务器设置
负载均衡
性能监控与性能分析
项目实战 软件工程理论概述及软件测试概述 通过项目实战开发,深入理解项目开发的方方面面,综合熟练运用各项技能,提前感受公司项目开发的氛围,享受独立开发项目的乐趣和成就。
版本控制SVN或GIT
代码调试、代码分析、网络诊断、开发文档编写
开发框架Yii/开发框架ThinkPHP
支付宝支付/微信支付
第三方登录、站外分享组件
微信开放平台
PHPCMS
手机APP接口开发
在线商城系统
面试技巧 面试技巧、简历制作、常见面试题讲解
项目开发中,如果有定时任务的业务要求,我们会使用linux的crontab来解决,但是它的小粒度是分钟级别,如果要求粒度是秒级别的,甚至毫秒级别的,crontab就无法满足,值得庆幸的是swoole提供的强大的毫秒定时器。
应用场景举例
我们可能会遇到这样的场景:
场景一:每隔30秒获取一次本机内存使用率
场景二:2分钟后执行报表发送任务
场景三:每天凌晨2点钟定时请求第三方接口,如果接口有数据返回则停止任务,如果接口由于某种原因没有响应或者没有数据返回则5分钟后继续尝试请求该接口,尝试5次后仍然失败则停止该任务
以上的三个场景我们都可以归纳为定时任务的范畴。
Swoole毫秒定时器
Swoole提供了异步毫秒定时器函数:
swoole_timer_tick(int $msec, callable $callback):设置一个间隔时钟定时器,每隔$msec毫秒执行一次$callback,类似于javascript中的setInterval()。
swoole_timer_after(int $after_time_ms, mixed $callback_function):在指定的时间$after_time_ms后执行$callback_function,类似于javascript的setTimeout()。
swoole_timer_clear(int $timer_id):删除指定id的定时器,类似于javascript的clearInterval()。
解决方案
对于场景一,经常用在系统检测统计方面,实时性要求比较高,但又能控制好频率,多用于后台服务器性能监控,可以生成可视化图表。可以是30秒获取一次内存使用率,也可以是10秒,而crontab小粒度只能设置为1分钟。
1
2
3
4
|
swoole_timer_tick(30000,function($timer)use($task_id) {// 启用定时器,每30秒执行一次
$memPercent=$this->getMemoryUsage();//计算内存使用率
echodate('Y-m-d H:i:s') .'当前内存使用率:'.$memPercent."\n";
});
|
对于场景二,直接定义xx时间后执行某项任务的话,貌似crontab比较困难,而使用swoole的swoole_timer_after可以实现:
1
2
3
4
|
swoole_timer_after(120000,function()use($str) {//2分钟后执行
$this->sendReport();//发送报表
echo"send report, $str\n";
});
|
对于场景三,用来作尝试请求,请求失败后继续,如果成功则停止请求。用crontab也能解决,但是比较傻,比如设置每隔5分钟请求一次,不管成功会失败都会去执行一次。而用swoole定时器则智能多了。
1
2
3
4
5
6
7
8
9
10
11
|
swoole_timer_tick(5*60*1000,function($timer)use($url) {// 启用定时器,每5分钟执行一次
$rs=$this->postUrl($url);
if($rs) {
//业务代码...
swoole_timer_clear($timer);// 停止定时器
echodate('Y-m-d H:i:s')."请求接口任务执行成功\n";
}else{
echodate('Y-m-d H:i:s')."请求接口失败,5分钟后再次尝试\n";
}
});
|
更多培训课程,学习资讯,课程优惠等学校信息,请进入 上海嘉定区IT培训上海浦东新区php培训上海金山区java培训 网站详细了解,免费咨询电话:400-998-6158