一个PHP程序,同一时刻被请求多次,怎么让它只运行一次?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个PHP程序,同一时刻被请求多次,怎么让它只运行一次?相关的知识,希望对你有一定的参考价值。

一个php程序,访问运行后会发邮件。
另外有一个监控程序会每隔15分钟自动去监控访问一次,但这监控程序是每次同时产生四次访问,所以每次就会同时收到4封邮件。
我想四次访问只运行一次就行了,但监控程序动不了必须是同时四次,所以只能修改PHP程序。
这四次访问是几乎同时产生的,试过让程序写在数据库里去判断第一次访问有效,都没用,不知道还有什么办法?

session加sleep(随机变量)可以解决.不过可能是走弯路了.只给你一个思想
<?php

session_start
给定一个随机数,具体范围自己定
sleep(随机数)//不宜过大
if(!$_SESSION[ ])
写session
else
return就好了
参考技术A 用session,记录就行了 参考技术B 记录监控程序的访问ip。追问

IP经常会换

追答

那说明写的时候没有考虑到同时访问的情况,如果不能完善的话,就修改发邮件那一块的判断机制

参考技术C session追问

请说具体一点,用session来具体怎么操作?

追答

记录第一次访问的时间戳,在4秒内只执行一次

追问

4次访问是同时产生的,所以时间戳都是一样的

追答

先试试再说

按钮加了长按手势,每次长按,手势事件都连续执行多次怎么办,我想让它只执行一次

参考技术A 最简单的就是加一个标示,比如一个int为1的时候执行,后面直接return 参考技术B 楼上版主对头,在长按手势里面加上状态的判断就可以了~~ 参考技术C [mw_shl_code=c,true]-(void)handlePress:(UILongPressGestureRecognizer *)sender if (sender.state == UIGestureRecognizerStateBegan) //TODO:}}[/mw_shl_code]

以上是关于一个PHP程序,同一时刻被请求多次,怎么让它只运行一次?的主要内容,如果未能解决你的问题,请参考以下文章

Python内怎么使同一个.py文件多次运行?

同一个php请求中处理多次mysql查询,如何保证数据库连接的唯一?

Restkit + Objective-c - 多次调用同一个 Web 服务

一次PHP面试经历

并发和并行

bootstrap中的日期插件datetimepicker,怎么设置让它只到年月日