Menghadkan Masa Pelaksanaan Panggilan Fungsi
Dengan adanya panggilan fungsi menyekat daripada modul pihak ketiga, adalah penting untuk menangani isu masa pelaksanaan yang berpotensi dilanjutkan. Untuk mengehadkan masa pelaksanaan fungsi, kami boleh memanfaatkan multithreading.
Penyelesaian:
Pendekatan paling berkesan melibatkan mencipta urutan berasingan untuk melaksanakan panggilan fungsi. Urutan ini boleh direka bentuk untuk memantau masa pelaksanaan dan menamatkan fungsi jika ia melebihi ambang yang telah ditetapkan.
Pelaksanaan:
Untuk melaksanakan penyelesaian ini, kelas Threading boleh digunakan dalam Python. Pemasa boleh ditetapkan dalam utas dan jika panggilan fungsi masih dilaksanakan sebaik pemasa tamat tempoh, utas boleh memaksa fungsi untuk ditamatkan. Urutan utama kemudiannya boleh mengendalikan pengecualian tamat masa dan mengambil tindakan yang sewajarnya.
Contoh:
Berikut ialah contoh yang menunjukkan penggunaan kelas Threading:
import threading import time # Define the function call that may block for extended periods def long_function_call(): time.sleep(300) # Set the maximum execution time in seconds max_execution_time = 10 # Create a thread to execute the function call thread = threading.Thread(target=long_function_call, name="Long Function Call") # Start the thread thread.start() # Set a timer to check for timeout timer = threading.Timer(max_execution_time, thread.join) timer.start() # Wait for either the thread to finish or the timer to expire if thread.is_alive(): # The thread timed out print("Function call timed out!") timer.cancel() thread.join() else: # Function call completed within the time limit print("Function call completed successfully.")
Pendekatan ini menyediakan kaedah yang mantap untuk mengehadkan masa pelaksanaan panggilan fungsi yang tidak terkawal, memastikan tepat pada masanya pelaksanaan dan menghalang sekatan berlarutan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Panggilan Fungsi Pihak Ketiga daripada Menyekat Aplikasi Saya Terlalu Lama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!