對惡意的併發訪問進行強制排隊按順序執行

2021-10-09 13:11:11 字數 858 閱讀 8698

<?php

namespace lock;

class cls_lock }

private function set_redis($n=2)

function lock($key,$type='set',$time=50)

$i++;

usleep($time);//等待10毫秒

}while($i<100);

return 0; }

function del_lock($key)

return 1;

//在這裡也可以使用 $this->redis->get($key)==$pid 判斷鎖是否是自己建立的 但是不具有原子性 }

}

<?php

$time=microtime(true);

define('api_path', str_replace('\\', '/',dirname(__file__)) . '/');

require api_path.'inc/cls_lock.php'; //引入cls_lock檔案

$obj= new \lock\cls_lock();

//限制乙個使用者乙個方法只能同時執行乙個程序,惡意的多倍程序會被強制排隊按順序執行

$uid='k12335';

$action='battle_end'; //戰鬥結束

$lock=$uid.'_'.$action;

if($obj->lock($lock))else

exit();

cls_redis.php 請參考我的另一篇文章

乙個改進redis操作類,支援多維陣列

對學生的資訊按成績進行排序輸出

對50個學生的記錄 包括學生的姓名和成績 組成記錄陣列,用簡單選擇法按成績從高到低的次序輸出 每行輸出5個 include define n 10 struct student information n 定義乙個結構體資料型別,存放學生的姓名和成績 void selectionsort stude...

指標之對未宣告的位址進行訪問

例1 下列 的執行結果是什麼?int ptr ptr int 0x8000 ptr 3 把這個位址0x8000給指標ptr 但是這個位址不一定是空閒位址,有可能被其他的地方占用。這樣就又可以導致訪問錯誤。總之 不能隨意的給指標指定乙個位址。例2 下面這個程式在哪一行會崩潰?struct s int ...

「大型票務系統」中對機器惡意訪問的處理 驗證碼

討論請移步至 今天你買到票了嗎?從鐵道部12306.cn 漫談電子商務 的 海量事務高速處理 系統 不能簡單套用 實物電商系統 對 大型票務系統 做需求分析 大型票務系統 和 實物電商系統 在不能提供商品 服務 時給消費者帶來的影響有巨大差異 大型票務系統 和 實物電商系統 的系統邊界之間的區別與聯...