Powered by Drupal, an open source content management system

โฆษณาโดย Google

abcast

เรียกใช้งาน gen_server ที่อยู่กันคนละ node

ปกติแล้วเวลาเราจะเรียกใช้ handle_call กับ handle_cast ของ gen_server เราจะเรียกใช้โดย gen_server:call สำหรับ synchronous call และเรียกใช้ gen_server:cast สำหรับ asynchronous call ตัวอย่างเช่น

Response = gen_server:call(?SERVER,{request}).

gen_server:cast(?SERVER,{request}).

แต่ทั้งสองฟังก์ชันนี้จะเรียกได้เฉพาะ gen_server ที่รันอยู่บนเออแลงโนดเดียวกันเท่านั้น ถ้าเราต้องการให้เรียกใช้งาน gen_server ที่รันอยู่โนดอื่นๆสามารถใช้ได้โดยเรียก gen_server:multi_call กับ gen_server:abcast โดยค่าแรกที่ส่งให้ฟังก์ชันเป็นลิสต์ของโนดที่ตัว gen_server เปิดใช้งานอยู่

{ResponseList,_} = gen_server:multi_call(['pgsql_node@192.168.1.123'],?SERVER,{request}).

gen_server:abcast(['pgsql_node@192.168.1.123'],?SERVER,{request}).