12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- /**
- * SettleFire.php UTF-8
- * Cpa倒量通知队列处理
- *
- * @date : 2019/03/21 15:44
- *
- * @license 这不是一个自由软件,未经授权不许任何使用和传播。
- * @author : chenbingling <cbl@huosdk.com>
- * @version : HuoMp 1.0
- */
- namespace huolib\queue\job;
- use huolib\queue\constant\EventConst;
- use huomp\controller\cpa_reversal\Quhulian;
- use think\queue\Job;
- class CpaReversalFire extends Fire {
- static $g_i = 0;
- /**
- * fire方法是消息队列默认调用的方法
- *
- * @param Job $job 当前的任务对象
- * @param array|mixed $data 发布任务时自定义的数据
- */
- public function fire(Job $job, $data) {
- if ($job->attempts() > 1) {
- $job->delete();
- }
- self::$g_i++;
- $_is_job_done = $this->doJob($data);
- $runtime = round(microtime(true) - THINK_START_TIME, 10);
- echo $runtime.' '.self::$g_i;
- if ($_is_job_done) {
- //如果任务执行成功, 记得删除任务
- $job->delete();
- // print("<info>Hello Job has been done and deleted"."</info>\n");
- } else {
- if ($job->attempts() > 3) {
- //通过这个方法可以检查这个任务已经重试了几次了
- // print("<warn>Hello Job has been retried more than 3 times!"."</warn>\n");
- $job->delete();
- // 也可以重新发布这个任务
- // print("<info>Hello Job will be availabe again after 2s."."</info>\n");
- //$job->release(2); //$delay为延迟时间,表示该任务延迟2秒后再执行
- }
- }
- }
- /**
- * 根据消息中的数据进行实际的业务处理
- *
- * @param array $data 发布任务时自定义的数据
- *
- * @return bool 任务执行的结果
- */
- public function doJob($data) {
- switch ($data['event']) {
- case EventConst::EVENT_CPA_REVERSAL_QUHULIAN:
- $_rs = (new Quhulian())->QuhulianNotify($data);
- break;
- default:
- $_rs = false;
- }
- return $_rs;
- }
- }
|