PHP
-
PHP laravel chunk 更新数据的坑
在一些情况下,我们需要对大批量的数据进行操作,如果这个时候我们使用foreach的话,很可能会遇到操作超时的情况。在Laravel框架中我们可以很方便的使用chunk方法来解决。来看一个简单的例子:$users = User::all();foreach ($users as $user) { $some_value = ($user->some_field > 0) ...
薄洪涛 2021-11-26 496浏览 0评论 -
PHP Laravel打印sql
在AppServiceProvider.php的boot方法中,增加以下代码DB::listen( function ($sql) { foreach ($sql->bindings as $i => $binding) { &n...
薄洪涛 2021-10-19 480浏览 0评论 -
PHP Yii2.0 文件队列的使用
最近做了一个文件上传+处理的功能,需求是这样的,上传并读取.doc文件,并解析里面的内容入库读取文件并入库是使用python处理的,每个文件大约需要处理5-6秒,上传是使用的Yii2,我这里的思路是把上传和处理的逻辑分离,上传成功之后,增加处理任务到队列中,这里选用的是文件队列,之所以选文件队列的原因是功能简单,而且文件队列不依赖任何第三方第一步,composer下载FileQueuecomposer require --prefer-dist yiisoft/yii2-queue第二...
薄洪涛 2021-01-28 803浏览 0评论 -
PHP 抢红包的一些实现思路
最近探索了关于抢红包的一些实现思路,在此记录下本篇文章主要探讨了金额随机算法关于分布式锁的一些探索我们开始,首先说下抢红包的业务流程,分为两步,发红包和抢红包,在抢红包的时候,并发是非常大的,我们这里采用redis作为中间件来实现高并发的抢红包流程关于红包的随机生成算法,我们采用“二倍均值法”来生成随机的红包金额并先存下来此算法的核心思想是根据每次剩余的总金额M和剩余人数N,执行M/N再乘以2的操作得到一个边界值E,然后指定一个从0到E的随机区间,在这个随机区间内将产生一个随机金额R,此时总金额M将更新为M-R,剩...
薄洪涛 2020-11-08 825浏览 0评论 -
PHP Yii2使用phpOffice导出excel报错
线上导出excel的时候,是不是出现无法访问,如下图因为导出的数据量比较大,我怀疑是内存溢出,于是增加了内存分配值,发现仍然报错,于是我查了下日志,如下2020-08-14 21:31:12 [192.168.8.12][-][-][error][PhpOffice\PhpSpreadsheet\Calculation\Exception] PhpOffice\PhpSpreadsheet\Calculation\Exception: 2020_08_14!K3314&nbs...
薄洪涛 2020-08-14 1344浏览 1评论 -
PHP Laravel中灵活使用Trait
这次我们来学的是Trait,说到Trait ,大家的印象可能就是复用一直以来,我对复用的理解就是写一个公共类/文件,通过继承/require 来实现复用,那里需要就哪里继承/ 引用,目的就是少写代码我们先来举个例子,使用继承来复用代码// 首先实现控制器的基类,这里实现公共方法common namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; class BaseCo...
薄洪涛 2020-08-13 789浏览 0评论 -
PHP php redis Hash操作
//为user表中的字段赋值。成功返回1,失败返回0。若user表不存在会先创建表再赋值,若字段已存在会覆盖旧值。 $redis->hSet('user', 'name', '222'); //获取user表中指定字段的值。若user表不存在则返回false。 $redis->hGet('user', 'realname'); //查看user表的某个字段是否存在,存在返...
薄洪涛 2020-04-21 902浏览 0评论 -
PHP php使用curl获取elasticsearch中数据
我最近在做一个电动车的项目,其中,有一个功能是这样的,我需要获取指定车辆的最新的五条位置信息,位置信息是保存到es库中的,我使用的是Yii2.0框架,本来想使用Yii封装的组件去获取数据的,然后觉得麻烦,就使用了curl调接口的形式开始的时候,我是这么写的function httpPost($server_url, $param) { $ch = curl_init(); &nb...
薄洪涛 2020-01-14 1055浏览 0评论 -
PHP Elasticsearch按照日期聚合
我们现在做的是医疗的业务,有个需求是这样的,查询出某位医生前七天的坐诊记录,并且,医生的坐诊记录是不连续的,这样就需要写一个dsl语句来实现es库的搜索首先我使用了es库中的聚合功能,按照日期去聚合,相当于mysql中的group by,查询语句和结果是这样的{ "query": { "match": { "ysdm": "000485" } }, "aggs&qu...
薄洪涛 2019-12-27 1047浏览 0评论 -
PHP YII2场景值的使用
开发的时候添加和编辑写在了一个方法里面,上传图片添加的时候需要验证为空,编辑的时候不需要,这时候yii的场景值能够解决这个问题:控制器中$model = new NewsForm(); $model->scenario = 'add';//指定场景值模型中//接下来是model的写法 public function rules() { return [ &n...
Feng 2019-12-26 798浏览 0评论