본문 바로가기

안돼니? 야 나두

php 백그라운드, Thread, 실행타임, 세션타임

1. php 백그라운드 프로그램 실행

php 는 순차적으로 프로그램이 실행된다.
때문에 하나의 프로그램에서 백그라운드 프로그램 실행은 어렵다.
대안으로는 리눅스에 php가 설치된 경우 다른 비지니스를 처리하는 php 프로그램을
외부 명령어(shell)로 실행하는 방법이 있다. (서버 권한 필요)

 

2. Thread

php는 쓰레드를 지원한다. (php 5.3 이상)

pthread 설치 및 Thread Safety 상태여야 한다.

 

pthreads releases are hosted by PECL and the source code by » github, the easiest route to installation is the normal PECL route: » https://pecl.php.net/package/pthreads.

Windows users can download prebuilt release binaries from the » PECL website.

Caution

Windows users need to take the additional step of adding pthreadVC2.dll (distributed with Windows releases) to their PATH.

 

3. php 타임아웃

작업 처리 과정에서 루프로 인한 시간 초과를 하거나 작업상 지정 시간이 길어질 경우
타임아웃 에러가 발생된다.

php.ini 에서 max_execution_time 설정이 가능하고
또한, php.ini safe_mode가 on 상태라면
php코드에서 set_time_limit() 함수를 통해 연장 가능하다.
(예, max_execution_time(1200) + set_time_limit(100) = 1300)

 

4. Session

 session.gc_maxlifetime 에서 시간 설정

<?php session_start(); ?> // session 사용

  • session_abort — Discard session array changes and finish session
  • session_cache_expire — 현재 캐시 만료를 반환
  • session_cache_limiter — 현재 캐시 한정을 얻거나 설정
  • session_commit — 별칭: session_write_close
  • session_create_id — Create new session id
  • session_decode — 문자열에서 세션 데이터를 해독
  • session_destroy — 세션에 등록된 모든 데이터 파괴
  • session_encode — 현재 세션 데이터를 문자열로 인코드
  • session_gc — Perform session data garbage collection
  • session_get_cookie_params — 세션 쿠키 인수를 얻습니다
  • session_id — 현재 세션 id를 얻거나 설정
  • session_is_registered — 전역 변수가 세션에 등록되었는지 확인
  • session_module_name — 현재 세션 모듈을 얻거나 설정
  • session_name — 현재 세션 이름을 얻거나 설정
  • session_regenerate_id — 현재 세션 id를 새로 생성해서 갱신
  • session_register_shutdown — Session shutdown function
  • session_register — 하나 이상의 전역 변수를 현재 세션에 등록
  • session_reset — Re-initialize session array with original values
  • session_save_path — 현재 세션 저장 경로를 얻거나 설정
  • session_set_cookie_params — 세션 쿠키 인수 설정
  • session_set_save_handler — 사용자 단계 세션 저장 함수 설정
  • session_start — 세션 데이터 초기화
  • session_status — Returns the current session status
  • session_unregister — 현재 세션에셔 전역 변수를 등록 해제
  • session_unset — 모든 세션 변수 해제
  • session_write_close — 세션 데이터를 쓰고 세션 종료