setup timer for create database.

This commit is contained in:
iamBadgers
2025-06-02 20:45:25 -07:00
parent f6fcf82eae
commit 9801ba4ba6
7 changed files with 52 additions and 48 deletions

View File

@@ -1,23 +1,4 @@
# FROM ubuntu:24.04 FROM node:23 AS frontend
# ADD ./loader/loader-crm /etc/cron.d/loader-crm
# RUN chmod 0644 /etc/cron/loader-crm
# RUN touch /var/log/chron.log
# RUN apt-get update
# RUN apt-get -y install cron
# RUN systemctl enable cron
# Setup the loader
FROM python:3.12 AS loader
COPY ./loader /srv/cprush-stats
WORKDIR /srv/cprush-stats
RUN python -m pip install --upgrade pip
RUN pip install -r requirements.txt
CMD ["python3", "createrushdatabase.py"]
FROM node:23
RUN corepack enable RUN corepack enable
@@ -25,27 +6,36 @@ RUN corepack enable
COPY ./frontend /frontend COPY ./frontend /frontend
WORKDIR /frontend WORKDIR /frontend
RUN npm install RUN npm install
RUN npm run build CMD ["npm", "run", "build"]
RUN mkdir -p /srv/cprush-stats/frontend # RUN mkdir -p /srv/cprush-stats/frontend
RUN cp -rf ./dist/* /srv/cprush-stats/frontend # RUN cp -rf ./dist/* /srv/cprush-stats/frontend
FROM node:23 AS backend
RUN corepack enable
# build the backend # build the backend
COPY ./backend /backend COPY ./backend /backend
WORKDIR /backend WORKDIR /backend
RUN npm install RUN npm install
RUN npm run build CMD ["npm", "run", "build"]
RUN mkdir -p /srv/cprush-stats # RUN mkdir -p /srv/cprush-stats
RUN cp -rf ./dist/* /srv/cprush-stats # RUN cp -rf ./dist/* /srv/cprush-stats
RUN cp package.json /srv/cprush-stats/package.json # RUN cp package.json /srv/cprush-stats/package.json
WORKDIR loader FROM node:23 AS server
RUN corepack enable
RUN mkdir -p /srv/cprush-stats/frontend
COPY --from=frontend /frontend/dist /srv/cprush-stats/frontend
COPY --from=backend /backend/dist /srv/cprush-stats
COPY --from=backend /backend/package.json /srv/cprush-stats/package.json
EXPOSE 3001 EXPOSE 3001
ENV NODE_ENV=production ENV NODE_ENV=production
ENV MEMCACHE_ADDR="localhost:11211" ENV MEMCACHE_ADDR="localhost:11211"
COPY --from=loader /srv/cprush-stats/testdb.db /srv/cprush-stats/testdb.db
WORKDIR /srv/cprush-stats WORKDIR /srv/cprush-stats
RUN npm install RUN npm install
CMD ["sh", "-c", "node app.js -m $MEMCACHE_ADDR"] CMD ["sh", "-c", "node app.js -m $MEMCACHE_ADDR"]

View File

@@ -19,7 +19,6 @@ const port = process.argv[process.argv.indexOf('-p')]
const memcache_addr = process.argv[process.argv.indexOf('-m')] const memcache_addr = process.argv[process.argv.indexOf('-m')]
? process.argv[process.argv.indexOf('-m') + 1] ? process.argv[process.argv.indexOf('-m') + 1]
: 'localhost:11211' : 'localhost:11211'
// const memcache = new memcached('localhost:11211', {})
const memcachep = new Memcache(memcache_addr) const memcachep = new Memcache(memcache_addr)
addGameApis(app, jsonParser, memcachep) addGameApis(app, jsonParser, memcachep)

View File

@@ -6,7 +6,8 @@ networks:
services: services:
cprush: cprush:
image: potato # image: potato
build: ./app
networks: networks:
- cprush-net - cprush-net
environment: environment:
@@ -15,6 +16,10 @@ services:
- 3001:3001 - 3001:3001
depends_on: depends_on:
- memcache - memcache
loader:
build: ./loader
environment:
- REPLAY_TIME=600
memcache: memcache:
image: memcached image: memcached
networks: networks:

11
loader/Dockerfile Normal file
View File

@@ -0,0 +1,11 @@
# Setup the loader
FROM python:3.12 AS loader
COPY . /loader
WORKDIR /loader
RUN python -m pip install --upgrade pip
RUN pip install -r requirements.txt
ENV REPLAY_TIME=0
CMD ["sh", "-c", "python3 createrushdatabase.py -r $REPLAY_TIME"]

View File

@@ -1,15 +0,0 @@
#!/bin/bash
parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
PYTHON_VEN="$parent_path"/venv/bin/python
if [ ! -f $PYTHON_VEN ]; then
echo "Setting up new VENV"
python3 -m venv venv
echo "Installing requirements."
source ./venv/bin/activate
pip install -r requirements.txt
deactivate
fi
echo "Start DB Creation"
$parent_path/venv/bin/python createrushdatabase.py

View File

@@ -1,14 +1,29 @@
import time
import argparse
from databasesync import createDatabase from databasesync import createDatabase
from sheetloader import downloadGamesCSV, downloadCharactersCSV from sheetloader import downloadGamesCSV, downloadCharactersCSV
parser = argparse.ArgumentParser()
parser.add_argument("-r", "--replay_time", type=int)
args = parser.parse_args()
CHARACTER_DATA_OUT_FILE = "CharacterData.csv" CHARACTER_DATA_OUT_FILE = "CharacterData.csv"
GAME_DATA_OUT_FILE = "GameData.csv" GAME_DATA_OUT_FILE = "GameData.csv"
DATABASE_NAME = "testdb.db" DATABASE_NAME = "testdb.db"
def execute(): def execute():
downloadCharactersCSV(CHARACTER_DATA_OUT_FILE) downloadCharactersCSV(CHARACTER_DATA_OUT_FILE)
downloadGamesCSV(GAME_DATA_OUT_FILE) downloadGamesCSV(GAME_DATA_OUT_FILE)
createDatabase(DATABASE_NAME, GAME_DATA_OUT_FILE, CHARACTER_DATA_OUT_FILE) createDatabase(DATABASE_NAME, GAME_DATA_OUT_FILE, CHARACTER_DATA_OUT_FILE)
if __name__ == "__main__": if __name__ == "__main__":
print("starting up loader.")
print("replay time: ", args.replay_time)
execute()
while args.replay_time and args.replay_time > 0:
print("re-run in ", args.replay_time, "seconds", flush=True)
time.sleep(args.replay_time)
execute() execute()

View File

@@ -1 +0,0 @@
*/10 * * * * python3 /loader/createrushdatabase.py