این دستور queue_splitter3 است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
queue_splitter3 - مصرف کننده PgQ که رویدادها را از یک صف به چندین هدف منتقل می کند
دم
خلاصه
queue_splitter3 [سوئیچ] config.ini
شرح
queue_spliter مصرف کننده PgQ است که رویدادها را از صف منبع به چندین هدف منتقل می کند
صف ها فیلد ev_extra1 در هر رویداد نشان می دهد که باید در کدام صف هدف قرار گیرد.
(pgq.logutriga() نام جدول را در آنجا قرار می دهد.)
یکی از موارد استفاده انتقال رویدادها از پایگاه داده OLTP به سرور پردازش دسته ای است. با استفاده از
صف تقسیم کننده امکان جابجایی انواع رویدادها برای پردازش دسته ای با یک وجود دارد
مصرف کننده بنابراین پایگاه داده OLTP را کمتر شلوغ نگه می دارد.
شروع سریع
راه اندازی و استفاده اولیه queue_splitter را می توان با مراحل زیر خلاصه کرد:
1. pgq باید هم در پایگاه داده منبع و هم در پایگاه داده نصب شود. به صفحه man 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. شروع به تولید و مصرف رویدادها کنید
پیکربندی کنید
مشترک پیکر بندی پارامترهای
اسم شغل
نام برای کار جزئی که اسکریپت انجام می دهد. اسکریپت با این نام وارد می شود
logdb/logserver. این نام همچنین به عنوان پیش فرض برای نام مصرف کننده PgQ استفاده می شود. باید باشد
منحصر به فرد.
pidfile
مکان برای فایل pid. اگر اسکریپت داده نشود، اسکریپت غیر مجاز است.
ورود به سیستم فایل
محل فایل لاگ.
loop_delay
در صورت اجرای مداوم فرآیند، مدت زمان خواب بعد از هر حلقه کاری، در چند ثانیه.
پیش فرض: 1
اتصال_طول عمر
اتصالات پایگاه داده قدیمی را ببندید و دوباره وصل کنید.
use_skylog
فو
مشترک PgQ مصرف کننده پارامترهای
queue_name
نام صف برای پیوست کردن. بدون پیش فرض
نام مصرف کننده
شناسه مصرف کننده برای استفاده در هنگام ثبت نام. پیش فرض: %(job_name)s
queue_splitter پارامترهای
src_db
پایگاه داده منبع
dst_db
پایگاه داده هدف
مثال پیکربندی پرونده
[queue_splitter3]
job_name = queue_spliter_sourcedb_sourceq_targetdb
src_db = dbname=sourcedb
dst_db = dbname=targetdb
pgq_queue_name = sourceq
لاگ فایل = ~/log/%(job_name)s.log
pidfile = ~/pid/%(job_name)s.pid
COMMAND LINE سوئیچ ها
سوئیچ های زیر برای همه برنامه های skytools.DBScript مبتنی بر پایتون مشترک هستند.
-h، --کمک
نمایش پیام راهنما و خروج
-q، --آرام
برنامه را بی صدا کنید
-v، -- پرحرف
برنامه را پرمخاطب تر کنید
-d، --daemon
برنامه را به پسزمینه تبدیل کنید
-اینتی
نمایش فایل پیکربندی قالب نظر داده شده
سوئیچ های زیر برای کنترل فرآیند در حال اجرا استفاده می شوند. pidfile از خوانده می شود
config سپس سیگنال به شناسه پردازش مشخص شده در آنجا ارسال می شود.
-r، - بارگذاری مجدد
بارگیری مجدد پیکربندی (ارسال SIGHUP)
-s، --stop
توقف ایمن برنامه (ارسال SIGINT)
-k، --کشتن
برنامه را بلافاصله بکش (ارسال SIGTERM)
USECASE
نحوه پردازش رویدادهای ایجاد شده در پایگاه داده ثانویه با چندین صف اما فقط
یک صف در پایگاه داده اولیه این همچنین نحوه درج رویدادها را در صفها نشان میدهد
SQL معمولی به راحتی.
ایجاد صف SCHEMA.
CREATE TABLE queue.event1 (
-- این باید با ساختار داخلی رویداد مطابقت داشته باشد
- در اینجا می توانید چک کنید که داده های صحیح در صف قرار داده شده است
id int4،
متن نام،
-- لازم نیست، اما خوب است:
کلید اصلی (ID)
);
- داده ها را در صف با فرمت urlencoded قرار دهید، از درج واقعی صرفنظر کنید
ایجاد TRIGGER redirect_queue1_trg قبل از درج در queue.event1
برای هر ردیف روند اجرای pgq.logutriga('singlequeue', 'SKIP');
- موارد بالا را برای event2 تکرار کنید
-- اکنون داده ها را می توان درج کرد:
INSERT INTO queue.event1 (id, name) VALUES (1, 'user');
اگر queue_splitter روی "singlequeue" قرار گیرد، رویداد را در هدف به صف پخش می کند.
به نام "queue.event1"، "queue.event2"، و غیره. این بار PgQ را در پایگاه داده اولیه به حداقل می رساند.
هم از نظر CPU و هم از نظر نگهداری.
01/15/2016 QUEUE_SPLITTER3(1)
با استفاده از خدمات onworks.net از queue_splitter3 به صورت آنلاین استفاده کنید