라이브러리

[PHP] GearmanWorker::setTimeout - 소켓 I/O 활동 시간 초과 설정




GearmanWorker::setTimeout은 GearmanWorker 클래스의 메소드 중 하나로, 작업을 수행하는 데 필요한 시간을 설정하는 데 사용됩니다. GearmanWorker는 PHP에서 사용할 수 있는 분산 작업 처리 시스템인 Gearman을 사용하여 작업을 분산 처리할 수 있습니다.

GearmanWorker::setTimeout을 사용하여 작업을 수행하는 데 필요한 시간을 설정하면, GearmanWorker는 작업이 완료되는 시간을 기다릴 수 있습니다. 만약 작업이 완료되지 않는다면, GearmanWorker는 작업을 다시 시도하거나 작업을 취소할 수 있습니다.

예제


다음 예제는 GearmanWorker::setTimeout을 사용하여 작업을 수행하는 데 필요한 시간을 설정하는 방법을 보여줍니다.

#hostingforum.kr
php

// GearmanWorker를 생성합니다.

$worker = new GearmanWorker();



// GearmanWorker를 초기화합니다.

$worker->addServer('localhost', 4730);



// 작업을 등록합니다.

$worker->addFunction('my_function', 'my_function_handler');



// 작업을 수행하는 데 필요한 시간을 설정합니다.

$worker->setTimeout(10); // 10초



// 작업을 수행합니다.

$job = $worker->work();



// 작업이 완료되면, 작업의 결과를 출력합니다.

if ($job !== NULL) {

    echo "Job ID: " . $job->jobHandle . "
";

    echo "Job Result: " . $job->data . "
";

} else {

    echo "No jobs found
";

}



// my_function_handler 함수는 작업을 수행하는 데 필요한 함수입니다.

function my_function_handler($job) {

    // 작업을 수행하는 코드를 입력합니다.

    // 예를 들어, 작업을 수행하는 데 5초가 걸린다면, sleep(5)을 호출합니다.

    sleep(5);

    return "Job Result";

}



setTimeout의 사용법


GearmanWorker::setTimeout을 사용하는 방법은 다음과 같습니다.

1. GearmanWorker를 생성합니다.
2. GearmanWorker를 초기화합니다.
3. 작업을 등록합니다.
4. 작업을 수행하는 데 필요한 시간을 설정합니다. (`$worker->setTimeout($seconds);`)
5. 작업을 수행합니다.
6. 작업이 완료되면, 작업의 결과를 출력합니다.

setTimeout의 옵션


GearmanWorker::setTimeout에는 다음과 같은 옵션이 있습니다.

* `$seconds`: 작업을 수행하는 데 필요한 시간을 설정합니다. (기본값: 0)
* `$mode`: 작업을 수행하는 데 필요한 시간을 설정하는 모드를 지정합니다. (기본값: `GEARMAN_TIMEOUT_MODE_DEFAULT`)

setTimeout의 예외


GearmanWorker::setTimeout에는 다음과 같은 예외가 있습니다.

* `GEARMAN_TIMEOUT_MODE_DEFAULT`: 작업을 수행하는 데 필요한 시간을 설정하는 기본 모드입니다.
* `GEARMAN_TIMEOUT_MODE_STRICT`: 작업을 수행하는 데 필요한 시간을 설정하는 엄격한 모드입니다. 만약 작업이 완료되지 않는다면, 작업을 취소합니다.

setTimeout의 참고사항


GearmanWorker::setTimeout은 작업을 수행하는 데 필요한 시간을 설정하는 데 사용됩니다. 만약 작업이 완료되지 않는다면, 작업을 다시 시도하거나 작업을 취소할 수 있습니다. 작업을 수행하는 데 필요한 시간을 설정하는 데 사용되는 모드는 `GEARMAN_TIMEOUT_MODE_DEFAULT` 또는 `GEARMAN_TIMEOUT_MODE_STRICT`입니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 534 페이지

검색

게시물 검색