折腾了一个礼拜,终于把任务给提交了;上面给我的任务是在linux下实现定时任务和自动任务,这个定时任务和自动任务有可能会发生并发,所以不得不考虑多线程。我在网上也找了很多资料貌似不符合我的需求,最后结合前辈的智慧和自己的专研,还是实现了;
public function testa() {
$id = $_REQUEST['id'];
for($i=0;$iadd($data);
}
public function testb() {
$id = $_REQUEST['id'];
$time = time();
$data['time'] = $time;
M('test')->add($data);
}
php本生是不支持多线程的,如果想要上面2个方法执行的时间相同,我采用了curl,一下是curl并行这2个方法的代码
本部分设定了隐藏,您已回复过了,以下是隐藏的内容
//加载一个多进程CURL实例
$mh = curl_multi_init();
$handles = array();
$array=array("localhost:1001/index.php/test/testa","localhost:1001/index.php/test/testb");
foreach($array as $k=>$v)
{
// 创建一个单线程CURL实例
$ch = curl_init();
// 设置CURL相关参数
curl_setopt($ch, CURLOPT_URL, $v);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
// 将该进程加载到实例中
curl_multi_add_handle($mh,$ch);
// 加入循环数组中
$handles[] = $ch;
}
// 执行CURL多线程实例
$running=null;
do
{
curl_multi_exec($mh,$running);
// 间隔0.25S
//usleep (250000);
} while ($running > 0);
// 获取采集内容
for($i=0;$i
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com