myems/myems-cleaning
13621160019@163.com 0798a683f1 replaced cnx.disconnect() with cnx.close() according to PEP 249 2022-03-16 14:12:58 +08:00
..
.gitignore udpated gitignore files 2021-02-20 20:18:31 +08:00
Dockerfile updated Dockerfiles 2022-01-02 19:30:01 +08:00
LICENSE updated year in LICENSE 2022-01-12 12:38:31 +08:00
README.md updated installation guide in README 2022-01-30 21:42:18 +08:00
clean_analog_value.py replaced cnx.disconnect() with cnx.close() according to PEP 249 2022-03-16 14:12:58 +08:00
clean_digital_value.py replaced cnx.disconnect() with cnx.close() according to PEP 249 2022-03-16 14:12:58 +08:00
clean_energy_value.py replaced cnx.disconnect() with cnx.close() according to PEP 249 2022-03-16 14:12:58 +08:00
config.py updated config files 2021-12-19 07:58:01 +08:00
example.env renamed example.env files and fixed typos in config 2021-10-15 13:32:43 +08:00
main.py added StreamHandler to send logging output to sys.stderr 2022-03-05 08:40:19 +08:00
myems-cleaning.service merged myems-cleaning 2021-02-19 12:11:42 +08:00
requirements.txt updated config.py files to move all variables to .env files via Python Decouple 2021-10-12 18:39:42 +08:00
run.sh mask out all clear password into encrypted ones for myems-cleaning. 2021-10-01 19:02:50 +08:00

README.md

myems-cleaning

MyEMS Cleaning Service

MyEMS 数据清洗服务

Introduction

This service is a component of MyEMS. It cleans the historical data.

Prerequisites

mysql-connector-python

schedule

python-decouple

Quick Run for Development

cd myems/myems-cleaning
pip install -r requirements.txt
cp example.env .env
chmod +x run.sh
./run.sh

Installation

Option 1: Install myems-cleaning on Docker

In this section, you will install myems-cleaning on Docker.

  • Copy source code to root directory

On Windows:

cp -r myems/myems-cleaning c:\
cd c:\myems-cleaning

On Linux:

cp -r myems/myems-cleaning /
cd /myems-cleaning
  • Duplicate example.env file as .env file and modify the .env file Replace 127.0.0.1 with real HOST IP address.
cp example.env .env
  • Build a Docker image
docker build -t myems/myems-cleaning .
  • Run a Docker container On Windows host, bind-mount the .env to the container:
docker run -d -v c:\myems-cleaning\.env:/code/.env --restart always --name myems-cleaning myems/myems-cleaning

On Linux host, bind-mount the .env to the container:

docker run -d -v /myems-cleaning/.env:/.env --restart always --name myems-cleaning myems/myems-cleaning
  • -d Run container in background and print container ID

  • -v If you use -v or --volume to bind-mount a file or directory that does not yet exist on the Docker host, -v creates the endpoint for you. It is always created as a directory.

  • --restart Restart policy to apply when a container exits

  • --name Assign a name to the container

The absolute path before colon is for path on host and that may vary on your system. The absolute path after colon is for path on container and that CANNOT be changed. By passing .env as bind-mount parameter, you can change the configuration values later. If you changed .env file, restart the container to make the change effective.

If you want to immigrate the image to another computer,

  • Export image to tarball file
docker save --output myems-cleaning.tar myems/myems-cleaning
  • Copy the tarball file to another computer, and then load image from tarball file
docker load --input .\myems-cleaning.tar

Installation Option 2: Online install on Ubuntu server with internet access

In this section, you will install myems-cleaning on Ubuntu Server with internet access.

cp -r myems-cleaning /myems-cleaning
cd /myems/myems-cleaning
pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

Copy exmaple.env file to .env and modify the .env file:

cp /myems-cleaning/example.env /myems-cleaning/.env
nano /myems-cleaning/.env

Setup systemd service:

cp myems-cleaning.service /lib/systemd/system/

Enable the service:

systemctl enable myems-cleaning.service

Start the service:

systemctl start myems-cleaning.service

Monitor the service:

systemctl status myems-cleaning.service

View the log:

cat /myems-cleaning.log

Installation Option 3: Offline install on Ubuntu server without internet access

In this section, you will install myems-cleaning on Ubuntu Server.

Download and install MySQL Connector:

cd ~/tools
wget https://cdn.mysql.com//Downloads/Connector-Python/mysql-connector-python-8.0.28.tar.gz
tar xzf mysql-connector-python-8.0.28.tar.gz
cd ~/tools/mysql-connector-python-8.0.28
python3 setup.py install

Download and install Schedule

cd ~/tools
git clone https://github.com/dbader/schedule.git
cd ~/tools/schedule
python3 setup.py install

Download and install Python Decouple

cd ~/tools
git clone https://github.com/henriquebastos/python-decouple.git
cd ~/tools/python-decouple
python3 setup.py  install

Install myems-cleaning service

cp -r myems/myems-cleaning /myems-cleaning
cd /myems-cleaning

Copy file example.env to .env and edit the .env file:

cp /myems-cleaning/example.env /myems-cleaning/.env
nano /myems-cleaning/.env

Setup systemd service:

cp myems-cleaning.service /lib/systemd/system/

Enable the service:

systemctl enable myems-cleaning.service

Start the service:

systemctl start myems-cleaning.service

Monitor the service:

systemctl status myems-cleaning.service

View the log:

cat /myems-cleaning.log

References

  1. https://myems.io
  2. https://dev.mysql.com/doc/connector-python/en/