php教程 php手册 一定并发量下,在硬盘上写入文件

一定并发量下,在硬盘上写入文件

Jun 06, 2016 pm 07:39 PM
http 쓰다 경쟁 상대 문서 하드디스크

参考了http://www.phpernote.com/php-function/929.html这篇文章的一些东西。 主要是应对,在有一定并发量的情况下,日志文件向磁盘上写入的问题。 其实fopen或fclose也会偶尔存在失败的情况,但这里没有对这个操作进行异常处理。 ?php/** * Created by PhpS

参考了http://www.phpernote.com/php-function/929.html这篇文章的一些东西。
主要是应对,在有一定并发量的情况下,日志文件向磁盘上写入的问题。
其实fopen或fclose也会偶尔存在失败的情况,但这里没有对这个操作进行异常处理。

<?php
/**
 * Created by PhpStorm.
 * User: 20779182@qq.com
 * Date: 15/10/22
 * Time: 下午5:12
 */

function write_log($log_content)
{
    $log_file = '/logs/error.log';

    if(is_file($log_file)) {
        // 检测log文件大小,将每个log文件控制在2m以内
        $log_filesize = filesize($log_file);
        $max_size = 2 * 1024 * 1024; // 可以接受的最大的文件大小
        if($log_filesize >= $max_size) {
            $new_log_file = '/logs/error_' . date('YmdHis') . '.log';
            rename($log_file, $new_log_file);
        }
    }

    $fp=fopen($log_file,'a+');
    if($fp){
        $startTime=microtime();
        do{
            // 这个循环可以保证进程在尝试1m后,如果未能锁定文件,则放弃写入日志的操作
            $canWrite=flock($fp,LOCK_EX);
            if(!$canWrite){
                usleep(round(rand(0,100)*1000));
            }
        }while((!$canWrite)&&((microtime()-$startTime)<1000));
        if($canWrite){
            $content = date('Y-m-d H:i:s') . ' ' . $log_content . "\r\n";
            fwrite($fp,$content);
        }
        fclose($fp);
    }
}
로그인 후 복사

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Java 기능의 동시성과 멀티스레딩이 어떻게 성능을 향상시킬 수 있습니까? Java 기능의 동시성과 멀티스레딩이 어떻게 성능을 향상시킬 수 있습니까? Apr 26, 2024 pm 04:15 PM

Java 기능을 사용하는 동시성 및 멀티스레딩 기술은 다음 단계를 포함하여 애플리케이션 성능을 향상시킬 수 있습니다. 동시성 및 멀티스레딩 개념을 이해합니다. ExecutorService 및 Callable과 같은 Java의 동시성 및 멀티스레딩 라이브러리를 활용합니다. 멀티 스레드 행렬 곱셈과 같은 실습 사례를 통해 실행 시간을 대폭 단축할 수 있습니다. 동시성 및 멀티스레딩을 통해 향상된 애플리케이션 응답 속도와 최적화된 처리 효율성의 이점을 누려보세요.

Golang API 디자인에 동시성 및 코루틴 적용 Golang API 디자인에 동시성 및 코루틴 적용 May 07, 2024 pm 06:51 PM

동시성과 코루틴은 GoAPI 설계에서 다음을 위해 사용됩니다. 고성능 처리: 성능 향상을 위해 여러 요청을 동시에 처리합니다. 비동기 처리: 코루틴을 사용하여 작업(예: 이메일 보내기)을 비동기적으로 처리하고 메인 스레드를 해제합니다. 스트림 처리: 코루틴을 사용하여 데이터 스트림(예: 데이터베이스 읽기)을 효율적으로 처리합니다.

Kingston NV3 M.2 SSD는 중국에서 판매 중입니다: 옵션 512G-2TB, 읽기 속도 5000MB/s, 319위안부터 시작 Kingston NV3 M.2 SSD는 중국에서 판매 중입니다: 옵션 512G-2TB, 읽기 속도 5000MB/s, 319위안부터 시작 Aug 12, 2024 pm 01:36 PM

8월 12일 이 사이트의 뉴스에 따르면 Kingston NV3M.2 SSD는 현재 JD.com에서 판매되고 있습니다. SSD는 512GB(500GB)/1TB/2TB 버전으로 제공됩니다(4TB 버전은 출시되지 않음). 주요 읽기 속도는 5000MB/s입니다. 웹사이트에서 수집한 가격 정보는 다음과 같습니다: 512GB: 319위안 1TB: 449위안 2TB: 929위안 Kingston NV3는 노트북에 적합한 단면 M.22280 크기를 채택하고 PCIe4가 장착되어 있습니다. 0x4 컨트롤러를 사용하는 경우 이 웹사이트의 읽기 및 쓰기 속도는 다음과 같습니다. 512GB: 5000 /3000MB/s1TB: 6000/4000MB/s2TB: 6000/5000MB/s Kingston은 NV3 SSD에 대해 3년 제한 보증을 제공합니다.

