- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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:需要关注
您可能关注的文档
最近下载
- 一年级家长会优秀课件ppt课件.pptx VIP
- 果树栽培学(山东联盟)知到智慧树期末考试答案题库2025年青岛农业大学.docx VIP
- 河道砌石护坡劳务合同4篇.docx VIP
- JCT 841-2024《耐碱玻璃纤维网布》.docx VIP
- 2025年全国危险化学品生产单位主要负责人考试题库(含答案).docx VIP
- 部编新人教版语文六年级上册易读错写错字汇总+课文重点梳理+词语积累.pdf VIP
- 水渠护坡砌石劳务合同8篇.docx VIP
- 《公路泡沫轻质土应用技术规范》.pdf VIP
- 人工智能基础知识考试题库300题(含答案) .pdf VIP
- 教育局书记在全县教育系统党组织书记培训动员会上讲话.docx VIP
有哪些信誉好的足球投注网站
文档评论(0)