2010-04-14 2 views
1

항상 실행중인 변수를 지속적으로 업데이트하는 명령 줄에서 PHP 스크립트를 실행하고 싶습니다.실행중인 PHP cli 스크립트 폴링

나는 그때까지 (그럴 필요는 없지만 반드시 웹에서 실행되는) PHP 스크립트가 언제든지 해당 변수를 읽을 수 있기를 원합니다.

누구든지이 작업을 수행 할 수 있습니다.

감사합니다.

+0

나는 단지 Redis를 사용할 것입니다. RPC를 사용하여 CLI와 웹 스크립트간에 더 많은 통신을 수행 할 수있는 빠르고 간편한 기능. – Xatoo

답변

1

여기에서 어떤 종류의 프로세스 간 의사 소통 메카니즘이 필요합니다.

PHP 변수를 사용할 수 없습니다. 이들은 스크립트의 로컬 위치이며입니다. 당신은 단지 몇 가지 이야기에, 당신의 데이터 등을 저장하기 위해 약간의 "외부"도구를 사용해야합니다 의미

:

  • 파일
  • 데이터베이스 (SQLite는, MySQL은, ...)
  • 일부 shared-memory 각각의 경우에 세그먼트

, 당신은해야합니다 :

데이터 저장 공간에 기록
  • 한 스크립트 - 데이터 - 저장소에서 읽 첫 항상 실행 스크립트, 즉
  • 하나 또는 여러 다른 스크립트는
+0

나 한테 이길 거 알아 :) – David

0

CLI 스크립트를 사용하여 파일에 변수를 쓰고 다른 스크립트와 함께 변수를 읽어야합니다.

경쟁 조건을 방지하려면 flock을 사용해야합니다.

+0

어떤 상황에서는 무리에 의지 할 수 없습니다. 자세한 내용은 php.net을 참조하십시오. – Ron

0

당신은 PHP 소켓을 작성할 수 있습니다 기반 서버 스크립트는 원하는 포트에서 수신 대기합니다. 기사 here을 찾으십시오. 그런 다음 클라이언트 PHP 스크립트를 로컬 또는 웹에서 연결할 수 있으며 변수를 포함한 모든 데이터를 검색 할 수 있습니다. 사용자가 고안하거나 XML과 같이 잘 알려진 프로토콜을 사용하여 변수를 전송할 수 있습니다. 아이디어의의

0

로트 : 설정 간격으로

  1. 이 /가 파일에 기록 추가합니다.
  2. sqlite를 사용하여 데이터를 작성합니다.
  3. 귀하의 중개인으로 작은 memcached 서비스를 사용하십시오.
  4. 다소 괴상하고 소켓 클래스를 작성하고 설정된 포트에서 수신 한 다음 비 차단 호출을 통해 확인합니다.

1-2는 값 많이 4 재미있을 것를 조회해야하는 경우가 (3)이 잘 작동 할 간단한 아마,하지만 노력이 가치가되지 않을 수 있습니다.