Drupal框架应用与设计理念?;大纲:
1:队列使用场景:为什么需要队列
2:普通工程师的解决方案和架构师的解决方案
3:队列总体设计
4:队列具体实现一:建任务存储表
5:队列具体实现二:定义调用接口
6:队列具体实现三:写执行队列的程序
7:具体业务任务的程序实现
8:服务器部署一:配置crontab
9:服务器部署二:写定时任务调度程序
10:开启多进程并发执行队列
11:实现任务优先级
12:记录队列日志
13:作业:利用队列系统实现定时执行的任务
;一 :队列使用场景:为什么需要队列
场景一:电商网站订单通知
场景二:社交网站群发消息
;二 :普通工程师的解决方案和架构师的解决方案
方案1:建表存邮件,消息等,用定时程序取出发送。
方案2:抽象到更高一层,开发一套通用异步处理队列适用于任何复杂的业务逻辑
;三 :队列总体设计
1:需要队列程序,提供加入队列接口和取队列接口等
2:需要存储队列,文件或者数据库
3:需要定时程序取出队列并执行
4:其它扩展功能:优先级,日志,定时等
;四 :队列具体实现一:建任务存储表
1:
先来个最基本的:
CREATE TABLE `queue` (
id int(11) NOT NULL auto_increment primary key,
taskphp varchar(128) NOT NULL default ,
param text not null default ,
status tinyint not null default 0,
ctime timestamp NOT NULL default CURRENT_TIMESTAMP,
KEY (ctime)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
;五 :队列具体实现二:定义调用接口
$cqueue = new Queue();
1: 加入队列接口
//$param1 为执行任务的程序,$param2 为程序参数,可以为序列化的数据
$cqueue-add($param1,$param2);
2: 读取队列接口
$tasks = $cqueue-getQueueTask($limit = 1000);
3:更新任务状态
$cqueue-updateTaskStatus($id);
;六 :队列具体实现三:写执行队列的程序
do_queue.php部分代码:
$phpcmd = exec(which php);
$cqueue = new Queue();
$tasks = $cqueue-getQueueTask(200);
foreach ($tasks as $t)
{
$taskphp = $t[taskphp];
$param = $t[param];
$job = $phpcmd . . escapeshellarg($taskphp) . . escapeshellarg($param);
system($job);
}
;七 :具体任务的业务实现
这个一般由做业务功能的工程师实现。但是架构师事先得写文档例子,教会别人使用
send_msg.php:
$para = $argv[1];
$arr = unserialize($para);
$cmessage = new Message();
foreach($arr[uids] as $touid)
{
$cmessage-send($arr[uid], $touid, $arr[content]);
}
;八 : 服务器部署一:配置crontab
配置定时任务 crontab:
crontab –e
* * * * * cd /ucai/schedule; php cron_mission.php cron_mission.log
;九 :服务器部署二:写定时任务调度程序
cron_mission.php 示例:
if ($minute % 5 == 0)
{
if(chdir($site_dir.app/)) {
$cmd = $phpcmd do_queue.php do_queue.log ;
echo [ , $ymd , , $hour , : , $minute , ] , $cmd , \n;
system($cmd);
}
}
;十 :开启多进程并发执行队列
1:定时任务的修改
2:队列执行程序的修改
3:取队列接口的修改
4:需要关注
您可能关注的文档
- 高中数学必修2公开课课件-4.1.2圆的一般方程.ppt
- 第一章 面向对象方法概论.ppt
- 组织陈列基本原则和程序10月19日修改.ppt
- 快乐赛跑教学课件.ppt
- Q4 OCS - 产品一览表合集.ppt
- 高中数学选修2-1公开课课件3.1.4空间向量的正交分解及其坐标表示.ppt
- 供配电专业-公开课-电容器及无功补偿.pptx
- 深度学习概论.pptx
- 城市滨水区设计浅谈.pptx
- 苏教版五级上册数学《找规律》公开课课件.ppt
- 伟明环保-市场前景及投资研究报告-境内业务稳健运行,印尼市场贡献边际增量.pdf
- 桂东县法院系统招聘考试真题2025.pdf
- 贵州省黔南布依族2026年中考三模物理试题及答案.pdf
- 贵州省黔南州2026年中考语文二模试卷附答案.pdf
- 贵州省铜仁市2026年中考语文二模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套完整答案详解.docx
- 贵州省毕节市2026年中考语文一模试卷附答案.pdf
- 贵州省贵阳市南明区2026年中考语文一模试卷附答案.pdf
- 2026上半年安徽事业单位联考合肥市庐江县招聘36人备考题库及一套参考答案详解.docx
- 贵州省贵阳市白云区2026年中考二模物理试题附答案.pdf
原创力文档

文档评论(0)