1
|
import json
|
2
|
import requests
|
3
|
import logging
|
4
|
from time import sleep
|
5
|
from diskcache import Deque
|
6
|
from requests import HTTPError, ConnectionError
|
7
|
|
8
|
from config_manager import server_url, server_port, server_endpoint, cache_dir, cache_retry_period_seconds, cache_max_retries, cache_max_entries
|
9
|
|
10
|
|
11
|
_cache = Deque(directory=cache_dir)
|
12
|
_uri = server_url + ":" + server_port + server_endpoint
|
13
|
|
14
|
|
15
|
def send_data(payload: dict):
|
16
|
try:
|
17
|
logging.info(f"sending payload = {payload} to {_uri}")
|
18
|
response = requests.post(url=_uri, data=json.dumps(payload))
|
19
|
logging.info(f"response text: {response.text}")
|
20
|
except ConnectionError:
|
21
|
logging.warning(f"sending payload = {payload} to {_uri} failed")
|
22
|
except HTTPError as error:
|
23
|
logging.error(f"HTTP Error ({_uri}) payload = {payload}, {error}")
|
24
|
|
25
|
|
26
|
def api_client_run():
|
27
|
while True:
|
28
|
sleep(cache_retry_period_seconds)
|