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