이것은 Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 제공업체에서 실행할 수 있는 queue_splitter3 명령입니다.
프로그램:
이름
queue_splitter3 - 한 대기열에서 여러 대상으로 이벤트를 전송하는 PgQ 소비자
꼬리
개요
queue_splitter3 [스위치] config.ini
기술
queue_spliter는 소스 큐에서 여러 대상으로 이벤트를 전송하는 PgQ 소비자입니다.
대기열. 각 이벤트의 ev_extra1 필드는 어떤 대상 큐에 들어가야 하는지 보여줍니다.
(pgq.logutriga()는 거기에 테이블 이름을 넣습니다.)
한 가지 사용 사례는 OLTP 데이터베이스에서 일괄 처리 서버로 이벤트를 이동하는 것입니다. 사용하여
큐 스플리터 하나로 일괄 처리를 위한 모든 종류의 이벤트 이동 가능
따라서 소비자는 OLTP 데이터베이스를 덜 혼잡하게 유지합니다.
빠른 시작
기본 queue_splitter 설정 및 사용법은 다음 단계로 요약할 수 있습니다.
1. pgq는 소스 및 대상 데이터베이스 모두에 설치되어야 합니다. 자세한 내용은 pgqadm 매뉴얼 페이지를 참조하십시오.
세부. 대상 데이터베이스에는 pgq_ext 스키마도 설치되어 있어야 합니다.
2. queue_splitter 구성 파일을 편집합니다.
queue_splitter_sourcedb_sourceq_targetdb.ini
3. 소스 및 대상 큐 생성
$ pgqadm.py ticker.ini 생성
4. 데몬 모드에서 큐 스플리터 실행
$ queue_splitter3 queue_splitter_sourcedb_sourceq_targetdb.ini -d
5. 이벤트 생성 및 소비 시작
구성
공통의 구성 매개 변수
직업 이름
스크립트가 수행하는 특정 작업의 이름입니다. 스크립트는 이 이름으로 로그인합니다.
로그DB/로그서버. 이 이름은 PgQ 소비자 이름의 기본값으로도 사용됩니다. 그것은해야한다
독특한.
PID 파일
pid 파일의 위치. 지정하지 않으면 스크립트가 데몬화할 수 없습니다.
로그 파일
로그 파일의 위치입니다.
루프_지연
프로세스를 계속 실행하는 경우 각 작업 루프 이후에 절전 모드로 전환되는 시간(초)입니다.
기본값 : 1.
연결_평생
이전 데이터베이스 연결을 닫고 다시 연결합니다.
use_skylog
푸.
공통의 PgQ 소비자 매개 변수
대기열_이름
연결할 대기열 이름입니다. 기본값이 없습니다.
소비자 이름
등록 시 사용할 소비자 ID입니다. 기본값: %(job_name)s
queue_splitter 매개 변수
src_db
소스 데이터베이스.
dst_db
대상 데이터베이스.
예시 설정 파일
[queue_splitter3]
작업 이름 = queue_spliter_sourcedb_sourceq_targetdb
src_db = DB이름=소스DB
dst_db = 데이터베이스 이름=대상 데이터베이스
pgq_queue_name = 소스Q
로그 파일 = ~/로그/%(job_name)s.log
PID 파일 = ~/피드/%(작업 이름)s.pid
COMMAND LINE 스위치
다음 스위치는 모든 skytools.DBScript 기반 Python 프로그램에 공통입니다.
-h, --도움말
도움말 메시지를 표시하고 종료
-q, --조용한
프로그램을 무음으로 만들기
-v, --자세한
프로그램을 더 장황하게 만들기
-d, --데몬
프로그램을 배경으로 만들기
--ini
주석이 달린 템플릿 구성 파일을 표시합니다.
다음 스위치는 이미 실행 중인 프로세스를 제어하는 데 사용됩니다. pidfile은 다음에서 읽습니다.
config 그런 다음 신호가 거기에 지정된 프로세스 ID로 전송됩니다.
-r, --다시 로드
구성 다시 로드(SIGHUP 전송)
-s, --중지
프로그램을 안전하게 중지(SIGINT 전송)
-k, --킬
즉시 프로그램 종료(SIGTERM 전송)
유스케이스
큐가 여러 개 있지만 하나만 있는 보조 데이터베이스에서 생성된 이벤트를 처리하는 방법
기본 데이터베이스의 하나의 큐. 이것은 또한 이벤트를 큐에 삽입하는 방법을 보여줍니다.
일반 SQL을 쉽게.
CREATE SCHEMA 대기열;
CREATE TABLE queue.event1(
-- 이벤트 내부 구조와 일치해야 합니다.
-- 여기에서 올바른 데이터가 대기열에 들어가는지 확인할 수 있습니다.
아이디 int4,
이름 텍스트,
-- 필요하지 않지만 있으면 좋습니다.
기본 키(id)
);
-- 데이터를 urlencoded 형식으로 큐에 넣고 실제 삽입은 건너뜁니다.
CREATE TRIGGER redirect_queue1_trg BEFORE ON queue.event1 삽입
각 행 실행 절차 pgq.logutriga('singlequeue', 'SKIP');
-- event2에 대해 위의 내용을 반복합니다.
-- 이제 데이터를 삽입할 수 있습니다.
INSERT INTO queue.event1(ID, 이름) VALUES(1, '사용자');
queue_splitter가 "singlequeue"에 있으면 대상의 이벤트를 큐로 퍼뜨립니다.
"queue.event1", "queue.event2" 등으로 이름이 지정됩니다. 이렇게 하면 기본 데이터베이스의 PgQ 로드가 최소화됩니다.
CPU 측면과 유지 보수 측면 모두.
01/15/2016 QUEUE_SPLITTER3(1)
onworks.net 서비스를 사용하여 온라인으로 queue_splitter3 사용