استفاده از صف‌ها برای همگام‌سازی

مورد استفاده

فرض کنید نیاز دارید منطق "شمارنده" را با استفاده از موتور قوانین ThingsConnect پیاده‌سازی کنید. به‌طور کلی، پردازش پیام به‌صورت ناهمزمان درون نودهای قوانین انجام می‌شود. به‌دلیل این واقعیت، در اکثر موارد، منطق "دریافت مقدار شمارنده فعلی -> افزودن مقدار شمارنده جدید -> ذخیره مقدار شمارنده" به نتیجه نهایی نادرست (برخلاف انتظارات شما) منجر می‌شود به‌دلیل مشکل شرایط رقابتی. این مشکل برای همه کسانی که با برنامه‌نویسی چند رشته‌ای سر و کار داشته‌اند، مشکل شناخته شده‌ای است. می‌توانید به این مقاله مراجعه کنید که به‌خوبی مشکل و راه‌حل‌های موجود را توصیف می‌کند. از نسخه ۲.۵ ThingsConnect به بعد، این مشکل پردازش می‌تواند با استفاده از صف‌های پیکربندی‌شده خاص حل شود.

در این آموزش، ما موتور قوانین ThingsConnect را برای استفاده از صف با استراتژی ارسال پیام ترتیبی بر اساس مبدأ پیکربندی خواهیم کرد. هرچند این سناریو خیالی است، شما یاد خواهید گرفت چگونه با صف کار کنید تا پردازش پیام‌ها به‌صورت ترتیبی انجام شود و از این دانش در برنامه‌های واقعی استفاده کنید.

پیش‌نیازها

ما فرض می‌کنیم که راهنماهای زیر را تکمیل کرده‌اید و مقالات ذکر شده را مرور کرده‌اید:

  • راهنمای شروع سریع
  • مرور کلی موتور قوانین

علاوه بر این، شما نیاز به داشتن حداقل یک دستگاه در محیط خود دارید.

گام ۱: ایجاد زنجیره قوانین

image

ما دو گره تولیدکننده اضافه خواهیم کرد که هرکدام هفت پیام تولید خواهند کرد. گره اول پیامی با مقدار شمارنده ۱۰۱ تولید خواهد کرد. گره دوم - با مقدار ۱۰. بنابراین نتیجه نهایی باید ۷۷۷ باشد.

image
image

هر دو پیام در صفی با نام “SequentialByOriginator” قرار خواهند گرفت. این صف از استراتژی ارسال پیام به نام “SEQUENTIAL_WITHIN_ORIGINATOR” استفاده می‌کند (لطفاً به راهنمای پیکربندی مراجعه کنید برای جزئیات بیشتر) که به این معنی است که پیام بعدی زمانی پردازش خواهد شد که پیام قبلی تأیید شده باشد (پردازش و از صف حذف شده باشد) بر اساس مبدأ.

image

ما مقدار فعلی “شمارنده” را با استفاده از گره “ویژگی‌های مبدأ” دریافت خواهیم کرد.

image

محاسبات با استفاده از گره “اسکریپت شمارنده” انجام خواهد شد.

image

آخرین مرحله ذخیره مقدار جدید شمارنده با استفاده از گره “ذخیره ویژگی‌ها” خواهد بود.

گام ۲: اعتبارسنجی منطق زنجیره قوانین

بیایید بررسی کنیم که آیا منطق ما درست است یا خیر، با ذخیره کردن زنجیره قوانین. تولیدکننده‌ها به‌طور خودکار ۱۴ پیام تولید خواهند کرد:

image

مقدار نهایی شمارنده‌ای که برای دستگاه ذخیره می‌شود:

image

این به این معنی است که منطق ما به درستی کار می‌کند.

TL;DR

فایل JSON پیوست‌شده را با زنجیره قوانین دانلود و وارد کنید. فراموش نکنید که گره‌های تولیدکننده را با دستگاه خاص خود پر کنید.

مراحل بعدی

  • راهنمای شروع سریع: این راهنماها نمای کلی از ویژگی‌های اصلی Thingsconnect ارائه می‌دهند و برای تکمیل آن‌ها ۱۵-۳۰ دقیقه زمان نیاز است.
  • اتصال دستگاه خود: یاد بگیرید چگونه دستگاه‌ها را بر اساس فناوری یا راه‌حل ارتباطی خود متصل کنید.
  • تصویرسازی داده‌ها: این راهنماها شامل دستورالعمل‌هایی برای پیکربندی داشبوردهای پیچیده Thingsconnect هستند.
  • تحلیل داده‌های IoT: یاد بگیرید چگونه از موتور قوانین برای انجام وظایف تحلیل پایه استفاده کنید.
  • نمونه‌های سخت‌افزاری: یاد بگیرید چگونه پلتفرم‌های سخت‌افزاری مختلف را به Thingsconnect متصل کنید.
  • ویژگی‌های پیشرفته: با ویژگی‌های پیشرفته Thingsconnect آشنا شوید.
  • مشارکت و توسعه: با مشارکت و توسعه در Thingsconnect آشنا شوید.

عناوین هر بخش