PHP怎么使用复述队列执行定时任务

  介绍

这篇文章给大家分享的是有关PHP怎么使用复述队列执行定时任务的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

复述类:

& lt; PHP ?   namespace 才能,跑龙套,      use 才能Phalcon \ Config \适配器\ Ini  as  ConfigIni;      class 才能;复述,{   ,,,private  static  redis1美元;   ,,,private  static  $会话;      ,,,/* *   ,,,,*,获取一个单例的复述,对象   ,,,,*,@param  string  $的名字   ,,,,*,@return  \复述   ,,,*/,,,public  static  function  getObj ($ name=& # 39; redis1& # 39;)   ,,,{   ,,,,,试着{   ,,,,,,,如果(!空(self:: $ $名称)){   ,,,,,,,,,return 自我::$ $名称;   ,,,,,,,}   ,,,,,,,config 美元;=,new  ConfigIni (APP_PATH !”/config" .ENV !”/redis.ini");   ,,,,,,,self:: $ $ name =, new  \复述();   ,,,,,,,self:: $ $名字→连接(配置[名字]美元美元[& # 39;主机# 39;],,配置美元(美元的名字)(& # 39;港口# 39;),2);   ,,,,,,,如果(收取($ config[名字]美元[& # 39;密码# 39;]),,,,!空($ config[名字]美元[& # 39;密码# 39;])){   ,,,,,,,,,self:: $ $名字→身份验证($ config[名字]美元[& # 39;密码# 39;]);   ,,,,,,,   ,,,,,,,}   ,,,,,,,self:: $ $名字→选择($ config[名字]美元[& # 39;数据库# 39;]);   ,,,,,}catch  (\ Exception  $例外){   ,,,,,,,self:: $ $ name =,假;   ,,,,,}   ,,,,,return 自我::$ $名称;      ,,,}         ,,},

定时任务:

,/* *   ,,*,订单任务   ,,*/public 才能;function  orderAction ()   {才能   ,,,error_reporting (E_ALL ,, ~ E_NOTICE);   ,,,redis 美元;=,复述:getObj ();   ,,,//获取数据库连接实例   ,,,db 美元;=,$ this→getDI ()→getShared (& # 39; db # 39;);   ,,,while (真实),{   ,,,,,print_r(& # 39;,实体法之处;& # 39;);   ,,,,,order_status 美元;=,1;   ,,,,,用file_put_contents (APP_PATH 又是“/. ./domain_order.log",,时间());   ,,,,,try  {   ,,,,,//防止长时间无任务导致MySQL超时   ,,,,,,,$ db→查询(“select  1“);   ,,,,,,,//出列   ,,,,,,,order_info 美元;=,复述,→美元lPop(& # 39;订单# 39;);   ,,,,,,,if  (! $ order_info),{//队列为空时暂停   ,,,,,,,,,echo  & # 39;,空之处;& # 39;;   ,,,,,,,,,睡眠(1);   ,,,,,,,,,继续;   ,,,,,,,}   ,,,,,,,order_info 美元;=,json_decode (order_info美元,,真的);   ,,,,,,,model_order_info 美元;=,NetUserOrder: findFirst ((& # 39; order_sn =,: order_sn: & # 39;, & # 39;结合# 39;=祝辞(& # 39;order_sn& # 39;=祝辞order_domain_info_save→美元order_sn]]);   ,,,,,,,//未支付   ,,,,,,,如果(美元model_order_info→pay_status  !=, 200) {   ,,,,,,,,,echo  & # 39; no 支付# 39;;   ,,,,,,,,,继续;   ,,,,,,,}   ,,,,,,,//已操作   ,,,,,,,if (美元order_domain_info_save→order_status ==, 3), {   ,,,,,,,,,echo  & # 39;,操之处;& # 39;;   ,,,,,,,,,继续;   ,,,,,,,}   ,,,,,,,//事务开始   ,,,,,,,德国联邦铁路(db)→美元开始();   ,,,,,,# #   ,,,,,,,这里执行订单流程操作   ,,,,,,# #      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

PHP怎么使用复述队列执行定时任务