2010-07-21 5 views
1

소프트웨어 및 하드웨어 상호 작용으로 구성된 시스템을 개발했습니다. 기본적으로 트랜잭션 세부 정보가 PCI 장치에서 암호화 된 트랜잭션 시스템이 웹 기반 시스템으로 돌아와 DB에 저장되고 브라우저에서 javascript/extjs를 사용하여 표시됩니다.메시징 및 큐용 미들웨어 시스템에 대한 도움이 필요합니다

1. 사용자가 그리드 후 프레스 "인코딩"버튼을 ExtJS /의 JS을에서 트랜잭션을 선택

거래 인코딩 과정 PHP 곳을에 문자열을 보냅니다 : 나는이 작업을 수행하는 방법 지금은 다음 것은 형식이 지정되고 [incoming_request] 요청에 삽입됩니다. 이 단계에서 extjs taskmanager를 실행하여 결과에 대한 요청 [응답] 열의 간격 검사를 수행하고 "please wait ..."메시지를 표시합니다.

2. 요청 테이블에서 인코딩 할 트랜잭션을 모니터링하는 python 데몬 서비스를 만들었습니다. 그러면 python 데몬은 모든 요청 [incoming_request]을 가져온 다음 요청을 인코딩하고 결과를 요청 [응답] 테이블에 저장합니다.

3. extjs taskmanager는 트랜잭션에 대한 요청 [응답]을 선택하여 사용자에게 표시 한 다음 "please wait ..."메시지를 제거하고 taskmanager를 종료합니다.

제 질문은 다음과 같습니다. 타사 메시징 및 대기열 미들웨어 시스템을 사용하여이 암호화 프로세스를 수행하는 더 좋은 방법이 있습니까? 그렇다면 도움을주십시오.

감사합니다!

답변

0

나는 이런 식으로 바꿀 것 :

  • 메이크업의 PHP 블록을 파이썬 데몬이 Ext.data.Connection (의 제한 시간을 증가 트랜잭션
  • 처리를 완료 할 때까지 기다려야) 그래서 PHP 때까지 기다릴 것
  • 는 Ext.data.Connection()

IE에서 콜백 핸들러에서 가능한 오류를 Ext.MessageBox을 제거하고 처리 응답한다 자바 스크립트 (웹 서버에 대한 호출이 여러 번 필요함)에서 트랜잭션이 완료되기를 기다리는 대신 PHP에서 기다리고 있습니다.

Ext.data.Connection()을 사용하여 PHP 처리기를 호출한다고 가정합니다. 다른 Ext 개체가 사용되는 경우 원칙은 동일하지만 시간 초과 설정/완료 처리가 다를 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 코드가 올바르게 작동하는지 확인하기 위해 변경 작업을 수행 할 것입니다. 이 방법에 대한 예제를 알려 주실 수 있습니다. 1. PHP 블록을 작성하고 파이썬 데몬이 트랜잭션 처리를 마칠 때까지 기다리십시오. >>> 데몬은 기본적으로 결과 테이블로 내 요청 테이블을 업데이트합니다. – Chez

+0

동일한 PHP 핸들러에서 요청을 삽입 한 후 대기열에 요청을 삽입하면 응답이 사용 가능할 때까지 (또는 시간 초과에 도달 할 때까지) 기다려야합니다. 기본적으로 루프에서 sleep (1)과 같은 무한 루프를 실행하고 응답의 사용 가능 여부를 확인하십시오. 이것은 본질적으로 응답이 가능할 때까지 PHP 요청을 "차단"합니다. 응용 프로그램의 규모에 따라 현재보다 많은 동시 세션을 지원하도록 웹 서버를 구성해야 할 수 있습니다. 우리는 10-20과 같이 100 명의 사용자를 말합니다. – m1tk4

관련 문제