فهرست مطالب (3)
یکپارچهسازی ووکامرس با ERP یا انبار در محیط واقعی با پیامهای تکراری، ترتیب بههمریخته و قطعیهای موقت روبهرو میشود. طراحی باید اینها را عادی فرض کند.
Idempotency: هر پیام فقط یک اثر
برای هر رویداد یک شناسهٔ یکتا ذخیره کنید و پیش از پردازش بررسی کنید که قبلاً پردازش نشده باشد.
if ( get_transient( 'erp_event_' . $event_id ) ) {
return new WP_REST_Response( null, 200 ); // already handled
}
set_transient( 'erp_event_' . $event_id, 1, DAY_IN_SECONDS );
as_enqueue_async_action( 'hamidarab_erp_apply', [ $event_id ], 'erp' );
پاسخ سریع، پردازش در صف
endpoint دریافت باید فقط اعتبارسنجی و ثبت کند و سریع پاسخ بدهد؛ کار اصلی در Action Scheduler انجام شود تا timeout فرستنده باعث ارسال دوباره نشود.
ترتیب و نسخه
اگر رویدادها ممکن است نامرتب برسند، بهجای اعمال کورکورانه، نسخه یا زمان آخرین تغییر را مقایسه کنید.
transient برای کلید idempotency در محیط بدون کش شیء پایدار کافی است، اما در مقیاس بالا یک جدول اختصاصی با ایندکس یکتا مطمئنتر است.
$ ./request_review
همین مشکل را در فروشگاه خودتان دارید؟
توسعهدهنده ارشد WordPress و WooCommerce برای معماری، اتصال سیستمها و حل مسائل پیچیده production.
درخواست بررسی فنی
## دیدگاهها