import requests
import time
import os
defmonitored_method():# Here is the method that is being monitoredprint("执行被监控的方法")
time.sleep(11)# Simulating the execution time of the methodreturnTruedefregister_process(process_id):# Register the process with the monitoring servicetry:
response = requests.post('http://127.0.0.1:5000/register', json={
'process_id': process_id})
response.raise_for_status()# Raises an HTTPError for bad responsesexcept requests.RequestException as e:print(f"Failed to register process: {
e}")defreport_success(process_id):# Report the successful execution to the monitoring servicetry:
response = requests.post('http://127.0.0.1:5000/success', json={
'process_id': process_id,'timestamp': time.time()})
response.raise_for_status()except requests.RequestException as e:print(f"Failed to report success: {
e}")defreport_failure(process_id, error):# Report the failure to the monitoring servicetry:
response = requests.post('http://127.0.0.1:5000/failure', json={
'process_id': process_id,'error':str(error),'timestamp': time.time()})
response.raise_for_status()except requests.RequestException as e:print(f"Failed to report failure: {
e}")if __name__ =='__main__':
process_id = os.getpid()whileTrue:try:
register_process(process_id)if monitored_method():
report_success(process_id)else:
report_failure(process_id,"monitored_method returned False")except Exception as e:print(f"An error occurred: {
e}")
report_failure(process_id, e)# Wait for a specified interval before the next execution
time.sleep(10)