当前位置: 首页 > news >正文

php mysql的网站开发免费ppt模板下载熊猫办公

php mysql的网站开发,免费ppt模板下载熊猫办公,石油大学网页设计与网站建设,雍鑫建设集团官方网站由于项目中在修改产品的同时要同步关联水单,删单#xff0c;客保 等等数据。所以不可能等待所有都执行完毕以后再给客户端反馈。所以自己用写了个队列。在这里晒出来代码#xff0c;以供大家参考。(项目中用到的是tp,所以在这里用tp作为演示) 思路 1#xff0c;需要用到队列…由于项目中在修改产品的同时要同步关联水单,删单客保 等等数据。所以不可能等待所有都执行完毕以后再给客户端反馈。所以自己用写了个队列。在这里晒出来代码以供大家参考。(项目中用到的是tp,所以在这里用tp作为演示) 思路 1需要用到队列则扔到queue表中。 2利用linux计划任务 * * * * * 每分钟去执行 CronMission方法在方法中控制执行频率 (分钟%5 则为每五分钟执行一次) 3利用 flock文件排它锁保证单线程执行避免重复执行 具体实现如下:   表 CREATE TABLE IF NOT EXISTS roav2_queue (   id int(10) NOT NULL AUTO_INCREMENT,  taskpath varchar(50) NOT NULL DEFAULT ,//任务路径  param text NOT NULL,//参数在这里使用serialize编译  status tinyint(4) NOT NULL DEFAULT 0,//状态0未执行1执行过  created_at datetime NOT NULL,  updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  PRIMARY KEY (id),  KEY created_at (created_at) ) ENGINEInnoDB  DEFAULT CHARSETutf8 AUTO_INCREMENT1 ; 1获取队列   public function getQueueTask($limit 10){$map [status 0];$data $this-where($map)-order(id asc)-limit($limit)-select(); // var_dump(M()-getLastSql());die;return $data;}   2参数拼接   public function cmdHandle($phpCmd, $taskPath, $param) {$str ;if($param) {$params unserialize($param);foreach ($params as $k $v) {$str . / . $k . / . $v;}$taskPath . $str;}$res $phpCmd . $taskPath;return $res; }   3修改任务状态   public function changeTaskStatus($id, $status) {return save_r($this, [id $id], [status $status]); }   4执行队列   public function doQueue() {$phpCmd C(PHPCMD);$logPath C(CRON_LOG_PATH);$fp fopen(flock.txt, w);if (flock($fp, LOCK_EX|LOCK_NB))//使用文件排他锁保证单线程执行{$tasks $this-getQueueTask(10);foreach ($tasks as $v) {$job $this-cmdHandle($phpCmd, $v[taskpath], $v[param]);$job . . $logPath . doQueueMission . date(Y-m-d) . .log ;system($job);$this-changeTaskStatus($v[id], 1);}flock($fp, LOCK_UN);}fclose($fp); }   5添加任务   public function addTask($taskPath, $param) {if(empty($taskPath) || empty($param)) return 0;$data [taskpath $taskPath, param serialize($param),created_at date(Y-m-d H:i:s)];$res add_r($this, $data);if ($res) return 1;else return 0; }   6计划任务   public function cronMission() {$minute date(i);//5分钟执行一次if ($minute%5 0) {$this-model-doQueue();} } 这里主要是实现异步处理入队和出队解耦,单线程转载于:https://www.cnblogs.com/ngx171/p/8579359.html
http://www.zqtcl.cn/news/545088/

相关文章:

  • 网站换服务器php大流量网站开发规范
  • 网站备案主体域名平面设计线下培训班多少钱
  • 优秀网站专题wordpress 外部调用插件
  • 域名服务网站建设科技公司做棋子网站怎么提高浏览量
  • 用易语言做攻击网站软件下载彩页设计多少钱
  • 个人网站可以做淘宝推广手机版怎么用百度快照
  • 制作网站的公司叫什么外包软件
  • 廊坊企业建站模板邱县手机网站建设
  • 辽宁响应式网站费用建设银行官网app
  • 河北黄骅市网站建设网站外链的优化方法
  • 青岛城阳网站制作网站建设详细步骤
  • 先做网站再付款 怎么回答设计方案步骤
  • 汕头建站模板济南网站建设富库网络
  • 创业网站建设方案项目书手机app设计软件
  • 建设端午节网站的目的主题wordpress语法高亮插件
  • 做网站开发使用百分比的好处深圳建设网站公司简介
  • 行距网站上海专业网站建设机构
  • 闵行手机网站建设鲅鱼圈规划建设局网站
  • 合肥市城乡和建设网站网页设计与网站建设区别
  • 青岛网站建设企业建站北京网站模仿
  • 广州建设网站的公司简介湛江建设厅网站
  • 做网站不赚钱了网站关键词排行查询
  • 印度人通过什么网站做国际贸易三门峡做网站
  • 网站排名快速提升工具招远建网站首选公司
  • 手机网站格式商城网游开发公司
  • 手机怎样创建网站长春网站建设哪家专业
  • 做pop网站定制开发教程
  • 成都响应式网站建报告问题
  • 做设计找素材的+网站有哪些建立平台什么意思
  • 网站设置在哪里找宁德网站建设制作