人的血液7年会全部替换一遍,鱼的记忆只有7秒。
phpStorm,这是一款功能十分强大的专业编程工具软件,而这次小编为大家分享的版本是PhpStorm系列中最新的一个版本,而且经过了汉化破解,界面完全显示中文界面,软件本身是完美的支持xml、json、html、css、JavaScrip等系列的代码的,可以进行一系列的编程工作~一、进入官网,下载最新版软件下载地址: https://www.jetbrains.com/phpstorm/1、下载本站提供的压缩包,得到jetbrains phpstorm 2023原程序,双击它开始安装。2、选择软件安装位置,点击Browser可自行更换安装路径。3、选择附加任务,自行选择需要的进行勾选。4、选择开始菜单文件夹,默认即可。5、正在安装中,请耐心等待一会。6、安装成功,点击Finish退出软件安装向导。二、破解百度搜索phpStorm最新版注册码,见下面博主链接,亲测可用。我用的是2023版,最新获取激活码如下,不行再根据下面链接重新获取(不是打广告,只是正好搜索可以用)FDXL1Y2811-eyJsaWNlbnNlSWQiOiJGRFhMMVkyODExIiwibGljZW5zZWVOYW1lIjoiQmVub2l0IE1lbmVuZGV6IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IiIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiRFBOIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wMy0yNyIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiREIiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTAzLTI3IiwicGFpZFVwVG8iOiIyMDI0LTAzLTI2IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQUyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDMtMjciLCJwYWlkVXBUbyI6IjIwMjQtMDMtMjYiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IklJIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wMy0yNyIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUlNDIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wMy0yNyIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJHTyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDMtMjciLCJwYWlkVXBUbyI6IjIwMjQtMDMtMjYiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IkRNIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wMy0yNyIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUlNGIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wMy0yNyIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJEUyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDMtMjciLCJwYWlkVXBUbyI6IjIwMjQtMDMtMjYiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlBDIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wMy0yNyIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUkMiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTAzLTI3IiwicGFpZFVwVG8iOiIyMDI0LTAzLTI2IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJDTCIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDMtMjciLCJwYWlkVXBUbyI6IjIwMjQtMDMtMjYiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IldTIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wMy0yNyIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUkQiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTAzLTI3IiwicGFpZFVwVG8iOiIyMDI0LTAzLTI2IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJSUzAiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTAzLTI3IiwicGFpZFVwVG8iOiIyMDI0LTAzLTI2IiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJSTSIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDMtMjciLCJwYWlkVXBUbyI6IjIwMjQtMDMtMjYiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IkFDIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0xMi0zMSIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUlNWIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wMy0yNyIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJEQyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDMtMjciLCJwYWlkVXBUbyI6IjIwMjQtMDMtMjYiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IlJTVSIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDMtMjciLCJwYWlkVXBUbyI6IjIwMjQtMDMtMjYiLCJleHRlbmRlZCI6ZmFsc2V9LHsiY29kZSI6IkRQIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wMy0yNyIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQREIiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTAzLTI3IiwicGFpZFVwVG8iOiIyMDI0LTAzLTI2IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBXUyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMTItMzEiLCJwYWlkVXBUbyI6IjIwMjQtMDMtMjYiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFNJIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0xMi0zMSIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQUFMiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTAzLTI3IiwicGFpZFVwVG8iOiIyMDI0LTAzLTI2IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBDV01QIiwicGFpZFVwVG8iOiIyMDI0LTAzLTI2IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBHTyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMDMtMjciLCJwYWlkVXBUbyI6IjIwMjQtMDMtMjYiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFBDIiwiZmFsbGJhY2tEYXRlIjoiMjAyMy0wMy0yNyIsInBhaWRVcFRvIjoiMjAyNC0wMy0yNiIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQUkIiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTAzLTI3IiwicGFpZFVwVG8iOiIyMDI0LTAzLTI2IiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBTVyIsImZhbGxiYWNrRGF0ZSI6IjIwMjMtMTItMzEiLCJwYWlkVXBUbyI6IjIwMjQtMDMtMjYiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUlMiLCJmYWxsYmFja0RhdGUiOiIyMDIzLTAzLTI3IiwicGFpZFVwVG8iOiIyMDI0LTAzLTI2IiwiZXh0ZW5kZWQi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破解方法转载: https://www.ajihuo.com/php/4962.html
查看详情时间设置举例:$schedule->command(‘CommandTask’)->dailyAt("5:20");->cron(’* * * * * *’); //在自定义的 Cron 时间表上执行该任务 ->everyMinute(); //每分钟执行一次任务 ->everyFiveMinutes(); //每五分钟执行一次任务 ->everyTenMinutes(); //每十分钟执行一次任务 ->everyFifteenMinutes(); //每十五分钟执行一次任务 ->everyThirtyMinutes(); //每半小时执行一次任务 ->hourly(); //每小时执行一次任务 ->hourlyAt(18); //每小时的第 18 分钟执行一次任务 ->daily(); //每天午夜执行一次任务 ->dailyAt('13:00'); //每天的 13:00 执行一次任务 ->twiceDaily(2, 14); //每天的 2:00 和 14:00 分别执行一次任务 ->weekly(); //每周执行一次任务 ->monthly(); //每月执行一次任务 ->monthlyOn(5, '20:00'); //在每个月的第5天的 20:00 执行一次任务 ->quarterly(); //每季度执行一次任务 ->yearly(); //每年执行一次任务 ->timezone('America/New_York'); //设置时区
查看详情Carbon是php中对时间的一个封装。在内部通过使用DateTime实现了很多简单的方法。比如Carbon::now来说,使用echo Carbon::now()->toDateTimeString()可以直接获取到当前时间。使用DateTime你可能会需要echo (new DateTime())->format('xxxxx')包括其他对时间的操作,增加、减少天/秒/分/月,时间比较等等。 // 获取当前时间 echo Carbon::now(); // 2022-07-04 17:37:18 // 获取当前时间戳 echo Carbon::now()->timestamp; // 时间戳格式化 echo Carbon::now()->timestamp(1656928928)->toDateTimeString(); // 2022-07-04 18:02:08 echo Carbon::now()->timestamp(1656928928)->toDateString(); // 2022-07-04 // 昨天 echo Carbon::yesterday(); // 2022-07-03 00:00:00 // 今天 echo Carbon::today(); // 22022-07-04 00:00:00 // 明天 echo Carbon::tomorrow(); // 2022-07-05 00:00:00 // 获取当前时间的固定格式 echo Carbon::now()->format('Y-m-d'); // 2022-07-04 // 获取当前时间是几号 echo Carbon::now()->day; // 4号 // 获取当前时间是第几月 echo Carbon::now()->month; // 7月 // 获取今年年分 echo Carbon::now()->year; // 2022年 // 获取当前时间的小时 echo Carbon::now()->hour; // 17点 // 获取当前时间的分钟 echo Carbon::now()->minute; // 50分 // 将carbon对象转换成string类型 echo Carbon::now()->toDateTimeString(); // 2022-07-04 17:59:05 echo Carbon::now()->toDateString(); // 2022-07-04 echo Carbon::now()->toFormattedDateString(); // Jul 4, 2022 echo Carbon::now()->toTimeString(); // 18:00:37 echo Carbon::now()->toDayDateTimeString(); // Mon, Jul 4, 2022 6:01 PM // 获取前一天的开始时间 echo Carbon::now()->yesterday()->startOfDay(); // 2022-07-03 00:00:00 // 获取前一天的结束时间 echo Carbon::now()->yesterday()->endOfDay(); // 22022-07-03 23:59:59 // 上一周开始时间 (星期一) echo Carbon::now()->previous()->startOfWeek(); // 2022-06-27 00:00:00 // 上一周结束时间 (星期天) echo Carbon::now()->previous()->endOfWeek(); // 2022-07-03 23:59:59 // 获取这周开始时间 echo Carbon::now()->startOfWeek(); // 2022-07-04 00:00:00 // 获取这周开始时间 echo Carbon::now()->endOfWeek(); // 2022-07-10 23:59:59 // 获取上一月的开始时间 echo Carbon::now()->subMonth(1)->startOfMonth(); // 2022-06-01 00:00:00 // 获取上一月的结束时间 echo Carbon::now()->subMonth(1)->endOfMonth(); // 2022-06-30 23:59:59 // 这个月的第一天开始时间 echo Carbon::now()->startOfMonth(); // 2022-07-01 00:00:00 // 这个月的最后一天结束时间 echo Carbon::now()->endOfMonth(); // 2022-07-31 23:59:59 // 获取上一年的开始时间 echo Carbon::now()->subYear(1)->startOfYear(); // 2021-01-01 00:00:00 // 获取上一年的结束时间 echo Carbon::now()->subYear(1)->endOfYear(); // 2021-12-31 23:59:59 // 今年开始时间 echo Carbon::now()->startOfYear(); // 2022-01-01 00:00:00 // 今年结束时间 echo Carbon::now()->endOfYear(); // 2022-12-31 23:59:59 // 获取今天是当年的第多少天 echo Carbon::now()->dayOfYear; // 185 // 获取今天是这个月的第几周 echo Carbon::now()->weekOfMonth; // 1 // 获取今天是当年的第多少周 echo Carbon::now()->weekOfYear; // 27 // 获取今天是当前的第几季度 echo Carbon::now()->quarter; // 3 // 获取当月天数 echo Carbon::now()->daysInMonth; // 31 // 根据日期计算年龄 echo Carbon::createFromDate(1995, 1, 1)->age; // 27
查看详情在网上看了很多,都说自己搞的博客没人看,没人访问。10个博客9个夭折。首先说下为什么坚持写博客吧,对于我个人来说。写博客主要是是因为两点:第一点喜欢技术,第二点喜欢分享吧。最近想弄一个博客是因为学了Go语言,所以想自己搭个博客玩玩,不求多高的流量。自己发发文章,分享分享自己的东西。个人略懂一点SEO,算是一个皮毛,所以弄了博客以后,想着做做SEO,但是要到处找资料,这也算是一种成长吧。毕竟接触以前不关注的东西。我的博客技术栈:后端:go-zero + redis + mysql + sqlx,目前用的这些,后期可能尝试加一下消息队列(比如RabbitMq之类)前端:博客用的是nuxt3+Elment-plus,后台用的是vite3+vue3+ts+pinia+Elment-plus希望有机会一起交流!知乎链接:https://zhuanlan.zhihu.com/p/618294882
查看详情今天PHP爱好者给大家带来html5禁止横屏的方法:首先打开相应的HTML5代码文件;然后在head区域中添加“<meta name="screen-orientation" content="portrait">”即可禁止html5页面横屏。希望对大家有所帮助。//通用禁止横屏 <meta name="format-detection" content="telephone=no" /> //UC浏览器禁止横屏 <meta name="screen-orientation" content="portrait"> //QQ浏览器禁止横屏 <meta name="x5-orientation" content="portrait"> //JS横屏操作 <script> (function rotate() { var orientation = window.orientation; var pd = null; function createPd() { if (document.getElementById("preventTran") === null) { var imgData = "data:image/png;base64,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"; pd = document.createElement("div"); pd.setAttribute("id", "preventTran"); pd.style.position = "fixed"; pd.style.left = "0"; pd.style.top = "0"; pd.style.width = "100%"; pd.style.height = "100vh"; pd.style.overflow = "hidden"; pd.style.backgroundColor = "#2e2e2e"; pd.style.textAlign = "center"; pd.style.display = "flex"; pd.style.flexDirection = "column"; pd.style.justifyContent = "center"; pd.style.alignItems = "center"; document.getElementsByTagName("body")[0].appendChild(pd); var img = document.createElement("img"); img.src = imgData; pd.appendChild(img); img.style.marginBottom = "0.2rem"; img.style.width = "10%"; var br = document.createElement("br"); var p = document.createElement("p"); p.style.width = "100%"; p.style.height = "auto"; p.style.fontSize = "0.25rem"; p.style.color = "#626262"; p.style.lineHeight = "0.38rem"; p.style.textAlign = "center"; p.innerHTML = "为了您的良好体验"; p.appendChild(br); p.innerHTML += "请将手机/平板竖屏操作"; pd.appendChild(p); } } if (orientation == 90 || orientation == -90) { if (pd == null && document.getElementById("preventTran") === null) createPd(); document.getElementById("preventTran").style.zIndex = "9999"; } //H5新特性 监听用户水平或垂直翻转设备(即方向发生改变) window.onorientationchange = function () { if (pd == null && document.getElementById("preventTran") == null) { createPd(); document.getElementById("preventTran").style.zIndex = "-1"; rotate(); } else { location.reload(); } }; })(); </script>
查看详情如图所示:我们在前端研发过程中,在表单提交或者用户其他点击行为过程中,为了避免用户重复点击,我们有必要在这些可点击地方加上防抖操作 。一方面阻止用户重复请求后端接口,另一方面也提高了用户的体验性。let clickNum = 0; // 表单提交 $('.submit_btn').on('click', function () { if (clickNum == 0) { clickNum = 1; setTimeout(function () { clickNum = 0 }, 3000); //这里写需要执行的函数 }else{ layer.msg('请勿频繁操作!'); } })
查看详情在前端开发中,特别是手机端网页时候。经常会在手机网页底部自动加上类似于上面这种垃圾广告。这样会应该我们的站点,让人误以为是广告,所以我们要在代码中进行处理。这种情况基本上UC浏览器向我们页面插入了一段iframe代码。处理的方式有很多,下面是我们常用的一种方式,亲测可用。// 清除广告 var del_times = 0, deTimer = null; function adGo() { var iframe = document.getElementsByTagName("iframe")[0]; if (iframe) { var bodyNode = { tagName: "" }, iframeParent, targetNode = iframe.parentNode; while (bodyNode.tagName != "BODY") { bodyNode = targetNode; if (bodyNode.tagName != "BODY") { iframeParent = targetNode; targetNode = targetNode.parentNode; } } if (iframeParent) //如果iframe有父类 bodyNode.removeChild(iframeParent); else bodyNode.removeChild(iframe); } del_times++; if (del_times > 10) window.clearInterval(deTimer); } //抢先 删除 嵌入广告 (function () { adGo(); })(); deTimer = self.setInterval(adGo, 200); ///新版 首先需要在body结束之前插入一行HTML代码: <div id="lastOne"></div> 使用这个代码的目的是为了找到页面的最后一行标识。这行代码以后出现的代码都会被jQury删除掉。 UC广告使用了滚动触发的,所以我们需要这个写: $(document).scroll(function () { $("#lastOne").nextAll().remove(); });
查看详情在以前, 开发者需要为每一个需要调度的任务编写一个 Cron 条目, 这是很让人头疼的事. 你的任务调度不在源码控制中, 你必须使用 SSH 登录到服务器然后添加这些 Cron 条目. Laravel 命令调度器允许你平滑而又富有表现力地在 Laravel 中定义命令调度, 并且服务器上只需要一个 Cron 条目即可, 任务调度又是我们俗称的 “计划任务”。任务调度定义在app/Console/Kernel.php文件的schedule方法中,该方法中已经包含了一个示例。你可以自由地添加你需要的调度任务到Schedule对象开启调度//在linux环境中执行 * * * * * root php /var/www/laravel/artisan schedule:run/var/www/laravel为你的项目目录该 Cron 将会每分钟调用Laravel命令调度,然后,Laravel评估你的调度任务并运行到期的任务。定义调度在 项目根目录 下创建定时任务所需要进行的操作创建命令(Laravel 5.1):php artisan make:console Stat_Test创建命令(Laravel 5.3):php artisan make:command Stat_Test该操作会在app/Console/Commands下生成一个Stat_Test.php下面打开该文件 给大家展示一个简单而又完整的代码例子 <?php namespace App\Console\Commands; use Illuminate\Console\Command; class Stat_Test extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'stat:test'; /** * The console command description. * * @var string */ protected $description = 'stat:test'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * Execute the console command. * * @return mixed */ public function handle() { $this->addData(); } // 例子 public function addData() { $time = time(); $rand = rand(1, 1000); $id = \DB::table('data_test')->insertGetId(['uuid' => $time, 'uuid' => $rand]); if ($id) { \Log::info('定时/数据插入成功', $id); } else { \Log::error('定时/数据插入失败', $time); } } }值得注意的是 这个文件中的 $signature = 'stat:test' 这个签名在 Kernel.php 中也要相应用到, 下面是附上 Kernel.php 的完整代码<?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ \App\Console\Commands\Inspire::class, '\App\Console\Commands\Stat_Test', ]; /** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { // 为测试方便 每分钟执行一次 $schedule->command('stat:test')->everyMinute(); } }再强调一次 $schedule->command('stat:test') 里面的 stat:test 必须和上面的签名 $signature = 'stat:test' 对应上protected $commands = [ \App\Console\Commands\Inspire::class, '\App\Console\Commands\Stat_Test', ];也要把引入你的调度文件// 每周星期六11:00运行一次... $schedule->command('stat:test')->weekly()->saturdays()->at('11:00'); // 每周星期一:00运行一次... $schedule->command('stat:test')->weekly()->->mondays()->at('01:00');调度常用选项当然,你可以分配多种调度到任务->cron('* * * * *'); 在自定义 Cron 调度上运行任务 ->everyMinute(); 每分钟运行一次任务 ->everyFiveMinutes(); 每五分钟运行一次任务 ->everyTenMinutes(); 每十分钟运行一次任务 ->everyThirtyMinutes(); 每三十分钟运行一次任务 ->hourly(); 每小时运行一次任务 ->daily(); 每天凌晨零点运行任务 ->dailyAt('13:00'); 每天 13:00运行任务 ->twiceDaily(1, 13); 每天 1:00 & 13:00 运行任务 ->weekly(); 每周运行一次任务 ->monthly(); 每月运行一次任务下面是额外的调度约束列表:->weekdays(); 只在工作日运行任务 ->sundays(); 每个星期天运行任务 ->mondays(); 每个星期一运行任务 ->tuesdays(); 每个星期二运行任务 ->wednesdays(); 每个星期三运行任务 ->thursdays(); 每个星期四运行任务 ->fridays(); 每个星期五运行任务 ->saturdays(); 每个星期六运行任务 ->when(Closure); 基于特定测试运行任务原文出处: https://www.jianshu.com/p/91bbdf9ddbf5
查看详情在后端开发中,关于锁的问题,也是经常能遇到的。为了防止程序并行所导致的数据破坏,或者系统故障,在开发中合理的运用锁,可以带来更好的效果。Cache::lock用法:if (Cache::lock('foo', 10)->get()) { // 锁住这个key 10秒的时间 // 然后我们可以接着自己实际项目中的相关操作 Cache::lock('foo')->release();//一定要在结尾处释放锁,不然会导致别的并行或后续请求一直无法获取锁而停滞 }例如最常见我们在处理用户余额的时候需要用到锁utils工具中封装方法: /** * 获取一个原子锁 * @param string $name * @param int $seconds * @return Lock */ public static function acquireLock(string $name, int $seconds = 60): Lock { return Cache::lock($name, $seconds); } /** * 释放一个原子锁 * @param Lock $lock * @return void */ public static function releaseLock(Lock $lock): void { $released = optional($lock)->release(); if (!$released) { optional($lock)->forceRelease(); } }调用:/** * 增加用户余额 * @param int $userId * @param int $amountInCents * @param int $changeType * @param string $description * @return UserAccountBalance|null */ public function increaseUserBalance( int $userId, int $amountInCents, int $changeType, string $description = '', ): ?UserAccountBalance { $lock = Utils::acquireLock('user_balance_' . $userId); try { $lock->block(10); $balance = $this->getBalance($userId); if (empty($balance)) { $balance = $this->createBalance([ 'user_id' => $userId, 'total_balance_in_cents' => 0, 'withdrawn_balance_in_cents' => 0, 'remaining_balance_in_cents' => 0, ]); } if (empty($balance)) { throw new Exception('创建用户余额失败'); } if ($amountInCents == 0) { return $balance; } $change = $this->createBalanceChange([ 'user_id' => $userId, 'changed_amount_in_cents' => $amountInCents, 'change_type' => $changeType, 'change_detail' => ['description' => $description], ]); if (empty($change)) { throw new Exception('余额变更记录保存失败'); } $this->updateBalance($balance, [ 'total_balance_in_cents' => $balance->total_balance_in_cents + $amountInCents, 'remaining_balance_in_cents' => $balance->remaining_balance_in_cents + $amountInCents, ]); return $balance; } catch (Exception $error) { Log::error('用户余额更新失败', [ 'userId' => $userId, 'amount_in_cents' => $amountInCents, 'code' => $error->getCode(), 'message' => $error->getMessage(), 'file' => $error->getFile(), 'line' => $error->getLine(), ]); return null; } finally { Utils::releaseLock($lock); } }
查看详情1、不要着急,最好的总会在最不经意的时候出现。Don’t try so hard, the best things come when you least expect them to. 2、拾一片光阴,诉与你听。 Pick up a piece of time to tell you. 3、初听不知曲中意,再听已是曲终人。 I didn't know what I wanted to hear at the beginning, but I was the end of the song.4、好想,好想你!如果清风有情,请带去我对你的思念,这一生都为你牵挂;如果白云有意,请带去我对你的爱恋,生生世世都愿和你共缠绵! Oh, How much I miss you! If the passionate refreshing breeze knows my heart, it can tell you that I miss you and care you for my life’s time. If graceful white cloud knows my heart, it can tell you I love you and would be together with you forever.5、你知道么,有个人时时想念着你,惦记你,你含笑的眼睛,象星光闪闪,缀在我的心幕上,夜夜亮晶晶。 Do you know there is someone thinking of you and caring you all the time ? Your smiling eyes are just like the sparkling stars hanging on the curtain of my heart. 6、那些承诺,你动了嘴巴,我动了真心。Those promises, you moved your mouth, I moved my heart.7、纵使举案齐眉,到底意难平。Even if the case is raised in unison, it is difficult to get even.8、任何限制,都是从自己的内心开始的。Any restriction starts from your heart.9、不怕别人看不起,就怕自己不努力。Dont be afraid of being looked down upon by others, just afraid of not working hard.10、你的眼睛,是我永生不会再遇的海。Your eyes are the sea I will never meet again.11、谁苍白了我的等待,讽刺了我的执着。Who pale my waiting, satirized my persistence.12、把日子过成诗,简单而精致。Make life a poem, simple and delicate.13、向每个人学习,但不要模仿任何人。Learn from everyone, but dont imitate anyone.14、千山万水,一帘烟雨,迷离了眼眸。Thousands of mountains and rivers, a curtain of rain, blurred eyes.15、每个人,都有一个世界,安静而孤独。Everyone has a world, quiet and lonely.16、爱自己是终生浪漫的开始。Love yourself is the beginning of a lifetime of romance.17、小舟从此逝,江海寄余生。The boat is gone, and the river and the sea send the rest of their lives.18、心若一动,泪就千行。If you move your heart, tears will flow.19、我想遇见你,我在找你。I want to meet you. Im looking for you.120、一生,一条路,一个人走,一个人悟。Life, a way, a person to walk, a person to understand.
查看详情人的血液7年会全部替换一遍,鱼的记忆只有7秒。