













# 设置redis锁防止重复提交
echo '我是:' . $_POST['name'] . PHP_EOL;
$data = [1,2,3,4,5,6,7,8,9,10];
$wait_deal_list = [];
foreach ($data as $val){
# 设置redis锁防止重复提交
$data['order_id'] = $val;
$unique_key = 'ORDER_ID_' . $data['order_id'];
$key_rst = $this->redis->get($unique_key);
if ($key_rst) {
echo date('Y-m-d H:i:s') . ' 未获取到,别人在使用,等待中...' . $key_rst . PHP_EOL;
$wait_deal_list[] = $val;
continue;
}else{
echo date('Y-m-d H:i:s') . ' 取到空锁' . $key_rst;
$this->redis->save($unique_key, $data['order_id'], 60);
echo '自己加锁成功,正在处理数据:' . $val . PHP_EOL;
sleep(2);
$del_rst = $this->redis->delete($unique_key);
echo date('Y-m-d H:i:s') . ' 释放锁' . $del_rst . PHP_EOL;
}
# 设置redis锁防止重复提交
}
echo '待处理数据:' . implode(',', $wait_deal_list);
exit();
# 设置redis锁防止重复提交
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。