定时调外部任务开启api
This commit is contained in:
58
simulate_failure.py
Normal file
58
simulate_failure.py
Normal file
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env python3
|
||||
"""模拟API失败情况,测试重试机制"""
|
||||
|
||||
def modify_config_for_test():
|
||||
"""临时修改配置以测试重试机制"""
|
||||
import api_config
|
||||
|
||||
# 保存原始配置
|
||||
original_url = api_config.API_CONFIG['main_api']['url']
|
||||
|
||||
# 修改为无效URL以模拟失败
|
||||
api_config.API_CONFIG['main_api']['url'] = 'https://nonexistent-api.example.com/posts'
|
||||
|
||||
print(f"已临时修改API URL为: {api_config.API_CONFIG['main_api']['url']}")
|
||||
print("现在运行测试任务将触发重试机制")
|
||||
print("测试完成后会恢复原始配置")
|
||||
|
||||
return original_url
|
||||
|
||||
def restore_config(original_url):
|
||||
"""恢复原始配置"""
|
||||
import api_config
|
||||
api_config.API_CONFIG['main_api']['url'] = original_url
|
||||
print(f"已恢复原始API URL: {original_url}")
|
||||
|
||||
def test_retry_with_failure():
|
||||
"""测试失败情况下的重试机制"""
|
||||
original_url = modify_config_for_test()
|
||||
|
||||
try:
|
||||
from tasks import daily_morning_task
|
||||
import time
|
||||
|
||||
print("\n=== 启动失败重试测试 ===")
|
||||
result = daily_morning_task.delay()
|
||||
print(f"任务ID: {result.id}")
|
||||
|
||||
# 监控重试过程
|
||||
for i in range(60): # 等待足够长时间观察重试
|
||||
try:
|
||||
status = result.status
|
||||
if status in ['SUCCESS', 'FAILURE']:
|
||||
print(f"\n任务最终状态: {status}")
|
||||
print(f"任务结果: {result.result}")
|
||||
break
|
||||
else:
|
||||
print(f"任务状态: {status}... (重试中)")
|
||||
time.sleep(2)
|
||||
except Exception as e:
|
||||
print(f"检查任务状态时出错: {e}")
|
||||
time.sleep(2)
|
||||
|
||||
finally:
|
||||
restore_config(original_url)
|
||||
print("\n配置已恢复,测试完成")
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_retry_with_failure()
|
||||
Reference in New Issue
Block a user