Python - การเรียกขั้นตอนระยะไกล

ระบบ Remote Procedure Call (RPC) ช่วยให้คุณสามารถเรียกใช้ฟังก์ชันที่มีอยู่บนเซิร์ฟเวอร์ระยะไกลโดยใช้ไวยากรณ์เดียวกันซึ่งใช้เมื่อเรียกใช้ฟังก์ชันในไลบรารีโลคัล สิ่งนี้มีประโยชน์ในสองสถานการณ์

  • คุณสามารถใช้พลังประมวลผลจากเครื่องหลายเครื่องโดยใช้ rpc โดยไม่ต้องเปลี่ยนรหัสในการโทรไปยังโปรแกรมที่อยู่ในระบบระยะไกล
  • ข้อมูลที่จำเป็นสำหรับการประมวลผลจะพร้อมใช้งานในระบบระยะไกลเท่านั้น

ดังนั้นใน python เราสามารถถือว่าเครื่องหนึ่งเป็นเซิร์ฟเวอร์และอีกเครื่องเป็นไคลเอนต์ซึ่งจะโทรไปยังเซิร์ฟเวอร์เพื่อเรียกใช้โพรซีเดอร์ระยะไกล ในตัวอย่างของเราเราจะใช้ localhost และใช้เป็นทั้งเซิร์ฟเวอร์และไคลเอนต์

ใช้งานเซิร์ฟเวอร์

ภาษา python มาพร้อมกับเซิร์ฟเวอร์ในตัวซึ่งเราสามารถรันเป็นเซิร์ฟเวอร์ภายในได้ สคริปต์เพื่อรันเซิร์ฟเวอร์นี้อยู่ภายใต้โฟลเดอร์ bin ของการติดตั้ง python และตั้งชื่อเป็น classic.py เราสามารถเรียกใช้ใน python prompt และตรวจสอบว่าทำงานเป็นเซิร์ฟเวอร์ภายในเครื่อง

python bin/classic.py

เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้ -

INFO:SLAVE/18812:server started on [127.0.0.1]:18812

เรียกใช้ไคลเอ็นต์

ต่อไปเราจะเรียกใช้ไคลเอนต์โดยใช้โมดูล rpyc เพื่อเรียกใช้โพรซีเดอร์ระยะไกล ในตัวอย่างด้านล่างเราเรียกใช้ฟังก์ชันการพิมพ์ในเซิร์ฟเวอร์ระยะไกล

import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute("print('Hello from Tutorialspoint')")

เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้ -

Hello from Tutorialspoint

การประเมินนิพจน์ผ่าน RPC

การใช้ตัวอย่างโค้ดด้านบนเราสามารถใช้ฟังก์ชันที่สร้างขึ้นของ python เพื่อดำเนินการและประเมินนิพจน์ผ่าน rpc

import rpyc
conn = rpyc.classic.connect("localhost")
conn.execute('import math')
conn.eval('2*math.pi')

เมื่อเรารันโปรแกรมข้างต้นเราจะได้ผลลัพธ์ดังต่อไปนี้ -

6.283185307179586