找回密码
 注册账号

QQ登录

只需一步,快速开始

《泰拉瑞亚下载-1.4.2.3版》 泰拉瑞亚服务器 - MOD模组下载

入驻泰拉战网 新手指引 - 升级 - 师徒

泰拉瑞亚合成表 泰拉卡牌 - 泰拉江湖 - 泰拉刺客

联系泰拉开发组👈进入 积分市场 - 房产交易 - 水晶获取

查看: 4153|回复: 0

Discuz!开发之进程锁类discuz_process介绍

[复制链接]

506

主题

18

回帖

5

广播

论坛版主

积分
260
泰拉
22
水晶
1
铜钥匙
0
银钥匙
0
金钥匙
0

【江湖新秀】【宝剑回鞘】【泰拉达人】【奥运选手】

发表于 2021-4-3 21:19:09 | 显示全部楼层 |阅读模式

Discuz!开发的时候很多时候需要用进程锁控制程序的重复执行问题,例如系统计划任务,本文就介绍一下Discuz!进程锁类discuz_process

定义文件:\source\class\discuz\discuz_process.php

该类有两种形式的锁,内存缓存锁和数据库锁(pre_common_process表),一般开启了内存缓存就优先使用内存缓存锁;

discuz_process类有两个public静态方法可供调用:

public static function islocked($process, $ttl = 0)//获取进程锁,判断进程锁存在

public static function unlock($process)//删除进程锁


  1. if(!discuz_process::islocked('自定义进程锁名,保证唯一性')) {//判断当前是否有未释放的进程锁,如果不存在则创建(新创建仍然返回false)
  2.         //此处执行流程
  3.         discuz_process::unlock('自定义进程锁名,保证唯一性');//释放进程锁
  4. }
复制代码
[发帖际遇]: 君山 乐于助人,奖励 14 泰拉. 幸运榜 / 衰神榜
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|友链申请|Archiver|手机版|小黑屋|游芯沙盒 ( 陕ICP备11006283号-1 )

GMT+8, 2024-12-21 22:47 , Processed in 0.112375 second(s), 35 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表