marquesafonso commited on
Commit
613ae81
·
1 Parent(s): 78c135b

make archiver non-periodic due to event blocking main loop.

Browse files
Files changed (4) hide show
  1. Pipfile +0 -1
  2. Pipfile.lock +0 -8
  3. main.py +1 -19
  4. utils/archiver.py +8 -3
Pipfile CHANGED
@@ -12,7 +12,6 @@ requests = "*"
12
  python-multipart = "*"
13
  fastapi = "*"
14
  uvicorn = "*"
15
- apscheduler = "*"
16
 
17
  [dev-packages]
18
 
 
12
  python-multipart = "*"
13
  fastapi = "*"
14
  uvicorn = "*"
 
15
 
16
  [dev-packages]
17
 
Pipfile.lock CHANGED
@@ -32,14 +32,6 @@
32
  "markers": "python_version >= '3.7'",
33
  "version": "==3.7.1"
34
  },
35
- "apscheduler": {
36
- "hashes": [
37
- "sha256:e6df071b27d9be898e486bc7940a7be50b4af2e9da7c08f0744a96d4bd4cef4a",
38
- "sha256:fb91e8a768632a4756a585f79ec834e0e27aad5860bac7eaa523d9ccefd87661"
39
- ],
40
- "index": "pypi",
41
- "version": "==3.10.4"
42
- },
43
  "av": {
44
  "hashes": [
45
  "sha256:04cd0ce13a87870fb0a0ea4673f04934af2b9ac7ae844eafe92e2c19c092ab11",
 
32
  "markers": "python_version >= '3.7'",
33
  "version": "==3.7.1"
34
  },
 
 
 
 
 
 
 
 
35
  "av": {
36
  "hashes": [
37
  "sha256:04cd0ce13a87870fb0a0ea4673f04934af2b9ac7ae844eafe92e2c19c092ab11",
main.py CHANGED
@@ -1,17 +1,13 @@
1
- from fastapi import FastAPI, UploadFile, HTTPException, BackgroundTasks, File, Form, Depends
2
  from fastapi.responses import FileResponse, HTMLResponse
3
  from fastapi.security import HTTPBasic, HTTPBasicCredentials
4
  from typing import Optional
5
  from utils.process_video import process_video
6
  from utils.zip_response import zip_response
7
  from utils.api_configs import api_configs
8
- from utils.archiver import archiver
9
- from apscheduler.schedulers.asyncio import AsyncIOScheduler
10
- from datetime import datetime
11
  import shutil, os, logging, uvicorn, secrets
12
 
13
  app = FastAPI()
14
- scheduler = AsyncIOScheduler()
15
  security = HTTPBasic()
16
  api_configs_file = os.path.abspath("api_config_example.yml")
17
 
@@ -32,20 +28,6 @@ logging.basicConfig(filename='main.log',
32
  format='%(asctime)s %(levelname)s %(message)s',
33
  datefmt='%m/%d/%Y %I:%M:%S %p')
34
 
35
- # # 0 6 * * 6
36
- # @pycron.cron("*/5 * * * *")
37
- async def periodic_archiver(timestamp: datetime):
38
- archive = os.path.abspath(os.path.join(os.getcwd(),"archive/"))
39
- archiver(archive, timestamp)
40
- logging.info(f"Archive writen at {timestamp}")
41
-
42
- @app.on_event("startup")
43
- def start_periodic_task():
44
- # Schedule the job to run once every day at 3:00 AM
45
- scheduler.add_job(periodic_archiver(datetime.now()), "cron", minute="*/2")
46
- scheduler.start()
47
-
48
-
49
  @app.get("/")
50
  async def root():
51
  return {"message": "Hello from multilang-asr-captioner"}
 
1
+ from fastapi import FastAPI, UploadFile, HTTPException, File, Form, Depends
2
  from fastapi.responses import FileResponse, HTMLResponse
3
  from fastapi.security import HTTPBasic, HTTPBasicCredentials
4
  from typing import Optional
5
  from utils.process_video import process_video
6
  from utils.zip_response import zip_response
7
  from utils.api_configs import api_configs
 
 
 
8
  import shutil, os, logging, uvicorn, secrets
9
 
10
  app = FastAPI()
 
11
  security = HTTPBasic()
12
  api_configs_file = os.path.abspath("api_config_example.yml")
13
 
 
28
  format='%(asctime)s %(levelname)s %(message)s',
29
  datefmt='%m/%d/%Y %I:%M:%S %p')
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  @app.get("/")
32
  async def root():
33
  return {"message": "Hello from multilang-asr-captioner"}
utils/archiver.py CHANGED
@@ -1,11 +1,16 @@
1
  import shutil, os
2
  from datetime import datetime
3
 
4
- def archiver(archive:str, timestamp:datetime):
 
5
  TEMP_DIR = os.path.abspath("temp/")
6
  LOG_FILE = os.path.abspath("main.log")
7
  if os.path.exists(TEMP_DIR):
8
- shutil.make_archive(os.path.join(archive, f"{timestamp.year:4d}-{timestamp.month:2d}-{timestamp.day:2d}"), 'zip', [TEMP_DIR, LOG_FILE])
9
  shutil.rmtree(TEMP_DIR)
10
  if os.path.exists(LOG_FILE):
11
- os.remove(LOG_FILE)
 
 
 
 
 
1
  import shutil, os
2
  from datetime import datetime
3
 
4
+ def archiver(timestamp:datetime):
5
+ ARCHIVE = os.path.abspath(f"archive/{timestamp.year:4d}-{timestamp.month:2d}-{timestamp.day:2d}/")
6
  TEMP_DIR = os.path.abspath("temp/")
7
  LOG_FILE = os.path.abspath("main.log")
8
  if os.path.exists(TEMP_DIR):
9
+ shutil.make_archive(os.path.join(ARCHIVE, "files"), 'zip', TEMP_DIR)
10
  shutil.rmtree(TEMP_DIR)
11
  if os.path.exists(LOG_FILE):
12
+ shutil.copy(LOG_FILE, os.path.join(ARCHIVE, f"{timestamp.year:4d}-{timestamp.month:2d}-{timestamp.day:2d}.log"))
13
+ os.remove(LOG_FILE)
14
+
15
+ if __name__ == '__main__':
16
+ archiver(timestamp=datetime.now())