C++를 사용하여 HTTP 스트리밍을 구현하는 방법은 무엇입니까? C++를 사용하여 HTTP 스트리밍을 구현하는 방법은 무엇입니까? May 31, 2024 am 11:06 AM

C++에서 HTTP 스트리밍을 구현하는 방법은 무엇입니까? Boost.Asio 및 asiohttps 클라이언트 라이브러리를 사용하여 SSL 스트림 소켓을 생성합니다. 서버에 연결하고 HTTP 요청을 보냅니다. HTTP 응답 헤더를 수신하고 인쇄합니다. HTTP 응답 본문을 수신하여 인쇄합니다.

Go 언어 파일 이름 바꾸기 작업에 대한 전체 분석 Go 언어 파일 이름 바꾸기 작업에 대한 전체 분석 Apr 08, 2024 pm 03:30 PM

os.Rename 함수는 Go 언어에서 파일 이름을 바꾸는 데 사용됩니다. 구문은 funcRename(oldpath,newpathstring)error입니다. 이 함수는 oldpath로 지정된 파일의 이름을 newpath로 지정된 파일로 바꿉니다. 예를 들어 간단한 이름 바꾸기, 파일을 다른 디렉터리로 이동, 오류 처리 무시 등이 있습니다. 이름 바꾸기 기능은 원자성 작업을 수행하며 두 파일이 동일한 디렉터리에 있는 경우에만 디렉터리 항목을 업데이트할 수 있습니다. 볼륨 전체에서 또는 파일이 사용 중인 동안에는 이름 바꾸기가 실패할 수 있습니다.

단위 테스트 Go 동시 기능 가이드 단위 테스트 Go 동시 기능 가이드 May 03, 2024 am 10:54 AM

단위 테스트 동시 기능은 동시 환경에서 올바른 동작을 보장하는 데 도움이 되므로 매우 중요합니다. 동시 기능을 테스트할 때는 상호 배제, 동기화, 격리와 같은 기본 원칙을 고려해야 합니다. 동시 기능은 경쟁 조건을 시뮬레이션하고, 테스트하고, 결과를 확인하여 단위 테스트할 수 있습니다.

Java 데이터베이스 연결은 트랜잭션과 동시성을 어떻게 처리합니까? Java 데이터베이스 연결은 트랜잭션과 동시성을 어떻게 처리합니까? Apr 16, 2024 am 11:42 AM

트랜잭션은 원자성, 일관성, 격리 및 내구성을 포함한 데이터베이스 데이터 무결성을 보장합니다. JDBC는 Connection 인터페이스를 사용하여 트랜잭션 제어(setAutoCommit, 커밋, 롤백)를 제공합니다. 동시성 제어 메커니즘은 데이터 불일치를 방지하기 위해 트랜잭션 격리를 달성하기 위해 잠금 또는 낙관적/비관적 동시성 제어를 사용하여 동시 작업을 조정합니다.

Movesu, 터치 스크린 내장, 읽기 속도 1050MB/s, 1TB 가격 1,299위안인 ST10 모바일 하드 드라이브 출시 Movesu, 터치 스크린 내장, 읽기 속도 1050MB/s, 1TB 가격 1,299위안인 ST10 모바일 하드 드라이브 출시 Aug 23, 2024 pm 10:32 PM

8월 23일 이 웹사이트의 소식에 따르면 모바일 속도는 오늘 JD.com에서 ST10 모바일 하드 드라이브를 출시했습니다. 이 하드 드라이브는 터치 스크린, 읽기 속도 1050MB/s, 1TB 용량을 제공하며 가격은 1,299위안입니다. 보도에 따르면 이 모바일 하드 드라이브는 전면에 터치 스크린이 있으며, 사용자는 터치 스크린을 통해 하드 드라이브의 상태를 실시간으로 확인할 수 있으며, 하드 드라이브 암호화/잠금 해제도 지원합니다. 사양 측면에서 모바일 하드 드라이브 쉘은 아연 합금으로 만들어졌으며 "3D NAND 플래시" 플래시 메모리 입자를 사용하고 USB-C3.2Gen2 인터페이스를 사용하며 읽기 속도는 1050MB/s, 쓰기 속도는 900MB/s입니다. 에스. 이 사이트에 첨부된 하드 드라이브 매개변수는 다음과 같습니다.

See all articles